From f1dee547f0287dbc752629a4d5a88b8d7a89ce75 Mon Sep 17 00:00:00 2001 From: Hu# Date: Mon, 13 Feb 2023 14:37:37 +0800 Subject: [PATCH 01/44] Introduce protolock to prevent backward incompatible changes to proto (#1055) Signed-off-by: husharp --- scripts/check.sh | 23 +- scripts/proto.lock | 17095 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 17117 insertions(+), 1 deletion(-) create mode 100644 scripts/proto.lock diff --git a/scripts/check.sh b/scripts/check.sh index 6f062e5..918bac9 100755 --- a/scripts/check.sh +++ b/scripts/check.sh @@ -11,6 +11,27 @@ check_protoc_version() { return 1 } -if ! check_protoc_version; then +check-protos-compatible() { + GOPATH=$(go env GOPATH) + if [ -z $GOPATH ]; then + printf "Error: the environment variable GOPATH is not set, please set it before running %s\n" $PROGRAM > /dev/stderr + exit 1 + fi + export PATH=$GOPATH/bin:$PATH + + if [ ! -f "$GOPATH/bin/protolock" ]; then + GO111MODULE=off go get github.com/nilslice/protolock/cmd/protolock + GO111MODULE=off go install github.com/nilslice/protolock/cmd/protolock + fi + + if protolock status -lockdir=scripts -protoroot=proto; then + protolock commit -lockdir=scripts -protoroot=proto + return 0 + else + return 1 + fi +} + +if ! check_protoc_version || ! check-protos-compatible; then exit 1 fi diff --git a/scripts/proto.lock b/scripts/proto.lock new file mode 100644 index 0000000..ecb9a5f --- /dev/null +++ b/scripts/proto.lock @@ -0,0 +1,17095 @@ +{ + "definitions": [ + { + "protopath": "autoid.proto", + "def": { + "messages": [ + { + "name": "AutoIDRequest", + "fields": [ + { + "id": 1, + "name": "dbID", + "type": "int64" + }, + { + "id": 2, + "name": "tblID", + "type": "int64" + }, + { + "id": 3, + "name": "isUnsigned", + "type": "bool" + }, + { + "id": 4, + "name": "n", + "type": "uint64" + }, + { + "id": 5, + "name": "increment", + "type": "int64" + }, + { + "id": 6, + "name": "offset", + "type": "int64" + } + ] + }, + { + "name": "AutoIDResponse", + "fields": [ + { + "id": 1, + "name": "min", + "type": "int64" + }, + { + "id": 2, + "name": "max", + "type": "int64" + }, + { + "id": 3, + "name": "errmsg", + "type": "bytes" + } + ] + }, + { + "name": "RebaseRequest", + "fields": [ + { + "id": 1, + "name": "dbID", + "type": "int64" + }, + { + "id": 2, + "name": "tblID", + "type": "int64" + }, + { + "id": 3, + "name": "isUnsigned", + "type": "bool" + }, + { + "id": 4, + "name": "base", + "type": "int64" + }, + { + "id": 5, + "name": "force", + "type": "bool" + } + ] + }, + { + "name": "RebaseResponse", + "fields": [ + { + "id": 1, + "name": "errmsg", + "type": "bytes" + } + ] + } + ], + "services": [ + { + "name": "AutoIDAlloc", + "rpcs": [ + { + "name": "AllocAutoID", + "in_type": "AutoIDRequest", + "out_type": "AutoIDResponse" + }, + { + "name": "Rebase", + "in_type": "RebaseRequest", + "out_type": "RebaseResponse" + } + ] + } + ], + "imports": [ + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "autoid" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "brpb.proto", + "def": { + "enums": [ + { + "name": "CompressionType", + "enum_fields": [ + { + "name": "UNKNOWN" + }, + { + "name": "LZ4", + "integer": 1 + }, + { + "name": "SNAPPY", + "integer": 2 + }, + { + "name": "ZSTD", + "integer": 3 + } + ] + }, + { + "name": "MetaVersion", + "enum_fields": [ + { + "name": "V1" + }, + { + "name": "V2", + "integer": 1 + } + ] + }, + { + "name": "FileType", + "enum_fields": [ + { + "name": "Delete" + }, + { + "name": "Put", + "integer": 1 + } + ] + } + ], + "messages": [ + { + "name": "BackupMeta", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + }, + { + "id": 2, + "name": "cluster_version", + "type": "string" + }, + { + "id": 11, + "name": "br_version", + "type": "string" + }, + { + "id": 12, + "name": "version", + "type": "int32" + }, + { + "id": 4, + "name": "files", + "type": "File", + "is_repeated": true + }, + { + "id": 13, + "name": "file_index", + "type": "MetaFile" + }, + { + "id": 5, + "name": "start_version", + "type": "uint64" + }, + { + "id": 6, + "name": "end_version", + "type": "uint64" + }, + { + "id": 7, + "name": "schemas", + "type": "Schema", + "is_repeated": true + }, + { + "id": 14, + "name": "schema_index", + "type": "MetaFile" + }, + { + "id": 8, + "name": "is_raw_kv", + "type": "bool" + }, + { + "id": 9, + "name": "raw_ranges", + "type": "RawRange", + "is_repeated": true + }, + { + "id": 15, + "name": "raw_range_index", + "type": "MetaFile" + }, + { + "id": 10, + "name": "ddls", + "type": "bytes" + }, + { + "id": 16, + "name": "ddl_indexes", + "type": "MetaFile" + }, + { + "id": 17, + "name": "backup_result", + "type": "string" + }, + { + "id": 18, + "name": "api_version", + "type": "kvrpcpb.APIVersion" + }, + { + "id": 19, + "name": "policies", + "type": "PlacementPolicy", + "is_repeated": true + }, + { + "id": 20, + "name": "new_collations_enabled", + "type": "string" + } + ], + "reserved_ids": [ + 3 + ], + "reserved_names": [ + "path" + ] + }, + { + "name": "File", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "sha256", + "type": "bytes" + }, + { + "id": 3, + "name": "start_key", + "type": "bytes" + }, + { + "id": 4, + "name": "end_key", + "type": "bytes" + }, + { + "id": 5, + "name": "start_version", + "type": "uint64" + }, + { + "id": 6, + "name": "end_version", + "type": "uint64" + }, + { + "id": 7, + "name": "crc64xor", + "type": "uint64" + }, + { + "id": 8, + "name": "total_kvs", + "type": "uint64" + }, + { + "id": 9, + "name": "total_bytes", + "type": "uint64" + }, + { + "id": 10, + "name": "cf", + "type": "string" + }, + { + "id": 11, + "name": "size", + "type": "uint64" + }, + { + "id": 12, + "name": "cipher_iv", + "type": "bytes" + } + ] + }, + { + "name": "MetaFile", + "fields": [ + { + "id": 1, + "name": "meta_files", + "type": "File", + "is_repeated": true + }, + { + "id": 2, + "name": "data_files", + "type": "File", + "is_repeated": true + }, + { + "id": 3, + "name": "schemas", + "type": "Schema", + "is_repeated": true + }, + { + "id": 4, + "name": "raw_ranges", + "type": "RawRange", + "is_repeated": true + }, + { + "id": 5, + "name": "ddls", + "type": "bytes", + "is_repeated": true + } + ] + }, + { + "name": "PlacementPolicy", + "fields": [ + { + "id": 1, + "name": "info", + "type": "bytes" + } + ] + }, + { + "name": "Schema", + "fields": [ + { + "id": 1, + "name": "db", + "type": "bytes" + }, + { + "id": 2, + "name": "table", + "type": "bytes" + }, + { + "id": 3, + "name": "crc64xor", + "type": "uint64" + }, + { + "id": 4, + "name": "total_kvs", + "type": "uint64" + }, + { + "id": 5, + "name": "total_bytes", + "type": "uint64" + }, + { + "id": 6, + "name": "tiflash_replicas", + "type": "uint32" + }, + { + "id": 7, + "name": "stats", + "type": "bytes" + } + ] + }, + { + "name": "RawRange", + "fields": [ + { + "id": 1, + "name": "start_key", + "type": "bytes" + }, + { + "id": 2, + "name": "end_key", + "type": "bytes" + }, + { + "id": 3, + "name": "cf", + "type": "string" + } + ] + }, + { + "name": "ClusterIDError", + "fields": [ + { + "id": 1, + "name": "current", + "type": "uint64" + }, + { + "id": 2, + "name": "request", + "type": "uint64" + } + ] + }, + { + "name": "Error", + "fields": [ + { + "id": 1, + "name": "msg", + "type": "string" + }, + { + "id": 3, + "name": "cluster_id_error", + "type": "ClusterIDError" + }, + { + "id": 4, + "name": "kv_error", + "type": "kvrpcpb.KeyError" + }, + { + "id": 5, + "name": "region_error", + "type": "errorpb.Error" + } + ] + }, + { + "name": "CipherInfo", + "fields": [ + { + "id": 1, + "name": "cipher_type", + "type": "encryptionpb.EncryptionMethod" + }, + { + "id": 2, + "name": "cipher_key", + "type": "bytes" + } + ] + }, + { + "name": "BackupRequest", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + }, + { + "id": 2, + "name": "start_key", + "type": "bytes" + }, + { + "id": 3, + "name": "end_key", + "type": "bytes" + }, + { + "id": 4, + "name": "start_version", + "type": "uint64" + }, + { + "id": 5, + "name": "end_version", + "type": "uint64" + }, + { + "id": 7, + "name": "rate_limit", + "type": "uint64" + }, + { + "id": 8, + "name": "concurrency", + "type": "uint32" + }, + { + "id": 9, + "name": "storage_backend", + "type": "StorageBackend" + }, + { + "id": 10, + "name": "is_raw_kv", + "type": "bool" + }, + { + "id": 11, + "name": "cf", + "type": "string" + }, + { + "id": 12, + "name": "compression_type", + "type": "CompressionType" + }, + { + "id": 13, + "name": "compression_level", + "type": "int32" + }, + { + "id": 14, + "name": "cipher_info", + "type": "CipherInfo" + }, + { + "id": 15, + "name": "dst_api_version", + "type": "kvrpcpb.APIVersion" + }, + { + "id": 16, + "name": "sub_ranges", + "type": "kvrpcpb.KeyRange", + "is_repeated": true + }, + { + "id": 17, + "name": "replica_read", + "type": "bool" + } + ], + "reserved_ids": [ + 6 + ], + "reserved_names": [ + "path" + ] + }, + { + "name": "StreamBackupTaskInfo", + "fields": [ + { + "id": 1, + "name": "storage", + "type": "StorageBackend" + }, + { + "id": 2, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 3, + "name": "end_ts", + "type": "uint64" + }, + { + "id": 4, + "name": "name", + "type": "string" + }, + { + "id": 5, + "name": "table_filter", + "type": "string", + "is_repeated": true + }, + { + "id": 6, + "name": "compression_type", + "type": "CompressionType" + } + ], + "reserved_names": [ + "last_update_ts", + "ranges", + "status" + ] + }, + { + "name": "StorageBackend", + "fields": [ + { + "id": 1, + "name": "noop", + "type": "Noop" + }, + { + "id": 2, + "name": "local", + "type": "Local" + }, + { + "id": 3, + "name": "s3", + "type": "S3" + }, + { + "id": 4, + "name": "gcs", + "type": "GCS" + }, + { + "id": 5, + "name": "cloud_dynamic", + "type": "CloudDynamic" + }, + { + "id": 6, + "name": "hdfs", + "type": "HDFS" + }, + { + "id": 7, + "name": "azure_blob_storage", + "type": "AzureBlobStorage" + } + ] + }, + { + "name": "Noop" + }, + { + "name": "Local", + "fields": [ + { + "id": 1, + "name": "path", + "type": "string" + } + ] + }, + { + "name": "S3", + "fields": [ + { + "id": 1, + "name": "endpoint", + "type": "string" + }, + { + "id": 2, + "name": "region", + "type": "string" + }, + { + "id": 3, + "name": "bucket", + "type": "string" + }, + { + "id": 4, + "name": "prefix", + "type": "string" + }, + { + "id": 5, + "name": "storage_class", + "type": "string" + }, + { + "id": 6, + "name": "sse", + "type": "string" + }, + { + "id": 7, + "name": "acl", + "type": "string" + }, + { + "id": 8, + "name": "access_key", + "type": "string" + }, + { + "id": 9, + "name": "secret_access_key", + "type": "string" + }, + { + "id": 10, + "name": "force_path_style", + "type": "bool" + }, + { + "id": 11, + "name": "sse_kms_key_id", + "type": "string" + }, + { + "id": 12, + "name": "role_arn", + "type": "string" + }, + { + "id": 13, + "name": "external_id", + "type": "string" + }, + { + "id": 14, + "name": "object_lock_enabled", + "type": "bool" + }, + { + "id": 15, + "name": "session_token", + "type": "string" + } + ] + }, + { + "name": "GCS", + "fields": [ + { + "id": 1, + "name": "endpoint", + "type": "string" + }, + { + "id": 2, + "name": "bucket", + "type": "string" + }, + { + "id": 3, + "name": "prefix", + "type": "string" + }, + { + "id": 4, + "name": "storage_class", + "type": "string" + }, + { + "id": 5, + "name": "predefined_acl", + "type": "string" + }, + { + "id": 6, + "name": "credentials_blob", + "type": "string" + } + ] + }, + { + "name": "AzureBlobStorage", + "fields": [ + { + "id": 1, + "name": "endpoint", + "type": "string" + }, + { + "id": 2, + "name": "bucket", + "type": "string" + }, + { + "id": 3, + "name": "prefix", + "type": "string" + }, + { + "id": 4, + "name": "storage_class", + "type": "string" + }, + { + "id": 5, + "name": "account_name", + "type": "string" + }, + { + "id": 6, + "name": "shared_key", + "type": "string" + } + ] + }, + { + "name": "Bucket", + "fields": [ + { + "id": 1, + "name": "endpoint", + "type": "string" + }, + { + "id": 3, + "name": "region", + "type": "string" + }, + { + "id": 4, + "name": "bucket", + "type": "string" + }, + { + "id": 5, + "name": "prefix", + "type": "string" + }, + { + "id": 6, + "name": "storage_class", + "type": "string" + } + ] + }, + { + "name": "CloudDynamic", + "fields": [ + { + "id": 1, + "name": "bucket", + "type": "Bucket" + }, + { + "id": 2, + "name": "provider_name", + "type": "string" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 3, + "name": "attrs", + "type": "string" + } + } + ] + }, + { + "name": "HDFS", + "fields": [ + { + "id": 1, + "name": "remote", + "type": "string" + } + ] + }, + { + "name": "BackupResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + }, + { + "id": 2, + "name": "start_key", + "type": "bytes" + }, + { + "id": 3, + "name": "end_key", + "type": "bytes" + }, + { + "id": 4, + "name": "files", + "type": "File", + "is_repeated": true + }, + { + "id": 5, + "name": "api_version", + "type": "kvrpcpb.APIVersion" + } + ] + }, + { + "name": "CheckAdminRequest" + }, + { + "name": "CheckAdminResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + }, + { + "id": 2, + "name": "region", + "type": "metapb.Region" + }, + { + "id": 3, + "name": "has_pending_admin", + "type": "bool" + } + ] + }, + { + "name": "ExternalStorageRestoreRequest", + "fields": [ + { + "id": 1, + "name": "storage_backend", + "type": "StorageBackend" + }, + { + "id": 2, + "name": "object_name", + "type": "string" + }, + { + "id": 3, + "name": "restore_name", + "type": "string" + }, + { + "id": 4, + "name": "content_length", + "type": "uint64" + } + ] + }, + { + "name": "ExternalStorageRestoreResponse" + }, + { + "name": "ExternalStorageSaveRequest", + "fields": [ + { + "id": 1, + "name": "storage_backend", + "type": "StorageBackend" + }, + { + "id": 2, + "name": "object_name", + "type": "string" + }, + { + "id": 3, + "name": "content_length", + "type": "uint64" + } + ] + }, + { + "name": "ExternalStorageSaveResponse" + }, + { + "name": "Metadata", + "fields": [ + { + "id": 1, + "name": "files", + "type": "DataFileInfo", + "is_repeated": true + }, + { + "id": 6, + "name": "file_groups", + "type": "DataFileGroup", + "is_repeated": true + }, + { + "id": 2, + "name": "store_id", + "type": "int64" + }, + { + "id": 3, + "name": "resolved_ts", + "type": "uint64" + }, + { + "id": 4, + "name": "max_ts", + "type": "uint64" + }, + { + "id": 5, + "name": "min_ts", + "type": "uint64" + }, + { + "id": 7, + "name": "meta_version", + "type": "MetaVersion" + } + ] + }, + { + "name": "DataFileGroup", + "fields": [ + { + "id": 1, + "name": "path", + "type": "string" + }, + { + "id": 2, + "name": "data_files_info", + "type": "DataFileInfo", + "is_repeated": true + }, + { + "id": 3, + "name": "min_ts", + "type": "uint64" + }, + { + "id": 4, + "name": "max_ts", + "type": "uint64" + }, + { + "id": 5, + "name": "min_resolved_ts", + "type": "uint64" + }, + { + "id": 6, + "name": "length", + "type": "uint64" + } + ] + }, + { + "name": "DataFileInfo", + "fields": [ + { + "id": 1, + "name": "sha256", + "type": "bytes" + }, + { + "id": 2, + "name": "path", + "type": "string" + }, + { + "id": 3, + "name": "number_of_entries", + "type": "int64" + }, + { + "id": 4, + "name": "min_ts", + "type": "uint64" + }, + { + "id": 5, + "name": "max_ts", + "type": "uint64" + }, + { + "id": 6, + "name": "resolved_ts", + "type": "uint64" + }, + { + "id": 7, + "name": "region_id", + "type": "int64" + }, + { + "id": 8, + "name": "start_key", + "type": "bytes" + }, + { + "id": 9, + "name": "end_key", + "type": "bytes" + }, + { + "id": 10, + "name": "cf", + "type": "string" + }, + { + "id": 11, + "name": "type", + "type": "FileType" + }, + { + "id": 12, + "name": "is_meta", + "type": "bool" + }, + { + "id": 13, + "name": "table_id", + "type": "int64" + }, + { + "id": 14, + "name": "length", + "type": "uint64" + }, + { + "id": 15, + "name": "min_begin_ts_in_default_cf", + "type": "uint64" + }, + { + "id": 16, + "name": "range_offset", + "type": "uint64" + }, + { + "id": 17, + "name": "range_length", + "type": "uint64" + }, + { + "id": 18, + "name": "compression_type", + "type": "CompressionType" + } + ], + "reserved_names": [ + "iv" + ] + }, + { + "name": "StreamBackupError", + "fields": [ + { + "id": 1, + "name": "happen_at", + "type": "uint64" + }, + { + "id": 2, + "name": "error_code", + "type": "string" + }, + { + "id": 3, + "name": "error_message", + "type": "string" + }, + { + "id": 4, + "name": "store_id", + "type": "uint64" + } + ] + } + ], + "services": [ + { + "name": "Backup", + "rpcs": [ + { + "name": "backup", + "in_type": "BackupRequest", + "out_type": "BackupResponse", + "out_streamed": true + }, + { + "name": "CheckPendingAdminOp", + "in_type": "CheckAdminRequest", + "out_type": "CheckAdminResponse", + "out_streamed": true + } + ] + }, + { + "name": "ExternalStorage", + "rpcs": [ + { + "name": "restore", + "in_type": "ExternalStorageRestoreRequest", + "out_type": "ExternalStorageRestoreResponse" + }, + { + "name": "save", + "in_type": "ExternalStorageSaveRequest", + "out_type": "ExternalStorageSaveResponse" + } + ] + } + ], + "imports": [ + { + "path": "kvrpcpb.proto" + }, + { + "path": "errorpb.proto" + }, + { + "path": "metapb.proto" + }, + { + "path": "encryptionpb.proto" + }, + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "backup" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "cdcpb.proto", + "def": { + "enums": [ + { + "name": "Event.LogType", + "enum_fields": [ + { + "name": "UNKNOWN" + }, + { + "name": "PREWRITE", + "integer": 1 + }, + { + "name": "COMMIT", + "integer": 2 + }, + { + "name": "ROLLBACK", + "integer": 3 + }, + { + "name": "COMMITTED", + "integer": 4 + }, + { + "name": "INITIALIZED", + "integer": 5 + } + ] + }, + { + "name": "Row.OpType", + "enum_fields": [ + { + "name": "UNKNOWN" + }, + { + "name": "PUT", + "integer": 1 + }, + { + "name": "DELETE", + "integer": 2 + } + ] + }, + { + "name": "ChangeDataRequest.KvAPI", + "enum_fields": [ + { + "name": "TiDB" + }, + { + "name": "RawKV", + "integer": 1 + }, + { + "name": "TxnKV", + "integer": 2 + } + ] + } + ], + "messages": [ + { + "name": "Header", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + }, + { + "id": 2, + "name": "ticdc_version", + "type": "string" + } + ] + }, + { + "name": "DuplicateRequest", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + } + ] + }, + { + "name": "Compatibility", + "fields": [ + { + "id": 1, + "name": "required_version", + "type": "string" + } + ] + }, + { + "name": "ClusterIDMismatch", + "fields": [ + { + "id": 1, + "name": "current", + "type": "uint64" + }, + { + "id": 2, + "name": "request", + "type": "uint64" + } + ] + }, + { + "name": "Error", + "fields": [ + { + "id": 1, + "name": "not_leader", + "type": "errorpb.NotLeader" + }, + { + "id": 2, + "name": "region_not_found", + "type": "errorpb.RegionNotFound" + }, + { + "id": 3, + "name": "epoch_not_match", + "type": "errorpb.EpochNotMatch" + }, + { + "id": 4, + "name": "duplicate_request", + "type": "DuplicateRequest" + }, + { + "id": 5, + "name": "compatibility", + "type": "Compatibility" + }, + { + "id": 6, + "name": "cluster_id_mismatch", + "type": "ClusterIDMismatch" + } + ] + }, + { + "name": "TxnInfo", + "fields": [ + { + "id": 1, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 2, + "name": "primary", + "type": "bytes" + } + ] + }, + { + "name": "TxnStatus", + "fields": [ + { + "id": 1, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 2, + "name": "min_commit_ts", + "type": "uint64" + }, + { + "id": 3, + "name": "commit_ts", + "type": "uint64" + }, + { + "id": 4, + "name": "is_rolled_back", + "type": "bool" + } + ] + }, + { + "name": "Event", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "index", + "type": "uint64" + }, + { + "id": 7, + "name": "request_id", + "type": "uint64" + }, + { + "id": 3, + "name": "entries", + "type": "Entries" + }, + { + "id": 4, + "name": "admin", + "type": "Admin" + }, + { + "id": 5, + "name": "error", + "type": "Error" + }, + { + "id": 6, + "name": "resolved_ts", + "type": "uint64", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "id": 8, + "name": "long_txn", + "type": "LongTxn" + } + ], + "messages": [ + { + "name": "Row", + "fields": [ + { + "id": 1, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 2, + "name": "commit_ts", + "type": "uint64" + }, + { + "id": 3, + "name": "type", + "type": "LogType" + }, + { + "id": 4, + "name": "op_type", + "type": "OpType" + }, + { + "id": 5, + "name": "key", + "type": "bytes" + }, + { + "id": 6, + "name": "value", + "type": "bytes" + }, + { + "id": 7, + "name": "old_value", + "type": "bytes" + }, + { + "id": 8, + "name": "expire_ts_unix_secs", + "type": "uint64" + }, + { + "id": 9, + "name": "txn_source", + "type": "uint64" + } + ] + }, + { + "name": "Entries", + "fields": [ + { + "id": 1, + "name": "entries", + "type": "Row", + "is_repeated": true + } + ] + }, + { + "name": "Admin", + "fields": [ + { + "id": 1, + "name": "admin_request", + "type": "raft_cmdpb.AdminRequest" + }, + { + "id": 2, + "name": "admin_response", + "type": "raft_cmdpb.AdminResponse" + } + ] + }, + { + "name": "LongTxn", + "fields": [ + { + "id": 1, + "name": "txn_info", + "type": "TxnInfo", + "is_repeated": true + } + ] + } + ] + }, + { + "name": "ChangeDataEvent", + "fields": [ + { + "id": 1, + "name": "events", + "type": "Event", + "is_repeated": true + }, + { + "id": 2, + "name": "resolved_ts", + "type": "ResolvedTs" + } + ] + }, + { + "name": "ResolvedTs", + "fields": [ + { + "id": 1, + "name": "regions", + "type": "uint64", + "is_repeated": true + }, + { + "id": 2, + "name": "ts", + "type": "uint64" + } + ] + }, + { + "name": "ChangeDataRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "Header" + }, + { + "id": 2, + "name": "region_id", + "type": "uint64" + }, + { + "id": 3, + "name": "region_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 4, + "name": "checkpoint_ts", + "type": "uint64" + }, + { + "id": 5, + "name": "start_key", + "type": "bytes" + }, + { + "id": 6, + "name": "end_key", + "type": "bytes" + }, + { + "id": 7, + "name": "request_id", + "type": "uint64" + }, + { + "id": 8, + "name": "extra_op", + "type": "kvrpcpb.ExtraOp" + }, + { + "id": 9, + "name": "register", + "type": "Register" + }, + { + "id": 10, + "name": "notify_txn_status", + "type": "NotifyTxnStatus" + }, + { + "id": 11, + "name": "kv_api", + "type": "KvAPI" + }, + { + "id": 12, + "name": "filter_loop", + "type": "bool" + } + ], + "messages": [ + { + "name": "Register" + }, + { + "name": "NotifyTxnStatus", + "fields": [ + { + "id": 1, + "name": "txn_status", + "type": "TxnStatus", + "is_repeated": true + } + ] + } + ] + } + ], + "services": [ + { + "name": "ChangeData", + "rpcs": [ + { + "name": "EventFeed", + "in_type": "ChangeDataRequest", + "out_type": "ChangeDataEvent", + "in_streamed": true, + "out_streamed": true + } + ] + } + ], + "imports": [ + { + "path": "raft_cmdpb.proto" + }, + { + "path": "metapb.proto" + }, + { + "path": "errorpb.proto" + }, + { + "path": "kvrpcpb.proto" + }, + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "cdcpb" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "configpb.proto", + "def": { + "enums": [ + { + "name": "StatusCode", + "enum_fields": [ + { + "name": "UNKNOWN" + }, + { + "name": "OK", + "integer": 1 + }, + { + "name": "WRONG_VERSION", + "integer": 2 + }, + { + "name": "NOT_CHANGE", + "integer": 3 + }, + { + "name": "COMPONENT_NOT_FOUND", + "integer": 4 + }, + { + "name": "COMPONENT_ID_NOT_FOUND", + "integer": 5 + } + ] + } + ], + "messages": [ + { + "name": "Status", + "fields": [ + { + "id": 1, + "name": "code", + "type": "StatusCode" + }, + { + "id": 2, + "name": "message", + "type": "string" + } + ] + }, + { + "name": "Version", + "fields": [ + { + "id": 1, + "name": "local", + "type": "uint64" + }, + { + "id": 2, + "name": "global", + "type": "uint64" + } + ] + }, + { + "name": "Local", + "fields": [ + { + "id": 1, + "name": "component_id", + "type": "string" + } + ] + }, + { + "name": "Global", + "fields": [ + { + "id": 1, + "name": "component", + "type": "string" + } + ] + }, + { + "name": "ConfigKind", + "fields": [ + { + "id": 1, + "name": "local", + "type": "Local" + }, + { + "id": 2, + "name": "global", + "type": "Global" + } + ] + }, + { + "name": "ConfigEntry", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "value", + "type": "string" + } + ] + }, + { + "name": "LocalConfig", + "fields": [ + { + "id": 1, + "name": "version", + "type": "Version" + }, + { + "id": 2, + "name": "component", + "type": "string" + }, + { + "id": 3, + "name": "component_id", + "type": "string" + }, + { + "id": 4, + "name": "config", + "type": "string" + } + ] + }, + { + "name": "Header", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + } + ] + }, + { + "name": "CreateRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "Header" + }, + { + "id": 2, + "name": "version", + "type": "Version" + }, + { + "id": 3, + "name": "component", + "type": "string" + }, + { + "id": 4, + "name": "component_id", + "type": "string" + }, + { + "id": 5, + "name": "config", + "type": "string" + } + ] + }, + { + "name": "CreateResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "Header" + }, + { + "id": 2, + "name": "status", + "type": "Status" + }, + { + "id": 3, + "name": "version", + "type": "Version" + }, + { + "id": 4, + "name": "config", + "type": "string" + } + ] + }, + { + "name": "GetAllRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "Header" + } + ] + }, + { + "name": "GetAllResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "Header" + }, + { + "id": 2, + "name": "status", + "type": "Status" + }, + { + "id": 3, + "name": "local_configs", + "type": "LocalConfig", + "is_repeated": true + } + ] + }, + { + "name": "GetRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "Header" + }, + { + "id": 2, + "name": "version", + "type": "Version" + }, + { + "id": 3, + "name": "component", + "type": "string" + }, + { + "id": 4, + "name": "component_id", + "type": "string" + } + ] + }, + { + "name": "GetResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "Header" + }, + { + "id": 2, + "name": "status", + "type": "Status" + }, + { + "id": 3, + "name": "version", + "type": "Version" + }, + { + "id": 4, + "name": "config", + "type": "string" + } + ] + }, + { + "name": "UpdateRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "Header" + }, + { + "id": 2, + "name": "version", + "type": "Version" + }, + { + "id": 3, + "name": "kind", + "type": "ConfigKind" + }, + { + "id": 4, + "name": "entries", + "type": "ConfigEntry", + "is_repeated": true + } + ] + }, + { + "name": "UpdateResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "Header" + }, + { + "id": 2, + "name": "status", + "type": "Status" + }, + { + "id": 3, + "name": "version", + "type": "Version" + }, + { + "id": 4, + "name": "config", + "type": "string" + } + ] + }, + { + "name": "DeleteRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "Header" + }, + { + "id": 2, + "name": "version", + "type": "Version" + }, + { + "id": 3, + "name": "kind", + "type": "ConfigKind" + } + ] + }, + { + "name": "DeleteResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "Header" + }, + { + "id": 2, + "name": "status", + "type": "Status" + }, + { + "id": 3, + "name": "version", + "type": "Version" + } + ] + } + ], + "services": [ + { + "name": "Config", + "rpcs": [ + { + "name": "Create", + "in_type": "CreateRequest", + "out_type": "CreateResponse" + }, + { + "name": "GetAll", + "in_type": "GetAllRequest", + "out_type": "GetAllResponse" + }, + { + "name": "Get", + "in_type": "GetRequest", + "out_type": "GetResponse", + "options": [ + { + "name": "(google.api.http)", + "aggregated": [ + { + "name": "get", + "value": "/component" + } + ] + } + ] + }, + { + "name": "Update", + "in_type": "UpdateRequest", + "out_type": "UpdateResponse", + "options": [ + { + "name": "(google.api.http)", + "aggregated": [ + { + "name": "post", + "value": "/component" + }, + { + "name": "body", + "value": "*" + } + ] + } + ] + }, + { + "name": "Delete", + "in_type": "DeleteRequest", + "out_type": "DeleteResponse", + "options": [ + { + "name": "(google.api.http)", + "aggregated": [ + { + "name": "delete", + "value": "/component" + } + ] + } + ] + } + ] + } + ], + "imports": [ + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + }, + { + "path": "google/api/annotations.proto" + } + ], + "package": { + "name": "configpb" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + } + ] + } + }, + { + "protopath": "coprocessor.proto", + "def": { + "messages": [ + { + "name": "KeyRange", + "fields": [ + { + "id": 1, + "name": "start", + "type": "bytes" + }, + { + "id": 2, + "name": "end", + "type": "bytes" + } + ] + }, + { + "name": "Request", + "fields": [ + { + "id": 1, + "name": "context", + "type": "kvrpcpb.Context" + }, + { + "id": 2, + "name": "tp", + "type": "int64" + }, + { + "id": 3, + "name": "data", + "type": "bytes" + }, + { + "id": 7, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 4, + "name": "ranges", + "type": "KeyRange", + "is_repeated": true + }, + { + "id": 5, + "name": "is_cache_enabled", + "type": "bool" + }, + { + "id": 6, + "name": "cache_if_match_version", + "type": "uint64" + }, + { + "id": 8, + "name": "schema_ver", + "type": "int64" + }, + { + "id": 9, + "name": "is_trace_enabled", + "type": "bool" + }, + { + "id": 10, + "name": "paging_size", + "type": "uint64" + }, + { + "id": 11, + "name": "tasks", + "type": "StoreBatchTask", + "is_repeated": true + } + ] + }, + { + "name": "Response", + "fields": [ + { + "id": 1, + "name": "data", + "type": "bytes", + "options": [ + { + "name": "(gogoproto.customtype)", + "value": "github.com/pingcap/kvproto/pkg/sharedbytes.SharedBytes" + }, + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] + }, + { + "id": 2, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 3, + "name": "locked", + "type": "kvrpcpb.LockInfo" + }, + { + "id": 4, + "name": "other_error", + "type": "string" + }, + { + "id": 5, + "name": "range", + "type": "KeyRange" + }, + { + "id": 6, + "name": "exec_details", + "type": "kvrpcpb.ExecDetails" + }, + { + "id": 11, + "name": "exec_details_v2", + "type": "kvrpcpb.ExecDetailsV2" + }, + { + "id": 7, + "name": "is_cache_hit", + "type": "bool" + }, + { + "id": 8, + "name": "cache_last_version", + "type": "uint64" + }, + { + "id": 9, + "name": "can_be_cached", + "type": "bool" + }, + { + "id": 12, + "name": "latest_buckets_version", + "type": "uint64" + }, + { + "id": 13, + "name": "batch_responses", + "type": "StoreBatchTaskResponse", + "is_repeated": true + } + ], + "reserved_ids": [ + 10 + ] + }, + { + "name": "RegionInfo", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "region_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 3, + "name": "ranges", + "type": "KeyRange", + "is_repeated": true + } + ] + }, + { + "name": "TableRegions", + "fields": [ + { + "id": 1, + "name": "physical_table_id", + "type": "int64" + }, + { + "id": 2, + "name": "regions", + "type": "RegionInfo", + "is_repeated": true + } + ] + }, + { + "name": "BatchRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "kvrpcpb.Context" + }, + { + "id": 2, + "name": "tp", + "type": "int64" + }, + { + "id": 3, + "name": "data", + "type": "bytes" + }, + { + "id": 4, + "name": "regions", + "type": "RegionInfo", + "is_repeated": true + }, + { + "id": 5, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 6, + "name": "schema_ver", + "type": "int64" + }, + { + "id": 7, + "name": "table_regions", + "type": "TableRegions", + "is_repeated": true + }, + { + "id": 8, + "name": "log_id", + "type": "string" + } + ] + }, + { + "name": "BatchResponse", + "fields": [ + { + "id": 1, + "name": "data", + "type": "bytes", + "options": [ + { + "name": "(gogoproto.customtype)", + "value": "github.com/pingcap/kvproto/pkg/sharedbytes.SharedBytes" + }, + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] + }, + { + "id": 2, + "name": "other_error", + "type": "string" + }, + { + "id": 3, + "name": "exec_details", + "type": "kvrpcpb.ExecDetails" + }, + { + "id": 4, + "name": "retry_regions", + "type": "metapb.Region", + "is_repeated": true + } + ] + }, + { + "name": "StoreBatchTask", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "region_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 3, + "name": "peer", + "type": "metapb.Peer" + }, + { + "id": 4, + "name": "ranges", + "type": "KeyRange", + "is_repeated": true + }, + { + "id": 5, + "name": "task_id", + "type": "uint64" + } + ] + }, + { + "name": "StoreBatchTaskResponse", + "fields": [ + { + "id": 1, + "name": "data", + "type": "bytes", + "options": [ + { + "name": "(gogoproto.customtype)", + "value": "github.com/pingcap/kvproto/pkg/sharedbytes.SharedBytes" + }, + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] + }, + { + "id": 2, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 3, + "name": "locked", + "type": "kvrpcpb.LockInfo" + }, + { + "id": 4, + "name": "other_error", + "type": "string" + }, + { + "id": 5, + "name": "task_id", + "type": "uint64" + }, + { + "id": 6, + "name": "exec_details_v2", + "type": "kvrpcpb.ExecDetailsV2" + } + ] + } + ], + "imports": [ + { + "path": "errorpb.proto" + }, + { + "path": "kvrpcpb.proto" + }, + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + }, + { + "path": "metapb.proto" + } + ], + "package": { + "name": "coprocessor" + }, + "options": [ + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "deadlock.proto", + "def": { + "enums": [ + { + "name": "DeadlockRequestType", + "enum_fields": [ + { + "name": "Detect" + }, + { + "name": "CleanUpWaitFor", + "integer": 1 + }, + { + "name": "CleanUp", + "integer": 2 + } + ] + } + ], + "messages": [ + { + "name": "WaitForEntriesRequest" + }, + { + "name": "WaitForEntriesResponse", + "fields": [ + { + "id": 1, + "name": "entries", + "type": "WaitForEntry", + "is_repeated": true, + "options": [ + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] + } + ] + }, + { + "name": "WaitForEntry", + "fields": [ + { + "id": 1, + "name": "txn", + "type": "uint64" + }, + { + "id": 2, + "name": "wait_for_txn", + "type": "uint64" + }, + { + "id": 3, + "name": "key_hash", + "type": "uint64" + }, + { + "id": 4, + "name": "key", + "type": "bytes" + }, + { + "id": 5, + "name": "resource_group_tag", + "type": "bytes" + }, + { + "id": 6, + "name": "wait_time", + "type": "uint64" + } + ] + }, + { + "name": "DeadlockRequest", + "fields": [ + { + "id": 1, + "name": "tp", + "type": "DeadlockRequestType" + }, + { + "id": 2, + "name": "entry", + "type": "WaitForEntry", + "options": [ + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] + } + ] + }, + { + "name": "DeadlockResponse", + "fields": [ + { + "id": 1, + "name": "entry", + "type": "WaitForEntry", + "options": [ + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] + }, + { + "id": 2, + "name": "deadlock_key_hash", + "type": "uint64" + }, + { + "id": 3, + "name": "wait_chain", + "type": "WaitForEntry", + "is_repeated": true + } + ] + } + ], + "services": [ + { + "name": "Deadlock", + "rpcs": [ + { + "name": "GetWaitForEntries", + "in_type": "WaitForEntriesRequest", + "out_type": "WaitForEntriesResponse" + }, + { + "name": "Detect", + "in_type": "DeadlockRequest", + "out_type": "DeadlockResponse", + "in_streamed": true, + "out_streamed": true + } + ] + } + ], + "imports": [ + { + "path": "gogoproto/gogo.proto" + } + ], + "package": { + "name": "deadlock" + } + } + }, + { + "protopath": "debugpb.proto", + "def": { + "enums": [ + { + "name": "DB", + "enum_fields": [ + { + "name": "INVALID" + }, + { + "name": "KV", + "integer": 1 + }, + { + "name": "RAFT", + "integer": 2 + } + ] + }, + { + "name": "MODULE", + "enum_fields": [ + { + "name": "UNUSED" + }, + { + "name": "KVDB", + "integer": 1 + }, + { + "name": "RAFTDB", + "integer": 2 + }, + { + "name": "READPOOL", + "integer": 3 + }, + { + "name": "SERVER", + "integer": 4 + }, + { + "name": "STORAGE", + "integer": 5 + }, + { + "name": "PD", + "integer": 6 + }, + { + "name": "METRIC", + "integer": 7 + }, + { + "name": "COPROCESSOR", + "integer": 8 + }, + { + "name": "SECURITY", + "integer": 9 + }, + { + "name": "IMPORT", + "integer": 10 + } + ] + }, + { + "name": "BottommostLevelCompaction", + "enum_fields": [ + { + "name": "Skip" + }, + { + "name": "Force", + "integer": 1 + }, + { + "name": "IfHaveCompactionFilter", + "integer": 2 + } + ] + } + ], + "messages": [ + { + "name": "GetRequest", + "fields": [ + { + "id": 1, + "name": "db", + "type": "DB" + }, + { + "id": 2, + "name": "cf", + "type": "string" + }, + { + "id": 3, + "name": "key", + "type": "bytes" + } + ] + }, + { + "name": "GetResponse", + "fields": [ + { + "id": 1, + "name": "value", + "type": "bytes" + } + ] + }, + { + "name": "RaftLogRequest", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "log_index", + "type": "uint64" + } + ] + }, + { + "name": "RaftLogResponse", + "fields": [ + { + "id": 1, + "name": "entry", + "type": "eraftpb.Entry" + } + ] + }, + { + "name": "RegionInfoRequest", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + } + ] + }, + { + "name": "RegionInfoResponse", + "fields": [ + { + "id": 1, + "name": "raft_local_state", + "type": "raft_serverpb.RaftLocalState" + }, + { + "id": 2, + "name": "raft_apply_state", + "type": "raft_serverpb.RaftApplyState" + }, + { + "id": 3, + "name": "region_local_state", + "type": "raft_serverpb.RegionLocalState" + } + ] + }, + { + "name": "RegionSizeRequest", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "cfs", + "type": "string", + "is_repeated": true + } + ] + }, + { + "name": "RegionSizeResponse", + "fields": [ + { + "id": 1, + "name": "entries", + "type": "Entry", + "is_repeated": true + } + ], + "messages": [ + { + "name": "Entry", + "fields": [ + { + "id": 1, + "name": "cf", + "type": "string" + }, + { + "id": 2, + "name": "size", + "type": "uint64" + } + ] + } + ] + }, + { + "name": "ScanMvccRequest", + "fields": [ + { + "id": 1, + "name": "from_key", + "type": "bytes" + }, + { + "id": 2, + "name": "to_key", + "type": "bytes" + }, + { + "id": 3, + "name": "limit", + "type": "uint64" + } + ] + }, + { + "name": "ScanMvccResponse", + "fields": [ + { + "id": 1, + "name": "key", + "type": "bytes" + }, + { + "id": 2, + "name": "info", + "type": "kvrpcpb.MvccInfo" + } + ] + }, + { + "name": "CompactRequest", + "fields": [ + { + "id": 1, + "name": "db", + "type": "DB" + }, + { + "id": 2, + "name": "cf", + "type": "string" + }, + { + "id": 3, + "name": "from_key", + "type": "bytes" + }, + { + "id": 4, + "name": "to_key", + "type": "bytes" + }, + { + "id": 5, + "name": "threads", + "type": "uint32" + }, + { + "id": 6, + "name": "bottommost_level_compaction", + "type": "BottommostLevelCompaction" + } + ] + }, + { + "name": "CompactResponse" + }, + { + "name": "InjectFailPointRequest", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "actions", + "type": "string" + } + ] + }, + { + "name": "InjectFailPointResponse" + }, + { + "name": "RecoverFailPointRequest", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + } + ] + }, + { + "name": "RecoverFailPointResponse" + }, + { + "name": "ListFailPointsRequest" + }, + { + "name": "ListFailPointsResponse", + "fields": [ + { + "id": 1, + "name": "entries", + "type": "Entry", + "is_repeated": true + } + ], + "messages": [ + { + "name": "Entry", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "actions", + "type": "string" + } + ] + } + ] + }, + { + "name": "GetMetricsRequest", + "fields": [ + { + "id": 1, + "name": "all", + "type": "bool" + } + ] + }, + { + "name": "GetMetricsResponse", + "fields": [ + { + "id": 1, + "name": "prometheus", + "type": "string" + }, + { + "id": 2, + "name": "rocksdb_kv", + "type": "string" + }, + { + "id": 3, + "name": "rocksdb_raft", + "type": "string" + }, + { + "id": 4, + "name": "jemalloc", + "type": "string" + }, + { + "id": 5, + "name": "store_id", + "type": "uint64" + } + ] + }, + { + "name": "RegionConsistencyCheckRequest", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + } + ] + }, + { + "name": "RegionConsistencyCheckResponse" + }, + { + "name": "ModifyTikvConfigRequest", + "fields": [ + { + "id": 1, + "name": "module", + "type": "MODULE" + }, + { + "id": 2, + "name": "config_name", + "type": "string" + }, + { + "id": 3, + "name": "config_value", + "type": "string" + } + ] + }, + { + "name": "ModifyTikvConfigResponse" + }, + { + "name": "Property", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "value", + "type": "string" + } + ] + }, + { + "name": "GetRegionPropertiesRequest", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + } + ] + }, + { + "name": "GetRegionPropertiesResponse", + "fields": [ + { + "id": 1, + "name": "props", + "type": "Property", + "is_repeated": true + } + ] + }, + { + "name": "GetStoreInfoRequest" + }, + { + "name": "GetStoreInfoResponse", + "fields": [ + { + "id": 1, + "name": "store_id", + "type": "uint64" + }, + { + "id": 2, + "name": "api_version", + "type": "kvrpcpb.APIVersion" + } + ] + }, + { + "name": "GetClusterInfoRequest" + }, + { + "name": "GetClusterInfoResponse", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + } + ] + }, + { + "name": "GetAllRegionsInStoreRequest" + }, + { + "name": "GetAllRegionsInStoreResponse", + "fields": [ + { + "id": 1, + "name": "regions", + "type": "uint64", + "is_repeated": true + } + ] + }, + { + "name": "ResetToVersionRequest", + "fields": [ + { + "id": 1, + "name": "ts", + "type": "uint64" + } + ] + }, + { + "name": "ResetToVersionResponse" + } + ], + "services": [ + { + "name": "Debug", + "rpcs": [ + { + "name": "Get", + "in_type": "GetRequest", + "out_type": "GetResponse" + }, + { + "name": "RaftLog", + "in_type": "RaftLogRequest", + "out_type": "RaftLogResponse" + }, + { + "name": "RegionInfo", + "in_type": "RegionInfoRequest", + "out_type": "RegionInfoResponse" + }, + { + "name": "RegionSize", + "in_type": "RegionSizeRequest", + "out_type": "RegionSizeResponse" + }, + { + "name": "ScanMvcc", + "in_type": "ScanMvccRequest", + "out_type": "ScanMvccResponse", + "out_streamed": true + }, + { + "name": "Compact", + "in_type": "CompactRequest", + "out_type": "CompactResponse" + }, + { + "name": "InjectFailPoint", + "in_type": "InjectFailPointRequest", + "out_type": "InjectFailPointResponse" + }, + { + "name": "RecoverFailPoint", + "in_type": "RecoverFailPointRequest", + "out_type": "RecoverFailPointResponse" + }, + { + "name": "ListFailPoints", + "in_type": "ListFailPointsRequest", + "out_type": "ListFailPointsResponse" + }, + { + "name": "GetMetrics", + "in_type": "GetMetricsRequest", + "out_type": "GetMetricsResponse" + }, + { + "name": "CheckRegionConsistency", + "in_type": "RegionConsistencyCheckRequest", + "out_type": "RegionConsistencyCheckResponse" + }, + { + "name": "ModifyTikvConfig", + "in_type": "ModifyTikvConfigRequest", + "out_type": "ModifyTikvConfigResponse" + }, + { + "name": "GetRegionProperties", + "in_type": "GetRegionPropertiesRequest", + "out_type": "GetRegionPropertiesResponse" + }, + { + "name": "GetStoreInfo", + "in_type": "GetStoreInfoRequest", + "out_type": "GetStoreInfoResponse" + }, + { + "name": "GetClusterInfo", + "in_type": "GetClusterInfoRequest", + "out_type": "GetClusterInfoResponse" + }, + { + "name": "GetAllRegionsInStore", + "in_type": "GetAllRegionsInStoreRequest", + "out_type": "GetAllRegionsInStoreResponse" + }, + { + "name": "ResetToVersion", + "in_type": "ResetToVersionRequest", + "out_type": "ResetToVersionResponse" + } + ] + } + ], + "imports": [ + { + "path": "eraftpb.proto" + }, + { + "path": "kvrpcpb.proto" + }, + { + "path": "raft_serverpb.proto" + }, + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "debugpb" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "diagnosticspb.proto", + "def": { + "enums": [ + { + "name": "LogLevel", + "enum_fields": [ + { + "name": "UNKNOWN" + }, + { + "name": "Debug", + "integer": 1 + }, + { + "name": "Info", + "integer": 2 + }, + { + "name": "Warn", + "integer": 3 + }, + { + "name": "Trace", + "integer": 4 + }, + { + "name": "Critical", + "integer": 5 + }, + { + "name": "Error", + "integer": 6 + } + ] + }, + { + "name": "SearchLogRequest.Target", + "enum_fields": [ + { + "name": "Normal" + }, + { + "name": "Slow", + "integer": 1 + } + ] + }, + { + "name": "ServerInfoType", + "enum_fields": [ + { + "name": "All" + }, + { + "name": "HardwareInfo", + "integer": 1 + }, + { + "name": "SystemInfo", + "integer": 2 + }, + { + "name": "LoadInfo", + "integer": 3 + } + ] + } + ], + "messages": [ + { + "name": "SearchLogRequest", + "fields": [ + { + "id": 1, + "name": "start_time", + "type": "int64" + }, + { + "id": 2, + "name": "end_time", + "type": "int64" + }, + { + "id": 3, + "name": "levels", + "type": "LogLevel", + "is_repeated": true + }, + { + "id": 4, + "name": "patterns", + "type": "string", + "is_repeated": true + }, + { + "id": 5, + "name": "target", + "type": "Target" + } + ] + }, + { + "name": "SearchLogResponse", + "fields": [ + { + "id": 1, + "name": "messages", + "type": "LogMessage", + "is_repeated": true + } + ] + }, + { + "name": "LogMessage", + "fields": [ + { + "id": 1, + "name": "time", + "type": "int64" + }, + { + "id": 2, + "name": "level", + "type": "LogLevel" + }, + { + "id": 3, + "name": "message", + "type": "string" + } + ] + }, + { + "name": "ServerInfoRequest", + "fields": [ + { + "id": 1, + "name": "tp", + "type": "ServerInfoType" + } + ] + }, + { + "name": "ServerInfoPair", + "fields": [ + { + "id": 1, + "name": "key", + "type": "string" + }, + { + "id": 2, + "name": "value", + "type": "string" + } + ] + }, + { + "name": "ServerInfoItem", + "fields": [ + { + "id": 1, + "name": "tp", + "type": "string" + }, + { + "id": 2, + "name": "name", + "type": "string" + }, + { + "id": 3, + "name": "pairs", + "type": "ServerInfoPair", + "is_repeated": true + } + ] + }, + { + "name": "ServerInfoResponse", + "fields": [ + { + "id": 1, + "name": "items", + "type": "ServerInfoItem", + "is_repeated": true + } + ] + } + ], + "services": [ + { + "name": "Diagnostics", + "rpcs": [ + { + "name": "search_log", + "in_type": "SearchLogRequest", + "out_type": "SearchLogResponse", + "out_streamed": true + }, + { + "name": "server_info", + "in_type": "ServerInfoRequest", + "out_type": "ServerInfoResponse" + } + ] + } + ], + "imports": [ + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "diagnosticspb" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "disk_usage.proto", + "def": { + "enums": [ + { + "name": "DiskUsage", + "enum_fields": [ + { + "name": "Normal" + }, + { + "name": "AlmostFull", + "integer": 1 + }, + { + "name": "AlreadyFull", + "integer": 2 + } + ] + } + ], + "imports": [ + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "disk_usage" + }, + "options": [ + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "encryptionpb.proto", + "def": { + "enums": [ + { + "name": "EncryptionMethod", + "enum_fields": [ + { + "name": "UNKNOWN" + }, + { + "name": "PLAINTEXT", + "integer": 1 + }, + { + "name": "AES128_CTR", + "integer": 2 + }, + { + "name": "AES192_CTR", + "integer": 3 + }, + { + "name": "AES256_CTR", + "integer": 4 + }, + { + "name": "SM4_CTR", + "integer": 5 + } + ] + } + ], + "messages": [ + { + "name": "EncryptionMeta", + "fields": [ + { + "id": 1, + "name": "key_id", + "type": "uint64" + }, + { + "id": 2, + "name": "iv", + "type": "bytes" + } + ] + }, + { + "name": "FileInfo", + "fields": [ + { + "id": 1, + "name": "key_id", + "type": "uint64" + }, + { + "id": 2, + "name": "iv", + "type": "bytes" + }, + { + "id": 3, + "name": "method", + "type": "EncryptionMethod" + } + ] + }, + { + "name": "FileDictionary", + "maps": [ + { + "key_type": "string", + "field": { + "id": 1, + "name": "files", + "type": "FileInfo" + } + } + ] + }, + { + "name": "DataKey", + "fields": [ + { + "id": 1, + "name": "key", + "type": "bytes" + }, + { + "id": 2, + "name": "method", + "type": "EncryptionMethod" + }, + { + "id": 3, + "name": "creation_time", + "type": "uint64" + }, + { + "id": 4, + "name": "was_exposed", + "type": "bool" + } + ] + }, + { + "name": "KeyDictionary", + "fields": [ + { + "id": 2, + "name": "current_key_id", + "type": "uint64" + } + ], + "maps": [ + { + "key_type": "uint64", + "field": { + "id": 1, + "name": "keys", + "type": "DataKey" + } + } + ] + }, + { + "name": "MasterKey", + "fields": [ + { + "id": 1, + "name": "plaintext", + "type": "MasterKeyPlaintext" + }, + { + "id": 2, + "name": "file", + "type": "MasterKeyFile" + }, + { + "id": 3, + "name": "kms", + "type": "MasterKeyKms" + } + ] + }, + { + "name": "MasterKeyPlaintext" + }, + { + "name": "MasterKeyFile", + "fields": [ + { + "id": 1, + "name": "path", + "type": "string" + } + ] + }, + { + "name": "MasterKeyKms", + "fields": [ + { + "id": 1, + "name": "vendor", + "type": "string" + }, + { + "id": 2, + "name": "key_id", + "type": "string" + }, + { + "id": 3, + "name": "region", + "type": "string" + }, + { + "id": 4, + "name": "endpoint", + "type": "string" + } + ] + }, + { + "name": "EncryptedContent", + "fields": [ + { + "id": 2, + "name": "content", + "type": "bytes" + }, + { + "id": 3, + "name": "master_key", + "type": "MasterKey" + }, + { + "id": 4, + "name": "iv", + "type": "bytes" + }, + { + "id": 5, + "name": "ciphertext_key", + "type": "bytes" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 1, + "name": "metadata", + "type": "bytes" + } + } + ] + } + ], + "imports": [ + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "encryptionpb" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "enginepb.proto", + "def": { + "messages": [ + { + "name": "CommandRequestHeader", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "index", + "type": "uint64" + }, + { + "id": 3, + "name": "term", + "type": "uint64" + }, + { + "id": 4, + "name": "sync_log", + "type": "bool" + }, + { + "id": 5, + "name": "destroy", + "type": "bool" + }, + { + "id": 6, + "name": "context", + "type": "bytes" + } + ] + }, + { + "name": "CommandRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "CommandRequestHeader" + }, + { + "id": 2, + "name": "requests", + "type": "raft_cmdpb.Request", + "is_repeated": true + }, + { + "id": 3, + "name": "admin_request", + "type": "raft_cmdpb.AdminRequest" + }, + { + "id": 4, + "name": "admin_response", + "type": "raft_cmdpb.AdminResponse" + } + ] + }, + { + "name": "CommandRequestBatch", + "fields": [ + { + "id": 1, + "name": "requests", + "type": "CommandRequest", + "is_repeated": true + } + ] + }, + { + "name": "CommandResponseHeader", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "destroyed", + "type": "bool" + } + ] + }, + { + "name": "CommandResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "CommandResponseHeader" + }, + { + "id": 2, + "name": "apply_state", + "type": "raft_serverpb.RaftApplyState" + }, + { + "id": 3, + "name": "applied_term", + "type": "uint64" + } + ] + }, + { + "name": "CommandResponseBatch", + "fields": [ + { + "id": 1, + "name": "responses", + "type": "CommandResponse", + "is_repeated": true + } + ] + }, + { + "name": "SnapshotState", + "fields": [ + { + "id": 1, + "name": "region", + "type": "metapb.Region" + }, + { + "id": 2, + "name": "peer", + "type": "metapb.Peer" + }, + { + "id": 3, + "name": "apply_state", + "type": "raft_serverpb.RaftApplyState" + } + ] + }, + { + "name": "SnapshotData", + "fields": [ + { + "id": 1, + "name": "cf", + "type": "string" + }, + { + "id": 2, + "name": "checksum", + "type": "uint32" + }, + { + "id": 3, + "name": "data", + "type": "raft_serverpb.KeyValue", + "is_repeated": true + } + ] + }, + { + "name": "SnapshotRequest", + "fields": [ + { + "id": 1, + "name": "state", + "type": "SnapshotState" + }, + { + "id": 2, + "name": "data", + "type": "SnapshotData" + } + ] + }, + { + "name": "SnapshotDone" + } + ], + "services": [ + { + "name": "Engine", + "rpcs": [ + { + "name": "ApplyCommandBatch", + "in_type": "CommandRequestBatch", + "out_type": "CommandResponseBatch", + "in_streamed": true, + "out_streamed": true + }, + { + "name": "ApplySnapshot", + "in_type": "SnapshotRequest", + "out_type": "SnapshotDone", + "in_streamed": true + } + ] + } + ], + "imports": [ + { + "path": "metapb.proto" + }, + { + "path": "raft_cmdpb.proto" + }, + { + "path": "raft_serverpb.proto" + } + ], + "package": { + "name": "enginepb" + } + } + }, + { + "protopath": "errorpb.proto", + "def": { + "messages": [ + { + "name": "NotLeader", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "leader", + "type": "metapb.Peer" + } + ] + }, + { + "name": "IsWitness", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + } + ] + }, + { + "name": "DiskFull", + "fields": [ + { + "id": 1, + "name": "store_id", + "type": "uint64", + "is_repeated": true + }, + { + "id": 2, + "name": "reason", + "type": "string" + } + ] + }, + { + "name": "StoreNotMatch", + "fields": [ + { + "id": 1, + "name": "request_store_id", + "type": "uint64" + }, + { + "id": 2, + "name": "actual_store_id", + "type": "uint64" + } + ] + }, + { + "name": "RegionNotFound", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + } + ] + }, + { + "name": "RegionNotInitialized", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + } + ] + }, + { + "name": "KeyNotInRegion", + "fields": [ + { + "id": 1, + "name": "key", + "type": "bytes" + }, + { + "id": 2, + "name": "region_id", + "type": "uint64" + }, + { + "id": 3, + "name": "start_key", + "type": "bytes" + }, + { + "id": 4, + "name": "end_key", + "type": "bytes" + } + ] + }, + { + "name": "EpochNotMatch", + "fields": [ + { + "id": 1, + "name": "current_regions", + "type": "metapb.Region", + "is_repeated": true + } + ] + }, + { + "name": "ServerIsBusy", + "fields": [ + { + "id": 1, + "name": "reason", + "type": "string" + }, + { + "id": 2, + "name": "backoff_ms", + "type": "uint64" + }, + { + "id": 3, + "name": "estimated_wait_ms", + "type": "uint32" + }, + { + "id": 4, + "name": "applied_index", + "type": "uint64" + } + ] + }, + { + "name": "StaleCommand" + }, + { + "name": "RaftEntryTooLarge", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "entry_size", + "type": "uint64" + } + ] + }, + { + "name": "MaxTimestampNotSynced" + }, + { + "name": "ReadIndexNotReady", + "fields": [ + { + "id": 1, + "name": "reason", + "type": "string" + }, + { + "id": 2, + "name": "region_id", + "type": "uint64" + } + ] + }, + { + "name": "ProposalInMergingMode", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + } + ] + }, + { + "name": "DataIsNotReady", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "peer_id", + "type": "uint64" + }, + { + "id": 3, + "name": "safe_ts", + "type": "uint64" + } + ] + }, + { + "name": "RecoveryInProgress", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + } + ] + }, + { + "name": "FlashbackInProgress", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "flashback_start_ts", + "type": "uint64" + } + ] + }, + { + "name": "FlashbackNotPrepared", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + } + ] + }, + { + "name": "Error", + "fields": [ + { + "id": 1, + "name": "message", + "type": "string" + }, + { + "id": 2, + "name": "not_leader", + "type": "NotLeader" + }, + { + "id": 3, + "name": "region_not_found", + "type": "RegionNotFound" + }, + { + "id": 4, + "name": "key_not_in_region", + "type": "KeyNotInRegion" + }, + { + "id": 5, + "name": "epoch_not_match", + "type": "EpochNotMatch" + }, + { + "id": 6, + "name": "server_is_busy", + "type": "ServerIsBusy" + }, + { + "id": 7, + "name": "stale_command", + "type": "StaleCommand" + }, + { + "id": 8, + "name": "store_not_match", + "type": "StoreNotMatch" + }, + { + "id": 9, + "name": "raft_entry_too_large", + "type": "RaftEntryTooLarge" + }, + { + "id": 10, + "name": "max_timestamp_not_synced", + "type": "MaxTimestampNotSynced" + }, + { + "id": 11, + "name": "read_index_not_ready", + "type": "ReadIndexNotReady" + }, + { + "id": 12, + "name": "proposal_in_merging_mode", + "type": "ProposalInMergingMode" + }, + { + "id": 13, + "name": "data_is_not_ready", + "type": "DataIsNotReady" + }, + { + "id": 14, + "name": "region_not_initialized", + "type": "RegionNotInitialized" + }, + { + "id": 15, + "name": "disk_full", + "type": "DiskFull" + }, + { + "id": 16, + "name": "RecoveryInProgress", + "type": "RecoveryInProgress" + }, + { + "id": 17, + "name": "FlashbackInProgress", + "type": "FlashbackInProgress" + }, + { + "id": 18, + "name": "FlashbackNotPrepared", + "type": "FlashbackNotPrepared" + }, + { + "id": 19, + "name": "is_witness", + "type": "IsWitness" + } + ], + "reserved_names": [ + "stale_epoch" + ] + } + ], + "imports": [ + { + "path": "metapb.proto" + }, + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "errorpb" + }, + "options": [ + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "gcpb.proto", + "def": { + "enums": [ + { + "name": "ErrorType", + "enum_fields": [ + { + "name": "OK" + }, + { + "name": "UNKNOWN", + "integer": 1 + }, + { + "name": "NOT_BOOTSTRAPPED", + "integer": 2 + }, + { + "name": "REVISION_MISMATCH", + "integer": 3 + }, + { + "name": "SAFEPOINT_ROLLBACK", + "integer": 4 + } + ] + } + ], + "messages": [ + { + "name": "RequestHeader", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + }, + { + "id": 2, + "name": "sender_id", + "type": "uint64" + } + ] + }, + { + "name": "ResponseHeader", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + }, + { + "id": 2, + "name": "error", + "type": "Error" + } + ] + }, + { + "name": "Error", + "fields": [ + { + "id": 1, + "name": "type", + "type": "ErrorType" + }, + { + "id": 2, + "name": "message", + "type": "string" + } + ] + }, + { + "name": "KeySpace", + "fields": [ + { + "id": 1, + "name": "space_id", + "type": "bytes" + }, + { + "id": 2, + "name": "gc_safe_point", + "type": "uint64" + } + ] + }, + { + "name": "ListKeySpacesRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "with_gc_safe_point", + "type": "bool" + } + ] + }, + { + "name": "ListKeySpacesResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "key_spaces", + "type": "KeySpace", + "is_repeated": true + } + ] + }, + { + "name": "GetMinServiceSafePointRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "space_id", + "type": "bytes" + } + ] + }, + { + "name": "GetMinServiceSafePointResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "safe_point", + "type": "uint64" + }, + { + "id": 3, + "name": "revision", + "type": "int64" + } + ] + }, + { + "name": "UpdateGCSafePointRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "space_id", + "type": "bytes" + }, + { + "id": 3, + "name": "safe_point", + "type": "uint64" + }, + { + "id": 4, + "name": "revision", + "type": "int64" + } + ] + }, + { + "name": "UpdateGCSafePointResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "succeeded", + "type": "bool" + }, + { + "id": 3, + "name": "new_safe_point", + "type": "uint64" + } + ] + }, + { + "name": "UpdateServiceSafePointRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "space_id", + "type": "bytes" + }, + { + "id": 3, + "name": "service_id", + "type": "bytes" + }, + { + "id": 4, + "name": "TTL", + "type": "int64" + }, + { + "id": 5, + "name": "safe_point", + "type": "uint64" + } + ] + }, + { + "name": "UpdateServiceSafePointResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "succeeded", + "type": "bool" + }, + { + "id": 3, + "name": "gc_safe_point", + "type": "uint64" + }, + { + "id": 4, + "name": "old_safe_point", + "type": "uint64" + }, + { + "id": 5, + "name": "new_safe_point", + "type": "uint64" + } + ] + } + ], + "services": [ + { + "name": "GC", + "rpcs": [ + { + "name": "ListKeySpaces", + "in_type": "ListKeySpacesRequest", + "out_type": "ListKeySpacesResponse" + }, + { + "name": "GetMinServiceSafePoint", + "in_type": "GetMinServiceSafePointRequest", + "out_type": "GetMinServiceSafePointResponse" + }, + { + "name": "UpdateGCSafePoint", + "in_type": "UpdateGCSafePointRequest", + "out_type": "UpdateGCSafePointResponse" + }, + { + "name": "UpdateServiceSafePoint", + "in_type": "UpdateServiceSafePointRequest", + "out_type": "UpdateServiceSafePointResponse" + } + ] + } + ], + "imports": [ + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "gcpb" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "import_kvpb.proto", + "def": { + "enums": [ + { + "name": "Mutation.OP", + "enum_fields": [ + { + "name": "Put" + } + ] + } + ], + "messages": [ + { + "name": "SwitchModeRequest", + "fields": [ + { + "id": 1, + "name": "pd_addr", + "type": "string" + }, + { + "id": 2, + "name": "request", + "type": "import_sstpb.SwitchModeRequest" + } + ] + }, + { + "name": "SwitchModeResponse" + }, + { + "name": "OpenEngineRequest", + "fields": [ + { + "id": 1, + "name": "uuid", + "type": "bytes" + }, + { + "id": 2, + "name": "key_prefix", + "type": "bytes" + } + ] + }, + { + "name": "OpenEngineResponse" + }, + { + "name": "WriteHead", + "fields": [ + { + "id": 1, + "name": "uuid", + "type": "bytes" + } + ] + }, + { + "name": "Mutation", + "fields": [ + { + "id": 1, + "name": "op", + "type": "OP" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + }, + { + "id": 3, + "name": "value", + "type": "bytes" + } + ] + }, + { + "name": "WriteBatch", + "fields": [ + { + "id": 1, + "name": "commit_ts", + "type": "uint64" + }, + { + "id": 2, + "name": "mutations", + "type": "Mutation", + "is_repeated": true + } + ] + }, + { + "name": "WriteEngineRequest", + "fields": [ + { + "id": 1, + "name": "head", + "type": "WriteHead" + }, + { + "id": 2, + "name": "batch", + "type": "WriteBatch" + } + ] + }, + { + "name": "KVPair", + "fields": [ + { + "id": 1, + "name": "key", + "type": "bytes" + }, + { + "id": 2, + "name": "value", + "type": "bytes" + } + ] + }, + { + "name": "WriteEngineV3Request", + "fields": [ + { + "id": 1, + "name": "uuid", + "type": "bytes" + }, + { + "id": 2, + "name": "commit_ts", + "type": "uint64" + }, + { + "id": 3, + "name": "pairs", + "type": "KVPair", + "is_repeated": true + } + ] + }, + { + "name": "WriteEngineResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + } + ] + }, + { + "name": "CloseEngineRequest", + "fields": [ + { + "id": 1, + "name": "uuid", + "type": "bytes" + } + ] + }, + { + "name": "CloseEngineResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + } + ] + }, + { + "name": "ImportEngineRequest", + "fields": [ + { + "id": 1, + "name": "uuid", + "type": "bytes" + }, + { + "id": 2, + "name": "pd_addr", + "type": "string" + } + ] + }, + { + "name": "ImportEngineResponse" + }, + { + "name": "CleanupEngineRequest", + "fields": [ + { + "id": 1, + "name": "uuid", + "type": "bytes" + } + ] + }, + { + "name": "CleanupEngineResponse" + }, + { + "name": "CompactClusterRequest", + "fields": [ + { + "id": 1, + "name": "pd_addr", + "type": "string" + }, + { + "id": 2, + "name": "request", + "type": "import_sstpb.CompactRequest" + } + ] + }, + { + "name": "CompactClusterResponse" + }, + { + "name": "GetVersionRequest" + }, + { + "name": "GetVersionResponse", + "fields": [ + { + "id": 1, + "name": "version", + "type": "string" + }, + { + "id": 2, + "name": "commit", + "type": "string" + } + ] + }, + { + "name": "GetMetricsRequest" + }, + { + "name": "GetMetricsResponse", + "fields": [ + { + "id": 1, + "name": "prometheus", + "type": "string" + } + ] + }, + { + "name": "Error", + "fields": [ + { + "id": 1, + "name": "engine_not_found", + "type": "EngineNotFound" + } + ], + "messages": [ + { + "name": "EngineNotFound", + "fields": [ + { + "id": 1, + "name": "uuid", + "type": "bytes" + } + ] + } + ] + } + ], + "services": [ + { + "name": "ImportKV", + "rpcs": [ + { + "name": "SwitchMode", + "in_type": "SwitchModeRequest", + "out_type": "SwitchModeResponse" + }, + { + "name": "OpenEngine", + "in_type": "OpenEngineRequest", + "out_type": "OpenEngineResponse" + }, + { + "name": "WriteEngine", + "in_type": "WriteEngineRequest", + "out_type": "WriteEngineResponse", + "in_streamed": true + }, + { + "name": "WriteEngineV3", + "in_type": "WriteEngineV3Request", + "out_type": "WriteEngineResponse" + }, + { + "name": "CloseEngine", + "in_type": "CloseEngineRequest", + "out_type": "CloseEngineResponse" + }, + { + "name": "ImportEngine", + "in_type": "ImportEngineRequest", + "out_type": "ImportEngineResponse" + }, + { + "name": "CleanupEngine", + "in_type": "CleanupEngineRequest", + "out_type": "CleanupEngineResponse" + }, + { + "name": "CompactCluster", + "in_type": "CompactClusterRequest", + "out_type": "CompactClusterResponse" + }, + { + "name": "GetVersion", + "in_type": "GetVersionRequest", + "out_type": "GetVersionResponse" + }, + { + "name": "GetMetrics", + "in_type": "GetMetricsRequest", + "out_type": "GetMetricsResponse" + } + ] + } + ], + "imports": [ + { + "path": "import_sstpb.proto" + }, + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "import_kvpb" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "import_sstpb.proto", + "def": { + "enums": [ + { + "name": "SwitchMode", + "enum_fields": [ + { + "name": "Normal" + }, + { + "name": "Import", + "integer": 1 + } + ] + }, + { + "name": "DownloadRequestType", + "enum_fields": [ + { + "name": "Legacy" + }, + { + "name": "Keyspace", + "integer": 1 + } + ] + }, + { + "name": "Pair.OP", + "enum_fields": [ + { + "name": "Put" + }, + { + "name": "Delete", + "integer": 1 + } + ] + } + ], + "messages": [ + { + "name": "SwitchModeRequest", + "fields": [ + { + "id": 1, + "name": "mode", + "type": "SwitchMode" + } + ] + }, + { + "name": "SwitchModeResponse" + }, + { + "name": "Range", + "fields": [ + { + "id": 1, + "name": "start", + "type": "bytes" + }, + { + "id": 2, + "name": "end", + "type": "bytes" + } + ] + }, + { + "name": "SSTMeta", + "fields": [ + { + "id": 1, + "name": "uuid", + "type": "bytes" + }, + { + "id": 2, + "name": "range", + "type": "Range" + }, + { + "id": 3, + "name": "crc32", + "type": "uint32" + }, + { + "id": 4, + "name": "length", + "type": "uint64" + }, + { + "id": 5, + "name": "cf_name", + "type": "string" + }, + { + "id": 6, + "name": "region_id", + "type": "uint64" + }, + { + "id": 7, + "name": "region_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 8, + "name": "end_key_exclusive", + "type": "bool" + }, + { + "id": 9, + "name": "total_kvs", + "type": "uint64" + }, + { + "id": 10, + "name": "total_bytes", + "type": "uint64" + }, + { + "id": 11, + "name": "api_version", + "type": "kvrpcpb.APIVersion" + }, + { + "id": 12, + "name": "cipher_iv", + "type": "bytes" + } + ] + }, + { + "name": "RewriteRule", + "fields": [ + { + "id": 1, + "name": "old_key_prefix", + "type": "bytes" + }, + { + "id": 2, + "name": "new_key_prefix", + "type": "bytes" + }, + { + "id": 3, + "name": "new_timestamp", + "type": "uint64" + } + ] + }, + { + "name": "UploadRequest", + "fields": [ + { + "id": 1, + "name": "meta", + "type": "SSTMeta" + }, + { + "id": 2, + "name": "data", + "type": "bytes" + } + ] + }, + { + "name": "UploadResponse" + }, + { + "name": "IngestRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "kvrpcpb.Context" + }, + { + "id": 2, + "name": "sst", + "type": "SSTMeta" + } + ] + }, + { + "name": "MultiIngestRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "kvrpcpb.Context" + }, + { + "id": 2, + "name": "ssts", + "type": "SSTMeta", + "is_repeated": true + } + ] + }, + { + "name": "IngestResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "errorpb.Error" + } + ] + }, + { + "name": "CompactRequest", + "fields": [ + { + "id": 1, + "name": "range", + "type": "Range" + }, + { + "id": 2, + "name": "output_level", + "type": "int32" + } + ] + }, + { + "name": "CompactResponse" + }, + { + "name": "DownloadRequest", + "fields": [ + { + "id": 2, + "name": "sst", + "type": "SSTMeta", + "options": [ + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] + }, + { + "id": 9, + "name": "name", + "type": "string" + }, + { + "id": 13, + "name": "rewrite_rule", + "type": "RewriteRule", + "options": [ + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] + }, + { + "id": 14, + "name": "storage_backend", + "type": "backup.StorageBackend" + }, + { + "id": 17, + "name": "storage_cache_id", + "type": "string" + }, + { + "id": 15, + "name": "is_raw_kv", + "type": "bool" + }, + { + "id": 16, + "name": "cipher_info", + "type": "backup.CipherInfo" + }, + { + "id": 18, + "name": "request_type", + "type": "DownloadRequestType" + } + ], + "reserved_ids": [ + 8 + ], + "reserved_names": [ + "url" + ] + }, + { + "name": "Error", + "fields": [ + { + "id": 1, + "name": "message", + "type": "string" + }, + { + "id": 2, + "name": "store_error", + "type": "errorpb.Error" + } + ] + }, + { + "name": "DownloadResponse", + "fields": [ + { + "id": 1, + "name": "range", + "type": "Range", + "options": [ + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] + }, + { + "id": 2, + "name": "is_empty", + "type": "bool" + }, + { + "id": 3, + "name": "error", + "type": "Error" + }, + { + "id": 4, + "name": "crc32", + "type": "uint32" + }, + { + "id": 5, + "name": "length", + "type": "uint64" + } + ] + }, + { + "name": "SetDownloadSpeedLimitRequest", + "fields": [ + { + "id": 1, + "name": "speed_limit", + "type": "uint64" + } + ] + }, + { + "name": "SetDownloadSpeedLimitResponse" + }, + { + "name": "Pair", + "fields": [ + { + "id": 1, + "name": "key", + "type": "bytes" + }, + { + "id": 2, + "name": "value", + "type": "bytes" + }, + { + "id": 3, + "name": "op", + "type": "OP" + } + ] + }, + { + "name": "WriteBatch", + "fields": [ + { + "id": 1, + "name": "commit_ts", + "type": "uint64" + }, + { + "id": 2, + "name": "pairs", + "type": "Pair", + "is_repeated": true + } + ] + }, + { + "name": "WriteRequest", + "fields": [ + { + "id": 1, + "name": "meta", + "type": "SSTMeta" + }, + { + "id": 2, + "name": "batch", + "type": "WriteBatch" + } + ] + }, + { + "name": "WriteResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + }, + { + "id": 2, + "name": "metas", + "type": "SSTMeta", + "is_repeated": true + } + ] + }, + { + "name": "RawWriteBatch", + "fields": [ + { + "id": 1, + "name": "ttl", + "type": "uint64" + }, + { + "id": 2, + "name": "pairs", + "type": "Pair", + "is_repeated": true + }, + { + "id": 3, + "name": "ts", + "type": "uint64" + } + ] + }, + { + "name": "RawWriteRequest", + "fields": [ + { + "id": 1, + "name": "meta", + "type": "SSTMeta" + }, + { + "id": 2, + "name": "batch", + "type": "RawWriteBatch" + } + ] + }, + { + "name": "RawWriteResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + }, + { + "id": 2, + "name": "metas", + "type": "SSTMeta", + "is_repeated": true + } + ] + }, + { + "name": "DuplicateDetectRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "kvrpcpb.Context" + }, + { + "id": 2, + "name": "start_key", + "type": "bytes" + }, + { + "id": 3, + "name": "end_key", + "type": "bytes" + }, + { + "id": 4, + "name": "key_only", + "type": "bool" + }, + { + "id": 5, + "name": "min_commit_ts", + "type": "uint64" + } + ] + }, + { + "name": "KvPair", + "fields": [ + { + "id": 1, + "name": "key", + "type": "bytes" + }, + { + "id": 2, + "name": "value", + "type": "bytes" + }, + { + "id": 3, + "name": "commit_ts", + "type": "uint64" + } + ] + }, + { + "name": "DuplicateDetectResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "key_error", + "type": "Error" + }, + { + "id": 3, + "name": "pairs", + "type": "KvPair", + "is_repeated": true + } + ] + }, + { + "name": "KVMeta", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 11, + "name": "range_offset", + "type": "uint64" + }, + { + "id": 2, + "name": "length", + "type": "uint64" + }, + { + "id": 12, + "name": "range_length", + "type": "uint64" + }, + { + "id": 3, + "name": "cf", + "type": "string" + }, + { + "id": 4, + "name": "is_delete", + "type": "bool" + }, + { + "id": 10, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 5, + "name": "restore_ts", + "type": "uint64" + }, + { + "id": 6, + "name": "start_key", + "type": "bytes" + }, + { + "id": 7, + "name": "end_key", + "type": "bytes" + }, + { + "id": 8, + "name": "sha256", + "type": "bytes" + }, + { + "id": 9, + "name": "start_snapshot_ts", + "type": "uint64" + }, + { + "id": 13, + "name": "compression_type", + "type": "backup.CompressionType" + } + ] + }, + { + "name": "ApplyRequest", + "fields": [ + { + "id": 1, + "name": "meta", + "type": "KVMeta" + }, + { + "id": 12, + "name": "metas", + "type": "KVMeta", + "is_repeated": true + }, + { + "id": 2, + "name": "rewrite_rule", + "type": "RewriteRule", + "options": [ + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] + }, + { + "id": 13, + "name": "rewrite_rules", + "type": "RewriteRule", + "is_repeated": true + }, + { + "id": 5, + "name": "storage_cache_id", + "type": "string" + }, + { + "id": 3, + "name": "storage_backend", + "type": "backup.StorageBackend" + }, + { + "id": 4, + "name": "context", + "type": "kvrpcpb.Context" + }, + { + "id": 11, + "name": "cipher_info", + "type": "backup.CipherInfo" + } + ] + }, + { + "name": "ApplyResponse", + "fields": [ + { + "id": 1, + "name": "range", + "type": "Range", + "options": [ + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] + }, + { + "id": 2, + "name": "error", + "type": "Error" + } + ] + }, + { + "name": "ClearRequest", + "fields": [ + { + "id": 1, + "name": "prefix", + "type": "string" + } + ] + }, + { + "name": "ClearResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + } + ] + } + ], + "services": [ + { + "name": "ImportSST", + "rpcs": [ + { + "name": "SwitchMode", + "in_type": "SwitchModeRequest", + "out_type": "SwitchModeResponse" + }, + { + "name": "Upload", + "in_type": "UploadRequest", + "out_type": "UploadResponse", + "in_streamed": true + }, + { + "name": "Ingest", + "in_type": "IngestRequest", + "out_type": "IngestResponse" + }, + { + "name": "Compact", + "in_type": "CompactRequest", + "out_type": "CompactResponse" + }, + { + "name": "SetDownloadSpeedLimit", + "in_type": "SetDownloadSpeedLimitRequest", + "out_type": "SetDownloadSpeedLimitResponse" + }, + { + "name": "Download", + "in_type": "DownloadRequest", + "out_type": "DownloadResponse" + }, + { + "name": "Write", + "in_type": "WriteRequest", + "out_type": "WriteResponse", + "in_streamed": true + }, + { + "name": "RawWrite", + "in_type": "RawWriteRequest", + "out_type": "RawWriteResponse", + "in_streamed": true + }, + { + "name": "MultiIngest", + "in_type": "MultiIngestRequest", + "out_type": "IngestResponse" + }, + { + "name": "DuplicateDetect", + "in_type": "DuplicateDetectRequest", + "out_type": "DuplicateDetectResponse", + "out_streamed": true + }, + { + "name": "Apply", + "in_type": "ApplyRequest", + "out_type": "ApplyResponse" + }, + { + "name": "ClearFiles", + "in_type": "ClearRequest", + "out_type": "ClearResponse" + } + ] + } + ], + "imports": [ + { + "path": "metapb.proto" + }, + { + "path": "errorpb.proto" + }, + { + "path": "kvrpcpb.proto" + }, + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + }, + { + "path": "brpb.proto" + } + ], + "package": { + "name": "import_sstpb" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "keyspacepb.proto", + "def": { + "enums": [ + { + "name": "KeyspaceState", + "enum_fields": [ + { + "name": "ENABLED" + }, + { + "name": "DISABLED", + "integer": 1 + }, + { + "name": "ARCHIVED", + "integer": 2 + }, + { + "name": "TOMBSTONE", + "integer": 3 + } + ] + } + ], + "messages": [ + { + "name": "KeyspaceMeta", + "fields": [ + { + "id": 1, + "name": "id", + "type": "uint32" + }, + { + "id": 2, + "name": "name", + "type": "string" + }, + { + "id": 3, + "name": "state", + "type": "KeyspaceState" + }, + { + "id": 4, + "name": "created_at", + "type": "int64" + }, + { + "id": 5, + "name": "state_changed_at", + "type": "int64" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 7, + "name": "config", + "type": "string" + } + } + ] + }, + { + "name": "LoadKeyspaceRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "pdpb.RequestHeader" + }, + { + "id": 2, + "name": "name", + "type": "string" + } + ] + }, + { + "name": "LoadKeyspaceResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "pdpb.ResponseHeader" + }, + { + "id": 2, + "name": "keyspace", + "type": "KeyspaceMeta" + } + ] + }, + { + "name": "WatchKeyspacesRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "pdpb.RequestHeader" + } + ] + }, + { + "name": "WatchKeyspacesResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "pdpb.ResponseHeader" + }, + { + "id": 2, + "name": "keyspaces", + "type": "KeyspaceMeta", + "is_repeated": true + } + ] + }, + { + "name": "UpdateKeyspaceStateRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "pdpb.RequestHeader" + }, + { + "id": 2, + "name": "id", + "type": "uint32" + }, + { + "id": 3, + "name": "state", + "type": "KeyspaceState" + } + ] + }, + { + "name": "UpdateKeyspaceStateResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "pdpb.ResponseHeader" + }, + { + "id": 2, + "name": "keyspace", + "type": "KeyspaceMeta" + } + ] + } + ], + "services": [ + { + "name": "Keyspace", + "rpcs": [ + { + "name": "LoadKeyspace", + "in_type": "LoadKeyspaceRequest", + "out_type": "LoadKeyspaceResponse" + }, + { + "name": "WatchKeyspaces", + "in_type": "WatchKeyspacesRequest", + "out_type": "WatchKeyspacesResponse", + "out_streamed": true + }, + { + "name": "UpdateKeyspaceState", + "in_type": "UpdateKeyspaceStateRequest", + "out_type": "UpdateKeyspaceStateResponse" + } + ] + } + ], + "imports": [ + { + "path": "pdpb.proto" + }, + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "keyspacepb" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "kvrpcpb.proto", + "def": { + "enums": [ + { + "name": "PrewriteRequest.PessimisticAction", + "enum_fields": [ + { + "name": "SKIP_PESSIMISTIC_CHECK" + }, + { + "name": "DO_PESSIMISTIC_CHECK", + "integer": 1 + }, + { + "name": "DO_CONSTRAINT_CHECK", + "integer": 2 + } + ] + }, + { + "name": "PessimisticLockWakeUpMode", + "enum_fields": [ + { + "name": "WakeUpModeNormal" + }, + { + "name": "WakeUpModeForceLock", + "integer": 1 + } + ] + }, + { + "name": "PessimisticLockKeyResultType", + "enum_fields": [ + { + "name": "LockResultNormal" + }, + { + "name": "LockResultLockedWithConflict", + "integer": 1 + }, + { + "name": "LockResultFailed", + "integer": 2 + } + ] + }, + { + "name": "APIVersion", + "enum_fields": [ + { + "name": "V1" + }, + { + "name": "V1TTL", + "integer": 1 + }, + { + "name": "V2", + "integer": 2 + } + ] + }, + { + "name": "WriteConflict.Reason", + "enum_fields": [ + { + "name": "Unknown" + }, + { + "name": "Optimistic", + "integer": 1 + }, + { + "name": "PessimisticRetry", + "integer": 2 + }, + { + "name": "SelfRolledBack", + "integer": 3 + }, + { + "name": "RcCheckTs", + "integer": 4 + }, + { + "name": "LazyUniquenessCheck", + "integer": 5 + } + ] + }, + { + "name": "CommandPri", + "enum_fields": [ + { + "name": "Normal" + }, + { + "name": "Low", + "integer": 1 + }, + { + "name": "High", + "integer": 2 + } + ] + }, + { + "name": "IsolationLevel", + "enum_fields": [ + { + "name": "SI" + }, + { + "name": "RC", + "integer": 1 + }, + { + "name": "RCCheckTS", + "integer": 2 + } + ] + }, + { + "name": "DiskFullOpt", + "enum_fields": [ + { + "name": "NotAllowedOnFull" + }, + { + "name": "AllowedOnAlmostFull", + "integer": 1 + }, + { + "name": "AllowedOnAlreadyFull", + "integer": 2 + } + ] + }, + { + "name": "Op", + "enum_fields": [ + { + "name": "Put" + }, + { + "name": "Del", + "integer": 1 + }, + { + "name": "Lock", + "integer": 2 + }, + { + "name": "Rollback", + "integer": 3 + }, + { + "name": "Insert", + "integer": 4 + }, + { + "name": "PessimisticLock", + "integer": 5 + }, + { + "name": "CheckNotExists", + "integer": 6 + } + ] + }, + { + "name": "Assertion", + "enum_fields": [ + { + "name": "None" + }, + { + "name": "Exist", + "integer": 1 + }, + { + "name": "NotExist", + "integer": 2 + } + ] + }, + { + "name": "AssertionLevel", + "enum_fields": [ + { + "name": "Off" + }, + { + "name": "Fast", + "integer": 1 + }, + { + "name": "Strict", + "integer": 2 + } + ] + }, + { + "name": "Action", + "enum_fields": [ + { + "name": "NoAction" + }, + { + "name": "TTLExpireRollback", + "integer": 1 + }, + { + "name": "LockNotExistRollback", + "integer": 2 + }, + { + "name": "MinCommitTSPushed", + "integer": 3 + }, + { + "name": "TTLExpirePessimisticRollback", + "integer": 4 + }, + { + "name": "LockNotExistDoNothing", + "integer": 5 + } + ] + }, + { + "name": "ExtraOp", + "enum_fields": [ + { + "name": "Noop" + }, + { + "name": "ReadOldValue", + "integer": 1 + } + ] + }, + { + "name": "ChecksumAlgorithm", + "enum_fields": [ + { + "name": "Crc64_Xor" + } + ] + } + ], + "messages": [ + { + "name": "GetRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + }, + { + "id": 3, + "name": "version", + "type": "uint64" + } + ] + }, + { + "name": "GetResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "KeyError" + }, + { + "id": 3, + "name": "value", + "type": "bytes" + }, + { + "id": 4, + "name": "not_found", + "type": "bool" + }, + { + "id": 6, + "name": "exec_details_v2", + "type": "ExecDetailsV2" + } + ], + "reserved_ids": [ + 5 + ] + }, + { + "name": "ScanRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "start_key", + "type": "bytes" + }, + { + "id": 3, + "name": "limit", + "type": "uint32" + }, + { + "id": 4, + "name": "version", + "type": "uint64" + }, + { + "id": 5, + "name": "key_only", + "type": "bool" + }, + { + "id": 6, + "name": "reverse", + "type": "bool" + }, + { + "id": 7, + "name": "end_key", + "type": "bytes" + }, + { + "id": 8, + "name": "sample_step", + "type": "uint32" + } + ] + }, + { + "name": "ScanResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "pairs", + "type": "KvPair", + "is_repeated": true + }, + { + "id": 3, + "name": "error", + "type": "KeyError" + } + ] + }, + { + "name": "PrewriteRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "mutations", + "type": "Mutation", + "is_repeated": true + }, + { + "id": 3, + "name": "primary_lock", + "type": "bytes" + }, + { + "id": 4, + "name": "start_version", + "type": "uint64" + }, + { + "id": 5, + "name": "lock_ttl", + "type": "uint64" + }, + { + "id": 6, + "name": "skip_constraint_check", + "type": "bool" + }, + { + "id": 7, + "name": "pessimistic_actions", + "type": "PessimisticAction", + "is_repeated": true + }, + { + "id": 8, + "name": "txn_size", + "type": "uint64" + }, + { + "id": 9, + "name": "for_update_ts", + "type": "uint64" + }, + { + "id": 10, + "name": "min_commit_ts", + "type": "uint64" + }, + { + "id": 11, + "name": "use_async_commit", + "type": "bool" + }, + { + "id": 12, + "name": "secondaries", + "type": "bytes", + "is_repeated": true + }, + { + "id": 13, + "name": "try_one_pc", + "type": "bool" + }, + { + "id": 14, + "name": "max_commit_ts", + "type": "uint64" + }, + { + "id": 15, + "name": "assertion_level", + "type": "AssertionLevel" + } + ] + }, + { + "name": "PrewriteResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "errors", + "type": "KeyError", + "is_repeated": true + }, + { + "id": 3, + "name": "min_commit_ts", + "type": "uint64" + }, + { + "id": 4, + "name": "one_pc_commit_ts", + "type": "uint64" + }, + { + "id": 5, + "name": "exec_details_v2", + "type": "ExecDetailsV2" + } + ] + }, + { + "name": "PessimisticLockRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "mutations", + "type": "Mutation", + "is_repeated": true + }, + { + "id": 3, + "name": "primary_lock", + "type": "bytes" + }, + { + "id": 4, + "name": "start_version", + "type": "uint64" + }, + { + "id": 5, + "name": "lock_ttl", + "type": "uint64" + }, + { + "id": 6, + "name": "for_update_ts", + "type": "uint64" + }, + { + "id": 7, + "name": "is_first_lock", + "type": "bool" + }, + { + "id": 8, + "name": "wait_timeout", + "type": "int64" + }, + { + "id": 9, + "name": "force", + "type": "bool", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "id": 10, + "name": "return_values", + "type": "bool" + }, + { + "id": 11, + "name": "min_commit_ts", + "type": "uint64" + }, + { + "id": 12, + "name": "check_existence", + "type": "bool" + }, + { + "id": 13, + "name": "lock_only_if_exists", + "type": "bool" + }, + { + "id": 14, + "name": "wake_up_mode", + "type": "PessimisticLockWakeUpMode" + } + ] + }, + { + "name": "PessimisticLockKeyResult", + "fields": [ + { + "id": 1, + "name": "type", + "type": "PessimisticLockKeyResultType" + }, + { + "id": 2, + "name": "value", + "type": "bytes" + }, + { + "id": 3, + "name": "existence", + "type": "bool" + }, + { + "id": 4, + "name": "locked_with_conflict_ts", + "type": "uint64" + }, + { + "id": 11, + "name": "skip_resolving_lock", + "type": "bool" + } + ] + }, + { + "name": "PessimisticLockResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "errors", + "type": "KeyError", + "is_repeated": true + }, + { + "id": 3, + "name": "commit_ts", + "type": "uint64", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "id": 4, + "name": "value", + "type": "bytes", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "id": 5, + "name": "values", + "type": "bytes", + "is_repeated": true + }, + { + "id": 6, + "name": "not_founds", + "type": "bool", + "is_repeated": true + }, + { + "id": 7, + "name": "exec_details_v2", + "type": "ExecDetailsV2" + }, + { + "id": 8, + "name": "results", + "type": "PessimisticLockKeyResult", + "is_repeated": true + } + ] + }, + { + "name": "PessimisticRollbackRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "start_version", + "type": "uint64" + }, + { + "id": 3, + "name": "for_update_ts", + "type": "uint64" + }, + { + "id": 4, + "name": "keys", + "type": "bytes", + "is_repeated": true + } + ] + }, + { + "name": "PessimisticRollbackResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "errors", + "type": "KeyError", + "is_repeated": true + }, + { + "id": 3, + "name": "exec_details_v2", + "type": "ExecDetailsV2" + } + ] + }, + { + "name": "TxnHeartBeatRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "primary_lock", + "type": "bytes" + }, + { + "id": 3, + "name": "start_version", + "type": "uint64" + }, + { + "id": 4, + "name": "advise_lock_ttl", + "type": "uint64" + } + ] + }, + { + "name": "TxnHeartBeatResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "KeyError" + }, + { + "id": 3, + "name": "lock_ttl", + "type": "uint64" + }, + { + "id": 4, + "name": "exec_details_v2", + "type": "ExecDetailsV2" + } + ] + }, + { + "name": "CheckTxnStatusRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "primary_key", + "type": "bytes" + }, + { + "id": 3, + "name": "lock_ts", + "type": "uint64" + }, + { + "id": 4, + "name": "caller_start_ts", + "type": "uint64" + }, + { + "id": 5, + "name": "current_ts", + "type": "uint64" + }, + { + "id": 6, + "name": "rollback_if_not_exist", + "type": "bool" + }, + { + "id": 7, + "name": "force_sync_commit", + "type": "bool" + }, + { + "id": 8, + "name": "resolving_pessimistic_lock", + "type": "bool" + } + ] + }, + { + "name": "CheckTxnStatusResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "KeyError" + }, + { + "id": 3, + "name": "lock_ttl", + "type": "uint64" + }, + { + "id": 4, + "name": "commit_version", + "type": "uint64" + }, + { + "id": 5, + "name": "action", + "type": "Action" + }, + { + "id": 6, + "name": "lock_info", + "type": "LockInfo" + }, + { + "id": 7, + "name": "exec_details_v2", + "type": "ExecDetailsV2" + } + ] + }, + { + "name": "CheckSecondaryLocksRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "keys", + "type": "bytes", + "is_repeated": true + }, + { + "id": 3, + "name": "start_version", + "type": "uint64" + } + ] + }, + { + "name": "CheckSecondaryLocksResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "KeyError" + }, + { + "id": 3, + "name": "locks", + "type": "LockInfo", + "is_repeated": true + }, + { + "id": 4, + "name": "commit_ts", + "type": "uint64" + }, + { + "id": 5, + "name": "exec_details_v2", + "type": "ExecDetailsV2" + } + ] + }, + { + "name": "CommitRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "start_version", + "type": "uint64" + }, + { + "id": 3, + "name": "keys", + "type": "bytes", + "is_repeated": true + }, + { + "id": 4, + "name": "commit_version", + "type": "uint64" + } + ], + "reserved_ids": [ + 5 + ], + "reserved_names": [ + "binlog" + ] + }, + { + "name": "CommitResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "KeyError" + }, + { + "id": 3, + "name": "commit_version", + "type": "uint64" + }, + { + "id": 4, + "name": "exec_details_v2", + "type": "ExecDetailsV2" + } + ] + }, + { + "name": "ImportRequest", + "fields": [ + { + "id": 1, + "name": "mutations", + "type": "Mutation", + "is_repeated": true + }, + { + "id": 2, + "name": "commit_version", + "type": "uint64" + } + ] + }, + { + "name": "ImportResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + } + ] + }, + { + "name": "CleanupRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + }, + { + "id": 3, + "name": "start_version", + "type": "uint64" + }, + { + "id": 4, + "name": "current_ts", + "type": "uint64" + } + ] + }, + { + "name": "CleanupResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "KeyError" + }, + { + "id": 3, + "name": "commit_version", + "type": "uint64" + } + ] + }, + { + "name": "BatchGetRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "keys", + "type": "bytes", + "is_repeated": true + }, + { + "id": 3, + "name": "version", + "type": "uint64" + } + ] + }, + { + "name": "BatchGetResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "pairs", + "type": "KvPair", + "is_repeated": true + }, + { + "id": 4, + "name": "exec_details_v2", + "type": "ExecDetailsV2" + }, + { + "id": 5, + "name": "error", + "type": "KeyError" + } + ], + "reserved_ids": [ + 3 + ] + }, + { + "name": "BatchRollbackRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "start_version", + "type": "uint64" + }, + { + "id": 3, + "name": "keys", + "type": "bytes", + "is_repeated": true + } + ] + }, + { + "name": "BatchRollbackResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "KeyError" + }, + { + "id": 3, + "name": "exec_details_v2", + "type": "ExecDetailsV2" + } + ] + }, + { + "name": "ScanLockRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "max_version", + "type": "uint64" + }, + { + "id": 3, + "name": "start_key", + "type": "bytes" + }, + { + "id": 4, + "name": "limit", + "type": "uint32" + }, + { + "id": 5, + "name": "end_key", + "type": "bytes" + } + ] + }, + { + "name": "ScanLockResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "KeyError" + }, + { + "id": 3, + "name": "locks", + "type": "LockInfo", + "is_repeated": true + }, + { + "id": 4, + "name": "exec_details_v2", + "type": "ExecDetailsV2" + } + ] + }, + { + "name": "ResolveLockRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "start_version", + "type": "uint64" + }, + { + "id": 3, + "name": "commit_version", + "type": "uint64" + }, + { + "id": 4, + "name": "txn_infos", + "type": "TxnInfo", + "is_repeated": true + }, + { + "id": 5, + "name": "keys", + "type": "bytes", + "is_repeated": true + } + ] + }, + { + "name": "ResolveLockResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "KeyError" + }, + { + "id": 3, + "name": "exec_details_v2", + "type": "ExecDetailsV2" + } + ] + }, + { + "name": "GCRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "safe_point", + "type": "uint64" + } + ] + }, + { + "name": "GCResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "KeyError" + } + ] + }, + { + "name": "DeleteRangeRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "start_key", + "type": "bytes" + }, + { + "id": 3, + "name": "end_key", + "type": "bytes" + }, + { + "id": 4, + "name": "notify_only", + "type": "bool" + } + ] + }, + { + "name": "DeleteRangeResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + } + ] + }, + { + "name": "PrepareFlashbackToVersionRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "start_key", + "type": "bytes" + }, + { + "id": 3, + "name": "end_key", + "type": "bytes" + }, + { + "id": 4, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 5, + "name": "version", + "type": "uint64" + } + ] + }, + { + "name": "PrepareFlashbackToVersionResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + } + ] + }, + { + "name": "FlashbackToVersionRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "version", + "type": "uint64" + }, + { + "id": 3, + "name": "start_key", + "type": "bytes" + }, + { + "id": 4, + "name": "end_key", + "type": "bytes" + }, + { + "id": 5, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 6, + "name": "commit_ts", + "type": "uint64" + } + ] + }, + { + "name": "FlashbackToVersionResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + } + ] + }, + { + "name": "RawGetRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + }, + { + "id": 3, + "name": "cf", + "type": "string" + } + ] + }, + { + "name": "RawGetResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + }, + { + "id": 3, + "name": "value", + "type": "bytes" + }, + { + "id": 4, + "name": "not_found", + "type": "bool" + } + ] + }, + { + "name": "RawBatchGetRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "keys", + "type": "bytes", + "is_repeated": true + }, + { + "id": 3, + "name": "cf", + "type": "string" + } + ] + }, + { + "name": "RawBatchGetResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "pairs", + "type": "KvPair", + "is_repeated": true + } + ] + }, + { + "name": "RawPutRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + }, + { + "id": 3, + "name": "value", + "type": "bytes" + }, + { + "id": 4, + "name": "cf", + "type": "string" + }, + { + "id": 5, + "name": "ttl", + "type": "uint64" + }, + { + "id": 6, + "name": "for_cas", + "type": "bool" + } + ] + }, + { + "name": "RawPutResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + } + ] + }, + { + "name": "RawBatchPutRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "pairs", + "type": "KvPair", + "is_repeated": true + }, + { + "id": 3, + "name": "cf", + "type": "string" + }, + { + "id": 4, + "name": "ttl", + "type": "uint64", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "id": 5, + "name": "for_cas", + "type": "bool" + }, + { + "id": 6, + "name": "ttls", + "type": "uint64", + "is_repeated": true + } + ] + }, + { + "name": "RawBatchPutResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + } + ] + }, + { + "name": "RawDeleteRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + }, + { + "id": 3, + "name": "cf", + "type": "string" + }, + { + "id": 4, + "name": "for_cas", + "type": "bool" + } + ] + }, + { + "name": "RawDeleteResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + } + ] + }, + { + "name": "RawBatchDeleteRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "keys", + "type": "bytes", + "is_repeated": true + }, + { + "id": 3, + "name": "cf", + "type": "string" + }, + { + "id": 4, + "name": "for_cas", + "type": "bool" + } + ] + }, + { + "name": "RawBatchDeleteResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + } + ] + }, + { + "name": "RawScanRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "start_key", + "type": "bytes" + }, + { + "id": 3, + "name": "limit", + "type": "uint32" + }, + { + "id": 4, + "name": "key_only", + "type": "bool" + }, + { + "id": 5, + "name": "cf", + "type": "string" + }, + { + "id": 6, + "name": "reverse", + "type": "bool" + }, + { + "id": 7, + "name": "end_key", + "type": "bytes" + } + ] + }, + { + "name": "RawScanResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "kvs", + "type": "KvPair", + "is_repeated": true + } + ] + }, + { + "name": "RawDeleteRangeRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "start_key", + "type": "bytes" + }, + { + "id": 3, + "name": "end_key", + "type": "bytes" + }, + { + "id": 4, + "name": "cf", + "type": "string" + } + ] + }, + { + "name": "RawDeleteRangeResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + } + ] + }, + { + "name": "RawBatchScanRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "ranges", + "type": "KeyRange", + "is_repeated": true + }, + { + "id": 3, + "name": "each_limit", + "type": "uint32" + }, + { + "id": 4, + "name": "key_only", + "type": "bool" + }, + { + "id": 5, + "name": "cf", + "type": "string" + }, + { + "id": 6, + "name": "reverse", + "type": "bool" + } + ] + }, + { + "name": "RawBatchScanResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "kvs", + "type": "KvPair", + "is_repeated": true + } + ] + }, + { + "name": "UnsafeDestroyRangeRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "start_key", + "type": "bytes" + }, + { + "id": 3, + "name": "end_key", + "type": "bytes" + } + ] + }, + { + "name": "UnsafeDestroyRangeResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + } + ] + }, + { + "name": "RegisterLockObserverRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "max_ts", + "type": "uint64" + } + ] + }, + { + "name": "RegisterLockObserverResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "string" + } + ] + }, + { + "name": "CheckLockObserverRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "max_ts", + "type": "uint64" + } + ] + }, + { + "name": "CheckLockObserverResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "string" + }, + { + "id": 2, + "name": "is_clean", + "type": "bool" + }, + { + "id": 3, + "name": "locks", + "type": "LockInfo", + "is_repeated": true + } + ] + }, + { + "name": "RemoveLockObserverRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "max_ts", + "type": "uint64" + } + ] + }, + { + "name": "RemoveLockObserverResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "string" + } + ] + }, + { + "name": "PhysicalScanLockRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "max_ts", + "type": "uint64" + }, + { + "id": 3, + "name": "start_key", + "type": "bytes" + }, + { + "id": 4, + "name": "limit", + "type": "uint32" + } + ] + }, + { + "name": "PhysicalScanLockResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "string" + }, + { + "id": 2, + "name": "locks", + "type": "LockInfo", + "is_repeated": true + } + ] + }, + { + "name": "SplitRegionRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "split_key", + "type": "bytes", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "id": 3, + "name": "split_keys", + "type": "bytes", + "is_repeated": true + }, + { + "id": 4, + "name": "is_raw_kv", + "type": "bool" + } + ] + }, + { + "name": "SplitRegionResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "left", + "type": "metapb.Region", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "id": 3, + "name": "right", + "type": "metapb.Region", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "id": 4, + "name": "regions", + "type": "metapb.Region", + "is_repeated": true + } + ] + }, + { + "name": "ReadIndexRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 3, + "name": "ranges", + "type": "KeyRange", + "is_repeated": true + } + ] + }, + { + "name": "ReadIndexResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "read_index", + "type": "uint64" + }, + { + "id": 3, + "name": "locked", + "type": "kvrpcpb.LockInfo" + } + ] + }, + { + "name": "MvccGetByKeyRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + } + ] + }, + { + "name": "MvccGetByKeyResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + }, + { + "id": 3, + "name": "info", + "type": "MvccInfo" + } + ] + }, + { + "name": "MvccGetByStartTsRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "start_ts", + "type": "uint64" + } + ] + }, + { + "name": "MvccGetByStartTsResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + }, + { + "id": 3, + "name": "key", + "type": "bytes" + }, + { + "id": 4, + "name": "info", + "type": "MvccInfo" + } + ] + }, + { + "name": "Context", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "region_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 3, + "name": "peer", + "type": "metapb.Peer" + }, + { + "id": 5, + "name": "term", + "type": "uint64" + }, + { + "id": 6, + "name": "priority", + "type": "CommandPri" + }, + { + "id": 7, + "name": "isolation_level", + "type": "IsolationLevel" + }, + { + "id": 8, + "name": "not_fill_cache", + "type": "bool" + }, + { + "id": 9, + "name": "sync_log", + "type": "bool" + }, + { + "id": 10, + "name": "record_time_stat", + "type": "bool" + }, + { + "id": 11, + "name": "record_scan_stat", + "type": "bool" + }, + { + "id": 12, + "name": "replica_read", + "type": "bool" + }, + { + "id": 13, + "name": "resolved_locks", + "type": "uint64", + "is_repeated": true + }, + { + "id": 14, + "name": "max_execution_duration_ms", + "type": "uint64" + }, + { + "id": 15, + "name": "applied_index", + "type": "uint64" + }, + { + "id": 16, + "name": "task_id", + "type": "uint64" + }, + { + "id": 17, + "name": "stale_read", + "type": "bool" + }, + { + "id": 18, + "name": "resource_group_tag", + "type": "bytes" + }, + { + "id": 19, + "name": "disk_full_opt", + "type": "DiskFullOpt" + }, + { + "id": 20, + "name": "is_retry_request", + "type": "bool" + }, + { + "id": 21, + "name": "api_version", + "type": "APIVersion" + }, + { + "id": 22, + "name": "committed_locks", + "type": "uint64", + "is_repeated": true + }, + { + "id": 23, + "name": "trace_context", + "type": "tracepb.TraceContext" + }, + { + "id": 24, + "name": "request_source", + "type": "string" + }, + { + "id": 25, + "name": "txn_source", + "type": "uint64" + }, + { + "id": 26, + "name": "resource_group_name", + "type": "string" + }, + { + "id": 27, + "name": "busy_threshold_ms", + "type": "uint32" + } + ], + "reserved_ids": [ + 4 + ], + "reserved_names": [ + "read_quorum" + ] + }, + { + "name": "LockInfo", + "fields": [ + { + "id": 1, + "name": "primary_lock", + "type": "bytes" + }, + { + "id": 2, + "name": "lock_version", + "type": "uint64" + }, + { + "id": 3, + "name": "key", + "type": "bytes" + }, + { + "id": 4, + "name": "lock_ttl", + "type": "uint64" + }, + { + "id": 5, + "name": "txn_size", + "type": "uint64" + }, + { + "id": 6, + "name": "lock_type", + "type": "Op" + }, + { + "id": 7, + "name": "lock_for_update_ts", + "type": "uint64" + }, + { + "id": 8, + "name": "use_async_commit", + "type": "bool" + }, + { + "id": 9, + "name": "min_commit_ts", + "type": "uint64" + }, + { + "id": 10, + "name": "secondaries", + "type": "bytes", + "is_repeated": true + } + ] + }, + { + "name": "KeyError", + "fields": [ + { + "id": 1, + "name": "locked", + "type": "LockInfo" + }, + { + "id": 2, + "name": "retryable", + "type": "string" + }, + { + "id": 3, + "name": "abort", + "type": "string" + }, + { + "id": 4, + "name": "conflict", + "type": "WriteConflict" + }, + { + "id": 5, + "name": "already_exist", + "type": "AlreadyExist" + }, + { + "id": 6, + "name": "deadlock", + "type": "Deadlock" + }, + { + "id": 7, + "name": "commit_ts_expired", + "type": "CommitTsExpired" + }, + { + "id": 8, + "name": "txn_not_found", + "type": "TxnNotFound" + }, + { + "id": 9, + "name": "commit_ts_too_large", + "type": "CommitTsTooLarge" + }, + { + "id": 10, + "name": "assertion_failed", + "type": "AssertionFailed" + } + ] + }, + { + "name": "WriteConflict", + "fields": [ + { + "id": 1, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 2, + "name": "conflict_ts", + "type": "uint64" + }, + { + "id": 3, + "name": "key", + "type": "bytes" + }, + { + "id": 4, + "name": "primary", + "type": "bytes" + }, + { + "id": 5, + "name": "conflict_commit_ts", + "type": "uint64" + }, + { + "id": 6, + "name": "reason", + "type": "Reason" + } + ] + }, + { + "name": "AlreadyExist", + "fields": [ + { + "id": 1, + "name": "key", + "type": "bytes" + } + ] + }, + { + "name": "Deadlock", + "fields": [ + { + "id": 1, + "name": "lock_ts", + "type": "uint64" + }, + { + "id": 2, + "name": "lock_key", + "type": "bytes" + }, + { + "id": 3, + "name": "deadlock_key_hash", + "type": "uint64" + }, + { + "id": 4, + "name": "wait_chain", + "type": "deadlock.WaitForEntry", + "is_repeated": true + } + ] + }, + { + "name": "CommitTsExpired", + "fields": [ + { + "id": 1, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 2, + "name": "attempted_commit_ts", + "type": "uint64" + }, + { + "id": 3, + "name": "key", + "type": "bytes" + }, + { + "id": 4, + "name": "min_commit_ts", + "type": "uint64" + } + ] + }, + { + "name": "TxnNotFound", + "fields": [ + { + "id": 1, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 2, + "name": "primary_key", + "type": "bytes" + } + ] + }, + { + "name": "CommitTsTooLarge", + "fields": [ + { + "id": 1, + "name": "commit_ts", + "type": "uint64" + } + ] + }, + { + "name": "AssertionFailed", + "fields": [ + { + "id": 1, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + }, + { + "id": 3, + "name": "assertion", + "type": "Assertion" + }, + { + "id": 4, + "name": "existing_start_ts", + "type": "uint64" + }, + { + "id": 5, + "name": "existing_commit_ts", + "type": "uint64" + } + ] + }, + { + "name": "TimeDetail", + "fields": [ + { + "id": 1, + "name": "wait_wall_time_ms", + "type": "uint64" + }, + { + "id": 2, + "name": "process_wall_time_ms", + "type": "uint64" + }, + { + "id": 3, + "name": "kv_read_wall_time_ms", + "type": "uint64" + }, + { + "id": 4, + "name": "total_rpc_wall_time_ns", + "type": "uint64" + } + ] + }, + { + "name": "ScanInfo", + "fields": [ + { + "id": 1, + "name": "total", + "type": "int64" + }, + { + "id": 2, + "name": "processed", + "type": "int64" + }, + { + "id": 3, + "name": "read_bytes", + "type": "int64" + } + ] + }, + { + "name": "ScanDetail", + "fields": [ + { + "id": 1, + "name": "write", + "type": "ScanInfo" + }, + { + "id": 2, + "name": "lock", + "type": "ScanInfo" + }, + { + "id": 3, + "name": "data", + "type": "ScanInfo" + } + ] + }, + { + "name": "ScanDetailV2", + "fields": [ + { + "id": 1, + "name": "processed_versions", + "type": "uint64" + }, + { + "id": 8, + "name": "processed_versions_size", + "type": "uint64" + }, + { + "id": 2, + "name": "total_versions", + "type": "uint64" + }, + { + "id": 3, + "name": "rocksdb_delete_skipped_count", + "type": "uint64" + }, + { + "id": 4, + "name": "rocksdb_key_skipped_count", + "type": "uint64" + }, + { + "id": 5, + "name": "rocksdb_block_cache_hit_count", + "type": "uint64" + }, + { + "id": 6, + "name": "rocksdb_block_read_count", + "type": "uint64" + }, + { + "id": 7, + "name": "rocksdb_block_read_byte", + "type": "uint64" + }, + { + "id": 9, + "name": "rocksdb_block_read_nanos", + "type": "uint64" + }, + { + "id": 10, + "name": "get_snapshot_nanos", + "type": "uint64" + }, + { + "id": 11, + "name": "read_index_propose_wait_nanos", + "type": "uint64" + }, + { + "id": 12, + "name": "read_index_confirm_wait_nanos", + "type": "uint64" + }, + { + "id": 13, + "name": "read_pool_schedule_wait_nanos", + "type": "uint64" + } + ] + }, + { + "name": "ExecDetails", + "fields": [ + { + "id": 1, + "name": "time_detail", + "type": "TimeDetail" + }, + { + "id": 2, + "name": "scan_detail", + "type": "ScanDetail" + } + ], + "reserved_ids": [ + 3, + 4 + ] + }, + { + "name": "ExecDetailsV2", + "fields": [ + { + "id": 1, + "name": "time_detail", + "type": "TimeDetail" + }, + { + "id": 2, + "name": "scan_detail_v2", + "type": "ScanDetailV2" + }, + { + "id": 3, + "name": "write_detail", + "type": "WriteDetail" + } + ] + }, + { + "name": "WriteDetail", + "fields": [ + { + "id": 1, + "name": "store_batch_wait_nanos", + "type": "uint64" + }, + { + "id": 2, + "name": "propose_send_wait_nanos", + "type": "uint64" + }, + { + "id": 3, + "name": "persist_log_nanos", + "type": "uint64" + }, + { + "id": 4, + "name": "raft_db_write_leader_wait_nanos", + "type": "uint64" + }, + { + "id": 5, + "name": "raft_db_sync_log_nanos", + "type": "uint64" + }, + { + "id": 6, + "name": "raft_db_write_memtable_nanos", + "type": "uint64" + }, + { + "id": 7, + "name": "commit_log_nanos", + "type": "uint64" + }, + { + "id": 8, + "name": "apply_batch_wait_nanos", + "type": "uint64" + }, + { + "id": 9, + "name": "apply_log_nanos", + "type": "uint64" + }, + { + "id": 10, + "name": "apply_mutex_lock_nanos", + "type": "uint64" + }, + { + "id": 11, + "name": "apply_write_leader_wait_nanos", + "type": "uint64" + }, + { + "id": 12, + "name": "apply_write_wal_nanos", + "type": "uint64" + }, + { + "id": 13, + "name": "apply_write_memtable_nanos", + "type": "uint64" + }, + { + "id": 14, + "name": "latch_wait_nanos", + "type": "uint64" + }, + { + "id": 15, + "name": "process_nanos", + "type": "uint64" + }, + { + "id": 16, + "name": "throttle_nanos", + "type": "uint64" + }, + { + "id": 17, + "name": "pessimistic_lock_wait_nanos", + "type": "uint64" + } + ] + }, + { + "name": "KvPair", + "fields": [ + { + "id": 1, + "name": "error", + "type": "KeyError" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + }, + { + "id": 3, + "name": "value", + "type": "bytes" + } + ] + }, + { + "name": "Mutation", + "fields": [ + { + "id": 1, + "name": "op", + "type": "Op" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + }, + { + "id": 3, + "name": "value", + "type": "bytes" + }, + { + "id": 4, + "name": "assertion", + "type": "Assertion" + } + ] + }, + { + "name": "MvccWrite", + "fields": [ + { + "id": 1, + "name": "type", + "type": "Op" + }, + { + "id": 2, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 3, + "name": "commit_ts", + "type": "uint64" + }, + { + "id": 4, + "name": "short_value", + "type": "bytes" + }, + { + "id": 5, + "name": "has_overlapped_rollback", + "type": "bool" + }, + { + "id": 6, + "name": "has_gc_fence", + "type": "bool" + }, + { + "id": 7, + "name": "gc_fence", + "type": "uint64" + }, + { + "id": 8, + "name": "last_change_ts", + "type": "uint64" + }, + { + "id": 9, + "name": "versions_to_last_change", + "type": "uint64" + } + ] + }, + { + "name": "MvccValue", + "fields": [ + { + "id": 1, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 2, + "name": "value", + "type": "bytes" + } + ] + }, + { + "name": "MvccLock", + "fields": [ + { + "id": 1, + "name": "type", + "type": "Op" + }, + { + "id": 2, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 3, + "name": "primary", + "type": "bytes" + }, + { + "id": 4, + "name": "short_value", + "type": "bytes" + }, + { + "id": 5, + "name": "ttl", + "type": "uint64" + }, + { + "id": 6, + "name": "for_update_ts", + "type": "uint64" + }, + { + "id": 7, + "name": "txn_size", + "type": "uint64" + }, + { + "id": 8, + "name": "use_async_commit", + "type": "bool" + }, + { + "id": 9, + "name": "secondaries", + "type": "bytes", + "is_repeated": true + }, + { + "id": 10, + "name": "rollback_ts", + "type": "uint64", + "is_repeated": true + }, + { + "id": 11, + "name": "last_change_ts", + "type": "uint64" + }, + { + "id": 12, + "name": "versions_to_last_change", + "type": "uint64" + } + ] + }, + { + "name": "MvccInfo", + "fields": [ + { + "id": 1, + "name": "lock", + "type": "MvccLock" + }, + { + "id": 2, + "name": "writes", + "type": "MvccWrite", + "is_repeated": true + }, + { + "id": 3, + "name": "values", + "type": "MvccValue", + "is_repeated": true + } + ] + }, + { + "name": "TxnInfo", + "fields": [ + { + "id": 1, + "name": "txn", + "type": "uint64" + }, + { + "id": 2, + "name": "status", + "type": "uint64" + } + ] + }, + { + "name": "KeyRange", + "fields": [ + { + "id": 1, + "name": "start_key", + "type": "bytes" + }, + { + "id": 2, + "name": "end_key", + "type": "bytes" + } + ] + }, + { + "name": "LeaderInfo", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "peer_id", + "type": "uint64" + }, + { + "id": 3, + "name": "term", + "type": "uint64" + }, + { + "id": 4, + "name": "region_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 5, + "name": "read_state", + "type": "ReadState" + } + ] + }, + { + "name": "ReadState", + "fields": [ + { + "id": 1, + "name": "applied_index", + "type": "uint64" + }, + { + "id": 2, + "name": "safe_ts", + "type": "uint64" + } + ] + }, + { + "name": "CheckLeaderRequest", + "fields": [ + { + "id": 1, + "name": "regions", + "type": "LeaderInfo", + "is_repeated": true + }, + { + "id": 2, + "name": "ts", + "type": "uint64" + } + ] + }, + { + "name": "CheckLeaderResponse", + "fields": [ + { + "id": 1, + "name": "regions", + "type": "uint64", + "is_repeated": true + }, + { + "id": 2, + "name": "ts", + "type": "uint64" + } + ] + }, + { + "name": "StoreSafeTSRequest", + "fields": [ + { + "id": 1, + "name": "key_range", + "type": "KeyRange" + } + ] + }, + { + "name": "StoreSafeTSResponse", + "fields": [ + { + "id": 1, + "name": "safe_ts", + "type": "uint64" + } + ] + }, + { + "name": "RawGetKeyTTLRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + }, + { + "id": 3, + "name": "cf", + "type": "string" + } + ] + }, + { + "name": "RawGetKeyTTLResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + }, + { + "id": 3, + "name": "ttl", + "type": "uint64" + }, + { + "id": 4, + "name": "not_found", + "type": "bool" + } + ] + }, + { + "name": "RawCASRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + }, + { + "id": 3, + "name": "value", + "type": "bytes" + }, + { + "id": 4, + "name": "previous_not_exist", + "type": "bool" + }, + { + "id": 5, + "name": "previous_value", + "type": "bytes" + }, + { + "id": 6, + "name": "cf", + "type": "string" + }, + { + "id": 7, + "name": "ttl", + "type": "uint64" + } + ] + }, + { + "name": "RawCASResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + }, + { + "id": 3, + "name": "succeed", + "type": "bool" + }, + { + "id": 4, + "name": "previous_not_exist", + "type": "bool" + }, + { + "id": 5, + "name": "previous_value", + "type": "bytes" + } + ] + }, + { + "name": "GetLockWaitInfoRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + } + ] + }, + { + "name": "GetLockWaitInfoResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + }, + { + "id": 3, + "name": "entries", + "type": "deadlock.WaitForEntry", + "is_repeated": true + } + ] + }, + { + "name": "GetLockWaitHistoryRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + } + ] + }, + { + "name": "GetLockWaitHistoryResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + }, + { + "id": 3, + "name": "entries", + "type": "deadlock.WaitForEntry", + "is_repeated": true + } + ] + }, + { + "name": "RawCoprocessorRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "kvrpcpb.Context" + }, + { + "id": 2, + "name": "copr_name", + "type": "string" + }, + { + "id": 3, + "name": "copr_version_req", + "type": "string" + }, + { + "id": 4, + "name": "ranges", + "type": "KeyRange", + "is_repeated": true + }, + { + "id": 5, + "name": "data", + "type": "bytes" + } + ] + }, + { + "name": "RawCoprocessorResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + }, + { + "id": 3, + "name": "data", + "type": "bytes" + } + ] + }, + { + "name": "RawChecksumRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "Context" + }, + { + "id": 2, + "name": "algorithm", + "type": "ChecksumAlgorithm" + }, + { + "id": 3, + "name": "ranges", + "type": "KeyRange", + "is_repeated": true + } + ] + }, + { + "name": "RawChecksumResponse", + "fields": [ + { + "id": 1, + "name": "region_error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "error", + "type": "string" + }, + { + "id": 3, + "name": "checksum", + "type": "uint64" + }, + { + "id": 4, + "name": "total_kvs", + "type": "uint64" + }, + { + "id": 5, + "name": "total_bytes", + "type": "uint64" + } + ] + }, + { + "name": "CompactError", + "fields": [ + { + "id": 1, + "name": "err_invalid_start_key", + "type": "CompactErrorInvalidStartKey" + }, + { + "id": 2, + "name": "err_physical_table_not_exist", + "type": "CompactErrorPhysicalTableNotExist" + }, + { + "id": 3, + "name": "err_compact_in_progress", + "type": "CompactErrorCompactInProgress" + }, + { + "id": 4, + "name": "err_too_many_pending_tasks", + "type": "CompactErrorTooManyPendingTasks" + } + ] + }, + { + "name": "CompactErrorInvalidStartKey" + }, + { + "name": "CompactErrorPhysicalTableNotExist" + }, + { + "name": "CompactErrorCompactInProgress" + }, + { + "name": "CompactErrorTooManyPendingTasks" + }, + { + "name": "CompactRequest", + "fields": [ + { + "id": 1, + "name": "start_key", + "type": "bytes" + }, + { + "id": 2, + "name": "physical_table_id", + "type": "int64" + }, + { + "id": 3, + "name": "logical_table_id", + "type": "int64" + } + ] + }, + { + "name": "CompactResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "CompactError" + }, + { + "id": 2, + "name": "has_remaining", + "type": "bool" + }, + { + "id": 3, + "name": "compacted_start_key", + "type": "bytes" + }, + { + "id": 4, + "name": "compacted_end_key", + "type": "bytes" + } + ] + } + ], + "imports": [ + { + "path": "metapb.proto" + }, + { + "path": "errorpb.proto" + }, + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + }, + { + "path": "deadlock.proto" + }, + { + "path": "tracepb.proto" + } + ], + "package": { + "name": "kvrpcpb" + }, + "options": [ + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "logbackuppb.proto", + "def": { + "messages": [ + { + "name": "RegionIdentity", + "fields": [ + { + "id": 1, + "name": "id", + "type": "uint64" + }, + { + "id": 2, + "name": "epoch_version", + "type": "uint64" + } + ] + }, + { + "name": "RegionCheckpoint", + "fields": [ + { + "id": 1, + "name": "err", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "region", + "type": "RegionIdentity" + }, + { + "id": 3, + "name": "checkpoint", + "type": "uint64" + } + ] + }, + { + "name": "GetLastFlushTSOfRegionRequest", + "fields": [ + { + "id": 1, + "name": "regions", + "type": "RegionIdentity", + "is_repeated": true + } + ] + }, + { + "name": "GetLastFlushTSOfRegionResponse", + "fields": [ + { + "id": 1, + "name": "checkpoints", + "type": "RegionCheckpoint", + "is_repeated": true + } + ] + }, + { + "name": "SubscribeFlushEventRequest", + "fields": [ + { + "id": 1, + "name": "client_id", + "type": "string" + } + ] + }, + { + "name": "SubscribeFlushEventResponse", + "fields": [ + { + "id": 1, + "name": "events", + "type": "FlushEvent", + "is_repeated": true + } + ] + }, + { + "name": "FlushEvent", + "fields": [ + { + "id": 1, + "name": "start_key", + "type": "bytes" + }, + { + "id": 2, + "name": "end_key", + "type": "bytes" + }, + { + "id": 3, + "name": "checkpoint", + "type": "uint64" + } + ] + } + ], + "services": [ + { + "name": "LogBackup", + "rpcs": [ + { + "name": "GetLastFlushTSOfRegion", + "in_type": "GetLastFlushTSOfRegionRequest", + "out_type": "GetLastFlushTSOfRegionResponse" + }, + { + "name": "SubscribeFlushEvent", + "in_type": "SubscribeFlushEventRequest", + "out_type": "SubscribeFlushEventResponse", + "out_streamed": true + } + ] + } + ], + "imports": [ + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + }, + { + "path": "errorpb.proto" + } + ], + "package": { + "name": "logbackup" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "metapb.proto", + "def": { + "enums": [ + { + "name": "StoreState", + "enum_fields": [ + { + "name": "Up" + }, + { + "name": "Offline", + "integer": 1 + }, + { + "name": "Tombstone", + "integer": 2 + } + ] + }, + { + "name": "NodeState", + "enum_fields": [ + { + "name": "Preparing" + }, + { + "name": "Serving", + "integer": 1 + }, + { + "name": "Removing", + "integer": 2 + }, + { + "name": "Removed", + "integer": 3 + } + ] + }, + { + "name": "PeerRole", + "enum_fields": [ + { + "name": "Voter" + }, + { + "name": "Learner", + "integer": 1 + }, + { + "name": "IncomingVoter", + "integer": 2 + }, + { + "name": "DemotingVoter", + "integer": 3 + } + ] + } + ], + "messages": [ + { + "name": "Cluster", + "fields": [ + { + "id": 1, + "name": "id", + "type": "uint64" + }, + { + "id": 2, + "name": "max_peer_count", + "type": "uint32" + } + ] + }, + { + "name": "StoreLabel", + "fields": [ + { + "id": 1, + "name": "key", + "type": "string" + }, + { + "id": 2, + "name": "value", + "type": "string" + } + ] + }, + { + "name": "Store", + "fields": [ + { + "id": 1, + "name": "id", + "type": "uint64" + }, + { + "id": 2, + "name": "address", + "type": "string" + }, + { + "id": 3, + "name": "state", + "type": "StoreState" + }, + { + "id": 4, + "name": "labels", + "type": "StoreLabel", + "is_repeated": true + }, + { + "id": 5, + "name": "version", + "type": "string" + }, + { + "id": 6, + "name": "peer_address", + "type": "string" + }, + { + "id": 7, + "name": "status_address", + "type": "string" + }, + { + "id": 8, + "name": "git_hash", + "type": "string" + }, + { + "id": 9, + "name": "start_timestamp", + "type": "int64" + }, + { + "id": 10, + "name": "deploy_path", + "type": "string" + }, + { + "id": 11, + "name": "last_heartbeat", + "type": "int64" + }, + { + "id": 12, + "name": "physically_destroyed", + "type": "bool" + }, + { + "id": 13, + "name": "node_state", + "type": "NodeState" + } + ] + }, + { + "name": "RegionEpoch", + "fields": [ + { + "id": 1, + "name": "conf_ver", + "type": "uint64" + }, + { + "id": 2, + "name": "version", + "type": "uint64" + } + ] + }, + { + "name": "BucketStats", + "fields": [ + { + "id": 1, + "name": "read_bytes", + "type": "uint64", + "is_repeated": true + }, + { + "id": 2, + "name": "write_bytes", + "type": "uint64", + "is_repeated": true + }, + { + "id": 3, + "name": "read_qps", + "type": "uint64", + "is_repeated": true + }, + { + "id": 4, + "name": "write_qps", + "type": "uint64", + "is_repeated": true + }, + { + "id": 5, + "name": "read_keys", + "type": "uint64", + "is_repeated": true + }, + { + "id": 6, + "name": "write_keys", + "type": "uint64", + "is_repeated": true + } + ] + }, + { + "name": "Buckets", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "version", + "type": "uint64" + }, + { + "id": 3, + "name": "keys", + "type": "bytes", + "is_repeated": true + }, + { + "id": 4, + "name": "stats", + "type": "BucketStats" + }, + { + "id": 5, + "name": "period_in_ms", + "type": "uint64" + } + ] + }, + { + "name": "Region", + "fields": [ + { + "id": 1, + "name": "id", + "type": "uint64" + }, + { + "id": 2, + "name": "start_key", + "type": "bytes" + }, + { + "id": 3, + "name": "end_key", + "type": "bytes" + }, + { + "id": 4, + "name": "region_epoch", + "type": "RegionEpoch" + }, + { + "id": 5, + "name": "peers", + "type": "Peer", + "is_repeated": true + }, + { + "id": 6, + "name": "encryption_meta", + "type": "encryptionpb.EncryptionMeta" + }, + { + "id": 7, + "name": "is_in_flashback", + "type": "bool" + }, + { + "id": 8, + "name": "flashback_start_ts", + "type": "uint64" + } + ] + }, + { + "name": "Peer", + "fields": [ + { + "id": 1, + "name": "id", + "type": "uint64" + }, + { + "id": 2, + "name": "store_id", + "type": "uint64" + }, + { + "id": 3, + "name": "role", + "type": "PeerRole" + }, + { + "id": 4, + "name": "is_witness", + "type": "bool" + } + ] + } + ], + "imports": [ + { + "path": "encryptionpb.proto" + }, + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "metapb" + }, + "options": [ + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "mpp.proto", + "def": { + "messages": [ + { + "name": "TaskMeta", + "fields": [ + { + "id": 1, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 2, + "name": "task_id", + "type": "int64" + }, + { + "id": 3, + "name": "partition_id", + "type": "int64" + }, + { + "id": 4, + "name": "address", + "type": "string" + }, + { + "id": 5, + "name": "gather_id", + "type": "uint64" + }, + { + "id": 6, + "name": "query_ts", + "type": "uint64" + }, + { + "id": 7, + "name": "local_query_id", + "type": "uint64" + }, + { + "id": 8, + "name": "server_id", + "type": "uint64" + }, + { + "id": 9, + "name": "mpp_version", + "type": "int64" + } + ] + }, + { + "name": "IsAliveRequest" + }, + { + "name": "IsAliveResponse", + "fields": [ + { + "id": 1, + "name": "available", + "type": "bool" + }, + { + "id": 2, + "name": "mpp_version", + "type": "int64" + } + ] + }, + { + "name": "DispatchTaskRequest", + "fields": [ + { + "id": 1, + "name": "meta", + "type": "TaskMeta" + }, + { + "id": 2, + "name": "encoded_plan", + "type": "bytes" + }, + { + "id": 3, + "name": "timeout", + "type": "int64" + }, + { + "id": 4, + "name": "regions", + "type": "coprocessor.RegionInfo", + "is_repeated": true + }, + { + "id": 5, + "name": "schema_ver", + "type": "int64" + }, + { + "id": 6, + "name": "table_regions", + "type": "coprocessor.TableRegions", + "is_repeated": true + } + ] + }, + { + "name": "DispatchTaskResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + }, + { + "id": 2, + "name": "retry_regions", + "type": "metapb.Region", + "is_repeated": true + } + ] + }, + { + "name": "CancelTaskRequest", + "fields": [ + { + "id": 1, + "name": "meta", + "type": "TaskMeta" + }, + { + "id": 2, + "name": "error", + "type": "Error" + } + ] + }, + { + "name": "CancelTaskResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + } + ] + }, + { + "name": "EstablishMPPConnectionRequest", + "fields": [ + { + "id": 1, + "name": "sender_meta", + "type": "TaskMeta" + }, + { + "id": 2, + "name": "receiver_meta", + "type": "TaskMeta" + } + ] + }, + { + "name": "MPPDataPacket", + "fields": [ + { + "id": 1, + "name": "data", + "type": "bytes" + }, + { + "id": 2, + "name": "error", + "type": "Error" + }, + { + "id": 3, + "name": "chunks", + "type": "bytes", + "is_repeated": true + }, + { + "id": 4, + "name": "stream_ids", + "type": "uint64", + "is_repeated": true + }, + { + "id": 5, + "name": "version", + "type": "int64" + } + ] + }, + { + "name": "Error", + "fields": [ + { + "id": 1, + "name": "code", + "type": "int32" + }, + { + "id": 2, + "name": "msg", + "type": "string" + }, + { + "id": 3, + "name": "mpp_version", + "type": "int64" + } + ] + } + ], + "imports": [ + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "coprocessor.proto" + }, + { + "path": "metapb.proto" + } + ], + "package": { + "name": "mpp" + }, + "options": [ + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "pdpb.proto", + "def": { + "enums": [ + { + "name": "EventType", + "enum_fields": [ + { + "name": "PUT" + }, + { + "name": "DELETE", + "integer": 1 + } + ] + }, + { + "name": "ErrorType", + "enum_fields": [ + { + "name": "OK" + }, + { + "name": "UNKNOWN", + "integer": 1 + }, + { + "name": "NOT_BOOTSTRAPPED", + "integer": 2 + }, + { + "name": "STORE_TOMBSTONE", + "integer": 3 + }, + { + "name": "ALREADY_BOOTSTRAPPED", + "integer": 4 + }, + { + "name": "INCOMPATIBLE_VERSION", + "integer": 5 + }, + { + "name": "REGION_NOT_FOUND", + "integer": 6 + }, + { + "name": "GLOBAL_CONFIG_NOT_FOUND", + "integer": 7 + }, + { + "name": "DUPLICATED_ENTRY", + "integer": 8 + }, + { + "name": "ENTRY_NOT_FOUND", + "integer": 9 + }, + { + "name": "INVALID_VALUE", + "integer": 10 + }, + { + "name": "DATA_COMPACTED", + "integer": 11 + } + ] + }, + { + "name": "CheckPolicy", + "enum_fields": [ + { + "name": "SCAN" + }, + { + "name": "APPROXIMATE", + "integer": 1 + }, + { + "name": "USEKEY", + "integer": 2 + } + ] + }, + { + "name": "OperatorStatus", + "enum_fields": [ + { + "name": "SUCCESS" + }, + { + "name": "TIMEOUT", + "integer": 1 + }, + { + "name": "CANCEL", + "integer": 2 + }, + { + "name": "REPLACE", + "integer": 3 + }, + { + "name": "RUNNING", + "integer": 4 + } + ] + }, + { + "name": "QueryKind", + "enum_fields": [ + { + "name": "Others" + }, + { + "name": "GC", + "integer": 1 + }, + { + "name": "Get", + "integer": 2 + }, + { + "name": "Scan", + "integer": 3 + }, + { + "name": "Coprocessor", + "integer": 4 + }, + { + "name": "Delete", + "integer": 5 + }, + { + "name": "DeleteRange", + "integer": 6 + }, + { + "name": "Put", + "integer": 7 + }, + { + "name": "Prewrite", + "integer": 8 + }, + { + "name": "AcquirePessimisticLock", + "integer": 9 + }, + { + "name": "Commit", + "integer": 10 + }, + { + "name": "Rollback", + "integer": 11 + } + ] + } + ], + "messages": [ + { + "name": "WatchGlobalConfigRequest", + "fields": [ + { + "id": 1, + "name": "config_path", + "type": "string" + }, + { + "id": 2, + "name": "revision", + "type": "int64" + } + ] + }, + { + "name": "WatchGlobalConfigResponse", + "fields": [ + { + "id": 1, + "name": "changes", + "type": "GlobalConfigItem", + "is_repeated": true + }, + { + "id": 2, + "name": "revision", + "type": "int64" + }, + { + "id": 3, + "name": "header", + "type": "ResponseHeader" + } + ] + }, + { + "name": "StoreGlobalConfigRequest", + "fields": [ + { + "id": 1, + "name": "changes", + "type": "GlobalConfigItem", + "is_repeated": true + }, + { + "id": 2, + "name": "config_path", + "type": "string" + } + ] + }, + { + "name": "StoreGlobalConfigResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + } + ] + }, + { + "name": "LoadGlobalConfigRequest", + "fields": [ + { + "id": 1, + "name": "names", + "type": "string", + "is_repeated": true + }, + { + "id": 2, + "name": "config_path", + "type": "string" + } + ] + }, + { + "name": "LoadGlobalConfigResponse", + "fields": [ + { + "id": 1, + "name": "items", + "type": "GlobalConfigItem", + "is_repeated": true + }, + { + "id": 2, + "name": "revision", + "type": "int64" + } + ] + }, + { + "name": "GlobalConfigItem", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "value", + "type": "string" + }, + { + "id": 3, + "name": "error", + "type": "Error" + }, + { + "id": 4, + "name": "kind", + "type": "EventType" + }, + { + "id": 5, + "name": "payload", + "type": "bytes" + } + ] + }, + { + "name": "RequestHeader", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + }, + { + "id": 2, + "name": "sender_id", + "type": "uint64" + } + ] + }, + { + "name": "ResponseHeader", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + }, + { + "id": 2, + "name": "error", + "type": "Error" + } + ] + }, + { + "name": "Error", + "fields": [ + { + "id": 1, + "name": "type", + "type": "ErrorType" + }, + { + "id": 2, + "name": "message", + "type": "string" + } + ] + }, + { + "name": "TsoRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "count", + "type": "uint32" + }, + { + "id": 3, + "name": "dc_location", + "type": "string" + } + ] + }, + { + "name": "Timestamp", + "fields": [ + { + "id": 1, + "name": "physical", + "type": "int64" + }, + { + "id": 2, + "name": "logical", + "type": "int64" + }, + { + "id": 3, + "name": "suffix_bits", + "type": "uint32" + } + ] + }, + { + "name": "TsoResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "count", + "type": "uint32" + }, + { + "id": 3, + "name": "timestamp", + "type": "Timestamp" + } + ] + }, + { + "name": "BootstrapRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "store", + "type": "metapb.Store" + }, + { + "id": 3, + "name": "region", + "type": "metapb.Region" + } + ] + }, + { + "name": "BootstrapResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "replication_status", + "type": "replication_modepb.ReplicationStatus" + } + ] + }, + { + "name": "IsBootstrappedRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + } + ] + }, + { + "name": "IsBootstrappedResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "bootstrapped", + "type": "bool" + } + ] + }, + { + "name": "AllocIDRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + } + ] + }, + { + "name": "AllocIDResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "id", + "type": "uint64" + } + ] + }, + { + "name": "IsSnapshotRecoveringRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + } + ] + }, + { + "name": "IsSnapshotRecoveringResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "marked", + "type": "bool" + } + ] + }, + { + "name": "GetStoreRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "store_id", + "type": "uint64" + } + ] + }, + { + "name": "GetStoreResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "store", + "type": "metapb.Store" + }, + { + "id": 3, + "name": "stats", + "type": "StoreStats" + } + ] + }, + { + "name": "PutStoreRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "store", + "type": "metapb.Store" + } + ] + }, + { + "name": "PutStoreResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "replication_status", + "type": "replication_modepb.ReplicationStatus" + } + ] + }, + { + "name": "GetAllStoresRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "exclude_tombstone_stores", + "type": "bool" + } + ] + }, + { + "name": "GetAllStoresResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "stores", + "type": "metapb.Store", + "is_repeated": true + } + ] + }, + { + "name": "GetRegionRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "region_key", + "type": "bytes" + }, + { + "id": 3, + "name": "need_buckets", + "type": "bool" + } + ] + }, + { + "name": "GetRegionResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "region", + "type": "metapb.Region" + }, + { + "id": 3, + "name": "leader", + "type": "metapb.Peer" + }, + { + "id": 5, + "name": "down_peers", + "type": "PeerStats", + "is_repeated": true + }, + { + "id": 6, + "name": "pending_peers", + "type": "metapb.Peer", + "is_repeated": true + }, + { + "id": 7, + "name": "buckets", + "type": "metapb.Buckets" + } + ], + "reserved_ids": [ + 4 + ] + }, + { + "name": "GetRegionByIDRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "region_id", + "type": "uint64" + }, + { + "id": 3, + "name": "need_buckets", + "type": "bool" + } + ] + }, + { + "name": "ScanRegionsRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "start_key", + "type": "bytes" + }, + { + "id": 3, + "name": "limit", + "type": "int32" + }, + { + "id": 4, + "name": "end_key", + "type": "bytes" + } + ] + }, + { + "name": "Region", + "fields": [ + { + "id": 1, + "name": "region", + "type": "metapb.Region" + }, + { + "id": 2, + "name": "leader", + "type": "metapb.Peer" + }, + { + "id": 3, + "name": "down_peers", + "type": "PeerStats", + "is_repeated": true + }, + { + "id": 4, + "name": "pending_peers", + "type": "metapb.Peer", + "is_repeated": true + } + ] + }, + { + "name": "ScanRegionsResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "region_metas", + "type": "metapb.Region", + "is_repeated": true + }, + { + "id": 3, + "name": "leaders", + "type": "metapb.Peer", + "is_repeated": true + }, + { + "id": 4, + "name": "regions", + "type": "Region", + "is_repeated": true + } + ] + }, + { + "name": "GetClusterConfigRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + } + ] + }, + { + "name": "GetClusterConfigResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "cluster", + "type": "metapb.Cluster" + } + ] + }, + { + "name": "PutClusterConfigRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "cluster", + "type": "metapb.Cluster" + } + ] + }, + { + "name": "PutClusterConfigResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + } + ] + }, + { + "name": "Member", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "member_id", + "type": "uint64" + }, + { + "id": 3, + "name": "peer_urls", + "type": "string", + "is_repeated": true + }, + { + "id": 4, + "name": "client_urls", + "type": "string", + "is_repeated": true + }, + { + "id": 5, + "name": "leader_priority", + "type": "int32" + }, + { + "id": 6, + "name": "deploy_path", + "type": "string" + }, + { + "id": 7, + "name": "binary_version", + "type": "string" + }, + { + "id": 8, + "name": "git_hash", + "type": "string" + }, + { + "id": 9, + "name": "dc_location", + "type": "string" + } + ] + }, + { + "name": "GetMembersRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + } + ] + }, + { + "name": "GetMembersResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "members", + "type": "Member", + "is_repeated": true + }, + { + "id": 3, + "name": "leader", + "type": "Member" + }, + { + "id": 4, + "name": "etcd_leader", + "type": "Member" + } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 5, + "name": "tso_allocator_leaders", + "type": "Member" + } + } + ] + }, + { + "name": "PeerStats", + "fields": [ + { + "id": 1, + "name": "peer", + "type": "metapb.Peer" + }, + { + "id": 2, + "name": "down_seconds", + "type": "uint64" + } + ] + }, + { + "name": "RegionHeartbeatRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "region", + "type": "metapb.Region" + }, + { + "id": 3, + "name": "leader", + "type": "metapb.Peer" + }, + { + "id": 4, + "name": "down_peers", + "type": "PeerStats", + "is_repeated": true + }, + { + "id": 5, + "name": "pending_peers", + "type": "metapb.Peer", + "is_repeated": true + }, + { + "id": 6, + "name": "bytes_written", + "type": "uint64" + }, + { + "id": 7, + "name": "bytes_read", + "type": "uint64" + }, + { + "id": 8, + "name": "keys_written", + "type": "uint64" + }, + { + "id": 9, + "name": "keys_read", + "type": "uint64" + }, + { + "id": 10, + "name": "approximate_size", + "type": "uint64" + }, + { + "id": 12, + "name": "interval", + "type": "TimeInterval" + }, + { + "id": 13, + "name": "approximate_keys", + "type": "uint64" + }, + { + "id": 14, + "name": "term", + "type": "uint64" + }, + { + "id": 15, + "name": "replication_status", + "type": "replication_modepb.RegionReplicationStatus" + }, + { + "id": 16, + "name": "query_stats", + "type": "QueryStats" + }, + { + "id": 17, + "name": "cpu_usage", + "type": "uint64" + }, + { + "id": 18, + "name": "approximate_kv_size", + "type": "uint64" + } + ], + "reserved_ids": [ + 11 + ] + }, + { + "name": "ChangePeer", + "fields": [ + { + "id": 1, + "name": "peer", + "type": "metapb.Peer" + }, + { + "id": 2, + "name": "change_type", + "type": "eraftpb.ConfChangeType" + } + ] + }, + { + "name": "ChangePeerV2", + "fields": [ + { + "id": 1, + "name": "changes", + "type": "ChangePeer", + "is_repeated": true + } + ] + }, + { + "name": "TransferLeader", + "fields": [ + { + "id": 1, + "name": "peer", + "type": "metapb.Peer" + }, + { + "id": 2, + "name": "peers", + "type": "metapb.Peer", + "is_repeated": true + } + ] + }, + { + "name": "Merge", + "fields": [ + { + "id": 1, + "name": "target", + "type": "metapb.Region" + } + ] + }, + { + "name": "SplitRegion", + "fields": [ + { + "id": 1, + "name": "policy", + "type": "CheckPolicy" + }, + { + "id": 2, + "name": "keys", + "type": "bytes", + "is_repeated": true + } + ] + }, + { + "name": "SwitchWitness", + "fields": [ + { + "id": 1, + "name": "peer_id", + "type": "uint64" + }, + { + "id": 2, + "name": "is_witness", + "type": "bool" + } + ] + }, + { + "name": "BatchSwitchWitness", + "fields": [ + { + "id": 1, + "name": "switch_witnesses", + "type": "SwitchWitness", + "is_repeated": true + } + ] + }, + { + "name": "RegionHeartbeatResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "change_peer", + "type": "ChangePeer" + }, + { + "id": 3, + "name": "transfer_leader", + "type": "TransferLeader" + }, + { + "id": 4, + "name": "region_id", + "type": "uint64" + }, + { + "id": 5, + "name": "region_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 6, + "name": "target_peer", + "type": "metapb.Peer" + }, + { + "id": 7, + "name": "merge", + "type": "Merge" + }, + { + "id": 8, + "name": "split_region", + "type": "SplitRegion" + }, + { + "id": 9, + "name": "change_peer_v2", + "type": "ChangePeerV2" + }, + { + "id": 10, + "name": "switch_witnesses", + "type": "BatchSwitchWitness" + } + ] + }, + { + "name": "AskSplitRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "region", + "type": "metapb.Region" + } + ] + }, + { + "name": "AskSplitResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "new_region_id", + "type": "uint64" + }, + { + "id": 3, + "name": "new_peer_ids", + "type": "uint64", + "is_repeated": true + } + ] + }, + { + "name": "ReportSplitRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "left", + "type": "metapb.Region" + }, + { + "id": 3, + "name": "right", + "type": "metapb.Region" + } + ] + }, + { + "name": "ReportSplitResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + } + ] + }, + { + "name": "AskBatchSplitRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "region", + "type": "metapb.Region" + }, + { + "id": 3, + "name": "split_count", + "type": "uint32" + } + ] + }, + { + "name": "SplitID", + "fields": [ + { + "id": 1, + "name": "new_region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "new_peer_ids", + "type": "uint64", + "is_repeated": true + } + ] + }, + { + "name": "AskBatchSplitResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "ids", + "type": "SplitID", + "is_repeated": true + } + ] + }, + { + "name": "ReportBatchSplitRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "regions", + "type": "metapb.Region", + "is_repeated": true + } + ] + }, + { + "name": "ReportBatchSplitResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + } + ] + }, + { + "name": "TimeInterval", + "fields": [ + { + "id": 1, + "name": "start_timestamp", + "type": "uint64" + }, + { + "id": 2, + "name": "end_timestamp", + "type": "uint64" + } + ] + }, + { + "name": "RecordPair", + "fields": [ + { + "id": 1, + "name": "key", + "type": "string" + }, + { + "id": 2, + "name": "value", + "type": "uint64" + } + ] + }, + { + "name": "PeerStat", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "read_keys", + "type": "uint64" + }, + { + "id": 3, + "name": "read_bytes", + "type": "uint64" + }, + { + "id": 4, + "name": "query_stats", + "type": "QueryStats" + }, + { + "id": 5, + "name": "written_keys", + "type": "uint64" + }, + { + "id": 6, + "name": "written_bytes", + "type": "uint64" + } + ] + }, + { + "name": "StoreStats", + "fields": [ + { + "id": 1, + "name": "store_id", + "type": "uint64" + }, + { + "id": 2, + "name": "capacity", + "type": "uint64" + }, + { + "id": 3, + "name": "available", + "type": "uint64" + }, + { + "id": 4, + "name": "region_count", + "type": "uint32" + }, + { + "id": 5, + "name": "sending_snap_count", + "type": "uint32" + }, + { + "id": 6, + "name": "receiving_snap_count", + "type": "uint32" + }, + { + "id": 7, + "name": "start_time", + "type": "uint32" + }, + { + "id": 8, + "name": "applying_snap_count", + "type": "uint32" + }, + { + "id": 9, + "name": "is_busy", + "type": "bool" + }, + { + "id": 10, + "name": "used_size", + "type": "uint64" + }, + { + "id": 11, + "name": "bytes_written", + "type": "uint64" + }, + { + "id": 12, + "name": "keys_written", + "type": "uint64" + }, + { + "id": 13, + "name": "bytes_read", + "type": "uint64" + }, + { + "id": 14, + "name": "keys_read", + "type": "uint64" + }, + { + "id": 15, + "name": "interval", + "type": "TimeInterval" + }, + { + "id": 16, + "name": "cpu_usages", + "type": "RecordPair", + "is_repeated": true + }, + { + "id": 17, + "name": "read_io_rates", + "type": "RecordPair", + "is_repeated": true + }, + { + "id": 18, + "name": "write_io_rates", + "type": "RecordPair", + "is_repeated": true + }, + { + "id": 19, + "name": "op_latencies", + "type": "RecordPair", + "is_repeated": true + }, + { + "id": 20, + "name": "peer_stats", + "type": "PeerStat", + "is_repeated": true + }, + { + "id": 21, + "name": "query_stats", + "type": "QueryStats" + }, + { + "id": 22, + "name": "slow_score", + "type": "uint64" + }, + { + "id": 23, + "name": "damaged_regions_id", + "type": "uint64", + "is_repeated": true + }, + { + "id": 24, + "name": "is_apply_busy", + "type": "bool" + }, + { + "id": 25, + "name": "snapshot_stats", + "type": "SnapshotStat", + "is_repeated": true + }, + { + "id": 26, + "name": "slow_trend", + "type": "SlowTrend" + } + ] + }, + { + "name": "SlowTrend", + "fields": [ + { + "id": 1, + "name": "cause_value", + "type": "double" + }, + { + "id": 2, + "name": "cause_rate", + "type": "double" + }, + { + "id": 3, + "name": "result_value", + "type": "double" + }, + { + "id": 4, + "name": "result_rate", + "type": "double" + } + ] + }, + { + "name": "SnapshotStat", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "generate_duration_sec", + "type": "uint64" + }, + { + "id": 3, + "name": "send_duration_sec", + "type": "uint64" + }, + { + "id": 4, + "name": "total_duration_sec", + "type": "uint64" + }, + { + "id": 5, + "name": "transport_size", + "type": "uint64" + } + ] + }, + { + "name": "PeerReport", + "fields": [ + { + "id": 1, + "name": "raft_state", + "type": "raft_serverpb.RaftLocalState" + }, + { + "id": 2, + "name": "region_state", + "type": "raft_serverpb.RegionLocalState" + }, + { + "id": 3, + "name": "is_force_leader", + "type": "bool" + }, + { + "id": 4, + "name": "has_commit_merge", + "type": "bool" + } + ] + }, + { + "name": "StoreReport", + "fields": [ + { + "id": 1, + "name": "peer_reports", + "type": "PeerReport", + "is_repeated": true + }, + { + "id": 2, + "name": "step", + "type": "uint64" + } + ] + }, + { + "name": "StoreHeartbeatRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "stats", + "type": "StoreStats" + }, + { + "id": 3, + "name": "store_report", + "type": "StoreReport" + }, + { + "id": 4, + "name": "dr_autosync_status", + "type": "replication_modepb.StoreDRAutoSyncStatus" + } + ] + }, + { + "name": "DemoteFailedVoters", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "failed_voters", + "type": "metapb.Peer", + "is_repeated": true + } + ] + }, + { + "name": "ForceLeader", + "fields": [ + { + "id": 1, + "name": "failed_stores", + "type": "uint64", + "is_repeated": true + }, + { + "id": 2, + "name": "enter_force_leaders", + "type": "uint64", + "is_repeated": true + } + ] + }, + { + "name": "RecoveryPlan", + "fields": [ + { + "id": 1, + "name": "creates", + "type": "metapb.Region", + "is_repeated": true + }, + { + "id": 2, + "name": "updates", + "type": "metapb.Region", + "is_repeated": true, + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "id": 3, + "name": "tombstones", + "type": "uint64", + "is_repeated": true + }, + { + "id": 4, + "name": "demotes", + "type": "DemoteFailedVoters", + "is_repeated": true + }, + { + "id": 5, + "name": "force_leader", + "type": "ForceLeader" + }, + { + "id": 6, + "name": "step", + "type": "uint64" + } + ] + }, + { + "name": "AwakenRegions", + "fields": [ + { + "id": 1, + "name": "abnormal_stores", + "type": "uint64", + "is_repeated": true + } + ] + }, + { + "name": "StoreHeartbeatResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "replication_status", + "type": "replication_modepb.ReplicationStatus" + }, + { + "id": 3, + "name": "cluster_version", + "type": "string" + }, + { + "id": 4, + "name": "require_detailed_report", + "type": "bool", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "id": 5, + "name": "recovery_plan", + "type": "RecoveryPlan" + }, + { + "id": 6, + "name": "awaken_regions", + "type": "AwakenRegions" + } + ] + }, + { + "name": "ScatterRegionRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "region_id", + "type": "uint64", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "id": 3, + "name": "region", + "type": "metapb.Region" + }, + { + "id": 4, + "name": "leader", + "type": "metapb.Peer" + }, + { + "id": 5, + "name": "group", + "type": "string" + }, + { + "id": 6, + "name": "regions_id", + "type": "uint64", + "is_repeated": true + }, + { + "id": 7, + "name": "retry_limit", + "type": "uint64" + } + ] + }, + { + "name": "ScatterRegionResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "finished_percentage", + "type": "uint64" + } + ] + }, + { + "name": "GetGCSafePointRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + } + ] + }, + { + "name": "GetGCSafePointResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "safe_point", + "type": "uint64" + } + ] + }, + { + "name": "UpdateGCSafePointRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "safe_point", + "type": "uint64" + } + ] + }, + { + "name": "UpdateGCSafePointResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "new_safe_point", + "type": "uint64" + } + ] + }, + { + "name": "UpdateServiceGCSafePointRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "service_id", + "type": "bytes" + }, + { + "id": 3, + "name": "TTL", + "type": "int64" + }, + { + "id": 4, + "name": "safe_point", + "type": "uint64" + } + ] + }, + { + "name": "UpdateServiceGCSafePointResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "service_id", + "type": "bytes" + }, + { + "id": 3, + "name": "TTL", + "type": "int64" + }, + { + "id": 4, + "name": "min_safe_point", + "type": "uint64" + } + ] + }, + { + "name": "RegionStat", + "fields": [ + { + "id": 1, + "name": "bytes_written", + "type": "uint64" + }, + { + "id": 2, + "name": "bytes_read", + "type": "uint64" + }, + { + "id": 3, + "name": "keys_written", + "type": "uint64" + }, + { + "id": 4, + "name": "keys_read", + "type": "uint64" + } + ] + }, + { + "name": "SyncRegionRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "member", + "type": "Member" + }, + { + "id": 3, + "name": "start_index", + "type": "uint64" + } + ] + }, + { + "name": "SyncRegionResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "regions", + "type": "metapb.Region", + "is_repeated": true + }, + { + "id": 3, + "name": "start_index", + "type": "uint64" + }, + { + "id": 4, + "name": "region_stats", + "type": "RegionStat", + "is_repeated": true + }, + { + "id": 5, + "name": "region_leaders", + "type": "metapb.Peer", + "is_repeated": true + }, + { + "id": 6, + "name": "buckets", + "type": "metapb.Buckets", + "is_repeated": true + } + ] + }, + { + "name": "GetOperatorRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "region_id", + "type": "uint64" + } + ] + }, + { + "name": "GetOperatorResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "region_id", + "type": "uint64" + }, + { + "id": 3, + "name": "desc", + "type": "bytes" + }, + { + "id": 4, + "name": "status", + "type": "OperatorStatus" + }, + { + "id": 5, + "name": "kind", + "type": "bytes" + } + ] + }, + { + "name": "SyncMaxTSRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "max_ts", + "type": "Timestamp" + }, + { + "id": 3, + "name": "skip_check", + "type": "bool" + } + ] + }, + { + "name": "SyncMaxTSResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "max_local_ts", + "type": "Timestamp" + }, + { + "id": 3, + "name": "synced_dcs", + "type": "string", + "is_repeated": true + } + ] + }, + { + "name": "SplitRegionsRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "split_keys", + "type": "bytes", + "is_repeated": true + }, + { + "id": 3, + "name": "retry_limit", + "type": "uint64" + } + ] + }, + { + "name": "SplitRegionsResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "finished_percentage", + "type": "uint64" + }, + { + "id": 3, + "name": "regions_id", + "type": "uint64", + "is_repeated": true + } + ] + }, + { + "name": "SplitAndScatterRegionsRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "split_keys", + "type": "bytes", + "is_repeated": true + }, + { + "id": 3, + "name": "group", + "type": "string" + }, + { + "id": 4, + "name": "retry_limit", + "type": "uint64" + } + ] + }, + { + "name": "SplitAndScatterRegionsResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "split_finished_percentage", + "type": "uint64" + }, + { + "id": 3, + "name": "scatter_finished_percentage", + "type": "uint64" + }, + { + "id": 4, + "name": "regions_id", + "type": "uint64", + "is_repeated": true + } + ] + }, + { + "name": "GetDCLocationInfoRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "dc_location", + "type": "string" + } + ] + }, + { + "name": "GetDCLocationInfoResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "suffix", + "type": "int32" + }, + { + "id": 3, + "name": "max_ts", + "type": "Timestamp" + } + ] + }, + { + "name": "QueryStats", + "fields": [ + { + "id": 1, + "name": "GC", + "type": "uint64" + }, + { + "id": 2, + "name": "Get", + "type": "uint64" + }, + { + "id": 3, + "name": "Scan", + "type": "uint64" + }, + { + "id": 4, + "name": "Coprocessor", + "type": "uint64" + }, + { + "id": 5, + "name": "Delete", + "type": "uint64" + }, + { + "id": 6, + "name": "DeleteRange", + "type": "uint64" + }, + { + "id": 7, + "name": "Put", + "type": "uint64" + }, + { + "id": 8, + "name": "Prewrite", + "type": "uint64" + }, + { + "id": 9, + "name": "AcquirePessimisticLock", + "type": "uint64" + }, + { + "id": 10, + "name": "Commit", + "type": "uint64" + }, + { + "id": 11, + "name": "Rollback", + "type": "uint64" + } + ] + }, + { + "name": "ReportBucketsRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "region_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 3, + "name": "buckets", + "type": "metapb.Buckets" + } + ] + }, + { + "name": "ReportBucketsResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + } + ] + }, + { + "name": "ReportMinResolvedTsRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "store_id", + "type": "uint64" + }, + { + "id": 3, + "name": "min_resolved_ts", + "type": "uint64" + } + ] + }, + { + "name": "ReportMinResolvedTsResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + } + ] + }, + { + "name": "SetExternalTimestampRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "timestamp", + "type": "uint64" + } + ] + }, + { + "name": "SetExternalTimestampResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + } + ] + }, + { + "name": "GetExternalTimestampRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + } + ] + }, + { + "name": "GetExternalTimestampResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "timestamp", + "type": "uint64" + } + ] + } + ], + "services": [ + { + "name": "PD", + "rpcs": [ + { + "name": "GetMembers", + "in_type": "GetMembersRequest", + "out_type": "GetMembersResponse" + }, + { + "name": "Tso", + "in_type": "TsoRequest", + "out_type": "TsoResponse", + "in_streamed": true, + "out_streamed": true + }, + { + "name": "Bootstrap", + "in_type": "BootstrapRequest", + "out_type": "BootstrapResponse" + }, + { + "name": "IsBootstrapped", + "in_type": "IsBootstrappedRequest", + "out_type": "IsBootstrappedResponse" + }, + { + "name": "AllocID", + "in_type": "AllocIDRequest", + "out_type": "AllocIDResponse" + }, + { + "name": "IsSnapshotRecovering", + "in_type": "IsSnapshotRecoveringRequest", + "out_type": "IsSnapshotRecoveringResponse" + }, + { + "name": "GetStore", + "in_type": "GetStoreRequest", + "out_type": "GetStoreResponse" + }, + { + "name": "PutStore", + "in_type": "PutStoreRequest", + "out_type": "PutStoreResponse" + }, + { + "name": "GetAllStores", + "in_type": "GetAllStoresRequest", + "out_type": "GetAllStoresResponse" + }, + { + "name": "StoreHeartbeat", + "in_type": "StoreHeartbeatRequest", + "out_type": "StoreHeartbeatResponse" + }, + { + "name": "RegionHeartbeat", + "in_type": "RegionHeartbeatRequest", + "out_type": "RegionHeartbeatResponse", + "in_streamed": true, + "out_streamed": true + }, + { + "name": "GetRegion", + "in_type": "GetRegionRequest", + "out_type": "GetRegionResponse" + }, + { + "name": "GetPrevRegion", + "in_type": "GetRegionRequest", + "out_type": "GetRegionResponse" + }, + { + "name": "GetRegionByID", + "in_type": "GetRegionByIDRequest", + "out_type": "GetRegionResponse" + }, + { + "name": "ScanRegions", + "in_type": "ScanRegionsRequest", + "out_type": "ScanRegionsResponse" + }, + { + "name": "AskSplit", + "in_type": "AskSplitRequest", + "out_type": "AskSplitResponse", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "name": "ReportSplit", + "in_type": "ReportSplitRequest", + "out_type": "ReportSplitResponse", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "name": "AskBatchSplit", + "in_type": "AskBatchSplitRequest", + "out_type": "AskBatchSplitResponse" + }, + { + "name": "ReportBatchSplit", + "in_type": "ReportBatchSplitRequest", + "out_type": "ReportBatchSplitResponse" + }, + { + "name": "GetClusterConfig", + "in_type": "GetClusterConfigRequest", + "out_type": "GetClusterConfigResponse" + }, + { + "name": "PutClusterConfig", + "in_type": "PutClusterConfigRequest", + "out_type": "PutClusterConfigResponse" + }, + { + "name": "ScatterRegion", + "in_type": "ScatterRegionRequest", + "out_type": "ScatterRegionResponse" + }, + { + "name": "GetGCSafePoint", + "in_type": "GetGCSafePointRequest", + "out_type": "GetGCSafePointResponse" + }, + { + "name": "UpdateGCSafePoint", + "in_type": "UpdateGCSafePointRequest", + "out_type": "UpdateGCSafePointResponse" + }, + { + "name": "UpdateServiceGCSafePoint", + "in_type": "UpdateServiceGCSafePointRequest", + "out_type": "UpdateServiceGCSafePointResponse" + }, + { + "name": "SyncRegions", + "in_type": "SyncRegionRequest", + "out_type": "SyncRegionResponse", + "in_streamed": true, + "out_streamed": true + }, + { + "name": "GetOperator", + "in_type": "GetOperatorRequest", + "out_type": "GetOperatorResponse" + }, + { + "name": "SyncMaxTS", + "in_type": "SyncMaxTSRequest", + "out_type": "SyncMaxTSResponse" + }, + { + "name": "SplitRegions", + "in_type": "SplitRegionsRequest", + "out_type": "SplitRegionsResponse" + }, + { + "name": "SplitAndScatterRegions", + "in_type": "SplitAndScatterRegionsRequest", + "out_type": "SplitAndScatterRegionsResponse" + }, + { + "name": "GetDCLocationInfo", + "in_type": "GetDCLocationInfoRequest", + "out_type": "GetDCLocationInfoResponse" + }, + { + "name": "StoreGlobalConfig", + "in_type": "StoreGlobalConfigRequest", + "out_type": "StoreGlobalConfigResponse" + }, + { + "name": "LoadGlobalConfig", + "in_type": "LoadGlobalConfigRequest", + "out_type": "LoadGlobalConfigResponse" + }, + { + "name": "WatchGlobalConfig", + "in_type": "WatchGlobalConfigRequest", + "out_type": "WatchGlobalConfigResponse", + "out_streamed": true + }, + { + "name": "ReportBuckets", + "in_type": "ReportBucketsRequest", + "out_type": "ReportBucketsResponse", + "in_streamed": true + }, + { + "name": "ReportMinResolvedTS", + "in_type": "ReportMinResolvedTsRequest", + "out_type": "ReportMinResolvedTsResponse" + }, + { + "name": "SetExternalTimestamp", + "in_type": "SetExternalTimestampRequest", + "out_type": "SetExternalTimestampResponse" + }, + { + "name": "GetExternalTimestamp", + "in_type": "GetExternalTimestampRequest", + "out_type": "GetExternalTimestampResponse" + } + ] + } + ], + "imports": [ + { + "path": "metapb.proto" + }, + { + "path": "eraftpb.proto" + }, + { + "path": "raft_serverpb.proto" + }, + { + "path": "replication_modepb.proto" + }, + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "pdpb" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "raft_cmdpb.proto", + "def": { + "enums": [ + { + "name": "CmdType", + "enum_fields": [ + { + "name": "Invalid" + }, + { + "name": "Get", + "integer": 1 + }, + { + "name": "Put", + "integer": 3 + }, + { + "name": "Delete", + "integer": 4 + }, + { + "name": "Snap", + "integer": 5 + }, + { + "name": "Prewrite", + "integer": 6 + }, + { + "name": "DeleteRange", + "integer": 7 + }, + { + "name": "IngestSST", + "integer": 8 + }, + { + "name": "ReadIndex", + "integer": 9 + } + ] + }, + { + "name": "AdminCmdType", + "enum_fields": [ + { + "name": "InvalidAdmin" + }, + { + "name": "ChangePeer", + "integer": 1 + }, + { + "name": "Split", + "integer": 2, + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "name": "CompactLog", + "integer": 3 + }, + { + "name": "TransferLeader", + "integer": 4 + }, + { + "name": "ComputeHash", + "integer": 5 + }, + { + "name": "VerifyHash", + "integer": 6 + }, + { + "name": "PrepareMerge", + "integer": 7 + }, + { + "name": "CommitMerge", + "integer": 8 + }, + { + "name": "RollbackMerge", + "integer": 9 + }, + { + "name": "BatchSplit", + "integer": 10 + }, + { + "name": "ChangePeerV2", + "integer": 11 + }, + { + "name": "PrepareFlashback", + "integer": 12 + }, + { + "name": "FinishFlashback", + "integer": 13 + }, + { + "name": "BatchSwitchWitness", + "integer": 14 + }, + { + "name": "UpdateGcPeer", + "integer": 15 + } + ] + }, + { + "name": "StatusCmdType", + "enum_fields": [ + { + "name": "InvalidStatus" + }, + { + "name": "RegionLeader", + "integer": 1 + }, + { + "name": "RegionDetail", + "integer": 2 + } + ] + } + ], + "messages": [ + { + "name": "GetRequest", + "fields": [ + { + "id": 1, + "name": "cf", + "type": "string" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + } + ] + }, + { + "name": "GetResponse", + "fields": [ + { + "id": 1, + "name": "value", + "type": "bytes" + } + ] + }, + { + "name": "PutRequest", + "fields": [ + { + "id": 1, + "name": "cf", + "type": "string" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + }, + { + "id": 3, + "name": "value", + "type": "bytes" + } + ] + }, + { + "name": "PutResponse" + }, + { + "name": "DeleteRequest", + "fields": [ + { + "id": 1, + "name": "cf", + "type": "string" + }, + { + "id": 2, + "name": "key", + "type": "bytes" + } + ] + }, + { + "name": "DeleteResponse" + }, + { + "name": "DeleteRangeRequest", + "fields": [ + { + "id": 1, + "name": "cf", + "type": "string" + }, + { + "id": 2, + "name": "start_key", + "type": "bytes" + }, + { + "id": 3, + "name": "end_key", + "type": "bytes" + }, + { + "id": 4, + "name": "notify_only", + "type": "bool" + } + ] + }, + { + "name": "DeleteRangeResponse" + }, + { + "name": "SnapRequest" + }, + { + "name": "SnapResponse", + "fields": [ + { + "id": 1, + "name": "region", + "type": "metapb.Region" + } + ] + }, + { + "name": "PrewriteRequest", + "fields": [ + { + "id": 1, + "name": "key", + "type": "bytes" + }, + { + "id": 2, + "name": "value", + "type": "bytes" + }, + { + "id": 3, + "name": "lock", + "type": "bytes" + } + ] + }, + { + "name": "PrewriteResponse" + }, + { + "name": "IngestSSTRequest", + "fields": [ + { + "id": 1, + "name": "sst", + "type": "import_sstpb.SSTMeta" + } + ] + }, + { + "name": "IngestSSTResponse" + }, + { + "name": "ReadIndexRequest", + "fields": [ + { + "id": 1, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 2, + "name": "key_ranges", + "type": "kvrpcpb.KeyRange", + "is_repeated": true + } + ] + }, + { + "name": "ReadIndexResponse", + "fields": [ + { + "id": 1, + "name": "read_index", + "type": "uint64" + }, + { + "id": 2, + "name": "locked", + "type": "kvrpcpb.LockInfo" + } + ] + }, + { + "name": "Request", + "fields": [ + { + "id": 1, + "name": "cmd_type", + "type": "CmdType" + }, + { + "id": 2, + "name": "get", + "type": "GetRequest" + }, + { + "id": 4, + "name": "put", + "type": "PutRequest" + }, + { + "id": 5, + "name": "delete", + "type": "DeleteRequest" + }, + { + "id": 6, + "name": "snap", + "type": "SnapRequest" + }, + { + "id": 7, + "name": "prewrite", + "type": "PrewriteRequest" + }, + { + "id": 8, + "name": "delete_range", + "type": "DeleteRangeRequest" + }, + { + "id": 9, + "name": "ingest_sst", + "type": "IngestSSTRequest" + }, + { + "id": 10, + "name": "read_index", + "type": "ReadIndexRequest" + } + ] + }, + { + "name": "Response", + "fields": [ + { + "id": 1, + "name": "cmd_type", + "type": "CmdType" + }, + { + "id": 2, + "name": "get", + "type": "GetResponse" + }, + { + "id": 4, + "name": "put", + "type": "PutResponse" + }, + { + "id": 5, + "name": "delete", + "type": "DeleteResponse" + }, + { + "id": 6, + "name": "snap", + "type": "SnapResponse" + }, + { + "id": 7, + "name": "prewrite", + "type": "PrewriteResponse" + }, + { + "id": 8, + "name": "delte_range", + "type": "DeleteRangeResponse" + }, + { + "id": 9, + "name": "ingest_sst", + "type": "IngestSSTResponse" + }, + { + "id": 10, + "name": "read_index", + "type": "ReadIndexResponse" + } + ] + }, + { + "name": "ChangePeerRequest", + "fields": [ + { + "id": 1, + "name": "change_type", + "type": "eraftpb.ConfChangeType" + }, + { + "id": 2, + "name": "peer", + "type": "metapb.Peer" + } + ] + }, + { + "name": "ChangePeerResponse", + "fields": [ + { + "id": 1, + "name": "region", + "type": "metapb.Region" + } + ] + }, + { + "name": "ChangePeerV2Request", + "fields": [ + { + "id": 1, + "name": "changes", + "type": "ChangePeerRequest", + "is_repeated": true + } + ] + }, + { + "name": "ChangePeerV2Response", + "fields": [ + { + "id": 1, + "name": "region", + "type": "metapb.Region" + } + ] + }, + { + "name": "SplitRequest", + "fields": [ + { + "id": 1, + "name": "split_key", + "type": "bytes" + }, + { + "id": 2, + "name": "new_region_id", + "type": "uint64" + }, + { + "id": 3, + "name": "new_peer_ids", + "type": "uint64", + "is_repeated": true + }, + { + "id": 4, + "name": "right_derive", + "type": "bool", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + } + ] + }, + { + "name": "SplitResponse", + "fields": [ + { + "id": 1, + "name": "left", + "type": "metapb.Region" + }, + { + "id": 2, + "name": "right", + "type": "metapb.Region" + } + ] + }, + { + "name": "BatchSplitRequest", + "fields": [ + { + "id": 1, + "name": "requests", + "type": "SplitRequest", + "is_repeated": true + }, + { + "id": 2, + "name": "right_derive", + "type": "bool" + } + ] + }, + { + "name": "BatchSplitResponse", + "fields": [ + { + "id": 1, + "name": "regions", + "type": "metapb.Region", + "is_repeated": true + } + ] + }, + { + "name": "CompactLogRequest", + "fields": [ + { + "id": 1, + "name": "compact_index", + "type": "uint64" + }, + { + "id": 2, + "name": "compact_term", + "type": "uint64" + }, + { + "id": 3, + "name": "voter_replicated_index", + "type": "uint64" + } + ] + }, + { + "name": "CompactLogResponse" + }, + { + "name": "TransferLeaderRequest", + "fields": [ + { + "id": 1, + "name": "peer", + "type": "metapb.Peer" + }, + { + "id": 2, + "name": "peers", + "type": "metapb.Peer", + "is_repeated": true + } + ] + }, + { + "name": "TransferLeaderResponse" + }, + { + "name": "ComputeHashRequest", + "fields": [ + { + "id": 1, + "name": "context", + "type": "bytes" + } + ] + }, + { + "name": "VerifyHashRequest", + "fields": [ + { + "id": 1, + "name": "index", + "type": "uint64" + }, + { + "id": 2, + "name": "hash", + "type": "bytes" + }, + { + "id": 3, + "name": "context", + "type": "bytes" + } + ] + }, + { + "name": "VerifyHashResponse" + }, + { + "name": "PrepareMergeRequest", + "fields": [ + { + "id": 1, + "name": "min_index", + "type": "uint64" + }, + { + "id": 2, + "name": "target", + "type": "metapb.Region" + } + ] + }, + { + "name": "PrepareMergeResponse" + }, + { + "name": "PrepareFlashbackRequest", + "fields": [ + { + "id": 1, + "name": "start_ts", + "type": "uint64" + } + ] + }, + { + "name": "PrepareFlashbackResponse" + }, + { + "name": "FinishFlashbackRequest" + }, + { + "name": "FinishFlashbackResponse" + }, + { + "name": "CommitMergeRequest", + "fields": [ + { + "id": 1, + "name": "source", + "type": "metapb.Region" + }, + { + "id": 2, + "name": "commit", + "type": "uint64" + }, + { + "id": 3, + "name": "entries", + "type": "eraftpb.Entry", + "is_repeated": true + } + ] + }, + { + "name": "CommitMergeResponse" + }, + { + "name": "RollbackMergeRequest", + "fields": [ + { + "id": 1, + "name": "commit", + "type": "uint64" + } + ] + }, + { + "name": "RollbackMergeResponse" + }, + { + "name": "SwitchWitnessRequest", + "fields": [ + { + "id": 1, + "name": "peer_id", + "type": "uint64" + }, + { + "id": 2, + "name": "is_witness", + "type": "bool" + } + ] + }, + { + "name": "BatchSwitchWitnessRequest", + "fields": [ + { + "id": 1, + "name": "switch_witnesses", + "type": "SwitchWitnessRequest", + "is_repeated": true + } + ] + }, + { + "name": "BatchSwitchWitnessResponse" + }, + { + "name": "UpdateGcPeerRequest", + "fields": [ + { + "id": 1, + "name": "peer_id", + "type": "uint64", + "is_repeated": true + } + ] + }, + { + "name": "AdminRequest", + "fields": [ + { + "id": 1, + "name": "cmd_type", + "type": "AdminCmdType" + }, + { + "id": 2, + "name": "change_peer", + "type": "ChangePeerRequest" + }, + { + "id": 3, + "name": "split", + "type": "SplitRequest", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "id": 4, + "name": "compact_log", + "type": "CompactLogRequest" + }, + { + "id": 5, + "name": "transfer_leader", + "type": "TransferLeaderRequest" + }, + { + "id": 6, + "name": "verify_hash", + "type": "VerifyHashRequest" + }, + { + "id": 7, + "name": "prepare_merge", + "type": "PrepareMergeRequest" + }, + { + "id": 8, + "name": "commit_merge", + "type": "CommitMergeRequest" + }, + { + "id": 9, + "name": "rollback_merge", + "type": "RollbackMergeRequest" + }, + { + "id": 10, + "name": "splits", + "type": "BatchSplitRequest" + }, + { + "id": 11, + "name": "change_peer_v2", + "type": "ChangePeerV2Request" + }, + { + "id": 12, + "name": "compute_hash", + "type": "ComputeHashRequest" + }, + { + "id": 13, + "name": "prepare_flashback", + "type": "PrepareFlashbackRequest" + }, + { + "id": 14, + "name": "finish_flashback", + "type": "FinishFlashbackRequest" + }, + { + "id": 15, + "name": "switch_witnesses", + "type": "BatchSwitchWitnessRequest" + }, + { + "id": 16, + "name": "update_gc_peers", + "type": "UpdateGcPeerRequest" + } + ] + }, + { + "name": "AdminResponse", + "fields": [ + { + "id": 1, + "name": "cmd_type", + "type": "AdminCmdType" + }, + { + "id": 2, + "name": "change_peer", + "type": "ChangePeerResponse" + }, + { + "id": 3, + "name": "split", + "type": "SplitResponse", + "options": [ + { + "name": "deprecated", + "value": "true" + } + ] + }, + { + "id": 4, + "name": "compact_log", + "type": "CompactLogResponse" + }, + { + "id": 5, + "name": "transfer_leader", + "type": "TransferLeaderResponse" + }, + { + "id": 6, + "name": "verify_hash", + "type": "VerifyHashResponse" + }, + { + "id": 7, + "name": "prepare_merge", + "type": "PrepareMergeResponse" + }, + { + "id": 8, + "name": "commit_merge", + "type": "CommitMergeResponse" + }, + { + "id": 9, + "name": "rollback_merge", + "type": "RollbackMergeResponse" + }, + { + "id": 10, + "name": "splits", + "type": "BatchSplitResponse" + }, + { + "id": 11, + "name": "change_peer_v2", + "type": "ChangePeerV2Response" + }, + { + "id": 12, + "name": "prepare_flashback", + "type": "PrepareFlashbackResponse" + }, + { + "id": 13, + "name": "finish_flashback", + "type": "FinishFlashbackResponse" + }, + { + "id": 14, + "name": "switch_witnesses", + "type": "BatchSwitchWitnessResponse" + } + ] + }, + { + "name": "RegionLeaderRequest" + }, + { + "name": "RegionLeaderResponse", + "fields": [ + { + "id": 1, + "name": "leader", + "type": "metapb.Peer" + } + ] + }, + { + "name": "RegionDetailRequest" + }, + { + "name": "RegionDetailResponse", + "fields": [ + { + "id": 1, + "name": "region", + "type": "metapb.Region" + }, + { + "id": 2, + "name": "leader", + "type": "metapb.Peer" + } + ] + }, + { + "name": "StatusRequest", + "fields": [ + { + "id": 1, + "name": "cmd_type", + "type": "StatusCmdType" + }, + { + "id": 2, + "name": "region_leader", + "type": "RegionLeaderRequest" + }, + { + "id": 3, + "name": "region_detail", + "type": "RegionDetailRequest" + } + ] + }, + { + "name": "StatusResponse", + "fields": [ + { + "id": 1, + "name": "cmd_type", + "type": "StatusCmdType" + }, + { + "id": 2, + "name": "region_leader", + "type": "RegionLeaderResponse" + }, + { + "id": 3, + "name": "region_detail", + "type": "RegionDetailResponse" + } + ] + }, + { + "name": "RaftRequestHeader", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "peer", + "type": "metapb.Peer" + }, + { + "id": 3, + "name": "read_quorum", + "type": "bool" + }, + { + "id": 4, + "name": "uuid", + "type": "bytes" + }, + { + "id": 5, + "name": "region_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 6, + "name": "term", + "type": "uint64" + }, + { + "id": 7, + "name": "sync_log", + "type": "bool" + }, + { + "id": 8, + "name": "replica_read", + "type": "bool" + }, + { + "id": 9, + "name": "applied_index", + "type": "uint64" + }, + { + "id": 10, + "name": "flags", + "type": "uint64" + }, + { + "id": 11, + "name": "flag_data", + "type": "bytes" + }, + { + "id": 12, + "name": "priority", + "type": "kvrpcpb.CommandPri" + }, + { + "id": 13, + "name": "resource_group_name", + "type": "string" + } + ] + }, + { + "name": "RaftResponseHeader", + "fields": [ + { + "id": 1, + "name": "error", + "type": "errorpb.Error" + }, + { + "id": 2, + "name": "uuid", + "type": "bytes" + }, + { + "id": 3, + "name": "current_term", + "type": "uint64" + } + ] + }, + { + "name": "RaftCmdRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RaftRequestHeader" + }, + { + "id": 2, + "name": "requests", + "type": "Request", + "is_repeated": true + }, + { + "id": 3, + "name": "admin_request", + "type": "AdminRequest" + }, + { + "id": 4, + "name": "status_request", + "type": "StatusRequest" + } + ] + }, + { + "name": "RaftCmdResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RaftResponseHeader" + }, + { + "id": 2, + "name": "responses", + "type": "Response", + "is_repeated": true + }, + { + "id": 3, + "name": "admin_response", + "type": "AdminResponse" + }, + { + "id": 4, + "name": "status_response", + "type": "StatusResponse" + } + ] + } + ], + "imports": [ + { + "path": "metapb.proto" + }, + { + "path": "errorpb.proto" + }, + { + "path": "eraftpb.proto" + }, + { + "path": "kvrpcpb.proto" + }, + { + "path": "import_sstpb.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "raft_cmdpb" + }, + "options": [ + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "raft_serverpb.proto", + "def": { + "enums": [ + { + "name": "PeerState", + "enum_fields": [ + { + "name": "Normal" + }, + { + "name": "Applying", + "integer": 1 + }, + { + "name": "Tombstone", + "integer": 2 + }, + { + "name": "Merging", + "integer": 3 + }, + { + "name": "Unavailable", + "integer": 4 + } + ] + }, + { + "name": "ExtraMessageType", + "enum_fields": [ + { + "name": "MsgRegionWakeUp" + }, + { + "name": "MsgWantRollbackMerge", + "integer": 1 + }, + { + "name": "MsgCheckStalePeer", + "integer": 2 + }, + { + "name": "MsgCheckStalePeerResponse", + "integer": 3 + }, + { + "name": "MsgHibernateRequest", + "integer": 4 + }, + { + "name": "MsgHibernateResponse", + "integer": 5 + }, + { + "name": "MsgRejectRaftLogCausedByMemoryUsage", + "integer": 6 + }, + { + "name": "MsgAvailabilityRequest", + "integer": 7 + }, + { + "name": "MsgAvailabilityResponse", + "integer": 8 + }, + { + "name": "MsgVoterReplicatedIndexRequest", + "integer": 9 + }, + { + "name": "MsgVoterReplicatedIndexResponse", + "integer": 10 + }, + { + "name": "MsgGcPeerRequest", + "integer": 11 + }, + { + "name": "MsgGcPeerResponse", + "integer": 12 + } + ] + } + ], + "messages": [ + { + "name": "RaftMessage", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "from_peer", + "type": "metapb.Peer" + }, + { + "id": 3, + "name": "to_peer", + "type": "metapb.Peer" + }, + { + "id": 4, + "name": "message", + "type": "eraftpb.Message" + }, + { + "id": 5, + "name": "region_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 6, + "name": "is_tombstone", + "type": "bool" + }, + { + "id": 7, + "name": "start_key", + "type": "bytes" + }, + { + "id": 8, + "name": "end_key", + "type": "bytes" + }, + { + "id": 9, + "name": "merge_target", + "type": "metapb.Region" + }, + { + "id": 10, + "name": "extra_msg", + "type": "ExtraMessage" + }, + { + "id": 11, + "name": "extra_ctx", + "type": "bytes" + }, + { + "id": 12, + "name": "disk_usage", + "type": "disk_usage.DiskUsage" + } + ] + }, + { + "name": "RaftTruncatedState", + "fields": [ + { + "id": 1, + "name": "index", + "type": "uint64" + }, + { + "id": 2, + "name": "term", + "type": "uint64" + } + ] + }, + { + "name": "SnapshotCFFile", + "fields": [ + { + "id": 1, + "name": "cf", + "type": "string" + }, + { + "id": 2, + "name": "size", + "type": "uint64" + }, + { + "id": 3, + "name": "checksum", + "type": "uint32" + } + ] + }, + { + "name": "SnapshotMeta", + "fields": [ + { + "id": 1, + "name": "cf_files", + "type": "SnapshotCFFile", + "is_repeated": true + }, + { + "id": 2, + "name": "for_balance", + "type": "bool" + }, + { + "id": 3, + "name": "for_witness", + "type": "bool" + }, + { + "id": 4, + "name": "start", + "type": "uint64" + }, + { + "id": 5, + "name": "generate_duration_sec", + "type": "uint64" + } + ] + }, + { + "name": "SnapshotChunk", + "fields": [ + { + "id": 1, + "name": "message", + "type": "RaftMessage" + }, + { + "id": 2, + "name": "data", + "type": "bytes" + } + ] + }, + { + "name": "Done" + }, + { + "name": "KeyValue", + "fields": [ + { + "id": 1, + "name": "key", + "type": "bytes" + }, + { + "id": 2, + "name": "value", + "type": "bytes" + } + ] + }, + { + "name": "RaftSnapshotData", + "fields": [ + { + "id": 1, + "name": "region", + "type": "metapb.Region" + }, + { + "id": 2, + "name": "file_size", + "type": "uint64" + }, + { + "id": 3, + "name": "data", + "type": "KeyValue", + "is_repeated": true + }, + { + "id": 4, + "name": "version", + "type": "uint64" + }, + { + "id": 5, + "name": "meta", + "type": "SnapshotMeta" + }, + { + "id": 6, + "name": "removed_records", + "type": "metapb.Peer", + "is_repeated": true + }, + { + "id": 7, + "name": "merged_records", + "type": "MergedRecord", + "is_repeated": true + } + ] + }, + { + "name": "StoreIdent", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + }, + { + "id": 2, + "name": "store_id", + "type": "uint64" + }, + { + "id": 3, + "name": "api_version", + "type": "kvrpcpb.APIVersion" + } + ] + }, + { + "name": "StoreRecoverState", + "fields": [ + { + "id": 1, + "name": "seqno", + "type": "uint64" + } + ] + }, + { + "name": "RaftLocalState", + "fields": [ + { + "id": 1, + "name": "hard_state", + "type": "eraftpb.HardState" + }, + { + "id": 2, + "name": "last_index", + "type": "uint64" + } + ] + }, + { + "name": "RaftApplyState", + "fields": [ + { + "id": 1, + "name": "applied_index", + "type": "uint64" + }, + { + "id": 3, + "name": "last_commit_index", + "type": "uint64" + }, + { + "id": 4, + "name": "commit_index", + "type": "uint64" + }, + { + "id": 5, + "name": "commit_term", + "type": "uint64" + }, + { + "id": 2, + "name": "truncated_state", + "type": "RaftTruncatedState" + } + ] + }, + { + "name": "MergeState", + "fields": [ + { + "id": 1, + "name": "min_index", + "type": "uint64" + }, + { + "id": 2, + "name": "target", + "type": "metapb.Region" + }, + { + "id": 3, + "name": "commit", + "type": "uint64" + } + ] + }, + { + "name": "MergedRecord", + "fields": [ + { + "id": 1, + "name": "source_region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "source_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 3, + "name": "source_peers", + "type": "metapb.Peer", + "is_repeated": true + }, + { + "id": 4, + "name": "target_region_id", + "type": "uint64" + }, + { + "id": 5, + "name": "target_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 6, + "name": "target_peers", + "type": "metapb.Peer", + "is_repeated": true + }, + { + "id": 7, + "name": "index", + "type": "uint64" + } + ] + }, + { + "name": "RegionLocalState", + "fields": [ + { + "id": 1, + "name": "state", + "type": "PeerState" + }, + { + "id": 2, + "name": "region", + "type": "metapb.Region" + }, + { + "id": 3, + "name": "merge_state", + "type": "MergeState" + }, + { + "id": 4, + "name": "tablet_index", + "type": "uint64" + }, + { + "id": 5, + "name": "removed_records", + "type": "metapb.Peer", + "is_repeated": true + }, + { + "id": 6, + "name": "merged_records", + "type": "MergedRecord", + "is_repeated": true + } + ] + }, + { + "name": "RegionSequenceNumberRelation", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "sequence_number", + "type": "uint64" + }, + { + "id": 3, + "name": "apply_state", + "type": "RaftApplyState" + }, + { + "id": 4, + "name": "region_state", + "type": "RegionLocalState" + } + ] + }, + { + "name": "CheckGcPeer", + "fields": [ + { + "id": 1, + "name": "from_region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "check_region_id", + "type": "uint64" + }, + { + "id": 3, + "name": "check_region_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 4, + "name": "check_peer", + "type": "metapb.Peer" + } + ] + }, + { + "name": "ExtraMessage", + "fields": [ + { + "id": 1, + "name": "type", + "type": "ExtraMessageType" + }, + { + "id": 2, + "name": "index", + "type": "uint64" + }, + { + "id": 3, + "name": "check_peers", + "type": "metapb.Peer", + "is_repeated": true + }, + { + "id": 4, + "name": "wait_data", + "type": "bool" + }, + { + "id": 5, + "name": "forcely_awaken", + "type": "bool" + }, + { + "id": 6, + "name": "check_gc_peer", + "type": "CheckGcPeer" + } + ] + } + ], + "imports": [ + { + "path": "eraftpb.proto" + }, + { + "path": "metapb.proto" + }, + { + "path": "kvrpcpb.proto" + }, + { + "path": "disk_usage.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "raft_serverpb" + }, + "options": [ + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "recoverdatapb.proto", + "def": { + "messages": [ + { + "name": "ReadRegionMetaRequest", + "fields": [ + { + "id": 1, + "name": "store_id", + "type": "uint64" + } + ] + }, + { + "name": "Error", + "fields": [ + { + "id": 1, + "name": "msg", + "type": "string" + } + ] + }, + { + "name": "RegionMeta", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "peer_id", + "type": "uint64" + }, + { + "id": 3, + "name": "last_log_term", + "type": "uint64" + }, + { + "id": 4, + "name": "last_index", + "type": "uint64" + }, + { + "id": 5, + "name": "commit_index", + "type": "uint64" + }, + { + "id": 6, + "name": "version", + "type": "uint64" + }, + { + "id": 7, + "name": "tombstone", + "type": "bool" + }, + { + "id": 8, + "name": "start_key", + "type": "bytes" + }, + { + "id": 9, + "name": "end_key", + "type": "bytes" + } + ] + }, + { + "name": "RecoverRegionRequest", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "as_leader", + "type": "bool" + }, + { + "id": 3, + "name": "tombstone", + "type": "bool" + } + ] + }, + { + "name": "RecoverRegionResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + }, + { + "id": 2, + "name": "store_id", + "type": "uint64" + } + ] + }, + { + "name": "WaitApplyRequest", + "fields": [ + { + "id": 1, + "name": "store_id", + "type": "uint64" + } + ] + }, + { + "name": "WaitApplyResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + } + ] + }, + { + "name": "ResolveKvDataRequest", + "fields": [ + { + "id": 1, + "name": "resolved_ts", + "type": "uint64" + } + ] + }, + { + "name": "ResolveKvDataResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + }, + { + "id": 2, + "name": "store_id", + "type": "uint64" + }, + { + "id": 3, + "name": "resolved_key_count", + "type": "uint64" + }, + { + "id": 4, + "name": "current_commit_ts", + "type": "uint64" + } + ] + } + ], + "services": [ + { + "name": "RecoverData", + "rpcs": [ + { + "name": "ReadRegionMeta", + "in_type": "ReadRegionMetaRequest", + "out_type": "RegionMeta", + "out_streamed": true + }, + { + "name": "RecoverRegion", + "in_type": "RecoverRegionRequest", + "out_type": "RecoverRegionResponse", + "in_streamed": true + }, + { + "name": "WaitApply", + "in_type": "WaitApplyRequest", + "out_type": "WaitApplyResponse" + }, + { + "name": "ResolveKvData", + "in_type": "ResolveKvDataRequest", + "out_type": "ResolveKvDataResponse", + "out_streamed": true + } + ] + } + ], + "imports": [ + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "recover_data" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + } + ] + } + }, + { + "protopath": "replication_modepb.proto", + "def": { + "enums": [ + { + "name": "ReplicationMode", + "enum_fields": [ + { + "name": "MAJORITY" + }, + { + "name": "DR_AUTO_SYNC", + "integer": 1 + } + ] + }, + { + "name": "DRAutoSyncState", + "enum_fields": [ + { + "name": "SYNC" + }, + { + "name": "ASYNC_WAIT", + "integer": 1 + }, + { + "name": "ASYNC", + "integer": 2 + }, + { + "name": "SYNC_RECOVER", + "integer": 3 + } + ] + }, + { + "name": "RegionReplicationState", + "enum_fields": [ + { + "name": "UNKNOWN" + }, + { + "name": "SIMPLE_MAJORITY", + "integer": 1 + }, + { + "name": "INTEGRITY_OVER_LABEL", + "integer": 2 + } + ] + } + ], + "messages": [ + { + "name": "ReplicationStatus", + "fields": [ + { + "id": 1, + "name": "mode", + "type": "ReplicationMode" + }, + { + "id": 2, + "name": "dr_auto_sync", + "type": "DRAutoSync" + } + ] + }, + { + "name": "DRAutoSync", + "fields": [ + { + "id": 1, + "name": "label_key", + "type": "string" + }, + { + "id": 2, + "name": "state", + "type": "DRAutoSyncState" + }, + { + "id": 3, + "name": "state_id", + "type": "uint64" + }, + { + "id": 4, + "name": "wait_sync_timeout_hint", + "type": "int32" + }, + { + "id": 5, + "name": "available_stores", + "type": "uint64", + "is_repeated": true + }, + { + "id": 6, + "name": "pause_region_split", + "type": "bool" + } + ] + }, + { + "name": "RegionReplicationStatus", + "fields": [ + { + "id": 1, + "name": "state", + "type": "RegionReplicationState" + }, + { + "id": 2, + "name": "state_id", + "type": "uint64" + } + ] + }, + { + "name": "StoreDRAutoSyncStatus", + "fields": [ + { + "id": 1, + "name": "state", + "type": "DRAutoSyncState" + }, + { + "id": 2, + "name": "state_id", + "type": "uint64" + } + ] + } + ], + "package": { + "name": "replication_modepb" + } + } + }, + { + "protopath": "resource_manager.proto", + "def": { + "enums": [ + { + "name": "RequestUnitType", + "enum_fields": [ + { + "name": "RU" + } + ] + }, + { + "name": "RawResourceType", + "enum_fields": [ + { + "name": "CPU" + }, + { + "name": "IOReadFlow", + "integer": 1 + }, + { + "name": "IOWriteFlow", + "integer": 2 + } + ] + }, + { + "name": "GroupMode", + "enum_fields": [ + { + "name": "Unknown" + }, + { + "name": "RUMode", + "integer": 1 + }, + { + "name": "RawMode", + "integer": 2 + } + ] + } + ], + "messages": [ + { + "name": "ListResourceGroupsRequest" + }, + { + "name": "ListResourceGroupsResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + }, + { + "id": 2, + "name": "groups", + "type": "ResourceGroup", + "is_repeated": true + } + ] + }, + { + "name": "GetResourceGroupRequest", + "fields": [ + { + "id": 1, + "name": "resource_group_name", + "type": "string" + } + ] + }, + { + "name": "GetResourceGroupResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + }, + { + "id": 2, + "name": "group", + "type": "ResourceGroup" + } + ] + }, + { + "name": "DeleteResourceGroupRequest", + "fields": [ + { + "id": 1, + "name": "resource_group_name", + "type": "string" + } + ] + }, + { + "name": "DeleteResourceGroupResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + }, + { + "id": 2, + "name": "body", + "type": "string" + } + ] + }, + { + "name": "PutResourceGroupRequest", + "fields": [ + { + "id": 1, + "name": "group", + "type": "ResourceGroup" + } + ] + }, + { + "name": "PutResourceGroupResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + }, + { + "id": 2, + "name": "body", + "type": "string" + } + ] + }, + { + "name": "TokenBucketsRequest", + "fields": [ + { + "id": 1, + "name": "requests", + "type": "TokenBucketRequest", + "is_repeated": true + }, + { + "id": 2, + "name": "target_request_period_ms", + "type": "uint64" + }, + { + "id": 3, + "name": "client_unique_id", + "type": "uint64" + } + ] + }, + { + "name": "TokenBucketRequest", + "fields": [ + { + "id": 1, + "name": "resource_group_name", + "type": "string" + }, + { + "id": 2, + "name": "ru_items", + "type": "RequestRU" + }, + { + "id": 3, + "name": "raw_resource_items", + "type": "RequestRawResource" + }, + { + "id": 4, + "name": "consumption_since_last_request", + "type": "Consumption" + } + ], + "messages": [ + { + "name": "RequestRU", + "fields": [ + { + "id": 1, + "name": "request_r_u", + "type": "RequestUnitItem", + "is_repeated": true + } + ] + }, + { + "name": "RequestRawResource", + "fields": [ + { + "id": 1, + "name": "request_raw_resource", + "type": "RawResourceItem", + "is_repeated": true + } + ] + } + ] + }, + { + "name": "TokenBucketsResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "Error" + }, + { + "id": 2, + "name": "responses", + "type": "TokenBucketResponse", + "is_repeated": true + } + ] + }, + { + "name": "TokenBucketResponse", + "fields": [ + { + "id": 1, + "name": "resource_group_name", + "type": "string" + }, + { + "id": 2, + "name": "granted_r_u_tokens", + "type": "GrantedRUTokenBucket", + "is_repeated": true + }, + { + "id": 3, + "name": "granted_resource_tokens", + "type": "GrantedRawResourceTokenBucket", + "is_repeated": true + } + ] + }, + { + "name": "GrantedRUTokenBucket", + "fields": [ + { + "id": 1, + "name": "type", + "type": "RequestUnitType" + }, + { + "id": 2, + "name": "granted_tokens", + "type": "TokenBucket" + }, + { + "id": 3, + "name": "trickle_time_ms", + "type": "int64" + } + ] + }, + { + "name": "GrantedRawResourceTokenBucket", + "fields": [ + { + "id": 1, + "name": "type", + "type": "RawResourceType" + }, + { + "id": 2, + "name": "granted_tokens", + "type": "TokenBucket" + }, + { + "id": 3, + "name": "trickle_time_ms", + "type": "int64" + } + ] + }, + { + "name": "Consumption", + "fields": [ + { + "id": 1, + "name": "r_r_u", + "type": "double" + }, + { + "id": 2, + "name": "w_r_u", + "type": "double" + }, + { + "id": 3, + "name": "read_bytes", + "type": "double" + }, + { + "id": 4, + "name": "write_bytes", + "type": "double" + }, + { + "id": 5, + "name": "total_cpu_time_ms", + "type": "double" + }, + { + "id": 6, + "name": "sql_layer_cpu_time_ms", + "type": "double" + }, + { + "id": 7, + "name": "kv_read_rpc_count", + "type": "double" + }, + { + "id": 8, + "name": "kv_write_rpc_count", + "type": "double" + } + ] + }, + { + "name": "RequestUnitItem", + "fields": [ + { + "id": 1, + "name": "type", + "type": "RequestUnitType" + }, + { + "id": 2, + "name": "value", + "type": "double" + } + ] + }, + { + "name": "RawResourceItem", + "fields": [ + { + "id": 1, + "name": "type", + "type": "RawResourceType" + }, + { + "id": 2, + "name": "value", + "type": "double" + } + ] + }, + { + "name": "ResourceGroup", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "mode", + "type": "GroupMode" + }, + { + "id": 3, + "name": "r_u_settings", + "type": "GroupRequestUnitSettings" + }, + { + "id": 4, + "name": "raw_resource_settings", + "type": "GroupRawResourceSettings" + } + ] + }, + { + "name": "GroupRequestUnitSettings", + "fields": [ + { + "id": 1, + "name": "r_u", + "type": "TokenBucket" + } + ] + }, + { + "name": "GroupRawResourceSettings", + "fields": [ + { + "id": 1, + "name": "cpu", + "type": "TokenBucket" + }, + { + "id": 2, + "name": "io_read", + "type": "TokenBucket" + }, + { + "id": 3, + "name": "io_write", + "type": "TokenBucket" + } + ] + }, + { + "name": "TokenBucket", + "fields": [ + { + "id": 1, + "name": "settings", + "type": "TokenLimitSettings" + }, + { + "id": 2, + "name": "tokens", + "type": "double" + } + ] + }, + { + "name": "TokenLimitSettings", + "fields": [ + { + "id": 1, + "name": "fill_rate", + "type": "uint64" + }, + { + "id": 2, + "name": "burst_limit", + "type": "int64" + }, + { + "id": 3, + "name": "max_tokens", + "type": "double" + } + ] + }, + { + "name": "Error", + "fields": [ + { + "id": 1, + "name": "message", + "type": "string" + } + ] + } + ], + "services": [ + { + "name": "ResourceManager", + "rpcs": [ + { + "name": "ListResourceGroups", + "in_type": "ListResourceGroupsRequest", + "out_type": "ListResourceGroupsResponse" + }, + { + "name": "GetResourceGroup", + "in_type": "GetResourceGroupRequest", + "out_type": "GetResourceGroupResponse" + }, + { + "name": "AddResourceGroup", + "in_type": "PutResourceGroupRequest", + "out_type": "PutResourceGroupResponse" + }, + { + "name": "ModifyResourceGroup", + "in_type": "PutResourceGroupRequest", + "out_type": "PutResourceGroupResponse" + }, + { + "name": "DeleteResourceGroup", + "in_type": "DeleteResourceGroupRequest", + "out_type": "DeleteResourceGroupResponse" + }, + { + "name": "AcquireTokenBuckets", + "in_type": "TokenBucketsRequest", + "out_type": "TokenBucketsResponse", + "in_streamed": true, + "out_streamed": true + } + ] + } + ], + "imports": [ + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "resource_manager" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + } + ] + } + }, + { + "protopath": "resource_usage_agent.proto", + "def": { + "messages": [ + { + "name": "ResourceMeteringRequest" + }, + { + "name": "EmptyResponse" + }, + { + "name": "ResourceUsageRecord", + "fields": [ + { + "id": 1, + "name": "record", + "type": "GroupTagRecord" + } + ] + }, + { + "name": "GroupTagRecord", + "fields": [ + { + "id": 1, + "name": "resource_group_tag", + "type": "bytes" + }, + { + "id": 2, + "name": "items", + "type": "GroupTagRecordItem", + "is_repeated": true + } + ] + }, + { + "name": "GroupTagRecordItem", + "fields": [ + { + "id": 1, + "name": "timestamp_sec", + "type": "uint64" + }, + { + "id": 2, + "name": "cpu_time_ms", + "type": "uint32" + }, + { + "id": 3, + "name": "read_keys", + "type": "uint32" + }, + { + "id": 4, + "name": "write_keys", + "type": "uint32" + } + ] + } + ], + "services": [ + { + "name": "ResourceUsageAgent", + "rpcs": [ + { + "name": "Report", + "in_type": "ResourceUsageRecord", + "out_type": "EmptyResponse", + "in_streamed": true + } + ] + }, + { + "name": "ResourceMeteringPubSub", + "rpcs": [ + { + "name": "Subscribe", + "in_type": "ResourceMeteringRequest", + "out_type": "ResourceUsageRecord", + "out_streamed": true + } + ] + } + ], + "imports": [ + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "resource_usage_agent" + }, + "options": [ + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "tikvpb.proto", + "def": { + "messages": [ + { + "name": "BatchCommandsRequest", + "fields": [ + { + "id": 1, + "name": "requests", + "type": "Request", + "is_repeated": true + }, + { + "id": 2, + "name": "request_ids", + "type": "uint64", + "is_repeated": true + } + ], + "messages": [ + { + "name": "Request", + "fields": [ + { + "id": 1, + "name": "Get", + "type": "kvrpcpb.GetRequest" + }, + { + "id": 2, + "name": "Scan", + "type": "kvrpcpb.ScanRequest" + }, + { + "id": 3, + "name": "Prewrite", + "type": "kvrpcpb.PrewriteRequest" + }, + { + "id": 4, + "name": "Commit", + "type": "kvrpcpb.CommitRequest" + }, + { + "id": 5, + "name": "Import", + "type": "kvrpcpb.ImportRequest" + }, + { + "id": 6, + "name": "Cleanup", + "type": "kvrpcpb.CleanupRequest" + }, + { + "id": 7, + "name": "BatchGet", + "type": "kvrpcpb.BatchGetRequest" + }, + { + "id": 8, + "name": "BatchRollback", + "type": "kvrpcpb.BatchRollbackRequest" + }, + { + "id": 9, + "name": "ScanLock", + "type": "kvrpcpb.ScanLockRequest" + }, + { + "id": 10, + "name": "ResolveLock", + "type": "kvrpcpb.ResolveLockRequest" + }, + { + "id": 11, + "name": "GC", + "type": "kvrpcpb.GCRequest" + }, + { + "id": 12, + "name": "DeleteRange", + "type": "kvrpcpb.DeleteRangeRequest" + }, + { + "id": 13, + "name": "RawGet", + "type": "kvrpcpb.RawGetRequest" + }, + { + "id": 14, + "name": "RawBatchGet", + "type": "kvrpcpb.RawBatchGetRequest" + }, + { + "id": 15, + "name": "RawPut", + "type": "kvrpcpb.RawPutRequest" + }, + { + "id": 16, + "name": "RawBatchPut", + "type": "kvrpcpb.RawBatchPutRequest" + }, + { + "id": 17, + "name": "RawDelete", + "type": "kvrpcpb.RawDeleteRequest" + }, + { + "id": 18, + "name": "RawBatchDelete", + "type": "kvrpcpb.RawBatchDeleteRequest" + }, + { + "id": 19, + "name": "RawScan", + "type": "kvrpcpb.RawScanRequest" + }, + { + "id": 20, + "name": "RawDeleteRange", + "type": "kvrpcpb.RawDeleteRangeRequest" + }, + { + "id": 21, + "name": "RawBatchScan", + "type": "kvrpcpb.RawBatchScanRequest" + }, + { + "id": 22, + "name": "Coprocessor", + "type": "coprocessor.Request" + }, + { + "id": 23, + "name": "PessimisticLock", + "type": "kvrpcpb.PessimisticLockRequest" + }, + { + "id": 24, + "name": "PessimisticRollback", + "type": "kvrpcpb.PessimisticRollbackRequest" + }, + { + "id": 25, + "name": "CheckTxnStatus", + "type": "kvrpcpb.CheckTxnStatusRequest" + }, + { + "id": 26, + "name": "TxnHeartBeat", + "type": "kvrpcpb.TxnHeartBeatRequest" + }, + { + "id": 33, + "name": "CheckSecondaryLocks", + "type": "kvrpcpb.CheckSecondaryLocksRequest" + }, + { + "id": 34, + "name": "RawCoprocessor", + "type": "kvrpcpb.RawCoprocessorRequest" + }, + { + "id": 35, + "name": "FlashbackToVersion", + "type": "kvrpcpb.FlashbackToVersionRequest" + }, + { + "id": 36, + "name": "PrepareFlashbackToVersion", + "type": "kvrpcpb.PrepareFlashbackToVersionRequest" + }, + { + "id": 255, + "name": "Empty", + "type": "BatchCommandsEmptyRequest" + } + ], + "reserved_ids": [ + 27, + 28, + 29, + 30, + 31, + 32 + ] + } + ] + }, + { + "name": "BatchCommandsResponse", + "fields": [ + { + "id": 1, + "name": "responses", + "type": "Response", + "is_repeated": true + }, + { + "id": 2, + "name": "request_ids", + "type": "uint64", + "is_repeated": true + }, + { + "id": 3, + "name": "transport_layer_load", + "type": "uint64" + } + ], + "messages": [ + { + "name": "Response", + "fields": [ + { + "id": 1, + "name": "Get", + "type": "kvrpcpb.GetResponse" + }, + { + "id": 2, + "name": "Scan", + "type": "kvrpcpb.ScanResponse" + }, + { + "id": 3, + "name": "Prewrite", + "type": "kvrpcpb.PrewriteResponse" + }, + { + "id": 4, + "name": "Commit", + "type": "kvrpcpb.CommitResponse" + }, + { + "id": 5, + "name": "Import", + "type": "kvrpcpb.ImportResponse" + }, + { + "id": 6, + "name": "Cleanup", + "type": "kvrpcpb.CleanupResponse" + }, + { + "id": 7, + "name": "BatchGet", + "type": "kvrpcpb.BatchGetResponse" + }, + { + "id": 8, + "name": "BatchRollback", + "type": "kvrpcpb.BatchRollbackResponse" + }, + { + "id": 9, + "name": "ScanLock", + "type": "kvrpcpb.ScanLockResponse" + }, + { + "id": 10, + "name": "ResolveLock", + "type": "kvrpcpb.ResolveLockResponse" + }, + { + "id": 11, + "name": "GC", + "type": "kvrpcpb.GCResponse" + }, + { + "id": 12, + "name": "DeleteRange", + "type": "kvrpcpb.DeleteRangeResponse" + }, + { + "id": 13, + "name": "RawGet", + "type": "kvrpcpb.RawGetResponse" + }, + { + "id": 14, + "name": "RawBatchGet", + "type": "kvrpcpb.RawBatchGetResponse" + }, + { + "id": 15, + "name": "RawPut", + "type": "kvrpcpb.RawPutResponse" + }, + { + "id": 16, + "name": "RawBatchPut", + "type": "kvrpcpb.RawBatchPutResponse" + }, + { + "id": 17, + "name": "RawDelete", + "type": "kvrpcpb.RawDeleteResponse" + }, + { + "id": 18, + "name": "RawBatchDelete", + "type": "kvrpcpb.RawBatchDeleteResponse" + }, + { + "id": 19, + "name": "RawScan", + "type": "kvrpcpb.RawScanResponse" + }, + { + "id": 20, + "name": "RawDeleteRange", + "type": "kvrpcpb.RawDeleteRangeResponse" + }, + { + "id": 21, + "name": "RawBatchScan", + "type": "kvrpcpb.RawBatchScanResponse" + }, + { + "id": 22, + "name": "Coprocessor", + "type": "coprocessor.Response" + }, + { + "id": 23, + "name": "PessimisticLock", + "type": "kvrpcpb.PessimisticLockResponse" + }, + { + "id": 24, + "name": "PessimisticRollback", + "type": "kvrpcpb.PessimisticRollbackResponse" + }, + { + "id": 25, + "name": "CheckTxnStatus", + "type": "kvrpcpb.CheckTxnStatusResponse" + }, + { + "id": 26, + "name": "TxnHeartBeat", + "type": "kvrpcpb.TxnHeartBeatResponse" + }, + { + "id": 33, + "name": "CheckSecondaryLocks", + "type": "kvrpcpb.CheckSecondaryLocksResponse" + }, + { + "id": 34, + "name": "RawCoprocessor", + "type": "kvrpcpb.RawCoprocessorResponse" + }, + { + "id": 35, + "name": "FlashbackToVersion", + "type": "kvrpcpb.FlashbackToVersionResponse" + }, + { + "id": 36, + "name": "PrepareFlashbackToVersion", + "type": "kvrpcpb.PrepareFlashbackToVersionResponse" + }, + { + "id": 255, + "name": "Empty", + "type": "BatchCommandsEmptyResponse" + } + ], + "reserved_ids": [ + 27, + 28, + 29, + 30, + 31, + 32 + ] + } + ] + }, + { + "name": "BatchRaftMessage", + "fields": [ + { + "id": 1, + "name": "msgs", + "type": "raft_serverpb.RaftMessage", + "is_repeated": true + } + ] + }, + { + "name": "BatchCommandsEmptyRequest", + "fields": [ + { + "id": 1, + "name": "test_id", + "type": "uint64" + }, + { + "id": 2, + "name": "delay_time", + "type": "uint64" + } + ] + }, + { + "name": "BatchCommandsEmptyResponse", + "fields": [ + { + "id": 1, + "name": "test_id", + "type": "uint64" + } + ] + } + ], + "services": [ + { + "name": "Tikv", + "rpcs": [ + { + "name": "KvGet", + "in_type": "kvrpcpb.GetRequest", + "out_type": "kvrpcpb.GetResponse" + }, + { + "name": "KvScan", + "in_type": "kvrpcpb.ScanRequest", + "out_type": "kvrpcpb.ScanResponse" + }, + { + "name": "KvPrewrite", + "in_type": "kvrpcpb.PrewriteRequest", + "out_type": "kvrpcpb.PrewriteResponse" + }, + { + "name": "KvPessimisticLock", + "in_type": "kvrpcpb.PessimisticLockRequest", + "out_type": "kvrpcpb.PessimisticLockResponse" + }, + { + "name": "KVPessimisticRollback", + "in_type": "kvrpcpb.PessimisticRollbackRequest", + "out_type": "kvrpcpb.PessimisticRollbackResponse" + }, + { + "name": "KvTxnHeartBeat", + "in_type": "kvrpcpb.TxnHeartBeatRequest", + "out_type": "kvrpcpb.TxnHeartBeatResponse" + }, + { + "name": "KvCheckTxnStatus", + "in_type": "kvrpcpb.CheckTxnStatusRequest", + "out_type": "kvrpcpb.CheckTxnStatusResponse" + }, + { + "name": "KvCheckSecondaryLocks", + "in_type": "kvrpcpb.CheckSecondaryLocksRequest", + "out_type": "kvrpcpb.CheckSecondaryLocksResponse" + }, + { + "name": "KvCommit", + "in_type": "kvrpcpb.CommitRequest", + "out_type": "kvrpcpb.CommitResponse" + }, + { + "name": "KvImport", + "in_type": "kvrpcpb.ImportRequest", + "out_type": "kvrpcpb.ImportResponse" + }, + { + "name": "KvCleanup", + "in_type": "kvrpcpb.CleanupRequest", + "out_type": "kvrpcpb.CleanupResponse" + }, + { + "name": "KvBatchGet", + "in_type": "kvrpcpb.BatchGetRequest", + "out_type": "kvrpcpb.BatchGetResponse" + }, + { + "name": "KvBatchRollback", + "in_type": "kvrpcpb.BatchRollbackRequest", + "out_type": "kvrpcpb.BatchRollbackResponse" + }, + { + "name": "KvScanLock", + "in_type": "kvrpcpb.ScanLockRequest", + "out_type": "kvrpcpb.ScanLockResponse" + }, + { + "name": "KvResolveLock", + "in_type": "kvrpcpb.ResolveLockRequest", + "out_type": "kvrpcpb.ResolveLockResponse" + }, + { + "name": "KvGC", + "in_type": "kvrpcpb.GCRequest", + "out_type": "kvrpcpb.GCResponse" + }, + { + "name": "KvDeleteRange", + "in_type": "kvrpcpb.DeleteRangeRequest", + "out_type": "kvrpcpb.DeleteRangeResponse" + }, + { + "name": "KvPrepareFlashbackToVersion", + "in_type": "kvrpcpb.PrepareFlashbackToVersionRequest", + "out_type": "kvrpcpb.PrepareFlashbackToVersionResponse" + }, + { + "name": "KvFlashbackToVersion", + "in_type": "kvrpcpb.FlashbackToVersionRequest", + "out_type": "kvrpcpb.FlashbackToVersionResponse" + }, + { + "name": "RawGet", + "in_type": "kvrpcpb.RawGetRequest", + "out_type": "kvrpcpb.RawGetResponse" + }, + { + "name": "RawBatchGet", + "in_type": "kvrpcpb.RawBatchGetRequest", + "out_type": "kvrpcpb.RawBatchGetResponse" + }, + { + "name": "RawPut", + "in_type": "kvrpcpb.RawPutRequest", + "out_type": "kvrpcpb.RawPutResponse" + }, + { + "name": "RawBatchPut", + "in_type": "kvrpcpb.RawBatchPutRequest", + "out_type": "kvrpcpb.RawBatchPutResponse" + }, + { + "name": "RawDelete", + "in_type": "kvrpcpb.RawDeleteRequest", + "out_type": "kvrpcpb.RawDeleteResponse" + }, + { + "name": "RawBatchDelete", + "in_type": "kvrpcpb.RawBatchDeleteRequest", + "out_type": "kvrpcpb.RawBatchDeleteResponse" + }, + { + "name": "RawScan", + "in_type": "kvrpcpb.RawScanRequest", + "out_type": "kvrpcpb.RawScanResponse" + }, + { + "name": "RawDeleteRange", + "in_type": "kvrpcpb.RawDeleteRangeRequest", + "out_type": "kvrpcpb.RawDeleteRangeResponse" + }, + { + "name": "RawBatchScan", + "in_type": "kvrpcpb.RawBatchScanRequest", + "out_type": "kvrpcpb.RawBatchScanResponse" + }, + { + "name": "RawGetKeyTTL", + "in_type": "kvrpcpb.RawGetKeyTTLRequest", + "out_type": "kvrpcpb.RawGetKeyTTLResponse" + }, + { + "name": "RawCompareAndSwap", + "in_type": "kvrpcpb.RawCASRequest", + "out_type": "kvrpcpb.RawCASResponse" + }, + { + "name": "RawChecksum", + "in_type": "kvrpcpb.RawChecksumRequest", + "out_type": "kvrpcpb.RawChecksumResponse" + }, + { + "name": "UnsafeDestroyRange", + "in_type": "kvrpcpb.UnsafeDestroyRangeRequest", + "out_type": "kvrpcpb.UnsafeDestroyRangeResponse" + }, + { + "name": "RegisterLockObserver", + "in_type": "kvrpcpb.RegisterLockObserverRequest", + "out_type": "kvrpcpb.RegisterLockObserverResponse" + }, + { + "name": "CheckLockObserver", + "in_type": "kvrpcpb.CheckLockObserverRequest", + "out_type": "kvrpcpb.CheckLockObserverResponse" + }, + { + "name": "RemoveLockObserver", + "in_type": "kvrpcpb.RemoveLockObserverRequest", + "out_type": "kvrpcpb.RemoveLockObserverResponse" + }, + { + "name": "PhysicalScanLock", + "in_type": "kvrpcpb.PhysicalScanLockRequest", + "out_type": "kvrpcpb.PhysicalScanLockResponse" + }, + { + "name": "Coprocessor", + "in_type": "coprocessor.Request", + "out_type": "coprocessor.Response" + }, + { + "name": "CoprocessorStream", + "in_type": "coprocessor.Request", + "out_type": "coprocessor.Response", + "out_streamed": true + }, + { + "name": "BatchCoprocessor", + "in_type": "coprocessor.BatchRequest", + "out_type": "coprocessor.BatchResponse", + "out_streamed": true + }, + { + "name": "RawCoprocessor", + "in_type": "kvrpcpb.RawCoprocessorRequest", + "out_type": "kvrpcpb.RawCoprocessorResponse" + }, + { + "name": "Raft", + "in_type": "raft_serverpb.RaftMessage", + "out_type": "raft_serverpb.Done", + "in_streamed": true + }, + { + "name": "BatchRaft", + "in_type": "BatchRaftMessage", + "out_type": "raft_serverpb.Done", + "in_streamed": true + }, + { + "name": "Snapshot", + "in_type": "raft_serverpb.SnapshotChunk", + "out_type": "raft_serverpb.Done", + "in_streamed": true + }, + { + "name": "SplitRegion", + "in_type": "kvrpcpb.SplitRegionRequest", + "out_type": "kvrpcpb.SplitRegionResponse" + }, + { + "name": "ReadIndex", + "in_type": "kvrpcpb.ReadIndexRequest", + "out_type": "kvrpcpb.ReadIndexResponse" + }, + { + "name": "MvccGetByKey", + "in_type": "kvrpcpb.MvccGetByKeyRequest", + "out_type": "kvrpcpb.MvccGetByKeyResponse" + }, + { + "name": "MvccGetByStartTs", + "in_type": "kvrpcpb.MvccGetByStartTsRequest", + "out_type": "kvrpcpb.MvccGetByStartTsResponse" + }, + { + "name": "BatchCommands", + "in_type": "BatchCommandsRequest", + "out_type": "BatchCommandsResponse", + "in_streamed": true, + "out_streamed": true + }, + { + "name": "DispatchMPPTask", + "in_type": "mpp.DispatchTaskRequest", + "out_type": "mpp.DispatchTaskResponse" + }, + { + "name": "CancelMPPTask", + "in_type": "mpp.CancelTaskRequest", + "out_type": "mpp.CancelTaskResponse" + }, + { + "name": "EstablishMPPConnection", + "in_type": "mpp.EstablishMPPConnectionRequest", + "out_type": "mpp.MPPDataPacket", + "out_streamed": true + }, + { + "name": "IsAlive", + "in_type": "mpp.IsAliveRequest", + "out_type": "mpp.IsAliveResponse" + }, + { + "name": "CheckLeader", + "in_type": "kvrpcpb.CheckLeaderRequest", + "out_type": "kvrpcpb.CheckLeaderResponse" + }, + { + "name": "GetStoreSafeTS", + "in_type": "kvrpcpb.StoreSafeTSRequest", + "out_type": "kvrpcpb.StoreSafeTSResponse" + }, + { + "name": "GetLockWaitInfo", + "in_type": "kvrpcpb.GetLockWaitInfoRequest", + "out_type": "kvrpcpb.GetLockWaitInfoResponse" + }, + { + "name": "Compact", + "in_type": "kvrpcpb.CompactRequest", + "out_type": "kvrpcpb.CompactResponse" + }, + { + "name": "GetLockWaitHistory", + "in_type": "kvrpcpb.GetLockWaitHistoryRequest", + "out_type": "kvrpcpb.GetLockWaitHistoryResponse" + } + ] + } + ], + "imports": [ + { + "path": "coprocessor.proto" + }, + { + "path": "kvrpcpb.proto" + }, + { + "path": "mpp.proto" + }, + { + "path": "raft_serverpb.proto" + }, + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "tikvpb" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, + { + "protopath": "tracepb.proto", + "def": { + "messages": [ + { + "name": "TraceRecordRequest" + }, + { + "name": "TraceRecord", + "fields": [ + { + "id": 1, + "name": "report", + "type": "Report" + }, + { + "id": 2, + "name": "notify_collect", + "type": "NotifyCollect" + } + ] + }, + { + "name": "RemoteParentSpan", + "fields": [ + { + "id": 1, + "name": "trace_id", + "type": "uint64" + }, + { + "id": 2, + "name": "span_id", + "type": "uint64" + } + ] + }, + { + "name": "TraceContext", + "fields": [ + { + "id": 1, + "name": "remote_parent_spans", + "type": "RemoteParentSpan", + "is_repeated": true + }, + { + "id": 2, + "name": "duration_threshold_ms", + "type": "uint32" + } + ] + }, + { + "name": "Report", + "fields": [ + { + "id": 1, + "name": "remote_parent_spans", + "type": "RemoteParentSpan", + "is_repeated": true + }, + { + "id": 2, + "name": "spans", + "type": "Span", + "is_repeated": true + } + ] + }, + { + "name": "NotifyCollect", + "fields": [ + { + "id": 1, + "name": "trace_id", + "type": "uint64" + } + ] + }, + { + "name": "Span", + "fields": [ + { + "id": 1, + "name": "span_id", + "type": "uint64" + }, + { + "id": 2, + "name": "parent_id", + "type": "uint64" + }, + { + "id": 3, + "name": "begin_unix_ns", + "type": "uint64" + }, + { + "id": 4, + "name": "duration_ns", + "type": "uint64" + }, + { + "id": 5, + "name": "event", + "type": "string" + }, + { + "id": 6, + "name": "properties", + "type": "Property", + "is_repeated": true + } + ] + }, + { + "name": "Property", + "fields": [ + { + "id": 1, + "name": "key", + "type": "string" + }, + { + "id": 2, + "name": "value", + "type": "string" + } + ] + } + ], + "services": [ + { + "name": "TraceRecordPubSub", + "rpcs": [ + { + "name": "Subscribe", + "in_type": "TraceRecordRequest", + "out_type": "TraceRecord", + "out_streamed": true + } + ] + } + ], + "package": { + "name": "tracepb" + }, + "options": [ + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + } + ] +} \ No newline at end of file -- Gitee From fe71e5de46436af82e7a935800df1bf43dee0882 Mon Sep 17 00:00:00 2001 From: Bin Shi <39923490+binshi-bing@users.noreply.github.com> Date: Wed, 15 Feb 2023 22:35:18 -0800 Subject: [PATCH 02/44] Define the independent (Tenant) TSO gRPC server (#1053) * Define an independent TSO gRPC server Issue Number: ref #5836 Signed-off-by: binshi-bing * change tenant_id to keyspace_id Signed-off-by: Bin Shi * Support legacy rpcs below in which we reuse pdpb messages for better back-compatability Signed-off-by: Bin Shi * revert to independent tso rpcs/messages without reusing pdpb's revert to option 1 mentioned in https://pingcap.feishu.cn/docx/K1kMdZaUmoeV7fxCH4jclmmtnTc for the following two reasons: 1. We mightn't want to support multi-tenant in the existing pdpb rpcs and messages. 2. No need to do the refactor mentioned in option 2 for now, as it isn't clear for how to refactor the tso related data structures and logic in the pkg/tso. 3. Minimize the change and refactor in server/grpc_server to avoid introducing bugs into PD path. Signed-off-by: Bin Shi * Remove Global TSO Allocator related rpcs for now, because they depend on tso data structures which use pdpb message type directly and need more refactor. Signed-off-by: Bin Shi --------- Signed-off-by: binshi-bing Signed-off-by: Bin Shi --- pkg/kvrpcpb/kvrpcpb.pb.go | 8 +- pkg/tracepb/tracepb.pb.go | 1 + pkg/tsopb/tsopb.pb.go | 1669 +++++++++++++++++++++++++++++++++++++ proto/pdpb.proto | 3 +- proto/tsopb.proto | 68 ++ scripts/proto.lock | 188 +++++ 6 files changed, 1933 insertions(+), 4 deletions(-) create mode 100644 pkg/tsopb/tsopb.pb.go create mode 100644 proto/tsopb.proto diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index da16698..8e76d66 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -1888,9 +1888,10 @@ type CheckTxnStatusResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Error *KeyError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Three kinds of transaction status: - // locked: lock_ttl > 0 - // committed: commit_version > 0 - // rollbacked: lock_ttl = 0 && commit_version = 0 + // + // locked: lock_ttl > 0 + // committed: commit_version > 0 + // rollbacked: lock_ttl = 0 && commit_version = 0 LockTtl uint64 `protobuf:"varint,3,opt,name=lock_ttl,json=lockTtl,proto3" json:"lock_ttl,omitempty"` CommitVersion uint64 `protobuf:"varint,4,opt,name=commit_version,json=commitVersion,proto3" json:"commit_version,omitempty"` // The action performed by TiKV (and why if the action is to rollback). @@ -9364,6 +9365,7 @@ func (m *RawChecksumResponse) GetTotalBytes() uint64 { type CompactError struct { // Types that are valid to be assigned to Error: + // // *CompactError_ErrInvalidStartKey // *CompactError_ErrPhysicalTableNotExist // *CompactError_ErrCompactInProgress diff --git a/pkg/tracepb/tracepb.pb.go b/pkg/tracepb/tracepb.pb.go index e5b4919..55cf091 100644 --- a/pkg/tracepb/tracepb.pb.go +++ b/pkg/tracepb/tracepb.pb.go @@ -68,6 +68,7 @@ var xxx_messageInfo_TraceRecordRequest proto.InternalMessageInfo type TraceRecord struct { // Types that are valid to be assigned to RecordOneof: + // // *TraceRecord_Report // *TraceRecord_NotifyCollect RecordOneof isTraceRecord_RecordOneof `protobuf_oneof:"record_oneof"` diff --git a/pkg/tsopb/tsopb.pb.go b/pkg/tsopb/tsopb.pb.go new file mode 100644 index 0000000..1439911 --- /dev/null +++ b/pkg/tsopb/tsopb.pb.go @@ -0,0 +1,1669 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: tsopb.proto + +package tsopb + +import ( + "context" + "fmt" + "io" + "math" + math_bits "math/bits" + + _ "github.com/gogo/protobuf/gogoproto" + proto "github.com/golang/protobuf/proto" + pdpb "github.com/pingcap/kvproto/pkg/pdpb" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type ErrorType int32 + +const ( + ErrorType_OK ErrorType = 0 + ErrorType_UNKNOWN ErrorType = 1 + ErrorType_NOT_BOOTSTRAPPED ErrorType = 2 + ErrorType_ALREADY_BOOTSTRAPPED ErrorType = 3 + ErrorType_INVALID_VALUE ErrorType = 4 +) + +var ErrorType_name = map[int32]string{ + 0: "OK", + 1: "UNKNOWN", + 2: "NOT_BOOTSTRAPPED", + 3: "ALREADY_BOOTSTRAPPED", + 4: "INVALID_VALUE", +} + +var ErrorType_value = map[string]int32{ + "OK": 0, + "UNKNOWN": 1, + "NOT_BOOTSTRAPPED": 2, + "ALREADY_BOOTSTRAPPED": 3, + "INVALID_VALUE": 4, +} + +func (x ErrorType) String() string { + return proto.EnumName(ErrorType_name, int32(x)) +} + +func (ErrorType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad96434e4f0d3c2b, []int{0} +} + +type RequestHeader struct { + // cluster_id is the ID of the cluster which be sent to. + ClusterId uint64 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // sender_id is the ID of the sender server. + SenderId uint64 `protobuf:"varint,2,opt,name=sender_id,json=senderId,proto3" json:"sender_id,omitempty"` + // keyspace_id is the unique id of the tenant/keyspace. + KeyspaceId uint32 `protobuf:"varint,3,opt,name=keyspace_id,json=keyspaceId,proto3" json:"keyspace_id,omitempty"` + // keyspace_group_id is the unique id of the keyspace group to which the tenant/keyspace belongs. + KeyspaceGroupId uint32 `protobuf:"varint,4,opt,name=keyspace_group_id,json=keyspaceGroupId,proto3" json:"keyspace_group_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RequestHeader) Reset() { *m = RequestHeader{} } +func (m *RequestHeader) String() string { return proto.CompactTextString(m) } +func (*RequestHeader) ProtoMessage() {} +func (*RequestHeader) Descriptor() ([]byte, []int) { + return fileDescriptor_ad96434e4f0d3c2b, []int{0} +} +func (m *RequestHeader) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestHeader.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestHeader) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestHeader.Merge(m, src) +} +func (m *RequestHeader) XXX_Size() int { + return m.Size() +} +func (m *RequestHeader) XXX_DiscardUnknown() { + xxx_messageInfo_RequestHeader.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestHeader proto.InternalMessageInfo + +func (m *RequestHeader) GetClusterId() uint64 { + if m != nil { + return m.ClusterId + } + return 0 +} + +func (m *RequestHeader) GetSenderId() uint64 { + if m != nil { + return m.SenderId + } + return 0 +} + +func (m *RequestHeader) GetKeyspaceId() uint32 { + if m != nil { + return m.KeyspaceId + } + return 0 +} + +func (m *RequestHeader) GetKeyspaceGroupId() uint32 { + if m != nil { + return m.KeyspaceGroupId + } + return 0 +} + +type ResponseHeader struct { + // cluster_id is the ID of the cluster which sent the response. + ClusterId uint64 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + Error *Error `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` + // keyspace_id is the unique id of the tenant/keyspace as the response receiver. + KeyspaceId uint32 `protobuf:"varint,3,opt,name=keyspace_id,json=keyspaceId,proto3" json:"keyspace_id,omitempty"` + // keyspace_group_id is the unique id of the keyspace group to which the tenant/keyspace belongs. + KeyspaceGroupId uint32 `protobuf:"varint,4,opt,name=keyspace_group_id,json=keyspaceGroupId,proto3" json:"keyspace_group_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResponseHeader) Reset() { *m = ResponseHeader{} } +func (m *ResponseHeader) String() string { return proto.CompactTextString(m) } +func (*ResponseHeader) ProtoMessage() {} +func (*ResponseHeader) Descriptor() ([]byte, []int) { + return fileDescriptor_ad96434e4f0d3c2b, []int{1} +} +func (m *ResponseHeader) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseHeader.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseHeader) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseHeader.Merge(m, src) +} +func (m *ResponseHeader) XXX_Size() int { + return m.Size() +} +func (m *ResponseHeader) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseHeader.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseHeader proto.InternalMessageInfo + +func (m *ResponseHeader) GetClusterId() uint64 { + if m != nil { + return m.ClusterId + } + return 0 +} + +func (m *ResponseHeader) GetError() *Error { + if m != nil { + return m.Error + } + return nil +} + +func (m *ResponseHeader) GetKeyspaceId() uint32 { + if m != nil { + return m.KeyspaceId + } + return 0 +} + +func (m *ResponseHeader) GetKeyspaceGroupId() uint32 { + if m != nil { + return m.KeyspaceGroupId + } + return 0 +} + +type Error struct { + Type ErrorType `protobuf:"varint,1,opt,name=type,proto3,enum=tsopb.ErrorType" json:"type,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Error) Reset() { *m = Error{} } +func (m *Error) String() string { return proto.CompactTextString(m) } +func (*Error) ProtoMessage() {} +func (*Error) Descriptor() ([]byte, []int) { + return fileDescriptor_ad96434e4f0d3c2b, []int{2} +} +func (m *Error) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Error) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Error.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Error) XXX_Merge(src proto.Message) { + xxx_messageInfo_Error.Merge(m, src) +} +func (m *Error) XXX_Size() int { + return m.Size() +} +func (m *Error) XXX_DiscardUnknown() { + xxx_messageInfo_Error.DiscardUnknown(m) +} + +var xxx_messageInfo_Error proto.InternalMessageInfo + +func (m *Error) GetType() ErrorType { + if m != nil { + return m.Type + } + return ErrorType_OK +} + +func (m *Error) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +type TsoRequest struct { + Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + Count uint32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` + DcLocation string `protobuf:"bytes,3,opt,name=dc_location,json=dcLocation,proto3" json:"dc_location,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TsoRequest) Reset() { *m = TsoRequest{} } +func (m *TsoRequest) String() string { return proto.CompactTextString(m) } +func (*TsoRequest) ProtoMessage() {} +func (*TsoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_ad96434e4f0d3c2b, []int{3} +} +func (m *TsoRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TsoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TsoRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TsoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TsoRequest.Merge(m, src) +} +func (m *TsoRequest) XXX_Size() int { + return m.Size() +} +func (m *TsoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TsoRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TsoRequest proto.InternalMessageInfo + +func (m *TsoRequest) GetHeader() *RequestHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *TsoRequest) GetCount() uint32 { + if m != nil { + return m.Count + } + return 0 +} + +func (m *TsoRequest) GetDcLocation() string { + if m != nil { + return m.DcLocation + } + return "" +} + +type TsoResponse struct { + Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + Count uint32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` + Timestamp *pdpb.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TsoResponse) Reset() { *m = TsoResponse{} } +func (m *TsoResponse) String() string { return proto.CompactTextString(m) } +func (*TsoResponse) ProtoMessage() {} +func (*TsoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_ad96434e4f0d3c2b, []int{4} +} +func (m *TsoResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TsoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TsoResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TsoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TsoResponse.Merge(m, src) +} +func (m *TsoResponse) XXX_Size() int { + return m.Size() +} +func (m *TsoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TsoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TsoResponse proto.InternalMessageInfo + +func (m *TsoResponse) GetHeader() *ResponseHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *TsoResponse) GetCount() uint32 { + if m != nil { + return m.Count + } + return 0 +} + +func (m *TsoResponse) GetTimestamp() *pdpb.Timestamp { + if m != nil { + return m.Timestamp + } + return nil +} + +func init() { + proto.RegisterEnum("tsopb.ErrorType", ErrorType_name, ErrorType_value) + proto.RegisterType((*RequestHeader)(nil), "tsopb.RequestHeader") + proto.RegisterType((*ResponseHeader)(nil), "tsopb.ResponseHeader") + proto.RegisterType((*Error)(nil), "tsopb.Error") + proto.RegisterType((*TsoRequest)(nil), "tsopb.TsoRequest") + proto.RegisterType((*TsoResponse)(nil), "tsopb.TsoResponse") +} + +func init() { proto.RegisterFile("tsopb.proto", fileDescriptor_ad96434e4f0d3c2b) } + +var fileDescriptor_ad96434e4f0d3c2b = []byte{ + // 509 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0xcd, 0x6e, 0xd3, 0x4c, + 0x14, 0x86, 0x33, 0xf9, 0x6b, 0x7d, 0xfc, 0xa5, 0x71, 0x46, 0xf9, 0xa4, 0x28, 0x88, 0x50, 0x59, + 0x08, 0x45, 0x15, 0x0d, 0xc8, 0xac, 0x58, 0xba, 0x4a, 0x54, 0xac, 0x46, 0x76, 0x35, 0x75, 0x8b, + 0x58, 0x45, 0xae, 0x67, 0x64, 0xa2, 0x34, 0x19, 0xd7, 0x33, 0xae, 0x94, 0x25, 0x77, 0xd1, 0x25, + 0x4b, 0x2e, 0x85, 0x25, 0x4b, 0x96, 0x28, 0xdc, 0x08, 0xf2, 0xd8, 0x4e, 0x53, 0x36, 0xb0, 0x60, + 0x95, 0x39, 0xcf, 0x7b, 0x74, 0xde, 0xf3, 0x13, 0x83, 0x2e, 0x05, 0x8f, 0xaf, 0x47, 0x71, 0xc2, + 0x25, 0xc7, 0x0d, 0x15, 0xf4, 0x21, 0xa6, 0x25, 0xea, 0x77, 0x23, 0x1e, 0x71, 0xf5, 0x7c, 0x95, + 0xbd, 0x0a, 0xda, 0x4e, 0x52, 0x21, 0xd5, 0x33, 0x07, 0xe6, 0x3d, 0x82, 0x16, 0x61, 0xb7, 0x29, + 0x13, 0xf2, 0x1d, 0x0b, 0x28, 0x4b, 0xf0, 0x53, 0x80, 0xf0, 0x26, 0x15, 0x92, 0x25, 0xb3, 0x39, + 0xed, 0xa1, 0x43, 0x34, 0xac, 0x13, 0xad, 0x20, 0x0e, 0xc5, 0x4f, 0x40, 0x13, 0x6c, 0x45, 0x73, + 0xb5, 0xaa, 0xd4, 0xfd, 0x1c, 0x38, 0x14, 0x3f, 0x03, 0x7d, 0xc1, 0xd6, 0x22, 0x0e, 0x42, 0x96, + 0xc9, 0xb5, 0x43, 0x34, 0x6c, 0x11, 0x28, 0x91, 0x43, 0xf1, 0x11, 0x74, 0xb6, 0x09, 0x51, 0xc2, + 0xd3, 0x38, 0x4b, 0xab, 0xab, 0xb4, 0x76, 0x29, 0x9c, 0x66, 0xdc, 0xa1, 0xe6, 0x67, 0x04, 0x07, + 0x84, 0x89, 0x98, 0xaf, 0x04, 0xfb, 0xbb, 0xde, 0x4c, 0x68, 0xb0, 0x24, 0xe1, 0x89, 0xea, 0x4b, + 0xb7, 0xfe, 0x1b, 0xe5, 0x3b, 0x9a, 0x64, 0x8c, 0xe4, 0xd2, 0xbf, 0x6d, 0xf1, 0x14, 0x1a, 0xaa, + 0x38, 0x7e, 0x0e, 0x75, 0xb9, 0x8e, 0x99, 0x6a, 0xe9, 0xc0, 0x32, 0x76, 0x8d, 0xfd, 0x75, 0xcc, + 0x88, 0x52, 0x71, 0x0f, 0xf6, 0x96, 0x4c, 0x88, 0x20, 0x62, 0xaa, 0x43, 0x8d, 0x94, 0xa1, 0x79, + 0x0b, 0xe0, 0x0b, 0x5e, 0x1c, 0x02, 0xbf, 0x84, 0xe6, 0x47, 0x35, 0xb0, 0xaa, 0xa7, 0x5b, 0xdd, + 0xa2, 0xde, 0xa3, 0x43, 0x91, 0x22, 0x07, 0x77, 0xa1, 0x11, 0xf2, 0x74, 0x25, 0x55, 0xcd, 0x16, + 0xc9, 0x83, 0x6c, 0x4e, 0x1a, 0xce, 0x6e, 0x78, 0x18, 0xc8, 0x39, 0x5f, 0xa9, 0x39, 0x35, 0x02, + 0x34, 0x9c, 0x16, 0xc4, 0xfc, 0x84, 0x40, 0x57, 0x9e, 0xf9, 0x86, 0xf1, 0xf1, 0x6f, 0xa6, 0xff, + 0x6f, 0x4d, 0x77, 0x4f, 0xf0, 0x07, 0xd7, 0x63, 0xd0, 0xe4, 0x7c, 0xc9, 0x84, 0x0c, 0x96, 0xb1, + 0xf2, 0xd4, 0xad, 0xf6, 0x48, 0xfd, 0x2b, 0xfd, 0x12, 0x93, 0x87, 0x8c, 0xa3, 0x10, 0xb4, 0xed, + 0x8e, 0x70, 0x13, 0xaa, 0xde, 0x99, 0x51, 0xc1, 0x3a, 0xec, 0x5d, 0xba, 0x67, 0xae, 0xf7, 0xde, + 0x35, 0x10, 0xee, 0x82, 0xe1, 0x7a, 0xfe, 0xec, 0xc4, 0xf3, 0xfc, 0x0b, 0x9f, 0xd8, 0xe7, 0xe7, + 0x93, 0xb1, 0x51, 0xc5, 0x3d, 0xe8, 0xda, 0x53, 0x32, 0xb1, 0xc7, 0x1f, 0x1e, 0x2b, 0x35, 0xdc, + 0x81, 0x96, 0xe3, 0x5e, 0xd9, 0x53, 0x67, 0x3c, 0xbb, 0xb2, 0xa7, 0x97, 0x13, 0xa3, 0x6e, 0xbd, + 0x85, 0x9a, 0x7f, 0xe1, 0x61, 0x0b, 0x6a, 0xbe, 0xe0, 0xb8, 0x53, 0x8c, 0xf5, 0xb0, 0xee, 0x3e, + 0xde, 0x45, 0xf9, 0xb0, 0x66, 0x65, 0x88, 0x5e, 0xa3, 0x93, 0x17, 0xdf, 0xbf, 0xec, 0xa3, 0xaf, + 0x9b, 0x01, 0xfa, 0xb6, 0x19, 0xa0, 0x1f, 0x9b, 0x01, 0xba, 0xff, 0x39, 0xa8, 0x80, 0xc1, 0x93, + 0x68, 0x24, 0xe7, 0x8b, 0xbb, 0xd1, 0xe2, 0x4e, 0x7d, 0x45, 0xd7, 0x4d, 0xf5, 0xf3, 0xe6, 0x57, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x7c, 0x52, 0x03, 0x9b, 0x95, 0x03, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// TSOClient is the client API for TSO service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type TSOClient interface { + Tso(ctx context.Context, opts ...grpc.CallOption) (TSO_TsoClient, error) +} + +type tSOClient struct { + cc *grpc.ClientConn +} + +func NewTSOClient(cc *grpc.ClientConn) TSOClient { + return &tSOClient{cc} +} + +func (c *tSOClient) Tso(ctx context.Context, opts ...grpc.CallOption) (TSO_TsoClient, error) { + stream, err := c.cc.NewStream(ctx, &_TSO_serviceDesc.Streams[0], "/tsopb.TSO/Tso", opts...) + if err != nil { + return nil, err + } + x := &tSOTsoClient{stream} + return x, nil +} + +type TSO_TsoClient interface { + Send(*TsoRequest) error + Recv() (*TsoResponse, error) + grpc.ClientStream +} + +type tSOTsoClient struct { + grpc.ClientStream +} + +func (x *tSOTsoClient) Send(m *TsoRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *tSOTsoClient) Recv() (*TsoResponse, error) { + m := new(TsoResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// TSOServer is the server API for TSO service. +type TSOServer interface { + Tso(TSO_TsoServer) error +} + +// UnimplementedTSOServer can be embedded to have forward compatible implementations. +type UnimplementedTSOServer struct { +} + +func (*UnimplementedTSOServer) Tso(srv TSO_TsoServer) error { + return status.Errorf(codes.Unimplemented, "method Tso not implemented") +} + +func RegisterTSOServer(s *grpc.Server, srv TSOServer) { + s.RegisterService(&_TSO_serviceDesc, srv) +} + +func _TSO_Tso_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(TSOServer).Tso(&tSOTsoServer{stream}) +} + +type TSO_TsoServer interface { + Send(*TsoResponse) error + Recv() (*TsoRequest, error) + grpc.ServerStream +} + +type tSOTsoServer struct { + grpc.ServerStream +} + +func (x *tSOTsoServer) Send(m *TsoResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *tSOTsoServer) Recv() (*TsoRequest, error) { + m := new(TsoRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +var _TSO_serviceDesc = grpc.ServiceDesc{ + ServiceName: "tsopb.TSO", + HandlerType: (*TSOServer)(nil), + Methods: []grpc.MethodDesc{}, + Streams: []grpc.StreamDesc{ + { + StreamName: "Tso", + Handler: _TSO_Tso_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "tsopb.proto", +} + +func (m *RequestHeader) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestHeader) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestHeader) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.KeyspaceGroupId != 0 { + i = encodeVarintTsopb(dAtA, i, uint64(m.KeyspaceGroupId)) + i-- + dAtA[i] = 0x20 + } + if m.KeyspaceId != 0 { + i = encodeVarintTsopb(dAtA, i, uint64(m.KeyspaceId)) + i-- + dAtA[i] = 0x18 + } + if m.SenderId != 0 { + i = encodeVarintTsopb(dAtA, i, uint64(m.SenderId)) + i-- + dAtA[i] = 0x10 + } + if m.ClusterId != 0 { + i = encodeVarintTsopb(dAtA, i, uint64(m.ClusterId)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ResponseHeader) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseHeader) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseHeader) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.KeyspaceGroupId != 0 { + i = encodeVarintTsopb(dAtA, i, uint64(m.KeyspaceGroupId)) + i-- + dAtA[i] = 0x20 + } + if m.KeyspaceId != 0 { + i = encodeVarintTsopb(dAtA, i, uint64(m.KeyspaceId)) + i-- + dAtA[i] = 0x18 + } + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTsopb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.ClusterId != 0 { + i = encodeVarintTsopb(dAtA, i, uint64(m.ClusterId)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Error) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Error) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Error) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Message) > 0 { + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintTsopb(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x12 + } + if m.Type != 0 { + i = encodeVarintTsopb(dAtA, i, uint64(m.Type)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *TsoRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TsoRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TsoRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.DcLocation) > 0 { + i -= len(m.DcLocation) + copy(dAtA[i:], m.DcLocation) + i = encodeVarintTsopb(dAtA, i, uint64(len(m.DcLocation))) + i-- + dAtA[i] = 0x1a + } + if m.Count != 0 { + i = encodeVarintTsopb(dAtA, i, uint64(m.Count)) + i-- + dAtA[i] = 0x10 + } + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTsopb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TsoResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TsoResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TsoResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Timestamp != nil { + { + size, err := m.Timestamp.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTsopb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Count != 0 { + i = encodeVarintTsopb(dAtA, i, uint64(m.Count)) + i-- + dAtA[i] = 0x10 + } + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTsopb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintTsopb(dAtA []byte, offset int, v uint64) int { + offset -= sovTsopb(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *RequestHeader) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ClusterId != 0 { + n += 1 + sovTsopb(uint64(m.ClusterId)) + } + if m.SenderId != 0 { + n += 1 + sovTsopb(uint64(m.SenderId)) + } + if m.KeyspaceId != 0 { + n += 1 + sovTsopb(uint64(m.KeyspaceId)) + } + if m.KeyspaceGroupId != 0 { + n += 1 + sovTsopb(uint64(m.KeyspaceGroupId)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ResponseHeader) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ClusterId != 0 { + n += 1 + sovTsopb(uint64(m.ClusterId)) + } + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovTsopb(uint64(l)) + } + if m.KeyspaceId != 0 { + n += 1 + sovTsopb(uint64(m.KeyspaceId)) + } + if m.KeyspaceGroupId != 0 { + n += 1 + sovTsopb(uint64(m.KeyspaceGroupId)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Error) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Type != 0 { + n += 1 + sovTsopb(uint64(m.Type)) + } + l = len(m.Message) + if l > 0 { + n += 1 + l + sovTsopb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TsoRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovTsopb(uint64(l)) + } + if m.Count != 0 { + n += 1 + sovTsopb(uint64(m.Count)) + } + l = len(m.DcLocation) + if l > 0 { + n += 1 + l + sovTsopb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TsoResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovTsopb(uint64(l)) + } + if m.Count != 0 { + n += 1 + sovTsopb(uint64(m.Count)) + } + if m.Timestamp != nil { + l = m.Timestamp.Size() + n += 1 + l + sovTsopb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovTsopb(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozTsopb(x uint64) (n int) { + return sovTsopb(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *RequestHeader) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestHeader: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestHeader: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType) + } + m.ClusterId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ClusterId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SenderId", wireType) + } + m.SenderId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SenderId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KeyspaceId", wireType) + } + m.KeyspaceId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.KeyspaceId |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KeyspaceGroupId", wireType) + } + m.KeyspaceGroupId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.KeyspaceGroupId |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTsopb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTsopb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseHeader) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseHeader: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseHeader: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType) + } + m.ClusterId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ClusterId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTsopb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTsopb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Error == nil { + m.Error = &Error{} + } + if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KeyspaceId", wireType) + } + m.KeyspaceId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.KeyspaceId |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KeyspaceGroupId", wireType) + } + m.KeyspaceGroupId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.KeyspaceGroupId |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTsopb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTsopb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Error) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Error: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= ErrorType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTsopb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTsopb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTsopb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTsopb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TsoRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TsoRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TsoRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTsopb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTsopb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &RequestHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + } + m.Count = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Count |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DcLocation", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTsopb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTsopb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DcLocation = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTsopb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTsopb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TsoResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TsoResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TsoResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTsopb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTsopb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &ResponseHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + } + m.Count = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Count |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTsopb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTsopb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Timestamp == nil { + m.Timestamp = &pdpb.Timestamp{} + } + if err := m.Timestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTsopb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTsopb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTsopb(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTsopb + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTsopb + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTsopb + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthTsopb + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupTsopb + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthTsopb + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthTsopb = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTsopb = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupTsopb = fmt.Errorf("proto: unexpected end of group") +) diff --git a/proto/pdpb.proto b/proto/pdpb.proto index f97d026..b977594 100644 --- a/proto/pdpb.proto +++ b/proto/pdpb.proto @@ -194,7 +194,8 @@ message Timestamp { int64 logical = 2; // Number of suffix bits used for global distinction, // PD client will use this to compute a TSO's logical part. - uint32 suffix_bits = 3;} + uint32 suffix_bits = 3; +} message TsoResponse { ResponseHeader header = 1; diff --git a/proto/tsopb.proto b/proto/tsopb.proto new file mode 100644 index 0000000..af62d25 --- /dev/null +++ b/proto/tsopb.proto @@ -0,0 +1,68 @@ +syntax = "proto3"; +package tsopb; + +import "pdpb.proto"; + +import "gogoproto/gogo.proto"; +import "rustproto.proto"; + +option (gogoproto.sizer_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (rustproto.lite_runtime_all) = true; + +option java_package = "org.tikv.kvproto"; + +service TSO { + rpc Tso(stream TsoRequest) returns (stream TsoResponse) {} +} + +message RequestHeader { + // cluster_id is the ID of the cluster which be sent to. + uint64 cluster_id = 1; + // sender_id is the ID of the sender server. + uint64 sender_id = 2; + + // keyspace_id is the unique id of the tenant/keyspace. + uint32 keyspace_id = 3; + // keyspace_group_id is the unique id of the keyspace group to which the tenant/keyspace belongs. + uint32 keyspace_group_id = 4; +} + +message ResponseHeader { + // cluster_id is the ID of the cluster which sent the response. + uint64 cluster_id = 1; + Error error = 2; + + // keyspace_id is the unique id of the tenant/keyspace as the response receiver. + uint32 keyspace_id = 3; + // keyspace_group_id is the unique id of the keyspace group to which the tenant/keyspace belongs. + uint32 keyspace_group_id = 4; +} + +enum ErrorType { + OK = 0; + UNKNOWN = 1; + NOT_BOOTSTRAPPED = 2; + ALREADY_BOOTSTRAPPED = 3; + INVALID_VALUE = 4; +} + +message Error { + ErrorType type = 1; + string message = 2; +} + +message TsoRequest { + RequestHeader header = 1; + + uint32 count = 2; + string dc_location = 3; +} + +message TsoResponse { + ResponseHeader header = 1; + + uint32 count = 2; + pdpb.Timestamp timestamp = 3; +} diff --git a/scripts/proto.lock b/scripts/proto.lock index ecb9a5f..33a8df5 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -17090,6 +17090,194 @@ } ] } + }, + { + "protopath": "tsopb.proto", + "def": { + "enums": [ + { + "name": "ErrorType", + "enum_fields": [ + { + "name": "OK" + }, + { + "name": "UNKNOWN", + "integer": 1 + }, + { + "name": "NOT_BOOTSTRAPPED", + "integer": 2 + }, + { + "name": "ALREADY_BOOTSTRAPPED", + "integer": 3 + }, + { + "name": "INVALID_VALUE", + "integer": 4 + } + ] + } + ], + "messages": [ + { + "name": "RequestHeader", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + }, + { + "id": 2, + "name": "sender_id", + "type": "uint64" + }, + { + "id": 3, + "name": "keyspace_id", + "type": "uint32" + }, + { + "id": 4, + "name": "keyspace_group_id", + "type": "uint32" + } + ] + }, + { + "name": "ResponseHeader", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + }, + { + "id": 2, + "name": "error", + "type": "Error" + }, + { + "id": 3, + "name": "keyspace_id", + "type": "uint32" + }, + { + "id": 4, + "name": "keyspace_group_id", + "type": "uint32" + } + ] + }, + { + "name": "Error", + "fields": [ + { + "id": 1, + "name": "type", + "type": "ErrorType" + }, + { + "id": 2, + "name": "message", + "type": "string" + } + ] + }, + { + "name": "TsoRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "count", + "type": "uint32" + }, + { + "id": 3, + "name": "dc_location", + "type": "string" + } + ] + }, + { + "name": "TsoResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "count", + "type": "uint32" + }, + { + "id": 3, + "name": "timestamp", + "type": "pdpb.Timestamp" + } + ] + } + ], + "services": [ + { + "name": "TSO", + "rpcs": [ + { + "name": "Tso", + "in_type": "TsoRequest", + "out_type": "TsoResponse", + "in_streamed": true, + "out_streamed": true + } + ] + } + ], + "imports": [ + { + "path": "pdpb.proto" + }, + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "tsopb" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } } ] } \ No newline at end of file -- Gitee From c6df78cc9dea61bdf913ec8bac49e245980c1a94 Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Thu, 16 Feb 2023 23:38:17 +0800 Subject: [PATCH 03/44] attach keyspace_id to kvrpcpb::Context/mpp::TaskMeta (#1056) --- pkg/kvrpcpb/kvrpcpb.pb.go | 839 ++++++++++++++++++++------------------ pkg/mpp/mpp.pb.go | 127 ++++-- proto/kvrpcpb.proto | 4 + proto/mpp.proto | 1 + 4 files changed, 527 insertions(+), 444 deletions(-) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index 8e76d66..1d19d25 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -5993,7 +5993,10 @@ type Context struct { ResourceGroupName string `protobuf:"bytes,26,opt,name=resource_group_name,json=resourceGroupName,proto3" json:"resource_group_name,omitempty"` // If `busy_threshold_ms` is given, TiKV can reject the request and return a `ServerIsBusy` // error before processing if the estimated waiting duration exceeds the threshold. - BusyThresholdMs uint32 `protobuf:"varint,27,opt,name=busy_threshold_ms,json=busyThresholdMs,proto3" json:"busy_threshold_ms,omitempty"` + BusyThresholdMs uint32 `protobuf:"varint,27,opt,name=busy_threshold_ms,json=busyThresholdMs,proto3" json:"busy_threshold_ms,omitempty"` + // The keyspace that the request is sent to. + // NOTE: This field is only meaningful while the api_version is V2. + KeyspaceId uint32 `protobuf:"varint,32,opt,name=keyspace_id,json=keyspaceId,proto3" json:"keyspace_id,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -6214,6 +6217,13 @@ func (m *Context) GetBusyThresholdMs() uint32 { return 0 } +func (m *Context) GetKeyspaceId() uint32 { + if m != nil { + return m.KeyspaceId + } + return 0 +} + type LockInfo struct { PrimaryLock []byte `protobuf:"bytes,1,opt,name=primary_lock,json=primaryLock,proto3" json:"primary_lock,omitempty"` LockVersion uint64 `protobuf:"varint,2,opt,name=lock_version,json=lockVersion,proto3" json:"lock_version,omitempty"` @@ -9929,404 +9939,406 @@ func init() { func init() { proto.RegisterFile("kvrpcpb.proto", fileDescriptor_1afe832be69693c7) } var fileDescriptor_1afe832be69693c7 = []byte{ - // 6348 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x3c, 0x5b, 0x6c, 0x24, 0xd9, - 0x55, 0x53, 0xfd, 0x70, 0x77, 0x9f, 0xb6, 0xdb, 0xe5, 0xeb, 0x57, 0xdb, 0x33, 0xb3, 0xe3, 0xa9, - 0xcd, 0xec, 0x3a, 0x4e, 0xd6, 0x9b, 0xf5, 0xee, 0xe6, 0x41, 0x42, 0xb2, 0x33, 0xf6, 0x3c, 0xbc, - 0xe3, 0x19, 0x5b, 0xd5, 0xbd, 0xb3, 0xac, 0x20, 0xa9, 0x5c, 0x57, 0x5f, 0x77, 0x97, 0x5c, 0x5d, - 0x55, 0x5b, 0x75, 0xdb, 0x76, 0x07, 0x21, 0x11, 0x05, 0x90, 0x22, 0x21, 0x1e, 0x51, 0xa4, 0x20, - 0x11, 0x21, 0xf1, 0x11, 0x89, 0xf0, 0x87, 0xf8, 0x01, 0xf2, 0x81, 0x90, 0xf2, 0x11, 0x10, 0x51, - 0x22, 0x21, 0x14, 0x04, 0x1f, 0x84, 0x45, 0xe2, 0x9b, 0x1f, 0x84, 0xf8, 0x40, 0xa0, 0xfb, 0xaa, - 0x47, 0x77, 0x8f, 0xc7, 0xd3, 0x63, 0xcf, 0x06, 0xbe, 0xdc, 0x75, 0xce, 0xb9, 0xf7, 0x9e, 0x7b, - 0x5e, 0xf7, 0x9e, 0x7b, 0xcf, 0x35, 0x4c, 0x1d, 0x1e, 0x85, 0x81, 0x1d, 0xec, 0xaf, 0x07, 0xa1, - 0x4f, 0x7d, 0x54, 0x92, 0x9f, 0xcb, 0x93, 0x5d, 0x42, 0xb1, 0x02, 0x2f, 0x4f, 0x91, 0x30, 0xf4, - 0xc3, 0xf8, 0x73, 0xae, 0xed, 0xb7, 0x7d, 0xfe, 0xf3, 0x55, 0xf6, 0x4b, 0x42, 0xa7, 0xc3, 0x5e, - 0x44, 0xf9, 0x4f, 0x09, 0xa8, 0xb5, 0x08, 0x6e, 0xb9, 0xbe, 0x7d, 0xa8, 0x7a, 0xa1, 0x21, 0xb6, - 0x89, 0xea, 0xc5, 0x68, 0x01, 0xdc, 0x25, 0xd4, 0x24, 0xef, 0xf7, 0x48, 0x44, 0xd1, 0x1a, 0x94, - 0x6c, 0xdf, 0xa3, 0xe4, 0x84, 0xd6, 0xb5, 0x15, 0x6d, 0xb5, 0xba, 0xa1, 0xaf, 0x2b, 0xd6, 0x36, - 0x05, 0xdc, 0x54, 0x04, 0x48, 0x87, 0xfc, 0x21, 0xe9, 0xd7, 0x73, 0x2b, 0xda, 0xea, 0xa4, 0xc9, - 0x7e, 0xa2, 0x3a, 0x94, 0x8e, 0x48, 0x18, 0x39, 0xbe, 0x57, 0xcf, 0xaf, 0x68, 0xab, 0x05, 0x53, - 0x7d, 0x1a, 0x1f, 0x68, 0x50, 0xe5, 0xc3, 0x44, 0x81, 0xef, 0x45, 0x04, 0xbd, 0x06, 0x93, 0x21, - 0x69, 0x3b, 0xbe, 0x67, 0xf1, 0x39, 0xc9, 0xc1, 0x6a, 0xeb, 0x6a, 0x86, 0xb7, 0xd9, 0x5f, 0xb3, - 0x2a, 0x68, 0xf8, 0x07, 0x7a, 0x19, 0x8a, 0x82, 0x36, 0xc7, 0x69, 0x67, 0x62, 0xc6, 0xee, 0x93, - 0xbe, 0x20, 0x17, 0x78, 0x34, 0x07, 0xc5, 0x23, 0xec, 0xf6, 0x08, 0xe7, 0x61, 0xd2, 0x14, 0x1f, - 0xe8, 0x32, 0x54, 0x3c, 0x9f, 0x5a, 0x07, 0x7e, 0xcf, 0x6b, 0xd5, 0x0b, 0x2b, 0xda, 0x6a, 0xd9, - 0x2c, 0x7b, 0x3e, 0xbd, 0xc3, 0xbe, 0xd1, 0xe7, 0x61, 0x9a, 0x9c, 0x10, 0xdb, 0x6a, 0x11, 0x8a, - 0x1d, 0x37, 0xb2, 0x8e, 0x36, 0xea, 0x13, 0x7c, 0x94, 0x85, 0x78, 0x94, 0xdb, 0x27, 0xc4, 0xde, - 0x12, 0xe8, 0x47, 0x1b, 0xe6, 0x14, 0x49, 0x7f, 0xbe, 0x5d, 0x28, 0x17, 0xf5, 0x09, 0xe3, 0x3f, - 0x34, 0xa8, 0x36, 0x6c, 0xec, 0x8d, 0x23, 0xcc, 0xcb, 0x50, 0x89, 0x28, 0x0e, 0xa9, 0x95, 0x88, - 0xb4, 0xcc, 0x01, 0xf7, 0x49, 0x9f, 0xcd, 0xc8, 0x75, 0xba, 0x0e, 0xe5, 0x33, 0x9a, 0x32, 0xc5, - 0x47, 0x5a, 0xda, 0x85, 0x8c, 0xb4, 0xd1, 0x12, 0x94, 0x0f, 0x49, 0xdf, 0xf2, 0x3d, 0xb7, 0x5f, - 0x2f, 0xf2, 0xa9, 0x96, 0x0e, 0x49, 0x7f, 0xd7, 0x73, 0xb9, 0x8a, 0x42, 0xc2, 0xe8, 0x08, 0x9f, - 0x61, 0xd9, 0x54, 0x9f, 0x68, 0x11, 0x4a, 0xc4, 0x6b, 0xf1, 0xf1, 0x4b, 0x7c, 0xfc, 0x09, 0xe2, - 0xb5, 0xd8, 0xe8, 0xd7, 0xa0, 0x1a, 0xe1, 0x6e, 0xe0, 0x12, 0x2b, 0xa2, 0x24, 0xa8, 0x97, 0x39, - 0x0f, 0x20, 0x40, 0x0d, 0x4a, 0x02, 0xe3, 0x77, 0x35, 0x98, 0x14, 0xf3, 0x1e, 0x5f, 0xbb, 0x37, - 0xa0, 0x18, 0x60, 0x27, 0x8c, 0xea, 0xb9, 0x95, 0xfc, 0x6a, 0x75, 0x63, 0x3a, 0xd1, 0xee, 0xd1, - 0x1e, 0x76, 0x42, 0x53, 0x60, 0x13, 0x23, 0xc8, 0x9f, 0x6e, 0x04, 0xc6, 0x7f, 0x15, 0x61, 0x7a, - 0x2f, 0x24, 0xc7, 0xa1, 0x43, 0xc9, 0x38, 0xfa, 0x78, 0x15, 0x2a, 0xdd, 0x1e, 0xc5, 0xd4, 0xf1, - 0x3d, 0xc5, 0x53, 0x32, 0xd8, 0x03, 0x89, 0x31, 0x13, 0x1a, 0x74, 0x1d, 0x26, 0x83, 0xd0, 0xe9, - 0xe2, 0xb0, 0x6f, 0x31, 0x67, 0x93, 0xc6, 0x57, 0x95, 0xb0, 0x1d, 0xdf, 0x3e, 0x44, 0x2f, 0xc2, - 0x94, 0xd0, 0x71, 0x56, 0x6d, 0x93, 0x1c, 0xf8, 0x28, 0xd1, 0x1d, 0x6b, 0x6f, 0x51, 0xea, 0x72, - 0xdd, 0x15, 0xcc, 0x12, 0xfb, 0x6e, 0x52, 0x17, 0x6d, 0xc0, 0x7c, 0x74, 0xe8, 0x04, 0x96, 0xed, - 0x7b, 0x11, 0x0d, 0xb1, 0xe3, 0x51, 0xcb, 0xee, 0x10, 0xfb, 0x50, 0x6a, 0x72, 0x96, 0x21, 0x37, - 0x63, 0xdc, 0x26, 0x43, 0xa1, 0x5f, 0x84, 0xd9, 0x80, 0x44, 0x91, 0xd3, 0x75, 0x22, 0xea, 0xd8, - 0x16, 0xb6, 0xc5, 0x8c, 0x4a, 0x2b, 0xf9, 0xd5, 0xda, 0xc6, 0x5a, 0x3c, 0xa3, 0x01, 0x51, 0xad, - 0xef, 0x25, 0x6d, 0x6e, 0xf2, 0x26, 0x26, 0x0a, 0x06, 0x41, 0x11, 0xe3, 0x95, 0x9e, 0x78, 0x56, - 0xe4, 0x7c, 0x85, 0x70, 0xb3, 0x28, 0x98, 0x25, 0x7a, 0xe2, 0x35, 0x9c, 0xaf, 0x10, 0x64, 0xc0, - 0xd4, 0x81, 0x1f, 0x5a, 0xbd, 0xa0, 0x85, 0x29, 0xb1, 0x68, 0x54, 0xaf, 0x70, 0x7c, 0xf5, 0xc0, - 0x0f, 0xdf, 0xe1, 0xb0, 0x66, 0xc4, 0x68, 0xba, 0x8e, 0x67, 0xd9, 0x7e, 0xb7, 0xeb, 0x50, 0x46, - 0x03, 0x82, 0xa6, 0xeb, 0x78, 0x9b, 0x1c, 0xd6, 0x8c, 0xd0, 0x2a, 0xe8, 0xbd, 0x88, 0x58, 0x38, - 0xea, 0x7b, 0xb6, 0xa4, 0xac, 0x57, 0xf9, 0x74, 0x6b, 0xbd, 0x88, 0xdc, 0x64, 0x60, 0x41, 0x8b, - 0x56, 0xa0, 0x1a, 0x11, 0xdb, 0xf7, 0x5a, 0x38, 0x74, 0x48, 0x54, 0x9f, 0x5c, 0xc9, 0x33, 0xf9, - 0xa7, 0x40, 0xe8, 0x0a, 0x00, 0x0d, 0x99, 0x5b, 0x10, 0x2b, 0xb0, 0xeb, 0x53, 0x22, 0x06, 0xd0, - 0xb0, 0xbf, 0xeb, 0x91, 0x3d, 0x9b, 0x73, 0x83, 0x4f, 0x52, 0xdc, 0xd4, 0x24, 0x37, 0xf8, 0x24, - 0xe6, 0xe6, 0x2d, 0x98, 0xc6, 0x51, 0x44, 0x42, 0x36, 0x7d, 0xcb, 0x25, 0x47, 0xc4, 0xad, 0x4f, - 0xaf, 0x68, 0xab, 0xb5, 0x8d, 0xc5, 0x58, 0x92, 0x37, 0x15, 0x7e, 0x87, 0xa1, 0xcd, 0x1a, 0xce, - 0x7c, 0x1b, 0xfb, 0x30, 0x33, 0x24, 0x5b, 0xb4, 0x0c, 0x0b, 0x8d, 0xfb, 0xdb, 0x7b, 0xd6, 0xde, - 0xed, 0x46, 0x63, 0xfb, 0xc1, 0x76, 0xa3, 0xb9, 0xbd, 0x69, 0x6d, 0xde, 0xbb, 0xbd, 0x79, 0x5f, - 0xbf, 0x84, 0xea, 0x30, 0xb7, 0xb5, 0x3b, 0x02, 0xa3, 0xa1, 0x45, 0x98, 0xdd, 0xda, 0xb5, 0x36, - 0x77, 0x1f, 0x36, 0x9a, 0xe6, 0xcd, 0xed, 0x87, 0x4d, 0x89, 0xc8, 0x19, 0xff, 0xad, 0x81, 0x9e, - 0x28, 0x74, 0x7c, 0x9f, 0xfc, 0x28, 0x4c, 0x70, 0xec, 0xb0, 0x03, 0xc4, 0xde, 0x26, 0x09, 0x86, - 0x55, 0x99, 0x1f, 0x56, 0xe5, 0xcb, 0xa0, 0x0b, 0xd1, 0xa7, 0xc8, 0x84, 0x07, 0x4c, 0xf9, 0x4c, - 0x03, 0x31, 0xe1, 0x88, 0x68, 0x5c, 0x7c, 0x8a, 0x68, 0x6c, 0x7c, 0xbf, 0x00, 0x0b, 0x29, 0x21, - 0x33, 0xdf, 0xfb, 0xff, 0x12, 0x02, 0x86, 0xdc, 0x6a, 0x62, 0xa4, 0x5b, 0x39, 0x91, 0x75, 0xe0, - 0x84, 0x11, 0x15, 0x7c, 0x94, 0xb8, 0xa5, 0x57, 0x9d, 0xe8, 0x0e, 0x83, 0x71, 0x3e, 0xae, 0xc3, - 0xe4, 0x31, 0x66, 0x2a, 0x70, 0xba, 0xc4, 0xef, 0x51, 0xee, 0xbd, 0x79, 0xb3, 0xca, 0x60, 0x4d, - 0x01, 0x42, 0x75, 0x28, 0x1e, 0xf8, 0xa1, 0x4d, 0xb8, 0xe7, 0x96, 0x6f, 0xe5, 0xea, 0x9a, 0x29, - 0x00, 0x6c, 0x12, 0x21, 0xa1, 0xbd, 0xd0, 0xb3, 0xf8, 0xd2, 0x2a, 0xfc, 0xb6, 0x6c, 0x4e, 0x0a, - 0xe0, 0x23, 0x0e, 0x1b, 0xb6, 0x88, 0xea, 0x28, 0x8b, 0x98, 0xe6, 0x01, 0xcc, 0x22, 0x27, 0x4e, - 0x44, 0x89, 0x67, 0x93, 0xfa, 0xa4, 0xf0, 0x6d, 0x0e, 0xbe, 0xad, 0xa0, 0xe8, 0x15, 0x98, 0xe5, - 0x12, 0x61, 0x2b, 0x9a, 0xe5, 0x1c, 0x08, 0xfa, 0x48, 0xba, 0xb0, 0xce, 0x50, 0x6c, 0x71, 0xdb, - 0x3e, 0xe0, 0x2d, 0x22, 0xb4, 0xc5, 0x66, 0x77, 0x48, 0xac, 0x5e, 0x60, 0x75, 0xfd, 0x16, 0xe1, - 0x9e, 0x5c, 0xdb, 0x30, 0x92, 0x68, 0x97, 0x35, 0x8e, 0x77, 0xf1, 0x21, 0x79, 0x27, 0x78, 0xe0, - 0xb7, 0x88, 0x09, 0xc7, 0xf1, 0x6f, 0xe3, 0xdf, 0x35, 0xa8, 0x0f, 0x50, 0xde, 0x27, 0x7d, 0x93, - 0x44, 0x3d, 0x97, 0xa2, 0xcf, 0x40, 0x81, 0xf6, 0x03, 0xc2, 0xad, 0xa8, 0xb6, 0x71, 0xe3, 0x71, - 0x5d, 0xc7, 0x0d, 0x9a, 0xfd, 0x80, 0x98, 0xbc, 0x49, 0xb2, 0x3f, 0xc9, 0xa5, 0xf7, 0x27, 0x57, - 0xa0, 0x92, 0x48, 0x21, 0xcf, 0x27, 0x96, 0x00, 0xd0, 0x9b, 0xb0, 0xc8, 0x66, 0x49, 0x5a, 0xd6, - 0xb1, 0x43, 0x3b, 0x6c, 0x05, 0x38, 0x70, 0x1d, 0x3b, 0xe5, 0x42, 0x73, 0x02, 0xfd, 0xae, 0x43, - 0x3b, 0x9b, 0x12, 0xd9, 0x8c, 0xd0, 0x3a, 0xf0, 0x45, 0xc1, 0x0a, 0x49, 0xe4, 0xbb, 0x47, 0x8e, - 0xd7, 0x16, 0x06, 0x21, 0x02, 0xe8, 0x0c, 0x43, 0x99, 0x0a, 0xc3, 0xb8, 0x35, 0xfe, 0x2d, 0x07, - 0x8b, 0x43, 0x9e, 0xf3, 0x5c, 0x02, 0xc8, 0x35, 0xa8, 0x0c, 0x04, 0x0f, 0x6e, 0x71, 0x65, 0x5b, - 0xd9, 0x4a, 0x5d, 0x49, 0x8d, 0xcd, 0x77, 0x52, 0x98, 0xa3, 0x90, 0xdc, 0x02, 0x4c, 0x48, 0x3b, - 0x2c, 0xf2, 0x98, 0x2f, 0xbf, 0xd0, 0x55, 0x80, 0x78, 0xc7, 0xc7, 0x1c, 0x25, 0xcf, 0x44, 0xaa, - 0xb6, 0x7c, 0x23, 0xa3, 0x4c, 0xe9, 0x29, 0xa2, 0x0c, 0xfa, 0x2c, 0xdb, 0x49, 0x31, 0xd5, 0x46, - 0xf5, 0x32, 0x9f, 0xdd, 0xf5, 0x27, 0x1a, 0x81, 0xa9, 0x5a, 0x18, 0xdf, 0xd1, 0x60, 0x39, 0x45, - 0x65, 0xfa, 0xae, 0xbb, 0x8f, 0xc7, 0x0b, 0x53, 0x43, 0x21, 0x25, 0x37, 0x22, 0xa4, 0x0c, 0xc5, - 0x8d, 0xfc, 0x70, 0xdc, 0x40, 0x50, 0x38, 0x24, 0x7d, 0x66, 0x50, 0x4c, 0x8a, 0xfc, 0xb7, 0xf1, - 0x3d, 0x0d, 0x2e, 0x8f, 0xe4, 0xf3, 0xb9, 0x18, 0xc5, 0x08, 0x15, 0xe5, 0x9f, 0x66, 0x21, 0xf8, - 0x13, 0x0d, 0x66, 0x9b, 0x27, 0xde, 0x3d, 0x82, 0x43, 0x7a, 0x8b, 0xe0, 0xb1, 0xb2, 0x9c, 0xc1, - 0xa0, 0x9e, 0x3b, 0x43, 0x50, 0xcf, 0x8f, 0xd0, 0xc0, 0x4b, 0x30, 0x8d, 0x5b, 0x47, 0x4e, 0x44, - 0xac, 0x38, 0xb6, 0xcb, 0xc5, 0x4f, 0x80, 0x77, 0x44, 0x84, 0x37, 0x7e, 0xa8, 0xc1, 0x5c, 0x96, - 0xe7, 0xe7, 0x90, 0x32, 0xa5, 0x57, 0x9c, 0x7c, 0x76, 0xc5, 0x19, 0xa1, 0x83, 0xc2, 0xd3, 0xe8, - 0xe0, 0x5f, 0x72, 0x30, 0xcf, 0xb7, 0xa2, 0xcd, 0x13, 0xaf, 0x41, 0x31, 0xed, 0x45, 0xe3, 0x68, - 0xe1, 0x1a, 0x28, 0x89, 0xa7, 0x12, 0x24, 0x90, 0x20, 0x96, 0xa4, 0x2c, 0x42, 0x49, 0xcc, 0x40, - 0x99, 0xf6, 0x04, 0x9f, 0x40, 0xc4, 0xe4, 0x6e, 0x63, 0xd7, 0x25, 0xa1, 0x25, 0x74, 0x94, 0x6c, - 0x3a, 0x04, 0xb8, 0xc1, 0xa0, 0x4d, 0x1e, 0x2d, 0xec, 0x5e, 0x18, 0x12, 0x8f, 0x93, 0x88, 0x65, - 0xb7, 0x22, 0x21, 0xcd, 0x08, 0xbd, 0x06, 0xf3, 0xa1, 0x34, 0x7e, 0xb6, 0x00, 0xb1, 0xc0, 0xc2, - 0xa3, 0xb3, 0xdc, 0x7b, 0x23, 0x85, 0xdc, 0x3e, 0x78, 0xe8, 0x53, 0xbe, 0x0c, 0xa1, 0x35, 0x98, - 0xe1, 0xeb, 0xa5, 0x95, 0xde, 0xbb, 0x8a, 0xb5, 0x78, 0x9a, 0x23, 0x1a, 0xc9, 0xe6, 0xf5, 0x73, - 0xb0, 0x9c, 0xc4, 0xe8, 0xf4, 0x86, 0x9d, 0xdb, 0x5c, 0x99, 0x37, 0xaa, 0xc7, 0x14, 0x03, 0xf1, - 0xc5, 0xf8, 0x51, 0x0e, 0x16, 0x06, 0x65, 0xfc, 0xe1, 0x5a, 0xcd, 0x0d, 0xa8, 0xc9, 0x70, 0x9e, - 0xdd, 0xe8, 0x4c, 0x09, 0xa8, 0x72, 0x8a, 0x97, 0x61, 0x42, 0x64, 0x24, 0x5c, 0xe0, 0xb5, 0x54, - 0xda, 0x27, 0xb3, 0x0e, 0x89, 0x46, 0xeb, 0x50, 0xe1, 0x43, 0x39, 0xde, 0x81, 0x2f, 0x53, 0xf3, - 0x84, 0x2f, 0x26, 0x83, 0x6d, 0xef, 0xc0, 0x37, 0x39, 0x3b, 0xec, 0xd7, 0xb3, 0x06, 0x77, 0xe3, - 0xab, 0x1a, 0x2c, 0x73, 0x89, 0x36, 0x64, 0xfe, 0xc0, 0x3d, 0x7d, 0x2c, 0xd3, 0x55, 0x61, 0x35, - 0x97, 0x84, 0xd5, 0x33, 0x45, 0x0c, 0xe3, 0x7f, 0x34, 0xb8, 0x3c, 0x92, 0x87, 0xe7, 0xa0, 0xda, - 0x97, 0xa1, 0xc8, 0x64, 0xc9, 0x9c, 0x29, 0x3f, 0x5a, 0xd6, 0x02, 0x8f, 0x2e, 0xa7, 0xd7, 0x6d, - 0xa1, 0xe3, 0x64, 0xcd, 0x7e, 0xd6, 0x8d, 0xfc, 0x77, 0x35, 0x98, 0x12, 0x0e, 0x72, 0x61, 0x0b, - 0xa3, 0xd2, 0x4e, 0x3e, 0xa5, 0x9d, 0xb3, 0x19, 0xaf, 0x38, 0xf4, 0x31, 0x27, 0xf6, 0x1d, 0xcf, - 0xf5, 0xdb, 0xc6, 0xdf, 0x69, 0x50, 0x53, 0xbc, 0x3e, 0x07, 0x05, 0x0d, 0xf3, 0x98, 0x1f, 0xe5, - 0x60, 0xcf, 0x1a, 0xbd, 0xdb, 0x30, 0xb5, 0xdd, 0x0d, 0xfc, 0x30, 0x56, 0x40, 0x26, 0x29, 0xd2, - 0xce, 0x90, 0x14, 0x0d, 0x33, 0x9a, 0x1b, 0xc1, 0xa8, 0xf1, 0x1e, 0xd4, 0xd4, 0x40, 0xe3, 0x4b, - 0x6f, 0x2e, 0x2d, 0xbd, 0x8a, 0x3a, 0x0a, 0xfa, 0x06, 0xd3, 0x8c, 0x4b, 0xb0, 0xd7, 0x0b, 0xce, - 0xe7, 0x98, 0xf3, 0x4c, 0xeb, 0x7d, 0x76, 0x3d, 0x29, 0x0c, 0xac, 0x27, 0xc6, 0x37, 0x35, 0x98, - 0x8e, 0x99, 0xfa, 0x99, 0xb1, 0x17, 0xe3, 0x10, 0xa6, 0x6f, 0x61, 0x6a, 0x77, 0xc6, 0x3c, 0x12, - 0x1e, 0x15, 0xeb, 0x1e, 0x7f, 0x28, 0xfc, 0x4f, 0x1a, 0xe8, 0xc9, 0x68, 0x17, 0x7e, 0x76, 0xf8, - 0x8c, 0xbe, 0x90, 0xc8, 0xba, 0x78, 0xba, 0xac, 0xdf, 0x2e, 0x94, 0xf3, 0x7a, 0xc1, 0xf8, 0x65, - 0x98, 0xe3, 0x93, 0xbb, 0xf0, 0xbd, 0xfd, 0x88, 0x10, 0x66, 0xfc, 0xa9, 0x06, 0xf3, 0x03, 0xa3, - 0x3f, 0x07, 0x23, 0x7b, 0xd6, 0xfd, 0xfa, 0x1f, 0x6b, 0x30, 0xdd, 0xb0, 0xb1, 0x37, 0xee, 0x89, - 0xcd, 0x35, 0xa8, 0x76, 0xf1, 0xc9, 0x80, 0xb0, 0xa0, 0x8b, 0x4f, 0x94, 0xa8, 0x32, 0xa7, 0xec, - 0xf9, 0xc7, 0x9d, 0xb2, 0x17, 0xd2, 0xa7, 0xec, 0xa9, 0x63, 0xf1, 0x62, 0xfa, 0x58, 0xdc, 0xf8, - 0x89, 0x06, 0x7a, 0xc2, 0xec, 0xcf, 0xd2, 0x9a, 0xfc, 0xac, 0x41, 0xff, 0x47, 0x1a, 0x20, 0x71, - 0x2e, 0x40, 0xc6, 0xd5, 0xc4, 0x99, 0x0c, 0xf7, 0x8c, 0x6b, 0xd8, 0x2b, 0x50, 0xa1, 0x27, 0x1e, - 0xdf, 0xfa, 0x89, 0xe4, 0x34, 0x3d, 0x72, 0xf3, 0xc4, 0x13, 0x5b, 0x3f, 0x2a, 0x7e, 0x24, 0x69, - 0x6c, 0x31, 0xe5, 0x0e, 0x2c, 0x11, 0xcc, 0xcc, 0xe8, 0xff, 0x80, 0x33, 0x3c, 0x82, 0xca, 0xdd, - 0xcd, 0x71, 0x64, 0x7f, 0x15, 0x20, 0xc2, 0x07, 0xc4, 0x0a, 0x7c, 0xc7, 0xa3, 0x52, 0xf0, 0x15, - 0x06, 0xd9, 0x63, 0x00, 0xa3, 0x03, 0xc0, 0xfa, 0xbd, 0x78, 0x09, 0x18, 0xdf, 0xd2, 0x00, 0x6d, - 0x11, 0x97, 0x50, 0x62, 0x62, 0xaf, 0x4d, 0xce, 0xfd, 0x5a, 0x2c, 0xe5, 0x9a, 0xf9, 0xc1, 0x1b, - 0x2b, 0xcf, 0xa7, 0xce, 0x81, 0xbc, 0x02, 0x13, 0xb7, 0x7d, 0x20, 0x40, 0xbb, 0x9e, 0xdb, 0x37, - 0xbe, 0x04, 0xb3, 0x19, 0xc6, 0xce, 0x7b, 0xcb, 0xf1, 0xe7, 0x1a, 0xac, 0xec, 0x85, 0x24, 0xc0, - 0x21, 0xb9, 0xe3, 0xe2, 0xa8, 0xc3, 0x22, 0x70, 0xd3, 0x97, 0x06, 0xfd, 0xfc, 0xe4, 0xb0, 0x04, - 0xe5, 0x81, 0xa4, 0xb7, 0x14, 0xc9, 0x74, 0x37, 0xb5, 0x2a, 0x17, 0xb3, 0xab, 0xb2, 0x0b, 0xd7, - 0x4f, 0x61, 0xfd, 0xbc, 0x25, 0xf5, 0x23, 0x0d, 0x96, 0xce, 0x47, 0x44, 0xa9, 0x19, 0xe5, 0xb2, - 0xd7, 0xa1, 0xa7, 0x46, 0xfd, 0x94, 0xf0, 0x0a, 0x8f, 0x15, 0x5e, 0x31, 0x2b, 0xbc, 0x4c, 0xd2, - 0x33, 0x91, 0x4d, 0x7a, 0x0c, 0x02, 0xcb, 0xcf, 0x43, 0x70, 0x5f, 0x84, 0x29, 0x13, 0x1f, 0x9f, - 0xdb, 0xd5, 0x7d, 0x0d, 0x72, 0xf6, 0x01, 0x17, 0x4e, 0xc5, 0xcc, 0xd9, 0x07, 0xc6, 0x6f, 0x6a, - 0x50, 0x53, 0xfd, 0x9f, 0x33, 0xeb, 0x63, 0x5c, 0xd0, 0x1b, 0x2d, 0x40, 0x26, 0x3e, 0x3e, 0xef, - 0xad, 0xe9, 0xe0, 0xa4, 0x7d, 0x98, 0xcd, 0x8c, 0x72, 0xd1, 0x5b, 0x52, 0xe3, 0x0f, 0x34, 0xae, - 0xc5, 0xbd, 0xde, 0x39, 0x69, 0x71, 0xb4, 0x64, 0xc5, 0x34, 0x0b, 0x6a, 0x9a, 0xac, 0x5d, 0x72, - 0xb5, 0xc4, 0x7e, 0x32, 0x27, 0x38, 0xf0, 0x43, 0xcb, 0xc6, 0x91, 0x3c, 0xcf, 0x9a, 0x38, 0xf0, - 0xc3, 0x4d, 0x1c, 0xb1, 0xb4, 0x4c, 0xf1, 0x77, 0xde, 0x06, 0xfc, 0x17, 0x5a, 0xa2, 0xd3, 0x31, - 0x05, 0x70, 0xc6, 0x8d, 0xff, 0x80, 0x9a, 0xd1, 0x9c, 0x98, 0x7f, 0x21, 0xbe, 0x65, 0x18, 0x94, - 0x41, 0x31, 0x2d, 0x03, 0x66, 0x39, 0x94, 0xba, 0xe2, 0x06, 0xa1, 0x60, 0xf2, 0xdf, 0x6c, 0x01, - 0xc9, 0xf0, 0x7e, 0xde, 0xc2, 0xe9, 0x83, 0x6e, 0xe2, 0x63, 0xb9, 0x46, 0x5d, 0x84, 0x83, 0xa7, - 0xa7, 0x5b, 0xc8, 0xa8, 0xfc, 0x97, 0x60, 0x26, 0x35, 0xf4, 0x79, 0x4f, 0xec, 0x57, 0x35, 0x98, - 0x57, 0x92, 0x1b, 0x7f, 0x7a, 0x67, 0x70, 0xe6, 0xc7, 0x4f, 0x10, 0xc3, 0xc2, 0x20, 0x07, 0xe7, - 0x3d, 0xcb, 0x1f, 0x8a, 0xe8, 0xf9, 0x1c, 0x8b, 0x81, 0xd2, 0x25, 0x3f, 0x85, 0x6c, 0xc9, 0x8f, - 0x10, 0x4c, 0x31, 0x16, 0xcc, 0xd3, 0x97, 0x00, 0x19, 0x6d, 0x98, 0x8e, 0xa7, 0x33, 0xbe, 0xac, - 0xae, 0x43, 0xfe, 0xf0, 0xe8, 0xb1, 0xce, 0xca, 0x70, 0xc6, 0xd7, 0x85, 0x79, 0x7c, 0x28, 0xbb, - 0xc6, 0x81, 0x30, 0x29, 0xed, 0xe4, 0x42, 0xf7, 0x89, 0x3f, 0xd6, 0x92, 0x38, 0x32, 0xae, 0xb1, - 0x7c, 0x14, 0x26, 0x42, 0xc6, 0xdd, 0xc8, 0xfb, 0x34, 0xc1, 0xb7, 0x24, 0x60, 0x99, 0x01, 0xc1, - 0x76, 0xc7, 0x4a, 0xdb, 0x4f, 0x85, 0x41, 0x76, 0xce, 0xcd, 0x86, 0x0c, 0x17, 0xe6, 0xb2, 0x33, - 0xba, 0x50, 0x7b, 0xf9, 0x15, 0x58, 0x7a, 0xc7, 0x63, 0xb9, 0xcd, 0x16, 0x89, 0x68, 0xe8, 0xf7, - 0x9f, 0xaf, 0xc9, 0xb0, 0xbd, 0xde, 0xa8, 0xe1, 0xcf, 0xdb, 0x4c, 0xbe, 0x0c, 0x97, 0x4d, 0xd2, - 0x76, 0x22, 0x4a, 0x42, 0x96, 0xbe, 0xee, 0xee, 0x47, 0x24, 0x3c, 0x22, 0xe1, 0x38, 0xf3, 0x9c, - 0x87, 0x89, 0x2e, 0x3e, 0x61, 0xfb, 0x56, 0xb1, 0x49, 0x2e, 0x76, 0xf1, 0x49, 0x33, 0x32, 0xde, - 0x80, 0x2b, 0xa3, 0x47, 0x90, 0x53, 0x89, 0xf9, 0xd2, 0xb2, 0x7b, 0xd0, 0x3a, 0xbf, 0xa0, 0xb8, - 0x20, 0xa6, 0x7a, 0xb0, 0x34, 0xa2, 0xfb, 0xd3, 0x38, 0x62, 0x26, 0xec, 0x44, 0x96, 0xed, 0x12, - 0x2c, 0xb2, 0x80, 0xb2, 0x59, 0x72, 0x22, 0x7e, 0xce, 0x7a, 0xe6, 0xe3, 0x13, 0xe3, 0x4b, 0xb0, - 0x64, 0x92, 0xae, 0x2f, 0x8e, 0x0a, 0x2e, 0x60, 0x5a, 0x1b, 0xb0, 0x3c, 0xaa, 0xff, 0x53, 0x25, - 0xfd, 0xdb, 0x1a, 0x2c, 0xee, 0x75, 0xfa, 0x91, 0x63, 0x63, 0xf7, 0x59, 0x4e, 0xc8, 0x46, 0xb3, - 0x34, 0xc6, 0xb9, 0x98, 0xf1, 0x1e, 0xd4, 0x87, 0x19, 0x3a, 0x55, 0x37, 0xb1, 0x02, 0x72, 0x4f, - 0x50, 0xc0, 0xb7, 0x35, 0x40, 0x8d, 0xc0, 0x75, 0xa8, 0xc9, 0x3d, 0x63, 0xbc, 0x93, 0xc0, 0x4a, - 0xc4, 0x7a, 0x48, 0xdc, 0x59, 0x94, 0x93, 0x70, 0x20, 0x9b, 0xd4, 0x55, 0x80, 0x98, 0x40, 0x1d, - 0x9d, 0x56, 0x14, 0x36, 0x42, 0xcb, 0x50, 0x71, 0x22, 0x2b, 0xc4, 0xc7, 0xd6, 0xe1, 0x91, 0x8a, - 0x85, 0x4e, 0x64, 0xe2, 0xe3, 0xfb, 0x47, 0xc6, 0xf7, 0x35, 0x98, 0xcd, 0xb0, 0x37, 0xbe, 0xbb, - 0xbf, 0x04, 0x05, 0x97, 0x1c, 0x50, 0x79, 0x92, 0x52, 0x5b, 0x97, 0xe5, 0xde, 0xa2, 0x63, 0xce, - 0x31, 0xc7, 0xa3, 0x55, 0x28, 0x86, 0x4e, 0xbb, 0x43, 0xe5, 0x09, 0xd2, 0x28, 0x42, 0x41, 0x80, - 0x56, 0x59, 0x60, 0x6e, 0xf3, 0xdb, 0x19, 0x71, 0x54, 0x36, 0x40, 0x6b, 0x2a, 0xb4, 0xf1, 0x6b, - 0x1a, 0xe8, 0x26, 0xc1, 0xad, 0x6d, 0xaf, 0x45, 0x4e, 0xc6, 0x91, 0x71, 0x3a, 0x41, 0xce, 0x65, - 0x13, 0xe4, 0x64, 0x4d, 0xca, 0x3f, 0x61, 0x4d, 0x32, 0x7e, 0x47, 0x83, 0x99, 0x14, 0x1b, 0xe3, - 0xcb, 0xf2, 0x2a, 0x40, 0x48, 0x70, 0xcb, 0x72, 0x58, 0x47, 0xea, 0xd8, 0x2b, 0x54, 0x3d, 0x33, - 0x96, 0x44, 0x89, 0xd4, 0x50, 0xe9, 0x70, 0x6c, 0x7e, 0x92, 0xc0, 0x68, 0xc0, 0xec, 0x83, 0x23, - 0xdb, 0xbe, 0x4b, 0xe8, 0xad, 0x3e, 0xaf, 0xdd, 0x39, 0x87, 0xfd, 0xb7, 0xf1, 0x1b, 0x1a, 0xcc, - 0x65, 0x7b, 0x3d, 0xef, 0xb4, 0xfa, 0x06, 0x14, 0xf8, 0xf5, 0xf8, 0xe0, 0xfc, 0xd8, 0xa8, 0x7c, - 0x7e, 0x1c, 0x6d, 0x7c, 0x19, 0x16, 0x63, 0x3e, 0x64, 0xf1, 0xc3, 0xf9, 0x6a, 0x9f, 0xf9, 0x6f, - 0x7d, 0x78, 0x88, 0xf3, 0x9e, 0xae, 0x14, 0x71, 0x3e, 0x49, 0x71, 0x94, 0x00, 0x0a, 0xa7, 0x0b, - 0xe0, 0xa7, 0x65, 0x28, 0x6d, 0x26, 0xcb, 0xbe, 0xe4, 0xc6, 0x69, 0x71, 0x56, 0x0a, 0x66, 0x59, - 0x00, 0xb6, 0x5b, 0xe8, 0x93, 0x09, 0xab, 0x81, 0x6f, 0x77, 0xa4, 0x97, 0xce, 0x66, 0x1d, 0xea, - 0x36, 0x43, 0xc5, 0xfc, 0xb2, 0x0f, 0xb4, 0x02, 0x85, 0x80, 0x10, 0x55, 0xa3, 0x3e, 0xa9, 0xe8, - 0xf7, 0x08, 0x09, 0x4d, 0x8e, 0xe1, 0x29, 0x25, 0x09, 0xbb, 0x32, 0x05, 0xe7, 0xbf, 0xd1, 0xab, - 0x50, 0x0e, 0x42, 0xc7, 0x0f, 0x1d, 0xda, 0xe7, 0x7b, 0xaa, 0xda, 0xc6, 0x6c, 0x4a, 0xfa, 0xdd, - 0x2e, 0xf6, 0x5a, 0x7b, 0xa1, 0x63, 0xc6, 0x44, 0xe8, 0x2d, 0x98, 0x76, 0x22, 0xdf, 0xc5, 0xa9, - 0x62, 0xe4, 0xd2, 0x40, 0x31, 0xf2, 0xb6, 0xc2, 0xcb, 0x62, 0x64, 0x27, 0xf3, 0x8d, 0x3e, 0x02, - 0x35, 0x7e, 0xe4, 0xe2, 0xb8, 0xae, 0x65, 0x63, 0xbb, 0x43, 0x64, 0xa5, 0xc9, 0xa4, 0xe7, 0xd3, - 0x3b, 0x8e, 0xeb, 0x6e, 0x32, 0x18, 0xd7, 0x74, 0xdf, 0xb3, 0x2d, 0xd7, 0x6f, 0x8b, 0x5a, 0x50, - 0xb3, 0xc4, 0xbe, 0x77, 0xfc, 0x36, 0x5a, 0x05, 0x3d, 0x24, 0xb6, 0x1f, 0xb6, 0x78, 0x21, 0xa9, - 0x15, 0x51, 0x4c, 0x65, 0x31, 0x68, 0x4d, 0xc0, 0x9b, 0x4e, 0x97, 0x34, 0x28, 0xa6, 0x29, 0xca, - 0xc8, 0xc6, 0x9e, 0xa0, 0xac, 0xa6, 0x29, 0xd9, 0x22, 0xc2, 0x29, 0xaf, 0x33, 0xa9, 0x07, 0xae, - 0x63, 0x63, 0x8b, 0x79, 0xaf, 0xac, 0x08, 0xad, 0x4a, 0x18, 0x0b, 0x15, 0xe8, 0x06, 0xd4, 0x44, - 0x2d, 0x0c, 0x69, 0x59, 0x62, 0x49, 0x99, 0xe2, 0xb9, 0xf9, 0x94, 0x82, 0xf2, 0x42, 0x09, 0xf4, - 0x19, 0x58, 0x62, 0x8b, 0x1d, 0x39, 0x21, 0x76, 0x8f, 0x0b, 0xa9, 0xd5, 0x0b, 0x85, 0xb4, 0xba, - 0xaa, 0xba, 0x7b, 0xa1, 0x8b, 0x4f, 0x6e, 0x2b, 0xfc, 0x96, 0x44, 0x3f, 0xe0, 0x05, 0x1a, 0x38, - 0x08, 0x5c, 0x87, 0xa8, 0x78, 0x32, 0x2d, 0xee, 0x2f, 0x24, 0x50, 0x84, 0x94, 0x45, 0x28, 0x51, - 0x1c, 0x1d, 0x32, 0xd3, 0xd1, 0x45, 0xcd, 0x11, 0xfb, 0xdc, 0x6e, 0xf1, 0xc5, 0x85, 0x62, 0x97, - 0x88, 0x09, 0xcc, 0x88, 0x62, 0x4e, 0x0e, 0xe1, 0xec, 0x7f, 0x1c, 0x10, 0x63, 0xb4, 0x17, 0xda, - 0xc4, 0x6a, 0x87, 0x7e, 0x2f, 0xb0, 0x28, 0x6e, 0xd7, 0x11, 0x37, 0x64, 0x5d, 0x61, 0xee, 0x32, - 0x44, 0x13, 0xb7, 0xd1, 0xa7, 0x61, 0xaa, 0xe5, 0x44, 0x87, 0xd6, 0x41, 0xcf, 0x75, 0x2d, 0x3f, - 0xa0, 0xf5, 0x59, 0xae, 0xe4, 0xb9, 0x58, 0xc9, 0x5b, 0x4e, 0x74, 0x78, 0xa7, 0xe7, 0xba, 0xbb, - 0x01, 0x35, 0xab, 0xad, 0xe4, 0x83, 0xc9, 0x9c, 0x2d, 0x62, 0x84, 0x86, 0x7d, 0x2b, 0x14, 0x2e, - 0x5e, 0x9f, 0x13, 0x32, 0x77, 0x22, 0x93, 0x81, 0x95, 0xe3, 0xbf, 0x01, 0x55, 0x1c, 0x38, 0xf1, - 0x35, 0xcc, 0xfc, 0x80, 0xf9, 0xdd, 0xdc, 0xdb, 0x56, 0xe7, 0x98, 0x80, 0x03, 0x27, 0xa9, 0xde, - 0x99, 0x16, 0xa7, 0x9e, 0x34, 0xd6, 0xc3, 0x02, 0xd7, 0x43, 0x2d, 0x06, 0x0b, 0x45, 0xfc, 0x1c, - 0x88, 0x47, 0x47, 0x96, 0x8a, 0x2e, 0x8b, 0xdc, 0x33, 0xe6, 0xd7, 0xd5, 0x53, 0xa4, 0x26, 0xfb, - 0xab, 0x42, 0xcc, 0x24, 0x4d, 0x7d, 0x09, 0x5d, 0x73, 0x2e, 0x2d, 0x21, 0x98, 0x7a, 0x9d, 0x47, - 0x81, 0x29, 0x09, 0x6d, 0x70, 0x20, 0x13, 0x39, 0x7f, 0x8a, 0x20, 0x48, 0x96, 0x44, 0xf4, 0xa7, - 0x27, 0x9e, 0x44, 0xaf, 0xc3, 0xec, 0x80, 0xc8, 0x3d, 0xdc, 0x25, 0xf5, 0x65, 0xde, 0xd5, 0x4c, - 0x46, 0xe6, 0x0f, 0x71, 0x97, 0xa0, 0x35, 0x98, 0xd9, 0xef, 0x45, 0x7d, 0x8b, 0x76, 0x42, 0x12, - 0x75, 0x7c, 0xb7, 0xc5, 0x4c, 0xe6, 0x32, 0xdf, 0xff, 0x4c, 0x33, 0x44, 0x53, 0xc1, 0x1f, 0x44, - 0x6f, 0x17, 0xca, 0x05, 0xbd, 0xc8, 0x0c, 0x14, 0xb7, 0xac, 0xf7, 0x7b, 0x7e, 0xd8, 0xeb, 0x1a, - 0xff, 0x9c, 0x83, 0xb2, 0x5a, 0x56, 0x86, 0x2a, 0x08, 0xb5, 0xe1, 0x0a, 0xc2, 0xeb, 0x30, 0xc9, - 0xcb, 0x9b, 0xb2, 0x07, 0xd8, 0x55, 0x06, 0x53, 0xc2, 0x1e, 0x0e, 0x77, 0xe9, 0xf2, 0xab, 0x42, - 0xb6, 0xfc, 0x2a, 0xfd, 0x30, 0xa3, 0x98, 0x7d, 0x98, 0xb1, 0x2a, 0x2b, 0xa9, 0x78, 0xf5, 0xb2, - 0x88, 0x33, 0xd5, 0x58, 0xd1, 0xbb, 0x81, 0xa8, 0xa1, 0x6a, 0xf6, 0x03, 0x82, 0x3e, 0x06, 0x88, - 0x53, 0x66, 0x0b, 0x47, 0x4b, 0xbc, 0xbb, 0x69, 0x86, 0xb9, 0x93, 0x2a, 0x1e, 0x1d, 0xf5, 0x4e, - 0xa3, 0x3c, 0xf2, 0x9d, 0xc6, 0x50, 0x61, 0x78, 0x65, 0xb8, 0x30, 0x7c, 0xe0, 0x2d, 0x07, 0x0c, - 0xbd, 0xe5, 0x30, 0xbe, 0x55, 0x80, 0xb2, 0xba, 0x6f, 0x4a, 0xad, 0xed, 0xda, 0x13, 0xd6, 0x76, - 0x74, 0x85, 0x05, 0x7c, 0x1a, 0xf6, 0xf1, 0xbe, 0x4b, 0xe4, 0x7a, 0x92, 0x00, 0xd8, 0x4a, 0x83, - 0xf7, 0xfd, 0x90, 0xca, 0x63, 0x24, 0xf1, 0x81, 0x36, 0xa0, 0xac, 0x0a, 0xae, 0x87, 0x2e, 0x52, - 0xdf, 0x0d, 0x1d, 0x4a, 0x54, 0xc5, 0xb5, 0x19, 0xd3, 0x31, 0x93, 0xc7, 0x2e, 0x33, 0x89, 0xbe, - 0xac, 0x13, 0x2c, 0x4a, 0x93, 0x8f, 0x7d, 0x4a, 0x60, 0x79, 0xa9, 0xa0, 0x39, 0x89, 0x53, 0x5f, - 0xe8, 0x15, 0x28, 0xab, 0x37, 0x7b, 0x43, 0xb5, 0x6e, 0x5b, 0x12, 0x61, 0xc6, 0x24, 0x68, 0x0b, - 0x66, 0x62, 0x61, 0x5a, 0xe4, 0x24, 0x70, 0x42, 0xd2, 0x92, 0xd5, 0x6e, 0xf5, 0xcc, 0x0a, 0xc2, - 0x44, 0x7b, 0x5b, 0xe0, 0xcd, 0x69, 0x3b, 0x0b, 0x60, 0x61, 0x86, 0x99, 0x4c, 0x72, 0x04, 0x5f, - 0xe6, 0x3d, 0xcc, 0xa5, 0x6f, 0x5a, 0x1f, 0xca, 0xe3, 0x78, 0xb3, 0x4a, 0x93, 0x0f, 0x74, 0x0f, - 0x66, 0x93, 0xf1, 0xa9, 0xef, 0x5b, 0x2e, 0x0e, 0xdb, 0xe2, 0xd9, 0x40, 0x75, 0x63, 0x69, 0x88, - 0x83, 0xa6, 0xef, 0xef, 0x30, 0x02, 0x53, 0xb7, 0x07, 0x20, 0x68, 0x13, 0xf4, 0xe4, 0x79, 0xcd, - 0x01, 0x76, 0x5c, 0xd2, 0xe2, 0xcb, 0x49, 0x7a, 0x22, 0xf1, 0xfb, 0x9a, 0x3b, 0x1c, 0x6f, 0x26, - 0x0f, 0x72, 0x04, 0xc0, 0xf8, 0xfb, 0x1c, 0x4c, 0x65, 0xb4, 0x92, 0xd9, 0xaa, 0x68, 0xd9, 0x8d, - 0xea, 0x35, 0xa8, 0xa6, 0x6b, 0xe9, 0x65, 0xc5, 0x80, 0x9d, 0x54, 0xd0, 0x0f, 0xbb, 0x5d, 0x1d, - 0x4a, 0xd2, 0x75, 0xe5, 0x85, 0x91, 0xfa, 0x64, 0x71, 0x3d, 0xee, 0x2c, 0x31, 0x6f, 0xe1, 0x7f, - 0xba, 0xc2, 0xc4, 0x36, 0xfe, 0x26, 0x4c, 0x84, 0x04, 0x47, 0xbe, 0x27, 0xbd, 0xf0, 0xea, 0x68, - 0x9b, 0x5a, 0x37, 0x39, 0x91, 0x29, 0x89, 0x8d, 0x63, 0x98, 0x10, 0x10, 0x54, 0x85, 0xd2, 0x3b, - 0xde, 0xa1, 0xe7, 0x1f, 0x7b, 0xfa, 0x25, 0x54, 0x03, 0xd8, 0x0d, 0xa8, 0x2c, 0x0a, 0xd5, 0x35, - 0x34, 0x07, 0x7a, 0xba, 0x6e, 0x9b, 0x59, 0xb8, 0x9e, 0x43, 0x08, 0x6a, 0x0d, 0xe2, 0x1e, 0x98, - 0xbe, 0xeb, 0x92, 0xd6, 0x2d, 0x6c, 0x1f, 0xea, 0x79, 0x34, 0x05, 0x15, 0xd3, 0x16, 0xd5, 0xa3, - 0x91, 0x5e, 0x40, 0x8b, 0x30, 0xbb, 0x83, 0xbf, 0xd2, 0x7f, 0xc7, 0x73, 0xde, 0xef, 0x11, 0x8f, - 0x44, 0x11, 0x47, 0xe9, 0x45, 0x63, 0x05, 0x26, 0xd3, 0x36, 0xab, 0x24, 0xa3, 0x25, 0x5b, 0xdc, - 0x3f, 0xd4, 0xa0, 0xac, 0xec, 0x33, 0x5d, 0x90, 0xab, 0x65, 0x0a, 0x72, 0x55, 0xd8, 0x4a, 0xf6, - 0xc7, 0x9c, 0x90, 0x25, 0x65, 0x6b, 0x30, 0xa3, 0xac, 0x9a, 0xa1, 0xad, 0x0e, 0x8e, 0x3a, 0xb2, - 0x26, 0x60, 0x5a, 0x21, 0xee, 0x93, 0xfe, 0x3d, 0x1c, 0x75, 0xd0, 0x9b, 0x00, 0xfc, 0x05, 0x8b, - 0xdd, 0xc1, 0x8e, 0x27, 0x73, 0x9d, 0x85, 0xf5, 0xf8, 0xad, 0xeb, 0xbb, 0xd8, 0xa1, 0x77, 0xfc, - 0xf0, 0xb6, 0xc7, 0x56, 0xb9, 0x0a, 0xa3, 0xdc, 0x64, 0x84, 0xc6, 0x37, 0x34, 0x98, 0x1e, 0xf0, - 0x85, 0xd3, 0xec, 0x63, 0x1d, 0x66, 0x31, 0xa5, 0xa4, 0x1b, 0xb0, 0x25, 0x2e, 0xd1, 0xa9, 0xb0, - 0x93, 0x99, 0x18, 0x15, 0x2b, 0x75, 0xd8, 0x5c, 0x86, 0xc2, 0x5d, 0x61, 0x28, 0xdc, 0x19, 0xdb, - 0x50, 0x4d, 0x79, 0xd7, 0x13, 0xec, 0xf5, 0xd4, 0x3a, 0x68, 0xe3, 0x55, 0xd0, 0x07, 0x1d, 0x2d, - 0x7b, 0x5d, 0xa9, 0x0d, 0x5c, 0x57, 0xfe, 0x8d, 0x06, 0xd3, 0x03, 0x3e, 0x75, 0x1a, 0x03, 0xc3, - 0x17, 0x0b, 0x9f, 0x80, 0x4a, 0xec, 0x82, 0x7c, 0xe2, 0xb5, 0x0d, 0x34, 0xec, 0xad, 0x66, 0x42, - 0xc4, 0xd4, 0xcc, 0x63, 0xa2, 0xe3, 0xb5, 0x07, 0x8b, 0xb2, 0xa7, 0x15, 0x42, 0x95, 0x65, 0x7f, - 0x1c, 0x50, 0x4c, 0x3b, 0xe4, 0x53, 0x0a, 0x13, 0x0b, 0xf2, 0x6f, 0x35, 0x00, 0xb6, 0xe5, 0x14, - 0x55, 0x14, 0xe8, 0xa3, 0x30, 0xc3, 0x6d, 0xe4, 0x18, 0xbb, 0xae, 0xd8, 0xa1, 0x76, 0xd5, 0x84, - 0x6a, 0x0c, 0xf1, 0x2e, 0x76, 0x5d, 0x46, 0xfe, 0x20, 0x42, 0xaf, 0xc2, 0x5c, 0x10, 0xfa, 0x36, - 0x89, 0xa2, 0x2c, 0xb5, 0xd4, 0xb4, 0xc4, 0xa5, 0x1a, 0xac, 0xc3, 0xdc, 0xe1, 0x11, 0xdf, 0xe0, - 0x65, 0x1b, 0x08, 0x73, 0xd5, 0x0f, 0x8f, 0xd8, 0x56, 0x2f, 0x45, 0xbf, 0x01, 0x0b, 0xd4, 0xa7, - 0xd8, 0xb5, 0xc2, 0xc0, 0x4e, 0xb5, 0xf0, 0xd4, 0xcc, 0x11, 0xc7, 0x9a, 0x81, 0xad, 0xda, 0x3c, - 0x8c, 0x8c, 0x2f, 0x42, 0x99, 0x6d, 0x8b, 0xf9, 0x2e, 0x62, 0x0e, 0x8a, 0x9c, 0x82, 0xf3, 0x9f, - 0x37, 0xc5, 0x07, 0x5b, 0xce, 0x24, 0x6b, 0xa4, 0xc5, 0x79, 0xcd, 0x9b, 0x09, 0x20, 0x4e, 0x89, - 0xf7, 0xfb, 0x94, 0x08, 0xce, 0xf2, 0x22, 0x25, 0xbe, 0xc5, 0x00, 0xc6, 0xd7, 0x34, 0x00, 0xd6, - 0xbf, 0x94, 0xd6, 0xcb, 0x50, 0xe4, 0x4f, 0x06, 0x87, 0x16, 0x51, 0xc5, 0x83, 0x29, 0xf0, 0x2c, - 0xcf, 0x8a, 0x9f, 0x42, 0x8c, 0xa4, 0xe3, 0x68, 0x46, 0xd6, 0xc2, 0x14, 0x0f, 0xe5, 0xa3, 0x09, - 0x19, 0x43, 0x1b, 0xff, 0x59, 0x14, 0xaf, 0x87, 0x05, 0x17, 0x8f, 0x36, 0xd0, 0x2b, 0x80, 0xe2, - 0x29, 0xa8, 0x1d, 0x91, 0x52, 0xdb, 0x4c, 0x8c, 0x91, 0xfb, 0xa2, 0x08, 0x7d, 0x12, 0x16, 0x87, - 0xc9, 0xd3, 0x6f, 0x52, 0xe7, 0x87, 0xda, 0xf0, 0x8d, 0xd0, 0x0d, 0xa8, 0x09, 0x85, 0xc4, 0x43, - 0xc8, 0xc2, 0x54, 0x0e, 0x8d, 0xbb, 0xff, 0x02, 0x5c, 0x09, 0xd9, 0x26, 0xb6, 0xb5, 0x6f, 0xb5, - 0xf8, 0x55, 0x80, 0x15, 0x1d, 0x3a, 0x41, 0xc0, 0xc3, 0x41, 0xcf, 0xa3, 0x52, 0xdf, 0x4b, 0x92, - 0x46, 0xdc, 0x16, 0x34, 0x04, 0xc5, 0x26, 0x23, 0x60, 0x59, 0x88, 0xea, 0x80, 0xc5, 0xb4, 0x6c, - 0x6b, 0xa1, 0xfb, 0x05, 0x49, 0x70, 0x9f, 0xf4, 0x33, 0x4d, 0xdf, 0x82, 0xab, 0xaa, 0xe9, 0x3e, - 0x0f, 0x8a, 0x3c, 0x49, 0xb3, 0x3a, 0x2c, 0xec, 0xf1, 0xe6, 0xc5, 0xcc, 0xe0, 0xb7, 0x18, 0x0d, - 0xcf, 0xd9, 0xee, 0x39, 0x54, 0xf4, 0xf0, 0x29, 0xa8, 0x67, 0x7b, 0xe0, 0xf6, 0x20, 0x1a, 0x8b, - 0xc2, 0x85, 0xf9, 0x74, 0x63, 0x66, 0xb3, 0xa2, 0xe1, 0x9b, 0xb0, 0x38, 0xa2, 0x21, 0x33, 0x24, - 0xb9, 0x03, 0x9c, 0x1b, 0x6c, 0xc7, 0x6c, 0xea, 0x31, 0xe3, 0x79, 0xd8, 0xf3, 0xd5, 0x3e, 0x6f, - 0x68, 0xbc, 0x87, 0x0c, 0xc9, 0xfc, 0xbc, 0x4d, 0xa8, 0x15, 0x79, 0x38, 0x88, 0x3a, 0x3e, 0x95, - 0x4d, 0xc4, 0x83, 0x60, 0xbd, 0x4d, 0x68, 0x43, 0x22, 0x04, 0x35, 0x13, 0x4c, 0x7c, 0xd6, 0x63, - 0x05, 0xa1, 0x1f, 0xf8, 0x11, 0xb1, 0xb8, 0xaf, 0x8b, 0x86, 0x55, 0x29, 0x18, 0x75, 0xfc, 0xb3, - 0x27, 0x48, 0xd8, 0xaa, 0x30, 0xaa, 0x07, 0xb6, 0x38, 0x3b, 0x61, 0x37, 0xdd, 0xc3, 0xe4, 0x40, - 0x0f, 0x9b, 0x82, 0x64, 0xb8, 0x87, 0xc0, 0xf7, 0x5d, 0x2b, 0xb2, 0x3b, 0xa4, 0xd5, 0x73, 0x33, - 0x3c, 0x4c, 0x25, 0x3d, 0xec, 0xf9, 0xbe, 0xdb, 0x90, 0x24, 0x71, 0x0f, 0xc6, 0xaf, 0x6b, 0x50, - 0x4d, 0x95, 0x80, 0xb1, 0x2c, 0x8c, 0xc7, 0x04, 0x51, 0x31, 0x26, 0xdd, 0x30, 0xc9, 0xc2, 0x92, - 0xc0, 0x66, 0x02, 0x4d, 0x82, 0xdc, 0x1b, 0x50, 0xe5, 0x29, 0xb5, 0x6c, 0x95, 0x1b, 0x68, 0x95, - 0xb8, 0x96, 0x09, 0x51, 0xfc, 0x5b, 0xd4, 0xa8, 0x8a, 0xd4, 0xc5, 0xf8, 0x9e, 0x06, 0x53, 0x99, - 0x52, 0xb4, 0x31, 0x39, 0xf9, 0x2c, 0xd4, 0x52, 0x9c, 0x58, 0x47, 0x1b, 0x92, 0x99, 0xf9, 0x11, - 0xcc, 0x3c, 0xda, 0x30, 0x27, 0xa3, 0xb4, 0xd7, 0x7f, 0x0a, 0x26, 0x79, 0x74, 0x51, 0x63, 0xe6, - 0x07, 0xb6, 0x9f, 0x7c, 0x53, 0x24, 0x07, 0xad, 0x1e, 0x27, 0x1f, 0xc6, 0x57, 0x4b, 0x50, 0x4d, - 0x21, 0xd1, 0xeb, 0xb0, 0x10, 0x51, 0x3f, 0x24, 0xd6, 0x3e, 0xa6, 0x76, 0x27, 0xad, 0x10, 0x11, - 0x42, 0x66, 0x39, 0x96, 0x5f, 0x50, 0x25, 0xca, 0x7c, 0x93, 0x07, 0x11, 0x6e, 0x45, 0x11, 0xf1, - 0x5a, 0xe9, 0x56, 0x22, 0x2a, 0xcc, 0x49, 0x74, 0x83, 0x78, 0xad, 0xa4, 0xd9, 0x1a, 0xcc, 0x04, - 0x2c, 0x50, 0xf0, 0x97, 0xb6, 0x6d, 0xd9, 0x40, 0x6e, 0x58, 0x24, 0x62, 0xc7, 0x6f, 0x0b, 0xda, - 0x4d, 0xb8, 0x16, 0xe2, 0x03, 0x6a, 0xb5, 0xf6, 0x2d, 0x31, 0x51, 0x97, 0xe0, 0x16, 0x09, 0xd3, - 0x43, 0x89, 0x68, 0xb0, 0xcc, 0xc8, 0xb6, 0xf6, 0xf9, 0x9c, 0x76, 0x38, 0x4d, 0x32, 0xe0, 0x06, - 0x2c, 0xa8, 0x4e, 0xd4, 0x99, 0x8c, 0x6c, 0x2b, 0x42, 0x01, 0x12, 0x6d, 0x1b, 0xe2, 0x7c, 0x46, - 0xb4, 0xf9, 0x3c, 0x5c, 0xc9, 0x0e, 0xdc, 0x25, 0x5d, 0xca, 0xd2, 0x1d, 0xd9, 0x52, 0xc4, 0x81, - 0x7a, 0x6a, 0xd4, 0x07, 0x92, 0x40, 0xb4, 0x5f, 0x05, 0xb9, 0x53, 0x4f, 0x8d, 0x26, 0x62, 0x80, - 0xcc, 0xf3, 0xe3, 0x91, 0x5e, 0x87, 0x05, 0x1c, 0x04, 0x6e, 0x7f, 0x58, 0xf4, 0x22, 0x12, 0xcf, - 0x72, 0xec, 0x80, 0xe8, 0x5f, 0x82, 0x69, 0xd1, 0x28, 0xe9, 0xbd, 0x22, 0x1f, 0xc6, 0x31, 0xf0, - 0x70, 0xe7, 0xdd, 0x1e, 0x25, 0x27, 0xe2, 0x15, 0x5d, 0x3a, 0x4a, 0x88, 0xce, 0x1f, 0x30, 0x24, - 0xcb, 0xfa, 0x62, 0x27, 0x15, 0x8d, 0x1e, 0x27, 0x72, 0x19, 0x28, 0x38, 0xd1, 0x48, 0x89, 0xbf, - 0x06, 0xf3, 0xe9, 0x1e, 0x8e, 0xb1, 0x9b, 0x09, 0x10, 0x28, 0x69, 0xf9, 0x2e, 0x76, 0x45, 0x93, - 0xcf, 0xc2, 0x72, 0xba, 0xc9, 0x80, 0xb8, 0x45, 0x58, 0x58, 0x4c, 0xda, 0x0d, 0x49, 0xdb, 0x1d, - 0x94, 0x9e, 0x38, 0xab, 0xaa, 0xb9, 0x59, 0xc1, 0xbd, 0x08, 0x53, 0x6a, 0xcb, 0x22, 0xc8, 0xe4, - 0x19, 0x95, 0x04, 0x0a, 0x22, 0xb6, 0xca, 0x75, 0x42, 0x9f, 0xd2, 0x78, 0x7c, 0x5d, 0xae, 0x72, - 0x12, 0x2a, 0xc8, 0x7e, 0x1e, 0x2e, 0x0f, 0xbe, 0x3a, 0x4b, 0x33, 0x30, 0x23, 0x4c, 0x24, 0x18, - 0x7c, 0x37, 0xad, 0x22, 0xd9, 0x7b, 0x30, 0x21, 0x6e, 0x65, 0x93, 0xe2, 0x50, 0xed, 0x09, 0xe5, - 0xb1, 0x67, 0x2c, 0x5e, 0x32, 0xbe, 0xaa, 0x41, 0x59, 0xbd, 0x2b, 0x41, 0x97, 0x21, 0xe7, 0x07, - 0xf2, 0xcd, 0x75, 0xe6, 0xd4, 0x22, 0xe7, 0x07, 0x67, 0x2e, 0x87, 0xca, 0x6c, 0x58, 0x0b, 0x67, - 0xd8, 0xb0, 0x1a, 0x3f, 0xc9, 0x41, 0xe5, 0xc1, 0x91, 0x6d, 0x73, 0x75, 0xa1, 0x6b, 0x99, 0xa7, - 0xdf, 0x19, 0x36, 0xc4, 0x03, 0xef, 0x53, 0x2e, 0x46, 0x2e, 0x0f, 0x3d, 0x73, 0x4e, 0x3d, 0x97, - 0xba, 0x06, 0xd5, 0xa8, 0xe3, 0x87, 0xd4, 0x4a, 0x3d, 0x74, 0x36, 0x81, 0x83, 0xf8, 0xa3, 0x7a, - 0xb6, 0xd5, 0xe9, 0xe0, 0xc8, 0xf2, 0x8f, 0x48, 0xe8, 0x62, 0xbe, 0x8b, 0x50, 0xcf, 0x0e, 0x65, - 0xc9, 0xd2, 0x7c, 0x07, 0x47, 0xbb, 0x31, 0x56, 0xd5, 0xfe, 0xa3, 0x15, 0x98, 0x64, 0xed, 0xda, - 0xb6, 0x75, 0xc0, 0x9f, 0x97, 0x8b, 0x2b, 0x7b, 0xe8, 0xe0, 0xe8, 0xae, 0x7d, 0x87, 0xbf, 0x2f, - 0x5f, 0x82, 0x72, 0x8c, 0x15, 0xbe, 0x5d, 0x6a, 0x4b, 0xd4, 0x47, 0xa0, 0xe6, 0xe2, 0x88, 0x27, - 0x5a, 0x5e, 0x9b, 0x1f, 0x01, 0x09, 0x67, 0x9e, 0x64, 0xd0, 0x4d, 0x0e, 0xe4, 0xd9, 0xec, 0x62, - 0xbc, 0xf7, 0xa2, 0xbe, 0x95, 0x6a, 0x21, 0xbd, 0x79, 0x4e, 0xa1, 0x9b, 0xfe, 0x4e, 0xdc, 0xd0, - 0xf8, 0x9c, 0x10, 0xac, 0x98, 0xde, 0x29, 0x69, 0xc7, 0xc8, 0x37, 0xf3, 0xc6, 0xb7, 0xf3, 0x50, - 0x66, 0xcd, 0xf9, 0x19, 0xda, 0xb3, 0xa8, 0x25, 0x95, 0xd3, 0xe7, 0xb3, 0x39, 0xfd, 0x13, 0x75, - 0x32, 0x5c, 0x4c, 0x77, 0x96, 0xff, 0xd1, 0x90, 0x3e, 0xa0, 0x2b, 0x0d, 0x1e, 0xd0, 0x9d, 0xf5, - 0x24, 0x6d, 0xe0, 0x94, 0xac, 0x32, 0xfc, 0x1f, 0x4f, 0xae, 0x41, 0x35, 0x7e, 0xb5, 0x4a, 0xc5, - 0x39, 0x5a, 0xc1, 0x04, 0x05, 0x6a, 0x46, 0x23, 0x94, 0x5b, 0x7d, 0x3a, 0xe5, 0x4e, 0x9e, 0xa2, - 0xdc, 0xaf, 0x6b, 0x42, 0x3d, 0x3c, 0x7f, 0x51, 0x49, 0x83, 0x36, 0xe2, 0x72, 0x86, 0x5f, 0x1e, - 0x8b, 0xa4, 0x61, 0x0d, 0x26, 0x78, 0xd4, 0x54, 0xb7, 0xc4, 0x28, 0x43, 0xc8, 0x1d, 0xd0, 0x94, - 0x14, 0x8c, 0x56, 0x3e, 0xfc, 0xcf, 0x8f, 0xa0, 0xe5, 0xea, 0x51, 0xff, 0x0c, 0xc0, 0x78, 0x1d, - 0x4a, 0xf2, 0xa9, 0x00, 0xd7, 0xd8, 0x89, 0x27, 0x2d, 0x8c, 0xfd, 0x44, 0x0b, 0x30, 0x11, 0xf1, - 0x67, 0xb3, 0xd2, 0x2e, 0xe4, 0x97, 0xf1, 0x16, 0x3f, 0x63, 0xe4, 0xf7, 0x95, 0xd9, 0x2b, 0x72, - 0xed, 0xf1, 0x05, 0x22, 0xb9, 0x4c, 0x81, 0xc8, 0x5f, 0x69, 0x00, 0x62, 0x45, 0xe1, 0x43, 0x9f, - 0x7a, 0xdd, 0xb4, 0x08, 0xa5, 0x80, 0x90, 0x90, 0xa1, 0x24, 0x1b, 0xec, 0x73, 0xbb, 0x15, 0xdf, - 0x16, 0xe5, 0x53, 0xb7, 0x45, 0x83, 0x77, 0x53, 0x85, 0x33, 0xde, 0x4d, 0xbd, 0x26, 0x53, 0x42, - 0x36, 0x43, 0x22, 0x0f, 0x25, 0x13, 0xb9, 0xb1, 0xfd, 0x78, 0x83, 0x61, 0x44, 0x9a, 0xc8, 0x7f, - 0x1a, 0xdb, 0x50, 0x89, 0xe1, 0xc3, 0x17, 0x23, 0xda, 0xe8, 0x8b, 0x11, 0xfe, 0x02, 0x81, 0x26, - 0x02, 0xc5, 0x07, 0xa4, 0x19, 0x19, 0x0d, 0x40, 0xa2, 0xa2, 0x83, 0x8b, 0x44, 0xdd, 0x3e, 0xbc, - 0x92, 0xdc, 0x59, 0x8b, 0x17, 0x85, 0xc9, 0x4e, 0x33, 0x91, 0x5d, 0x7c, 0x71, 0x8d, 0x6a, 0x90, - 0x8b, 0x3b, 0xce, 0xd1, 0xc8, 0xf8, 0x02, 0xcc, 0x66, 0x3a, 0x95, 0x17, 0x8d, 0xf5, 0x6c, 0xaf, - 0x85, 0xc7, 0x77, 0xb0, 0x05, 0xa8, 0xc1, 0xf6, 0x84, 0x0d, 0xc6, 0x64, 0x43, 0x71, 0xb5, 0x0e, - 0x15, 0x96, 0xaf, 0xf1, 0x6b, 0xea, 0x51, 0xab, 0x99, 0xb8, 0xc6, 0x2e, 0x1f, 0xca, 0x5f, 0xc6, - 0x3a, 0xcc, 0x66, 0x7a, 0x91, 0x6c, 0xa4, 0x64, 0xa1, 0x65, 0x64, 0x61, 0xf3, 0xd2, 0xaf, 0xbb, - 0x84, 0x19, 0x50, 0xb3, 0xb9, 0x73, 0x31, 0x65, 0xdc, 0xbf, 0xa5, 0xf1, 0x72, 0xac, 0xd4, 0x28, - 0x17, 0x70, 0x0d, 0x9b, 0xbc, 0xff, 0xe6, 0xf1, 0xef, 0xd4, 0x42, 0xee, 0x7f, 0x14, 0x15, 0xcf, - 0x9b, 0x37, 0x1b, 0x17, 0x59, 0xf1, 0xfc, 0x71, 0x40, 0x41, 0x48, 0x8e, 0x1c, 0xbf, 0x17, 0xa5, - 0x9e, 0xea, 0x0b, 0x5e, 0x74, 0x85, 0x89, 0x1f, 0xea, 0xdf, 0x80, 0x5a, 0x4c, 0x2d, 0x3a, 0x13, - 0x2f, 0xbd, 0xa6, 0x14, 0xf4, 0x51, 0xaa, 0x8c, 0x7a, 0x62, 0xb0, 0x8c, 0xba, 0x14, 0xcf, 0xdc, - 0xf8, 0x81, 0x28, 0xfb, 0xe4, 0x93, 0x3b, 0x6f, 0x39, 0xd7, 0xa1, 0x14, 0xf5, 0x6c, 0x9b, 0xc8, - 0x02, 0x86, 0xb2, 0xa9, 0x3e, 0x2f, 0x64, 0xb2, 0xc6, 0x16, 0x2c, 0xdc, 0x25, 0x54, 0xed, 0xf2, - 0xb8, 0x03, 0x3e, 0xbd, 0xbe, 0x8c, 0x6f, 0x6a, 0xb0, 0x38, 0xd4, 0xcd, 0x79, 0x4b, 0xe6, 0x13, - 0x2c, 0xf8, 0x52, 0xbe, 0x04, 0xe6, 0x4f, 0x3d, 0x06, 0x56, 0x64, 0xc6, 0x5d, 0x58, 0x4a, 0x71, - 0x75, 0xcf, 0x61, 0x19, 0xe1, 0x38, 0x65, 0x1e, 0xc6, 0xb7, 0x34, 0x58, 0x1e, 0xd5, 0xd3, 0x87, - 0x3f, 0xc5, 0xbf, 0x16, 0x85, 0xb4, 0x9b, 0xbe, 0xcc, 0x06, 0xfc, 0x70, 0xcc, 0xaa, 0x48, 0xdb, - 0x0f, 0x42, 0x71, 0x59, 0x2a, 0x38, 0x2a, 0x33, 0x00, 0xbf, 0x23, 0xe5, 0x79, 0x61, 0x10, 0xaa, - 0xf3, 0x33, 0x2b, 0x24, 0xef, 0xcb, 0xc8, 0x53, 0x63, 0xf0, 0xe4, 0x29, 0x4f, 0xaa, 0x1c, 0xa8, - 0xf0, 0xa4, 0x12, 0x55, 0x24, 0x0f, 0x0d, 0x85, 0x51, 0x8a, 0x13, 0xc2, 0x1e, 0x2f, 0xc4, 0xcd, - 0x4c, 0xe5, 0xbc, 0x05, 0x8c, 0x52, 0x67, 0x95, 0x6a, 0xd8, 0xef, 0x88, 0x07, 0x0a, 0x7c, 0x6d, - 0x89, 0x7a, 0xdd, 0x71, 0xe4, 0xf7, 0x69, 0xa8, 0x60, 0xb7, 0xed, 0x87, 0x0e, 0xed, 0x74, 0xf9, - 0x80, 0xb5, 0x8d, 0xe5, 0x84, 0x5a, 0x76, 0x7c, 0x53, 0x51, 0x98, 0x09, 0xf1, 0xd3, 0x54, 0x50, - 0xfd, 0x99, 0x28, 0x22, 0x4e, 0xf8, 0x3c, 0x6f, 0xe1, 0x2c, 0x43, 0xd9, 0x96, 0x9d, 0xc7, 0x39, - 0x8b, 0xfc, 0x66, 0x16, 0x22, 0x4e, 0x51, 0x0f, 0x8f, 0xe2, 0xff, 0xff, 0xc0, 0x01, 0xf7, 0x8f, - 0xf8, 0xf6, 0x53, 0x20, 0xc5, 0x01, 0xb4, 0xd8, 0x23, 0x03, 0x07, 0x89, 0x13, 0xe8, 0xef, 0xe6, - 0x61, 0x72, 0xd3, 0xef, 0x06, 0xd8, 0xa6, 0x82, 0x81, 0xf7, 0x60, 0x9e, 0x84, 0xa1, 0xe5, 0x78, - 0x47, 0xd8, 0x75, 0x5a, 0x56, 0x76, 0xc7, 0x55, 0xdd, 0xf8, 0x48, 0xfa, 0x36, 0x31, 0x6e, 0xb5, - 0x2d, 0xa8, 0x1b, 0x72, 0x37, 0x76, 0xef, 0x92, 0x89, 0x48, 0x38, 0x08, 0x45, 0x2e, 0x5c, 0x61, - 0x5d, 0x07, 0xb2, 0x68, 0xd1, 0x92, 0x39, 0x79, 0x1c, 0x30, 0xc5, 0x59, 0xd5, 0xda, 0xc8, 0x11, - 0x54, 0xa5, 0x63, 0x93, 0xe7, 0xe9, 0x32, 0x94, 0xde, 0xbb, 0x64, 0xd6, 0x49, 0x38, 0x1a, 0x87, - 0x2c, 0x58, 0x64, 0xa3, 0xd9, 0xa2, 0x13, 0xcb, 0xf1, 0xac, 0x20, 0xf4, 0xdb, 0x21, 0x89, 0x22, - 0x79, 0xb2, 0xf5, 0xd2, 0xc8, 0x81, 0xe4, 0xef, 0x6d, 0x6f, 0x4f, 0x52, 0xdf, 0xbb, 0x64, 0xce, - 0x91, 0x70, 0x18, 0x8e, 0x0e, 0x60, 0x99, 0x0d, 0x40, 0x7d, 0xdf, 0xea, 0x62, 0xaf, 0x6f, 0x05, - 0xc4, 0x6b, 0x39, 0x5e, 0xdb, 0xa2, 0x38, 0x3a, 0x8c, 0xe4, 0x76, 0x70, 0x75, 0xe4, 0x18, 0x4d, - 0xdf, 0x7f, 0x80, 0xbd, 0xfe, 0x9e, 0x68, 0xd0, 0x64, 0xf4, 0xf7, 0x2e, 0x99, 0x0b, 0x24, 0x1c, - 0x85, 0xb9, 0x55, 0x92, 0x26, 0x61, 0x5c, 0x85, 0xcb, 0xa7, 0x08, 0xdd, 0x78, 0x11, 0xae, 0x3f, - 0x51, 0x62, 0xc6, 0x35, 0xb8, 0x7a, 0xea, 0x6c, 0x8d, 0xeb, 0x70, 0xed, 0x09, 0xac, 0x1a, 0x5f, - 0x13, 0xff, 0x68, 0x83, 0xd1, 0x28, 0x97, 0x3c, 0x75, 0x6f, 0xbe, 0x06, 0x33, 0x03, 0x3a, 0x77, - 0xd4, 0x55, 0xc9, 0x74, 0x90, 0xe6, 0x72, 0xbb, 0xc5, 0x0f, 0x5f, 0xfc, 0x76, 0x96, 0x54, 0x5c, - 0x9b, 0xd4, 0x24, 0x5c, 0x52, 0x1a, 0x7f, 0x29, 0xee, 0x11, 0x05, 0x17, 0xd2, 0xe1, 0x3e, 0x96, - 0x3d, 0xfb, 0x98, 0x1f, 0x29, 0x7d, 0xe5, 0x54, 0x2f, 0xc2, 0x14, 0xcb, 0xc9, 0x43, 0xd2, 0xc5, - 0x8e, 0xe7, 0x78, 0x6d, 0x59, 0xae, 0xcc, 0x12, 0x75, 0x53, 0xc1, 0xd0, 0x3a, 0xbf, 0x5a, 0x67, - 0x6d, 0x49, 0xda, 0x19, 0x44, 0x94, 0x9a, 0x89, 0x51, 0x8d, 0xd4, 0x5c, 0x13, 0xfa, 0xec, 0xb3, - 0xc6, 0xe9, 0x18, 0x71, 0x9b, 0xa7, 0x26, 0x6b, 0x6f, 0xc3, 0xd2, 0x63, 0xff, 0x0f, 0x1e, 0x9a, - 0x03, 0x3d, 0xf9, 0x7a, 0xe8, 0x87, 0x5d, 0xec, 0xea, 0x97, 0xd0, 0x22, 0xcc, 0x26, 0xd0, 0x3b, - 0x7e, 0x68, 0xf3, 0x12, 0x66, 0x5d, 0x5b, 0x73, 0xe1, 0xca, 0x69, 0xff, 0xf8, 0x8e, 0x75, 0x27, - 0x0b, 0x84, 0x7b, 0x2e, 0x8d, 0xbb, 0x5b, 0x81, 0x2b, 0x09, 0x74, 0x67, 0xe8, 0xff, 0xd7, 0x89, - 0x5b, 0xec, 0x84, 0x42, 0x5c, 0x4e, 0xea, 0xb9, 0xb5, 0x97, 0x01, 0x92, 0x8a, 0x24, 0x34, 0x01, - 0xb9, 0x47, 0xaf, 0xe9, 0x97, 0x50, 0x05, 0x8a, 0x8f, 0x5e, 0x6b, 0x36, 0x77, 0x74, 0x8d, 0x83, - 0x36, 0xf4, 0xdc, 0xda, 0xc7, 0x00, 0x92, 0xca, 0x39, 0x04, 0x30, 0x11, 0x0f, 0x5d, 0x82, 0xfc, - 0x8e, 0x7f, 0xac, 0x6b, 0xa8, 0x0c, 0x85, 0x7b, 0x4e, 0xbb, 0xa3, 0xe7, 0xd6, 0x5e, 0x85, 0x5a, - 0xb6, 0x5c, 0x8e, 0x75, 0xd3, 0xd8, 0xd6, 0x2f, 0xb1, 0xbf, 0xe6, 0xa6, 0xae, 0xf1, 0x9b, 0xf2, - 0x4d, 0x71, 0x53, 0xde, 0xd0, 0x73, 0x6b, 0x8f, 0xa0, 0x9a, 0x2a, 0xbd, 0x62, 0xbc, 0x3e, 0xf4, - 0xe9, 0x4d, 0xd7, 0xf5, 0x8f, 0x49, 0x6b, 0xd7, 0x63, 0x60, 0x21, 0xb2, 0x18, 0x74, 0xd3, 0xed, - 0xfa, 0x11, 0xe5, 0x08, 0x0d, 0xd5, 0x61, 0x2e, 0x85, 0xe0, 0xf7, 0xea, 0x1c, 0x93, 0x5b, 0xb3, - 0x21, 0xb7, 0x1b, 0x30, 0x0e, 0xf7, 0x7a, 0x54, 0xb0, 0xba, 0x45, 0x5c, 0xc1, 0x2a, 0x17, 0x77, - 0x0e, 0x4d, 0x42, 0x59, 0x9d, 0xed, 0xe8, 0x79, 0x36, 0xaf, 0x6d, 0x2f, 0x22, 0x21, 0xd5, 0x0b, - 0x68, 0x16, 0xa6, 0x07, 0x14, 0xa1, 0x17, 0x11, 0x82, 0x1a, 0xe7, 0x5a, 0xb9, 0x61, 0xa4, 0x4f, - 0xac, 0xad, 0x43, 0x25, 0x3e, 0xea, 0x62, 0x3d, 0x3f, 0xf4, 0x3d, 0x22, 0x84, 0xc8, 0x49, 0x74, - 0x8d, 0x0d, 0xa2, 0x1a, 0x08, 0xe9, 0x64, 0xff, 0xb3, 0x29, 0xe3, 0x6b, 0xf7, 0xe0, 0x40, 0xbf, - 0xc4, 0x5a, 0xdf, 0xc1, 0xbc, 0x09, 0xc0, 0x44, 0x83, 0x86, 0x4c, 0x75, 0xb9, 0xb5, 0xdf, 0xd7, - 0x60, 0x42, 0xfe, 0x7b, 0x53, 0xde, 0x93, 0xf8, 0xad, 0x5f, 0x42, 0xf3, 0x30, 0xd3, 0x6c, 0xee, - 0x88, 0xbb, 0xf7, 0x78, 0x16, 0x5c, 0x1e, 0xfc, 0xd8, 0x56, 0x0e, 0x19, 0x63, 0x72, 0xac, 0xc1, - 0x83, 0xf8, 0xb2, 0xbc, 0xb1, 0xd7, 0x8b, 0x3a, 0xa4, 0xa5, 0xe7, 0x99, 0xf5, 0xc4, 0xfd, 0x8c, - 0xf8, 0x17, 0x75, 0x7a, 0x01, 0x2d, 0xc1, 0x7c, 0xba, 0xcb, 0x2d, 0xff, 0xa1, 0x4f, 0x3b, 0x8e, - 0xd7, 0xd6, 0x8b, 0x6b, 0x37, 0xa0, 0x74, 0xfb, 0x84, 0x86, 0x78, 0x37, 0x10, 0x93, 0xf7, 0x03, - 0xfd, 0x12, 0xd2, 0x61, 0x92, 0x25, 0xba, 0xbb, 0x6e, 0x8b, 0xef, 0x81, 0x75, 0x6d, 0xcd, 0x80, - 0x99, 0xa1, 0x55, 0x9a, 0x99, 0xc1, 0x66, 0x68, 0x7f, 0xf2, 0x0d, 0xeb, 0x17, 0xfc, 0x50, 0xbf, - 0x74, 0xeb, 0xa5, 0x7f, 0xf8, 0xa3, 0xb2, 0xf6, 0x83, 0x0f, 0x5e, 0xd0, 0x7e, 0xfc, 0xc1, 0x0b, - 0xda, 0x4f, 0x3f, 0x78, 0x41, 0xfb, 0xbd, 0x7f, 0x7d, 0xe1, 0x12, 0xe8, 0x7e, 0xd8, 0x5e, 0xa7, - 0xce, 0xe1, 0xd1, 0xfa, 0xe1, 0x11, 0xff, 0x47, 0xdb, 0xfb, 0x13, 0xfc, 0xcf, 0xeb, 0xff, 0x1b, - 0x00, 0x00, 0xff, 0xff, 0x73, 0x32, 0xfb, 0x90, 0xec, 0x5b, 0x00, 0x00, + // 6370 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0x5b, 0x6c, 0x24, 0xd9, + 0x59, 0xf0, 0x54, 0x5f, 0xdc, 0xdd, 0x5f, 0xdb, 0xed, 0xf2, 0xf1, 0xad, 0xed, 0x99, 0xd9, 0xf1, + 0xd4, 0x66, 0x76, 0x1d, 0x27, 0xeb, 0xcd, 0x7a, 0x77, 0x73, 0xf9, 0x93, 0x3f, 0xd9, 0x19, 0x7b, + 0x2e, 0xde, 0xf1, 0x8c, 0xad, 0xea, 0xde, 0x59, 0x56, 0x90, 0x54, 0x8e, 0xab, 0x8f, 0xbb, 0x4b, + 0xae, 0xae, 0xaa, 0xad, 0x3a, 0x6d, 0xbb, 0x83, 0x90, 0x58, 0x05, 0x90, 0x22, 0x21, 0x2e, 0x51, + 0xa4, 0x20, 0x11, 0x21, 0xf1, 0x10, 0x89, 0xf0, 0x86, 0x78, 0x01, 0xf2, 0x80, 0x90, 0xf2, 0x10, + 0x10, 0x51, 0x22, 0x21, 0x14, 0x04, 0x0f, 0xc0, 0x22, 0xf1, 0xcc, 0x0b, 0x42, 0x3c, 0x20, 0xd0, + 0xb9, 0xd5, 0xa5, 0xbb, 0xc7, 0xe3, 0xe9, 0xb1, 0x67, 0x03, 0x4f, 0xee, 0xfa, 0xbe, 0xef, 0x9c, + 0xf3, 0x9d, 0xef, 0x76, 0xbe, 0x73, 0xce, 0x77, 0x0c, 0x53, 0x87, 0x47, 0x61, 0x60, 0x07, 0xfb, + 0xeb, 0x41, 0xe8, 0x53, 0x1f, 0x95, 0xe4, 0xe7, 0xf2, 0x64, 0x97, 0x50, 0xac, 0xc0, 0xcb, 0x53, + 0x24, 0x0c, 0xfd, 0x30, 0xfe, 0x9c, 0x6b, 0xfb, 0x6d, 0x9f, 0xff, 0x7c, 0x95, 0xfd, 0x92, 0xd0, + 0xe9, 0xb0, 0x17, 0x51, 0xfe, 0x53, 0x02, 0x6a, 0x2d, 0x82, 0x5b, 0xae, 0x6f, 0x1f, 0xaa, 0x5e, + 0x68, 0x88, 0x6d, 0xa2, 0x7a, 0x31, 0x5a, 0x00, 0x77, 0x09, 0x35, 0xc9, 0xfb, 0x3d, 0x12, 0x51, + 0xb4, 0x06, 0x25, 0xdb, 0xf7, 0x28, 0x39, 0xa1, 0x75, 0x6d, 0x45, 0x5b, 0xad, 0x6e, 0xe8, 0xeb, + 0x8a, 0xb5, 0x4d, 0x01, 0x37, 0x15, 0x01, 0xd2, 0x21, 0x7f, 0x48, 0xfa, 0xf5, 0xdc, 0x8a, 0xb6, + 0x3a, 0x69, 0xb2, 0x9f, 0xa8, 0x0e, 0xa5, 0x23, 0x12, 0x46, 0x8e, 0xef, 0xd5, 0xf3, 0x2b, 0xda, + 0x6a, 0xc1, 0x54, 0x9f, 0xc6, 0x87, 0x1a, 0x54, 0xf9, 0x30, 0x51, 0xe0, 0x7b, 0x11, 0x41, 0xaf, + 0xc1, 0x64, 0x48, 0xda, 0x8e, 0xef, 0x59, 0x7c, 0x4e, 0x72, 0xb0, 0xda, 0xba, 0x9a, 0xe1, 0x6d, + 0xf6, 0xd7, 0xac, 0x0a, 0x1a, 0xfe, 0x81, 0x5e, 0x86, 0xa2, 0xa0, 0xcd, 0x71, 0xda, 0x99, 0x98, + 0xb1, 0xfb, 0xa4, 0x2f, 0xc8, 0x05, 0x1e, 0xcd, 0x41, 0xf1, 0x08, 0xbb, 0x3d, 0xc2, 0x79, 0x98, + 0x34, 0xc5, 0x07, 0xba, 0x0c, 0x15, 0xcf, 0xa7, 0xd6, 0x81, 0xdf, 0xf3, 0x5a, 0xf5, 0xc2, 0x8a, + 0xb6, 0x5a, 0x36, 0xcb, 0x9e, 0x4f, 0xef, 0xb0, 0x6f, 0xf4, 0x45, 0x98, 0x26, 0x27, 0xc4, 0xb6, + 0x5a, 0x84, 0x62, 0xc7, 0x8d, 0xac, 0xa3, 0x8d, 0xfa, 0x04, 0x1f, 0x65, 0x21, 0x1e, 0xe5, 0xf6, + 0x09, 0xb1, 0xb7, 0x04, 0xfa, 0xd1, 0x86, 0x39, 0x45, 0xd2, 0x9f, 0x6f, 0x17, 0xca, 0x45, 0x7d, + 0xc2, 0xf8, 0x77, 0x0d, 0xaa, 0x0d, 0x1b, 0x7b, 0xe3, 0x08, 0xf3, 0x32, 0x54, 0x22, 0x8a, 0x43, + 0x6a, 0x25, 0x22, 0x2d, 0x73, 0xc0, 0x7d, 0xd2, 0x67, 0x33, 0x72, 0x9d, 0xae, 0x43, 0xf9, 0x8c, + 0xa6, 0x4c, 0xf1, 0x91, 0x96, 0x76, 0x21, 0x23, 0x6d, 0xb4, 0x04, 0xe5, 0x43, 0xd2, 0xb7, 0x7c, + 0xcf, 0xed, 0xd7, 0x8b, 0x7c, 0xaa, 0xa5, 0x43, 0xd2, 0xdf, 0xf5, 0x5c, 0xae, 0xa2, 0x90, 0x30, + 0x3a, 0xc2, 0x67, 0x58, 0x36, 0xd5, 0x27, 0x5a, 0x84, 0x12, 0xf1, 0x5a, 0x7c, 0xfc, 0x12, 0x1f, + 0x7f, 0x82, 0x78, 0x2d, 0x36, 0xfa, 0x35, 0xa8, 0x46, 0xb8, 0x1b, 0xb8, 0xc4, 0x8a, 0x28, 0x09, + 0xea, 0x65, 0xce, 0x03, 0x08, 0x50, 0x83, 0x92, 0xc0, 0xf8, 0x6d, 0x0d, 0x26, 0xc5, 0xbc, 0xc7, + 0xd7, 0xee, 0x0d, 0x28, 0x06, 0xd8, 0x09, 0xa3, 0x7a, 0x6e, 0x25, 0xbf, 0x5a, 0xdd, 0x98, 0x4e, + 0xb4, 0x7b, 0xb4, 0x87, 0x9d, 0xd0, 0x14, 0xd8, 0xc4, 0x08, 0xf2, 0xa7, 0x1b, 0x81, 0xf1, 0x9f, + 0x45, 0x98, 0xde, 0x0b, 0xc9, 0x71, 0xe8, 0x50, 0x32, 0x8e, 0x3e, 0x5e, 0x85, 0x4a, 0xb7, 0x47, + 0x31, 0x75, 0x7c, 0x4f, 0xf1, 0x94, 0x0c, 0xf6, 0x40, 0x62, 0xcc, 0x84, 0x06, 0x5d, 0x87, 0xc9, + 0x20, 0x74, 0xba, 0x38, 0xec, 0x5b, 0xcc, 0xd9, 0xa4, 0xf1, 0x55, 0x25, 0x6c, 0xc7, 0xb7, 0x0f, + 0xd1, 0x8b, 0x30, 0x25, 0x74, 0x9c, 0x55, 0xdb, 0x24, 0x07, 0x3e, 0x4a, 0x74, 0xc7, 0xda, 0x5b, + 0x94, 0xba, 0x5c, 0x77, 0x05, 0xb3, 0xc4, 0xbe, 0x9b, 0xd4, 0x45, 0x1b, 0x30, 0x1f, 0x1d, 0x3a, + 0x81, 0x65, 0xfb, 0x5e, 0x44, 0x43, 0xec, 0x78, 0xd4, 0xb2, 0x3b, 0xc4, 0x3e, 0x94, 0x9a, 0x9c, + 0x65, 0xc8, 0xcd, 0x18, 0xb7, 0xc9, 0x50, 0xe8, 0xe7, 0x61, 0x36, 0x20, 0x51, 0xe4, 0x74, 0x9d, + 0x88, 0x3a, 0xb6, 0x85, 0x6d, 0x31, 0xa3, 0xd2, 0x4a, 0x7e, 0xb5, 0xb6, 0xb1, 0x16, 0xcf, 0x68, + 0x40, 0x54, 0xeb, 0x7b, 0x49, 0x9b, 0x9b, 0xbc, 0x89, 0x89, 0x82, 0x41, 0x50, 0xc4, 0x78, 0xa5, + 0x27, 0x9e, 0x15, 0x39, 0x5f, 0x23, 0xdc, 0x2c, 0x0a, 0x66, 0x89, 0x9e, 0x78, 0x0d, 0xe7, 0x6b, + 0x04, 0x19, 0x30, 0x75, 0xe0, 0x87, 0x56, 0x2f, 0x68, 0x61, 0x4a, 0x2c, 0x1a, 0xd5, 0x2b, 0x1c, + 0x5f, 0x3d, 0xf0, 0xc3, 0x77, 0x38, 0xac, 0x19, 0x31, 0x9a, 0xae, 0xe3, 0x59, 0xb6, 0xdf, 0xed, + 0x3a, 0x94, 0xd1, 0x80, 0xa0, 0xe9, 0x3a, 0xde, 0x26, 0x87, 0x35, 0x23, 0xb4, 0x0a, 0x7a, 0x2f, + 0x22, 0x16, 0x8e, 0xfa, 0x9e, 0x2d, 0x29, 0xeb, 0x55, 0x3e, 0xdd, 0x5a, 0x2f, 0x22, 0x37, 0x19, + 0x58, 0xd0, 0xa2, 0x15, 0xa8, 0x46, 0xc4, 0xf6, 0xbd, 0x16, 0x0e, 0x1d, 0x12, 0xd5, 0x27, 0x57, + 0xf2, 0x4c, 0xfe, 0x29, 0x10, 0xba, 0x02, 0x40, 0x43, 0xe6, 0x16, 0xc4, 0x0a, 0xec, 0xfa, 0x94, + 0x88, 0x01, 0x34, 0xec, 0xef, 0x7a, 0x64, 0xcf, 0xe6, 0xdc, 0xe0, 0x93, 0x14, 0x37, 0x35, 0xc9, + 0x0d, 0x3e, 0x89, 0xb9, 0x79, 0x0b, 0xa6, 0x71, 0x14, 0x91, 0x90, 0x4d, 0xdf, 0x72, 0xc9, 0x11, + 0x71, 0xeb, 0xd3, 0x2b, 0xda, 0x6a, 0x6d, 0x63, 0x31, 0x96, 0xe4, 0x4d, 0x85, 0xdf, 0x61, 0x68, + 0xb3, 0x86, 0x33, 0xdf, 0xc6, 0x3e, 0xcc, 0x0c, 0xc9, 0x16, 0x2d, 0xc3, 0x42, 0xe3, 0xfe, 0xf6, + 0x9e, 0xb5, 0x77, 0xbb, 0xd1, 0xd8, 0x7e, 0xb0, 0xdd, 0x68, 0x6e, 0x6f, 0x5a, 0x9b, 0xf7, 0x6e, + 0x6f, 0xde, 0xd7, 0x2f, 0xa1, 0x3a, 0xcc, 0x6d, 0xed, 0x8e, 0xc0, 0x68, 0x68, 0x11, 0x66, 0xb7, + 0x76, 0xad, 0xcd, 0xdd, 0x87, 0x8d, 0xa6, 0x79, 0x73, 0xfb, 0x61, 0x53, 0x22, 0x72, 0xc6, 0x7f, + 0x69, 0xa0, 0x27, 0x0a, 0x1d, 0xdf, 0x27, 0x3f, 0x0e, 0x13, 0x1c, 0x3b, 0xec, 0x00, 0xb1, 0xb7, + 0x49, 0x82, 0x61, 0x55, 0xe6, 0x87, 0x55, 0xf9, 0x32, 0xe8, 0x42, 0xf4, 0x29, 0x32, 0xe1, 0x01, + 0x53, 0x3e, 0xd3, 0x40, 0x4c, 0x38, 0x22, 0x1a, 0x17, 0x9f, 0x22, 0x1a, 0x1b, 0x3f, 0x28, 0xc0, + 0x42, 0x4a, 0xc8, 0xcc, 0xf7, 0xfe, 0xaf, 0x84, 0x80, 0x21, 0xb7, 0x9a, 0x18, 0xe9, 0x56, 0x4e, + 0x64, 0x1d, 0x38, 0x61, 0x44, 0x05, 0x1f, 0x25, 0x6e, 0xe9, 0x55, 0x27, 0xba, 0xc3, 0x60, 0x9c, + 0x8f, 0xeb, 0x30, 0x79, 0x8c, 0x99, 0x0a, 0x9c, 0x2e, 0xf1, 0x7b, 0x94, 0x7b, 0x6f, 0xde, 0xac, + 0x32, 0x58, 0x53, 0x80, 0x50, 0x1d, 0x8a, 0x07, 0x7e, 0x68, 0x13, 0xee, 0xb9, 0xe5, 0x5b, 0xb9, + 0xba, 0x66, 0x0a, 0x00, 0x9b, 0x44, 0x48, 0x68, 0x2f, 0xf4, 0x2c, 0xbe, 0xb4, 0x0a, 0xbf, 0x2d, + 0x9b, 0x93, 0x02, 0xf8, 0x88, 0xc3, 0x86, 0x2d, 0xa2, 0x3a, 0xca, 0x22, 0xa6, 0x79, 0x00, 0xb3, + 0xc8, 0x89, 0x13, 0x51, 0xe2, 0xd9, 0xa4, 0x3e, 0x29, 0x7c, 0x9b, 0x83, 0x6f, 0x2b, 0x28, 0x7a, + 0x05, 0x66, 0xb9, 0x44, 0xd8, 0x8a, 0x66, 0x39, 0x07, 0x82, 0x3e, 0x92, 0x2e, 0xac, 0x33, 0x14, + 0x5b, 0xdc, 0xb6, 0x0f, 0x78, 0x8b, 0x08, 0x6d, 0xb1, 0xd9, 0x1d, 0x12, 0xab, 0x17, 0x58, 0x5d, + 0xbf, 0x45, 0xb8, 0x27, 0xd7, 0x36, 0x8c, 0x24, 0xda, 0x65, 0x8d, 0xe3, 0x5d, 0x7c, 0x48, 0xde, + 0x09, 0x1e, 0xf8, 0x2d, 0x62, 0xc2, 0x71, 0xfc, 0xdb, 0xf8, 0x37, 0x0d, 0xea, 0x03, 0x94, 0xf7, + 0x49, 0xdf, 0x24, 0x51, 0xcf, 0xa5, 0xe8, 0x73, 0x50, 0xa0, 0xfd, 0x80, 0x70, 0x2b, 0xaa, 0x6d, + 0xdc, 0x78, 0x5c, 0xd7, 0x71, 0x83, 0x66, 0x3f, 0x20, 0x26, 0x6f, 0x92, 0xe4, 0x27, 0xb9, 0x74, + 0x7e, 0x72, 0x05, 0x2a, 0x89, 0x14, 0xf2, 0x7c, 0x62, 0x09, 0x00, 0xbd, 0x09, 0x8b, 0x6c, 0x96, + 0xa4, 0x65, 0x1d, 0x3b, 0xb4, 0xc3, 0x56, 0x80, 0x03, 0xd7, 0xb1, 0x53, 0x2e, 0x34, 0x27, 0xd0, + 0xef, 0x3a, 0xb4, 0xb3, 0x29, 0x91, 0xcd, 0x08, 0xad, 0x03, 0x5f, 0x14, 0xac, 0x90, 0x44, 0xbe, + 0x7b, 0xe4, 0x78, 0x6d, 0x61, 0x10, 0x22, 0x80, 0xce, 0x30, 0x94, 0xa9, 0x30, 0x8c, 0x5b, 0xe3, + 0x5f, 0x73, 0xb0, 0x38, 0xe4, 0x39, 0xcf, 0x25, 0x80, 0x5c, 0x83, 0xca, 0x40, 0xf0, 0xe0, 0x16, + 0x57, 0xb6, 0x95, 0xad, 0xd4, 0x95, 0xd4, 0xd8, 0x7c, 0x27, 0x85, 0x39, 0x0a, 0xc9, 0x2d, 0xc0, + 0x84, 0xb4, 0xc3, 0x22, 0x8f, 0xf9, 0xf2, 0x0b, 0x5d, 0x05, 0x88, 0x33, 0x3e, 0xe6, 0x28, 0x79, + 0x26, 0x52, 0x95, 0xf2, 0x8d, 0x8c, 0x32, 0xa5, 0xa7, 0x88, 0x32, 0xe8, 0xf3, 0x2c, 0x93, 0x62, + 0xaa, 0x8d, 0xea, 0x65, 0x3e, 0xbb, 0xeb, 0x4f, 0x34, 0x02, 0x53, 0xb5, 0x30, 0xbe, 0xab, 0xc1, + 0x72, 0x8a, 0xca, 0xf4, 0x5d, 0x77, 0x1f, 0x8f, 0x17, 0xa6, 0x86, 0x42, 0x4a, 0x6e, 0x44, 0x48, + 0x19, 0x8a, 0x1b, 0xf9, 0xe1, 0xb8, 0x81, 0xa0, 0x70, 0x48, 0xfa, 0xcc, 0xa0, 0x98, 0x14, 0xf9, + 0x6f, 0xe3, 0xfb, 0x1a, 0x5c, 0x1e, 0xc9, 0xe7, 0x73, 0x31, 0x8a, 0x11, 0x2a, 0xca, 0x3f, 0xcd, + 0x42, 0xf0, 0x47, 0x1a, 0xcc, 0x36, 0x4f, 0xbc, 0x7b, 0x04, 0x87, 0xf4, 0x16, 0xc1, 0x63, 0xed, + 0x72, 0x06, 0x83, 0x7a, 0xee, 0x0c, 0x41, 0x3d, 0x3f, 0x42, 0x03, 0x2f, 0xc1, 0x34, 0x6e, 0x1d, + 0x39, 0x11, 0xb1, 0xe2, 0xd8, 0x2e, 0x17, 0x3f, 0x01, 0xde, 0x11, 0x11, 0xde, 0xf8, 0x91, 0x06, + 0x73, 0x59, 0x9e, 0x9f, 0xc3, 0x96, 0x29, 0xbd, 0xe2, 0xe4, 0xb3, 0x2b, 0xce, 0x08, 0x1d, 0x14, + 0x9e, 0x46, 0x07, 0xff, 0x9c, 0x83, 0x79, 0x9e, 0x8a, 0x36, 0x4f, 0xbc, 0x06, 0xc5, 0xb4, 0x17, + 0x8d, 0xa3, 0x85, 0x6b, 0xa0, 0x24, 0x9e, 0xda, 0x20, 0x81, 0x04, 0xb1, 0x4d, 0xca, 0x22, 0x94, + 0xc4, 0x0c, 0x94, 0x69, 0x4f, 0xf0, 0x09, 0x44, 0x4c, 0xee, 0x36, 0x76, 0x5d, 0x12, 0x5a, 0x42, + 0x47, 0x49, 0xd2, 0x21, 0xc0, 0x0d, 0x06, 0x6d, 0xf2, 0x68, 0x61, 0xf7, 0xc2, 0x90, 0x78, 0x9c, + 0x44, 0x2c, 0xbb, 0x15, 0x09, 0x69, 0x46, 0xe8, 0x35, 0x98, 0x0f, 0xa5, 0xf1, 0xb3, 0x05, 0x88, + 0x05, 0x16, 0x1e, 0x9d, 0x65, 0xee, 0x8d, 0x14, 0x72, 0xfb, 0xe0, 0xa1, 0x4f, 0xf9, 0x32, 0x84, + 0xd6, 0x60, 0x86, 0xaf, 0x97, 0x56, 0x3a, 0x77, 0x15, 0x6b, 0xf1, 0x34, 0x47, 0x34, 0x92, 0xe4, + 0xf5, 0x0b, 0xb0, 0x9c, 0xc4, 0xe8, 0x74, 0xc2, 0xce, 0x6d, 0xae, 0xcc, 0x1b, 0xd5, 0x63, 0x8a, + 0x81, 0xf8, 0x62, 0xfc, 0x38, 0x07, 0x0b, 0x83, 0x32, 0xfe, 0x68, 0xad, 0xe6, 0x06, 0xd4, 0x64, + 0x38, 0xcf, 0x26, 0x3a, 0x53, 0x02, 0xaa, 0x9c, 0xe2, 0x65, 0x98, 0x10, 0x3b, 0x12, 0x2e, 0xf0, + 0x5a, 0x6a, 0xdb, 0x27, 0x77, 0x1d, 0x12, 0x8d, 0xd6, 0xa1, 0xc2, 0x87, 0x72, 0xbc, 0x03, 0x5f, + 0x6e, 0xcd, 0x13, 0xbe, 0x98, 0x0c, 0xb6, 0xbd, 0x03, 0xdf, 0xe4, 0xec, 0xb0, 0x5f, 0xcf, 0x1a, + 0xdc, 0x8d, 0x0f, 0x34, 0x58, 0xe6, 0x12, 0x6d, 0xc8, 0xfd, 0x03, 0xf7, 0xf4, 0xb1, 0x4c, 0x57, + 0x85, 0xd5, 0x5c, 0x12, 0x56, 0xcf, 0x14, 0x31, 0x8c, 0xff, 0xd6, 0xe0, 0xf2, 0x48, 0x1e, 0x9e, + 0x83, 0x6a, 0x5f, 0x86, 0x22, 0x93, 0x25, 0x73, 0xa6, 0xfc, 0x68, 0x59, 0x0b, 0x3c, 0xba, 0x9c, + 0x5e, 0xb7, 0x85, 0x8e, 0x93, 0x35, 0xfb, 0x59, 0x13, 0xf9, 0xef, 0x69, 0x30, 0x25, 0x1c, 0xe4, + 0xc2, 0x16, 0x46, 0xa5, 0x9d, 0x7c, 0x4a, 0x3b, 0x67, 0x33, 0x5e, 0x71, 0xe8, 0x63, 0x4e, 0xec, + 0x3b, 0x9e, 0xeb, 0xb7, 0x8d, 0xbf, 0xd1, 0xa0, 0xa6, 0x78, 0x7d, 0x0e, 0x0a, 0x1a, 0xe6, 0x31, + 0x3f, 0xca, 0xc1, 0x9e, 0x35, 0x7a, 0xb7, 0x61, 0x6a, 0xbb, 0x1b, 0xf8, 0x61, 0xac, 0x80, 0xcc, + 0xa6, 0x48, 0x3b, 0xc3, 0xa6, 0x68, 0x98, 0xd1, 0xdc, 0x08, 0x46, 0x8d, 0xf7, 0xa0, 0xa6, 0x06, + 0x1a, 0x5f, 0x7a, 0x73, 0x69, 0xe9, 0x55, 0xd4, 0x51, 0xd0, 0x37, 0x99, 0x66, 0x5c, 0x82, 0xbd, + 0x5e, 0x70, 0x3e, 0xc7, 0x9c, 0x67, 0x5a, 0xef, 0xb3, 0xeb, 0x49, 0x61, 0x60, 0x3d, 0x31, 0xbe, + 0xa5, 0xc1, 0x74, 0xcc, 0xd4, 0xcf, 0x8c, 0xbd, 0x18, 0x87, 0x30, 0x7d, 0x0b, 0x53, 0xbb, 0x33, + 0xe6, 0x91, 0xf0, 0xa8, 0x58, 0xf7, 0xf8, 0x43, 0xe1, 0x7f, 0xd0, 0x40, 0x4f, 0x46, 0xbb, 0xf0, + 0xb3, 0xc3, 0x67, 0xf4, 0x85, 0x44, 0xd6, 0xc5, 0xd3, 0x65, 0xfd, 0x76, 0xa1, 0x9c, 0xd7, 0x0b, + 0xc6, 0x2f, 0xc2, 0x1c, 0x9f, 0xdc, 0x85, 0xe7, 0xf6, 0x23, 0x42, 0x98, 0xf1, 0xc7, 0x1a, 0xcc, + 0x0f, 0x8c, 0xfe, 0x1c, 0x8c, 0xec, 0x59, 0xf3, 0xf5, 0x3f, 0xd4, 0x60, 0xba, 0x61, 0x63, 0x6f, + 0xdc, 0x13, 0x9b, 0x6b, 0x50, 0xed, 0xe2, 0x93, 0x01, 0x61, 0x41, 0x17, 0x9f, 0x28, 0x51, 0x65, + 0x4e, 0xd9, 0xf3, 0x8f, 0x3b, 0x65, 0x2f, 0xa4, 0x4f, 0xd9, 0x53, 0xc7, 0xe2, 0xc5, 0xf4, 0xb1, + 0xb8, 0xf1, 0x53, 0x0d, 0xf4, 0x84, 0xd9, 0x9f, 0xa5, 0x35, 0xf9, 0x59, 0x83, 0xfe, 0x8f, 0x35, + 0x40, 0xe2, 0x5c, 0x80, 0x8c, 0xab, 0x89, 0x33, 0x19, 0xee, 0x19, 0xd7, 0xb0, 0x57, 0xa0, 0x42, + 0x4f, 0x3c, 0x9e, 0xfa, 0x89, 0xcd, 0x69, 0x7a, 0xe4, 0xe6, 0x89, 0x27, 0x52, 0x3f, 0x2a, 0x7e, + 0x24, 0xdb, 0xd8, 0x62, 0xca, 0x1d, 0xd8, 0x46, 0x30, 0x33, 0xa3, 0xff, 0x05, 0xce, 0xf0, 0x08, + 0x2a, 0x77, 0x37, 0xc7, 0x91, 0xfd, 0x55, 0x80, 0x08, 0x1f, 0x10, 0x2b, 0xf0, 0x1d, 0x8f, 0x4a, + 0xc1, 0x57, 0x18, 0x64, 0x8f, 0x01, 0x8c, 0x0e, 0x00, 0xeb, 0xf7, 0xe2, 0x25, 0x60, 0x7c, 0x5b, + 0x03, 0xb4, 0x45, 0x5c, 0x42, 0x89, 0x89, 0xbd, 0x36, 0x39, 0xf7, 0x6b, 0xb1, 0x94, 0x6b, 0xe6, + 0x07, 0x6f, 0xac, 0x3c, 0x9f, 0x3a, 0x07, 0xf2, 0x0a, 0x4c, 0xdc, 0xf6, 0x81, 0x00, 0xed, 0x7a, + 0x6e, 0xdf, 0xf8, 0x0a, 0xcc, 0x66, 0x18, 0x3b, 0xef, 0x94, 0xe3, 0x4f, 0x35, 0x58, 0xd9, 0x0b, + 0x49, 0x80, 0x43, 0x72, 0xc7, 0xc5, 0x51, 0x87, 0x45, 0xe0, 0xa6, 0x2f, 0x0d, 0xfa, 0xf9, 0xc9, + 0x61, 0x09, 0xca, 0x03, 0x9b, 0xde, 0x52, 0x24, 0xb7, 0xbb, 0xa9, 0x55, 0xb9, 0x98, 0x5d, 0x95, + 0x5d, 0xb8, 0x7e, 0x0a, 0xeb, 0xe7, 0x2d, 0xa9, 0x1f, 0x6b, 0xb0, 0x74, 0x3e, 0x22, 0x4a, 0xcd, + 0x28, 0x97, 0xbd, 0x0e, 0x3d, 0x35, 0xea, 0xa7, 0x84, 0x57, 0x78, 0xac, 0xf0, 0x8a, 0x59, 0xe1, + 0x65, 0x36, 0x3d, 0x13, 0xd9, 0x4d, 0x8f, 0x41, 0x60, 0xf9, 0x79, 0x08, 0xee, 0xcb, 0x30, 0x65, + 0xe2, 0xe3, 0x73, 0xbb, 0xba, 0xaf, 0x41, 0xce, 0x3e, 0xe0, 0xc2, 0xa9, 0x98, 0x39, 0xfb, 0xc0, + 0xf8, 0x75, 0x0d, 0x6a, 0xaa, 0xff, 0x73, 0x66, 0x7d, 0x8c, 0x0b, 0x7a, 0xa3, 0x05, 0xc8, 0xc4, + 0xc7, 0xe7, 0x9d, 0x9a, 0x0e, 0x4e, 0xda, 0x87, 0xd9, 0xcc, 0x28, 0x17, 0x9d, 0x92, 0x1a, 0xbf, + 0xa7, 0x71, 0x2d, 0xee, 0xf5, 0xce, 0x49, 0x8b, 0xa3, 0x25, 0x2b, 0xa6, 0x59, 0x50, 0xd3, 0x64, + 0xed, 0x92, 0xab, 0x25, 0xf6, 0x93, 0x39, 0xc1, 0x81, 0x1f, 0x5a, 0x36, 0x8e, 0xe4, 0x79, 0xd6, + 0xc4, 0x81, 0x1f, 0x6e, 0xe2, 0x88, 0x6d, 0xcb, 0x14, 0x7f, 0xe7, 0x6d, 0xc0, 0x7f, 0xa6, 0x25, + 0x3a, 0x1d, 0x53, 0x00, 0x67, 0x4c, 0xfc, 0x07, 0xd4, 0x8c, 0xe6, 0xc4, 0xfc, 0x0b, 0xf1, 0x2d, + 0xc3, 0xa0, 0x0c, 0x8a, 0x69, 0x19, 0x30, 0xcb, 0xa1, 0xd4, 0x15, 0x37, 0x08, 0x05, 0x93, 0xff, + 0x66, 0x0b, 0x48, 0x86, 0xf7, 0xf3, 0x16, 0x4e, 0x1f, 0x74, 0x13, 0x1f, 0xcb, 0x35, 0xea, 0x22, + 0x1c, 0x3c, 0x3d, 0xdd, 0x42, 0x46, 0xe5, 0xbf, 0x00, 0x33, 0xa9, 0xa1, 0xcf, 0x7b, 0x62, 0xbf, + 0xac, 0xc1, 0xbc, 0x92, 0xdc, 0xf8, 0xd3, 0x3b, 0x83, 0x33, 0x3f, 0x7e, 0x82, 0x18, 0x16, 0x06, + 0x39, 0x38, 0xef, 0x59, 0xfe, 0x48, 0x44, 0xcf, 0xe7, 0x58, 0x0c, 0x94, 0x2e, 0xf9, 0x29, 0x64, + 0x4b, 0x7e, 0x84, 0x60, 0x8a, 0xb1, 0x60, 0x9e, 0xbe, 0x04, 0xc8, 0x68, 0xc3, 0x74, 0x3c, 0x9d, + 0xf1, 0x65, 0x75, 0x1d, 0xf2, 0x87, 0x47, 0x8f, 0x75, 0x56, 0x86, 0x33, 0xbe, 0x21, 0xcc, 0xe3, + 0x23, 0xc9, 0x1a, 0x07, 0xc2, 0xa4, 0xb4, 0x93, 0x0b, 0xcd, 0x13, 0x7f, 0xa2, 0x25, 0x71, 0x64, + 0x5c, 0x63, 0xf9, 0x38, 0x4c, 0x84, 0x8c, 0xbb, 0x91, 0xf7, 0x69, 0x82, 0x6f, 0x49, 0xc0, 0x76, + 0x06, 0x04, 0xdb, 0x1d, 0x2b, 0x6d, 0x3f, 0x15, 0x06, 0xd9, 0x39, 0x37, 0x1b, 0x32, 0x5c, 0x98, + 0xcb, 0xce, 0xe8, 0x42, 0xed, 0xe5, 0x97, 0x60, 0xe9, 0x1d, 0x8f, 0xed, 0x6d, 0xb6, 0x48, 0x44, + 0x43, 0xbf, 0xff, 0x7c, 0x4d, 0x86, 0xe5, 0x7a, 0xa3, 0x86, 0x3f, 0x6f, 0x33, 0xf9, 0x2a, 0x5c, + 0x36, 0x49, 0xdb, 0x89, 0x28, 0x09, 0xd9, 0xf6, 0x75, 0x77, 0x3f, 0x22, 0xe1, 0x11, 0x09, 0xc7, + 0x99, 0xe7, 0x3c, 0x4c, 0x74, 0xf1, 0x09, 0xcb, 0x5b, 0x45, 0x92, 0x5c, 0xec, 0xe2, 0x93, 0x66, + 0x64, 0xbc, 0x01, 0x57, 0x46, 0x8f, 0x20, 0xa7, 0x12, 0xf3, 0xa5, 0x65, 0x73, 0xd0, 0x3a, 0xbf, + 0xa0, 0xb8, 0x20, 0xa6, 0x7a, 0xb0, 0x34, 0xa2, 0xfb, 0xd3, 0x38, 0x62, 0x26, 0xec, 0x44, 0x96, + 0xed, 0x12, 0x2c, 0x76, 0x01, 0x65, 0xb3, 0xe4, 0x44, 0xfc, 0x9c, 0xf5, 0xcc, 0xc7, 0x27, 0xc6, + 0x57, 0x60, 0xc9, 0x24, 0x5d, 0x5f, 0x1c, 0x15, 0x5c, 0xc0, 0xb4, 0x36, 0x60, 0x79, 0x54, 0xff, + 0xa7, 0x4a, 0xfa, 0x37, 0x35, 0x58, 0xdc, 0xeb, 0xf4, 0x23, 0xc7, 0xc6, 0xee, 0xb3, 0x9c, 0x90, + 0x8d, 0x66, 0x69, 0x8c, 0x73, 0x31, 0xe3, 0x3d, 0xa8, 0x0f, 0x33, 0x74, 0xaa, 0x6e, 0x62, 0x05, + 0xe4, 0x9e, 0xa0, 0x80, 0xef, 0x68, 0x80, 0x1a, 0x81, 0xeb, 0x50, 0x93, 0x7b, 0xc6, 0x78, 0x27, + 0x81, 0x95, 0x88, 0xf5, 0x90, 0xb8, 0xb3, 0x28, 0x27, 0xe1, 0x40, 0x36, 0xa9, 0xab, 0x00, 0x31, + 0x81, 0x3a, 0x3a, 0xad, 0x28, 0x6c, 0x84, 0x96, 0xa1, 0xe2, 0x44, 0x56, 0x88, 0x8f, 0xad, 0xc3, + 0x23, 0x15, 0x0b, 0x9d, 0xc8, 0xc4, 0xc7, 0xf7, 0x8f, 0x8c, 0x1f, 0x68, 0x30, 0x9b, 0x61, 0x6f, + 0x7c, 0x77, 0x7f, 0x09, 0x0a, 0x2e, 0x39, 0xa0, 0xf2, 0x24, 0xa5, 0xb6, 0x2e, 0xcb, 0xbd, 0x45, + 0xc7, 0x9c, 0x63, 0x8e, 0x47, 0xab, 0x50, 0x0c, 0x9d, 0x76, 0x87, 0xca, 0x13, 0xa4, 0x51, 0x84, + 0x82, 0x00, 0xad, 0xb2, 0xc0, 0xdc, 0xe6, 0xb7, 0x33, 0xe2, 0xa8, 0x6c, 0x80, 0xd6, 0x54, 0x68, + 0xe3, 0x57, 0x34, 0xd0, 0x4d, 0x82, 0x5b, 0xdb, 0x5e, 0x8b, 0x9c, 0x8c, 0x23, 0xe3, 0xf4, 0x06, + 0x39, 0x97, 0xdd, 0x20, 0x27, 0x6b, 0x52, 0xfe, 0x09, 0x6b, 0x92, 0xf1, 0x5b, 0x1a, 0xcc, 0xa4, + 0xd8, 0x18, 0x5f, 0x96, 0x57, 0x01, 0x42, 0x82, 0x5b, 0x96, 0xc3, 0x3a, 0x52, 0xc7, 0x5e, 0xa1, + 0xea, 0x99, 0xb1, 0x24, 0x4a, 0xa4, 0x86, 0x4a, 0x87, 0x63, 0xf3, 0x93, 0x04, 0x46, 0x03, 0x66, + 0x1f, 0x1c, 0xd9, 0xf6, 0x5d, 0x42, 0x6f, 0xf5, 0x79, 0xed, 0xce, 0x39, 0xe4, 0xdf, 0xc6, 0xaf, + 0x69, 0x30, 0x97, 0xed, 0xf5, 0xbc, 0xb7, 0xd5, 0x37, 0xa0, 0xc0, 0xaf, 0xc7, 0x07, 0xe7, 0xc7, + 0x46, 0xe5, 0xf3, 0xe3, 0x68, 0xe3, 0xab, 0xb0, 0x18, 0xf3, 0x21, 0x8b, 0x1f, 0xce, 0x57, 0xfb, + 0xcc, 0x7f, 0xeb, 0xc3, 0x43, 0x9c, 0xf7, 0x74, 0xa5, 0x88, 0xf3, 0xc9, 0x16, 0x47, 0x09, 0xa0, + 0x70, 0xba, 0x00, 0x3e, 0xa8, 0x40, 0x69, 0x33, 0x59, 0xf6, 0x25, 0x37, 0x4e, 0x8b, 0xb3, 0x52, + 0x30, 0xcb, 0x02, 0xb0, 0xdd, 0x42, 0x9f, 0x4e, 0x58, 0x0d, 0x7c, 0xbb, 0x23, 0xbd, 0x74, 0x36, + 0xeb, 0x50, 0xb7, 0x19, 0x2a, 0xe6, 0x97, 0x7d, 0xa0, 0x15, 0x28, 0x04, 0x84, 0xa8, 0x1a, 0xf5, + 0x49, 0x45, 0xbf, 0x47, 0x48, 0x68, 0x72, 0x0c, 0xdf, 0x52, 0x92, 0xb0, 0x2b, 0xb7, 0xe0, 0xfc, + 0x37, 0x7a, 0x15, 0xca, 0x41, 0xe8, 0xf8, 0xa1, 0x43, 0xfb, 0x3c, 0xa7, 0xaa, 0x6d, 0xcc, 0xa6, + 0xa4, 0xdf, 0xed, 0x62, 0xaf, 0xb5, 0x17, 0x3a, 0x66, 0x4c, 0x84, 0xde, 0x82, 0x69, 0x27, 0xf2, + 0x5d, 0x9c, 0x2a, 0x46, 0x2e, 0x0d, 0x14, 0x23, 0x6f, 0x2b, 0xbc, 0x2c, 0x46, 0x76, 0x32, 0xdf, + 0xe8, 0x63, 0x50, 0xe3, 0x47, 0x2e, 0x8e, 0xeb, 0x5a, 0x36, 0xb6, 0x3b, 0x44, 0x56, 0x9a, 0x4c, + 0x7a, 0x3e, 0xbd, 0xe3, 0xb8, 0xee, 0x26, 0x83, 0x71, 0x4d, 0xf7, 0x3d, 0xdb, 0x72, 0xfd, 0xb6, + 0xa8, 0x05, 0x35, 0x4b, 0xec, 0x7b, 0xc7, 0x6f, 0xa3, 0x55, 0xd0, 0x43, 0x62, 0xfb, 0x61, 0x8b, + 0x17, 0x92, 0x5a, 0x11, 0xc5, 0x54, 0x16, 0x83, 0xd6, 0x04, 0xbc, 0xe9, 0x74, 0x49, 0x83, 0x62, + 0x9a, 0xa2, 0x8c, 0x6c, 0xec, 0x09, 0xca, 0x6a, 0x9a, 0x92, 0x2d, 0x22, 0x9c, 0xf2, 0x3a, 0x93, + 0x7a, 0xe0, 0x3a, 0x36, 0xb6, 0x98, 0xf7, 0xca, 0x8a, 0xd0, 0xaa, 0x84, 0xb1, 0x50, 0x81, 0x6e, + 0x40, 0x4d, 0xd4, 0xc2, 0x90, 0x96, 0x25, 0x96, 0x94, 0x29, 0xbe, 0x37, 0x9f, 0x52, 0x50, 0x5e, + 0x28, 0x81, 0x3e, 0x07, 0x4b, 0x6c, 0xb1, 0x23, 0x27, 0xc4, 0xee, 0x71, 0x21, 0xb5, 0x7a, 0xa1, + 0x90, 0x56, 0x57, 0x55, 0x77, 0x2f, 0x74, 0xf1, 0xc9, 0x6d, 0x85, 0xdf, 0x92, 0xe8, 0x07, 0xbc, + 0x40, 0x03, 0x07, 0x81, 0xeb, 0x10, 0x15, 0x4f, 0xa6, 0xc5, 0xfd, 0x85, 0x04, 0x8a, 0x90, 0xb2, + 0x08, 0x25, 0x8a, 0xa3, 0x43, 0x66, 0x3a, 0xba, 0xa8, 0x39, 0x62, 0x9f, 0xdb, 0x2d, 0xbe, 0xb8, + 0x50, 0xec, 0x12, 0x31, 0x81, 0x19, 0x51, 0xcc, 0xc9, 0x21, 0x9c, 0xfd, 0x4f, 0x02, 0x62, 0x8c, + 0xf6, 0x42, 0x9b, 0x58, 0xed, 0xd0, 0xef, 0x05, 0x16, 0xc5, 0xed, 0x3a, 0xe2, 0x86, 0xac, 0x2b, + 0xcc, 0x5d, 0x86, 0x68, 0xe2, 0x36, 0xfa, 0x2c, 0x4c, 0xb5, 0x9c, 0xe8, 0xd0, 0x3a, 0xe8, 0xb9, + 0xae, 0xe5, 0x07, 0xb4, 0x3e, 0xcb, 0x95, 0x3c, 0x17, 0x2b, 0x79, 0xcb, 0x89, 0x0e, 0xef, 0xf4, + 0x5c, 0x77, 0x37, 0xa0, 0x66, 0xb5, 0x95, 0x7c, 0x30, 0x99, 0xb3, 0x45, 0x8c, 0xd0, 0xb0, 0x6f, + 0x85, 0xc2, 0xc5, 0xeb, 0x73, 0x42, 0xe6, 0x4e, 0x64, 0x32, 0xb0, 0x72, 0xfc, 0x37, 0xa0, 0x8a, + 0x03, 0x27, 0xbe, 0x86, 0x99, 0x1f, 0x30, 0xbf, 0x9b, 0x7b, 0xdb, 0xea, 0x1c, 0x13, 0x70, 0xe0, + 0x24, 0xd5, 0x3b, 0xd3, 0xe2, 0xd4, 0x93, 0xc6, 0x7a, 0x58, 0xe0, 0x7a, 0xa8, 0xc5, 0x60, 0xa1, + 0x88, 0xff, 0x07, 0xe2, 0xd1, 0x91, 0xa5, 0xa2, 0xcb, 0x22, 0xf7, 0x8c, 0xf9, 0x75, 0xf5, 0x14, + 0xa9, 0xc9, 0xfe, 0xaa, 0x10, 0x33, 0x49, 0x53, 0x5f, 0x42, 0xd7, 0x9c, 0x4b, 0x4b, 0x08, 0xa6, + 0x5e, 0xe7, 0x51, 0x60, 0x4a, 0x42, 0x1b, 0x1c, 0xc8, 0x44, 0xce, 0x9f, 0x22, 0x08, 0x92, 0x25, + 0x11, 0xfd, 0xe9, 0x89, 0x27, 0xd1, 0xeb, 0x30, 0x3b, 0x20, 0x72, 0x0f, 0x77, 0x49, 0x7d, 0x99, + 0x77, 0x35, 0x93, 0x91, 0xf9, 0x43, 0xdc, 0x25, 0x68, 0x0d, 0x66, 0xf6, 0x7b, 0x51, 0xdf, 0xa2, + 0x9d, 0x90, 0x44, 0x1d, 0xdf, 0x6d, 0x31, 0x93, 0xb9, 0xcc, 0xf3, 0x9f, 0x69, 0x86, 0x68, 0x2a, + 0xf8, 0x83, 0x08, 0x5d, 0x83, 0x2a, 0x4b, 0x22, 0x02, 0x36, 0x41, 0xa7, 0x55, 0x5f, 0x11, 0xef, + 0x63, 0x14, 0x68, 0xbb, 0xf5, 0x76, 0xa1, 0x5c, 0xd0, 0x8b, 0xcc, 0x82, 0x71, 0xcb, 0x7a, 0xbf, + 0xe7, 0x87, 0xbd, 0xae, 0xf1, 0x8f, 0x39, 0x28, 0xab, 0x75, 0x67, 0xa8, 0xc4, 0x50, 0x1b, 0x2e, + 0x31, 0xbc, 0x0e, 0x93, 0xbc, 0xfe, 0x29, 0x7b, 0xc2, 0x5d, 0x65, 0x30, 0xa5, 0x8d, 0xe1, 0x78, + 0x98, 0xae, 0xcf, 0x2a, 0x64, 0xeb, 0xb3, 0xd2, 0x2f, 0x37, 0x8a, 0xd9, 0x97, 0x1b, 0xab, 0xb2, + 0xd4, 0x8a, 0x97, 0x37, 0x8b, 0x40, 0x54, 0x8d, 0x2d, 0x61, 0x37, 0x10, 0x45, 0x56, 0xcd, 0x7e, + 0x40, 0xd0, 0x27, 0x00, 0x71, 0xca, 0x6c, 0x65, 0x69, 0x89, 0x77, 0x37, 0xcd, 0x30, 0x77, 0x52, + 0xd5, 0xa5, 0xa3, 0x1e, 0x72, 0x94, 0x47, 0x3e, 0xe4, 0x18, 0xaa, 0x1c, 0xaf, 0x0c, 0x57, 0x8e, + 0x0f, 0x3c, 0xf6, 0x80, 0xa1, 0xc7, 0x1e, 0xc6, 0xb7, 0x0b, 0x50, 0x56, 0x17, 0x52, 0xa9, 0xc5, + 0x5f, 0x7b, 0xc2, 0xe2, 0x8f, 0xae, 0xb0, 0x15, 0x81, 0x86, 0x7d, 0xbc, 0xef, 0x12, 0xb9, 0xe0, + 0x24, 0x00, 0xb6, 0x14, 0xe1, 0x7d, 0x3f, 0xa4, 0xf2, 0x9c, 0x49, 0x7c, 0xa0, 0x0d, 0x28, 0xab, + 0x8a, 0xec, 0xa1, 0x9b, 0xd6, 0x77, 0x43, 0x87, 0x12, 0x55, 0x92, 0x6d, 0xc6, 0x74, 0xcc, 0x27, + 0xb0, 0xcb, 0x4c, 0xa2, 0x2f, 0x0b, 0x09, 0x8b, 0xd2, 0x27, 0x62, 0xa7, 0x13, 0x58, 0x5e, 0x4b, + 0x68, 0x4e, 0xe2, 0xd4, 0x17, 0x7a, 0x05, 0xca, 0xea, 0x51, 0xdf, 0x50, 0x31, 0xdc, 0x96, 0x44, + 0x98, 0x31, 0x09, 0xda, 0x82, 0x99, 0x58, 0x98, 0x16, 0x39, 0x09, 0x9c, 0x90, 0xb4, 0x64, 0x39, + 0x5c, 0x3d, 0xb3, 0xc4, 0x30, 0xd1, 0xde, 0x16, 0x78, 0x73, 0xda, 0xce, 0x02, 0x58, 0x1c, 0x62, + 0x26, 0x93, 0x9c, 0xd1, 0x97, 0x79, 0x0f, 0x73, 0xe9, 0xab, 0xd8, 0x87, 0xf2, 0xbc, 0xde, 0xac, + 0xd2, 0xe4, 0x03, 0xdd, 0x83, 0xd9, 0x64, 0x7c, 0xea, 0xfb, 0x96, 0x8b, 0xc3, 0xb6, 0x78, 0x57, + 0x50, 0xdd, 0x58, 0x1a, 0xe2, 0xa0, 0xe9, 0xfb, 0x3b, 0x8c, 0xc0, 0xd4, 0xed, 0x01, 0x08, 0xda, + 0x04, 0x3d, 0x79, 0x7f, 0x73, 0x80, 0x1d, 0x97, 0xb4, 0xf8, 0x7a, 0x93, 0x9e, 0x48, 0xfc, 0x00, + 0xe7, 0x0e, 0xc7, 0x9b, 0xc9, 0x8b, 0x1d, 0x01, 0x30, 0xfe, 0x36, 0x07, 0x53, 0x19, 0xad, 0x64, + 0x72, 0x19, 0x2d, 0x9b, 0xc9, 0x5e, 0x83, 0x6a, 0xba, 0xd8, 0x5e, 0x96, 0x14, 0xd8, 0x49, 0x89, + 0xfd, 0xb0, 0xdb, 0xd5, 0xa1, 0x24, 0x5d, 0x57, 0xde, 0x28, 0xa9, 0x4f, 0x16, 0xf8, 0xe3, 0xce, + 0x12, 0xf3, 0x16, 0xfe, 0xa7, 0x2b, 0x4c, 0x6c, 0xe3, 0x6f, 0xc2, 0x44, 0x48, 0x70, 0xe4, 0x7b, + 0xd2, 0x0b, 0xaf, 0x8e, 0xb6, 0xa9, 0x75, 0x93, 0x13, 0x99, 0x92, 0xd8, 0x38, 0x86, 0x09, 0x01, + 0x41, 0x55, 0x28, 0xbd, 0xe3, 0x1d, 0x7a, 0xfe, 0xb1, 0xa7, 0x5f, 0x42, 0x35, 0x80, 0xdd, 0x80, + 0xca, 0xaa, 0x51, 0x5d, 0x43, 0x73, 0xa0, 0xa7, 0x0b, 0xbb, 0x99, 0x85, 0xeb, 0x39, 0x84, 0xa0, + 0xd6, 0x20, 0xee, 0x81, 0xe9, 0xbb, 0x2e, 0x69, 0xdd, 0xc2, 0xf6, 0xa1, 0x9e, 0x47, 0x53, 0x50, + 0x31, 0x6d, 0x51, 0x5e, 0x1a, 0xe9, 0x05, 0xb4, 0x08, 0xb3, 0x3b, 0xf8, 0x6b, 0xfd, 0x77, 0x3c, + 0xe7, 0xfd, 0x1e, 0xf1, 0x48, 0x14, 0x71, 0x94, 0x5e, 0x34, 0x56, 0x60, 0x32, 0x6d, 0xb3, 0x4a, + 0x32, 0x5a, 0x92, 0x03, 0xff, 0xbe, 0x06, 0x65, 0x65, 0x9f, 0xe9, 0x8a, 0x5d, 0x2d, 0x53, 0xb1, + 0xab, 0xc2, 0x56, 0x92, 0x40, 0x73, 0x42, 0xb6, 0x6b, 0x5b, 0x83, 0x19, 0x65, 0xd5, 0x0c, 0x6d, + 0x75, 0x70, 0xd4, 0x91, 0x45, 0x03, 0xd3, 0x0a, 0x71, 0x9f, 0xf4, 0xef, 0xe1, 0xa8, 0x83, 0xde, + 0x04, 0xe0, 0x4f, 0x5c, 0xec, 0x0e, 0x76, 0x3c, 0xb9, 0x19, 0x5a, 0x58, 0x8f, 0x1f, 0xc3, 0xbe, + 0x8b, 0x1d, 0x7a, 0xc7, 0x0f, 0x6f, 0x7b, 0x6c, 0x19, 0xac, 0x30, 0xca, 0x4d, 0x46, 0x68, 0x7c, + 0x53, 0x83, 0xe9, 0x01, 0x5f, 0x38, 0xcd, 0x3e, 0xd6, 0x61, 0x16, 0x53, 0x4a, 0xba, 0x01, 0x5b, + 0x03, 0x13, 0x9d, 0x0a, 0x3b, 0x99, 0x89, 0x51, 0xb1, 0x52, 0x87, 0xcd, 0x65, 0x28, 0xdc, 0x15, + 0x86, 0xc2, 0x9d, 0xb1, 0x0d, 0xd5, 0x94, 0x77, 0x3d, 0xc1, 0x5e, 0x4f, 0x2d, 0x94, 0x36, 0x5e, + 0x05, 0x7d, 0xd0, 0xd1, 0xb2, 0xf7, 0x99, 0xda, 0xc0, 0x7d, 0xe6, 0x5f, 0x69, 0x30, 0x3d, 0xe0, + 0x53, 0xa7, 0x31, 0x30, 0x7c, 0xf3, 0xf0, 0x29, 0xa8, 0xc4, 0x2e, 0xc8, 0x27, 0x5e, 0xdb, 0x40, + 0xc3, 0xde, 0x6a, 0x26, 0x44, 0x4c, 0xcd, 0x3c, 0x26, 0x3a, 0x5e, 0x7b, 0xb0, 0x6a, 0x7b, 0x5a, + 0x21, 0x54, 0xdd, 0xf6, 0x27, 0x01, 0xc5, 0xb4, 0x43, 0x3e, 0xa5, 0x30, 0xb1, 0x20, 0xff, 0x5a, + 0x03, 0x60, 0x39, 0xa9, 0x28, 0xb3, 0x40, 0x1f, 0x87, 0x19, 0x6e, 0x23, 0xc7, 0xd8, 0x75, 0x45, + 0x0a, 0xdb, 0x55, 0x13, 0xaa, 0x31, 0xc4, 0xbb, 0xd8, 0x75, 0x19, 0xf9, 0x83, 0x08, 0xbd, 0x0a, + 0x73, 0x41, 0xe8, 0xdb, 0x24, 0x8a, 0xb2, 0xd4, 0x52, 0xd3, 0x12, 0x97, 0x6a, 0xb0, 0x0e, 0x73, + 0x87, 0x47, 0x3c, 0x03, 0xcc, 0x36, 0x10, 0xe6, 0xaa, 0x1f, 0x1e, 0xb1, 0x5c, 0x30, 0x45, 0xbf, + 0x01, 0x0b, 0xd4, 0xa7, 0xd8, 0xb5, 0xc2, 0xc0, 0x4e, 0xb5, 0xf0, 0xd4, 0xcc, 0x11, 0xc7, 0x9a, + 0x81, 0xad, 0xda, 0x3c, 0x8c, 0x8c, 0x2f, 0x43, 0x99, 0xe5, 0xcd, 0x3c, 0x8b, 0x98, 0x83, 0x22, + 0xa7, 0xe0, 0xfc, 0xe7, 0x4d, 0xf1, 0xc1, 0x96, 0x33, 0xc9, 0x1a, 0x69, 0x71, 0x5e, 0xf3, 0x66, + 0x02, 0x88, 0xf7, 0xcc, 0xfb, 0x7d, 0x4a, 0x04, 0x67, 0x79, 0xb1, 0x67, 0xbe, 0xc5, 0x00, 0xc6, + 0xd7, 0x35, 0x00, 0xd6, 0xbf, 0x94, 0xd6, 0xcb, 0x50, 0xe4, 0x6f, 0x0a, 0x87, 0x16, 0x51, 0xc5, + 0x83, 0x29, 0xf0, 0x6c, 0x23, 0x16, 0xbf, 0x95, 0x18, 0x49, 0xc7, 0xd1, 0x8c, 0xac, 0x85, 0x29, + 0x1e, 0xda, 0xb0, 0x26, 0x64, 0x0c, 0x6d, 0xfc, 0x47, 0x51, 0x3c, 0x2f, 0x16, 0x5c, 0x3c, 0xda, + 0x40, 0xaf, 0x00, 0x8a, 0xa7, 0xa0, 0x32, 0x22, 0xa5, 0xb6, 0x99, 0x18, 0x23, 0xf3, 0xa2, 0x08, + 0x7d, 0x1a, 0x16, 0x87, 0xc9, 0xd3, 0x8f, 0x56, 0xe7, 0x87, 0xda, 0xf0, 0x44, 0xe8, 0x06, 0xd4, + 0x84, 0x42, 0xe2, 0x21, 0x64, 0xe5, 0x2a, 0x87, 0xc6, 0xdd, 0x7f, 0x09, 0xae, 0x84, 0x2c, 0xcb, + 0x6d, 0xed, 0x5b, 0x2d, 0x7e, 0x57, 0x60, 0x45, 0x87, 0x4e, 0x10, 0xf0, 0x70, 0xd0, 0xf3, 0xa8, + 0xd4, 0xf7, 0x92, 0xa4, 0x11, 0xd7, 0x09, 0x0d, 0x41, 0xb1, 0xc9, 0x08, 0xd8, 0x36, 0x45, 0x75, + 0xc0, 0x62, 0x5a, 0xb6, 0xb5, 0xd0, 0xfd, 0x82, 0x24, 0xb8, 0x4f, 0xfa, 0x99, 0xa6, 0x6f, 0xc1, + 0x55, 0xd5, 0x74, 0x9f, 0x07, 0x45, 0xbe, 0x8b, 0xb3, 0x3a, 0x2c, 0xec, 0xf1, 0xe6, 0xc5, 0xcc, + 0xe0, 0xb7, 0x18, 0x0d, 0xdf, 0xd4, 0xdd, 0x73, 0xa8, 0xe8, 0xe1, 0x33, 0x50, 0xcf, 0xf6, 0xc0, + 0xed, 0x41, 0x34, 0x16, 0x95, 0x0d, 0xf3, 0xe9, 0xc6, 0xcc, 0x66, 0x45, 0xc3, 0x37, 0x61, 0x71, + 0x44, 0x43, 0x66, 0x48, 0x32, 0x03, 0x9c, 0x1b, 0x6c, 0xc7, 0x6c, 0xea, 0x31, 0xe3, 0x79, 0xd8, + 0xf3, 0x55, 0x9e, 0x37, 0x34, 0xde, 0x43, 0x86, 0x64, 0x7e, 0xde, 0x26, 0xd4, 0x8a, 0x3c, 0x1c, + 0x44, 0x1d, 0x9f, 0xca, 0x26, 0xe2, 0xc5, 0xb0, 0xde, 0x26, 0xb4, 0x21, 0x11, 0x82, 0x9a, 0x09, + 0x26, 0x3e, 0x0c, 0xb2, 0x82, 0xd0, 0x0f, 0xfc, 0x88, 0x58, 0xdc, 0xd7, 0x45, 0xc3, 0xaa, 0x14, + 0x8c, 0x3a, 0x1f, 0xda, 0x13, 0x24, 0x6c, 0x55, 0x18, 0xd5, 0x03, 0x5b, 0x9c, 0x9d, 0xb0, 0x9b, + 0xee, 0x61, 0x72, 0xa0, 0x87, 0x4d, 0x41, 0x32, 0xdc, 0x43, 0xe0, 0xfb, 0xae, 0x15, 0xd9, 0x1d, + 0xd2, 0xea, 0xb9, 0x19, 0x1e, 0xa6, 0x92, 0x1e, 0xf6, 0x7c, 0xdf, 0x6d, 0x48, 0x92, 0xb8, 0x07, + 0xe3, 0x57, 0x35, 0xa8, 0xa6, 0x6a, 0xc4, 0xd8, 0x36, 0x8d, 0xc7, 0x04, 0x51, 0x52, 0x26, 0xdd, + 0x30, 0xd9, 0xa6, 0x25, 0x81, 0xcd, 0x04, 0x9a, 0x04, 0xb9, 0x37, 0xa0, 0xca, 0xf7, 0xdc, 0xb2, + 0x55, 0x6e, 0xa0, 0x55, 0xe2, 0x5a, 0x26, 0x44, 0xf1, 0x6f, 0x51, 0xc4, 0x2a, 0xb6, 0x2e, 0xc6, + 0xf7, 0x35, 0x98, 0xca, 0xd4, 0xaa, 0x8d, 0xc9, 0xc9, 0xe7, 0xa1, 0x96, 0xe2, 0xc4, 0x3a, 0xda, + 0x90, 0xcc, 0xcc, 0x8f, 0x60, 0xe6, 0xd1, 0x86, 0x39, 0x19, 0xa5, 0xbd, 0xfe, 0x33, 0x30, 0xc9, + 0xa3, 0x8b, 0x1a, 0x33, 0x3f, 0x90, 0x7e, 0xf2, 0xa4, 0x48, 0x0e, 0x5a, 0x3d, 0x4e, 0x3e, 0x8c, + 0x0f, 0x4a, 0x50, 0x4d, 0x21, 0xd1, 0xeb, 0xb0, 0x10, 0x51, 0x3f, 0x24, 0xd6, 0x3e, 0xa6, 0x76, + 0x27, 0xad, 0x10, 0x11, 0x42, 0x66, 0x39, 0x96, 0xdf, 0x60, 0x25, 0xca, 0x7c, 0x93, 0x07, 0x11, + 0x6e, 0x45, 0x11, 0xf1, 0x5a, 0xe9, 0x56, 0x22, 0x2a, 0xcc, 0x49, 0x74, 0x83, 0x78, 0xad, 0xa4, + 0xd9, 0x1a, 0xcc, 0x04, 0x2c, 0x50, 0xf0, 0xa7, 0xb8, 0x6d, 0xd9, 0x40, 0x26, 0x2c, 0x12, 0xb1, + 0xe3, 0xb7, 0x05, 0xed, 0x26, 0x5c, 0x0b, 0xf1, 0x01, 0xb5, 0x5a, 0xfb, 0x96, 0x98, 0xa8, 0x4b, + 0x70, 0x8b, 0x84, 0xe9, 0xa1, 0x44, 0x34, 0x58, 0x66, 0x64, 0x5b, 0xfb, 0x7c, 0x4e, 0x3b, 0x9c, + 0x26, 0x19, 0x70, 0x03, 0x16, 0x54, 0x27, 0xea, 0xd0, 0x46, 0xb6, 0x15, 0xa1, 0x00, 0x89, 0xb6, + 0x0d, 0x71, 0x80, 0x23, 0xda, 0x7c, 0x11, 0xae, 0x64, 0x07, 0xee, 0x92, 0x2e, 0x65, 0xdb, 0x1d, + 0xd9, 0x52, 0xc4, 0x81, 0x7a, 0x6a, 0xd4, 0x07, 0x92, 0x40, 0xb4, 0x5f, 0x05, 0x99, 0xa9, 0xa7, + 0x46, 0x13, 0x31, 0x40, 0x1e, 0x04, 0xc4, 0x23, 0xbd, 0x0e, 0x0b, 0x38, 0x08, 0xdc, 0xfe, 0xb0, + 0xe8, 0x45, 0x24, 0x9e, 0xe5, 0xd8, 0x01, 0xd1, 0xbf, 0x04, 0xd3, 0xa2, 0x51, 0xd2, 0x7b, 0x45, + 0xbe, 0x9c, 0x63, 0xe0, 0xe1, 0xce, 0xbb, 0x3d, 0x4a, 0x4e, 0xc4, 0x33, 0xbb, 0x74, 0x94, 0x10, + 0x9d, 0x3f, 0x60, 0x48, 0xb6, 0xeb, 0x8b, 0x9d, 0x54, 0x34, 0x7a, 0x9c, 0xc8, 0x65, 0xa0, 0xe0, + 0x44, 0x23, 0x25, 0xfe, 0x1a, 0xcc, 0xa7, 0x7b, 0x38, 0xc6, 0x6e, 0x26, 0x40, 0xa0, 0xa4, 0xe5, + 0xbb, 0xd8, 0x15, 0x4d, 0x3e, 0x0f, 0xcb, 0xe9, 0x26, 0x03, 0xe2, 0x16, 0x61, 0x61, 0x31, 0x69, + 0x37, 0x24, 0x6d, 0x77, 0x50, 0x7a, 0xe2, 0x30, 0xab, 0xe6, 0x66, 0x05, 0xf7, 0x22, 0x4c, 0xa9, + 0x94, 0x45, 0x90, 0xc9, 0x43, 0x2c, 0x09, 0x14, 0x44, 0x6c, 0x95, 0xeb, 0x84, 0x3e, 0xa5, 0xf1, + 0xf8, 0xba, 0x5c, 0xe5, 0x24, 0x54, 0x90, 0xfd, 0x7f, 0xb8, 0x3c, 0xf8, 0x2c, 0x2d, 0xcd, 0xc0, + 0x8c, 0x30, 0x91, 0x60, 0xf0, 0x61, 0xb5, 0x8a, 0x64, 0xef, 0xc1, 0x84, 0xb8, 0xb6, 0x4d, 0xaa, + 0x47, 0xb5, 0x27, 0xd4, 0xcf, 0x9e, 0xb1, 0xba, 0xc9, 0xf8, 0x40, 0x83, 0xb2, 0x7a, 0x78, 0x82, + 0x2e, 0x43, 0xce, 0x0f, 0xe4, 0xa3, 0xec, 0xcc, 0xa9, 0x45, 0xce, 0x0f, 0xce, 0x5c, 0x2f, 0x95, + 0x49, 0x58, 0x0b, 0x67, 0x48, 0x58, 0x8d, 0x9f, 0xe6, 0xa0, 0xf2, 0xe0, 0xc8, 0xb6, 0xb9, 0xba, + 0xd0, 0xb5, 0xcc, 0xdb, 0xf0, 0x0c, 0x1b, 0xe2, 0x05, 0xf8, 0x29, 0x37, 0x27, 0x97, 0x87, 0xde, + 0x41, 0xa7, 0xde, 0x53, 0x5d, 0x83, 0x6a, 0xd4, 0xf1, 0x43, 0x6a, 0xa5, 0x5e, 0x42, 0x9b, 0xc0, + 0x41, 0xfc, 0xd5, 0x3d, 0x4b, 0x75, 0x3a, 0x38, 0xb2, 0xfc, 0x23, 0x12, 0xba, 0x98, 0x67, 0x11, + 0xea, 0x5d, 0xa2, 0xac, 0x69, 0x9a, 0xef, 0xe0, 0x68, 0x37, 0xc6, 0xaa, 0xc7, 0x01, 0x68, 0x05, + 0x26, 0x59, 0xbb, 0xb6, 0x6d, 0x1d, 0xf0, 0xf7, 0xe7, 0xe2, 0x4e, 0x1f, 0x3a, 0x38, 0xba, 0x6b, + 0xdf, 0xe1, 0x0f, 0xd0, 0x97, 0xa0, 0x1c, 0x63, 0x85, 0x6f, 0x97, 0xda, 0x12, 0xf5, 0x31, 0xa8, + 0xb9, 0x38, 0xe2, 0x1b, 0x2d, 0xaf, 0xcd, 0x8f, 0x80, 0x84, 0x33, 0x4f, 0x32, 0xe8, 0x26, 0x07, + 0xf2, 0xdd, 0xec, 0x62, 0x9c, 0x7b, 0x51, 0xdf, 0x4a, 0xb5, 0x90, 0xde, 0x3c, 0xa7, 0xd0, 0x4d, + 0x7f, 0x27, 0x6e, 0x68, 0x7c, 0x41, 0x08, 0x56, 0x4c, 0xef, 0x94, 0x6d, 0xc7, 0xc8, 0x47, 0xf5, + 0xc6, 0x77, 0xf2, 0x50, 0x66, 0xcd, 0xf9, 0x19, 0xda, 0xb3, 0xa8, 0x25, 0xb5, 0xa7, 0xcf, 0x67, + 0xf7, 0xf4, 0x4f, 0xd4, 0xc9, 0x70, 0xb5, 0xdd, 0x59, 0xfe, 0x89, 0x43, 0xfa, 0x80, 0xae, 0x34, + 0x78, 0x40, 0x77, 0xd6, 0x93, 0xb4, 0x81, 0x53, 0xb2, 0xca, 0xf0, 0xbf, 0x44, 0xb9, 0x06, 0xd5, + 0xf8, 0x59, 0x2b, 0x15, 0xe7, 0x68, 0x05, 0x13, 0x14, 0xa8, 0x19, 0x8d, 0x50, 0x6e, 0xf5, 0xe9, + 0x94, 0x3b, 0x79, 0x8a, 0x72, 0xbf, 0xa1, 0x09, 0xf5, 0xf0, 0xfd, 0x8b, 0xda, 0x34, 0x68, 0x23, + 0x6e, 0x6f, 0xf8, 0xed, 0xb2, 0xd8, 0x34, 0xac, 0xc1, 0x04, 0x8f, 0x9a, 0xea, 0x1a, 0x19, 0x65, + 0x08, 0xb9, 0x03, 0x9a, 0x92, 0x82, 0xd1, 0xca, 0xff, 0x0c, 0x90, 0x1f, 0x41, 0xcb, 0xd5, 0xa3, + 0xfe, 0x5b, 0x80, 0xf1, 0x3a, 0x94, 0xe4, 0x5b, 0x02, 0xae, 0xb1, 0x13, 0x4f, 0x5a, 0x18, 0xfb, + 0x89, 0x16, 0x60, 0x22, 0xe2, 0xef, 0x6a, 0xa5, 0x5d, 0xc8, 0x2f, 0xe3, 0x2d, 0x7e, 0xc6, 0xc8, + 0x2f, 0x34, 0xb3, 0x77, 0xe8, 0xda, 0xe3, 0x2b, 0x48, 0x72, 0x99, 0x0a, 0x92, 0xbf, 0xd0, 0x00, + 0xc4, 0x8a, 0xc2, 0x87, 0x3e, 0xf5, 0x3e, 0x6a, 0x11, 0x4a, 0x01, 0x21, 0x21, 0x43, 0x49, 0x36, + 0xd8, 0xe7, 0x76, 0x2b, 0xbe, 0x4e, 0xca, 0xa7, 0xae, 0x93, 0x06, 0x2f, 0xaf, 0x0a, 0x67, 0xbc, + 0xbc, 0x7a, 0x4d, 0x6e, 0x09, 0xd9, 0x0c, 0x89, 0x3c, 0x94, 0x4c, 0xe4, 0xc6, 0xf2, 0xf1, 0x06, + 0xc3, 0x88, 0x6d, 0x22, 0xff, 0x69, 0x6c, 0x43, 0x25, 0x86, 0x0f, 0xdf, 0x9c, 0x68, 0xa3, 0x6f, + 0x4e, 0xf8, 0x13, 0x05, 0x9a, 0x08, 0x14, 0x1f, 0x90, 0x66, 0x64, 0x34, 0x00, 0x89, 0x92, 0x0f, + 0x2e, 0x12, 0x75, 0x3d, 0xf1, 0x4a, 0x72, 0xa9, 0x2d, 0x9e, 0x1c, 0x26, 0x99, 0x66, 0x22, 0xbb, + 0xf8, 0x66, 0x1b, 0xd5, 0x20, 0x17, 0x77, 0x9c, 0xa3, 0x91, 0xf1, 0x25, 0x98, 0xcd, 0x74, 0x2a, + 0x6f, 0x22, 0xeb, 0xd9, 0x5e, 0x0b, 0x8f, 0xef, 0x60, 0x0b, 0x50, 0x83, 0xe5, 0x84, 0x0d, 0xc6, + 0x64, 0x43, 0x71, 0xb5, 0x0e, 0x15, 0xb6, 0x5f, 0xe3, 0xf7, 0xd8, 0xa3, 0x56, 0x33, 0x71, 0xcf, + 0x5d, 0x3e, 0x94, 0xbf, 0x8c, 0x75, 0x98, 0xcd, 0xf4, 0x22, 0xd9, 0x48, 0xc9, 0x42, 0xcb, 0xc8, + 0xc2, 0xe6, 0xb5, 0x61, 0x77, 0x09, 0x33, 0xa0, 0x66, 0x73, 0xe7, 0x62, 0xea, 0xbc, 0x7f, 0x43, + 0xe3, 0xf5, 0x5a, 0xa9, 0x51, 0x2e, 0xe0, 0x9e, 0x36, 0x79, 0x20, 0xce, 0xe3, 0xdf, 0xa9, 0x95, + 0xde, 0x7f, 0x2f, 0x4a, 0xa2, 0x37, 0x6f, 0x36, 0x2e, 0xb2, 0x24, 0xfa, 0x93, 0x80, 0x82, 0x90, + 0x1c, 0x39, 0x7e, 0x2f, 0x4a, 0xbd, 0xe5, 0x17, 0xbc, 0xe8, 0x0a, 0x13, 0xbf, 0xe4, 0xbf, 0x01, + 0xb5, 0x98, 0x5a, 0x74, 0x26, 0x9e, 0x82, 0x4d, 0x29, 0xe8, 0xa3, 0x54, 0x9d, 0xf5, 0xc4, 0x60, + 0x9d, 0x75, 0x29, 0x9e, 0xb9, 0xf1, 0x43, 0x51, 0x17, 0xca, 0x27, 0x77, 0xde, 0x72, 0xae, 0x43, + 0x29, 0xea, 0xd9, 0x36, 0x91, 0x15, 0x0e, 0x65, 0x53, 0x7d, 0x5e, 0xc8, 0x64, 0x8d, 0x2d, 0x58, + 0xb8, 0x4b, 0xa8, 0xca, 0xf2, 0xb8, 0x03, 0x3e, 0xbd, 0xbe, 0x8c, 0x6f, 0x69, 0xb0, 0x38, 0xd4, + 0xcd, 0x79, 0x4b, 0xe6, 0x53, 0x2c, 0xf8, 0x52, 0xbe, 0x04, 0xe6, 0x4f, 0x3d, 0x06, 0x56, 0x64, + 0xc6, 0x5d, 0x58, 0x4a, 0x71, 0x75, 0xcf, 0x61, 0x3b, 0xc2, 0x71, 0xea, 0x40, 0x8c, 0x6f, 0x6b, + 0xb0, 0x3c, 0xaa, 0xa7, 0x8f, 0x7e, 0x8a, 0x7f, 0x29, 0x2a, 0x6d, 0x37, 0x7d, 0xb9, 0x1b, 0xf0, + 0xc3, 0x31, 0xcb, 0x26, 0x6d, 0x3f, 0x08, 0xc5, 0x6d, 0xaa, 0xe0, 0xa8, 0xcc, 0x00, 0xfc, 0x12, + 0x95, 0xef, 0x0b, 0x83, 0x50, 0x9d, 0x9f, 0x59, 0x21, 0x79, 0x5f, 0x46, 0x9e, 0x1a, 0x83, 0x27, + 0x6f, 0x7d, 0x52, 0xf5, 0x42, 0x85, 0x27, 0xd5, 0xb0, 0x22, 0x79, 0x68, 0x28, 0x8c, 0x52, 0x9c, + 0x10, 0xf6, 0x78, 0xa5, 0x6e, 0x66, 0x2a, 0xe7, 0x2d, 0x60, 0x94, 0x3a, 0xab, 0x54, 0xc3, 0x7e, + 0x57, 0xbc, 0x60, 0xe0, 0x6b, 0x4b, 0xd4, 0xeb, 0x8e, 0x23, 0xbf, 0xcf, 0x42, 0x05, 0xbb, 0x6d, + 0x3f, 0x74, 0x68, 0xa7, 0xcb, 0x07, 0xac, 0x6d, 0x2c, 0x27, 0xd4, 0xb2, 0xe3, 0x9b, 0x8a, 0xc2, + 0x4c, 0x88, 0x9f, 0xa6, 0xc4, 0xea, 0x4f, 0x44, 0x95, 0x71, 0xc2, 0xe7, 0x79, 0x0b, 0x67, 0x19, + 0xca, 0xb6, 0xec, 0x3c, 0xde, 0xb3, 0xc8, 0x6f, 0x66, 0x21, 0xe2, 0x14, 0xf5, 0xf0, 0x28, 0xfe, + 0x07, 0x11, 0x1c, 0x70, 0xff, 0x88, 0xa7, 0x9f, 0x02, 0x29, 0x0e, 0xa0, 0x45, 0x8e, 0x0c, 0x1c, + 0x24, 0x4e, 0xa0, 0xbf, 0x97, 0x87, 0xc9, 0x4d, 0xbf, 0x1b, 0x60, 0x9b, 0x0a, 0x06, 0xde, 0x83, + 0x79, 0x12, 0x86, 0x96, 0xe3, 0x1d, 0x61, 0xd7, 0x69, 0x59, 0xd9, 0x8c, 0xab, 0xba, 0xf1, 0xb1, + 0xf4, 0x6d, 0x62, 0xdc, 0x6a, 0x5b, 0x50, 0x37, 0x64, 0x36, 0x76, 0xef, 0x92, 0x89, 0x48, 0x38, + 0x08, 0x45, 0x2e, 0x5c, 0x61, 0x5d, 0x07, 0xb2, 0xaa, 0xd1, 0x92, 0x7b, 0xf2, 0x38, 0x60, 0x8a, + 0xb3, 0xaa, 0xb5, 0x91, 0x23, 0xa8, 0x52, 0xc8, 0x26, 0xdf, 0xa7, 0xcb, 0x50, 0x7a, 0xef, 0x92, + 0x59, 0x27, 0xe1, 0x68, 0x1c, 0xb2, 0x60, 0x91, 0x8d, 0x66, 0x8b, 0x4e, 0x2c, 0xc7, 0xb3, 0x82, + 0xd0, 0x6f, 0x87, 0x24, 0x8a, 0xe4, 0xc9, 0xd6, 0x4b, 0x23, 0x07, 0x92, 0xbf, 0xb7, 0xbd, 0x3d, + 0x49, 0x7d, 0xef, 0x92, 0x39, 0x47, 0xc2, 0x61, 0x38, 0x3a, 0x80, 0x65, 0x36, 0x00, 0xf5, 0x7d, + 0xab, 0x8b, 0xbd, 0xbe, 0x15, 0x10, 0xaf, 0xe5, 0x78, 0x6d, 0x8b, 0xe2, 0xe8, 0x30, 0x92, 0xe9, + 0xe0, 0xea, 0xc8, 0x31, 0x9a, 0xbe, 0xff, 0x00, 0x7b, 0xfd, 0x3d, 0xd1, 0xa0, 0xc9, 0xe8, 0xef, + 0x5d, 0x32, 0x17, 0x48, 0x38, 0x0a, 0x73, 0xab, 0x24, 0x4d, 0xc2, 0xb8, 0x0a, 0x97, 0x4f, 0x11, + 0xba, 0xf1, 0x22, 0x5c, 0x7f, 0xa2, 0xc4, 0x8c, 0x6b, 0x70, 0xf5, 0xd4, 0xd9, 0x1a, 0xd7, 0xe1, + 0xda, 0x13, 0x58, 0x35, 0xbe, 0x2e, 0xfe, 0x13, 0x07, 0xa3, 0x51, 0x2e, 0x79, 0x6a, 0x6e, 0xbe, + 0x06, 0x33, 0x03, 0x3a, 0x77, 0xd4, 0x55, 0xc9, 0x74, 0x90, 0xe6, 0x72, 0xbb, 0xc5, 0x0f, 0x5f, + 0xfc, 0x76, 0x96, 0x54, 0x5c, 0x9b, 0xd4, 0x24, 0x5c, 0x52, 0x1a, 0x7f, 0x2e, 0xee, 0x11, 0x05, + 0x17, 0xd2, 0xe1, 0x3e, 0x91, 0x3d, 0xfb, 0x98, 0x1f, 0x29, 0x7d, 0xe5, 0x54, 0x2f, 0xc2, 0x14, + 0xdb, 0x93, 0x87, 0xa4, 0x8b, 0x1d, 0xcf, 0xf1, 0xda, 0xb2, 0x9e, 0x99, 0x6d, 0xd4, 0x4d, 0x05, + 0x43, 0xeb, 0xfc, 0x6a, 0x9d, 0xb5, 0x25, 0x69, 0x67, 0x10, 0x51, 0x6a, 0x26, 0x46, 0x35, 0x52, + 0x73, 0x4d, 0xe8, 0xb3, 0xef, 0x1e, 0xa7, 0x63, 0xc4, 0x6d, 0xbe, 0x35, 0x59, 0x7b, 0x1b, 0x96, + 0x1e, 0xfb, 0x8f, 0xf2, 0xd0, 0x1c, 0xe8, 0xc9, 0xd7, 0x43, 0x3f, 0xec, 0x62, 0x57, 0xbf, 0x84, + 0x16, 0x61, 0x36, 0x81, 0xde, 0xf1, 0x43, 0x9b, 0xd7, 0x38, 0xeb, 0xda, 0x9a, 0x0b, 0x57, 0x4e, + 0xfb, 0xcf, 0x78, 0xac, 0x3b, 0x59, 0x41, 0xdc, 0x73, 0x69, 0xdc, 0xdd, 0x0a, 0x5c, 0x49, 0xa0, + 0x3b, 0x43, 0xff, 0xe0, 0x4e, 0xdc, 0x62, 0x27, 0x14, 0xe2, 0x72, 0x52, 0xcf, 0xad, 0xbd, 0x0c, + 0x90, 0x94, 0x2c, 0xa1, 0x09, 0xc8, 0x3d, 0x7a, 0x4d, 0xbf, 0x84, 0x2a, 0x50, 0x7c, 0xf4, 0x5a, + 0xb3, 0xb9, 0xa3, 0x6b, 0x1c, 0xb4, 0xa1, 0xe7, 0xd6, 0x3e, 0x01, 0x90, 0x94, 0xd6, 0x21, 0x80, + 0x89, 0x78, 0xe8, 0x12, 0xe4, 0x77, 0xfc, 0x63, 0x5d, 0x43, 0x65, 0x28, 0xdc, 0x73, 0xda, 0x1d, + 0x3d, 0xb7, 0xf6, 0x2a, 0xd4, 0xb2, 0xf5, 0x74, 0xac, 0x9b, 0xc6, 0xb6, 0x7e, 0x89, 0xfd, 0x35, + 0x37, 0x75, 0x8d, 0xdf, 0x94, 0x6f, 0x8a, 0x9b, 0xf2, 0x86, 0x9e, 0x5b, 0x7b, 0x04, 0xd5, 0x54, + 0x6d, 0x16, 0xe3, 0xf5, 0xa1, 0x4f, 0x6f, 0xba, 0xae, 0x7f, 0x4c, 0x5a, 0xbb, 0x1e, 0x03, 0x0b, + 0x91, 0xc5, 0xa0, 0x9b, 0x6e, 0xd7, 0x8f, 0x28, 0x47, 0x68, 0xa8, 0x0e, 0x73, 0x29, 0x04, 0xbf, + 0x57, 0xe7, 0x98, 0xdc, 0x9a, 0x0d, 0xb9, 0xdd, 0x80, 0x71, 0xb8, 0xd7, 0xa3, 0x82, 0xd5, 0x2d, + 0xe2, 0x0a, 0x56, 0xb9, 0xb8, 0x73, 0x68, 0x12, 0xca, 0xea, 0x6c, 0x47, 0xcf, 0xb3, 0x79, 0x6d, + 0x7b, 0x11, 0x09, 0xa9, 0x5e, 0x40, 0xb3, 0x30, 0x3d, 0xa0, 0x08, 0xbd, 0x88, 0x10, 0xd4, 0x38, + 0xd7, 0xca, 0x0d, 0x23, 0x7d, 0x62, 0x6d, 0x1d, 0x2a, 0xf1, 0x51, 0x17, 0xeb, 0xf9, 0xa1, 0xef, + 0x11, 0x21, 0x44, 0x4e, 0xa2, 0x6b, 0x6c, 0x10, 0xd5, 0x40, 0x48, 0x27, 0xfb, 0xaf, 0x4f, 0x19, + 0x5f, 0xbb, 0x07, 0x07, 0xfa, 0x25, 0xd6, 0xfa, 0x0e, 0xe6, 0x4d, 0x00, 0x26, 0x1a, 0x34, 0x64, + 0xaa, 0xcb, 0xad, 0xfd, 0xae, 0x06, 0x13, 0xf2, 0xff, 0x9f, 0xf2, 0x9e, 0xc4, 0x6f, 0xfd, 0x12, + 0x9a, 0x87, 0x99, 0x66, 0x73, 0x47, 0xdc, 0xbd, 0xc7, 0xb3, 0xe0, 0xf2, 0xe0, 0xc7, 0xb6, 0x72, + 0xc8, 0x18, 0x93, 0x63, 0x0d, 0x1e, 0xc4, 0x97, 0xe5, 0x8d, 0xbd, 0x5e, 0xd4, 0x21, 0x2d, 0x3d, + 0xcf, 0xac, 0x27, 0xee, 0x67, 0xc4, 0xff, 0xb0, 0xd3, 0x0b, 0x68, 0x09, 0xe6, 0xd3, 0x5d, 0x6e, + 0xf9, 0x0f, 0x7d, 0xda, 0x71, 0xbc, 0xb6, 0x5e, 0x5c, 0xbb, 0x01, 0xa5, 0xdb, 0x27, 0x34, 0xc4, + 0xbb, 0x81, 0x98, 0xbc, 0x1f, 0xe8, 0x97, 0x90, 0x0e, 0x93, 0x6c, 0xa3, 0xbb, 0xeb, 0xb6, 0x78, + 0x0e, 0xac, 0x6b, 0x6b, 0x06, 0xcc, 0x0c, 0xad, 0xd2, 0xcc, 0x0c, 0x36, 0x43, 0xfb, 0xd3, 0x6f, + 0x58, 0x3f, 0xe7, 0x87, 0xfa, 0xa5, 0x5b, 0x2f, 0xfd, 0xdd, 0x1f, 0x94, 0xb5, 0x1f, 0x7e, 0xf8, + 0x82, 0xf6, 0x93, 0x0f, 0x5f, 0xd0, 0xfe, 0xe9, 0xc3, 0x17, 0xb4, 0xdf, 0xf9, 0x97, 0x17, 0x2e, + 0x81, 0xee, 0x87, 0xed, 0x75, 0xea, 0x1c, 0x1e, 0xad, 0x1f, 0x1e, 0xf1, 0xff, 0xc4, 0xbd, 0x3f, + 0xc1, 0xff, 0xbc, 0xfe, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xde, 0xaf, 0xf2, 0x6f, 0x0d, 0x5c, + 0x00, 0x00, } func (m *GetRequest) Marshal() (dAtA []byte, err error) { @@ -15038,6 +15050,13 @@ func (m *Context) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.KeyspaceId != 0 { + i = encodeVarintKvrpcpb(dAtA, i, uint64(m.KeyspaceId)) + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x80 + } if m.BusyThresholdMs != 0 { i = encodeVarintKvrpcpb(dAtA, i, uint64(m.BusyThresholdMs)) i-- @@ -20250,6 +20269,9 @@ func (m *Context) Size() (n int) { if m.BusyThresholdMs != 0 { n += 2 + sovKvrpcpb(uint64(m.BusyThresholdMs)) } + if m.KeyspaceId != 0 { + n += 2 + sovKvrpcpb(uint64(m.KeyspaceId)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -34786,6 +34808,25 @@ func (m *Context) Unmarshal(dAtA []byte) error { break } } + case 32: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KeyspaceId", wireType) + } + m.KeyspaceId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.KeyspaceId |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipKvrpcpb(dAtA[iNdEx:]) diff --git a/pkg/mpp/mpp.pb.go b/pkg/mpp/mpp.pb.go index 1866c53..fdf5f66 100644 --- a/pkg/mpp/mpp.pb.go +++ b/pkg/mpp/mpp.pb.go @@ -37,6 +37,7 @@ type TaskMeta struct { LocalQueryId uint64 `protobuf:"varint,7,opt,name=local_query_id,json=localQueryId,proto3" json:"local_query_id,omitempty"` ServerId uint64 `protobuf:"varint,8,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` MppVersion int64 `protobuf:"varint,9,opt,name=mpp_version,json=mppVersion,proto3" json:"mpp_version,omitempty"` + KeyspaceId uint32 `protobuf:"varint,10,opt,name=keyspace_id,json=keyspaceId,proto3" json:"keyspace_id,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -138,6 +139,13 @@ func (m *TaskMeta) GetMppVersion() int64 { return 0 } +func (m *TaskMeta) GetKeyspaceId() uint32 { + if m != nil { + return m.KeyspaceId + } + return 0 +} + type IsAliveRequest struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -697,51 +705,53 @@ func init() { func init() { proto.RegisterFile("mpp.proto", fileDescriptor_819623c7fa76fc55) } var fileDescriptor_819623c7fa76fc55 = []byte{ - // 703 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xcd, 0x6e, 0xd3, 0x4a, - 0x14, 0xbe, 0x8e, 0xf3, 0xe7, 0x13, 0xa7, 0xb7, 0x9d, 0x5b, 0xdd, 0xa6, 0x85, 0x86, 0xd4, 0x62, - 0x91, 0x55, 0x10, 0xad, 0xc4, 0x12, 0x09, 0xda, 0x2e, 0xbc, 0x28, 0x0a, 0xa3, 0xa8, 0x62, 0x67, - 0x4d, 0x3d, 0x43, 0x62, 0xc5, 0xf6, 0xb8, 0x33, 0x13, 0x4b, 0x5d, 0xb3, 0xe0, 0x0d, 0x80, 0x47, - 0x62, 0xc9, 0x23, 0xa0, 0xf2, 0x22, 0x68, 0x66, 0xec, 0xd0, 0x16, 0x2a, 0x60, 0x95, 0xf9, 0xbe, - 0x73, 0x7c, 0xce, 0x37, 0xdf, 0x39, 0x13, 0xf0, 0xb2, 0xa2, 0x98, 0x14, 0x82, 0x2b, 0x8e, 0xdc, - 0xac, 0x28, 0xf6, 0xb6, 0xe7, 0x7c, 0xce, 0x0d, 0x7e, 0xa2, 0x4f, 0x36, 0xb4, 0xb7, 0x15, 0x6b, - 0x2e, 0x66, 0x52, 0x72, 0x51, 0x51, 0x7e, 0xc6, 0x14, 0x29, 0x2e, 0x2c, 0x0a, 0x3e, 0x36, 0xa0, - 0x3b, 0x23, 0x72, 0x79, 0xc6, 0x14, 0x41, 0xbb, 0xd0, 0x95, 0x8a, 0x08, 0x15, 0x29, 0x39, 0x70, - 0x46, 0xce, 0xb8, 0x89, 0x3b, 0x06, 0xcf, 0x24, 0xda, 0x81, 0x8e, 0x22, 0x72, 0x19, 0x25, 0x74, - 0xd0, 0x18, 0x39, 0x63, 0x17, 0xb7, 0x35, 0x0c, 0x29, 0x3a, 0x00, 0xbf, 0x20, 0x42, 0x25, 0x2a, - 0xe1, 0xb9, 0x8e, 0xba, 0x26, 0xda, 0x5b, 0x73, 0x21, 0x45, 0x03, 0xe8, 0x10, 0x4a, 0x05, 0x93, - 0x72, 0xd0, 0x1c, 0x39, 0x63, 0x0f, 0xd7, 0x10, 0x3d, 0x00, 0x6f, 0x4e, 0xd4, 0x82, 0x09, 0xfd, - 0x65, 0xcb, 0x74, 0xec, 0x5a, 0x22, 0xa4, 0x5a, 0xcd, 0xe5, 0x8a, 0x89, 0x2b, 0xad, 0xa6, 0x6d, - 0xd5, 0x18, 0x3c, 0x93, 0xe8, 0x31, 0x6c, 0xa4, 0x3c, 0x26, 0x69, 0x64, 0x13, 0x12, 0x3a, 0xe8, - 0x98, 0x04, 0xdf, 0xb0, 0xaf, 0x35, 0x19, 0x52, 0x5d, 0x5d, 0x32, 0x51, 0xda, 0xea, 0x5d, 0x5b, - 0xdd, 0x12, 0x21, 0x45, 0x8f, 0xa0, 0x97, 0x15, 0x45, 0x54, 0x32, 0x21, 0x13, 0x9e, 0x0f, 0x3c, - 0x23, 0x1b, 0xb2, 0xa2, 0x38, 0xb7, 0x4c, 0xb0, 0x09, 0x1b, 0xa1, 0x7c, 0x91, 0x26, 0x25, 0xc3, - 0xec, 0x72, 0xc5, 0xa4, 0x0a, 0xa6, 0xf0, 0xef, 0x9a, 0x91, 0x05, 0xcf, 0x25, 0x43, 0x0f, 0xc1, - 0x23, 0x25, 0x49, 0x52, 0x72, 0x91, 0x32, 0x63, 0x59, 0x17, 0xff, 0x20, 0xee, 0xf6, 0x68, 0xfc, - 0xd4, 0xe3, 0x7d, 0x03, 0xfe, 0x3b, 0x49, 0x64, 0x41, 0x54, 0xbc, 0xd0, 0x53, 0xa8, 0x3a, 0xa1, - 0x03, 0x68, 0xea, 0x29, 0x99, 0x8a, 0xbd, 0xc3, 0xfe, 0x44, 0xcf, 0xba, 0x9e, 0x12, 0x36, 0x21, - 0xed, 0x3b, 0xcb, 0x63, 0x4e, 0x19, 0x8d, 0x8a, 0x94, 0xd8, 0xe2, 0x3e, 0xee, 0x55, 0xdc, 0x34, - 0x25, 0xb9, 0xf6, 0x5d, 0x25, 0x19, 0xe3, 0x2b, 0x55, 0x4d, 0xa5, 0x86, 0xe8, 0x29, 0x74, 0x04, - 0x9b, 0x27, 0x3c, 0xd7, 0x13, 0x71, 0xc7, 0xbd, 0xc3, 0x9d, 0xc9, 0xcd, 0x45, 0xc1, 0x26, 0x16, - 0xe6, 0x6f, 0x39, 0xae, 0xf3, 0xd0, 0x3e, 0x80, 0x8c, 0x17, 0x2c, 0x23, 0xfa, 0x3a, 0x66, 0x56, - 0x2e, 0xf6, 0x2c, 0x73, 0xce, 0x04, 0x7a, 0x0e, 0x7d, 0xa5, 0xef, 0x1c, 0xd5, 0x75, 0xdb, 0xa6, - 0xee, 0xee, 0xad, 0xba, 0x33, 0x9d, 0x61, 0x8b, 0x4b, 0xec, 0xab, 0x1b, 0x28, 0xc8, 0x60, 0xfb, - 0xb6, 0x11, 0x95, 0xc1, 0x23, 0x68, 0x31, 0x21, 0xb8, 0xa8, 0xac, 0x00, 0x63, 0xc5, 0xa9, 0x66, - 0xb0, 0x0d, 0xa0, 0x23, 0xe8, 0x0b, 0xa6, 0xc4, 0xd5, 0xba, 0x73, 0xc3, 0x74, 0xde, 0x98, 0x54, - 0x7b, 0x6e, 0x3b, 0x60, 0xdf, 0x24, 0xd5, 0xed, 0xde, 0xc0, 0xd6, 0x31, 0xc9, 0x63, 0x96, 0xfe, - 0xa5, 0xeb, 0x6b, 0x39, 0x8d, 0x7b, 0xe4, 0x04, 0xcf, 0x00, 0xdd, 0xac, 0xfc, 0xa7, 0xd7, 0x08, - 0xde, 0x39, 0xb0, 0x7f, 0x2a, 0xb5, 0x27, 0x89, 0x5c, 0x9c, 0x4d, 0xa7, 0xc7, 0x3c, 0xcf, 0x59, - 0xac, 0x5f, 0x50, 0x2d, 0x6f, 0x02, 0x3d, 0xc9, 0x72, 0xca, 0x44, 0x74, 0xbf, 0x4a, 0xb0, 0x19, - 0xe6, 0x35, 0x1f, 0x6a, 0x63, 0x62, 0x96, 0x94, 0xf5, 0x17, 0x8d, 0x5f, 0x7d, 0xe1, 0xd7, 0x39, - 0x1a, 0x05, 0x1f, 0x1c, 0xe8, 0x9f, 0x4d, 0xa7, 0x27, 0x44, 0x91, 0x29, 0x89, 0x97, 0x4c, 0x21, - 0x04, 0x4d, 0x4a, 0xaa, 0x76, 0x3e, 0x36, 0xe7, 0xdf, 0xbb, 0x80, 0xfe, 0x87, 0x76, 0xbc, 0x58, - 0xe5, 0x4b, 0x39, 0x70, 0x47, 0xee, 0xd8, 0xc7, 0x15, 0x32, 0x5b, 0xa4, 0x04, 0x23, 0x59, 0x94, - 0x50, 0xbb, 0x7b, 0x4d, 0xec, 0x59, 0x26, 0xa4, 0x52, 0x6f, 0x6c, 0xfd, 0x58, 0xec, 0x86, 0xd5, - 0x30, 0x78, 0x05, 0x2d, 0xd3, 0x40, 0xeb, 0xd1, 0x1b, 0x6e, 0xf4, 0xb4, 0xb0, 0x39, 0xa3, 0x4d, - 0x70, 0x33, 0x39, 0x37, 0x6a, 0x3c, 0xac, 0x8f, 0x77, 0x5f, 0x9e, 0x7b, 0xf7, 0xe5, 0xbd, 0x0c, - 0x3e, 0x5f, 0x0f, 0x9d, 0x2f, 0xd7, 0x43, 0xe7, 0xeb, 0xf5, 0xd0, 0xf9, 0xf4, 0x6d, 0xf8, 0x0f, - 0x6c, 0x72, 0x31, 0x9f, 0xa8, 0x64, 0x59, 0x4e, 0x96, 0xa5, 0xf9, 0x6f, 0xbc, 0x68, 0x9b, 0x9f, - 0xa3, 0xef, 0x01, 0x00, 0x00, 0xff, 0xff, 0x6e, 0x08, 0x64, 0xab, 0x6b, 0x05, 0x00, 0x00, + // 724 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xcd, 0x6e, 0xdb, 0x38, + 0x10, 0x5e, 0x59, 0xfe, 0xd3, 0x58, 0xce, 0x26, 0xdc, 0x60, 0xe3, 0x64, 0x37, 0x5e, 0x47, 0xd8, + 0x83, 0x4f, 0x5e, 0x6c, 0x02, 0xec, 0x71, 0x81, 0xdd, 0x24, 0x07, 0x1d, 0x52, 0xb8, 0x84, 0x11, + 0xf4, 0x26, 0x30, 0x22, 0x6b, 0x0b, 0x96, 0x44, 0x86, 0xa4, 0x0d, 0xe4, 0xdc, 0x43, 0xdf, 0xa0, + 0xe8, 0xa3, 0xf4, 0x11, 0x7a, 0xec, 0x23, 0x14, 0xe9, 0x8b, 0x14, 0x24, 0x25, 0x37, 0x31, 0x1a, + 0xb4, 0x3d, 0x89, 0xdf, 0x37, 0xc3, 0x99, 0x8f, 0xf3, 0x23, 0x08, 0x0a, 0x21, 0x26, 0x42, 0x72, + 0xcd, 0x91, 0x5f, 0x08, 0x71, 0xb4, 0x3f, 0xe7, 0x73, 0x6e, 0xf1, 0x5f, 0xe6, 0xe4, 0x4c, 0x47, + 0x7b, 0xa9, 0xe1, 0x52, 0xa6, 0x14, 0x97, 0x15, 0x15, 0x16, 0x4c, 0x13, 0x71, 0xe3, 0x50, 0xf4, + 0xae, 0x01, 0xdd, 0x19, 0x51, 0xcb, 0x2b, 0xa6, 0x09, 0x3a, 0x84, 0xae, 0xd2, 0x44, 0xea, 0x44, + 0xab, 0x81, 0x37, 0xf2, 0xc6, 0x4d, 0xdc, 0xb1, 0x78, 0xa6, 0xd0, 0x01, 0x74, 0x34, 0x51, 0xcb, + 0x24, 0xa3, 0x83, 0xc6, 0xc8, 0x1b, 0xfb, 0xb8, 0x6d, 0x60, 0x4c, 0xd1, 0x09, 0x84, 0x82, 0x48, + 0x9d, 0xe9, 0x8c, 0x97, 0xc6, 0xea, 0x5b, 0x6b, 0x6f, 0xc3, 0xc5, 0x14, 0x0d, 0xa0, 0x43, 0x28, + 0x95, 0x4c, 0xa9, 0x41, 0x73, 0xe4, 0x8d, 0x03, 0x5c, 0x43, 0xf4, 0x1b, 0x04, 0x73, 0xa2, 0x17, + 0x4c, 0x9a, 0x9b, 0x2d, 0x9b, 0xb1, 0xeb, 0x88, 0x98, 0x1a, 0x35, 0xb7, 0x2b, 0x26, 0xef, 0x8c, + 0x9a, 0xb6, 0x53, 0x63, 0xf1, 0x4c, 0xa1, 0x3f, 0x61, 0x27, 0xe7, 0x29, 0xc9, 0x13, 0xe7, 0x90, + 0xd1, 0x41, 0xc7, 0x3a, 0x84, 0x96, 0x7d, 0x6e, 0xc8, 0x98, 0x9a, 0xe8, 0x8a, 0xc9, 0xb5, 0x8b, + 0xde, 0x75, 0xd1, 0x1d, 0x11, 0x53, 0xf4, 0x07, 0xf4, 0x0a, 0x21, 0x92, 0x35, 0x93, 0x2a, 0xe3, + 0xe5, 0x20, 0xb0, 0xb2, 0xa1, 0x10, 0xe2, 0xda, 0x31, 0xc6, 0x61, 0xc9, 0xee, 0x94, 0x20, 0x29, + 0x33, 0xf7, 0x61, 0xe4, 0x8d, 0xfb, 0x18, 0x6a, 0x2a, 0xa6, 0xd1, 0x2e, 0xec, 0xc4, 0xea, 0xbf, + 0x3c, 0x5b, 0x33, 0xcc, 0x6e, 0x57, 0x4c, 0xe9, 0x68, 0x0a, 0x3f, 0x6f, 0x18, 0x25, 0x78, 0xa9, + 0x18, 0xfa, 0x1d, 0x02, 0xb2, 0x26, 0x59, 0x4e, 0x6e, 0x72, 0x66, 0x6b, 0xda, 0xc5, 0x5f, 0x88, + 0x6d, 0x11, 0x8d, 0x6d, 0x11, 0xd1, 0xeb, 0x06, 0xfc, 0x72, 0x91, 0x29, 0x41, 0x74, 0xba, 0x30, + 0x6d, 0xaa, 0x32, 0xa1, 0x13, 0x68, 0x9a, 0x36, 0xda, 0x88, 0xbd, 0xd3, 0xfe, 0xc4, 0x0c, 0x43, + 0xdd, 0x46, 0x6c, 0x4d, 0xa6, 0x31, 0xac, 0x4c, 0x39, 0x65, 0x34, 0x11, 0x39, 0x71, 0xc1, 0x43, + 0xdc, 0xab, 0xb8, 0x69, 0x4e, 0x4a, 0xd3, 0x18, 0x9d, 0x15, 0x8c, 0xaf, 0x74, 0xd5, 0xb6, 0x1a, + 0xa2, 0xbf, 0xa1, 0x23, 0xd9, 0x3c, 0xe3, 0xa5, 0x69, 0x99, 0x3f, 0xee, 0x9d, 0x1e, 0x4c, 0x1e, + 0x4e, 0x12, 0xb6, 0xb6, 0xb8, 0x7c, 0xc9, 0x71, 0xed, 0x87, 0x8e, 0x01, 0x54, 0xba, 0x60, 0x05, + 0x31, 0xcf, 0xb1, 0xcd, 0xf4, 0x71, 0xe0, 0x98, 0x6b, 0x26, 0xd1, 0xbf, 0xd0, 0xd7, 0xe6, 0xcd, + 0x49, 0x1d, 0xb7, 0x6d, 0xe3, 0x1e, 0x3e, 0x8a, 0x3b, 0x33, 0x1e, 0x2e, 0xb8, 0xc2, 0xa1, 0x7e, + 0x80, 0xa2, 0x02, 0xf6, 0x1f, 0x17, 0xa2, 0x2a, 0xf0, 0x08, 0x5a, 0x4c, 0x4a, 0x2e, 0xab, 0x52, + 0x80, 0x2d, 0xc5, 0xa5, 0x61, 0xb0, 0x33, 0xa0, 0x33, 0xe8, 0x4b, 0xa6, 0xe5, 0xdd, 0x26, 0x73, + 0xc3, 0x66, 0xde, 0x99, 0x54, 0x8b, 0xe0, 0x32, 0xe0, 0xd0, 0x3a, 0xd5, 0xe9, 0x5e, 0xc0, 0xde, + 0x39, 0x29, 0x53, 0x96, 0xff, 0x60, 0xd5, 0x37, 0x72, 0x1a, 0x4f, 0xc8, 0x89, 0xfe, 0x01, 0xf4, + 0x30, 0xf2, 0xf7, 0x3e, 0x23, 0x7a, 0xe5, 0xc1, 0xf1, 0xa5, 0x32, 0x35, 0xc9, 0xd4, 0xe2, 0x6a, + 0x3a, 0x3d, 0xe7, 0x65, 0xc9, 0x52, 0xb3, 0x62, 0xb5, 0xbc, 0x09, 0xf4, 0x14, 0x2b, 0x29, 0x93, + 0xc9, 0xd3, 0x2a, 0xc1, 0x79, 0xd8, 0x75, 0x3f, 0x35, 0x85, 0x49, 0x59, 0xb6, 0xae, 0x6f, 0x34, + 0xbe, 0x76, 0x23, 0xac, 0x7d, 0x0c, 0x8a, 0xde, 0x78, 0xd0, 0xbf, 0x9a, 0x4e, 0x2f, 0x88, 0x26, + 0x53, 0x92, 0x2e, 0x99, 0x46, 0x08, 0x9a, 0x94, 0x54, 0xe9, 0x42, 0x6c, 0xcf, 0xdf, 0xae, 0x02, + 0xfa, 0x15, 0xda, 0xe9, 0x62, 0x55, 0x2e, 0xd5, 0xc0, 0x1f, 0xf9, 0xe3, 0x10, 0x57, 0xc8, 0x4e, + 0x91, 0x96, 0x8c, 0x14, 0x49, 0x46, 0xdd, 0xec, 0x35, 0x71, 0xe0, 0x98, 0x98, 0x2a, 0x33, 0xb1, + 0xf5, 0xb2, 0xb8, 0x09, 0xab, 0x61, 0xf4, 0x0c, 0x5a, 0x36, 0x81, 0xd1, 0x63, 0x26, 0xdc, 0xea, + 0x69, 0x61, 0x7b, 0x46, 0xbb, 0xe0, 0x17, 0x6a, 0x6e, 0xd5, 0x04, 0xd8, 0x1c, 0xb7, 0x37, 0xcf, + 0xdf, 0xde, 0xbc, 0xff, 0xa3, 0xf7, 0xf7, 0x43, 0xef, 0xc3, 0xfd, 0xd0, 0xfb, 0x78, 0x3f, 0xf4, + 0xde, 0x7e, 0x1a, 0xfe, 0x04, 0xbb, 0x5c, 0xce, 0x27, 0x3a, 0x5b, 0xae, 0x27, 0xcb, 0xb5, 0xfd, + 0x79, 0xde, 0xb4, 0xed, 0xe7, 0xec, 0x73, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7c, 0xfd, 0x7e, 0xdc, + 0x8c, 0x05, 0x00, 0x00, } func (m *TaskMeta) Marshal() (dAtA []byte, err error) { @@ -768,6 +778,11 @@ func (m *TaskMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.KeyspaceId != 0 { + i = encodeVarintMpp(dAtA, i, uint64(m.KeyspaceId)) + i-- + dAtA[i] = 0x50 + } if m.MppVersion != 0 { i = encodeVarintMpp(dAtA, i, uint64(m.MppVersion)) i-- @@ -1332,6 +1347,9 @@ func (m *TaskMeta) Size() (n int) { if m.MppVersion != 0 { n += 1 + sovMpp(uint64(m.MppVersion)) } + if m.KeyspaceId != 0 { + n += 1 + sovMpp(uint64(m.KeyspaceId)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -1761,6 +1779,25 @@ func (m *TaskMeta) Unmarshal(dAtA []byte) error { break } } + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KeyspaceId", wireType) + } + m.KeyspaceId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMpp + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.KeyspaceId |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipMpp(dAtA[iNdEx:]) diff --git a/proto/kvrpcpb.proto b/proto/kvrpcpb.proto index 5d84df8..49354cb 100644 --- a/proto/kvrpcpb.proto +++ b/proto/kvrpcpb.proto @@ -844,6 +844,10 @@ message Context { // If `busy_threshold_ms` is given, TiKV can reject the request and return a `ServerIsBusy` // error before processing if the estimated waiting duration exceeds the threshold. uint32 busy_threshold_ms = 27; + + // The keyspace that the request is sent to. + // NOTE: This field is only meaningful while the api_version is V2. + uint32 keyspace_id = 32; } // The API version the server and the client is using. diff --git a/proto/mpp.proto b/proto/mpp.proto index d17656d..d14f694 100644 --- a/proto/mpp.proto +++ b/proto/mpp.proto @@ -22,6 +22,7 @@ message TaskMeta { uint64 local_query_id = 7; // unique local query_id if tidb don't restart. So we can use query_ts + local_query_id + server_id to represent a global unique query. uint64 server_id = 8; // TiDB server id int64 mpp_version = 9; // mpp version + uint32 keyspace_id = 10; // keyspace id of the request } message IsAliveRequest { -- Gitee From 5cc42e4327e4db459872e80241dee0ed7cce74a4 Mon Sep 17 00:00:00 2001 From: Jianjun Liao <36503113+Leavrth@users.noreply.github.com> Date: Mon, 20 Feb 2023 15:08:31 +0800 Subject: [PATCH 04/44] add get switch mode rpc (#1059) Signed-off-by: Leavrth Co-authored-by: Zak Zhao <57036248+joccau@users.noreply.github.com> --- pkg/import_sstpb/import_sstpb.pb.go | 643 +++++++++++++++++++++------- proto/import_sstpb.proto | 9 + scripts/proto.lock | 18 + 3 files changed, 516 insertions(+), 154 deletions(-) diff --git a/pkg/import_sstpb/import_sstpb.pb.go b/pkg/import_sstpb/import_sstpb.pb.go index 3cca35e..a30993b 100644 --- a/pkg/import_sstpb/import_sstpb.pb.go +++ b/pkg/import_sstpb/import_sstpb.pb.go @@ -106,7 +106,7 @@ func (x Pair_OP) String() string { } func (Pair_OP) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{17, 0} + return fileDescriptor_4d076b7935cfab6b, []int{19, 0} } type SwitchModeRequest struct { @@ -195,6 +195,92 @@ func (m *SwitchModeResponse) XXX_DiscardUnknown() { var xxx_messageInfo_SwitchModeResponse proto.InternalMessageInfo +type GetModeRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetModeRequest) Reset() { *m = GetModeRequest{} } +func (m *GetModeRequest) String() string { return proto.CompactTextString(m) } +func (*GetModeRequest) ProtoMessage() {} +func (*GetModeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_4d076b7935cfab6b, []int{2} +} +func (m *GetModeRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GetModeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GetModeRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GetModeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetModeRequest.Merge(m, src) +} +func (m *GetModeRequest) XXX_Size() int { + return m.Size() +} +func (m *GetModeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetModeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetModeRequest proto.InternalMessageInfo + +type GetModeResponse struct { + Mode SwitchMode `protobuf:"varint,1,opt,name=mode,proto3,enum=import_sstpb.SwitchMode" json:"mode,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetModeResponse) Reset() { *m = GetModeResponse{} } +func (m *GetModeResponse) String() string { return proto.CompactTextString(m) } +func (*GetModeResponse) ProtoMessage() {} +func (*GetModeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_4d076b7935cfab6b, []int{3} +} +func (m *GetModeResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GetModeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GetModeResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GetModeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetModeResponse.Merge(m, src) +} +func (m *GetModeResponse) XXX_Size() int { + return m.Size() +} +func (m *GetModeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetModeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetModeResponse proto.InternalMessageInfo + +func (m *GetModeResponse) GetMode() SwitchMode { + if m != nil { + return m.Mode + } + return SwitchMode_Normal +} + type Range struct { Start []byte `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` End []byte `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` @@ -207,7 +293,7 @@ func (m *Range) Reset() { *m = Range{} } func (m *Range) String() string { return proto.CompactTextString(m) } func (*Range) ProtoMessage() {} func (*Range) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{2} + return fileDescriptor_4d076b7935cfab6b, []int{4} } func (m *Range) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -276,7 +362,7 @@ func (m *SSTMeta) Reset() { *m = SSTMeta{} } func (m *SSTMeta) String() string { return proto.CompactTextString(m) } func (*SSTMeta) ProtoMessage() {} func (*SSTMeta) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{3} + return fileDescriptor_4d076b7935cfab6b, []int{5} } func (m *SSTMeta) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -404,7 +490,7 @@ func (m *RewriteRule) Reset() { *m = RewriteRule{} } func (m *RewriteRule) String() string { return proto.CompactTextString(m) } func (*RewriteRule) ProtoMessage() {} func (*RewriteRule) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{4} + return fileDescriptor_4d076b7935cfab6b, []int{6} } func (m *RewriteRule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -468,7 +554,7 @@ func (m *UploadRequest) Reset() { *m = UploadRequest{} } func (m *UploadRequest) String() string { return proto.CompactTextString(m) } func (*UploadRequest) ProtoMessage() {} func (*UploadRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{5} + return fileDescriptor_4d076b7935cfab6b, []int{7} } func (m *UploadRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -552,7 +638,7 @@ func (m *UploadResponse) Reset() { *m = UploadResponse{} } func (m *UploadResponse) String() string { return proto.CompactTextString(m) } func (*UploadResponse) ProtoMessage() {} func (*UploadResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{6} + return fileDescriptor_4d076b7935cfab6b, []int{8} } func (m *UploadResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -593,7 +679,7 @@ func (m *IngestRequest) Reset() { *m = IngestRequest{} } func (m *IngestRequest) String() string { return proto.CompactTextString(m) } func (*IngestRequest) ProtoMessage() {} func (*IngestRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{7} + return fileDescriptor_4d076b7935cfab6b, []int{9} } func (m *IngestRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -648,7 +734,7 @@ func (m *MultiIngestRequest) Reset() { *m = MultiIngestRequest{} } func (m *MultiIngestRequest) String() string { return proto.CompactTextString(m) } func (*MultiIngestRequest) ProtoMessage() {} func (*MultiIngestRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{8} + return fileDescriptor_4d076b7935cfab6b, []int{10} } func (m *MultiIngestRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -702,7 +788,7 @@ func (m *IngestResponse) Reset() { *m = IngestResponse{} } func (m *IngestResponse) String() string { return proto.CompactTextString(m) } func (*IngestResponse) ProtoMessage() {} func (*IngestResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{9} + return fileDescriptor_4d076b7935cfab6b, []int{11} } func (m *IngestResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -753,7 +839,7 @@ func (m *CompactRequest) Reset() { *m = CompactRequest{} } func (m *CompactRequest) String() string { return proto.CompactTextString(m) } func (*CompactRequest) ProtoMessage() {} func (*CompactRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{10} + return fileDescriptor_4d076b7935cfab6b, []int{12} } func (m *CompactRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -806,7 +892,7 @@ func (m *CompactResponse) Reset() { *m = CompactResponse{} } func (m *CompactResponse) String() string { return proto.CompactTextString(m) } func (*CompactResponse) ProtoMessage() {} func (*CompactResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{11} + return fileDescriptor_4d076b7935cfab6b, []int{13} } func (m *CompactResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -876,7 +962,7 @@ func (m *DownloadRequest) Reset() { *m = DownloadRequest{} } func (m *DownloadRequest) String() string { return proto.CompactTextString(m) } func (*DownloadRequest) ProtoMessage() {} func (*DownloadRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{12} + return fileDescriptor_4d076b7935cfab6b, []int{14} } func (m *DownloadRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -976,7 +1062,7 @@ func (m *Error) Reset() { *m = Error{} } func (m *Error) String() string { return proto.CompactTextString(m) } func (*Error) ProtoMessage() {} func (*Error) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{13} + return fileDescriptor_4d076b7935cfab6b, []int{15} } func (m *Error) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1042,7 +1128,7 @@ func (m *DownloadResponse) Reset() { *m = DownloadResponse{} } func (m *DownloadResponse) String() string { return proto.CompactTextString(m) } func (*DownloadResponse) ProtoMessage() {} func (*DownloadResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{14} + return fileDescriptor_4d076b7935cfab6b, []int{16} } func (m *DownloadResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1118,7 +1204,7 @@ func (m *SetDownloadSpeedLimitRequest) Reset() { *m = SetDownloadSpeedLi func (m *SetDownloadSpeedLimitRequest) String() string { return proto.CompactTextString(m) } func (*SetDownloadSpeedLimitRequest) ProtoMessage() {} func (*SetDownloadSpeedLimitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{15} + return fileDescriptor_4d076b7935cfab6b, []int{17} } func (m *SetDownloadSpeedLimitRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1164,7 +1250,7 @@ func (m *SetDownloadSpeedLimitResponse) Reset() { *m = SetDownloadSpeedL func (m *SetDownloadSpeedLimitResponse) String() string { return proto.CompactTextString(m) } func (*SetDownloadSpeedLimitResponse) ProtoMessage() {} func (*SetDownloadSpeedLimitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{16} + return fileDescriptor_4d076b7935cfab6b, []int{18} } func (m *SetDownloadSpeedLimitResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1206,7 +1292,7 @@ func (m *Pair) Reset() { *m = Pair{} } func (m *Pair) String() string { return proto.CompactTextString(m) } func (*Pair) ProtoMessage() {} func (*Pair) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{17} + return fileDescriptor_4d076b7935cfab6b, []int{19} } func (m *Pair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1268,7 +1354,7 @@ func (m *WriteBatch) Reset() { *m = WriteBatch{} } func (m *WriteBatch) String() string { return proto.CompactTextString(m) } func (*WriteBatch) ProtoMessage() {} func (*WriteBatch) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{18} + return fileDescriptor_4d076b7935cfab6b, []int{20} } func (m *WriteBatch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1325,7 +1411,7 @@ func (m *WriteRequest) Reset() { *m = WriteRequest{} } func (m *WriteRequest) String() string { return proto.CompactTextString(m) } func (*WriteRequest) ProtoMessage() {} func (*WriteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{19} + return fileDescriptor_4d076b7935cfab6b, []int{21} } func (m *WriteRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1411,7 +1497,7 @@ func (m *WriteResponse) Reset() { *m = WriteResponse{} } func (m *WriteResponse) String() string { return proto.CompactTextString(m) } func (*WriteResponse) ProtoMessage() {} func (*WriteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{20} + return fileDescriptor_4d076b7935cfab6b, []int{22} } func (m *WriteResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1472,7 +1558,7 @@ func (m *RawWriteBatch) Reset() { *m = RawWriteBatch{} } func (m *RawWriteBatch) String() string { return proto.CompactTextString(m) } func (*RawWriteBatch) ProtoMessage() {} func (*RawWriteBatch) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{21} + return fileDescriptor_4d076b7935cfab6b, []int{23} } func (m *RawWriteBatch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1536,7 +1622,7 @@ func (m *RawWriteRequest) Reset() { *m = RawWriteRequest{} } func (m *RawWriteRequest) String() string { return proto.CompactTextString(m) } func (*RawWriteRequest) ProtoMessage() {} func (*RawWriteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{22} + return fileDescriptor_4d076b7935cfab6b, []int{24} } func (m *RawWriteRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1622,7 +1708,7 @@ func (m *RawWriteResponse) Reset() { *m = RawWriteResponse{} } func (m *RawWriteResponse) String() string { return proto.CompactTextString(m) } func (*RawWriteResponse) ProtoMessage() {} func (*RawWriteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{23} + return fileDescriptor_4d076b7935cfab6b, []int{25} } func (m *RawWriteResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1682,7 +1768,7 @@ func (m *DuplicateDetectRequest) Reset() { *m = DuplicateDetectRequest{} func (m *DuplicateDetectRequest) String() string { return proto.CompactTextString(m) } func (*DuplicateDetectRequest) ProtoMessage() {} func (*DuplicateDetectRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{24} + return fileDescriptor_4d076b7935cfab6b, []int{26} } func (m *DuplicateDetectRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1759,7 +1845,7 @@ func (m *KvPair) Reset() { *m = KvPair{} } func (m *KvPair) String() string { return proto.CompactTextString(m) } func (*KvPair) ProtoMessage() {} func (*KvPair) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{25} + return fileDescriptor_4d076b7935cfab6b, []int{27} } func (m *KvPair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1832,7 +1918,7 @@ func (m *DuplicateDetectResponse) Reset() { *m = DuplicateDetectResponse func (m *DuplicateDetectResponse) String() string { return proto.CompactTextString(m) } func (*DuplicateDetectResponse) ProtoMessage() {} func (*DuplicateDetectResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{26} + return fileDescriptor_4d076b7935cfab6b, []int{28} } func (m *DuplicateDetectResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1918,7 +2004,7 @@ func (m *KVMeta) Reset() { *m = KVMeta{} } func (m *KVMeta) String() string { return proto.CompactTextString(m) } func (*KVMeta) ProtoMessage() {} func (*KVMeta) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{27} + return fileDescriptor_4d076b7935cfab6b, []int{29} } func (m *KVMeta) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2073,7 +2159,7 @@ func (m *ApplyRequest) Reset() { *m = ApplyRequest{} } func (m *ApplyRequest) String() string { return proto.CompactTextString(m) } func (*ApplyRequest) ProtoMessage() {} func (*ApplyRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{28} + return fileDescriptor_4d076b7935cfab6b, []int{30} } func (m *ApplyRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2172,7 +2258,7 @@ func (m *ApplyResponse) Reset() { *m = ApplyResponse{} } func (m *ApplyResponse) String() string { return proto.CompactTextString(m) } func (*ApplyResponse) ProtoMessage() {} func (*ApplyResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{29} + return fileDescriptor_4d076b7935cfab6b, []int{31} } func (m *ApplyResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2227,7 +2313,7 @@ func (m *ClearRequest) Reset() { *m = ClearRequest{} } func (m *ClearRequest) String() string { return proto.CompactTextString(m) } func (*ClearRequest) ProtoMessage() {} func (*ClearRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{30} + return fileDescriptor_4d076b7935cfab6b, []int{32} } func (m *ClearRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2274,7 +2360,7 @@ func (m *ClearResponse) Reset() { *m = ClearResponse{} } func (m *ClearResponse) String() string { return proto.CompactTextString(m) } func (*ClearResponse) ProtoMessage() {} func (*ClearResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{31} + return fileDescriptor_4d076b7935cfab6b, []int{33} } func (m *ClearResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2316,6 +2402,8 @@ func init() { proto.RegisterEnum("import_sstpb.Pair_OP", Pair_OP_name, Pair_OP_value) proto.RegisterType((*SwitchModeRequest)(nil), "import_sstpb.SwitchModeRequest") proto.RegisterType((*SwitchModeResponse)(nil), "import_sstpb.SwitchModeResponse") + proto.RegisterType((*GetModeRequest)(nil), "import_sstpb.GetModeRequest") + proto.RegisterType((*GetModeResponse)(nil), "import_sstpb.GetModeResponse") proto.RegisterType((*Range)(nil), "import_sstpb.Range") proto.RegisterType((*SSTMeta)(nil), "import_sstpb.SSTMeta") proto.RegisterType((*RewriteRule)(nil), "import_sstpb.RewriteRule") @@ -2351,129 +2439,131 @@ func init() { func init() { proto.RegisterFile("import_sstpb.proto", fileDescriptor_4d076b7935cfab6b) } var fileDescriptor_4d076b7935cfab6b = []byte{ - // 1955 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcd, 0x6f, 0xdb, 0xca, - 0x11, 0x37, 0xf5, 0xad, 0x11, 0xf5, 0x91, 0x4d, 0x9e, 0xc3, 0x28, 0x2f, 0xb6, 0xc3, 0xe6, 0xbd, - 0x3a, 0x4e, 0x6b, 0xa7, 0x4e, 0x9b, 0x43, 0x0f, 0x7d, 0x88, 0x3f, 0xda, 0xb8, 0x8e, 0x9f, 0x5d, - 0xca, 0x4d, 0x0f, 0x05, 0x4a, 0xd0, 0xd4, 0x5a, 0x66, 0x45, 0x91, 0x2c, 0x77, 0x25, 0x47, 0x40, - 0xd1, 0xbf, 0xa3, 0xb7, 0xa2, 0x87, 0x02, 0x45, 0xcf, 0x05, 0x8a, 0xfe, 0x07, 0xef, 0xf8, 0x8e, - 0x3d, 0x15, 0x45, 0xfa, 0x8f, 0x14, 0x3b, 0xbb, 0x94, 0x48, 0x46, 0xb6, 0x13, 0x03, 0x3d, 0x69, - 0x77, 0x66, 0x76, 0x66, 0x38, 0x3b, 0x1f, 0xbf, 0x15, 0x10, 0x6f, 0x14, 0x85, 0x31, 0xb7, 0x19, - 0xe3, 0xd1, 0xd9, 0x66, 0x14, 0x87, 0x3c, 0x24, 0x7a, 0x9a, 0xd6, 0xd5, 0x47, 0x94, 0x3b, 0x09, - 0xaf, 0xdb, 0xa4, 0x71, 0x1c, 0xc6, 0xf3, 0xed, 0x70, 0x12, 0x47, 0xee, 0x6c, 0x7b, 0x6f, 0x10, - 0x0e, 0x42, 0x5c, 0x6e, 0x89, 0x95, 0xa2, 0xb6, 0xe3, 0x31, 0xe3, 0xb8, 0x54, 0x04, 0x38, 0x9b, - 0x69, 0x30, 0x5f, 0xc1, 0x9d, 0xde, 0xa5, 0xc7, 0xdd, 0x8b, 0xa3, 0xb0, 0x4f, 0x2d, 0xfa, 0xbb, - 0x31, 0x65, 0x9c, 0x7c, 0x0f, 0x4a, 0xa3, 0xb0, 0x4f, 0x0d, 0x6d, 0x4d, 0x5b, 0x6f, 0x6d, 0x1b, - 0x9b, 0x19, 0x27, 0x53, 0xe2, 0x28, 0x65, 0xde, 0x03, 0x92, 0x56, 0xc1, 0xa2, 0x30, 0x60, 0xd4, - 0xdc, 0x82, 0xb2, 0xe5, 0x04, 0x03, 0x4a, 0xee, 0x41, 0x99, 0x71, 0x27, 0xe6, 0xa8, 0x4d, 0xb7, - 0xe4, 0x86, 0x74, 0xa0, 0x48, 0x83, 0xbe, 0x51, 0x40, 0x9a, 0x58, 0x9a, 0x7f, 0x2e, 0x42, 0xb5, - 0xd7, 0x3b, 0x3d, 0xa2, 0xdc, 0x21, 0x04, 0x4a, 0xe3, 0xb1, 0xd7, 0x57, 0x47, 0x70, 0x4d, 0x9e, - 0x42, 0x39, 0x16, 0x0a, 0xf1, 0x4c, 0x63, 0xfb, 0x6e, 0xd6, 0x2b, 0xb4, 0x65, 0x49, 0x09, 0x61, - 0xd2, 0x8d, 0xdd, 0x17, 0xdb, 0x46, 0x71, 0x4d, 0x5b, 0x6f, 0x5a, 0x72, 0x43, 0x96, 0xa1, 0xe2, - 0xd3, 0x60, 0xc0, 0x2f, 0x8c, 0xd2, 0x9a, 0xb6, 0x5e, 0xb2, 0xd4, 0x8e, 0xdc, 0x87, 0xaa, 0x7b, - 0x6e, 0x07, 0xce, 0x88, 0x1a, 0xe5, 0x35, 0x6d, 0xbd, 0x6e, 0x55, 0xdc, 0xf3, 0xaf, 0x9d, 0x11, - 0x25, 0x0f, 0xa1, 0x1e, 0xd3, 0x81, 0x17, 0x06, 0xb6, 0xd7, 0x37, 0x2a, 0x78, 0xa6, 0x26, 0x09, - 0x07, 0x7d, 0xf2, 0x12, 0x74, 0xc5, 0xa4, 0x51, 0xe8, 0x5e, 0x18, 0x55, 0xe5, 0x95, 0xba, 0x2e, - 0x0b, 0x79, 0xfb, 0x82, 0x65, 0x35, 0xe2, 0xf9, 0x86, 0x6c, 0xc0, 0x1d, 0x1a, 0xf4, 0xed, 0x21, - 0x9d, 0xda, 0xf4, 0x9d, 0xeb, 0x8f, 0x99, 0x37, 0xa1, 0x46, 0x6d, 0x4d, 0x5b, 0xaf, 0x59, 0x6d, - 0x1a, 0xf4, 0x0f, 0xe9, 0x74, 0x3f, 0x21, 0x0b, 0x07, 0x78, 0xc8, 0x1d, 0xdf, 0x1e, 0x4e, 0x98, - 0x51, 0x97, 0x0e, 0x20, 0xe1, 0x70, 0xc2, 0xc8, 0x2a, 0x34, 0x24, 0xf3, 0x6c, 0xca, 0x29, 0x33, - 0x00, 0xd9, 0x80, 0xa4, 0x1d, 0x41, 0x21, 0x3f, 0x84, 0x86, 0x13, 0x79, 0xf6, 0x84, 0xc6, 0xcc, - 0x0b, 0x03, 0xa3, 0x81, 0x97, 0x79, 0x77, 0x33, 0x49, 0x99, 0x57, 0x27, 0x07, 0x6f, 0x25, 0xcb, - 0x02, 0x27, 0xf2, 0xd4, 0x5a, 0xd8, 0x74, 0xbd, 0xe8, 0x82, 0xc6, 0xb6, 0x37, 0x31, 0x74, 0x8c, - 0x7f, 0x4d, 0x12, 0x0e, 0x26, 0xe6, 0x1f, 0xa0, 0x61, 0xd1, 0xcb, 0xd8, 0xe3, 0xd4, 0x1a, 0xfb, - 0x94, 0x3c, 0x81, 0x56, 0xe8, 0xcb, 0x6f, 0x89, 0x62, 0x7a, 0xee, 0xbd, 0x53, 0x17, 0xa6, 0x87, - 0xbe, 0xf8, 0x90, 0x13, 0xa4, 0x09, 0xa9, 0x80, 0x5e, 0xa6, 0xa5, 0xe4, 0xad, 0xeb, 0x01, 0xbd, - 0x9c, 0x4b, 0x7d, 0x07, 0x9a, 0x42, 0x8a, 0x7b, 0x23, 0xca, 0xb8, 0x33, 0x8a, 0xf0, 0xee, 0x4a, - 0x28, 0x74, 0x9a, 0xd0, 0xcc, 0x5f, 0x43, 0xf3, 0x97, 0x91, 0x1f, 0x3a, 0xfd, 0x24, 0x53, 0x9f, - 0x41, 0x49, 0x04, 0x1c, 0xed, 0x36, 0xb6, 0x3f, 0xcb, 0x65, 0xaa, 0xcc, 0xa6, 0xd7, 0x4b, 0x16, - 0x0a, 0x91, 0x7b, 0x50, 0xea, 0x3b, 0xdc, 0x91, 0xe6, 0x05, 0x55, 0xec, 0x76, 0xaa, 0x50, 0x76, - 0x2f, 0xc6, 0xc1, 0xd0, 0xec, 0x40, 0x2b, 0x51, 0xae, 0x72, 0xb8, 0x0f, 0xcd, 0x83, 0x60, 0x40, - 0x19, 0x4f, 0xcc, 0x6d, 0x40, 0xd5, 0x0d, 0x03, 0x4e, 0xdf, 0x71, 0x65, 0xb1, 0x33, 0x0b, 0xe7, - 0xae, 0xa4, 0x5b, 0x89, 0x00, 0xf9, 0x2e, 0x14, 0x19, 0xe3, 0x2a, 0x5b, 0x17, 0x7b, 0x66, 0x09, - 0x09, 0x73, 0x08, 0xe4, 0x68, 0xec, 0x73, 0xef, 0xf6, 0xa6, 0x9e, 0x42, 0x89, 0x31, 0xce, 0x8c, - 0xc2, 0x5a, 0xf1, 0x6a, 0x5b, 0x28, 0x62, 0xbe, 0x84, 0x56, 0x62, 0x47, 0x7e, 0x24, 0x79, 0x02, - 0x65, 0x6c, 0x2a, 0xca, 0x4c, 0x6b, 0x33, 0x69, 0x31, 0xfb, 0xe2, 0xd7, 0x92, 0x4c, 0xf3, 0x37, - 0xd0, 0xda, 0x0d, 0x47, 0x91, 0xe3, 0xce, 0x1c, 0x9c, 0xd5, 0xa3, 0x76, 0x63, 0x3d, 0x3e, 0x06, - 0x3d, 0x1c, 0xf3, 0x68, 0xcc, 0x6d, 0x9f, 0x4e, 0xa8, 0x8f, 0x31, 0x29, 0x5b, 0x0d, 0x49, 0x7b, - 0x23, 0x48, 0xe6, 0x1d, 0x68, 0xcf, 0xf4, 0xab, 0xe8, 0xff, 0xa5, 0x08, 0xed, 0xbd, 0xf0, 0x32, - 0x48, 0xdf, 0xf7, 0xf7, 0x6f, 0x0e, 0xea, 0x4e, 0xe9, 0x9b, 0x7f, 0xaf, 0x2e, 0x61, 0x68, 0x45, - 0x1f, 0xc1, 0xba, 0xae, 0x63, 0x5d, 0xe3, 0x9a, 0xec, 0x88, 0xc2, 0xc5, 0x1c, 0xb6, 0xe3, 0xb1, - 0x4f, 0x8d, 0x26, 0xea, 0x7a, 0x90, 0x73, 0x7f, 0x9e, 0xe5, 0x4a, 0x5f, 0x23, 0x4e, 0x25, 0xfe, - 0x57, 0xd0, 0x66, 0x3c, 0x8c, 0x9d, 0x01, 0xb5, 0xcf, 0x1c, 0x77, 0x28, 0x3a, 0x59, 0x0b, 0xd5, - 0x2c, 0x6f, 0x8a, 0xfd, 0x38, 0xda, 0xec, 0x49, 0xf6, 0x8e, 0xe4, 0x5a, 0x2d, 0x96, 0xd9, 0x93, - 0x75, 0xe8, 0x24, 0x0a, 0x5c, 0xc7, 0xbd, 0xa0, 0xa2, 0xc3, 0xdc, 0x41, 0x27, 0x13, 0xc9, 0x5d, - 0x41, 0x3e, 0xe8, 0x93, 0x2e, 0xd4, 0x3d, 0x66, 0xc7, 0xce, 0xa5, 0x3d, 0x9c, 0x18, 0x6d, 0xec, - 0x13, 0x55, 0x8f, 0x59, 0xce, 0xe5, 0xe1, 0x84, 0xbc, 0x80, 0x46, 0x52, 0xab, 0xc1, 0x79, 0x68, - 0x74, 0xd0, 0x05, 0x92, 0xb8, 0xb0, 0x2b, 0xab, 0x36, 0x38, 0x0f, 0x2d, 0x70, 0x67, 0x6b, 0xb2, - 0x27, 0xbe, 0x1f, 0xa3, 0x69, 0xf3, 0x69, 0x44, 0x0d, 0x82, 0x7d, 0xe1, 0x71, 0xf6, 0xfb, 0x73, - 0x71, 0x3f, 0x9d, 0x46, 0x54, 0x44, 0x60, 0xb6, 0xf9, 0x79, 0xa9, 0x56, 0xeb, 0xd4, 0xad, 0xe2, - 0x38, 0xf6, 0x4d, 0x0b, 0xca, 0x98, 0x2a, 0xc4, 0x80, 0xea, 0x88, 0x32, 0xe6, 0xa8, 0x9c, 0xa8, - 0x5b, 0xc9, 0x96, 0x6c, 0x41, 0x43, 0x7c, 0x16, 0xb5, 0x65, 0xa6, 0x15, 0x16, 0x66, 0x1a, 0xa0, - 0x08, 0xae, 0xcd, 0x7f, 0x68, 0xd0, 0x99, 0xfb, 0xa0, 0x32, 0x75, 0xeb, 0xe6, 0x8c, 0x53, 0x97, - 0xa5, 0xf2, 0xee, 0x01, 0xd4, 0x3c, 0x66, 0xd3, 0x51, 0xc4, 0xa7, 0x68, 0x13, 0x43, 0xb7, 0x2f, - 0xb6, 0x22, 0x7b, 0xa5, 0x2f, 0xc5, 0x45, 0xba, 0xd2, 0xa9, 0x3f, 0x9f, 0x26, 0xa5, 0xc5, 0xd3, - 0xa4, 0x9c, 0x9e, 0x26, 0xe6, 0x57, 0xf0, 0x79, 0x8f, 0xf2, 0xc4, 0xf7, 0x5e, 0x44, 0x69, 0xff, - 0x8d, 0x37, 0xf2, 0x66, 0x65, 0xb3, 0x0a, 0x0d, 0x26, 0x88, 0xb6, 0x2f, 0xa8, 0xf8, 0x29, 0x25, - 0x0b, 0xd8, 0x4c, 0xce, 0x5c, 0x85, 0x47, 0x57, 0x28, 0x50, 0x75, 0x11, 0x41, 0xe9, 0xc4, 0xf1, - 0x62, 0x31, 0x42, 0x87, 0x74, 0xaa, 0x5a, 0xae, 0x58, 0x0a, 0x4f, 0x27, 0x8e, 0x3f, 0xa6, 0xaa, - 0xc1, 0xca, 0x0d, 0xf9, 0x02, 0x0a, 0xa1, 0x6c, 0xa7, 0xad, 0x7c, 0xc9, 0x08, 0x3d, 0x9b, 0xc7, - 0x27, 0x56, 0x21, 0x8c, 0xcc, 0x07, 0x50, 0x38, 0x3e, 0x21, 0x55, 0x28, 0x9e, 0x8c, 0x79, 0x67, - 0x89, 0x00, 0x54, 0xf6, 0xa8, 0x4f, 0x39, 0xed, 0x68, 0x66, 0x0f, 0xe0, 0x57, 0x22, 0xf7, 0x77, - 0x1c, 0xee, 0x5e, 0xe0, 0x84, 0x08, 0x47, 0x23, 0x8f, 0xdb, 0x9c, 0x29, 0xff, 0x6b, 0x92, 0x70, - 0xca, 0xc8, 0x3a, 0x94, 0x23, 0xc7, 0x8b, 0x93, 0x5e, 0x44, 0x3e, 0xb4, 0x67, 0x49, 0x01, 0x73, - 0x02, 0x3a, 0x2a, 0xbd, 0x55, 0x2b, 0x7f, 0x0e, 0xe5, 0x33, 0xe1, 0x8c, 0x4a, 0xa5, 0x1c, 0x44, - 0x99, 0x3b, 0xfb, 0x7a, 0xc9, 0x92, 0x82, 0xf3, 0x36, 0x3f, 0x80, 0xa6, 0xb2, 0xab, 0xd2, 0xea, - 0x69, 0xb6, 0x01, 0x5e, 0x97, 0x0a, 0xcf, 0xa0, 0x2c, 0xcc, 0xdf, 0xd0, 0x69, 0xa5, 0x8c, 0x18, - 0x56, 0x96, 0x73, 0x99, 0x0a, 0x5c, 0x07, 0x8a, 0x9c, 0xfb, 0x2a, 0x64, 0x62, 0xf9, 0xf1, 0xd1, - 0x22, 0x2d, 0x28, 0x70, 0xa6, 0x66, 0x62, 0x81, 0x33, 0xf3, 0xf7, 0xd0, 0x4e, 0x94, 0xdf, 0x2a, - 0x80, 0x2f, 0xb2, 0x01, 0x7c, 0x98, 0xaf, 0xa5, 0xcb, 0x6b, 0x63, 0xf8, 0x5b, 0xe8, 0xcc, 0xad, - 0xff, 0x9f, 0xc3, 0xf8, 0x4f, 0x0d, 0x96, 0xf7, 0xc6, 0x91, 0xef, 0xb9, 0x0e, 0xa7, 0x7b, 0x94, - 0x53, 0xf7, 0x56, 0x33, 0xf2, 0x21, 0xd4, 0x11, 0x79, 0x0a, 0x1c, 0xa2, 0xea, 0xa3, 0x86, 0x84, - 0x43, 0x3a, 0x15, 0x10, 0x50, 0x81, 0x32, 0x0c, 0xb1, 0x6e, 0x55, 0x24, 0x14, 0x13, 0x1d, 0x44, - 0xe0, 0x96, 0x30, 0xf0, 0xa7, 0x58, 0xfe, 0x35, 0xab, 0x3a, 0xa4, 0xd3, 0xe3, 0xc0, 0x9f, 0x12, - 0x13, 0x9a, 0x23, 0x2f, 0xb0, 0xe7, 0xa5, 0x20, 0xfb, 0x40, 0x63, 0xe4, 0x05, 0xbb, 0xaa, 0x1a, - 0xcc, 0x23, 0xa8, 0x1c, 0x4e, 0x3e, 0xa9, 0x58, 0x33, 0xc5, 0x55, 0xcc, 0x16, 0x97, 0xf9, 0x37, - 0x0d, 0xee, 0x7f, 0x10, 0x0a, 0x15, 0xfe, 0x1f, 0xcc, 0xf1, 0xe8, 0x35, 0xd3, 0x3c, 0x81, 0xa2, - 0x78, 0x0d, 0xcf, 0xa1, 0x8e, 0x30, 0x34, 0xd5, 0x93, 0x17, 0xde, 0x9a, 0x08, 0x81, 0x3c, 0xb1, - 0x91, 0xe4, 0x6b, 0x11, 0x2f, 0xee, 0x5e, 0x56, 0x5a, 0x7e, 0x6a, 0x52, 0xdf, 0x7f, 0x2a, 0x42, - 0xe5, 0xf0, 0x6d, 0x02, 0xe7, 0x71, 0x0c, 0x6b, 0xa9, 0x31, 0xfc, 0x18, 0x74, 0x6c, 0xd2, 0x76, - 0x78, 0x7e, 0xce, 0x28, 0x47, 0x78, 0x5a, 0xb2, 0x1a, 0x48, 0x3b, 0x46, 0x52, 0xaa, 0xc5, 0x16, - 0x32, 0x80, 0x7d, 0x76, 0x54, 0x71, 0xf5, 0xd4, 0xd1, 0x37, 0x52, 0xa4, 0x05, 0x05, 0xf7, 0x1c, - 0xe3, 0x57, 0xb7, 0x0a, 0xee, 0xb9, 0x08, 0xab, 0xc7, 0xec, 0x3e, 0x36, 0x34, 0x75, 0x91, 0x35, - 0x8f, 0xc9, 0x06, 0x27, 0x2e, 0x59, 0xa6, 0x06, 0x4f, 0x60, 0x74, 0x15, 0xf7, 0xa7, 0x8c, 0x3c, - 0x02, 0x88, 0xa9, 0x1c, 0x5d, 0xb3, 0x1b, 0xae, 0x2b, 0xca, 0x29, 0xcb, 0x26, 0x55, 0xe5, 0xea, - 0xa4, 0xaa, 0x66, 0x92, 0x6a, 0x19, 0x2a, 0xec, 0xc2, 0xd9, 0xfe, 0xd1, 0x4b, 0xc4, 0xfd, 0xba, - 0xa5, 0x76, 0xe2, 0x69, 0x20, 0xb5, 0xb1, 0xc0, 0x89, 0xd8, 0x45, 0x88, 0x0e, 0x49, 0xd8, 0xdf, - 0x46, 0x46, 0x4f, 0xd1, 0x4f, 0x19, 0xd9, 0x81, 0x8e, 0x1b, 0x8e, 0xa2, 0x98, 0x32, 0x81, 0xda, - 0xe5, 0x24, 0x6f, 0x62, 0x8b, 0xbf, 0x3f, 0x9b, 0xff, 0x73, 0x3e, 0xce, 0xef, 0xb6, 0x9b, 0x25, - 0x98, 0x7f, 0x2f, 0x82, 0xfe, 0x2a, 0x8a, 0xfc, 0x69, 0x52, 0x4f, 0xeb, 0x99, 0x0e, 0x92, 0xbf, - 0xdd, 0xb7, 0x12, 0x46, 0x62, 0xfb, 0xd8, 0x48, 0x2a, 0x58, 0x5f, 0x98, 0x08, 0x6f, 0x53, 0x05, - 0xfc, 0x01, 0xe0, 0x2a, 0xdc, 0x02, 0x70, 0xfd, 0x04, 0x9a, 0x69, 0x1d, 0xcc, 0x68, 0xa2, 0xdd, - 0xab, 0x95, 0x58, 0x7a, 0xea, 0x38, 0x5b, 0x88, 0xb7, 0xca, 0x0b, 0xf1, 0xd6, 0x02, 0x68, 0x57, - 0xfc, 0x24, 0x68, 0x97, 0x6a, 0x4a, 0xa5, 0x9b, 0x9a, 0x52, 0x0e, 0xc0, 0x35, 0x3e, 0x06, 0xc0, - 0x99, 0x43, 0x68, 0xaa, 0x5b, 0xbb, 0x2d, 0x2e, 0x9a, 0xb5, 0xea, 0xc2, 0x4d, 0xad, 0xda, 0xfc, - 0x12, 0xf4, 0x5d, 0x9f, 0x3a, 0x71, 0x92, 0x22, 0xcb, 0x50, 0x49, 0x3d, 0xf5, 0xea, 0x96, 0xda, - 0x99, 0x3f, 0x86, 0xa6, 0x92, 0xfb, 0xe4, 0x71, 0xb0, 0xf1, 0x04, 0x60, 0xfe, 0x07, 0x82, 0x00, - 0x1e, 0x5f, 0x87, 0xf1, 0xc8, 0xf1, 0x25, 0x08, 0x39, 0xc0, 0x63, 0x1d, 0x6d, 0x63, 0x0b, 0xee, - 0x2e, 0x40, 0xa5, 0x42, 0xe4, 0x0d, 0x1d, 0x38, 0xee, 0xb4, 0xb3, 0x44, 0x74, 0xa8, 0x1d, 0xd2, - 0x29, 0x8b, 0x1c, 0x97, 0x76, 0xb4, 0xed, 0x6f, 0xab, 0x50, 0x97, 0xa7, 0x7b, 0xbd, 0x53, 0xf2, - 0x8b, 0x8c, 0x91, 0xd5, 0x2b, 0xff, 0xd3, 0x90, 0xaa, 0xbb, 0x6b, 0x57, 0x0b, 0x28, 0x18, 0xb6, - 0x44, 0x7e, 0x06, 0x15, 0xf9, 0x60, 0x24, 0xb9, 0xf1, 0x99, 0x79, 0xa3, 0x76, 0x3f, 0x5f, 0xcc, - 0x4c, 0xd4, 0xac, 0x6b, 0x64, 0x1f, 0x2a, 0xf2, 0x51, 0x96, 0x57, 0x94, 0x79, 0x12, 0xe6, 0x15, - 0x65, 0xdf, 0x71, 0xe6, 0x12, 0x79, 0x0d, 0x55, 0xf5, 0x86, 0x22, 0x39, 0xd1, 0xec, 0xd3, 0xad, - 0xfb, 0xe8, 0x0a, 0xee, 0x4c, 0x53, 0x0c, 0x9f, 0x2d, 0xc4, 0xa0, 0x64, 0x23, 0x17, 0x96, 0x6b, - 0x90, 0x6e, 0xf7, 0xd9, 0x47, 0xc9, 0xce, 0x6c, 0x1e, 0x42, 0x2d, 0xe1, 0x93, 0x47, 0xd7, 0xbe, - 0x46, 0xba, 0x2b, 0x57, 0xb1, 0x67, 0xca, 0xf6, 0xa0, 0x8c, 0xe8, 0x84, 0x74, 0x17, 0x20, 0xc3, - 0x44, 0xcd, 0xc3, 0x85, 0xbc, 0xd4, 0xbd, 0x1c, 0x41, 0x2d, 0x81, 0x39, 0x79, 0x97, 0x72, 0xe0, - 0x2b, 0xef, 0x52, 0x1e, 0x1d, 0xa1, 0xba, 0x63, 0x68, 0xa4, 0x1e, 0xfa, 0x24, 0x97, 0x62, 0x1f, - 0xfe, 0x07, 0x70, 0xe3, 0x85, 0x9f, 0x41, 0x3b, 0x07, 0x07, 0xc8, 0x93, 0x5c, 0x68, 0x16, 0x02, - 0xa7, 0xee, 0x17, 0x37, 0x48, 0x25, 0x16, 0x9e, 0x6b, 0x64, 0x07, 0xca, 0xd8, 0x6d, 0xf2, 0x91, - 0x4c, 0x0f, 0x8e, 0x7c, 0x24, 0x33, 0xed, 0x09, 0x0b, 0x05, 0xb0, 0x39, 0xfc, 0xd4, 0x13, 0xbd, - 0x38, 0xa7, 0x28, 0xdd, 0x5e, 0xf2, 0x8a, 0x32, 0x2d, 0xc5, 0x5c, 0xda, 0xf9, 0xf2, 0x5f, 0x7f, - 0xad, 0x69, 0xdf, 0xbc, 0x5f, 0xd1, 0xbe, 0x7d, 0xbf, 0xa2, 0xfd, 0xe7, 0xfd, 0x8a, 0xf6, 0xc7, - 0xff, 0xae, 0x2c, 0x41, 0x27, 0x8c, 0x07, 0x9b, 0xdc, 0x1b, 0x4e, 0x36, 0x87, 0x13, 0xfc, 0x57, - 0xf3, 0xac, 0x82, 0x3f, 0x2f, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x3c, 0x0a, 0x6b, 0xe5, 0x5f, + // 1987 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4b, 0x6f, 0x1c, 0x4b, + 0xf5, 0x77, 0xcf, 0x7b, 0xce, 0x3c, 0x53, 0xf1, 0x75, 0x3a, 0x93, 0xc4, 0x76, 0xfa, 0x9f, 0x7b, + 0xff, 0x8e, 0x03, 0x76, 0x70, 0x20, 0x0b, 0x16, 0x44, 0xf1, 0x83, 0x1b, 0xe3, 0xf8, 0xda, 0xf4, + 0x98, 0xb0, 0x40, 0xa2, 0xd5, 0xee, 0x29, 0x8f, 0x9b, 0xe9, 0xe9, 0x6e, 0xba, 0x6a, 0x66, 0x32, + 0x12, 0xe2, 0x73, 0x20, 0x36, 0x88, 0x05, 0x12, 0x62, 0x8d, 0x84, 0xf8, 0x06, 0x77, 0xc9, 0x92, + 0x15, 0x42, 0xe1, 0x8b, 0xa0, 0x3a, 0x55, 0x3d, 0xd3, 0xdd, 0x19, 0xdb, 0x89, 0x25, 0x56, 0x5d, + 0x75, 0xea, 0xd4, 0x39, 0xa7, 0x4e, 0x9d, 0xc7, 0xaf, 0x1a, 0x88, 0x3b, 0x0c, 0x83, 0x88, 0x5b, + 0x8c, 0xf1, 0xf0, 0x7c, 0x2b, 0x8c, 0x02, 0x1e, 0x90, 0x7a, 0x92, 0xd6, 0xa9, 0x0f, 0x29, 0xb7, + 0xe3, 0xb5, 0x4e, 0x83, 0x46, 0x51, 0x10, 0xcd, 0xa7, 0x83, 0x71, 0x14, 0x3a, 0xb3, 0xe9, 0x72, + 0x3f, 0xe8, 0x07, 0x38, 0xdc, 0x16, 0x23, 0x45, 0x6d, 0x45, 0x23, 0xc6, 0x71, 0xa8, 0x08, 0x70, + 0x3e, 0x93, 0x60, 0xbc, 0x86, 0x3b, 0xdd, 0x89, 0xcb, 0x9d, 0xcb, 0xe3, 0xa0, 0x47, 0x4d, 0xfa, + 0xeb, 0x11, 0x65, 0x9c, 0x7c, 0x07, 0x0a, 0xc3, 0xa0, 0x47, 0x75, 0x6d, 0x5d, 0xdb, 0x68, 0xee, + 0xe8, 0x5b, 0x29, 0x23, 0x13, 0xec, 0xc8, 0x65, 0x2c, 0x03, 0x49, 0x8a, 0x60, 0x61, 0xe0, 0x33, + 0x6a, 0xb4, 0xa1, 0xf9, 0x35, 0xe5, 0x09, 0xa9, 0xc6, 0x2b, 0x68, 0xcd, 0x28, 0x92, 0xe9, 0x33, + 0x15, 0x6d, 0x43, 0xd1, 0xb4, 0xfd, 0x3e, 0x25, 0xcb, 0x50, 0x64, 0xdc, 0x8e, 0x38, 0xee, 0xab, + 0x9b, 0x72, 0x42, 0xda, 0x90, 0xa7, 0x7e, 0x4f, 0xcf, 0x21, 0x4d, 0x0c, 0x8d, 0x3f, 0xe6, 0xa1, + 0xdc, 0xed, 0x9e, 0x1d, 0x53, 0x6e, 0x13, 0x02, 0x85, 0xd1, 0xc8, 0xed, 0xa9, 0x2d, 0x38, 0x26, + 0x4f, 0xa1, 0x18, 0x09, 0x81, 0xb8, 0xa7, 0xb6, 0x73, 0x37, 0xad, 0x1f, 0x75, 0x99, 0x92, 0x43, + 0xa8, 0x74, 0x22, 0xe7, 0xc5, 0x8e, 0x9e, 0x5f, 0xd7, 0x36, 0x1a, 0xa6, 0x9c, 0x90, 0x15, 0x28, + 0x79, 0xd4, 0xef, 0xf3, 0x4b, 0xbd, 0xb0, 0xae, 0x6d, 0x14, 0x4c, 0x35, 0x23, 0xf7, 0xa0, 0xec, + 0x5c, 0x58, 0xbe, 0x3d, 0xa4, 0x7a, 0x71, 0x5d, 0xdb, 0xa8, 0x9a, 0x25, 0xe7, 0xe2, 0x1b, 0x7b, + 0x48, 0xc9, 0x03, 0xa8, 0x46, 0xb4, 0xef, 0x06, 0xbe, 0xe5, 0xf6, 0xf4, 0x12, 0xee, 0xa9, 0x48, + 0xc2, 0x61, 0x8f, 0xbc, 0x84, 0xba, 0x5a, 0xa4, 0x61, 0xe0, 0x5c, 0xea, 0x65, 0x65, 0x95, 0x8a, + 0x00, 0x13, 0xd7, 0x0e, 0xc4, 0x92, 0x59, 0x8b, 0xe6, 0x13, 0xb2, 0x09, 0x77, 0xa8, 0xdf, 0xb3, + 0x06, 0x74, 0x6a, 0xd1, 0xf7, 0x8e, 0x37, 0x62, 0xee, 0x98, 0xea, 0x95, 0x75, 0x6d, 0xa3, 0x62, + 0xb6, 0xa8, 0xdf, 0x3b, 0xa2, 0xd3, 0x83, 0x98, 0x2c, 0x0c, 0xe0, 0x01, 0xb7, 0x3d, 0x6b, 0x30, + 0x66, 0x7a, 0x55, 0x1a, 0x80, 0x84, 0xa3, 0x31, 0x23, 0x6b, 0x50, 0x93, 0x8b, 0xe7, 0x53, 0x4e, + 0x99, 0x0e, 0xb8, 0x0c, 0x48, 0xda, 0x15, 0x14, 0xf2, 0x7d, 0xa8, 0xd9, 0xa1, 0x6b, 0x8d, 0x69, + 0xc4, 0xdc, 0xc0, 0xd7, 0x6b, 0x78, 0x6d, 0x77, 0xb7, 0xe2, 0x28, 0x7c, 0x7d, 0x7a, 0xf8, 0x4e, + 0x2e, 0x99, 0x60, 0x87, 0xae, 0x1a, 0x0b, 0x9d, 0x8e, 0x1b, 0x5e, 0xd2, 0xc8, 0x72, 0xc7, 0x7a, + 0x1d, 0xfd, 0x5f, 0x91, 0x84, 0xc3, 0xb1, 0xf1, 0x5b, 0xa8, 0x99, 0x74, 0x12, 0xb9, 0x9c, 0x9a, + 0x23, 0x8f, 0x92, 0x27, 0xd0, 0x0c, 0x3c, 0x79, 0x96, 0x30, 0xa2, 0x17, 0xee, 0x7b, 0x75, 0x61, + 0xf5, 0xc0, 0x13, 0x07, 0x39, 0x45, 0x9a, 0xe0, 0xf2, 0xe9, 0x24, 0xc9, 0x25, 0x6f, 0xbd, 0xee, + 0xd3, 0xc9, 0x9c, 0xeb, 0xff, 0xa0, 0x21, 0xb8, 0xb8, 0x3b, 0xa4, 0x8c, 0xdb, 0xc3, 0x10, 0xef, + 0xae, 0x80, 0x4c, 0x67, 0x31, 0xcd, 0xf8, 0x05, 0x34, 0x7e, 0x16, 0x7a, 0x81, 0xdd, 0x8b, 0x83, + 0xff, 0x19, 0x14, 0x84, 0xc3, 0x51, 0x6f, 0x6d, 0xe7, 0x8b, 0x4c, 0x4c, 0xca, 0x68, 0x7a, 0xb3, + 0x64, 0x22, 0x13, 0x59, 0x86, 0x42, 0xcf, 0xe6, 0xb6, 0x54, 0x2f, 0xa8, 0x62, 0xb6, 0x5b, 0x86, + 0xa2, 0x73, 0x39, 0xf2, 0x07, 0x22, 0x09, 0x62, 0xe1, 0x2a, 0x2d, 0x7a, 0xd0, 0x38, 0xf4, 0xfb, + 0x94, 0xf1, 0x58, 0xdd, 0x26, 0x94, 0x9d, 0xc0, 0xe7, 0xf4, 0x3d, 0x57, 0x1a, 0xdb, 0x33, 0x77, + 0xee, 0x49, 0xba, 0x19, 0x33, 0x90, 0xff, 0x87, 0x3c, 0x63, 0x5c, 0x45, 0xeb, 0x62, 0xcb, 0x4c, + 0xc1, 0x61, 0x0c, 0x80, 0x1c, 0x8f, 0x3c, 0xee, 0xde, 0x5e, 0xd5, 0x53, 0x28, 0x30, 0xc6, 0x99, + 0x9e, 0x5b, 0xcf, 0x5f, 0xad, 0x0b, 0x59, 0x8c, 0x97, 0xd0, 0x8c, 0xf5, 0xa8, 0xb4, 0x7e, 0x02, + 0x45, 0xac, 0x53, 0x4a, 0x4d, 0x73, 0x2b, 0xae, 0x5a, 0x07, 0xe2, 0x6b, 0xca, 0x45, 0xe3, 0x97, + 0xd0, 0xdc, 0x0b, 0x86, 0xa1, 0xed, 0xcc, 0x0c, 0x9c, 0xe5, 0xa3, 0x76, 0x63, 0x3e, 0x3e, 0x86, + 0x7a, 0x30, 0xe2, 0xe1, 0x88, 0x5b, 0x1e, 0x1d, 0x53, 0x0f, 0x7d, 0x52, 0x34, 0x6b, 0x92, 0xf6, + 0x56, 0x90, 0x8c, 0x3b, 0xd0, 0x9a, 0xc9, 0x57, 0xde, 0xff, 0x53, 0x1e, 0x5a, 0xfb, 0xc1, 0xc4, + 0x4f, 0xde, 0xf7, 0x77, 0x6f, 0x76, 0xea, 0x6e, 0xe1, 0xdb, 0x7f, 0xad, 0x2d, 0xa1, 0x6b, 0x45, + 0x1d, 0xc1, 0xbc, 0xae, 0x62, 0x5e, 0xe3, 0x98, 0xec, 0x8a, 0xc4, 0xc5, 0x18, 0xb6, 0xa2, 0x91, + 0x47, 0xf5, 0x06, 0xca, 0xba, 0x9f, 0x31, 0x7f, 0x1e, 0xe5, 0x4a, 0x5e, 0x2d, 0x4a, 0x04, 0xfe, + 0x2b, 0x68, 0x31, 0x1e, 0x44, 0x76, 0x9f, 0x5a, 0xe7, 0xb6, 0x33, 0x10, 0x95, 0xac, 0x89, 0x62, + 0x56, 0xb6, 0xc4, 0x7c, 0x14, 0x6e, 0x75, 0xe5, 0xf2, 0xae, 0x5c, 0x35, 0x9b, 0x2c, 0x35, 0x27, + 0x1b, 0xd0, 0x8e, 0x05, 0x38, 0xb6, 0x73, 0x49, 0x45, 0x85, 0xb9, 0x83, 0x46, 0xc6, 0x9c, 0x7b, + 0x82, 0x7c, 0xd8, 0x23, 0x1d, 0xa8, 0xba, 0xcc, 0x8a, 0xec, 0x89, 0x35, 0x18, 0xeb, 0x2d, 0xac, + 0x13, 0x65, 0x97, 0x99, 0xf6, 0xe4, 0x68, 0x4c, 0x5e, 0x40, 0x2d, 0xce, 0x55, 0xff, 0x22, 0xd0, + 0xdb, 0x68, 0x02, 0x89, 0x4d, 0xd8, 0x93, 0x59, 0xeb, 0x5f, 0x04, 0x26, 0x38, 0xb3, 0x31, 0xd9, + 0x17, 0xe7, 0x47, 0x6f, 0x5a, 0x7c, 0x1a, 0x52, 0x9d, 0x60, 0x5d, 0x78, 0x9c, 0x3e, 0x7f, 0xc6, + 0xef, 0x67, 0xd3, 0x90, 0x0a, 0x0f, 0xcc, 0x26, 0x3f, 0x29, 0x54, 0x2a, 0xed, 0xaa, 0x99, 0x1f, + 0x45, 0x9e, 0x61, 0x42, 0x11, 0x43, 0x85, 0xe8, 0x50, 0x1e, 0x52, 0xc6, 0x6c, 0x15, 0x13, 0x55, + 0x33, 0x9e, 0x92, 0x6d, 0xa8, 0x89, 0x63, 0x51, 0x4b, 0x46, 0x5a, 0x6e, 0x61, 0xa4, 0x01, 0xb2, + 0xe0, 0xd8, 0xf8, 0x9b, 0x06, 0xed, 0xb9, 0x0d, 0x2a, 0x52, 0xb7, 0x6f, 0x8e, 0x38, 0x75, 0x59, + 0x2a, 0xee, 0xee, 0x43, 0xc5, 0x65, 0x16, 0x1d, 0x86, 0x7c, 0x8a, 0x3a, 0xd1, 0x75, 0x07, 0x62, + 0x2a, 0xa2, 0x57, 0xda, 0x92, 0x5f, 0x24, 0x2b, 0x19, 0xfa, 0xf3, 0x6e, 0x52, 0x58, 0xdc, 0x4d, + 0x8a, 0xc9, 0x6e, 0x62, 0xbc, 0x82, 0x87, 0x5d, 0xca, 0x63, 0xdb, 0xbb, 0x21, 0xa5, 0xbd, 0xb7, + 0xee, 0xd0, 0x9d, 0xa5, 0xcd, 0x1a, 0xd4, 0x98, 0x20, 0x5a, 0x9e, 0xa0, 0xe2, 0x51, 0x0a, 0x26, + 0xb0, 0x19, 0x9f, 0xb1, 0x06, 0x8f, 0xae, 0x10, 0xa0, 0xf2, 0x22, 0x84, 0xc2, 0xa9, 0xed, 0x46, + 0xa2, 0x85, 0x0e, 0xe8, 0x54, 0x95, 0x5c, 0x31, 0x14, 0x96, 0x8e, 0x6d, 0x6f, 0x44, 0x55, 0x81, + 0x95, 0x13, 0xf2, 0x25, 0xe4, 0x02, 0x59, 0x4e, 0x9b, 0xd9, 0x94, 0x11, 0x72, 0xb6, 0x4e, 0x4e, + 0xcd, 0x5c, 0x10, 0x1a, 0xf7, 0x21, 0x77, 0x72, 0x4a, 0xca, 0x90, 0x3f, 0x1d, 0xf1, 0xf6, 0x12, + 0x01, 0x28, 0xed, 0x53, 0x8f, 0x72, 0xda, 0xd6, 0x8c, 0x2e, 0xc0, 0xcf, 0x45, 0xec, 0xef, 0xda, + 0xdc, 0xb9, 0xc4, 0x0e, 0x11, 0x0c, 0x87, 0x2e, 0xb7, 0x38, 0x53, 0xf6, 0x57, 0x24, 0xe1, 0x8c, + 0x91, 0x0d, 0x28, 0x86, 0xb6, 0x1b, 0xc5, 0xb5, 0x88, 0x7c, 0xac, 0xcf, 0x94, 0x0c, 0xc6, 0x18, + 0xea, 0x28, 0xf4, 0x56, 0xa5, 0xfc, 0x39, 0x14, 0xcf, 0x85, 0x31, 0x2a, 0x94, 0x32, 0x60, 0x64, + 0x6e, 0xec, 0x9b, 0x25, 0x53, 0x32, 0xce, 0xcb, 0x7c, 0x1f, 0x1a, 0x4a, 0xaf, 0x0a, 0xab, 0xa7, + 0xe9, 0x02, 0x78, 0x5d, 0x28, 0x3c, 0x83, 0xa2, 0x50, 0x7f, 0x43, 0xa5, 0x95, 0x3c, 0xa2, 0x59, + 0x99, 0xf6, 0x24, 0xe1, 0xb8, 0x36, 0xe4, 0x39, 0xf7, 0x94, 0xcb, 0xc4, 0xf0, 0xd3, 0xbd, 0x45, + 0x9a, 0x90, 0xe3, 0x4c, 0xf5, 0xc4, 0x1c, 0x67, 0xc6, 0x6f, 0xa0, 0x15, 0x0b, 0xbf, 0x95, 0x03, + 0x5f, 0xa4, 0x1d, 0xf8, 0x20, 0x9b, 0x4b, 0x93, 0x6b, 0x7d, 0xf8, 0x2b, 0x68, 0xcf, 0xb5, 0xff, + 0x8f, 0xdd, 0xf8, 0x77, 0x0d, 0x56, 0xf6, 0x47, 0xa1, 0xe7, 0x3a, 0x36, 0xa7, 0xfb, 0x94, 0x53, + 0xe7, 0x56, 0x3d, 0xf2, 0x01, 0x54, 0x11, 0x79, 0x0a, 0x1c, 0xa2, 0xf2, 0xa3, 0x82, 0x84, 0x23, + 0x3a, 0x15, 0x10, 0x50, 0x81, 0x32, 0x74, 0x71, 0xdd, 0x2c, 0x49, 0x28, 0x26, 0x2a, 0x88, 0xc0, + 0x2d, 0x81, 0xef, 0x4d, 0x31, 0xfd, 0x2b, 0x66, 0x79, 0x40, 0xa7, 0x27, 0xbe, 0x37, 0x25, 0x06, + 0x34, 0x86, 0xae, 0x6f, 0xcd, 0x53, 0x41, 0xd6, 0x81, 0xda, 0xd0, 0xf5, 0xf7, 0x54, 0x36, 0x18, + 0xc7, 0x50, 0x3a, 0x1a, 0x7f, 0x56, 0xb2, 0xa6, 0x92, 0x2b, 0x9f, 0x4e, 0x2e, 0xe3, 0x2f, 0x1a, + 0xdc, 0xfb, 0xc8, 0x15, 0xca, 0xfd, 0xdf, 0x9b, 0xe3, 0xd1, 0x6b, 0xba, 0x79, 0x0c, 0x45, 0xf1, + 0x1a, 0x9e, 0x43, 0x15, 0x61, 0x68, 0xa2, 0x26, 0x2f, 0xbc, 0x35, 0xe1, 0x02, 0xb9, 0x63, 0x33, + 0x8e, 0xd7, 0x3c, 0x5e, 0xdc, 0x72, 0x9a, 0x5b, 0x1e, 0x35, 0xce, 0xef, 0x3f, 0xe4, 0xa1, 0x74, + 0xf4, 0x2e, 0x86, 0xf3, 0xd8, 0x86, 0xb5, 0x44, 0x1b, 0x7e, 0x0c, 0x75, 0x2c, 0xd2, 0x56, 0x70, + 0x71, 0xc1, 0x28, 0x47, 0x78, 0x5a, 0x30, 0x6b, 0x48, 0x3b, 0x41, 0x52, 0xa2, 0xc4, 0xe6, 0x52, + 0x80, 0x7d, 0xb6, 0x55, 0xad, 0xd6, 0x13, 0x5b, 0xdf, 0x4a, 0x96, 0x26, 0xe4, 0x9c, 0x0b, 0xf4, + 0x5f, 0xd5, 0xcc, 0x39, 0x17, 0xc2, 0xad, 0x2e, 0xb3, 0x7a, 0x58, 0xd0, 0xd4, 0x45, 0x56, 0x5c, + 0x26, 0x0b, 0x9c, 0xb8, 0x64, 0x19, 0x1a, 0x3c, 0x86, 0xd1, 0x65, 0x9c, 0x9f, 0x31, 0xf2, 0x08, + 0x20, 0xa2, 0xb2, 0x75, 0xcd, 0x6e, 0xb8, 0xaa, 0x28, 0x67, 0x2c, 0x1d, 0x54, 0xa5, 0xab, 0x83, + 0xaa, 0x9c, 0x0a, 0xaa, 0x15, 0x28, 0xb1, 0x4b, 0x7b, 0xe7, 0x07, 0x2f, 0x11, 0xf7, 0xd7, 0x4d, + 0x35, 0x13, 0x4f, 0x03, 0x29, 0x8d, 0xf9, 0x76, 0xc8, 0x2e, 0x03, 0x34, 0x48, 0xc2, 0xfe, 0x16, + 0x2e, 0x74, 0x15, 0xfd, 0x8c, 0x91, 0x5d, 0x68, 0x3b, 0xc1, 0x30, 0x8c, 0x28, 0x13, 0xa8, 0x5d, + 0x76, 0xf2, 0x06, 0x96, 0xf8, 0x7b, 0xb3, 0xfe, 0x3f, 0x5f, 0xc7, 0xfe, 0xdd, 0x72, 0xd2, 0x04, + 0xe3, 0xaf, 0x79, 0xa8, 0xbf, 0x0e, 0x43, 0x6f, 0x1a, 0xe7, 0xd3, 0x46, 0xaa, 0x82, 0x64, 0x6f, + 0xf7, 0x9d, 0x84, 0x91, 0x58, 0x3e, 0x36, 0xe3, 0x0c, 0xae, 0x2f, 0x0c, 0x84, 0x77, 0x89, 0x04, + 0xfe, 0x08, 0x70, 0xe5, 0x6e, 0x01, 0xb8, 0x7e, 0x04, 0x8d, 0xa4, 0x0c, 0xa6, 0x37, 0x50, 0xef, + 0xd5, 0x42, 0xcc, 0x7a, 0x62, 0x3b, 0x5b, 0x88, 0xb7, 0x8a, 0x0b, 0xf1, 0xd6, 0x02, 0x68, 0x97, + 0xff, 0x2c, 0x68, 0x97, 0x28, 0x4a, 0x85, 0x9b, 0x8a, 0x52, 0x06, 0xc0, 0xd5, 0x3e, 0x05, 0xc0, + 0x19, 0x03, 0x68, 0xa8, 0x5b, 0xbb, 0x2d, 0x2e, 0x9a, 0x95, 0xea, 0xdc, 0x4d, 0xa5, 0xda, 0xf8, + 0x0a, 0xea, 0x7b, 0x1e, 0xb5, 0xa3, 0x38, 0x44, 0x56, 0xa0, 0x94, 0x78, 0xea, 0x55, 0x4d, 0x35, + 0x33, 0x7e, 0x08, 0x0d, 0xc5, 0xf7, 0xd9, 0xed, 0x60, 0xf3, 0x09, 0xc0, 0xfc, 0xf7, 0x81, 0x00, + 0x1e, 0xdf, 0x04, 0xd1, 0xd0, 0xf6, 0x24, 0x08, 0x39, 0xc4, 0x6d, 0x6d, 0x6d, 0x73, 0x1b, 0xee, + 0x2e, 0x40, 0xa5, 0x82, 0xe5, 0x2d, 0xed, 0xdb, 0xce, 0xb4, 0xbd, 0x44, 0xea, 0x50, 0x39, 0xa2, + 0x53, 0x16, 0xda, 0x0e, 0x6d, 0x6b, 0x3b, 0xbf, 0xaf, 0x40, 0x55, 0xee, 0xee, 0x76, 0xcf, 0xc8, + 0x4f, 0x53, 0x4a, 0xd6, 0xae, 0xfc, 0x7b, 0x21, 0x45, 0x77, 0xd6, 0xaf, 0x66, 0x50, 0x30, 0x6c, + 0x89, 0xbc, 0x81, 0xb2, 0xfa, 0x47, 0x42, 0x1e, 0xa6, 0xd9, 0xd3, 0x3f, 0x53, 0x3a, 0x8f, 0xae, + 0x58, 0x9d, 0x49, 0xfa, 0x1a, 0x4a, 0xf2, 0xe9, 0x49, 0x32, 0x8d, 0x38, 0xf5, 0xda, 0xed, 0x3c, + 0x5c, 0xbc, 0x18, 0x8b, 0xd9, 0xd0, 0xc8, 0x01, 0x94, 0xe4, 0xf3, 0x2e, 0x2b, 0x28, 0xf5, 0xb8, + 0xcc, 0x0a, 0x4a, 0xbf, 0x08, 0xe5, 0xc9, 0xd4, 0x6b, 0x2c, 0x7b, 0xb2, 0xf4, 0x23, 0x30, 0x7b, + 0xb2, 0xec, 0x13, 0x6e, 0x89, 0x44, 0xf0, 0xc5, 0x42, 0x34, 0x4b, 0x36, 0x33, 0x0e, 0xbe, 0x06, + 0x33, 0x77, 0x9e, 0x7d, 0x12, 0xef, 0x4c, 0xe7, 0x11, 0x54, 0xe2, 0x75, 0xf2, 0xe8, 0xda, 0x77, + 0x4d, 0x67, 0xf5, 0xaa, 0xe5, 0x99, 0xb0, 0x7d, 0x28, 0x22, 0xce, 0x21, 0x9d, 0x05, 0x18, 0x33, + 0x16, 0xf3, 0x60, 0xe1, 0x5a, 0xe2, 0x5e, 0x8e, 0xa1, 0x12, 0x03, 0xa6, 0xac, 0x49, 0x19, 0x18, + 0x97, 0x35, 0x29, 0x8b, 0xb3, 0x50, 0xdc, 0x09, 0xd4, 0x12, 0xbf, 0x0c, 0x48, 0x26, 0x58, 0x3f, + 0xfe, 0x9b, 0x70, 0xe3, 0x85, 0x9f, 0x43, 0x2b, 0x03, 0x2c, 0xc8, 0x93, 0x8c, 0x6b, 0x16, 0x42, + 0xb0, 0xce, 0x97, 0x37, 0x70, 0xc5, 0x1a, 0x9e, 0x6b, 0x64, 0x17, 0x8a, 0x58, 0xb7, 0xb2, 0x9e, + 0x4c, 0xb6, 0xa0, 0xac, 0x27, 0x53, 0x85, 0x0e, 0x13, 0x05, 0xb0, 0xcc, 0xfc, 0xd8, 0x15, 0x55, + 0x3d, 0x23, 0x28, 0x59, 0xa8, 0xb2, 0x82, 0x52, 0xc5, 0xc9, 0x58, 0xda, 0xfd, 0xea, 0x9f, 0x7f, + 0xae, 0x68, 0xdf, 0x7e, 0x58, 0xd5, 0xfe, 0xf1, 0x61, 0x55, 0xfb, 0xf7, 0x87, 0x55, 0xed, 0x77, + 0xff, 0x59, 0x5d, 0x82, 0x76, 0x10, 0xf5, 0xb7, 0xb8, 0x3b, 0x18, 0x6f, 0x0d, 0xc6, 0xf8, 0xcb, + 0xf5, 0xbc, 0x84, 0x9f, 0x17, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x11, 0x8d, 0x6b, 0xc7, 0xfc, 0x15, 0x00, 0x00, } @@ -2491,6 +2581,8 @@ const _ = grpc.SupportPackageIsVersion4 type ImportSSTClient interface { // Switch to normal/import mode. SwitchMode(ctx context.Context, in *SwitchModeRequest, opts ...grpc.CallOption) (*SwitchModeResponse, error) + // Get import mode(normal/import). + GetMode(ctx context.Context, in *GetModeRequest, opts ...grpc.CallOption) (*GetModeResponse, error) // Upload an SST file to a server. Upload(ctx context.Context, opts ...grpc.CallOption) (ImportSST_UploadClient, error) // Ingest an uploaded SST file to a region. @@ -2531,6 +2623,15 @@ func (c *importSSTClient) SwitchMode(ctx context.Context, in *SwitchModeRequest, return out, nil } +func (c *importSSTClient) GetMode(ctx context.Context, in *GetModeRequest, opts ...grpc.CallOption) (*GetModeResponse, error) { + out := new(GetModeResponse) + err := c.cc.Invoke(ctx, "/import_sstpb.ImportSST/GetMode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *importSSTClient) Upload(ctx context.Context, opts ...grpc.CallOption) (ImportSST_UploadClient, error) { stream, err := c.cc.NewStream(ctx, &_ImportSST_serviceDesc.Streams[0], "/import_sstpb.ImportSST/Upload", opts...) if err != nil { @@ -2732,6 +2833,8 @@ func (c *importSSTClient) ClearFiles(ctx context.Context, in *ClearRequest, opts type ImportSSTServer interface { // Switch to normal/import mode. SwitchMode(context.Context, *SwitchModeRequest) (*SwitchModeResponse, error) + // Get import mode(normal/import). + GetMode(context.Context, *GetModeRequest) (*GetModeResponse, error) // Upload an SST file to a server. Upload(ImportSST_UploadServer) error // Ingest an uploaded SST file to a region. @@ -2762,6 +2865,9 @@ type UnimplementedImportSSTServer struct { func (*UnimplementedImportSSTServer) SwitchMode(ctx context.Context, req *SwitchModeRequest) (*SwitchModeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SwitchMode not implemented") } +func (*UnimplementedImportSSTServer) GetMode(ctx context.Context, req *GetModeRequest) (*GetModeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMode not implemented") +} func (*UnimplementedImportSSTServer) Upload(srv ImportSST_UploadServer) error { return status.Errorf(codes.Unimplemented, "method Upload not implemented") } @@ -2818,6 +2924,24 @@ func _ImportSST_SwitchMode_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _ImportSST_GetMode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetModeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ImportSSTServer).GetMode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/import_sstpb.ImportSST/GetMode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ImportSSTServer).GetMode(ctx, req.(*GetModeRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _ImportSST_Upload_Handler(srv interface{}, stream grpc.ServerStream) error { return srv.(ImportSSTServer).Upload(&importSSTUploadServer{stream}) } @@ -3051,6 +3175,10 @@ var _ImportSST_serviceDesc = grpc.ServiceDesc{ MethodName: "SwitchMode", Handler: _ImportSST_SwitchMode_Handler, }, + { + MethodName: "GetMode", + Handler: _ImportSST_GetMode_Handler, + }, { MethodName: "Ingest", Handler: _ImportSST_Ingest_Handler, @@ -3164,6 +3292,65 @@ func (m *SwitchModeResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *GetModeRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetModeRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GetModeRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + return len(dAtA) - i, nil +} + +func (m *GetModeResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetModeResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GetModeResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Mode != 0 { + i = encodeVarintImportSstpb(dAtA, i, uint64(m.Mode)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *Range) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4928,6 +5115,33 @@ func (m *SwitchModeResponse) Size() (n int) { return n } +func (m *GetModeRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *GetModeResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Mode != 0 { + n += 1 + sovImportSstpb(uint64(m.Mode)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *Range) Size() (n int) { if m == nil { return 0 @@ -5824,6 +6038,127 @@ func (m *SwitchModeResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *GetModeRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImportSstpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetModeRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetModeRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipImportSstpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthImportSstpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetModeResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImportSstpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetModeResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetModeResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType) + } + m.Mode = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImportSstpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Mode |= SwitchMode(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipImportSstpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthImportSstpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *Range) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/proto/import_sstpb.proto b/proto/import_sstpb.proto index de47d87..ec0b05a 100644 --- a/proto/import_sstpb.proto +++ b/proto/import_sstpb.proto @@ -34,6 +34,8 @@ option java_package = "org.tikv.kvproto"; service ImportSST { // Switch to normal/import mode. rpc SwitchMode(SwitchModeRequest) returns (SwitchModeResponse) {} + // Get import mode(normal/import). + rpc GetMode(GetModeRequest) returns (GetModeResponse) {} // Upload an SST file to a server. rpc Upload(stream UploadRequest) returns (UploadResponse) {} // Ingest an uploaded SST file to a region. @@ -75,6 +77,13 @@ message SwitchModeRequest { message SwitchModeResponse { } +message GetModeRequest { +} + +message GetModeResponse { + SwitchMode mode = 1; +} + message Range { bytes start = 1; bytes end = 2; diff --git a/scripts/proto.lock b/scripts/proto.lock index 33a8df5..c37f5e5 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -5424,6 +5424,19 @@ { "name": "SwitchModeResponse" }, + { + "name": "GetModeRequest" + }, + { + "name": "GetModeResponse", + "fields": [ + { + "id": 1, + "name": "mode", + "type": "SwitchMode" + } + ] + }, { "name": "Range", "fields": [ @@ -6092,6 +6105,11 @@ "in_type": "SwitchModeRequest", "out_type": "SwitchModeResponse" }, + { + "name": "GetMode", + "in_type": "GetModeRequest", + "out_type": "GetModeResponse" + }, { "name": "Upload", "in_type": "UploadRequest", -- Gitee From b3251ae06bdd08fe5590eb5b7c5971c75db3d324 Mon Sep 17 00:00:00 2001 From: Lloyd-Pottiger <60744015+Lloyd-Pottiger@users.noreply.github.com> Date: Thu, 23 Feb 2023 19:03:27 +0800 Subject: [PATCH 05/44] Add s3 lock service for tiflash disaggregated architecture (#1060) * Add S3Lock service --------- Signed-off-by: Lloyd-Pottiger Signed-off-by: JaySon-Huang Co-authored-by: JaySon-Huang --- pkg/disaggregated/disaggregated.pb.go | 1828 +++++++++++++++++++++++++ pkg/tikvpb/tikvpb.pb.go | 375 +++-- proto/disaggregated.proto | 45 + proto/tikvpb.proto | 7 + 4 files changed, 2108 insertions(+), 147 deletions(-) create mode 100644 pkg/disaggregated/disaggregated.pb.go create mode 100644 proto/disaggregated.proto diff --git a/pkg/disaggregated/disaggregated.pb.go b/pkg/disaggregated/disaggregated.pb.go new file mode 100644 index 0000000..42217a2 --- /dev/null +++ b/pkg/disaggregated/disaggregated.pb.go @@ -0,0 +1,1828 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: disaggregated.proto + +package disaggregated + +import ( + "fmt" + "io" + "math" + math_bits "math/bits" + + proto "github.com/golang/protobuf/proto" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type S3LockResult struct { + // Types that are valid to be assigned to Error: + // + // *S3LockResult_Success + // *S3LockResult_NotOwner + // *S3LockResult_Conflict + Error isS3LockResult_Error `protobuf_oneof:"error"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *S3LockResult) Reset() { *m = S3LockResult{} } +func (m *S3LockResult) String() string { return proto.CompactTextString(m) } +func (*S3LockResult) ProtoMessage() {} +func (*S3LockResult) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{0} +} +func (m *S3LockResult) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *S3LockResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_S3LockResult.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *S3LockResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_S3LockResult.Merge(m, src) +} +func (m *S3LockResult) XXX_Size() int { + return m.Size() +} +func (m *S3LockResult) XXX_DiscardUnknown() { + xxx_messageInfo_S3LockResult.DiscardUnknown(m) +} + +var xxx_messageInfo_S3LockResult proto.InternalMessageInfo + +type isS3LockResult_Error interface { + isS3LockResult_Error() + MarshalTo([]byte) (int, error) + Size() int +} + +type S3LockResult_Success struct { + Success *Success `protobuf:"bytes,1,opt,name=success,proto3,oneof" json:"success,omitempty"` +} +type S3LockResult_NotOwner struct { + NotOwner *NotOwner `protobuf:"bytes,2,opt,name=not_owner,json=notOwner,proto3,oneof" json:"not_owner,omitempty"` +} +type S3LockResult_Conflict struct { + Conflict *Conflict `protobuf:"bytes,3,opt,name=conflict,proto3,oneof" json:"conflict,omitempty"` +} + +func (*S3LockResult_Success) isS3LockResult_Error() {} +func (*S3LockResult_NotOwner) isS3LockResult_Error() {} +func (*S3LockResult_Conflict) isS3LockResult_Error() {} + +func (m *S3LockResult) GetError() isS3LockResult_Error { + if m != nil { + return m.Error + } + return nil +} + +func (m *S3LockResult) GetSuccess() *Success { + if x, ok := m.GetError().(*S3LockResult_Success); ok { + return x.Success + } + return nil +} + +func (m *S3LockResult) GetNotOwner() *NotOwner { + if x, ok := m.GetError().(*S3LockResult_NotOwner); ok { + return x.NotOwner + } + return nil +} + +func (m *S3LockResult) GetConflict() *Conflict { + if x, ok := m.GetError().(*S3LockResult_Conflict); ok { + return x.Conflict + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*S3LockResult) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*S3LockResult_Success)(nil), + (*S3LockResult_NotOwner)(nil), + (*S3LockResult_Conflict)(nil), + } +} + +type Success struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Success) Reset() { *m = Success{} } +func (m *Success) String() string { return proto.CompactTextString(m) } +func (*Success) ProtoMessage() {} +func (*Success) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{1} +} +func (m *Success) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Success) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Success.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Success) XXX_Merge(src proto.Message) { + xxx_messageInfo_Success.Merge(m, src) +} +func (m *Success) XXX_Size() int { + return m.Size() +} +func (m *Success) XXX_DiscardUnknown() { + xxx_messageInfo_Success.DiscardUnknown(m) +} + +var xxx_messageInfo_Success proto.InternalMessageInfo + +// Error caused by S3GC owner changed +// client should retry +type NotOwner struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NotOwner) Reset() { *m = NotOwner{} } +func (m *NotOwner) String() string { return proto.CompactTextString(m) } +func (*NotOwner) ProtoMessage() {} +func (*NotOwner) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{2} +} +func (m *NotOwner) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NotOwner) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NotOwner.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NotOwner) XXX_Merge(src proto.Message) { + xxx_messageInfo_NotOwner.Merge(m, src) +} +func (m *NotOwner) XXX_Size() int { + return m.Size() +} +func (m *NotOwner) XXX_DiscardUnknown() { + xxx_messageInfo_NotOwner.DiscardUnknown(m) +} + +var xxx_messageInfo_NotOwner proto.InternalMessageInfo + +// Error caused by concurrency conflict, +// request cancel +type Conflict struct { + Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Conflict) Reset() { *m = Conflict{} } +func (m *Conflict) String() string { return proto.CompactTextString(m) } +func (*Conflict) ProtoMessage() {} +func (*Conflict) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{3} +} +func (m *Conflict) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Conflict) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Conflict.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Conflict) XXX_Merge(src proto.Message) { + xxx_messageInfo_Conflict.Merge(m, src) +} +func (m *Conflict) XXX_Size() int { + return m.Size() +} +func (m *Conflict) XXX_DiscardUnknown() { + xxx_messageInfo_Conflict.DiscardUnknown(m) +} + +var xxx_messageInfo_Conflict proto.InternalMessageInfo + +func (m *Conflict) GetReason() string { + if m != nil { + return m.Reason + } + return "" +} + +type TryAddLockRequest struct { + // The data file key to add lock + DataFileKey string `protobuf:"bytes,1,opt,name=data_file_key,json=dataFileKey,proto3" json:"data_file_key,omitempty"` + // The lock store id + LockStoreId uint64 `protobuf:"varint,3,opt,name=lock_store_id,json=lockStoreId,proto3" json:"lock_store_id,omitempty"` + // The upload sequence number of lock store + LockSeq uint64 `protobuf:"varint,4,opt,name=lock_seq,json=lockSeq,proto3" json:"lock_seq,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TryAddLockRequest) Reset() { *m = TryAddLockRequest{} } +func (m *TryAddLockRequest) String() string { return proto.CompactTextString(m) } +func (*TryAddLockRequest) ProtoMessage() {} +func (*TryAddLockRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{4} +} +func (m *TryAddLockRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TryAddLockRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TryAddLockRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TryAddLockRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TryAddLockRequest.Merge(m, src) +} +func (m *TryAddLockRequest) XXX_Size() int { + return m.Size() +} +func (m *TryAddLockRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TryAddLockRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TryAddLockRequest proto.InternalMessageInfo + +func (m *TryAddLockRequest) GetDataFileKey() string { + if m != nil { + return m.DataFileKey + } + return "" +} + +func (m *TryAddLockRequest) GetLockStoreId() uint64 { + if m != nil { + return m.LockStoreId + } + return 0 +} + +func (m *TryAddLockRequest) GetLockSeq() uint64 { + if m != nil { + return m.LockSeq + } + return 0 +} + +type TryAddLockResponse struct { + Result *S3LockResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TryAddLockResponse) Reset() { *m = TryAddLockResponse{} } +func (m *TryAddLockResponse) String() string { return proto.CompactTextString(m) } +func (*TryAddLockResponse) ProtoMessage() {} +func (*TryAddLockResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{5} +} +func (m *TryAddLockResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TryAddLockResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TryAddLockResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TryAddLockResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TryAddLockResponse.Merge(m, src) +} +func (m *TryAddLockResponse) XXX_Size() int { + return m.Size() +} +func (m *TryAddLockResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TryAddLockResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TryAddLockResponse proto.InternalMessageInfo + +func (m *TryAddLockResponse) GetResult() *S3LockResult { + if m != nil { + return m.Result + } + return nil +} + +type TryMarkDeleteRequest struct { + // The data file key to be marked as deleted + DataFileKey string `protobuf:"bytes,1,opt,name=data_file_key,json=dataFileKey,proto3" json:"data_file_key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TryMarkDeleteRequest) Reset() { *m = TryMarkDeleteRequest{} } +func (m *TryMarkDeleteRequest) String() string { return proto.CompactTextString(m) } +func (*TryMarkDeleteRequest) ProtoMessage() {} +func (*TryMarkDeleteRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{6} +} +func (m *TryMarkDeleteRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TryMarkDeleteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TryMarkDeleteRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TryMarkDeleteRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TryMarkDeleteRequest.Merge(m, src) +} +func (m *TryMarkDeleteRequest) XXX_Size() int { + return m.Size() +} +func (m *TryMarkDeleteRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TryMarkDeleteRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TryMarkDeleteRequest proto.InternalMessageInfo + +func (m *TryMarkDeleteRequest) GetDataFileKey() string { + if m != nil { + return m.DataFileKey + } + return "" +} + +type TryMarkDeleteResponse struct { + Result *S3LockResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TryMarkDeleteResponse) Reset() { *m = TryMarkDeleteResponse{} } +func (m *TryMarkDeleteResponse) String() string { return proto.CompactTextString(m) } +func (*TryMarkDeleteResponse) ProtoMessage() {} +func (*TryMarkDeleteResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{7} +} +func (m *TryMarkDeleteResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TryMarkDeleteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TryMarkDeleteResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TryMarkDeleteResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TryMarkDeleteResponse.Merge(m, src) +} +func (m *TryMarkDeleteResponse) XXX_Size() int { + return m.Size() +} +func (m *TryMarkDeleteResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TryMarkDeleteResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TryMarkDeleteResponse proto.InternalMessageInfo + +func (m *TryMarkDeleteResponse) GetResult() *S3LockResult { + if m != nil { + return m.Result + } + return nil +} + +func init() { + proto.RegisterType((*S3LockResult)(nil), "disaggregated.S3LockResult") + proto.RegisterType((*Success)(nil), "disaggregated.Success") + proto.RegisterType((*NotOwner)(nil), "disaggregated.NotOwner") + proto.RegisterType((*Conflict)(nil), "disaggregated.Conflict") + proto.RegisterType((*TryAddLockRequest)(nil), "disaggregated.TryAddLockRequest") + proto.RegisterType((*TryAddLockResponse)(nil), "disaggregated.TryAddLockResponse") + proto.RegisterType((*TryMarkDeleteRequest)(nil), "disaggregated.TryMarkDeleteRequest") + proto.RegisterType((*TryMarkDeleteResponse)(nil), "disaggregated.TryMarkDeleteResponse") +} + +func init() { proto.RegisterFile("disaggregated.proto", fileDescriptor_1026192e39a9f8dc) } + +var fileDescriptor_1026192e39a9f8dc = []byte{ + // 368 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x52, 0xcd, 0x4e, 0xea, 0x40, + 0x14, 0xa6, 0xf7, 0x72, 0x69, 0x39, 0x5c, 0x92, 0x7b, 0x47, 0xc5, 0x1a, 0x93, 0xc6, 0xcc, 0xca, + 0x55, 0x17, 0x10, 0x5d, 0xb8, 0x13, 0x8d, 0x81, 0x88, 0x9a, 0x14, 0xf6, 0x4d, 0x6d, 0x0f, 0x4d, + 0xd3, 0xa6, 0x03, 0x33, 0x03, 0xa6, 0x6f, 0xe2, 0xb3, 0xf8, 0x04, 0x2e, 0x7d, 0x04, 0x83, 0x2f, + 0x62, 0xa6, 0x4c, 0x13, 0x20, 0x6e, 0x8c, 0xab, 0x99, 0xf9, 0x7e, 0xe6, 0x7c, 0xe7, 0xcc, 0xc0, + 0x5e, 0x94, 0x88, 0x20, 0x8e, 0x39, 0xc6, 0x81, 0xc4, 0xc8, 0x9d, 0x71, 0x26, 0x19, 0x69, 0x6f, + 0x81, 0xf4, 0xc5, 0x80, 0xbf, 0xe3, 0xde, 0x88, 0x85, 0xa9, 0x87, 0x62, 0x91, 0x49, 0xd2, 0x05, + 0x53, 0x2c, 0xc2, 0x10, 0x85, 0xb0, 0x8d, 0x13, 0xe3, 0xb4, 0xd5, 0xed, 0xb8, 0xdb, 0xd7, 0x8c, + 0xd7, 0xec, 0xa0, 0xe6, 0x55, 0x42, 0x72, 0x0e, 0xcd, 0x9c, 0x49, 0x9f, 0x3d, 0xe5, 0xc8, 0xed, + 0x5f, 0xa5, 0xeb, 0x70, 0xc7, 0x75, 0xcf, 0xe4, 0x83, 0xa2, 0x07, 0x35, 0xcf, 0xca, 0xf5, 0x9e, + 0x9c, 0x81, 0x15, 0xb2, 0x7c, 0x9a, 0x25, 0xa1, 0xb4, 0x7f, 0x7f, 0x69, 0xbb, 0xd2, 0xb4, 0xb2, + 0x55, 0xd2, 0xbe, 0x09, 0x7f, 0x90, 0x73, 0xc6, 0x69, 0x13, 0x4c, 0x9d, 0x86, 0x02, 0x58, 0x55, + 0x09, 0x4a, 0xc1, 0xaa, 0x7c, 0xa4, 0x03, 0x0d, 0x8e, 0x81, 0x60, 0x79, 0xd9, 0x4d, 0xd3, 0xd3, + 0x27, 0xba, 0x84, 0xff, 0x13, 0x5e, 0x5c, 0x46, 0xd1, 0xba, 0xf5, 0xf9, 0x02, 0x85, 0x24, 0x14, + 0xda, 0x51, 0x20, 0x03, 0x7f, 0x9a, 0x64, 0xe8, 0xa7, 0x58, 0x68, 0x4f, 0x4b, 0x81, 0x37, 0x49, + 0x86, 0xb7, 0x58, 0x28, 0x4d, 0xc6, 0xc2, 0xd4, 0x17, 0x92, 0x71, 0xf4, 0x93, 0xa8, 0x0c, 0x5e, + 0xf7, 0x5a, 0x0a, 0x1c, 0x2b, 0x6c, 0x18, 0x91, 0x23, 0xb0, 0xd6, 0x1a, 0x9c, 0xdb, 0xf5, 0x92, + 0x36, 0x4b, 0x1a, 0xe7, 0x74, 0x08, 0x64, 0xb3, 0xae, 0x98, 0xb1, 0x5c, 0x20, 0xe9, 0xa9, 0x94, + 0x6a, 0xfc, 0x7a, 0xe6, 0xc7, 0xbb, 0x33, 0xdf, 0x78, 0x21, 0x4f, 0x4b, 0xe9, 0x05, 0xec, 0x4f, + 0x78, 0x71, 0x17, 0xf0, 0xf4, 0x1a, 0x33, 0x94, 0xf8, 0x8d, 0x2e, 0xe8, 0x08, 0x0e, 0x76, 0xbc, + 0x3f, 0x48, 0xd2, 0xa7, 0xaf, 0x2b, 0xc7, 0x78, 0x5b, 0x39, 0xc6, 0xfb, 0xca, 0x31, 0x9e, 0x3f, + 0x9c, 0x1a, 0xfc, 0x63, 0x3c, 0x76, 0x65, 0x92, 0x2e, 0xdd, 0x74, 0x59, 0xfe, 0xbb, 0xc7, 0x46, + 0xb9, 0xf4, 0x3e, 0x03, 0x00, 0x00, 0xff, 0xff, 0xe2, 0x41, 0x32, 0xe4, 0x95, 0x02, 0x00, 0x00, +} + +func (m *S3LockResult) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *S3LockResult) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *S3LockResult) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Error != nil { + { + size := m.Error.Size() + i -= size + if _, err := m.Error.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *S3LockResult_Success) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *S3LockResult_Success) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Success != nil { + { + size, err := m.Success.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *S3LockResult_NotOwner) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *S3LockResult_NotOwner) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.NotOwner != nil { + { + size, err := m.NotOwner.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *S3LockResult_Conflict) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *S3LockResult_Conflict) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Conflict != nil { + { + size, err := m.Conflict.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *Success) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Success) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Success) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + return len(dAtA) - i, nil +} + +func (m *NotOwner) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NotOwner) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NotOwner) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + return len(dAtA) - i, nil +} + +func (m *Conflict) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Conflict) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Conflict) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Reason) > 0 { + i -= len(m.Reason) + copy(dAtA[i:], m.Reason) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Reason))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TryAddLockRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TryAddLockRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TryAddLockRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.LockSeq != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.LockSeq)) + i-- + dAtA[i] = 0x20 + } + if m.LockStoreId != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.LockStoreId)) + i-- + dAtA[i] = 0x18 + } + if len(m.DataFileKey) > 0 { + i -= len(m.DataFileKey) + copy(dAtA[i:], m.DataFileKey) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.DataFileKey))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TryAddLockResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TryAddLockResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TryAddLockResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Result != nil { + { + size, err := m.Result.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TryMarkDeleteRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TryMarkDeleteRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TryMarkDeleteRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.DataFileKey) > 0 { + i -= len(m.DataFileKey) + copy(dAtA[i:], m.DataFileKey) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.DataFileKey))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TryMarkDeleteResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TryMarkDeleteResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TryMarkDeleteResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Result != nil { + { + size, err := m.Result.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintDisaggregated(dAtA []byte, offset int, v uint64) int { + offset -= sovDisaggregated(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *S3LockResult) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + n += m.Error.Size() + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *S3LockResult_Success) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Success != nil { + l = m.Success.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + return n +} +func (m *S3LockResult_NotOwner) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NotOwner != nil { + l = m.NotOwner.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + return n +} +func (m *S3LockResult_Conflict) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Conflict != nil { + l = m.Conflict.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + return n +} +func (m *Success) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NotOwner) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Conflict) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Reason) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TryAddLockRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.DataFileKey) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.LockStoreId != 0 { + n += 1 + sovDisaggregated(uint64(m.LockStoreId)) + } + if m.LockSeq != 0 { + n += 1 + sovDisaggregated(uint64(m.LockSeq)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TryAddLockResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Result != nil { + l = m.Result.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TryMarkDeleteRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.DataFileKey) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TryMarkDeleteResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Result != nil { + l = m.Result.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovDisaggregated(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozDisaggregated(x uint64) (n int) { + return sovDisaggregated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *S3LockResult) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: S3LockResult: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: S3LockResult: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &Success{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Error = &S3LockResult_Success{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NotOwner", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &NotOwner{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Error = &S3LockResult_NotOwner{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conflict", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &Conflict{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Error = &S3LockResult_Conflict{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Success) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Success: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Success: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NotOwner) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NotOwner: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NotOwner: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Conflict) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Conflict: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Conflict: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TryAddLockRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TryAddLockRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TryAddLockRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DataFileKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DataFileKey = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LockStoreId", wireType) + } + m.LockStoreId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LockStoreId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LockSeq", wireType) + } + m.LockSeq = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LockSeq |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TryAddLockResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TryAddLockResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TryAddLockResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Result == nil { + m.Result = &S3LockResult{} + } + if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TryMarkDeleteRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TryMarkDeleteRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TryMarkDeleteRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DataFileKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DataFileKey = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TryMarkDeleteResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TryMarkDeleteResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TryMarkDeleteResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Result == nil { + m.Result = &S3LockResult{} + } + if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipDisaggregated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthDisaggregated + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupDisaggregated + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthDisaggregated + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthDisaggregated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowDisaggregated = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupDisaggregated = fmt.Errorf("proto: unexpected end of group") +) diff --git a/pkg/tikvpb/tikvpb.pb.go b/pkg/tikvpb/tikvpb.pb.go index 102ac43..fc9b192 100644 --- a/pkg/tikvpb/tikvpb.pb.go +++ b/pkg/tikvpb/tikvpb.pb.go @@ -13,6 +13,7 @@ import ( _ "github.com/gogo/protobuf/gogoproto" proto "github.com/golang/protobuf/proto" coprocessor "github.com/pingcap/kvproto/pkg/coprocessor" + disaggregated "github.com/pingcap/kvproto/pkg/disaggregated" kvrpcpb "github.com/pingcap/kvproto/pkg/kvrpcpb" mpp "github.com/pingcap/kvproto/pkg/mpp" raft_serverpb "github.com/pingcap/kvproto/pkg/raft_serverpb" @@ -1247,153 +1248,157 @@ func init() { func init() { proto.RegisterFile("tikvpb.proto", fileDescriptor_274fe050f0c997b3) } var fileDescriptor_274fe050f0c997b3 = []byte{ - // 2332 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x9a, 0xdb, 0x52, 0xdc, 0xc8, - 0x19, 0x80, 0x35, 0x66, 0xcc, 0xa1, 0x31, 0x06, 0x1a, 0x30, 0xa2, 0xcd, 0xc1, 0xc8, 0xec, 0x86, - 0x6c, 0xaa, 0x88, 0xf1, 0x3a, 0xeb, 0xec, 0x21, 0x1b, 0xcc, 0x60, 0x03, 0x1e, 0xa8, 0x9d, 0x9a, - 0x19, 0xef, 0x3a, 0x55, 0x49, 0x51, 0xcd, 0x4c, 0x03, 0x0a, 0x33, 0xd2, 0x44, 0x6a, 0x84, 0xe7, - 0x4d, 0xf2, 0x08, 0xa9, 0x3c, 0x47, 0x2e, 0x72, 0x99, 0xaa, 0x5c, 0x24, 0x97, 0x29, 0xe7, 0x21, - 0x72, 0x99, 0xad, 0x6e, 0x49, 0xad, 0x6e, 0xa9, 0x5b, 0xc3, 0x5e, 0x79, 0xfc, 0x1f, 0xfb, 0xa4, - 0xbf, 0xbf, 0xbf, 0x0b, 0xf0, 0x80, 0xba, 0xd7, 0xd1, 0xe0, 0x7c, 0x67, 0x10, 0xf8, 0xd4, 0x87, - 0xe3, 0xf1, 0xff, 0xd0, 0x7c, 0xc7, 0x1f, 0x04, 0x7e, 0x87, 0x84, 0xa1, 0x1f, 0xc4, 0x2a, 0x34, - 0x73, 0x1d, 0x05, 0x83, 0x4e, 0x6a, 0x89, 0xa6, 0xfa, 0x83, 0x41, 0xf2, 0x73, 0x21, 0xc0, 0x17, - 0xf4, 0x2c, 0x24, 0x41, 0x44, 0x02, 0xa1, 0x5f, 0xbc, 0xf4, 0x2f, 0x7d, 0xfe, 0xf3, 0x97, 0xec, - 0x57, 0x22, 0x9d, 0x0d, 0x6e, 0x42, 0xca, 0x7f, 0xc6, 0x02, 0xe7, 0x9f, 0x73, 0x60, 0x71, 0x1f, - 0xd3, 0xce, 0x55, 0xcd, 0xef, 0xf7, 0xb1, 0xd7, 0x0d, 0x9b, 0xe4, 0x4f, 0x37, 0x24, 0xa4, 0x70, - 0x0f, 0x4c, 0x06, 0xf1, 0xcf, 0xd0, 0xae, 0x3c, 0x19, 0xdb, 0x9e, 0x7e, 0xbe, 0xb5, 0x93, 0x0c, - 0x55, 0x67, 0xbf, 0x93, 0xfc, 0xdb, 0x14, 0x5e, 0x70, 0x03, 0x4c, 0x27, 0xbf, 0xcf, 0xdc, 0x6e, - 0x68, 0xdf, 0x7b, 0x32, 0xb6, 0x5d, 0x6d, 0x82, 0x44, 0x74, 0xdc, 0x0d, 0xd1, 0xbf, 0x66, 0xc1, - 0x44, 0x9a, 0xee, 0x67, 0x60, 0xec, 0x90, 0x50, 0xbb, 0xf2, 0xa4, 0xb2, 0x3d, 0xfd, 0x7c, 0x61, - 0x27, 0x9d, 0xeb, 0x21, 0xa1, 0x89, 0xc5, 0x91, 0xd5, 0x64, 0x16, 0xf0, 0x33, 0x50, 0x6d, 0x75, - 0xb0, 0x67, 0xdf, 0xe3, 0x96, 0x8b, 0xc2, 0x92, 0x09, 0x33, 0x53, 0x6e, 0x03, 0xbf, 0x00, 0x93, - 0x8d, 0x80, 0xdc, 0x06, 0x2e, 0x25, 0xf6, 0x18, 0xb7, 0xb7, 0x85, 0x7d, 0xaa, 0xc8, 0x7c, 0x84, - 0x2d, 0x7c, 0x06, 0xc6, 0xd9, 0xf4, 0x5c, 0x6a, 0x57, 0xb9, 0xd7, 0x23, 0xe1, 0x15, 0x8b, 0x33, - 0x9f, 0xc4, 0x8e, 0x79, 0x1c, 0xf7, 0x07, 0x7e, 0x40, 0xed, 0xfb, 0x39, 0x8f, 0x58, 0x2c, 0x79, - 0xc4, 0x02, 0xf8, 0x39, 0x98, 0xa8, 0xf5, 0x08, 0xf6, 0x6e, 0x06, 0xf6, 0x38, 0x77, 0x59, 0xce, - 0x92, 0xc4, 0xf2, 0xcc, 0x27, 0xb5, 0x64, 0x13, 0xe2, 0x8b, 0xcf, 0x96, 0x6a, 0x22, 0x37, 0xa1, - 0x54, 0x21, 0x4d, 0x28, 0x15, 0xc1, 0xd7, 0x60, 0x86, 0xff, 0x6e, 0xfa, 0xbd, 0xde, 0x39, 0xee, - 0x5c, 0xdb, 0x93, 0xdc, 0x79, 0x4d, 0x75, 0x4e, 0xb5, 0x59, 0x04, 0xd5, 0x8b, 0xa5, 0x67, 0xeb, - 0x7a, 0xe2, 0x77, 0xae, 0xed, 0xa9, 0x5c, 0xfa, 0x54, 0x21, 0xa5, 0x4f, 0x45, 0xf0, 0xb7, 0x60, - 0xba, 0x49, 0x42, 0xbf, 0x17, 0x11, 0xee, 0x0a, 0xb8, 0xeb, 0x63, 0xe1, 0x2a, 0xe9, 0x32, 0x6f, - 0xd9, 0x03, 0x6e, 0x81, 0x7b, 0x87, 0x35, 0x7b, 0x9a, 0xfb, 0xc1, 0xec, 0x70, 0xd4, 0x32, 0xf3, - 0x7b, 0x87, 0x35, 0x96, 0xe6, 0x80, 0xf4, 0x08, 0x25, 0x4d, 0xec, 0x5d, 0x12, 0xfb, 0x41, 0x2e, - 0x8d, 0xa4, 0x93, 0xd2, 0x48, 0x52, 0xb6, 0x8b, 0x4d, 0x7c, 0xcb, 0x16, 0x77, 0x26, 0xb7, 0x8b, - 0xb1, 0x58, 0xda, 0xc5, 0x58, 0xc0, 0x67, 0x86, 0x6f, 0xc5, 0x9e, 0x3c, 0xcc, 0xcf, 0x2c, 0xd3, - 0xc9, 0x33, 0xcb, 0xa4, 0x49, 0xca, 0xc6, 0x0d, 0xb5, 0x67, 0x8b, 0x29, 0x1b, 0x37, 0xb9, 0x94, - 0x8d, 0x1b, 0x25, 0x25, 0x73, 0x9b, 0x33, 0xa4, 0x54, 0x7c, 0x65, 0x0f, 0xf8, 0x25, 0x98, 0x6a, - 0xe2, 0xdb, 0x78, 0xde, 0xf6, 0x3c, 0x77, 0x5f, 0x91, 0xdd, 0x93, 0x15, 0x11, 0xce, 0x99, 0x35, - 0x3c, 0x02, 0x0f, 0xd3, 0x48, 0x89, 0x3f, 0xe4, 0xfe, 0xeb, 0x85, 0xf4, 0xf9, 0x20, 0x39, 0x3f, - 0x76, 0xfc, 0x9b, 0xf8, 0x96, 0x7f, 0xc9, 0x0b, 0xb9, 0xe3, 0x9f, 0xc8, 0xa5, 0xe3, 0x9f, 0x48, - 0x92, 0xf4, 0xf2, 0x1e, 0x2f, 0x16, 0xd3, 0x6b, 0xb7, 0x39, 0xe7, 0x07, 0xf7, 0xc1, 0x83, 0x74, - 0x40, 0x7c, 0x0c, 0x4b, 0x3c, 0xce, 0x6a, 0x61, 0x1a, 0xea, 0x40, 0x14, 0x1f, 0xf8, 0x6b, 0x30, - 0x5d, 0xcb, 0xaa, 0xb4, 0xfd, 0x28, 0x29, 0x48, 0x72, 0xe5, 0x96, 0x76, 0x40, 0x32, 0x85, 0x75, - 0x30, 0xdb, 0x20, 0x61, 0xe8, 0xf6, 0xdd, 0x90, 0xba, 0x1d, 0xfe, 0x4d, 0x2c, 0x73, 0xef, 0x8d, - 0xac, 0x3c, 0xa9, 0xfa, 0x2c, 0x50, 0xde, 0x13, 0xfe, 0x00, 0x16, 0x24, 0x91, 0xf8, 0xc2, 0x6d, - 0x1e, 0xf0, 0xa9, 0x2e, 0x60, 0xf1, 0x3b, 0xd7, 0x45, 0x60, 0xab, 0x5d, 0xbb, 0x22, 0x9d, 0xeb, - 0xf6, 0x07, 0xaf, 0x45, 0x31, 0xbd, 0x09, 0xed, 0x95, 0xdc, 0x6a, 0xab, 0x6a, 0x69, 0xb5, 0x55, - 0x05, 0x5b, 0xed, 0xf6, 0x07, 0xef, 0x88, 0xe0, 0x80, 0xee, 0x13, 0x4c, 0x6d, 0x94, 0x5b, 0x6d, - 0x59, 0x29, 0xad, 0xb6, 0x2c, 0x66, 0xd3, 0xe4, 0x51, 0x5b, 0xa4, 0xe3, 0x7b, 0x5d, 0x1c, 0x0c, - 0xd9, 0xe4, 0x43, 0x7b, 0x33, 0x37, 0x4d, 0x8d, 0x8d, 0x34, 0x4d, 0x8d, 0x36, 0x39, 0x54, 0xf2, - 0x4e, 0x3a, 0xc5, 0x43, 0x25, 0xa9, 0xd5, 0x43, 0x25, 0x6f, 0x6b, 0x1b, 0xc0, 0x37, 0x3d, 0x1c, - 0x5e, 0xb1, 0xd5, 0x6b, 0xfb, 0xdf, 0x93, 0x20, 0x74, 0x7d, 0xcf, 0x7e, 0xca, 0xa3, 0x39, 0x22, - 0x5a, 0xd1, 0x24, 0x8b, 0xa8, 0xf1, 0x87, 0x2e, 0x58, 0x69, 0x04, 0x64, 0x80, 0x03, 0xa2, 0x09, - 0xbe, 0xc5, 0x83, 0xff, 0x5c, 0xbe, 0xd5, 0xf4, 0x96, 0x59, 0x0e, 0x73, 0x34, 0xf8, 0x15, 0xb8, - 0xff, 0xba, 0x3f, 0xa0, 0x43, 0xfb, 0xff, 0xf1, 0x3d, 0xbc, 0xa9, 0xbd, 0xf1, 0xb9, 0x49, 0x16, - 0x2f, 0x76, 0xd9, 0xbf, 0x0f, 0xc6, 0x3a, 0xfd, 0xee, 0xdb, 0xea, 0xe4, 0xe3, 0xb9, 0x4d, 0xe7, - 0xaf, 0xf3, 0x60, 0x29, 0x47, 0x09, 0xe1, 0xc0, 0xf7, 0x42, 0x02, 0x0f, 0xc0, 0x54, 0x90, 0xfc, - 0x4e, 0xb9, 0xe2, 0x53, 0x03, 0x57, 0xc4, 0x56, 0x3b, 0xe9, 0x8f, 0x66, 0xe6, 0x38, 0x12, 0x2d, - 0xe0, 0x33, 0xb0, 0x48, 0x03, 0xec, 0x85, 0xec, 0xaa, 0x3d, 0xeb, 0xe1, 0x21, 0x09, 0xce, 0x7a, - 0x3e, 0xee, 0x72, 0x0a, 0xa8, 0x36, 0xa1, 0xd0, 0x9d, 0x30, 0xd5, 0x89, 0x8f, 0xbb, 0xe8, 0x7f, - 0xb3, 0x60, 0x52, 0x8c, 0x72, 0x5b, 0xa6, 0x91, 0x45, 0x95, 0x46, 0x62, 0x93, 0x14, 0x47, 0x7e, - 0xa1, 0xe0, 0xc8, 0x52, 0x0e, 0x47, 0x84, 0x6d, 0xcc, 0x23, 0x2f, 0x0b, 0x3c, 0xb2, 0xa2, 0xe1, - 0x11, 0xe1, 0x94, 0x01, 0xc9, 0x6e, 0x0e, 0x48, 0x96, 0x0b, 0x40, 0x22, 0x9c, 0x52, 0x22, 0xd9, - 0xcd, 0x11, 0xc9, 0x72, 0x81, 0x48, 0x32, 0x97, 0x04, 0x49, 0x5e, 0xe4, 0x91, 0xc4, 0x2e, 0x22, - 0x89, 0x70, 0x12, 0x4c, 0xf2, 0xb2, 0xc0, 0x24, 0x2b, 0x1a, 0x26, 0xc9, 0x26, 0x25, 0xae, 0xbe, - 0x37, 0x7a, 0x28, 0x59, 0x37, 0x41, 0x89, 0x08, 0x91, 0xa3, 0x92, 0x97, 0x05, 0x2a, 0x59, 0xd1, - 0x50, 0x49, 0x36, 0x00, 0x81, 0x25, 0x7b, 0x3a, 0x2c, 0x59, 0xd5, 0x63, 0x89, 0x70, 0x57, 0xb8, - 0xe4, 0x13, 0x89, 0x4b, 0x16, 0x14, 0x2e, 0x11, 0xf6, 0x0c, 0x4c, 0xf6, 0x74, 0x60, 0xb2, 0xaa, - 0x07, 0x93, 0x2c, 0x91, 0x7c, 0x5f, 0xed, 0xe6, 0xc8, 0x64, 0xb9, 0x40, 0x26, 0xd9, 0x6e, 0x26, - 0x68, 0xb2, 0xa7, 0x43, 0x93, 0x55, 0x3d, 0x9a, 0x48, 0xb3, 0x93, 0xd8, 0x64, 0x37, 0xc7, 0x26, - 0xcb, 0x05, 0x36, 0x51, 0x92, 0x32, 0xb6, 0xd8, 0xd3, 0xc1, 0xc9, 0xaa, 0x1e, 0x4e, 0x8a, 0x49, - 0x59, 0x84, 0xaf, 0x8a, 0x74, 0x82, 0x74, 0x74, 0x22, 0xbc, 0x25, 0x3c, 0x39, 0x36, 0xe0, 0xc9, - 0x86, 0x11, 0x4f, 0x44, 0x94, 0x3c, 0x9f, 0xbc, 0xc8, 0xf3, 0x89, 0x5d, 0xe4, 0x93, 0xec, 0x5b, - 0x48, 0x01, 0xe5, 0xd8, 0x00, 0x28, 0x1b, 0x46, 0x40, 0x51, 0x06, 0x20, 0xef, 0x78, 0x4d, 0x4b, - 0x28, 0x6b, 0x06, 0x42, 0x11, 0x61, 0x54, 0x44, 0xf9, 0x52, 0x87, 0x28, 0x4b, 0x39, 0x44, 0xc9, - 0xf6, 0x41, 0xbe, 0xcc, 0x4e, 0x4c, 0x8c, 0xf2, 0xc4, 0xcc, 0x28, 0x22, 0x52, 0x01, 0x52, 0xde, - 0x97, 0x41, 0xca, 0x56, 0x39, 0xa4, 0x88, 0xa8, 0x5a, 0x4a, 0x39, 0x36, 0x50, 0xca, 0x86, 0x91, - 0x52, 0xb2, 0x25, 0xcf, 0x61, 0x4a, 0x4d, 0x8b, 0x29, 0x6b, 0x06, 0x4c, 0xc9, 0x96, 0x5c, 0xe1, - 0x94, 0xf7, 0x65, 0x9c, 0xb2, 0x55, 0xce, 0x29, 0xd9, 0x4c, 0x75, 0xa0, 0x72, 0x6c, 0x00, 0x95, - 0x0d, 0x23, 0xa8, 0x28, 0x87, 0x4b, 0xde, 0xdc, 0x77, 0x25, 0xa4, 0xf2, 0xb4, 0x94, 0x54, 0x44, - 0x48, 0x1d, 0xaa, 0xfc, 0x71, 0x34, 0xaa, 0x7c, 0x76, 0x17, 0x54, 0x11, 0x49, 0x4a, 0x58, 0xe5, - 0xeb, 0x1c, 0xab, 0x38, 0x65, 0xac, 0x22, 0x02, 0xea, 0x60, 0x65, 0x1f, 0xcc, 0xc5, 0x17, 0x0a, - 0xbe, 0xa0, 0xa7, 0x24, 0x0c, 0xf1, 0x25, 0x81, 0x3b, 0xa0, 0xda, 0x0f, 0x2f, 0x53, 0x42, 0x41, - 0x3b, 0xea, 0x0b, 0x8b, 0x64, 0xd9, 0xe4, 0x76, 0x4e, 0x0b, 0xac, 0x18, 0x19, 0x09, 0x2e, 0x83, - 0x09, 0x1a, 0xa3, 0x0a, 0x27, 0x8a, 0x6a, 0x73, 0x9c, 0x72, 0x4c, 0x81, 0x6b, 0x00, 0x74, 0x49, - 0x0f, 0x0f, 0xcf, 0xa8, 0xdb, 0x27, 0x1c, 0x21, 0xaa, 0xcd, 0x29, 0x2e, 0x69, 0xbb, 0x7d, 0xe2, - 0xfc, 0x0a, 0x20, 0xf3, 0x64, 0x8c, 0x51, 0x9f, 0xff, 0xcd, 0x01, 0xd5, 0xb6, 0x7b, 0x1d, 0xc1, - 0x17, 0xe0, 0x7e, 0x3d, 0x62, 0x85, 0x5c, 0xf7, 0x9e, 0x82, 0xb4, 0x58, 0xe3, 0x58, 0xf0, 0x25, - 0x18, 0xaf, 0x47, 0xbc, 0x7a, 0x68, 0x1f, 0x57, 0x90, 0x9e, 0x71, 0x1c, 0x0b, 0xd6, 0x00, 0xa8, - 0x47, 0x02, 0x59, 0x8c, 0x2f, 0x2d, 0xc8, 0xcc, 0x3c, 0x8e, 0x05, 0xdf, 0x83, 0xf9, 0x7a, 0x94, - 0xaf, 0x1e, 0xa3, 0xda, 0x22, 0x34, 0xb2, 0x26, 0x39, 0x16, 0xec, 0x82, 0xa5, 0xfa, 0xf7, 0xba, - 0x0a, 0x72, 0x97, 0x1e, 0x09, 0xdd, 0xa9, 0x46, 0x39, 0x16, 0xfc, 0x0e, 0x3c, 0xac, 0x47, 0x4a, - 0x41, 0x28, 0x6d, 0x73, 0x50, 0x79, 0x75, 0x71, 0x2c, 0xf8, 0x0e, 0xcc, 0xd5, 0xa3, 0x5c, 0xa1, - 0x1a, 0xd1, 0x81, 0xa1, 0x51, 0xb5, 0x2f, 0x59, 0x8d, 0x48, 0x57, 0x65, 0xee, 0xd2, 0x4a, 0xa1, - 0x3b, 0xd5, 0x31, 0xc7, 0x82, 0xbf, 0x01, 0x93, 0xf5, 0x28, 0x01, 0x52, 0xc3, 0x23, 0x1a, 0x32, - 0xb1, 0x6c, 0xea, 0x9e, 0xc0, 0xa9, 0xe1, 0x45, 0x0d, 0x99, 0xb8, 0xd6, 0xb1, 0xe0, 0x1e, 0x98, - 0xaa, 0x47, 0x29, 0xa6, 0x9a, 0x9e, 0xd7, 0x90, 0x11, 0x72, 0xd3, 0x23, 0x2d, 0x78, 0xc8, 0xf8, - 0xd6, 0x86, 0xcc, 0xc4, 0xeb, 0x58, 0xb0, 0x09, 0x66, 0x93, 0x20, 0xe2, 0xc8, 0x95, 0x3f, 0xbc, - 0xa1, 0x11, 0x08, 0x9c, 0x0e, 0x4c, 0x80, 0xac, 0xf1, 0x15, 0x0e, 0x99, 0x49, 0xd8, 0xb1, 0xe0, - 0x09, 0x98, 0xa9, 0x47, 0x32, 0xce, 0x96, 0x3d, 0xc9, 0xa1, 0x52, 0x30, 0x76, 0x2c, 0xb8, 0x0b, - 0xaa, 0xf5, 0xe8, 0xb0, 0x06, 0x35, 0xef, 0x73, 0x48, 0xc7, 0xc6, 0xe9, 0x00, 0x64, 0xe8, 0x29, - 0x7b, 0xac, 0x43, 0xa5, 0xc0, 0xec, 0x58, 0x30, 0x02, 0x8f, 0x79, 0xfd, 0x31, 0x5c, 0x18, 0x77, - 0x6f, 0x92, 0xd1, 0x4f, 0xb8, 0xa4, 0x1c, 0x0b, 0x62, 0xb0, 0x58, 0x8f, 0x34, 0x09, 0xef, 0xd0, - 0xf2, 0xa3, 0xbb, 0x5c, 0xb6, 0x8e, 0x05, 0xbf, 0x4e, 0xf1, 0x1f, 0x1a, 0x9e, 0x24, 0x91, 0xa9, - 0x21, 0x70, 0x2c, 0xf8, 0x56, 0x69, 0x04, 0x60, 0xd9, 0xeb, 0x24, 0x2a, 0xed, 0x0f, 0xc4, 0x40, - 0x18, 0xa7, 0x1b, 0x1e, 0x2a, 0x91, 0xa9, 0x49, 0x50, 0x07, 0xc2, 0x22, 0x94, 0xbd, 0x59, 0xa2, - 0xd2, 0x9e, 0xc1, 0xb1, 0xe0, 0x81, 0xd4, 0x26, 0x40, 0xf3, 0xf3, 0x25, 0x2a, 0xe9, 0x1d, 0x1c, - 0x0b, 0xb6, 0xf2, 0x0d, 0x03, 0x1c, 0xf1, 0x92, 0x89, 0x46, 0xb5, 0x12, 0x8e, 0x05, 0xbf, 0x15, - 0xad, 0x03, 0x34, 0x3d, 0x6a, 0x22, 0x63, 0x37, 0x21, 0x06, 0x25, 0x7f, 0x16, 0x23, 0xde, 0x37, - 0xd1, 0xa8, 0xf6, 0xc2, 0xb1, 0xe0, 0xa9, 0xda, 0x4e, 0xc0, 0xd2, 0xa7, 0x4e, 0x54, 0xde, 0x66, - 0x88, 0x70, 0x87, 0x84, 0xd6, 0xc9, 0xb0, 0xdd, 0x3e, 0x51, 0xc3, 0x09, 0xb1, 0x36, 0x9c, 0xa4, - 0x15, 0xe1, 0xde, 0x80, 0x79, 0x4e, 0xa8, 0x7d, 0xf6, 0xb1, 0xbd, 0xf2, 0xba, 0xad, 0x5b, 0x3c, - 0x50, 0x4f, 0x58, 0xed, 0x55, 0x4b, 0x7b, 0xc2, 0xb8, 0x3c, 0x77, 0xc2, 0xf8, 0x9d, 0x14, 0xde, - 0xf4, 0xd5, 0x13, 0x96, 0x4a, 0xb5, 0x27, 0x2c, 0x53, 0x8a, 0x58, 0x67, 0x00, 0xbe, 0xf3, 0x42, - 0x7c, 0x41, 0x0e, 0x48, 0x48, 0x03, 0x7f, 0x18, 0x6f, 0x45, 0xf6, 0x51, 0x17, 0x95, 0xc5, 0x8f, - 0x5a, 0x67, 0x23, 0x12, 0x10, 0xb0, 0xd8, 0x24, 0x97, 0x6e, 0x48, 0x49, 0xc0, 0x4a, 0xe9, 0x77, - 0xe7, 0x31, 0x5f, 0xc2, 0x2d, 0xa9, 0xd0, 0x16, 0xd5, 0x69, 0x92, 0x4f, 0x46, 0x58, 0x89, 0x34, - 0xbf, 0x07, 0xf3, 0x7c, 0x76, 0x4a, 0x8e, 0x4d, 0xf5, 0x02, 0xd7, 0x25, 0x70, 0xca, 0x4c, 0xe4, - 0x55, 0x6a, 0x92, 0xbe, 0x1f, 0xdf, 0x06, 0x22, 0xbc, 0x23, 0x0d, 0x2e, 0xaf, 0x2c, 0xae, 0x92, - 0xce, 0x46, 0x24, 0xf8, 0x1d, 0x98, 0x6b, 0x5c, 0x0d, 0x43, 0xb7, 0x83, 0x7b, 0xe2, 0xbe, 0x93, - 0x70, 0x2f, 0xa7, 0x4a, 0x83, 0x6f, 0x96, 0x58, 0x88, 0xd0, 0xdf, 0x28, 0xdd, 0x31, 0xd4, 0x3e, - 0xdd, 0x23, 0x7d, 0xb7, 0xcc, 0x2b, 0xd0, 0xbc, 0xe4, 0xdd, 0xa2, 0x01, 0xc1, 0xfd, 0x9f, 0x18, - 0xe3, 0x59, 0x05, 0x9e, 0x26, 0xcd, 0x87, 0x3c, 0x90, 0x15, 0xc5, 0x3c, 0x46, 0x00, 0x51, 0xce, - 0x34, 0x2a, 0x29, 0x5c, 0x2b, 0xdf, 0x23, 0xc2, 0x11, 0xcf, 0xd8, 0x68, 0x54, 0xf7, 0xc8, 0x8b, - 0x7e, 0x95, 0x75, 0x3c, 0xb0, 0xa4, 0x0d, 0x42, 0x0b, 0x39, 0xdd, 0x81, 0xef, 0x11, 0xc7, 0xda, - 0xae, 0xc0, 0x6f, 0xc1, 0x94, 0xe8, 0xae, 0xa0, 0xad, 0x34, 0x69, 0x77, 0xf2, 0x7f, 0x05, 0x26, - 0x5b, 0x1e, 0x1e, 0x84, 0x57, 0x3e, 0x43, 0x69, 0xd5, 0x28, 0x55, 0xd4, 0xae, 0x6e, 0xbc, 0x6b, - 0x73, 0x88, 0xb7, 0x60, 0xba, 0x35, 0xe8, 0x31, 0xb2, 0xbc, 0x64, 0xf7, 0x72, 0x56, 0x15, 0x24, - 0x69, 0xb1, 0x2a, 0x28, 0x4a, 0xe5, 0xde, 0x21, 0xb8, 0x7b, 0xec, 0x75, 0xc9, 0x07, 0xf9, 0xde, - 0x49, 0x65, 0x9a, 0x7b, 0x27, 0x53, 0xc9, 0xe5, 0xf3, 0x34, 0xea, 0x74, 0x0e, 0x09, 0xdd, 0x1f, - 0xd6, 0xc9, 0x50, 0x2a, 0x9f, 0xb2, 0xb8, 0x58, 0x3e, 0x55, 0xad, 0xfc, 0x8d, 0x08, 0x4d, 0x8b, - 0xe2, 0x80, 0xb6, 0x43, 0xe9, 0x1b, 0xc9, 0xab, 0x8a, 0xdf, 0x48, 0xd1, 0x42, 0x82, 0xd7, 0x19, - 0xa5, 0x07, 0x85, 0xab, 0x65, 0x7f, 0x05, 0x80, 0xd6, 0x4a, 0xdf, 0xf2, 0xd9, 0x6e, 0x3c, 0xab, - 0xc0, 0x23, 0x30, 0x7b, 0xe0, 0x86, 0x03, 0x66, 0x71, 0xda, 0x68, 0xb4, 0x71, 0xc8, 0x08, 0xb6, - 0x3f, 0x18, 0xec, 0xa4, 0x52, 0x26, 0xca, 0x08, 0xb6, 0xa8, 0x11, 0xa3, 0xdb, 0x07, 0x33, 0x35, - 0xec, 0x75, 0x48, 0x2f, 0x8d, 0xf3, 0x88, 0x5b, 0xc7, 0x32, 0x39, 0xca, 0x72, 0x41, 0x2e, 0x62, - 0xb4, 0xc1, 0xa3, 0xd7, 0x21, 0xc5, 0xe7, 0x3d, 0x37, 0x64, 0xc3, 0xa9, 0xf9, 0x9e, 0x47, 0x3a, - 0x34, 0x06, 0x38, 0xe6, 0xa4, 0x57, 0xa6, 0x81, 0x21, 0xb7, 0x39, 0x6d, 0x34, 0x0e, 0x30, 0xc5, - 0x0d, 0xdc, 0xb9, 0x26, 0x94, 0x7f, 0x88, 0x5f, 0x80, 0x89, 0xe3, 0xf0, 0x55, 0xcf, 0x8d, 0x08, - 0x5c, 0xe0, 0x26, 0xc9, 0xff, 0xb2, 0xee, 0x5b, 0x11, 0x8a, 0xd1, 0x1c, 0x81, 0xe9, 0xb8, 0xdc, - 0x12, 0xdc, 0x25, 0x81, 0x74, 0x56, 0x25, 0x69, 0xf1, 0xac, 0x2a, 0xca, 0xe4, 0x7d, 0xa0, 0x0e, - 0x1e, 0x1e, 0x12, 0xda, 0xa2, 0x7e, 0x40, 0x5a, 0xf8, 0x82, 0xb4, 0x5b, 0xf2, 0xc1, 0xcf, 0xa4, - 0x9a, 0x83, 0x2f, 0x2b, 0x93, 0x60, 0x6d, 0x30, 0x7b, 0x48, 0x28, 0xab, 0x9f, 0x3f, 0x60, 0x97, - 0x1e, 0x7b, 0x17, 0xbe, 0xd4, 0x94, 0xe7, 0x34, 0xc5, 0xa6, 0xbc, 0x60, 0x90, 0x44, 0xfd, 0x06, - 0x4c, 0xf0, 0x3b, 0xbf, 0x43, 0xa1, 0xd2, 0x05, 0x32, 0x89, 0xa6, 0x3d, 0x4b, 0x15, 0x89, 0xf7, - 0x1f, 0x00, 0x94, 0x02, 0x1f, 0xb9, 0x21, 0xf5, 0x83, 0xa1, 0x74, 0xf5, 0x14, 0x95, 0xc5, 0xab, - 0x47, 0x67, 0x13, 0x87, 0xdf, 0xff, 0xf4, 0xdf, 0x7f, 0x99, 0xac, 0xfc, 0xfd, 0xe3, 0x7a, 0xe5, - 0x1f, 0x1f, 0xd7, 0x2b, 0xff, 0xf9, 0xb8, 0x5e, 0xf9, 0xf3, 0x7f, 0xd7, 0x2d, 0x30, 0xe7, 0x07, - 0x97, 0xfc, 0x8c, 0xef, 0x5c, 0x47, 0xfc, 0x2f, 0x68, 0xce, 0xc7, 0xf9, 0x3f, 0x9f, 0xff, 0x18, - 0x00, 0x00, 0xff, 0xff, 0x16, 0xb3, 0x4b, 0xd9, 0xc9, 0x23, 0x00, 0x00, + // 2386 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x9a, 0xdb, 0x52, 0x1b, 0xc9, + 0x19, 0x80, 0x07, 0x5b, 0xe6, 0xd0, 0x18, 0x03, 0x0d, 0x36, 0x43, 0x1b, 0x83, 0x3d, 0x66, 0x37, + 0xce, 0xa6, 0x8a, 0xd8, 0x5e, 0x67, 0x9d, 0x3d, 0x64, 0x83, 0x11, 0x36, 0x60, 0x41, 0xad, 0x4a, + 0x92, 0x77, 0x9d, 0xaa, 0xa4, 0xa8, 0xb6, 0xd4, 0x16, 0x13, 0xa4, 0x19, 0x65, 0xa6, 0x19, 0xac, + 0x37, 0xc9, 0x23, 0xa4, 0xf2, 0x24, 0xb9, 0x4c, 0x55, 0x2e, 0x92, 0xcb, 0x94, 0xf3, 0x10, 0x7b, + 0x99, 0xad, 0xee, 0x99, 0xe9, 0xc3, 0x4c, 0xf7, 0x88, 0xbd, 0x62, 0xf8, 0x4f, 0x7d, 0xfe, 0xfb, + 0xfb, 0xbb, 0x04, 0x6e, 0x52, 0xff, 0x3c, 0x19, 0xbd, 0xdb, 0x19, 0x45, 0x21, 0x0d, 0xe1, 0x74, + 0xfa, 0x1f, 0x5a, 0xee, 0x86, 0xa3, 0x28, 0xec, 0x92, 0x38, 0x0e, 0xa3, 0x54, 0x85, 0x16, 0xce, + 0x93, 0x68, 0xd4, 0xcd, 0x2d, 0xd1, 0xdc, 0x70, 0x34, 0xca, 0x3e, 0x57, 0x22, 0xfc, 0x9e, 0x9e, + 0xc6, 0x24, 0x4a, 0x48, 0x24, 0xf4, 0x2b, 0x3d, 0x3f, 0xc6, 0xfd, 0x7e, 0x44, 0xfa, 0x98, 0x92, + 0x5e, 0x26, 0x5c, 0xed, 0x87, 0xfd, 0x90, 0x7f, 0xfe, 0x9a, 0x7d, 0x65, 0xd2, 0xc5, 0xe8, 0x22, + 0xa6, 0xfc, 0x33, 0x15, 0x78, 0xff, 0x5a, 0x02, 0xab, 0x7b, 0x98, 0x76, 0xcf, 0xea, 0xe1, 0x70, + 0x88, 0x83, 0x5e, 0xdc, 0x22, 0x7f, 0xb9, 0x20, 0x31, 0x85, 0xbb, 0x60, 0x36, 0x4a, 0x3f, 0x63, + 0x77, 0xea, 0xfe, 0xf5, 0x47, 0xf3, 0x4f, 0xb7, 0x77, 0xb2, 0xfe, 0x9b, 0xec, 0x77, 0xb2, 0xbf, + 0x2d, 0xe1, 0x05, 0xb7, 0xc0, 0x7c, 0xf6, 0x7d, 0xea, 0xf7, 0x62, 0xf7, 0xda, 0xfd, 0xeb, 0x8f, + 0x6a, 0x2d, 0x90, 0x89, 0x8e, 0x7a, 0x31, 0xfa, 0xf7, 0x22, 0x98, 0xc9, 0x9b, 0xfb, 0x05, 0xb8, + 0x7e, 0x40, 0xa8, 0x3b, 0x75, 0x7f, 0xea, 0xd1, 0xfc, 0xd3, 0x95, 0x9d, 0x7c, 0x02, 0x0e, 0x08, + 0xcd, 0x2c, 0x0e, 0x9d, 0x16, 0xb3, 0x80, 0x9f, 0x81, 0x5a, 0xbb, 0x8b, 0x03, 0xf7, 0x1a, 0xb7, + 0x5c, 0x15, 0x96, 0x4c, 0x28, 0x4d, 0xb9, 0x0d, 0xfc, 0x02, 0xcc, 0x36, 0x23, 0x72, 0x19, 0xf9, + 0x94, 0xb8, 0xd7, 0xb9, 0xbd, 0x2b, 0xec, 0x73, 0x85, 0xf4, 0x11, 0xb6, 0xf0, 0x31, 0x98, 0x66, + 0xc3, 0xf3, 0xa9, 0x5b, 0xe3, 0x5e, 0x77, 0x84, 0x57, 0x2a, 0x96, 0x3e, 0x99, 0x1d, 0xf3, 0x38, + 0x1a, 0x8e, 0xc2, 0x88, 0xba, 0x37, 0x0a, 0x1e, 0xa9, 0x58, 0xf1, 0x48, 0x05, 0xf0, 0x73, 0x30, + 0x53, 0x1f, 0x10, 0x1c, 0x5c, 0x8c, 0xdc, 0x69, 0xee, 0xb2, 0x26, 0x1b, 0x49, 0xe5, 0xd2, 0x27, + 0xb7, 0x64, 0x03, 0xe2, 0x93, 0xcf, 0xa6, 0x6a, 0xa6, 0x30, 0xa0, 0x5c, 0xa1, 0x0c, 0x28, 0x17, + 0xc1, 0x97, 0x60, 0x81, 0x7f, 0xb7, 0xc2, 0xc1, 0xe0, 0x1d, 0xee, 0x9e, 0xbb, 0xb3, 0xdc, 0xf9, + 0x9e, 0xee, 0x9c, 0x6b, 0x65, 0x04, 0xdd, 0x8b, 0x35, 0xcf, 0xe6, 0xf5, 0x38, 0xec, 0x9e, 0xbb, + 0x73, 0x85, 0xe6, 0x73, 0x85, 0xd2, 0x7c, 0x2e, 0x82, 0xbf, 0x07, 0xf3, 0x2d, 0x12, 0x87, 0x83, + 0x84, 0x70, 0x57, 0xc0, 0x5d, 0xef, 0x0a, 0x57, 0x45, 0x27, 0xbd, 0x55, 0x0f, 0xb8, 0x0d, 0xae, + 0x1d, 0xd4, 0xdd, 0x79, 0xee, 0x07, 0xe5, 0xe6, 0xa8, 0x4b, 0xf3, 0x6b, 0x07, 0x75, 0xd6, 0xcc, + 0x3e, 0x19, 0x10, 0x4a, 0x5a, 0x38, 0xe8, 0x13, 0xf7, 0x66, 0xa1, 0x19, 0x45, 0xa7, 0x34, 0xa3, + 0x48, 0xd9, 0x2a, 0xb6, 0xf0, 0x25, 0x9b, 0xdc, 0x85, 0xc2, 0x2a, 0xa6, 0x62, 0x65, 0x15, 0x53, + 0x01, 0x1f, 0x19, 0xbe, 0x14, 0x6b, 0x72, 0xab, 0x38, 0x32, 0xa9, 0x53, 0x47, 0x26, 0xa5, 0x59, + 0x93, 0xcd, 0x0b, 0xea, 0x2e, 0x96, 0x9b, 0x6c, 0x5e, 0x14, 0x9a, 0x6c, 0x5e, 0x68, 0x4d, 0x32, + 0xb7, 0x25, 0x4b, 0x93, 0x9a, 0xaf, 0xea, 0x01, 0xbf, 0x04, 0x73, 0x2d, 0x7c, 0x99, 0x8e, 0xdb, + 0x5d, 0xe6, 0xee, 0xeb, 0xaa, 0x7b, 0x36, 0x23, 0xc2, 0x59, 0x5a, 0xc3, 0x43, 0x70, 0x2b, 0x8f, + 0x94, 0xf9, 0x43, 0xee, 0xbf, 0x59, 0x6a, 0xbe, 0x18, 0xa4, 0xe0, 0xc7, 0xb6, 0x7f, 0x0b, 0x5f, + 0xf2, 0x93, 0xbc, 0x52, 0xd8, 0xfe, 0x99, 0x5c, 0xd9, 0xfe, 0x99, 0x24, 0x6b, 0x5e, 0x5d, 0xe3, + 0xd5, 0x72, 0xf3, 0xc6, 0x65, 0x2e, 0xf8, 0xc1, 0x3d, 0x70, 0x33, 0xef, 0x10, 0xef, 0xc3, 0x6d, + 0x1e, 0x67, 0xa3, 0x34, 0x0c, 0xbd, 0x23, 0x9a, 0x0f, 0xfc, 0x2d, 0x98, 0xaf, 0xcb, 0xd4, 0xed, + 0xde, 0xc9, 0x12, 0x92, 0x9a, 0xce, 0x95, 0x15, 0x50, 0x4c, 0x61, 0x03, 0x2c, 0x36, 0x49, 0x1c, + 0xfb, 0x43, 0x3f, 0xa6, 0x7e, 0x97, 0x9f, 0x89, 0x35, 0xee, 0xbd, 0x25, 0xd3, 0x93, 0xae, 0x97, + 0x81, 0x8a, 0x9e, 0xf0, 0x07, 0xb0, 0xa2, 0x88, 0xc4, 0x09, 0x77, 0x79, 0xc0, 0x87, 0xa6, 0x80, + 0xe5, 0x73, 0x6e, 0x8a, 0xc0, 0x66, 0xbb, 0x7e, 0x46, 0xba, 0xe7, 0x9d, 0x0f, 0x41, 0x9b, 0x62, + 0x7a, 0x11, 0xbb, 0xeb, 0x85, 0xd9, 0xd6, 0xd5, 0xca, 0x6c, 0xeb, 0x0a, 0x36, 0xdb, 0x9d, 0x0f, + 0xc1, 0x21, 0xc1, 0x11, 0xdd, 0x23, 0x98, 0xba, 0xa8, 0x30, 0xdb, 0xaa, 0x52, 0x99, 0x6d, 0x55, + 0xcc, 0x86, 0xc9, 0xa3, 0xb6, 0x49, 0x37, 0x0c, 0x7a, 0x38, 0x1a, 0xb3, 0xc1, 0xc7, 0xee, 0x83, + 0xc2, 0x30, 0x0d, 0x36, 0xca, 0x30, 0x0d, 0xda, 0x6c, 0x53, 0xa9, 0x2b, 0xe9, 0x95, 0x37, 0x95, + 0xa2, 0xd6, 0x37, 0x95, 0xba, 0xac, 0x1d, 0x00, 0x5f, 0x0d, 0x70, 0x7c, 0xc6, 0x66, 0xaf, 0x13, + 0x7e, 0x4f, 0xa2, 0xd8, 0x0f, 0x03, 0xf7, 0x21, 0x8f, 0xe6, 0x89, 0x68, 0x65, 0x13, 0x19, 0xd1, + 0xe0, 0x0f, 0x7d, 0xb0, 0xde, 0x8c, 0xc8, 0x08, 0x47, 0xc4, 0x10, 0x7c, 0x9b, 0x07, 0xff, 0xa5, + 0x7a, 0xab, 0x99, 0x2d, 0x65, 0x1b, 0xf6, 0x68, 0xf0, 0x2b, 0x70, 0xe3, 0xe5, 0x70, 0x44, 0xc7, + 0xee, 0xff, 0xd3, 0x7b, 0xf8, 0x81, 0xf1, 0xc6, 0xe7, 0x26, 0x32, 0x5e, 0xea, 0xb2, 0x77, 0x03, + 0x5c, 0xef, 0x0e, 0x7b, 0xaf, 0x6b, 0xb3, 0x77, 0x97, 0x1e, 0x78, 0x7f, 0x5f, 0x06, 0xb7, 0x0b, + 0x94, 0x10, 0x8f, 0xc2, 0x20, 0x26, 0x70, 0x1f, 0xcc, 0x45, 0xd9, 0x77, 0xce, 0x15, 0x9f, 0x5a, + 0xb8, 0x22, 0xb5, 0xda, 0xc9, 0x3f, 0x5a, 0xd2, 0x71, 0x22, 0x5a, 0xc0, 0xc7, 0x60, 0x95, 0x46, + 0x38, 0x88, 0xd9, 0x55, 0x7b, 0x3a, 0xc0, 0x63, 0x12, 0x9d, 0x0e, 0x42, 0xdc, 0xe3, 0x14, 0x50, + 0x6b, 0x41, 0xa1, 0x3b, 0x66, 0xaa, 0xe3, 0x10, 0xf7, 0xd0, 0x8f, 0x8b, 0x60, 0x56, 0xf4, 0xf2, + 0x91, 0x4a, 0x23, 0xab, 0x3a, 0x8d, 0xa4, 0x26, 0x39, 0x8e, 0xfc, 0x4a, 0xc3, 0x91, 0xdb, 0x05, + 0x1c, 0x11, 0xb6, 0x29, 0x8f, 0x3c, 0x2f, 0xf1, 0xc8, 0xba, 0x81, 0x47, 0x84, 0x93, 0x04, 0x92, + 0x27, 0x05, 0x20, 0x59, 0x2b, 0x01, 0x89, 0x70, 0xca, 0x89, 0xe4, 0x49, 0x81, 0x48, 0xd6, 0x4a, + 0x44, 0x22, 0x5d, 0x32, 0x24, 0x79, 0x56, 0x44, 0x12, 0xb7, 0x8c, 0x24, 0xc2, 0x49, 0x30, 0xc9, + 0xf3, 0x12, 0x93, 0xac, 0x1b, 0x98, 0x44, 0x0e, 0x4a, 0x5c, 0x7d, 0xaf, 0xcc, 0x50, 0xb2, 0x69, + 0x83, 0x12, 0x11, 0xa2, 0x40, 0x25, 0xcf, 0x4b, 0x54, 0xb2, 0x6e, 0xa0, 0x12, 0xd9, 0x01, 0x81, + 0x25, 0xbb, 0x26, 0x2c, 0xd9, 0x30, 0x63, 0x89, 0x70, 0xd7, 0xb8, 0xe4, 0x13, 0x85, 0x4b, 0x56, + 0x34, 0x2e, 0x11, 0xf6, 0x0c, 0x4c, 0x76, 0x4d, 0x60, 0xb2, 0x61, 0x06, 0x13, 0xd9, 0x90, 0x7a, + 0x5f, 0x3d, 0x29, 0x90, 0xc9, 0x5a, 0x89, 0x4c, 0xe4, 0x6a, 0x66, 0x68, 0xb2, 0x6b, 0x42, 0x93, + 0x0d, 0x33, 0x9a, 0x28, 0xa3, 0x53, 0xd8, 0xe4, 0x49, 0x81, 0x4d, 0xd6, 0x4a, 0x6c, 0xa2, 0x35, + 0xca, 0xd8, 0x62, 0xd7, 0x04, 0x27, 0x1b, 0x66, 0x38, 0x29, 0x37, 0xca, 0x22, 0x7c, 0x55, 0xa6, + 0x13, 0x64, 0xa2, 0x13, 0xe1, 0xad, 0xe0, 0xc9, 0x91, 0x05, 0x4f, 0xb6, 0xac, 0x78, 0x22, 0xa2, + 0x14, 0xf9, 0xe4, 0x59, 0x91, 0x4f, 0xdc, 0x32, 0x9f, 0xc8, 0xb3, 0x90, 0x03, 0xca, 0x91, 0x05, + 0x50, 0xb6, 0xac, 0x80, 0xa2, 0x75, 0x40, 0x5d, 0xf1, 0xba, 0x91, 0x50, 0xee, 0x59, 0x08, 0x45, + 0x84, 0xd1, 0x11, 0xe5, 0x4b, 0x13, 0xa2, 0xdc, 0x2e, 0x20, 0x8a, 0x5c, 0x07, 0xf5, 0x32, 0x3b, + 0xb6, 0x31, 0xca, 0x7d, 0x3b, 0xa3, 0x88, 0x48, 0x25, 0x48, 0x79, 0x5b, 0x05, 0x29, 0xdb, 0xd5, + 0x90, 0x22, 0xa2, 0x1a, 0x29, 0xe5, 0xc8, 0x42, 0x29, 0x5b, 0x56, 0x4a, 0x91, 0x53, 0x5e, 0xc0, + 0x94, 0xba, 0x11, 0x53, 0xee, 0x59, 0x30, 0x45, 0x4e, 0xb9, 0xc6, 0x29, 0x6f, 0xab, 0x38, 0x65, + 0xbb, 0x9a, 0x53, 0xe4, 0x48, 0x4d, 0xa0, 0x72, 0x64, 0x01, 0x95, 0x2d, 0x2b, 0xa8, 0x68, 0x9b, + 0x4b, 0x5d, 0xdc, 0x37, 0x15, 0xa4, 0xf2, 0xb0, 0x92, 0x54, 0x44, 0x48, 0x13, 0xaa, 0xfc, 0x79, + 0x32, 0xaa, 0x7c, 0x76, 0x15, 0x54, 0x11, 0x8d, 0x54, 0xb0, 0xca, 0xd7, 0x05, 0x56, 0xf1, 0xaa, + 0x58, 0x45, 0x04, 0x34, 0xc1, 0xca, 0x1e, 0x58, 0x4a, 0x2f, 0x14, 0xfc, 0x9e, 0x9e, 0x90, 0x38, + 0xc6, 0x7d, 0x02, 0x77, 0x40, 0x6d, 0x18, 0xf7, 0x73, 0x42, 0x41, 0x3b, 0xfa, 0xb3, 0x8b, 0x62, + 0xd9, 0xe2, 0x76, 0x5e, 0x1b, 0xac, 0x5b, 0x19, 0x09, 0xae, 0x81, 0x19, 0x9a, 0xa2, 0x0a, 0x27, + 0x8a, 0x5a, 0x6b, 0x9a, 0x72, 0x4c, 0x81, 0xf7, 0x00, 0xe8, 0x91, 0x01, 0x1e, 0x9f, 0x52, 0x7f, + 0x48, 0x38, 0x42, 0xd4, 0x5a, 0x73, 0x5c, 0xd2, 0xf1, 0x87, 0xc4, 0xfb, 0x0d, 0x40, 0xf6, 0xc1, + 0x58, 0xa3, 0x3e, 0xfd, 0xf1, 0x21, 0xa8, 0x75, 0xfc, 0xf3, 0x04, 0x3e, 0x03, 0x37, 0x1a, 0x09, + 0x4b, 0xe4, 0xa6, 0xf7, 0x14, 0x64, 0xc4, 0x1a, 0xcf, 0x81, 0xcf, 0xc1, 0x74, 0x23, 0xe1, 0xd9, + 0xc3, 0xf8, 0xb8, 0x82, 0xcc, 0x8c, 0xe3, 0x39, 0xb0, 0x0e, 0x40, 0x23, 0x11, 0xc8, 0x62, 0x7d, + 0x69, 0x41, 0x76, 0xe6, 0xf1, 0x1c, 0xf8, 0x16, 0x2c, 0x37, 0x92, 0x62, 0xf6, 0x98, 0x54, 0x16, + 0xa1, 0x89, 0x39, 0xc9, 0x73, 0x60, 0x0f, 0xdc, 0x6e, 0x7c, 0x6f, 0xca, 0x20, 0x57, 0xa9, 0x91, + 0xd0, 0x95, 0x72, 0x94, 0xe7, 0xc0, 0xef, 0xc0, 0xad, 0x46, 0xa2, 0x25, 0x84, 0xca, 0x32, 0x07, + 0x55, 0x67, 0x17, 0xcf, 0x81, 0x6f, 0xc0, 0x52, 0x23, 0x29, 0x24, 0xaa, 0x09, 0x15, 0x18, 0x9a, + 0x94, 0xfb, 0xb2, 0xd9, 0x48, 0x4c, 0x59, 0xe6, 0x2a, 0xa5, 0x14, 0xba, 0x52, 0x1e, 0xf3, 0x1c, + 0xf8, 0x3b, 0x30, 0xdb, 0x48, 0x32, 0x20, 0xb5, 0x3c, 0xa2, 0x21, 0x1b, 0xcb, 0xe6, 0xee, 0x19, + 0x9c, 0x5a, 0x5e, 0xd4, 0x90, 0x8d, 0x6b, 0x3d, 0x07, 0xee, 0x82, 0xb9, 0x46, 0x92, 0x63, 0xaa, + 0xed, 0x79, 0x0d, 0x59, 0x21, 0x37, 0xdf, 0xd2, 0x82, 0x87, 0xac, 0x6f, 0x6d, 0xc8, 0x4e, 0xbc, + 0x9e, 0x03, 0x5b, 0x60, 0x31, 0x0b, 0x22, 0xb6, 0x5c, 0xf5, 0xc3, 0x1b, 0x9a, 0x80, 0xc0, 0x79, + 0xc7, 0x04, 0xc8, 0x5a, 0x5f, 0xe1, 0x90, 0x9d, 0x84, 0x3d, 0x07, 0x1e, 0x83, 0x85, 0x46, 0xa2, + 0xe2, 0x6c, 0xd5, 0x93, 0x1c, 0xaa, 0x04, 0x63, 0xcf, 0x81, 0x4f, 0x40, 0xad, 0x91, 0x1c, 0xd4, + 0xa1, 0xe1, 0x7d, 0x0e, 0x99, 0xd8, 0x38, 0xef, 0x80, 0x0a, 0x3d, 0x55, 0x8f, 0x75, 0xa8, 0x12, + 0x98, 0x3d, 0x07, 0x26, 0xe0, 0x2e, 0xcf, 0x3f, 0x96, 0x0b, 0xe3, 0xea, 0x45, 0x32, 0xfa, 0x19, + 0x97, 0x94, 0xe7, 0x40, 0x0c, 0x56, 0x1b, 0x89, 0xa1, 0xc1, 0x2b, 0x94, 0xfc, 0xe8, 0x2a, 0x97, + 0xad, 0xe7, 0xc0, 0xaf, 0x73, 0xfc, 0x87, 0x96, 0x27, 0x49, 0x64, 0x2b, 0x08, 0x3c, 0x07, 0xbe, + 0xd6, 0x0a, 0x01, 0x58, 0xf5, 0x3a, 0x89, 0x2a, 0xeb, 0x03, 0xd1, 0x11, 0xc6, 0xe9, 0x96, 0x87, + 0x4a, 0x64, 0x2b, 0x12, 0xf4, 0x8e, 0xb0, 0x08, 0x55, 0x6f, 0x96, 0xa8, 0xb2, 0x66, 0xf0, 0x1c, + 0xb8, 0xaf, 0x94, 0x09, 0xd0, 0xfe, 0x7c, 0x89, 0x2a, 0x6a, 0x07, 0xcf, 0x81, 0xed, 0x62, 0xc1, + 0x00, 0x27, 0xbc, 0x64, 0xa2, 0x49, 0xa5, 0x84, 0xe7, 0xc0, 0x6f, 0x45, 0xe9, 0x00, 0x6d, 0x8f, + 0x9a, 0xc8, 0x5a, 0x4d, 0x88, 0x4e, 0xa9, 0xc7, 0x62, 0xc2, 0xfb, 0x26, 0x9a, 0x54, 0x5e, 0x78, + 0x0e, 0x3c, 0xd1, 0xcb, 0x09, 0x58, 0xf9, 0xd4, 0x89, 0xaa, 0xcb, 0x0c, 0x11, 0xee, 0x80, 0xd0, + 0x06, 0x19, 0x77, 0x3a, 0xc7, 0x7a, 0x38, 0x21, 0x36, 0x86, 0x53, 0xb4, 0x22, 0xdc, 0x2b, 0xb0, + 0xcc, 0x09, 0x75, 0xc8, 0x0e, 0xdb, 0x8b, 0xa0, 0xd7, 0xbe, 0xc4, 0x23, 0x7d, 0x87, 0xd5, 0x5f, + 0xb4, 0x8d, 0x3b, 0x8c, 0xcb, 0x0b, 0x3b, 0x8c, 0xdf, 0x49, 0xf1, 0xc5, 0x50, 0xdf, 0x61, 0xb9, + 0xd4, 0xb8, 0xc3, 0xa4, 0x52, 0xc4, 0x3a, 0x05, 0xf0, 0x4d, 0x10, 0xe3, 0xf7, 0x64, 0x9f, 0xc4, + 0x34, 0x0a, 0xc7, 0xe9, 0x52, 0xc8, 0x43, 0x5d, 0x56, 0x96, 0x0f, 0xb5, 0xc9, 0x46, 0x34, 0x40, + 0xc0, 0x6a, 0x8b, 0xf4, 0xfd, 0x98, 0x92, 0x88, 0xa5, 0xd2, 0xef, 0xde, 0xa5, 0x7c, 0x09, 0xb7, + 0x95, 0x44, 0x5b, 0x56, 0xe7, 0x8d, 0x7c, 0x32, 0xc1, 0x4a, 0x34, 0xf3, 0x47, 0xb0, 0xcc, 0x47, + 0xa7, 0xb5, 0xf1, 0x40, 0xbf, 0xc0, 0x4d, 0x0d, 0x78, 0x55, 0x26, 0xea, 0x2c, 0xb5, 0xc8, 0x30, + 0x4c, 0x6f, 0x03, 0x11, 0xde, 0x53, 0x3a, 0x57, 0x54, 0x96, 0x67, 0xc9, 0x64, 0x23, 0x1a, 0xf8, + 0x03, 0x58, 0x6a, 0x9e, 0x8d, 0x63, 0xbf, 0x8b, 0x07, 0xe2, 0xbe, 0x53, 0x70, 0xaf, 0xa0, 0xca, + 0x83, 0x3f, 0xa8, 0xb0, 0x10, 0xa1, 0xbf, 0xd1, 0xaa, 0x63, 0x68, 0x7c, 0xba, 0x47, 0xe6, 0x6a, + 0x99, 0x67, 0xa0, 0x65, 0xc5, 0xbb, 0x4d, 0x23, 0x82, 0x87, 0x3f, 0x33, 0xc6, 0xe3, 0x29, 0x78, + 0x92, 0x15, 0x1f, 0x6a, 0x47, 0xd6, 0x35, 0xf3, 0x14, 0x01, 0x44, 0x3a, 0x33, 0xa8, 0x94, 0x70, + 0xed, 0x62, 0x8d, 0x08, 0x27, 0x3c, 0x63, 0xa3, 0x49, 0xd5, 0x23, 0x4f, 0xfa, 0x35, 0x56, 0xf1, + 0xc0, 0x8a, 0x32, 0x08, 0xad, 0x14, 0x74, 0xfb, 0x61, 0x40, 0x3c, 0xe7, 0xd1, 0x14, 0xfc, 0x16, + 0xcc, 0x89, 0xea, 0x0a, 0xba, 0x5a, 0x91, 0x76, 0x25, 0xff, 0x17, 0x60, 0xb6, 0x1d, 0xe0, 0x51, + 0x7c, 0x16, 0x32, 0x94, 0xd6, 0x8d, 0x72, 0x45, 0xfd, 0xec, 0x22, 0x38, 0xb7, 0x87, 0x78, 0x0d, + 0xe6, 0xdb, 0xa3, 0x01, 0x23, 0xcb, 0x3e, 0xbb, 0x97, 0x65, 0x56, 0x50, 0xa4, 0xe5, 0xac, 0xa0, + 0x29, 0xb5, 0x7b, 0x87, 0xe0, 0xde, 0x51, 0xd0, 0x23, 0x1f, 0xd4, 0x7b, 0x27, 0x97, 0x19, 0xee, + 0x1d, 0xa9, 0x52, 0xd3, 0xe7, 0x49, 0xd2, 0xed, 0x1e, 0x10, 0xba, 0x37, 0x6e, 0x90, 0xb1, 0x92, + 0x3e, 0x55, 0x71, 0x39, 0x7d, 0xea, 0x5a, 0xf5, 0x8c, 0x08, 0x4d, 0x9b, 0xe2, 0x88, 0x76, 0x62, + 0xe5, 0x8c, 0x14, 0x55, 0xe5, 0x33, 0x52, 0xb6, 0x50, 0xe0, 0x75, 0x41, 0xab, 0x41, 0xe1, 0x46, + 0xd5, 0xaf, 0x00, 0xd0, 0xbd, 0xca, 0xb7, 0x7c, 0xb6, 0x1a, 0x8f, 0xa7, 0xe0, 0x21, 0x58, 0xdc, + 0xf7, 0xe3, 0x11, 0xb3, 0x38, 0x69, 0x36, 0x3b, 0x38, 0x66, 0x04, 0x3b, 0x1c, 0x8d, 0x76, 0x72, + 0x29, 0x13, 0x49, 0x82, 0x2d, 0x6b, 0x44, 0xef, 0xf6, 0xc0, 0x42, 0x1d, 0x07, 0x5d, 0x32, 0xc8, + 0xe3, 0xdc, 0xe1, 0xd6, 0xa9, 0x4c, 0x8d, 0xb2, 0x56, 0x92, 0x8b, 0x18, 0x1d, 0x70, 0xe7, 0x65, + 0x4c, 0xf1, 0xbb, 0x81, 0x1f, 0xb3, 0xee, 0xd4, 0xc3, 0x20, 0x20, 0x5d, 0x9a, 0x02, 0x1c, 0x73, + 0x32, 0x2b, 0xf3, 0xc0, 0x90, 0xdb, 0x9c, 0x34, 0x9b, 0xfb, 0x98, 0xe2, 0x26, 0xee, 0x9e, 0x13, + 0xca, 0x0f, 0xe2, 0x17, 0x60, 0xe6, 0x28, 0x7e, 0x31, 0xf0, 0x13, 0x02, 0x57, 0xb8, 0x49, 0xf6, + 0x9f, 0xac, 0xbe, 0x35, 0xa1, 0xe8, 0xcd, 0x21, 0x98, 0x4f, 0xd3, 0x2d, 0xc1, 0x3d, 0x12, 0x29, + 0x7b, 0x55, 0x91, 0x96, 0xf7, 0xaa, 0xa6, 0xcc, 0xde, 0x07, 0x1a, 0xe0, 0xd6, 0x01, 0xa1, 0x6d, + 0x1a, 0x46, 0xa4, 0x8d, 0xdf, 0x93, 0x4e, 0x5b, 0xdd, 0xf8, 0x52, 0x6a, 0xd8, 0xf8, 0xaa, 0x32, + 0x0b, 0xd6, 0x01, 0x8b, 0x07, 0x84, 0xb2, 0xfc, 0xf9, 0x03, 0xf6, 0xe9, 0x51, 0xf0, 0x3e, 0x54, + 0x8a, 0xf2, 0x82, 0xa6, 0x5c, 0x94, 0x97, 0x0c, 0xb2, 0xa8, 0xdf, 0x80, 0x19, 0x7e, 0xe7, 0x77, + 0x29, 0xd4, 0xaa, 0x40, 0x26, 0x31, 0x94, 0x67, 0xb9, 0x22, 0xf3, 0xfe, 0x13, 0x80, 0x4a, 0xe0, + 0x43, 0x3f, 0xa6, 0x61, 0x34, 0x56, 0xae, 0x9e, 0xb2, 0xb2, 0x7c, 0xf5, 0x98, 0x6c, 0xb2, 0xf0, + 0x6d, 0x00, 0x68, 0x34, 0x7e, 0xd1, 0xeb, 0x65, 0x57, 0x8e, 0xfe, 0x23, 0x9b, 0x8e, 0x50, 0xc9, + 0xe3, 0x64, 0xb7, 0x50, 0x2e, 0xe3, 0x05, 0x1a, 0x8d, 0x4f, 0x70, 0x74, 0x9e, 0xf1, 0xe6, 0xc3, + 0xb2, 0x97, 0xd4, 0xca, 0x72, 0xbb, 0xd2, 0x28, 0x8f, 0xbe, 0xf7, 0xe9, 0x7f, 0xfe, 0x36, 0x3b, + 0xf5, 0x8f, 0x8f, 0x9b, 0x53, 0xff, 0xfc, 0xb8, 0x39, 0xf5, 0xdf, 0x8f, 0x9b, 0x53, 0x7f, 0xfd, + 0xdf, 0xa6, 0x03, 0x96, 0xc2, 0xa8, 0xcf, 0x8f, 0xe5, 0xce, 0x79, 0xc2, 0x7f, 0xf4, 0xf3, 0x6e, + 0x9a, 0xff, 0xf9, 0xfc, 0xa7, 0x00, 0x00, 0x00, 0xff, 0xff, 0x10, 0x6a, 0x03, 0x6d, 0x91, 0x24, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1491,6 +1496,10 @@ type TikvClient interface { Compact(ctx context.Context, in *kvrpcpb.CompactRequest, opts ...grpc.CallOption) (*kvrpcpb.CompactResponse, error) /// Get the information about history lock waiting from TiKV. GetLockWaitHistory(ctx context.Context, in *kvrpcpb.GetLockWaitHistoryRequest, opts ...grpc.CallOption) (*kvrpcpb.GetLockWaitHistoryResponse, error) + /// Try to add a lock to the data file. + TryAddLock(ctx context.Context, in *disaggregated.TryAddLockRequest, opts ...grpc.CallOption) (*disaggregated.TryAddLockResponse, error) + /// Try to delete a data file. + TryMarkDelete(ctx context.Context, in *disaggregated.TryMarkDeleteRequest, opts ...grpc.CallOption) (*disaggregated.TryMarkDeleteResponse, error) } type tikvClient struct { @@ -2180,6 +2189,24 @@ func (c *tikvClient) GetLockWaitHistory(ctx context.Context, in *kvrpcpb.GetLock return out, nil } +func (c *tikvClient) TryAddLock(ctx context.Context, in *disaggregated.TryAddLockRequest, opts ...grpc.CallOption) (*disaggregated.TryAddLockResponse, error) { + out := new(disaggregated.TryAddLockResponse) + err := c.cc.Invoke(ctx, "/tikvpb.Tikv/tryAddLock", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *tikvClient) TryMarkDelete(ctx context.Context, in *disaggregated.TryMarkDeleteRequest, opts ...grpc.CallOption) (*disaggregated.TryMarkDeleteResponse, error) { + out := new(disaggregated.TryMarkDeleteResponse) + err := c.cc.Invoke(ctx, "/tikvpb.Tikv/tryMarkDelete", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // TikvServer is the server API for Tikv service. type TikvServer interface { // Commands using a transactional interface. @@ -2265,6 +2292,10 @@ type TikvServer interface { Compact(context.Context, *kvrpcpb.CompactRequest) (*kvrpcpb.CompactResponse, error) /// Get the information about history lock waiting from TiKV. GetLockWaitHistory(context.Context, *kvrpcpb.GetLockWaitHistoryRequest) (*kvrpcpb.GetLockWaitHistoryResponse, error) + /// Try to add a lock to the data file. + TryAddLock(context.Context, *disaggregated.TryAddLockRequest) (*disaggregated.TryAddLockResponse, error) + /// Try to delete a data file. + TryMarkDelete(context.Context, *disaggregated.TryMarkDeleteRequest) (*disaggregated.TryMarkDeleteResponse, error) } // UnimplementedTikvServer can be embedded to have forward compatible implementations. @@ -2442,6 +2473,12 @@ func (*UnimplementedTikvServer) Compact(ctx context.Context, req *kvrpcpb.Compac func (*UnimplementedTikvServer) GetLockWaitHistory(ctx context.Context, req *kvrpcpb.GetLockWaitHistoryRequest) (*kvrpcpb.GetLockWaitHistoryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetLockWaitHistory not implemented") } +func (*UnimplementedTikvServer) TryAddLock(ctx context.Context, req *disaggregated.TryAddLockRequest) (*disaggregated.TryAddLockResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TryAddLock not implemented") +} +func (*UnimplementedTikvServer) TryMarkDelete(ctx context.Context, req *disaggregated.TryMarkDeleteRequest) (*disaggregated.TryMarkDeleteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TryMarkDelete not implemented") +} func RegisterTikvServer(s *grpc.Server, srv TikvServer) { s.RegisterService(&_Tikv_serviceDesc, srv) @@ -3514,6 +3551,42 @@ func _Tikv_GetLockWaitHistory_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _Tikv_TryAddLock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(disaggregated.TryAddLockRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TikvServer).TryAddLock(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tikvpb.Tikv/TryAddLock", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TikvServer).TryAddLock(ctx, req.(*disaggregated.TryAddLockRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Tikv_TryMarkDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(disaggregated.TryMarkDeleteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TikvServer).TryMarkDelete(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tikvpb.Tikv/TryMarkDelete", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TikvServer).TryMarkDelete(ctx, req.(*disaggregated.TryMarkDeleteRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Tikv_serviceDesc = grpc.ServiceDesc{ ServiceName: "tikvpb.Tikv", HandlerType: (*TikvServer)(nil), @@ -3718,6 +3791,14 @@ var _Tikv_serviceDesc = grpc.ServiceDesc{ MethodName: "GetLockWaitHistory", Handler: _Tikv_GetLockWaitHistory_Handler, }, + { + MethodName: "tryAddLock", + Handler: _Tikv_TryAddLock_Handler, + }, + { + MethodName: "tryMarkDelete", + Handler: _Tikv_TryMarkDelete_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/proto/disaggregated.proto b/proto/disaggregated.proto new file mode 100644 index 0000000..e31e455 --- /dev/null +++ b/proto/disaggregated.proto @@ -0,0 +1,45 @@ +syntax = "proto3"; +package disaggregated; + +option java_package = "org.tikv.kvproto"; + +message S3LockResult { + oneof error { + Success success = 1; + NotOwner not_owner = 2; + Conflict conflict = 3; + } +} +message Success {} +// Error caused by S3GC owner changed +// client should retry +message NotOwner{ +} +// Error caused by concurrency conflict, +// request cancel +message Conflict { + string reason = 1; +} + + +message TryAddLockRequest { + // The data file key to add lock + string data_file_key = 1; + // The lock store id + uint64 lock_store_id = 3; + // The upload sequence number of lock store + uint64 lock_seq = 4; +} + +message TryAddLockResponse { + S3LockResult result = 1; +} + +message TryMarkDeleteRequest { + // The data file key to be marked as deleted + string data_file_key = 1; +} + +message TryMarkDeleteResponse { + S3LockResult result = 1; +} diff --git a/proto/tikvpb.proto b/proto/tikvpb.proto index bb4393d..22edf11 100644 --- a/proto/tikvpb.proto +++ b/proto/tikvpb.proto @@ -5,6 +5,7 @@ import "coprocessor.proto"; import "kvrpcpb.proto"; import "mpp.proto"; import "raft_serverpb.proto"; +import "disaggregated.proto"; import "gogoproto/gogo.proto"; import "rustproto.proto"; @@ -114,6 +115,12 @@ service Tikv { rpc Compact(kvrpcpb.CompactRequest) returns (kvrpcpb.CompactResponse); /// Get the information about history lock waiting from TiKV. rpc GetLockWaitHistory(kvrpcpb.GetLockWaitHistoryRequest) returns (kvrpcpb.GetLockWaitHistoryResponse); + + // These are for TiFlash disaggregated architecture + /// Try to lock a S3 object, atomically + rpc tryAddLock(disaggregated.TryAddLockRequest) returns (disaggregated.TryAddLockResponse) {}; + /// Try to delete a S3 object, atomically + rpc tryMarkDelete(disaggregated.TryMarkDeleteRequest) returns (disaggregated.TryMarkDeleteResponse) {}; } message BatchCommandsRequest { -- Gitee From 2d7db5bc021ef11c684ea8ebc7c573b509261e7d Mon Sep 17 00:00:00 2001 From: Ryan Leung Date: Mon, 27 Feb 2023 14:19:28 +0800 Subject: [PATCH 06/44] Wrap etcd RPC (#1061) Signed-off-by: Ryan Leung --- go.mod | 2 +- pkg/backup/backup.pb.go | 8140 ----------------------- pkg/kvrpcpb/kvrpcpb.pb.go | 8 +- pkg/meta_storagepb/meta_storagepb.pb.go | 3564 ++++++++++ pkg/span/span.pb.go | 1655 ----- pkg/tracepb/tracepb.pb.go | 1 - proto/meta_storagepb.proto | 134 + scripts/proto.lock | 340 + 8 files changed, 4042 insertions(+), 9802 deletions(-) delete mode 100644 pkg/backup/backup.pb.go create mode 100644 pkg/meta_storagepb/meta_storagepb.pb.go delete mode 100644 pkg/span/span.pb.go create mode 100644 proto/meta_storagepb.proto diff --git a/go.mod b/go.mod index c74659a..b8ed4e8 100644 --- a/go.mod +++ b/go.mod @@ -4,12 +4,12 @@ require ( github.com/gogo/protobuf v1.3.2 github.com/golang/protobuf v1.5.2 github.com/grpc-ecosystem/grpc-gateway v1.16.0 - golang.org/x/net v0.2.0 google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd google.golang.org/grpc v1.51.0 ) require ( + golang.org/x/net v0.2.0 // indirect golang.org/x/sys v0.2.0 // indirect golang.org/x/text v0.4.0 // indirect google.golang.org/protobuf v1.28.1 // indirect diff --git a/pkg/backup/backup.pb.go b/pkg/backup/backup.pb.go deleted file mode 100644 index 04434b2..0000000 --- a/pkg/backup/backup.pb.go +++ /dev/null @@ -1,8140 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: backup.proto - -package backup - -import ( - "fmt" - "io" - "math" - - proto "github.com/golang/protobuf/proto" - - _ "github.com/gogo/protobuf/gogoproto" - - errorpb "github.com/pingcap/kvproto/pkg/errorpb" - - kvrpcpb "github.com/pingcap/kvproto/pkg/kvrpcpb" - - context "golang.org/x/net/context" - - grpc "google.golang.org/grpc" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package - -// sst files compression algorithm -type CompressionType int32 - -const ( - CompressionType_UNKNOWN CompressionType = 0 - CompressionType_LZ4 CompressionType = 1 - CompressionType_SNAPPY CompressionType = 2 - CompressionType_ZSTD CompressionType = 3 -) - -var CompressionType_name = map[int32]string{ - 0: "UNKNOWN", - 1: "LZ4", - 2: "SNAPPY", - 3: "ZSTD", -} -var CompressionType_value = map[string]int32{ - "UNKNOWN": 0, - "LZ4": 1, - "SNAPPY": 2, - "ZSTD": 3, -} - -func (x CompressionType) String() string { - return proto.EnumName(CompressionType_name, int32(x)) -} -func (CompressionType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{0} -} - -// The message save the metadata of a backup. -type BackupMeta struct { - // ID and version of backuped cluster. - ClusterId uint64 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` - ClusterVersion string `protobuf:"bytes,2,opt,name=cluster_version,json=clusterVersion,proto3" json:"cluster_version,omitempty"` - // Save the version of BR running backup jobs. - BrVersion string `protobuf:"bytes,11,opt,name=br_version,json=brVersion,proto3" json:"br_version,omitempty"` - // The backupmeta scheme version. - Version int32 `protobuf:"varint,12,opt,name=version,proto3" json:"version,omitempty"` - // A set of files that compose a backup. - // Note: `files` is deprecated, as it bloats backupmeta. It is kept for - // compatibility, so new BR can restore older backups. - Files []*File `protobuf:"bytes,4,rep,name=files" json:"files,omitempty"` - // An index to files contains data files. - FileIndex *MetaFile `protobuf:"bytes,13,opt,name=file_index,json=fileIndex" json:"file_index,omitempty"` - // A pair of timestamp specifies a time range of a backup. - // For full backup, the start_version equals to the end_version, - // it means point in time. - // For incremental backup, the time range is specified as - // (start_version, end_version]. - StartVersion uint64 `protobuf:"varint,5,opt,name=start_version,json=startVersion,proto3" json:"start_version,omitempty"` - EndVersion uint64 `protobuf:"varint,6,opt,name=end_version,json=endVersion,proto3" json:"end_version,omitempty"` - // Table metadata describes database and table info. - // Note: `schemas` is deprecated, as it bloats backupmeta. It is kept for - // compatibility, so new BR can restore older backups. - Schemas []*Schema `protobuf:"bytes,7,rep,name=schemas" json:"schemas,omitempty"` - // An index to files contains Schemas. - SchemaIndex *MetaFile `protobuf:"bytes,14,opt,name=schema_index,json=schemaIndex" json:"schema_index,omitempty"` - // If in raw kv mode, `start_versions`, `end_versions` and `schemas` will be - // ignored, and the backup data's range is represented by raw_ranges. - IsRawKv bool `protobuf:"varint,8,opt,name=is_raw_kv,json=isRawKv,proto3" json:"is_raw_kv,omitempty"` - // Note: `raw_ranges` is deprecated, as it bloats backupmeta. It is kept for - // compatibility, so new BR can restore older backups. - RawRanges []*RawRange `protobuf:"bytes,9,rep,name=raw_ranges,json=rawRanges" json:"raw_ranges,omitempty"` - // An index to files contains RawRanges. - RawRangeIndex *MetaFile `protobuf:"bytes,15,opt,name=raw_range_index,json=rawRangeIndex" json:"raw_range_index,omitempty"` - // In incremental backup, DDLs which are completed in - // (lastBackupTS, backupTS] will be stored here. - // Note: `raw_ranges` is deprecated, as it bloats backupmeta. It is kept for - // compatibility, so new BR can restore older backups. - Ddls []byte `protobuf:"bytes,10,opt,name=ddls,proto3" json:"ddls,omitempty"` - // An index to files contains DDLs. - DdlIndexes *MetaFile `protobuf:"bytes,16,opt,name=ddl_indexes,json=ddlIndexes" json:"ddl_indexes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *BackupMeta) Reset() { *m = BackupMeta{} } -func (m *BackupMeta) String() string { return proto.CompactTextString(m) } -func (*BackupMeta) ProtoMessage() {} -func (*BackupMeta) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{0} -} -func (m *BackupMeta) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BackupMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_BackupMeta.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *BackupMeta) XXX_Merge(src proto.Message) { - xxx_messageInfo_BackupMeta.Merge(dst, src) -} -func (m *BackupMeta) XXX_Size() int { - return m.Size() -} -func (m *BackupMeta) XXX_DiscardUnknown() { - xxx_messageInfo_BackupMeta.DiscardUnknown(m) -} - -var xxx_messageInfo_BackupMeta proto.InternalMessageInfo - -func (m *BackupMeta) GetClusterId() uint64 { - if m != nil { - return m.ClusterId - } - return 0 -} - -func (m *BackupMeta) GetClusterVersion() string { - if m != nil { - return m.ClusterVersion - } - return "" -} - -func (m *BackupMeta) GetBrVersion() string { - if m != nil { - return m.BrVersion - } - return "" -} - -func (m *BackupMeta) GetVersion() int32 { - if m != nil { - return m.Version - } - return 0 -} - -func (m *BackupMeta) GetFiles() []*File { - if m != nil { - return m.Files - } - return nil -} - -func (m *BackupMeta) GetFileIndex() *MetaFile { - if m != nil { - return m.FileIndex - } - return nil -} - -func (m *BackupMeta) GetStartVersion() uint64 { - if m != nil { - return m.StartVersion - } - return 0 -} - -func (m *BackupMeta) GetEndVersion() uint64 { - if m != nil { - return m.EndVersion - } - return 0 -} - -func (m *BackupMeta) GetSchemas() []*Schema { - if m != nil { - return m.Schemas - } - return nil -} - -func (m *BackupMeta) GetSchemaIndex() *MetaFile { - if m != nil { - return m.SchemaIndex - } - return nil -} - -func (m *BackupMeta) GetIsRawKv() bool { - if m != nil { - return m.IsRawKv - } - return false -} - -func (m *BackupMeta) GetRawRanges() []*RawRange { - if m != nil { - return m.RawRanges - } - return nil -} - -func (m *BackupMeta) GetRawRangeIndex() *MetaFile { - if m != nil { - return m.RawRangeIndex - } - return nil -} - -func (m *BackupMeta) GetDdls() []byte { - if m != nil { - return m.Ddls - } - return nil -} - -func (m *BackupMeta) GetDdlIndexes() *MetaFile { - if m != nil { - return m.DdlIndexes - } - return nil -} - -type File struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Sha256 []byte `protobuf:"bytes,2,opt,name=sha256,proto3" json:"sha256,omitempty"` - StartKey []byte `protobuf:"bytes,3,opt,name=start_key,json=startKey,proto3" json:"start_key,omitempty"` - EndKey []byte `protobuf:"bytes,4,opt,name=end_key,json=endKey,proto3" json:"end_key,omitempty"` - StartVersion uint64 `protobuf:"varint,5,opt,name=start_version,json=startVersion,proto3" json:"start_version,omitempty"` - EndVersion uint64 `protobuf:"varint,6,opt,name=end_version,json=endVersion,proto3" json:"end_version,omitempty"` - Crc64Xor uint64 `protobuf:"varint,7,opt,name=crc64xor,proto3" json:"crc64xor,omitempty"` - TotalKvs uint64 `protobuf:"varint,8,opt,name=total_kvs,json=totalKvs,proto3" json:"total_kvs,omitempty"` - TotalBytes uint64 `protobuf:"varint,9,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"` - Cf string `protobuf:"bytes,10,opt,name=cf,proto3" json:"cf,omitempty"` - Size_ uint64 `protobuf:"varint,11,opt,name=size,proto3" json:"size,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *File) Reset() { *m = File{} } -func (m *File) String() string { return proto.CompactTextString(m) } -func (*File) ProtoMessage() {} -func (*File) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{1} -} -func (m *File) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *File) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_File.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *File) XXX_Merge(src proto.Message) { - xxx_messageInfo_File.Merge(dst, src) -} -func (m *File) XXX_Size() int { - return m.Size() -} -func (m *File) XXX_DiscardUnknown() { - xxx_messageInfo_File.DiscardUnknown(m) -} - -var xxx_messageInfo_File proto.InternalMessageInfo - -func (m *File) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *File) GetSha256() []byte { - if m != nil { - return m.Sha256 - } - return nil -} - -func (m *File) GetStartKey() []byte { - if m != nil { - return m.StartKey - } - return nil -} - -func (m *File) GetEndKey() []byte { - if m != nil { - return m.EndKey - } - return nil -} - -func (m *File) GetStartVersion() uint64 { - if m != nil { - return m.StartVersion - } - return 0 -} - -func (m *File) GetEndVersion() uint64 { - if m != nil { - return m.EndVersion - } - return 0 -} - -func (m *File) GetCrc64Xor() uint64 { - if m != nil { - return m.Crc64Xor - } - return 0 -} - -func (m *File) GetTotalKvs() uint64 { - if m != nil { - return m.TotalKvs - } - return 0 -} - -func (m *File) GetTotalBytes() uint64 { - if m != nil { - return m.TotalBytes - } - return 0 -} - -func (m *File) GetCf() string { - if m != nil { - return m.Cf - } - return "" -} - -func (m *File) GetSize_() uint64 { - if m != nil { - return m.Size_ - } - return 0 -} - -// MetaFile describes a multi-level index of data used in backup. -type MetaFile struct { - // A set of files that contains a MetaFile. - // It is used as a multi-level index. - MetaFiles []*File `protobuf:"bytes,1,rep,name=meta_files,json=metaFiles" json:"meta_files,omitempty"` - // A set of files that contains user data. - DataFiles []*File `protobuf:"bytes,2,rep,name=data_files,json=dataFiles" json:"data_files,omitempty"` - // A set of files that contains Schemas. - Schemas []*Schema `protobuf:"bytes,3,rep,name=schemas" json:"schemas,omitempty"` - // A set of files that contains RawRanges. - RawRanges []*RawRange `protobuf:"bytes,4,rep,name=raw_ranges,json=rawRanges" json:"raw_ranges,omitempty"` - // A set of files that contains DDLs. - Ddls [][]byte `protobuf:"bytes,5,rep,name=ddls" json:"ddls,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MetaFile) Reset() { *m = MetaFile{} } -func (m *MetaFile) String() string { return proto.CompactTextString(m) } -func (*MetaFile) ProtoMessage() {} -func (*MetaFile) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{2} -} -func (m *MetaFile) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MetaFile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MetaFile.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *MetaFile) XXX_Merge(src proto.Message) { - xxx_messageInfo_MetaFile.Merge(dst, src) -} -func (m *MetaFile) XXX_Size() int { - return m.Size() -} -func (m *MetaFile) XXX_DiscardUnknown() { - xxx_messageInfo_MetaFile.DiscardUnknown(m) -} - -var xxx_messageInfo_MetaFile proto.InternalMessageInfo - -func (m *MetaFile) GetMetaFiles() []*File { - if m != nil { - return m.MetaFiles - } - return nil -} - -func (m *MetaFile) GetDataFiles() []*File { - if m != nil { - return m.DataFiles - } - return nil -} - -func (m *MetaFile) GetSchemas() []*Schema { - if m != nil { - return m.Schemas - } - return nil -} - -func (m *MetaFile) GetRawRanges() []*RawRange { - if m != nil { - return m.RawRanges - } - return nil -} - -func (m *MetaFile) GetDdls() [][]byte { - if m != nil { - return m.Ddls - } - return nil -} - -type Schema struct { - Db []byte `protobuf:"bytes,1,opt,name=db,proto3" json:"db,omitempty"` - Table []byte `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"` - Crc64Xor uint64 `protobuf:"varint,3,opt,name=crc64xor,proto3" json:"crc64xor,omitempty"` - TotalKvs uint64 `protobuf:"varint,4,opt,name=total_kvs,json=totalKvs,proto3" json:"total_kvs,omitempty"` - TotalBytes uint64 `protobuf:"varint,5,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"` - TiflashReplicas uint32 `protobuf:"varint,6,opt,name=tiflash_replicas,json=tiflashReplicas,proto3" json:"tiflash_replicas,omitempty"` - // stats represents the dump stats for a analyzed table, which generate by DumpStatsToJSON - // https://github.com/pingcap/tidb/blob/e136429d8dc5d70f43cd3f94179b0b9f47595097/statistics/handle/dump.go#L116 - Stats []byte `protobuf:"bytes,7,opt,name=stats,proto3" json:"stats,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Schema) Reset() { *m = Schema{} } -func (m *Schema) String() string { return proto.CompactTextString(m) } -func (*Schema) ProtoMessage() {} -func (*Schema) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{3} -} -func (m *Schema) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Schema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Schema.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *Schema) XXX_Merge(src proto.Message) { - xxx_messageInfo_Schema.Merge(dst, src) -} -func (m *Schema) XXX_Size() int { - return m.Size() -} -func (m *Schema) XXX_DiscardUnknown() { - xxx_messageInfo_Schema.DiscardUnknown(m) -} - -var xxx_messageInfo_Schema proto.InternalMessageInfo - -func (m *Schema) GetDb() []byte { - if m != nil { - return m.Db - } - return nil -} - -func (m *Schema) GetTable() []byte { - if m != nil { - return m.Table - } - return nil -} - -func (m *Schema) GetCrc64Xor() uint64 { - if m != nil { - return m.Crc64Xor - } - return 0 -} - -func (m *Schema) GetTotalKvs() uint64 { - if m != nil { - return m.TotalKvs - } - return 0 -} - -func (m *Schema) GetTotalBytes() uint64 { - if m != nil { - return m.TotalBytes - } - return 0 -} - -func (m *Schema) GetTiflashReplicas() uint32 { - if m != nil { - return m.TiflashReplicas - } - return 0 -} - -func (m *Schema) GetStats() []byte { - if m != nil { - return m.Stats - } - return nil -} - -type RawRange struct { - StartKey []byte `protobuf:"bytes,1,opt,name=start_key,json=startKey,proto3" json:"start_key,omitempty"` - EndKey []byte `protobuf:"bytes,2,opt,name=end_key,json=endKey,proto3" json:"end_key,omitempty"` - Cf string `protobuf:"bytes,3,opt,name=cf,proto3" json:"cf,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *RawRange) Reset() { *m = RawRange{} } -func (m *RawRange) String() string { return proto.CompactTextString(m) } -func (*RawRange) ProtoMessage() {} -func (*RawRange) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{4} -} -func (m *RawRange) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RawRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RawRange.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *RawRange) XXX_Merge(src proto.Message) { - xxx_messageInfo_RawRange.Merge(dst, src) -} -func (m *RawRange) XXX_Size() int { - return m.Size() -} -func (m *RawRange) XXX_DiscardUnknown() { - xxx_messageInfo_RawRange.DiscardUnknown(m) -} - -var xxx_messageInfo_RawRange proto.InternalMessageInfo - -func (m *RawRange) GetStartKey() []byte { - if m != nil { - return m.StartKey - } - return nil -} - -func (m *RawRange) GetEndKey() []byte { - if m != nil { - return m.EndKey - } - return nil -} - -func (m *RawRange) GetCf() string { - if m != nil { - return m.Cf - } - return "" -} - -type ClusterIDError struct { - Current uint64 `protobuf:"varint,1,opt,name=current,proto3" json:"current,omitempty"` - Request uint64 `protobuf:"varint,2,opt,name=request,proto3" json:"request,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ClusterIDError) Reset() { *m = ClusterIDError{} } -func (m *ClusterIDError) String() string { return proto.CompactTextString(m) } -func (*ClusterIDError) ProtoMessage() {} -func (*ClusterIDError) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{5} -} -func (m *ClusterIDError) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterIDError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_ClusterIDError.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *ClusterIDError) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterIDError.Merge(dst, src) -} -func (m *ClusterIDError) XXX_Size() int { - return m.Size() -} -func (m *ClusterIDError) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterIDError.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterIDError proto.InternalMessageInfo - -func (m *ClusterIDError) GetCurrent() uint64 { - if m != nil { - return m.Current - } - return 0 -} - -func (m *ClusterIDError) GetRequest() uint64 { - if m != nil { - return m.Request - } - return 0 -} - -type Error struct { - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - // Types that are valid to be assigned to Detail: - // *Error_ClusterIdError - // *Error_KvError - // *Error_RegionError - Detail isError_Detail `protobuf_oneof:"detail"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Error) Reset() { *m = Error{} } -func (m *Error) String() string { return proto.CompactTextString(m) } -func (*Error) ProtoMessage() {} -func (*Error) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{6} -} -func (m *Error) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Error) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Error.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *Error) XXX_Merge(src proto.Message) { - xxx_messageInfo_Error.Merge(dst, src) -} -func (m *Error) XXX_Size() int { - return m.Size() -} -func (m *Error) XXX_DiscardUnknown() { - xxx_messageInfo_Error.DiscardUnknown(m) -} - -var xxx_messageInfo_Error proto.InternalMessageInfo - -type isError_Detail interface { - isError_Detail() - MarshalTo([]byte) (int, error) - Size() int -} - -type Error_ClusterIdError struct { - ClusterIdError *ClusterIDError `protobuf:"bytes,3,opt,name=cluster_id_error,json=clusterIdError,oneof"` -} -type Error_KvError struct { - KvError *kvrpcpb.KeyError `protobuf:"bytes,4,opt,name=kv_error,json=kvError,oneof"` -} -type Error_RegionError struct { - RegionError *errorpb.Error `protobuf:"bytes,5,opt,name=region_error,json=regionError,oneof"` -} - -func (*Error_ClusterIdError) isError_Detail() {} -func (*Error_KvError) isError_Detail() {} -func (*Error_RegionError) isError_Detail() {} - -func (m *Error) GetDetail() isError_Detail { - if m != nil { - return m.Detail - } - return nil -} - -func (m *Error) GetMsg() string { - if m != nil { - return m.Msg - } - return "" -} - -func (m *Error) GetClusterIdError() *ClusterIDError { - if x, ok := m.GetDetail().(*Error_ClusterIdError); ok { - return x.ClusterIdError - } - return nil -} - -func (m *Error) GetKvError() *kvrpcpb.KeyError { - if x, ok := m.GetDetail().(*Error_KvError); ok { - return x.KvError - } - return nil -} - -func (m *Error) GetRegionError() *errorpb.Error { - if x, ok := m.GetDetail().(*Error_RegionError); ok { - return x.RegionError - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*Error) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _Error_OneofMarshaler, _Error_OneofUnmarshaler, _Error_OneofSizer, []interface{}{ - (*Error_ClusterIdError)(nil), - (*Error_KvError)(nil), - (*Error_RegionError)(nil), - } -} - -func _Error_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*Error) - // detail - switch x := m.Detail.(type) { - case *Error_ClusterIdError: - _ = b.EncodeVarint(3<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.ClusterIdError); err != nil { - return err - } - case *Error_KvError: - _ = b.EncodeVarint(4<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.KvError); err != nil { - return err - } - case *Error_RegionError: - _ = b.EncodeVarint(5<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.RegionError); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("Error.Detail has unexpected type %T", x) - } - return nil -} - -func _Error_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*Error) - switch tag { - case 3: // detail.cluster_id_error - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(ClusterIDError) - err := b.DecodeMessage(msg) - m.Detail = &Error_ClusterIdError{msg} - return true, err - case 4: // detail.kv_error - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(kvrpcpb.KeyError) - err := b.DecodeMessage(msg) - m.Detail = &Error_KvError{msg} - return true, err - case 5: // detail.region_error - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(errorpb.Error) - err := b.DecodeMessage(msg) - m.Detail = &Error_RegionError{msg} - return true, err - default: - return false, nil - } -} - -func _Error_OneofSizer(msg proto.Message) (n int) { - m := msg.(*Error) - // detail - switch x := m.Detail.(type) { - case *Error_ClusterIdError: - s := proto.Size(x.ClusterIdError) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *Error_KvError: - s := proto.Size(x.KvError) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *Error_RegionError: - s := proto.Size(x.RegionError) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -type BackupRequest struct { - ClusterId uint64 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` - StartKey []byte `protobuf:"bytes,2,opt,name=start_key,json=startKey,proto3" json:"start_key,omitempty"` - EndKey []byte `protobuf:"bytes,3,opt,name=end_key,json=endKey,proto3" json:"end_key,omitempty"` - StartVersion uint64 `protobuf:"varint,4,opt,name=start_version,json=startVersion,proto3" json:"start_version,omitempty"` - EndVersion uint64 `protobuf:"varint,5,opt,name=end_version,json=endVersion,proto3" json:"end_version,omitempty"` - // The I/O rate limit for backup request. - RateLimit uint64 `protobuf:"varint,7,opt,name=rate_limit,json=rateLimit,proto3" json:"rate_limit,omitempty"` - // The concurrency for executing the backup request in every tikv node. - Concurrency uint32 `protobuf:"varint,8,opt,name=concurrency,proto3" json:"concurrency,omitempty"` - StorageBackend *StorageBackend `protobuf:"bytes,9,opt,name=storage_backend,json=storageBackend" json:"storage_backend,omitempty"` - // If raw kv mode is enabled, `start_version` and `end_version` will be ignored, and `cf` - // specifies which cf to backup. - IsRawKv bool `protobuf:"varint,10,opt,name=is_raw_kv,json=isRawKv,proto3" json:"is_raw_kv,omitempty"` - Cf string `protobuf:"bytes,11,opt,name=cf,proto3" json:"cf,omitempty"` - // algorithm used for compress sst files - CompressionType CompressionType `protobuf:"varint,12,opt,name=compression_type,json=compressionType,proto3,enum=backup.CompressionType" json:"compression_type,omitempty"` - // sst compression level, some algorithms support negative compression levels - CompressionLevel int32 `protobuf:"varint,13,opt,name=compression_level,json=compressionLevel,proto3" json:"compression_level,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *BackupRequest) Reset() { *m = BackupRequest{} } -func (m *BackupRequest) String() string { return proto.CompactTextString(m) } -func (*BackupRequest) ProtoMessage() {} -func (*BackupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{7} -} -func (m *BackupRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BackupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_BackupRequest.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *BackupRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_BackupRequest.Merge(dst, src) -} -func (m *BackupRequest) XXX_Size() int { - return m.Size() -} -func (m *BackupRequest) XXX_DiscardUnknown() { - xxx_messageInfo_BackupRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_BackupRequest proto.InternalMessageInfo - -func (m *BackupRequest) GetClusterId() uint64 { - if m != nil { - return m.ClusterId - } - return 0 -} - -func (m *BackupRequest) GetStartKey() []byte { - if m != nil { - return m.StartKey - } - return nil -} - -func (m *BackupRequest) GetEndKey() []byte { - if m != nil { - return m.EndKey - } - return nil -} - -func (m *BackupRequest) GetStartVersion() uint64 { - if m != nil { - return m.StartVersion - } - return 0 -} - -func (m *BackupRequest) GetEndVersion() uint64 { - if m != nil { - return m.EndVersion - } - return 0 -} - -func (m *BackupRequest) GetRateLimit() uint64 { - if m != nil { - return m.RateLimit - } - return 0 -} - -func (m *BackupRequest) GetConcurrency() uint32 { - if m != nil { - return m.Concurrency - } - return 0 -} - -func (m *BackupRequest) GetStorageBackend() *StorageBackend { - if m != nil { - return m.StorageBackend - } - return nil -} - -func (m *BackupRequest) GetIsRawKv() bool { - if m != nil { - return m.IsRawKv - } - return false -} - -func (m *BackupRequest) GetCf() string { - if m != nil { - return m.Cf - } - return "" -} - -func (m *BackupRequest) GetCompressionType() CompressionType { - if m != nil { - return m.CompressionType - } - return CompressionType_UNKNOWN -} - -func (m *BackupRequest) GetCompressionLevel() int32 { - if m != nil { - return m.CompressionLevel - } - return 0 -} - -type StorageBackend struct { - // Types that are valid to be assigned to Backend: - // *StorageBackend_Noop - // *StorageBackend_Local - // *StorageBackend_S3 - // *StorageBackend_Gcs - // *StorageBackend_CloudDynamic - Backend isStorageBackend_Backend `protobuf_oneof:"backend"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *StorageBackend) Reset() { *m = StorageBackend{} } -func (m *StorageBackend) String() string { return proto.CompactTextString(m) } -func (*StorageBackend) ProtoMessage() {} -func (*StorageBackend) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{8} -} -func (m *StorageBackend) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *StorageBackend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_StorageBackend.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *StorageBackend) XXX_Merge(src proto.Message) { - xxx_messageInfo_StorageBackend.Merge(dst, src) -} -func (m *StorageBackend) XXX_Size() int { - return m.Size() -} -func (m *StorageBackend) XXX_DiscardUnknown() { - xxx_messageInfo_StorageBackend.DiscardUnknown(m) -} - -var xxx_messageInfo_StorageBackend proto.InternalMessageInfo - -type isStorageBackend_Backend interface { - isStorageBackend_Backend() - MarshalTo([]byte) (int, error) - Size() int -} - -type StorageBackend_Noop struct { - Noop *Noop `protobuf:"bytes,1,opt,name=noop,oneof"` -} -type StorageBackend_Local struct { - Local *Local `protobuf:"bytes,2,opt,name=local,oneof"` -} -type StorageBackend_S3 struct { - S3 *S3 `protobuf:"bytes,3,opt,name=s3,oneof"` -} -type StorageBackend_Gcs struct { - Gcs *GCS `protobuf:"bytes,4,opt,name=gcs,oneof"` -} -type StorageBackend_CloudDynamic struct { - CloudDynamic *CloudDynamic `protobuf:"bytes,5,opt,name=cloud_dynamic,json=cloudDynamic,oneof"` -} - -func (*StorageBackend_Noop) isStorageBackend_Backend() {} -func (*StorageBackend_Local) isStorageBackend_Backend() {} -func (*StorageBackend_S3) isStorageBackend_Backend() {} -func (*StorageBackend_Gcs) isStorageBackend_Backend() {} -func (*StorageBackend_CloudDynamic) isStorageBackend_Backend() {} - -func (m *StorageBackend) GetBackend() isStorageBackend_Backend { - if m != nil { - return m.Backend - } - return nil -} - -func (m *StorageBackend) GetNoop() *Noop { - if x, ok := m.GetBackend().(*StorageBackend_Noop); ok { - return x.Noop - } - return nil -} - -func (m *StorageBackend) GetLocal() *Local { - if x, ok := m.GetBackend().(*StorageBackend_Local); ok { - return x.Local - } - return nil -} - -func (m *StorageBackend) GetS3() *S3 { - if x, ok := m.GetBackend().(*StorageBackend_S3); ok { - return x.S3 - } - return nil -} - -func (m *StorageBackend) GetGcs() *GCS { - if x, ok := m.GetBackend().(*StorageBackend_Gcs); ok { - return x.Gcs - } - return nil -} - -func (m *StorageBackend) GetCloudDynamic() *CloudDynamic { - if x, ok := m.GetBackend().(*StorageBackend_CloudDynamic); ok { - return x.CloudDynamic - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*StorageBackend) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _StorageBackend_OneofMarshaler, _StorageBackend_OneofUnmarshaler, _StorageBackend_OneofSizer, []interface{}{ - (*StorageBackend_Noop)(nil), - (*StorageBackend_Local)(nil), - (*StorageBackend_S3)(nil), - (*StorageBackend_Gcs)(nil), - (*StorageBackend_CloudDynamic)(nil), - } -} - -func _StorageBackend_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*StorageBackend) - // backend - switch x := m.Backend.(type) { - case *StorageBackend_Noop: - _ = b.EncodeVarint(1<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Noop); err != nil { - return err - } - case *StorageBackend_Local: - _ = b.EncodeVarint(2<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Local); err != nil { - return err - } - case *StorageBackend_S3: - _ = b.EncodeVarint(3<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.S3); err != nil { - return err - } - case *StorageBackend_Gcs: - _ = b.EncodeVarint(4<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Gcs); err != nil { - return err - } - case *StorageBackend_CloudDynamic: - _ = b.EncodeVarint(5<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.CloudDynamic); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("StorageBackend.Backend has unexpected type %T", x) - } - return nil -} - -func _StorageBackend_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*StorageBackend) - switch tag { - case 1: // backend.noop - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Noop) - err := b.DecodeMessage(msg) - m.Backend = &StorageBackend_Noop{msg} - return true, err - case 2: // backend.local - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Local) - err := b.DecodeMessage(msg) - m.Backend = &StorageBackend_Local{msg} - return true, err - case 3: // backend.s3 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(S3) - err := b.DecodeMessage(msg) - m.Backend = &StorageBackend_S3{msg} - return true, err - case 4: // backend.gcs - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(GCS) - err := b.DecodeMessage(msg) - m.Backend = &StorageBackend_Gcs{msg} - return true, err - case 5: // backend.cloud_dynamic - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(CloudDynamic) - err := b.DecodeMessage(msg) - m.Backend = &StorageBackend_CloudDynamic{msg} - return true, err - default: - return false, nil - } -} - -func _StorageBackend_OneofSizer(msg proto.Message) (n int) { - m := msg.(*StorageBackend) - // backend - switch x := m.Backend.(type) { - case *StorageBackend_Noop: - s := proto.Size(x.Noop) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *StorageBackend_Local: - s := proto.Size(x.Local) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *StorageBackend_S3: - s := proto.Size(x.S3) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *StorageBackend_Gcs: - s := proto.Size(x.Gcs) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *StorageBackend_CloudDynamic: - s := proto.Size(x.CloudDynamic) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -// Noop storage backend saves files into void. -type Noop struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Noop) Reset() { *m = Noop{} } -func (m *Noop) String() string { return proto.CompactTextString(m) } -func (*Noop) ProtoMessage() {} -func (*Noop) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{9} -} -func (m *Noop) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Noop) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Noop.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *Noop) XXX_Merge(src proto.Message) { - xxx_messageInfo_Noop.Merge(dst, src) -} -func (m *Noop) XXX_Size() int { - return m.Size() -} -func (m *Noop) XXX_DiscardUnknown() { - xxx_messageInfo_Noop.DiscardUnknown(m) -} - -var xxx_messageInfo_Noop proto.InternalMessageInfo - -// Local storage backend saves files into local disk -type Local struct { - Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Local) Reset() { *m = Local{} } -func (m *Local) String() string { return proto.CompactTextString(m) } -func (*Local) ProtoMessage() {} -func (*Local) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{10} -} -func (m *Local) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Local) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Local.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *Local) XXX_Merge(src proto.Message) { - xxx_messageInfo_Local.Merge(dst, src) -} -func (m *Local) XXX_Size() int { - return m.Size() -} -func (m *Local) XXX_DiscardUnknown() { - xxx_messageInfo_Local.DiscardUnknown(m) -} - -var xxx_messageInfo_Local proto.InternalMessageInfo - -func (m *Local) GetPath() string { - if m != nil { - return m.Path - } - return "" -} - -// S3 storage backend saves files into S3 compatible storages -// For non-aws providers, endpoint must be provided -type S3 struct { - Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` - Region string `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"` - Bucket string `protobuf:"bytes,3,opt,name=bucket,proto3" json:"bucket,omitempty"` - Prefix string `protobuf:"bytes,4,opt,name=prefix,proto3" json:"prefix,omitempty"` - StorageClass string `protobuf:"bytes,5,opt,name=storage_class,json=storageClass,proto3" json:"storage_class,omitempty"` - // server side encryption - Sse string `protobuf:"bytes,6,opt,name=sse,proto3" json:"sse,omitempty"` - Acl string `protobuf:"bytes,7,opt,name=acl,proto3" json:"acl,omitempty"` - AccessKey string `protobuf:"bytes,8,opt,name=access_key,json=accessKey,proto3" json:"access_key,omitempty"` - SecretAccessKey string `protobuf:"bytes,9,opt,name=secret_access_key,json=secretAccessKey,proto3" json:"secret_access_key,omitempty"` - ForcePathStyle bool `protobuf:"varint,10,opt,name=force_path_style,json=forcePathStyle,proto3" json:"force_path_style,omitempty"` - SseKmsKeyId string `protobuf:"bytes,11,opt,name=sse_kms_key_id,json=sseKmsKeyId,proto3" json:"sse_kms_key_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *S3) Reset() { *m = S3{} } -func (m *S3) String() string { return proto.CompactTextString(m) } -func (*S3) ProtoMessage() {} -func (*S3) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{11} -} -func (m *S3) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *S3) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_S3.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *S3) XXX_Merge(src proto.Message) { - xxx_messageInfo_S3.Merge(dst, src) -} -func (m *S3) XXX_Size() int { - return m.Size() -} -func (m *S3) XXX_DiscardUnknown() { - xxx_messageInfo_S3.DiscardUnknown(m) -} - -var xxx_messageInfo_S3 proto.InternalMessageInfo - -func (m *S3) GetEndpoint() string { - if m != nil { - return m.Endpoint - } - return "" -} - -func (m *S3) GetRegion() string { - if m != nil { - return m.Region - } - return "" -} - -func (m *S3) GetBucket() string { - if m != nil { - return m.Bucket - } - return "" -} - -func (m *S3) GetPrefix() string { - if m != nil { - return m.Prefix - } - return "" -} - -func (m *S3) GetStorageClass() string { - if m != nil { - return m.StorageClass - } - return "" -} - -func (m *S3) GetSse() string { - if m != nil { - return m.Sse - } - return "" -} - -func (m *S3) GetAcl() string { - if m != nil { - return m.Acl - } - return "" -} - -func (m *S3) GetAccessKey() string { - if m != nil { - return m.AccessKey - } - return "" -} - -func (m *S3) GetSecretAccessKey() string { - if m != nil { - return m.SecretAccessKey - } - return "" -} - -func (m *S3) GetForcePathStyle() bool { - if m != nil { - return m.ForcePathStyle - } - return false -} - -func (m *S3) GetSseKmsKeyId() string { - if m != nil { - return m.SseKmsKeyId - } - return "" -} - -// GCS storage backend saves files into google cloud storage. -type GCS struct { - Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` - Bucket string `protobuf:"bytes,2,opt,name=bucket,proto3" json:"bucket,omitempty"` - Prefix string `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"` - StorageClass string `protobuf:"bytes,4,opt,name=storage_class,json=storageClass,proto3" json:"storage_class,omitempty"` - // If not empty, applies a predefined set of access controls. - // See https://cloud.google.com/storage/docs/access-control/lists#predefined-acl - // for valid values. - PredefinedAcl string `protobuf:"bytes,5,opt,name=predefined_acl,json=predefinedAcl,proto3" json:"predefined_acl,omitempty"` - // Service Account Credentials JSON blob - // You can get one from https://console.cloud.google.com/apis/credentials, and - // copy the content, set it as string here. - CredentialsBlob string `protobuf:"bytes,6,opt,name=credentials_blob,json=credentialsBlob,proto3" json:"credentials_blob,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GCS) Reset() { *m = GCS{} } -func (m *GCS) String() string { return proto.CompactTextString(m) } -func (*GCS) ProtoMessage() {} -func (*GCS) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{12} -} -func (m *GCS) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *GCS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_GCS.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *GCS) XXX_Merge(src proto.Message) { - xxx_messageInfo_GCS.Merge(dst, src) -} -func (m *GCS) XXX_Size() int { - return m.Size() -} -func (m *GCS) XXX_DiscardUnknown() { - xxx_messageInfo_GCS.DiscardUnknown(m) -} - -var xxx_messageInfo_GCS proto.InternalMessageInfo - -func (m *GCS) GetEndpoint() string { - if m != nil { - return m.Endpoint - } - return "" -} - -func (m *GCS) GetBucket() string { - if m != nil { - return m.Bucket - } - return "" -} - -func (m *GCS) GetPrefix() string { - if m != nil { - return m.Prefix - } - return "" -} - -func (m *GCS) GetStorageClass() string { - if m != nil { - return m.StorageClass - } - return "" -} - -func (m *GCS) GetPredefinedAcl() string { - if m != nil { - return m.PredefinedAcl - } - return "" -} - -func (m *GCS) GetCredentialsBlob() string { - if m != nil { - return m.CredentialsBlob - } - return "" -} - -type Bucket struct { - Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` - Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"` - Bucket string `protobuf:"bytes,4,opt,name=bucket,proto3" json:"bucket,omitempty"` - Prefix string `protobuf:"bytes,5,opt,name=prefix,proto3" json:"prefix,omitempty"` - StorageClass string `protobuf:"bytes,6,opt,name=storage_class,json=storageClass,proto3" json:"storage_class,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Bucket) Reset() { *m = Bucket{} } -func (m *Bucket) String() string { return proto.CompactTextString(m) } -func (*Bucket) ProtoMessage() {} -func (*Bucket) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{13} -} -func (m *Bucket) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Bucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Bucket.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *Bucket) XXX_Merge(src proto.Message) { - xxx_messageInfo_Bucket.Merge(dst, src) -} -func (m *Bucket) XXX_Size() int { - return m.Size() -} -func (m *Bucket) XXX_DiscardUnknown() { - xxx_messageInfo_Bucket.DiscardUnknown(m) -} - -var xxx_messageInfo_Bucket proto.InternalMessageInfo - -func (m *Bucket) GetEndpoint() string { - if m != nil { - return m.Endpoint - } - return "" -} - -func (m *Bucket) GetRegion() string { - if m != nil { - return m.Region - } - return "" -} - -func (m *Bucket) GetBucket() string { - if m != nil { - return m.Bucket - } - return "" -} - -func (m *Bucket) GetPrefix() string { - if m != nil { - return m.Prefix - } - return "" -} - -func (m *Bucket) GetStorageClass() string { - if m != nil { - return m.StorageClass - } - return "" -} - -// CloudDynamic allows testing new cloud providers and new fields without changing protobuf definitions -type CloudDynamic struct { - Bucket *Bucket `protobuf:"bytes,1,opt,name=bucket" json:"bucket,omitempty"` - ProviderName string `protobuf:"bytes,2,opt,name=provider_name,json=providerName,proto3" json:"provider_name,omitempty"` - Attrs map[string]string `protobuf:"bytes,3,rep,name=attrs" json:"attrs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CloudDynamic) Reset() { *m = CloudDynamic{} } -func (m *CloudDynamic) String() string { return proto.CompactTextString(m) } -func (*CloudDynamic) ProtoMessage() {} -func (*CloudDynamic) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{14} -} -func (m *CloudDynamic) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *CloudDynamic) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_CloudDynamic.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *CloudDynamic) XXX_Merge(src proto.Message) { - xxx_messageInfo_CloudDynamic.Merge(dst, src) -} -func (m *CloudDynamic) XXX_Size() int { - return m.Size() -} -func (m *CloudDynamic) XXX_DiscardUnknown() { - xxx_messageInfo_CloudDynamic.DiscardUnknown(m) -} - -var xxx_messageInfo_CloudDynamic proto.InternalMessageInfo - -func (m *CloudDynamic) GetBucket() *Bucket { - if m != nil { - return m.Bucket - } - return nil -} - -func (m *CloudDynamic) GetProviderName() string { - if m != nil { - return m.ProviderName - } - return "" -} - -func (m *CloudDynamic) GetAttrs() map[string]string { - if m != nil { - return m.Attrs - } - return nil -} - -type BackupResponse struct { - Error *Error `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"` - StartKey []byte `protobuf:"bytes,2,opt,name=start_key,json=startKey,proto3" json:"start_key,omitempty"` - EndKey []byte `protobuf:"bytes,3,opt,name=end_key,json=endKey,proto3" json:"end_key,omitempty"` - Files []*File `protobuf:"bytes,4,rep,name=files" json:"files,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *BackupResponse) Reset() { *m = BackupResponse{} } -func (m *BackupResponse) String() string { return proto.CompactTextString(m) } -func (*BackupResponse) ProtoMessage() {} -func (*BackupResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{15} -} -func (m *BackupResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BackupResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_BackupResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *BackupResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_BackupResponse.Merge(dst, src) -} -func (m *BackupResponse) XXX_Size() int { - return m.Size() -} -func (m *BackupResponse) XXX_DiscardUnknown() { - xxx_messageInfo_BackupResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_BackupResponse proto.InternalMessageInfo - -func (m *BackupResponse) GetError() *Error { - if m != nil { - return m.Error - } - return nil -} - -func (m *BackupResponse) GetStartKey() []byte { - if m != nil { - return m.StartKey - } - return nil -} - -func (m *BackupResponse) GetEndKey() []byte { - if m != nil { - return m.EndKey - } - return nil -} - -func (m *BackupResponse) GetFiles() []*File { - if m != nil { - return m.Files - } - return nil -} - -type ExternalStorageRestoreRequest struct { - StorageBackend *StorageBackend `protobuf:"bytes,1,opt,name=storage_backend,json=storageBackend" json:"storage_backend,omitempty"` - ObjectName string `protobuf:"bytes,2,opt,name=object_name,json=objectName,proto3" json:"object_name,omitempty"` - RestoreName string `protobuf:"bytes,3,opt,name=restore_name,json=restoreName,proto3" json:"restore_name,omitempty"` - ContentLength uint64 `protobuf:"varint,4,opt,name=content_length,json=contentLength,proto3" json:"content_length,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ExternalStorageRestoreRequest) Reset() { *m = ExternalStorageRestoreRequest{} } -func (m *ExternalStorageRestoreRequest) String() string { return proto.CompactTextString(m) } -func (*ExternalStorageRestoreRequest) ProtoMessage() {} -func (*ExternalStorageRestoreRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{16} -} -func (m *ExternalStorageRestoreRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ExternalStorageRestoreRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_ExternalStorageRestoreRequest.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *ExternalStorageRestoreRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExternalStorageRestoreRequest.Merge(dst, src) -} -func (m *ExternalStorageRestoreRequest) XXX_Size() int { - return m.Size() -} -func (m *ExternalStorageRestoreRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ExternalStorageRestoreRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ExternalStorageRestoreRequest proto.InternalMessageInfo - -func (m *ExternalStorageRestoreRequest) GetStorageBackend() *StorageBackend { - if m != nil { - return m.StorageBackend - } - return nil -} - -func (m *ExternalStorageRestoreRequest) GetObjectName() string { - if m != nil { - return m.ObjectName - } - return "" -} - -func (m *ExternalStorageRestoreRequest) GetRestoreName() string { - if m != nil { - return m.RestoreName - } - return "" -} - -func (m *ExternalStorageRestoreRequest) GetContentLength() uint64 { - if m != nil { - return m.ContentLength - } - return 0 -} - -type ExternalStorageRestoreResponse struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ExternalStorageRestoreResponse) Reset() { *m = ExternalStorageRestoreResponse{} } -func (m *ExternalStorageRestoreResponse) String() string { return proto.CompactTextString(m) } -func (*ExternalStorageRestoreResponse) ProtoMessage() {} -func (*ExternalStorageRestoreResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{17} -} -func (m *ExternalStorageRestoreResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ExternalStorageRestoreResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_ExternalStorageRestoreResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *ExternalStorageRestoreResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExternalStorageRestoreResponse.Merge(dst, src) -} -func (m *ExternalStorageRestoreResponse) XXX_Size() int { - return m.Size() -} -func (m *ExternalStorageRestoreResponse) XXX_DiscardUnknown() { - xxx_messageInfo_ExternalStorageRestoreResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_ExternalStorageRestoreResponse proto.InternalMessageInfo - -type ExternalStorageSaveRequest struct { - StorageBackend *StorageBackend `protobuf:"bytes,1,opt,name=storage_backend,json=storageBackend" json:"storage_backend,omitempty"` - ObjectName string `protobuf:"bytes,2,opt,name=object_name,json=objectName,proto3" json:"object_name,omitempty"` - ContentLength uint64 `protobuf:"varint,3,opt,name=content_length,json=contentLength,proto3" json:"content_length,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ExternalStorageSaveRequest) Reset() { *m = ExternalStorageSaveRequest{} } -func (m *ExternalStorageSaveRequest) String() string { return proto.CompactTextString(m) } -func (*ExternalStorageSaveRequest) ProtoMessage() {} -func (*ExternalStorageSaveRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{18} -} -func (m *ExternalStorageSaveRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ExternalStorageSaveRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_ExternalStorageSaveRequest.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *ExternalStorageSaveRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExternalStorageSaveRequest.Merge(dst, src) -} -func (m *ExternalStorageSaveRequest) XXX_Size() int { - return m.Size() -} -func (m *ExternalStorageSaveRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ExternalStorageSaveRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ExternalStorageSaveRequest proto.InternalMessageInfo - -func (m *ExternalStorageSaveRequest) GetStorageBackend() *StorageBackend { - if m != nil { - return m.StorageBackend - } - return nil -} - -func (m *ExternalStorageSaveRequest) GetObjectName() string { - if m != nil { - return m.ObjectName - } - return "" -} - -func (m *ExternalStorageSaveRequest) GetContentLength() uint64 { - if m != nil { - return m.ContentLength - } - return 0 -} - -type ExternalStorageSaveResponse struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ExternalStorageSaveResponse) Reset() { *m = ExternalStorageSaveResponse{} } -func (m *ExternalStorageSaveResponse) String() string { return proto.CompactTextString(m) } -func (*ExternalStorageSaveResponse) ProtoMessage() {} -func (*ExternalStorageSaveResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_backup_c0317208fdb49464, []int{19} -} -func (m *ExternalStorageSaveResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ExternalStorageSaveResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_ExternalStorageSaveResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *ExternalStorageSaveResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExternalStorageSaveResponse.Merge(dst, src) -} -func (m *ExternalStorageSaveResponse) XXX_Size() int { - return m.Size() -} -func (m *ExternalStorageSaveResponse) XXX_DiscardUnknown() { - xxx_messageInfo_ExternalStorageSaveResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_ExternalStorageSaveResponse proto.InternalMessageInfo - -func init() { - proto.RegisterType((*BackupMeta)(nil), "backup.BackupMeta") - proto.RegisterType((*File)(nil), "backup.File") - proto.RegisterType((*MetaFile)(nil), "backup.MetaFile") - proto.RegisterType((*Schema)(nil), "backup.Schema") - proto.RegisterType((*RawRange)(nil), "backup.RawRange") - proto.RegisterType((*ClusterIDError)(nil), "backup.ClusterIDError") - proto.RegisterType((*Error)(nil), "backup.Error") - proto.RegisterType((*BackupRequest)(nil), "backup.BackupRequest") - proto.RegisterType((*StorageBackend)(nil), "backup.StorageBackend") - proto.RegisterType((*Noop)(nil), "backup.Noop") - proto.RegisterType((*Local)(nil), "backup.Local") - proto.RegisterType((*S3)(nil), "backup.S3") - proto.RegisterType((*GCS)(nil), "backup.GCS") - proto.RegisterType((*Bucket)(nil), "backup.Bucket") - proto.RegisterType((*CloudDynamic)(nil), "backup.CloudDynamic") - proto.RegisterMapType((map[string]string)(nil), "backup.CloudDynamic.AttrsEntry") - proto.RegisterType((*BackupResponse)(nil), "backup.BackupResponse") - proto.RegisterType((*ExternalStorageRestoreRequest)(nil), "backup.ExternalStorageRestoreRequest") - proto.RegisterType((*ExternalStorageRestoreResponse)(nil), "backup.ExternalStorageRestoreResponse") - proto.RegisterType((*ExternalStorageSaveRequest)(nil), "backup.ExternalStorageSaveRequest") - proto.RegisterType((*ExternalStorageSaveResponse)(nil), "backup.ExternalStorageSaveResponse") - proto.RegisterEnum("backup.CompressionType", CompressionType_name, CompressionType_value) -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConn - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 - -// Client API for Backup service - -type BackupClient interface { - Backup(ctx context.Context, in *BackupRequest, opts ...grpc.CallOption) (Backup_BackupClient, error) -} - -type backupClient struct { - cc *grpc.ClientConn -} - -func NewBackupClient(cc *grpc.ClientConn) BackupClient { - return &backupClient{cc} -} - -func (c *backupClient) Backup(ctx context.Context, in *BackupRequest, opts ...grpc.CallOption) (Backup_BackupClient, error) { - stream, err := c.cc.NewStream(ctx, &_Backup_serviceDesc.Streams[0], "/backup.Backup/backup", opts...) - if err != nil { - return nil, err - } - x := &backupBackupClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - return x, nil -} - -type Backup_BackupClient interface { - Recv() (*BackupResponse, error) - grpc.ClientStream -} - -type backupBackupClient struct { - grpc.ClientStream -} - -func (x *backupBackupClient) Recv() (*BackupResponse, error) { - m := new(BackupResponse) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -// Server API for Backup service - -type BackupServer interface { - Backup(*BackupRequest, Backup_BackupServer) error -} - -func RegisterBackupServer(s *grpc.Server, srv BackupServer) { - s.RegisterService(&_Backup_serviceDesc, srv) -} - -func _Backup_Backup_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(BackupRequest) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(BackupServer).Backup(m, &backupBackupServer{stream}) -} - -type Backup_BackupServer interface { - Send(*BackupResponse) error - grpc.ServerStream -} - -type backupBackupServer struct { - grpc.ServerStream -} - -func (x *backupBackupServer) Send(m *BackupResponse) error { - return x.ServerStream.SendMsg(m) -} - -var _Backup_serviceDesc = grpc.ServiceDesc{ - ServiceName: "backup.Backup", - HandlerType: (*BackupServer)(nil), - Methods: []grpc.MethodDesc{}, - Streams: []grpc.StreamDesc{ - { - StreamName: "backup", - Handler: _Backup_Backup_Handler, - ServerStreams: true, - }, - }, - Metadata: "backup.proto", -} - -// Client API for ExternalStorage service - -type ExternalStorageClient interface { - // Restore to a file - Restore(ctx context.Context, in *ExternalStorageRestoreRequest, opts ...grpc.CallOption) (*ExternalStorageRestoreResponse, error) - // Save a file to storage - Save(ctx context.Context, in *ExternalStorageSaveRequest, opts ...grpc.CallOption) (*ExternalStorageSaveResponse, error) -} - -type externalStorageClient struct { - cc *grpc.ClientConn -} - -func NewExternalStorageClient(cc *grpc.ClientConn) ExternalStorageClient { - return &externalStorageClient{cc} -} - -func (c *externalStorageClient) Restore(ctx context.Context, in *ExternalStorageRestoreRequest, opts ...grpc.CallOption) (*ExternalStorageRestoreResponse, error) { - out := new(ExternalStorageRestoreResponse) - err := c.cc.Invoke(ctx, "/backup.ExternalStorage/restore", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *externalStorageClient) Save(ctx context.Context, in *ExternalStorageSaveRequest, opts ...grpc.CallOption) (*ExternalStorageSaveResponse, error) { - out := new(ExternalStorageSaveResponse) - err := c.cc.Invoke(ctx, "/backup.ExternalStorage/save", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// Server API for ExternalStorage service - -type ExternalStorageServer interface { - // Restore to a file - Restore(context.Context, *ExternalStorageRestoreRequest) (*ExternalStorageRestoreResponse, error) - // Save a file to storage - Save(context.Context, *ExternalStorageSaveRequest) (*ExternalStorageSaveResponse, error) -} - -func RegisterExternalStorageServer(s *grpc.Server, srv ExternalStorageServer) { - s.RegisterService(&_ExternalStorage_serviceDesc, srv) -} - -func _ExternalStorage_Restore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ExternalStorageRestoreRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ExternalStorageServer).Restore(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/backup.ExternalStorage/Restore", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ExternalStorageServer).Restore(ctx, req.(*ExternalStorageRestoreRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _ExternalStorage_Save_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ExternalStorageSaveRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ExternalStorageServer).Save(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/backup.ExternalStorage/Save", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ExternalStorageServer).Save(ctx, req.(*ExternalStorageSaveRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _ExternalStorage_serviceDesc = grpc.ServiceDesc{ - ServiceName: "backup.ExternalStorage", - HandlerType: (*ExternalStorageServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "restore", - Handler: _ExternalStorage_Restore_Handler, - }, - { - MethodName: "save", - Handler: _ExternalStorage_Save_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "backup.proto", -} - -func (m *BackupMeta) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BackupMeta) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.ClusterId != 0 { - dAtA[i] = 0x8 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.ClusterId)) - } - if len(m.ClusterVersion) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.ClusterVersion))) - i += copy(dAtA[i:], m.ClusterVersion) - } - if len(m.Files) > 0 { - for _, msg := range m.Files { - dAtA[i] = 0x22 - i++ - i = encodeVarintBackup(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.StartVersion != 0 { - dAtA[i] = 0x28 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.StartVersion)) - } - if m.EndVersion != 0 { - dAtA[i] = 0x30 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.EndVersion)) - } - if len(m.Schemas) > 0 { - for _, msg := range m.Schemas { - dAtA[i] = 0x3a - i++ - i = encodeVarintBackup(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.IsRawKv { - dAtA[i] = 0x40 - i++ - if m.IsRawKv { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if len(m.RawRanges) > 0 { - for _, msg := range m.RawRanges { - dAtA[i] = 0x4a - i++ - i = encodeVarintBackup(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Ddls) > 0 { - dAtA[i] = 0x52 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Ddls))) - i += copy(dAtA[i:], m.Ddls) - } - if len(m.BrVersion) > 0 { - dAtA[i] = 0x5a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.BrVersion))) - i += copy(dAtA[i:], m.BrVersion) - } - if m.Version != 0 { - dAtA[i] = 0x60 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.Version)) - } - if m.FileIndex != nil { - dAtA[i] = 0x6a - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.FileIndex.Size())) - n1, err := m.FileIndex.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 - } - if m.SchemaIndex != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.SchemaIndex.Size())) - n2, err := m.SchemaIndex.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - if m.RawRangeIndex != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.RawRangeIndex.Size())) - n3, err := m.RawRangeIndex.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n3 - } - if m.DdlIndexes != nil { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.DdlIndexes.Size())) - n4, err := m.DdlIndexes.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n4 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *File) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *File) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Name) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Name))) - i += copy(dAtA[i:], m.Name) - } - if len(m.Sha256) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Sha256))) - i += copy(dAtA[i:], m.Sha256) - } - if len(m.StartKey) > 0 { - dAtA[i] = 0x1a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.StartKey))) - i += copy(dAtA[i:], m.StartKey) - } - if len(m.EndKey) > 0 { - dAtA[i] = 0x22 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.EndKey))) - i += copy(dAtA[i:], m.EndKey) - } - if m.StartVersion != 0 { - dAtA[i] = 0x28 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.StartVersion)) - } - if m.EndVersion != 0 { - dAtA[i] = 0x30 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.EndVersion)) - } - if m.Crc64Xor != 0 { - dAtA[i] = 0x38 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.Crc64Xor)) - } - if m.TotalKvs != 0 { - dAtA[i] = 0x40 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.TotalKvs)) - } - if m.TotalBytes != 0 { - dAtA[i] = 0x48 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.TotalBytes)) - } - if len(m.Cf) > 0 { - dAtA[i] = 0x52 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Cf))) - i += copy(dAtA[i:], m.Cf) - } - if m.Size_ != 0 { - dAtA[i] = 0x58 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.Size_)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *MetaFile) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MetaFile) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.MetaFiles) > 0 { - for _, msg := range m.MetaFiles { - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.DataFiles) > 0 { - for _, msg := range m.DataFiles { - dAtA[i] = 0x12 - i++ - i = encodeVarintBackup(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Schemas) > 0 { - for _, msg := range m.Schemas { - dAtA[i] = 0x1a - i++ - i = encodeVarintBackup(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.RawRanges) > 0 { - for _, msg := range m.RawRanges { - dAtA[i] = 0x22 - i++ - i = encodeVarintBackup(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Ddls) > 0 { - for _, b := range m.Ddls { - dAtA[i] = 0x2a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(b))) - i += copy(dAtA[i:], b) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Schema) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Schema) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Db) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Db))) - i += copy(dAtA[i:], m.Db) - } - if len(m.Table) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Table))) - i += copy(dAtA[i:], m.Table) - } - if m.Crc64Xor != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.Crc64Xor)) - } - if m.TotalKvs != 0 { - dAtA[i] = 0x20 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.TotalKvs)) - } - if m.TotalBytes != 0 { - dAtA[i] = 0x28 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.TotalBytes)) - } - if m.TiflashReplicas != 0 { - dAtA[i] = 0x30 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.TiflashReplicas)) - } - if len(m.Stats) > 0 { - dAtA[i] = 0x3a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Stats))) - i += copy(dAtA[i:], m.Stats) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *RawRange) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RawRange) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.StartKey) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.StartKey))) - i += copy(dAtA[i:], m.StartKey) - } - if len(m.EndKey) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.EndKey))) - i += copy(dAtA[i:], m.EndKey) - } - if len(m.Cf) > 0 { - dAtA[i] = 0x1a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Cf))) - i += copy(dAtA[i:], m.Cf) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *ClusterIDError) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterIDError) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Current != 0 { - dAtA[i] = 0x8 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.Current)) - } - if m.Request != 0 { - dAtA[i] = 0x10 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.Request)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Error) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Error) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Msg) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Msg))) - i += copy(dAtA[i:], m.Msg) - } - if m.Detail != nil { - nn5, err := m.Detail.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn5 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Error_ClusterIdError) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.ClusterIdError != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.ClusterIdError.Size())) - n6, err := m.ClusterIdError.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n6 - } - return i, nil -} -func (m *Error_KvError) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.KvError != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.KvError.Size())) - n7, err := m.KvError.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n7 - } - return i, nil -} -func (m *Error_RegionError) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.RegionError != nil { - dAtA[i] = 0x2a - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.RegionError.Size())) - n8, err := m.RegionError.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n8 - } - return i, nil -} -func (m *BackupRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BackupRequest) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.ClusterId != 0 { - dAtA[i] = 0x8 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.ClusterId)) - } - if len(m.StartKey) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.StartKey))) - i += copy(dAtA[i:], m.StartKey) - } - if len(m.EndKey) > 0 { - dAtA[i] = 0x1a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.EndKey))) - i += copy(dAtA[i:], m.EndKey) - } - if m.StartVersion != 0 { - dAtA[i] = 0x20 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.StartVersion)) - } - if m.EndVersion != 0 { - dAtA[i] = 0x28 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.EndVersion)) - } - if m.RateLimit != 0 { - dAtA[i] = 0x38 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.RateLimit)) - } - if m.Concurrency != 0 { - dAtA[i] = 0x40 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.Concurrency)) - } - if m.StorageBackend != nil { - dAtA[i] = 0x4a - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.StorageBackend.Size())) - n9, err := m.StorageBackend.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n9 - } - if m.IsRawKv { - dAtA[i] = 0x50 - i++ - if m.IsRawKv { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if len(m.Cf) > 0 { - dAtA[i] = 0x5a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Cf))) - i += copy(dAtA[i:], m.Cf) - } - if m.CompressionType != 0 { - dAtA[i] = 0x60 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.CompressionType)) - } - if m.CompressionLevel != 0 { - dAtA[i] = 0x68 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.CompressionLevel)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *StorageBackend) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *StorageBackend) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Backend != nil { - nn10, err := m.Backend.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn10 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *StorageBackend_Noop) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Noop != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.Noop.Size())) - n11, err := m.Noop.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n11 - } - return i, nil -} -func (m *StorageBackend_Local) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Local != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.Local.Size())) - n12, err := m.Local.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n12 - } - return i, nil -} -func (m *StorageBackend_S3) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.S3 != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.S3.Size())) - n13, err := m.S3.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n13 - } - return i, nil -} -func (m *StorageBackend_Gcs) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Gcs != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.Gcs.Size())) - n14, err := m.Gcs.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n14 - } - return i, nil -} -func (m *StorageBackend_CloudDynamic) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.CloudDynamic != nil { - dAtA[i] = 0x2a - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.CloudDynamic.Size())) - n15, err := m.CloudDynamic.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n15 - } - return i, nil -} -func (m *Noop) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Noop) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Local) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Local) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Path) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Path))) - i += copy(dAtA[i:], m.Path) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *S3) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *S3) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Endpoint) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Endpoint))) - i += copy(dAtA[i:], m.Endpoint) - } - if len(m.Region) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Region))) - i += copy(dAtA[i:], m.Region) - } - if len(m.Bucket) > 0 { - dAtA[i] = 0x1a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Bucket))) - i += copy(dAtA[i:], m.Bucket) - } - if len(m.Prefix) > 0 { - dAtA[i] = 0x22 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Prefix))) - i += copy(dAtA[i:], m.Prefix) - } - if len(m.StorageClass) > 0 { - dAtA[i] = 0x2a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.StorageClass))) - i += copy(dAtA[i:], m.StorageClass) - } - if len(m.Sse) > 0 { - dAtA[i] = 0x32 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Sse))) - i += copy(dAtA[i:], m.Sse) - } - if len(m.Acl) > 0 { - dAtA[i] = 0x3a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Acl))) - i += copy(dAtA[i:], m.Acl) - } - if len(m.AccessKey) > 0 { - dAtA[i] = 0x42 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.AccessKey))) - i += copy(dAtA[i:], m.AccessKey) - } - if len(m.SecretAccessKey) > 0 { - dAtA[i] = 0x4a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.SecretAccessKey))) - i += copy(dAtA[i:], m.SecretAccessKey) - } - if m.ForcePathStyle { - dAtA[i] = 0x50 - i++ - if m.ForcePathStyle { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if len(m.SseKmsKeyId) > 0 { - dAtA[i] = 0x5a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.SseKmsKeyId))) - i += copy(dAtA[i:], m.SseKmsKeyId) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *GCS) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *GCS) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Endpoint) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Endpoint))) - i += copy(dAtA[i:], m.Endpoint) - } - if len(m.Bucket) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Bucket))) - i += copy(dAtA[i:], m.Bucket) - } - if len(m.Prefix) > 0 { - dAtA[i] = 0x1a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Prefix))) - i += copy(dAtA[i:], m.Prefix) - } - if len(m.StorageClass) > 0 { - dAtA[i] = 0x22 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.StorageClass))) - i += copy(dAtA[i:], m.StorageClass) - } - if len(m.PredefinedAcl) > 0 { - dAtA[i] = 0x2a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.PredefinedAcl))) - i += copy(dAtA[i:], m.PredefinedAcl) - } - if len(m.CredentialsBlob) > 0 { - dAtA[i] = 0x32 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.CredentialsBlob))) - i += copy(dAtA[i:], m.CredentialsBlob) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Bucket) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Bucket) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Endpoint) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Endpoint))) - i += copy(dAtA[i:], m.Endpoint) - } - if len(m.Region) > 0 { - dAtA[i] = 0x1a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Region))) - i += copy(dAtA[i:], m.Region) - } - if len(m.Bucket) > 0 { - dAtA[i] = 0x22 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Bucket))) - i += copy(dAtA[i:], m.Bucket) - } - if len(m.Prefix) > 0 { - dAtA[i] = 0x2a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.Prefix))) - i += copy(dAtA[i:], m.Prefix) - } - if len(m.StorageClass) > 0 { - dAtA[i] = 0x32 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.StorageClass))) - i += copy(dAtA[i:], m.StorageClass) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CloudDynamic) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *CloudDynamic) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Bucket != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.Bucket.Size())) - n16, err := m.Bucket.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n16 - } - if len(m.ProviderName) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.ProviderName))) - i += copy(dAtA[i:], m.ProviderName) - } - if len(m.Attrs) > 0 { - for k, _ := range m.Attrs { - dAtA[i] = 0x1a - i++ - v := m.Attrs[k] - mapSize := 1 + len(k) + sovBackup(uint64(len(k))) + 1 + len(v) + sovBackup(uint64(len(v))) - i = encodeVarintBackup(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *BackupResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BackupResponse) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Error != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.Error.Size())) - n17, err := m.Error.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n17 - } - if len(m.StartKey) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.StartKey))) - i += copy(dAtA[i:], m.StartKey) - } - if len(m.EndKey) > 0 { - dAtA[i] = 0x1a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.EndKey))) - i += copy(dAtA[i:], m.EndKey) - } - if len(m.Files) > 0 { - for _, msg := range m.Files { - dAtA[i] = 0x22 - i++ - i = encodeVarintBackup(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *ExternalStorageRestoreRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ExternalStorageRestoreRequest) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.StorageBackend != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.StorageBackend.Size())) - n18, err := m.StorageBackend.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n18 - } - if len(m.ObjectName) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.ObjectName))) - i += copy(dAtA[i:], m.ObjectName) - } - if len(m.RestoreName) > 0 { - dAtA[i] = 0x1a - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.RestoreName))) - i += copy(dAtA[i:], m.RestoreName) - } - if m.ContentLength != 0 { - dAtA[i] = 0x20 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.ContentLength)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *ExternalStorageRestoreResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ExternalStorageRestoreResponse) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *ExternalStorageSaveRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ExternalStorageSaveRequest) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.StorageBackend != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.StorageBackend.Size())) - n19, err := m.StorageBackend.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n19 - } - if len(m.ObjectName) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintBackup(dAtA, i, uint64(len(m.ObjectName))) - i += copy(dAtA[i:], m.ObjectName) - } - if m.ContentLength != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintBackup(dAtA, i, uint64(m.ContentLength)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *ExternalStorageSaveResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ExternalStorageSaveResponse) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func encodeVarintBackup(dAtA []byte, offset int, v uint64) int { - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return offset + 1 -} -func (m *BackupMeta) Size() (n int) { - var l int - _ = l - if m.ClusterId != 0 { - n += 1 + sovBackup(uint64(m.ClusterId)) - } - l = len(m.ClusterVersion) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if len(m.Files) > 0 { - for _, e := range m.Files { - l = e.Size() - n += 1 + l + sovBackup(uint64(l)) - } - } - if m.StartVersion != 0 { - n += 1 + sovBackup(uint64(m.StartVersion)) - } - if m.EndVersion != 0 { - n += 1 + sovBackup(uint64(m.EndVersion)) - } - if len(m.Schemas) > 0 { - for _, e := range m.Schemas { - l = e.Size() - n += 1 + l + sovBackup(uint64(l)) - } - } - if m.IsRawKv { - n += 2 - } - if len(m.RawRanges) > 0 { - for _, e := range m.RawRanges { - l = e.Size() - n += 1 + l + sovBackup(uint64(l)) - } - } - l = len(m.Ddls) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.BrVersion) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.Version != 0 { - n += 1 + sovBackup(uint64(m.Version)) - } - if m.FileIndex != nil { - l = m.FileIndex.Size() - n += 1 + l + sovBackup(uint64(l)) - } - if m.SchemaIndex != nil { - l = m.SchemaIndex.Size() - n += 1 + l + sovBackup(uint64(l)) - } - if m.RawRangeIndex != nil { - l = m.RawRangeIndex.Size() - n += 1 + l + sovBackup(uint64(l)) - } - if m.DdlIndexes != nil { - l = m.DdlIndexes.Size() - n += 2 + l + sovBackup(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *File) Size() (n int) { - var l int - _ = l - l = len(m.Name) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.Sha256) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.StartKey) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.EndKey) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.StartVersion != 0 { - n += 1 + sovBackup(uint64(m.StartVersion)) - } - if m.EndVersion != 0 { - n += 1 + sovBackup(uint64(m.EndVersion)) - } - if m.Crc64Xor != 0 { - n += 1 + sovBackup(uint64(m.Crc64Xor)) - } - if m.TotalKvs != 0 { - n += 1 + sovBackup(uint64(m.TotalKvs)) - } - if m.TotalBytes != 0 { - n += 1 + sovBackup(uint64(m.TotalBytes)) - } - l = len(m.Cf) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.Size_ != 0 { - n += 1 + sovBackup(uint64(m.Size_)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *MetaFile) Size() (n int) { - var l int - _ = l - if len(m.MetaFiles) > 0 { - for _, e := range m.MetaFiles { - l = e.Size() - n += 1 + l + sovBackup(uint64(l)) - } - } - if len(m.DataFiles) > 0 { - for _, e := range m.DataFiles { - l = e.Size() - n += 1 + l + sovBackup(uint64(l)) - } - } - if len(m.Schemas) > 0 { - for _, e := range m.Schemas { - l = e.Size() - n += 1 + l + sovBackup(uint64(l)) - } - } - if len(m.RawRanges) > 0 { - for _, e := range m.RawRanges { - l = e.Size() - n += 1 + l + sovBackup(uint64(l)) - } - } - if len(m.Ddls) > 0 { - for _, b := range m.Ddls { - l = len(b) - n += 1 + l + sovBackup(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Schema) Size() (n int) { - var l int - _ = l - l = len(m.Db) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.Table) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.Crc64Xor != 0 { - n += 1 + sovBackup(uint64(m.Crc64Xor)) - } - if m.TotalKvs != 0 { - n += 1 + sovBackup(uint64(m.TotalKvs)) - } - if m.TotalBytes != 0 { - n += 1 + sovBackup(uint64(m.TotalBytes)) - } - if m.TiflashReplicas != 0 { - n += 1 + sovBackup(uint64(m.TiflashReplicas)) - } - l = len(m.Stats) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *RawRange) Size() (n int) { - var l int - _ = l - l = len(m.StartKey) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.EndKey) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.Cf) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ClusterIDError) Size() (n int) { - var l int - _ = l - if m.Current != 0 { - n += 1 + sovBackup(uint64(m.Current)) - } - if m.Request != 0 { - n += 1 + sovBackup(uint64(m.Request)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Error) Size() (n int) { - var l int - _ = l - l = len(m.Msg) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.Detail != nil { - n += m.Detail.Size() - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Error_ClusterIdError) Size() (n int) { - var l int - _ = l - if m.ClusterIdError != nil { - l = m.ClusterIdError.Size() - n += 1 + l + sovBackup(uint64(l)) - } - return n -} -func (m *Error_KvError) Size() (n int) { - var l int - _ = l - if m.KvError != nil { - l = m.KvError.Size() - n += 1 + l + sovBackup(uint64(l)) - } - return n -} -func (m *Error_RegionError) Size() (n int) { - var l int - _ = l - if m.RegionError != nil { - l = m.RegionError.Size() - n += 1 + l + sovBackup(uint64(l)) - } - return n -} -func (m *BackupRequest) Size() (n int) { - var l int - _ = l - if m.ClusterId != 0 { - n += 1 + sovBackup(uint64(m.ClusterId)) - } - l = len(m.StartKey) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.EndKey) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.StartVersion != 0 { - n += 1 + sovBackup(uint64(m.StartVersion)) - } - if m.EndVersion != 0 { - n += 1 + sovBackup(uint64(m.EndVersion)) - } - if m.RateLimit != 0 { - n += 1 + sovBackup(uint64(m.RateLimit)) - } - if m.Concurrency != 0 { - n += 1 + sovBackup(uint64(m.Concurrency)) - } - if m.StorageBackend != nil { - l = m.StorageBackend.Size() - n += 1 + l + sovBackup(uint64(l)) - } - if m.IsRawKv { - n += 2 - } - l = len(m.Cf) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.CompressionType != 0 { - n += 1 + sovBackup(uint64(m.CompressionType)) - } - if m.CompressionLevel != 0 { - n += 1 + sovBackup(uint64(m.CompressionLevel)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *StorageBackend) Size() (n int) { - var l int - _ = l - if m.Backend != nil { - n += m.Backend.Size() - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *StorageBackend_Noop) Size() (n int) { - var l int - _ = l - if m.Noop != nil { - l = m.Noop.Size() - n += 1 + l + sovBackup(uint64(l)) - } - return n -} -func (m *StorageBackend_Local) Size() (n int) { - var l int - _ = l - if m.Local != nil { - l = m.Local.Size() - n += 1 + l + sovBackup(uint64(l)) - } - return n -} -func (m *StorageBackend_S3) Size() (n int) { - var l int - _ = l - if m.S3 != nil { - l = m.S3.Size() - n += 1 + l + sovBackup(uint64(l)) - } - return n -} -func (m *StorageBackend_Gcs) Size() (n int) { - var l int - _ = l - if m.Gcs != nil { - l = m.Gcs.Size() - n += 1 + l + sovBackup(uint64(l)) - } - return n -} -func (m *StorageBackend_CloudDynamic) Size() (n int) { - var l int - _ = l - if m.CloudDynamic != nil { - l = m.CloudDynamic.Size() - n += 1 + l + sovBackup(uint64(l)) - } - return n -} -func (m *Noop) Size() (n int) { - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Local) Size() (n int) { - var l int - _ = l - l = len(m.Path) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *S3) Size() (n int) { - var l int - _ = l - l = len(m.Endpoint) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.Region) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.Bucket) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.Prefix) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.StorageClass) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.Sse) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.Acl) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.AccessKey) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.SecretAccessKey) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.ForcePathStyle { - n += 2 - } - l = len(m.SseKmsKeyId) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *GCS) Size() (n int) { - var l int - _ = l - l = len(m.Endpoint) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.Bucket) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.Prefix) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.StorageClass) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.PredefinedAcl) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.CredentialsBlob) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Bucket) Size() (n int) { - var l int - _ = l - l = len(m.Endpoint) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.Region) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.Bucket) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.Prefix) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.StorageClass) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CloudDynamic) Size() (n int) { - var l int - _ = l - if m.Bucket != nil { - l = m.Bucket.Size() - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.ProviderName) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if len(m.Attrs) > 0 { - for k, v := range m.Attrs { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovBackup(uint64(len(k))) + 1 + len(v) + sovBackup(uint64(len(v))) - n += mapEntrySize + 1 + sovBackup(uint64(mapEntrySize)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *BackupResponse) Size() (n int) { - var l int - _ = l - if m.Error != nil { - l = m.Error.Size() - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.StartKey) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.EndKey) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if len(m.Files) > 0 { - for _, e := range m.Files { - l = e.Size() - n += 1 + l + sovBackup(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ExternalStorageRestoreRequest) Size() (n int) { - var l int - _ = l - if m.StorageBackend != nil { - l = m.StorageBackend.Size() - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.ObjectName) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.RestoreName) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.ContentLength != 0 { - n += 1 + sovBackup(uint64(m.ContentLength)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ExternalStorageRestoreResponse) Size() (n int) { - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ExternalStorageSaveRequest) Size() (n int) { - var l int - _ = l - if m.StorageBackend != nil { - l = m.StorageBackend.Size() - n += 1 + l + sovBackup(uint64(l)) - } - l = len(m.ObjectName) - if l > 0 { - n += 1 + l + sovBackup(uint64(l)) - } - if m.ContentLength != 0 { - n += 1 + sovBackup(uint64(m.ContentLength)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ExternalStorageSaveResponse) Size() (n int) { - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovBackup(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozBackup(x uint64) (n int) { - return sovBackup(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *BackupMeta) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BackupMeta: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BackupMeta: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType) - } - m.ClusterId = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ClusterId |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClusterVersion", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ClusterVersion = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Files", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Files = append(m.Files, &File{}) - if err := m.Files[len(m.Files)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field StartVersion", wireType) - } - m.StartVersion = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.StartVersion |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EndVersion", wireType) - } - m.EndVersion = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.EndVersion |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Schemas", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Schemas = append(m.Schemas, &Schema{}) - if err := m.Schemas[len(m.Schemas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsRawKv", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.IsRawKv = bool(v != 0) - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RawRanges", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RawRanges = append(m.RawRanges, &RawRange{}) - if err := m.RawRanges[len(m.RawRanges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ddls", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Ddls = append(m.Ddls[:0], dAtA[iNdEx:postIndex]...) - if m.Ddls == nil { - m.Ddls = []byte{} - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BrVersion", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BrVersion = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 12: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) - } - m.Version = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Version |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FileIndex", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.FileIndex == nil { - m.FileIndex = &MetaFile{} - } - if err := m.FileIndex.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SchemaIndex", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SchemaIndex == nil { - m.SchemaIndex = &MetaFile{} - } - if err := m.SchemaIndex.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RawRangeIndex", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.RawRangeIndex == nil { - m.RawRangeIndex = &MetaFile{} - } - if err := m.RawRangeIndex.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DdlIndexes", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.DdlIndexes == nil { - m.DdlIndexes = &MetaFile{} - } - if err := m.DdlIndexes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *File) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: File: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: File: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sha256", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Sha256 = append(m.Sha256[:0], dAtA[iNdEx:postIndex]...) - if m.Sha256 == nil { - m.Sha256 = []byte{} - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartKey", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.StartKey = append(m.StartKey[:0], dAtA[iNdEx:postIndex]...) - if m.StartKey == nil { - m.StartKey = []byte{} - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndKey", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.EndKey = append(m.EndKey[:0], dAtA[iNdEx:postIndex]...) - if m.EndKey == nil { - m.EndKey = []byte{} - } - iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field StartVersion", wireType) - } - m.StartVersion = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.StartVersion |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EndVersion", wireType) - } - m.EndVersion = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.EndVersion |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Crc64Xor", wireType) - } - m.Crc64Xor = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Crc64Xor |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalKvs", wireType) - } - m.TotalKvs = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.TotalKvs |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalBytes", wireType) - } - m.TotalBytes = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.TotalBytes |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Cf", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Cf = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 11: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Size_", wireType) - } - m.Size_ = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Size_ |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MetaFile) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MetaFile: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MetaFile: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MetaFiles", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MetaFiles = append(m.MetaFiles, &File{}) - if err := m.MetaFiles[len(m.MetaFiles)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DataFiles", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DataFiles = append(m.DataFiles, &File{}) - if err := m.DataFiles[len(m.DataFiles)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Schemas", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Schemas = append(m.Schemas, &Schema{}) - if err := m.Schemas[len(m.Schemas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RawRanges", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RawRanges = append(m.RawRanges, &RawRange{}) - if err := m.RawRanges[len(m.RawRanges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ddls", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Ddls = append(m.Ddls, make([]byte, postIndex-iNdEx)) - copy(m.Ddls[len(m.Ddls)-1], dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Schema) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Schema: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Schema: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Db", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Db = append(m.Db[:0], dAtA[iNdEx:postIndex]...) - if m.Db == nil { - m.Db = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Table", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Table = append(m.Table[:0], dAtA[iNdEx:postIndex]...) - if m.Table == nil { - m.Table = []byte{} - } - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Crc64Xor", wireType) - } - m.Crc64Xor = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Crc64Xor |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalKvs", wireType) - } - m.TotalKvs = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.TotalKvs |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalBytes", wireType) - } - m.TotalBytes = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.TotalBytes |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TiflashReplicas", wireType) - } - m.TiflashReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.TiflashReplicas |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Stats", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Stats = append(m.Stats[:0], dAtA[iNdEx:postIndex]...) - if m.Stats == nil { - m.Stats = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RawRange) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RawRange: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RawRange: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartKey", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.StartKey = append(m.StartKey[:0], dAtA[iNdEx:postIndex]...) - if m.StartKey == nil { - m.StartKey = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndKey", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.EndKey = append(m.EndKey[:0], dAtA[iNdEx:postIndex]...) - if m.EndKey == nil { - m.EndKey = []byte{} - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Cf", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Cf = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterIDError) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterIDError: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterIDError: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType) - } - m.Current = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Current |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Request", wireType) - } - m.Request = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Request |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Error) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Error: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Msg", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Msg = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClusterIdError", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ClusterIDError{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Detail = &Error_ClusterIdError{v} - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field KvError", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &kvrpcpb.KeyError{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Detail = &Error_KvError{v} - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RegionError", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &errorpb.Error{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Detail = &Error_RegionError{v} - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BackupRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BackupRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BackupRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType) - } - m.ClusterId = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ClusterId |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartKey", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.StartKey = append(m.StartKey[:0], dAtA[iNdEx:postIndex]...) - if m.StartKey == nil { - m.StartKey = []byte{} - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndKey", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.EndKey = append(m.EndKey[:0], dAtA[iNdEx:postIndex]...) - if m.EndKey == nil { - m.EndKey = []byte{} - } - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field StartVersion", wireType) - } - m.StartVersion = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.StartVersion |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EndVersion", wireType) - } - m.EndVersion = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.EndVersion |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RateLimit", wireType) - } - m.RateLimit = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.RateLimit |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Concurrency", wireType) - } - m.Concurrency = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Concurrency |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StorageBackend", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.StorageBackend == nil { - m.StorageBackend = &StorageBackend{} - } - if err := m.StorageBackend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsRawKv", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.IsRawKv = bool(v != 0) - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Cf", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Cf = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 12: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CompressionType", wireType) - } - m.CompressionType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.CompressionType |= (CompressionType(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CompressionLevel", wireType) - } - m.CompressionLevel = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.CompressionLevel |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *StorageBackend) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: StorageBackend: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: StorageBackend: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Noop", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &Noop{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Backend = &StorageBackend_Noop{v} - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Local", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &Local{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Backend = &StorageBackend_Local{v} - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field S3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &S3{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Backend = &StorageBackend_S3{v} - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Gcs", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &GCS{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Backend = &StorageBackend_Gcs{v} - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CloudDynamic", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &CloudDynamic{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Backend = &StorageBackend_CloudDynamic{v} - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Noop) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Noop: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Noop: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Local) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Local: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Local: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Path = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *S3) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: S3: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: S3: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Endpoint", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Endpoint = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Region = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Bucket", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Bucket = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Prefix", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Prefix = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StorageClass", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.StorageClass = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sse", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Sse = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Acl", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Acl = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AccessKey", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AccessKey = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SecretAccessKey", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SecretAccessKey = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ForcePathStyle", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.ForcePathStyle = bool(v != 0) - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SseKmsKeyId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SseKmsKeyId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GCS) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GCS: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GCS: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Endpoint", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Endpoint = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Bucket", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Bucket = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Prefix", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Prefix = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StorageClass", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.StorageClass = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PredefinedAcl", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.PredefinedAcl = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CredentialsBlob", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.CredentialsBlob = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Bucket) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Bucket: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Bucket: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Endpoint", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Endpoint = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Region = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Bucket", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Bucket = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Prefix", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Prefix = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StorageClass", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.StorageClass = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CloudDynamic) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CloudDynamic: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CloudDynamic: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Bucket", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Bucket == nil { - m.Bucket = &Bucket{} - } - if err := m.Bucket.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ProviderName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ProviderName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Attrs", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Attrs == nil { - m.Attrs = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthBackup - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthBackup - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.Attrs[mapkey] = mapvalue - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BackupResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BackupResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BackupResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Error == nil { - m.Error = &Error{} - } - if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartKey", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.StartKey = append(m.StartKey[:0], dAtA[iNdEx:postIndex]...) - if m.StartKey == nil { - m.StartKey = []byte{} - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndKey", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.EndKey = append(m.EndKey[:0], dAtA[iNdEx:postIndex]...) - if m.EndKey == nil { - m.EndKey = []byte{} - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Files", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Files = append(m.Files, &File{}) - if err := m.Files[len(m.Files)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ExternalStorageRestoreRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ExternalStorageRestoreRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ExternalStorageRestoreRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StorageBackend", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.StorageBackend == nil { - m.StorageBackend = &StorageBackend{} - } - if err := m.StorageBackend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ObjectName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RestoreName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RestoreName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ContentLength", wireType) - } - m.ContentLength = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ContentLength |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ExternalStorageRestoreResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ExternalStorageRestoreResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ExternalStorageRestoreResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ExternalStorageSaveRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ExternalStorageSaveRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ExternalStorageSaveRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StorageBackend", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.StorageBackend == nil { - m.StorageBackend = &StorageBackend{} - } - if err := m.StorageBackend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthBackup - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ObjectName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ContentLength", wireType) - } - m.ContentLength = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ContentLength |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ExternalStorageSaveResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowBackup - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ExternalStorageSaveResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ExternalStorageSaveResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipBackup(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthBackup - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipBackup(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowBackup - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowBackup - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowBackup - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthBackup - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowBackup - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipBackup(dAtA[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthBackup = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowBackup = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("backup.proto", fileDescriptor_backup_c0317208fdb49464) } - -var fileDescriptor_backup_c0317208fdb49464 = []byte{ - // 1729 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x5f, 0x8f, 0x1b, 0x49, - 0x11, 0xf7, 0x78, 0xc6, 0x7f, 0xa6, 0xfc, 0x37, 0xad, 0x90, 0xb3, 0x1c, 0xb2, 0x31, 0x13, 0x25, - 0x2c, 0x77, 0xd2, 0x1e, 0xec, 0xde, 0x9d, 0x22, 0x4e, 0x08, 0xc5, 0x49, 0xb8, 0xdd, 0xdb, 0x65, - 0x09, 0xed, 0x03, 0x44, 0x5e, 0x46, 0xed, 0x99, 0x5e, 0xef, 0xe0, 0xf1, 0x8c, 0x99, 0x6e, 0x3b, - 0x31, 0x5f, 0x02, 0xf1, 0xc6, 0x17, 0x40, 0xe2, 0x81, 0x0f, 0xc1, 0xe3, 0xa1, 0xe3, 0x01, 0x09, - 0x21, 0xf1, 0x08, 0xe1, 0x8b, 0xa0, 0xea, 0xee, 0x99, 0xb5, 0x93, 0xb5, 0x13, 0x10, 0xe2, 0x69, - 0xbb, 0x7f, 0x55, 0xd5, 0xdd, 0x55, 0xf5, 0xab, 0xaa, 0xf1, 0x42, 0x73, 0xcc, 0x82, 0xe9, 0x62, - 0x7e, 0x30, 0xcf, 0x52, 0x99, 0x92, 0xaa, 0xde, 0xf5, 0x5b, 0xd3, 0x65, 0x36, 0x0f, 0xe6, 0x63, - 0x0d, 0xf7, 0x5b, 0x3c, 0xcb, 0xd2, 0xac, 0xd8, 0xde, 0x9c, 0xa4, 0x93, 0x54, 0x2d, 0x3f, 0xc4, - 0x95, 0x41, 0x3b, 0xd9, 0x42, 0x48, 0xb5, 0xd4, 0x80, 0xf7, 0x4f, 0x07, 0x60, 0xa8, 0xce, 0xfb, - 0x21, 0x97, 0x8c, 0xdc, 0x01, 0x08, 0xe2, 0x85, 0x90, 0x3c, 0xf3, 0xa3, 0xb0, 0x67, 0x0d, 0xac, - 0x7d, 0x87, 0xba, 0x06, 0x39, 0x09, 0xc9, 0x37, 0xa1, 0x93, 0x8b, 0x97, 0x3c, 0x13, 0x51, 0x9a, - 0xf4, 0xca, 0x03, 0x6b, 0xdf, 0xa5, 0x6d, 0x03, 0xff, 0x54, 0xa3, 0xc4, 0x83, 0xca, 0x45, 0x14, - 0x73, 0xd1, 0x73, 0x06, 0xf6, 0x7e, 0xe3, 0xb0, 0x79, 0x60, 0x3c, 0xf8, 0x41, 0x14, 0x73, 0xaa, - 0x45, 0xe4, 0x1e, 0xb4, 0x84, 0x64, 0x99, 0x2c, 0x8e, 0xaa, 0xa8, 0xeb, 0x9a, 0x0a, 0xcc, 0x0f, - 0xba, 0x0b, 0x0d, 0x9e, 0x84, 0x85, 0x4a, 0x55, 0xa9, 0x00, 0x4f, 0xc2, 0x5c, 0x61, 0x1f, 0x6a, - 0x22, 0xb8, 0xe4, 0x33, 0x26, 0x7a, 0x35, 0x75, 0x57, 0x3b, 0xbf, 0x6b, 0xa4, 0x60, 0x9a, 0x8b, - 0x49, 0x1f, 0xdc, 0x48, 0xf8, 0x19, 0x7b, 0xe1, 0x4f, 0x97, 0xbd, 0xfa, 0xc0, 0xda, 0xaf, 0xd3, - 0x5a, 0x24, 0x28, 0x7b, 0x71, 0xba, 0x24, 0x1f, 0x02, 0xa0, 0x20, 0x63, 0xc9, 0x84, 0x8b, 0x9e, - 0xab, 0x0e, 0xea, 0xe6, 0x07, 0x51, 0xf6, 0x82, 0xa2, 0x80, 0xba, 0x99, 0x59, 0x09, 0x42, 0xc0, - 0x09, 0xc3, 0x58, 0xf4, 0x60, 0x60, 0xed, 0x37, 0xa9, 0x5a, 0x63, 0xf0, 0xc6, 0x57, 0x81, 0x69, - 0xa8, 0xc0, 0xb8, 0xe3, 0x22, 0x26, 0x3d, 0xa8, 0xe5, 0xb2, 0xe6, 0xc0, 0xda, 0xaf, 0xd0, 0x7c, - 0x8b, 0xb7, 0x63, 0x48, 0xfc, 0x28, 0x09, 0xf9, 0xcb, 0x5e, 0x6b, 0x60, 0xad, 0xdf, 0x8e, 0x79, - 0x51, 0x61, 0x73, 0x51, 0xe7, 0x04, 0x55, 0xc8, 0x11, 0x34, 0xb5, 0x57, 0xc6, 0xa4, 0xbd, 0xc5, - 0xa4, 0xa1, 0xb5, 0xb4, 0xd1, 0x43, 0xe8, 0x14, 0x3e, 0x1a, 0xbb, 0xce, 0x16, 0xbb, 0x56, 0xee, - 0xa8, 0xb6, 0xfc, 0x0e, 0x34, 0xc2, 0x30, 0xd6, 0x36, 0x5c, 0xf4, 0xba, 0x5b, 0xac, 0x20, 0x0c, - 0xe3, 0x13, 0xad, 0xf3, 0xb9, 0x53, 0xb7, 0xbb, 0x0e, 0x75, 0xe6, 0x4c, 0x5e, 0x7a, 0x7f, 0x28, - 0x83, 0x83, 0x0a, 0x18, 0xb4, 0x84, 0xcd, 0xb8, 0xe2, 0x95, 0x4b, 0xd5, 0x9a, 0xdc, 0x82, 0xaa, - 0xb8, 0x64, 0x87, 0x1f, 0x7f, 0xa2, 0x98, 0xd4, 0xa4, 0x66, 0x47, 0x6e, 0x83, 0xab, 0xd9, 0x31, - 0xe5, 0xab, 0x9e, 0xad, 0x44, 0x75, 0x05, 0x9c, 0xf2, 0x15, 0x79, 0x0f, 0x6a, 0xc8, 0x0a, 0x14, - 0x39, 0xda, 0x8a, 0x27, 0x21, 0x0a, 0xfe, 0x37, 0x9c, 0xea, 0x43, 0x3d, 0xc8, 0x82, 0x4f, 0x3e, - 0x7a, 0x99, 0x66, 0xbd, 0x9a, 0x92, 0x16, 0x7b, 0x7c, 0x97, 0x4c, 0x25, 0x8b, 0xfd, 0xe9, 0x52, - 0x28, 0x16, 0x39, 0xb4, 0xae, 0x80, 0xd3, 0xa5, 0xc0, 0x93, 0xb5, 0x70, 0xbc, 0x92, 0x8a, 0x47, - 0xea, 0x64, 0x05, 0x0d, 0x11, 0x21, 0x6d, 0x28, 0x07, 0x17, 0x8a, 0x34, 0x2e, 0x2d, 0x07, 0x17, - 0x18, 0x11, 0x11, 0xfd, 0x8a, 0x2b, 0xb2, 0x38, 0x54, 0xad, 0xbd, 0xbf, 0x5a, 0x50, 0xcf, 0x63, - 0x4a, 0x3e, 0x00, 0x98, 0x71, 0xc9, 0x7c, 0x5d, 0x4d, 0xd6, 0x35, 0xd5, 0xe4, 0xce, 0x8c, 0xae, - 0x40, 0xe5, 0x90, 0x15, 0xca, 0xe5, 0xeb, 0x94, 0x51, 0xae, 0x95, 0xd7, 0x0a, 0xc7, 0xde, 0x5d, - 0x38, 0x9b, 0xc5, 0xe1, 0xbc, 0x7b, 0x71, 0x54, 0x06, 0x76, 0x5e, 0x1c, 0xde, 0x9f, 0x2c, 0xa8, - 0xea, 0x83, 0x31, 0x08, 0xe1, 0x58, 0x91, 0xa0, 0x49, 0xcb, 0xe1, 0x98, 0xdc, 0x84, 0x8a, 0x64, - 0xe3, 0x98, 0x1b, 0x06, 0xe8, 0xcd, 0x46, 0x12, 0xec, 0x5d, 0x49, 0x70, 0x76, 0x27, 0xa1, 0xf2, - 0x46, 0x12, 0xbe, 0x05, 0x5d, 0x19, 0x5d, 0xc4, 0x4c, 0x5c, 0xfa, 0x19, 0x9f, 0xc7, 0x51, 0xc0, - 0x84, 0x22, 0x41, 0x8b, 0x76, 0x0c, 0x4e, 0x0d, 0x8c, 0x4f, 0x13, 0x92, 0x49, 0xa1, 0x68, 0xd0, - 0xa4, 0x7a, 0xe3, 0x3d, 0x83, 0x7a, 0xee, 0xf6, 0x26, 0x4f, 0xad, 0xed, 0x3c, 0x2d, 0x6f, 0xf0, - 0x54, 0xf3, 0xc0, 0xce, 0x79, 0xe0, 0x3d, 0x81, 0xf6, 0x63, 0xd3, 0x65, 0x9f, 0x3c, 0xc5, 0x3e, - 0x8e, 0xdd, 0x22, 0x58, 0x64, 0x19, 0x4f, 0xa4, 0x69, 0xc3, 0xf9, 0x16, 0x25, 0x19, 0xff, 0xe5, - 0x82, 0x0b, 0xa9, 0x0e, 0x75, 0x68, 0xbe, 0xf5, 0xfe, 0x6c, 0x41, 0x45, 0x5b, 0x77, 0xc1, 0x9e, - 0x89, 0x89, 0x29, 0x34, 0x5c, 0x92, 0x21, 0x74, 0xaf, 0x3a, 0xbb, 0xaf, 0x66, 0x85, 0xba, 0xbf, - 0x71, 0x78, 0x2b, 0x4f, 0xe5, 0xe6, 0x0b, 0x8e, 0x4b, 0x45, 0x57, 0x3f, 0x09, 0xf5, 0xa9, 0x07, - 0x50, 0x9f, 0x2e, 0x8d, 0xad, 0xa3, 0x6c, 0x6f, 0x1c, 0xe4, 0x43, 0xe8, 0x94, 0xaf, 0x72, 0xb3, - 0xda, 0x74, 0xa9, 0xf5, 0x8f, 0xa0, 0x99, 0xf1, 0x49, 0x94, 0x26, 0xc6, 0xa6, 0xa2, 0x6c, 0xda, - 0x07, 0xf9, 0xa4, 0xca, 0x0d, 0x1a, 0x5a, 0x4b, 0x6d, 0x87, 0x75, 0xa8, 0x86, 0x5c, 0xb2, 0x28, - 0xf6, 0xfe, 0x66, 0x43, 0x4b, 0xcf, 0x26, 0xaa, 0x1d, 0x7c, 0xdb, 0x78, 0xda, 0xc8, 0x45, 0x79, - 0x7b, 0x2e, 0xec, 0xdd, 0x3d, 0xc3, 0x79, 0x7b, 0xcf, 0xa8, 0xbc, 0xd1, 0x33, 0xee, 0x60, 0x91, - 0x48, 0xee, 0xc7, 0xd1, 0x2c, 0x92, 0xa6, 0x6b, 0xb8, 0x88, 0x9c, 0x21, 0x40, 0x06, 0xd0, 0x08, - 0xd2, 0x44, 0xa7, 0x30, 0x58, 0xa9, 0xc6, 0xd1, 0xa2, 0xeb, 0x10, 0xf9, 0x3e, 0x74, 0x84, 0x4c, - 0x33, 0x36, 0xe1, 0x3e, 0xe6, 0x83, 0x27, 0xa1, 0xea, 0x1f, 0x6b, 0xf9, 0x19, 0x69, 0xf1, 0x50, - 0x4b, 0x69, 0x5b, 0x6c, 0xec, 0x37, 0xe7, 0x1b, 0x6c, 0xce, 0x37, 0xcd, 0xb7, 0x46, 0xd1, 0x77, - 0x90, 0x0d, 0xe9, 0x6c, 0x9e, 0x71, 0x81, 0x8f, 0xf7, 0xe5, 0x6a, 0xce, 0xd5, 0x50, 0x6a, 0x1f, - 0xbe, 0x57, 0xb0, 0xe1, 0x4a, 0xfe, 0xc5, 0x6a, 0xce, 0x69, 0x27, 0xd8, 0x04, 0xc8, 0x07, 0x70, - 0x63, 0xfd, 0x8c, 0x98, 0x2f, 0x79, 0xac, 0x86, 0x57, 0x85, 0xae, 0x1f, 0x7e, 0x86, 0xf8, 0xe7, - 0x4e, 0xbd, 0xda, 0xad, 0x99, 0x79, 0xf0, 0xca, 0x82, 0xf6, 0xa6, 0x2f, 0xc4, 0x03, 0x27, 0x49, - 0xd3, 0xb9, 0x4a, 0xe9, 0x5a, 0xcf, 0x3a, 0x4f, 0xd3, 0xf9, 0x71, 0x89, 0x2a, 0x19, 0xb9, 0x0f, - 0x95, 0x38, 0x0d, 0x58, 0xac, 0x32, 0xdb, 0x38, 0x6c, 0xe5, 0x4a, 0x67, 0x08, 0x1e, 0x97, 0xa8, - 0x96, 0x92, 0xaf, 0x43, 0x59, 0x1c, 0x19, 0x6a, 0x43, 0x11, 0xba, 0xa3, 0xe3, 0x12, 0x2d, 0x8b, - 0x23, 0x72, 0x17, 0xec, 0x49, 0x20, 0x0c, 0x7b, 0x1b, 0xb9, 0xf8, 0xb3, 0xc7, 0xa3, 0xe3, 0x12, - 0x45, 0x09, 0xf9, 0x14, 0x5a, 0x41, 0x9c, 0x2e, 0x42, 0x3f, 0x5c, 0x25, 0x6c, 0x16, 0x05, 0x86, - 0xb4, 0x37, 0xaf, 0x8a, 0x24, 0x5d, 0x84, 0x4f, 0xb4, 0xec, 0xb8, 0x44, 0x9b, 0xc1, 0xda, 0x7e, - 0xe8, 0x42, 0xcd, 0xe4, 0xce, 0xab, 0x82, 0x83, 0xaf, 0xf7, 0x6e, 0x43, 0x45, 0x3d, 0x10, 0x9b, - 0x22, 0x7a, 0x9f, 0x0f, 0x3f, 0x15, 0x89, 0xaf, 0xca, 0x50, 0x1e, 0x1d, 0x61, 0xab, 0xe3, 0x49, - 0x38, 0x4f, 0x23, 0x53, 0xec, 0x2e, 0x2d, 0xf6, 0x38, 0x1f, 0x75, 0x75, 0x98, 0x2f, 0x2d, 0xb3, - 0x43, 0x7c, 0xbc, 0x08, 0xa6, 0x5c, 0x9a, 0x2e, 0x62, 0x76, 0x88, 0xcf, 0x33, 0x7e, 0x11, 0xbd, - 0x54, 0x3e, 0xba, 0xd4, 0xec, 0x34, 0xcb, 0x35, 0xbd, 0x82, 0x98, 0x09, 0xdd, 0x17, 0x5d, 0x64, - 0xb9, 0x02, 0x1f, 0x23, 0x86, 0x6d, 0x43, 0x08, 0xae, 0x9a, 0xa1, 0x4b, 0x71, 0x89, 0x08, 0x0b, - 0x62, 0xc5, 0x67, 0x97, 0xe2, 0x12, 0x89, 0xce, 0x82, 0x80, 0x0b, 0xa1, 0x4a, 0xa9, 0xae, 0xbf, - 0x72, 0x34, 0x82, 0xd5, 0xf4, 0x3e, 0xdc, 0x10, 0x3c, 0xc8, 0xb8, 0xf4, 0xd7, 0xb4, 0x5c, 0xa5, - 0xd5, 0xd1, 0x82, 0x47, 0x85, 0xee, 0x3e, 0x74, 0x2f, 0xd2, 0x2c, 0xe0, 0x3e, 0x06, 0xc3, 0x17, - 0x72, 0x15, 0x73, 0x43, 0xdc, 0xb6, 0xc2, 0x9f, 0x31, 0x79, 0x39, 0x42, 0x94, 0xdc, 0x83, 0xb6, - 0x10, 0xdc, 0x9f, 0xce, 0xd4, 0x79, 0x58, 0xfc, 0x9a, 0xcb, 0x0d, 0x21, 0xf8, 0xe9, 0x0c, 0x0f, - 0x3b, 0x09, 0xbd, 0x2f, 0x2d, 0xb0, 0x3f, 0x7b, 0x3c, 0x7a, 0x5b, 0x38, 0x4d, 0xd8, 0xca, 0x5b, - 0xc2, 0x66, 0xef, 0x0e, 0x9b, 0x73, 0x4d, 0xd8, 0xee, 0x43, 0x7b, 0x9e, 0xf1, 0x90, 0x5f, 0x44, - 0x09, 0x0f, 0x7d, 0x8c, 0x97, 0x0e, 0x6e, 0xeb, 0x0a, 0x7d, 0x14, 0xc4, 0x38, 0x77, 0x02, 0x04, - 0x12, 0x19, 0xb1, 0x58, 0xf8, 0xe3, 0x38, 0x1d, 0x9b, 0x50, 0x77, 0xd6, 0xf0, 0x61, 0x9c, 0x8e, - 0xbd, 0xdf, 0x58, 0x50, 0x1d, 0xea, 0x97, 0xbd, 0x1b, 0x39, 0xec, 0x2d, 0xe4, 0x70, 0xb6, 0x78, - 0x59, 0xd9, 0xed, 0x65, 0xf5, 0x4d, 0x2f, 0x71, 0xba, 0x34, 0xd7, 0xd9, 0x4f, 0x1e, 0x14, 0xb7, - 0x58, 0xa6, 0xb1, 0x9b, 0x1a, 0xd1, 0x2f, 0x2f, 0x6e, 0xbd, 0x07, 0xad, 0x79, 0x96, 0x2e, 0xa3, - 0x90, 0x67, 0xbe, 0xfa, 0xfe, 0xd3, 0xa1, 0x6f, 0xe6, 0xe0, 0x39, 0x7e, 0x07, 0x7e, 0x0c, 0x15, - 0x26, 0x65, 0x96, 0x7f, 0x8c, 0xdc, 0xbd, 0xae, 0xde, 0x0e, 0x1e, 0xa1, 0xc6, 0xd3, 0x44, 0x66, - 0x2b, 0xaa, 0xb5, 0xfb, 0x0f, 0x01, 0xae, 0x40, 0x64, 0x6b, 0x3e, 0x86, 0x5d, 0x8a, 0x4b, 0x1c, - 0xe0, 0x4b, 0x16, 0x2f, 0xf2, 0x3b, 0xf5, 0xe6, 0xbb, 0xe5, 0x87, 0x96, 0xf7, 0x6b, 0x0b, 0xda, - 0xf9, 0x74, 0x11, 0xf3, 0x34, 0x11, 0xc8, 0xb2, 0x8a, 0x1e, 0x54, 0xd6, 0x66, 0x87, 0x51, 0x83, - 0x89, 0x6a, 0xd9, 0x7f, 0x39, 0x64, 0xde, 0xe1, 0x07, 0x91, 0xf7, 0x95, 0x05, 0x77, 0x9e, 0xbe, - 0x94, 0x3c, 0x4b, 0x58, 0x6c, 0xfa, 0x23, 0xe5, 0x98, 0x02, 0x9e, 0xcf, 0xbf, 0x6b, 0x66, 0x84, - 0xf5, 0x1f, 0xcd, 0x88, 0xbb, 0xd0, 0x48, 0xc7, 0xbf, 0xe0, 0x81, 0x5c, 0x4f, 0x04, 0x68, 0x48, - 0xa5, 0xe1, 0x1b, 0x38, 0xb2, 0xd5, 0x9d, 0x5a, 0x43, 0xf3, 0xaa, 0x61, 0x30, 0xa5, 0x72, 0x1f, - 0xda, 0x41, 0x9a, 0x48, 0x9e, 0x48, 0x3f, 0xe6, 0xc9, 0x44, 0x5e, 0x9a, 0x81, 0xd9, 0x32, 0xe8, - 0x99, 0x02, 0xbd, 0x01, 0xec, 0x6d, 0x73, 0x46, 0x87, 0xdb, 0xfb, 0x9d, 0x05, 0xfd, 0xd7, 0x54, - 0x46, 0x6c, 0xf9, 0x7f, 0x74, 0xf6, 0x4d, 0x4f, 0xec, 0xeb, 0x3c, 0xb9, 0x03, 0xb7, 0xaf, 0x7d, - 0xa6, 0x76, 0xe3, 0xfd, 0xef, 0x41, 0xe7, 0xb5, 0x59, 0x49, 0x1a, 0x50, 0xfb, 0xc9, 0xf9, 0xe9, - 0xf9, 0x8f, 0x7e, 0x76, 0xde, 0x2d, 0x91, 0x1a, 0xd8, 0x67, 0xcf, 0x3f, 0xea, 0x5a, 0x04, 0xa0, - 0x3a, 0x3a, 0x7f, 0xf4, 0xec, 0xd9, 0xcf, 0xbb, 0x65, 0x52, 0x07, 0xe7, 0xf9, 0xe8, 0x8b, 0x27, - 0x5d, 0xfb, 0xf0, 0x29, 0x54, 0x35, 0x0d, 0xc9, 0xa7, 0x60, 0x7e, 0xda, 0x93, 0xaf, 0x15, 0x95, - 0xb4, 0xfe, 0xf9, 0xd3, 0xbf, 0xf5, 0x3a, 0x6c, 0x02, 0x59, 0xfa, 0xb6, 0x75, 0xf8, 0x47, 0x0b, - 0x3a, 0xaf, 0xbd, 0x92, 0x3c, 0xc7, 0x2f, 0x45, 0x15, 0x73, 0x72, 0xbf, 0xe0, 0xf2, 0x2e, 0x82, - 0xf5, 0x1f, 0xbc, 0x4d, 0x2d, 0xbf, 0x91, 0xfc, 0x18, 0x1c, 0xc1, 0x96, 0x9c, 0x78, 0x5b, 0x2c, - 0xd6, 0x32, 0xd9, 0xbf, 0xb7, 0x53, 0x27, 0x3f, 0x72, 0xf8, 0xe0, 0xef, 0xbf, 0xaf, 0x5b, 0x5f, - 0xbe, 0xda, 0xb3, 0xfe, 0xf2, 0x6a, 0xcf, 0xfa, 0xc7, 0xab, 0x3d, 0xeb, 0xb7, 0xff, 0xda, 0x2b, - 0x41, 0x37, 0xcd, 0x26, 0x07, 0x32, 0x9a, 0x2e, 0x0f, 0xa6, 0x4b, 0xf5, 0x3f, 0x8b, 0x71, 0x55, - 0xfd, 0x39, 0xfa, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd5, 0xfc, 0xdd, 0x1f, 0x17, 0x11, 0x00, - 0x00, -} diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index 1d19d25..63cf66f 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -1888,10 +1888,9 @@ type CheckTxnStatusResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Error *KeyError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Three kinds of transaction status: - // - // locked: lock_ttl > 0 - // committed: commit_version > 0 - // rollbacked: lock_ttl = 0 && commit_version = 0 + // locked: lock_ttl > 0 + // committed: commit_version > 0 + // rollbacked: lock_ttl = 0 && commit_version = 0 LockTtl uint64 `protobuf:"varint,3,opt,name=lock_ttl,json=lockTtl,proto3" json:"lock_ttl,omitempty"` CommitVersion uint64 `protobuf:"varint,4,opt,name=commit_version,json=commitVersion,proto3" json:"commit_version,omitempty"` // The action performed by TiKV (and why if the action is to rollback). @@ -9375,7 +9374,6 @@ func (m *RawChecksumResponse) GetTotalBytes() uint64 { type CompactError struct { // Types that are valid to be assigned to Error: - // // *CompactError_ErrInvalidStartKey // *CompactError_ErrPhysicalTableNotExist // *CompactError_ErrCompactInProgress diff --git a/pkg/meta_storagepb/meta_storagepb.pb.go b/pkg/meta_storagepb/meta_storagepb.pb.go new file mode 100644 index 0000000..e3c6702 --- /dev/null +++ b/pkg/meta_storagepb/meta_storagepb.pb.go @@ -0,0 +1,3564 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: meta_storagepb.proto + +package meta_storagepb + +import ( + "context" + "fmt" + "io" + "math" + math_bits "math/bits" + + _ "github.com/gogo/protobuf/gogoproto" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type ErrorType int32 + +const ( + ErrorType_OK ErrorType = 0 + ErrorType_UNKNOWN ErrorType = 1 + // required watch revision is smaller than current compact/min revision. + ErrorType_DATA_COMPACTED ErrorType = 2 +) + +var ErrorType_name = map[int32]string{ + 0: "OK", + 1: "UNKNOWN", + 2: "DATA_COMPACTED", +} + +var ErrorType_value = map[string]int32{ + "OK": 0, + "UNKNOWN": 1, + "DATA_COMPACTED": 2, +} + +func (x ErrorType) String() string { + return proto.EnumName(ErrorType_name, int32(x)) +} + +func (ErrorType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_5a2dc828c1dd8152, []int{0} +} + +type Event_EventType int32 + +const ( + Event_PUT Event_EventType = 0 + Event_DELETE Event_EventType = 1 +) + +var Event_EventType_name = map[int32]string{ + 0: "PUT", + 1: "DELETE", +} + +var Event_EventType_value = map[string]int32{ + "PUT": 0, + "DELETE": 1, +} + +func (x Event_EventType) String() string { + return proto.EnumName(Event_EventType_name, int32(x)) +} + +func (Event_EventType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_5a2dc828c1dd8152, []int{10, 0} +} + +type Error struct { + Type ErrorType `protobuf:"varint,1,opt,name=type,proto3,enum=meta_storagepb.ErrorType" json:"type,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Error) Reset() { *m = Error{} } +func (m *Error) String() string { return proto.CompactTextString(m) } +func (*Error) ProtoMessage() {} +func (*Error) Descriptor() ([]byte, []int) { + return fileDescriptor_5a2dc828c1dd8152, []int{0} +} +func (m *Error) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Error) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Error.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Error) XXX_Merge(src proto.Message) { + xxx_messageInfo_Error.Merge(m, src) +} +func (m *Error) XXX_Size() int { + return m.Size() +} +func (m *Error) XXX_DiscardUnknown() { + xxx_messageInfo_Error.DiscardUnknown(m) +} + +var xxx_messageInfo_Error proto.InternalMessageInfo + +func (m *Error) GetType() ErrorType { + if m != nil { + return m.Type + } + return ErrorType_OK +} + +func (m *Error) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +type RequestHeader struct { + // cluster_id is the ID of the cluster which be sent to. + ClusterId uint64 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // source is the source of the request. + Source string `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RequestHeader) Reset() { *m = RequestHeader{} } +func (m *RequestHeader) String() string { return proto.CompactTextString(m) } +func (*RequestHeader) ProtoMessage() {} +func (*RequestHeader) Descriptor() ([]byte, []int) { + return fileDescriptor_5a2dc828c1dd8152, []int{1} +} +func (m *RequestHeader) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestHeader.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestHeader) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestHeader.Merge(m, src) +} +func (m *RequestHeader) XXX_Size() int { + return m.Size() +} +func (m *RequestHeader) XXX_DiscardUnknown() { + xxx_messageInfo_RequestHeader.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestHeader proto.InternalMessageInfo + +func (m *RequestHeader) GetClusterId() uint64 { + if m != nil { + return m.ClusterId + } + return 0 +} + +func (m *RequestHeader) GetSource() string { + if m != nil { + return m.Source + } + return "" +} + +type ResponseHeader struct { + // cluster_id is the ID of the cluster which sent the response. + ClusterId uint64 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + Error *Error `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` + Revision int64 `protobuf:"varint,3,opt,name=revision,proto3" json:"revision,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResponseHeader) Reset() { *m = ResponseHeader{} } +func (m *ResponseHeader) String() string { return proto.CompactTextString(m) } +func (*ResponseHeader) ProtoMessage() {} +func (*ResponseHeader) Descriptor() ([]byte, []int) { + return fileDescriptor_5a2dc828c1dd8152, []int{2} +} +func (m *ResponseHeader) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseHeader.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseHeader) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseHeader.Merge(m, src) +} +func (m *ResponseHeader) XXX_Size() int { + return m.Size() +} +func (m *ResponseHeader) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseHeader.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseHeader proto.InternalMessageInfo + +func (m *ResponseHeader) GetClusterId() uint64 { + if m != nil { + return m.ClusterId + } + return 0 +} + +func (m *ResponseHeader) GetError() *Error { + if m != nil { + return m.Error + } + return nil +} + +func (m *ResponseHeader) GetRevision() int64 { + if m != nil { + return m.Revision + } + return 0 +} + +// copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto +type WatchRequest struct { + Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + RangeEnd []byte `protobuf:"bytes,2,opt,name=range_end,json=rangeEnd,proto3" json:"range_end,omitempty"` + StartRevision int64 `protobuf:"varint,3,opt,name=start_revision,json=startRevision,proto3" json:"start_revision,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WatchRequest) Reset() { *m = WatchRequest{} } +func (m *WatchRequest) String() string { return proto.CompactTextString(m) } +func (*WatchRequest) ProtoMessage() {} +func (*WatchRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_5a2dc828c1dd8152, []int{3} +} +func (m *WatchRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WatchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_WatchRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *WatchRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_WatchRequest.Merge(m, src) +} +func (m *WatchRequest) XXX_Size() int { + return m.Size() +} +func (m *WatchRequest) XXX_DiscardUnknown() { + xxx_messageInfo_WatchRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_WatchRequest proto.InternalMessageInfo + +func (m *WatchRequest) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *WatchRequest) GetRangeEnd() []byte { + if m != nil { + return m.RangeEnd + } + return nil +} + +func (m *WatchRequest) GetStartRevision() int64 { + if m != nil { + return m.StartRevision + } + return 0 +} + +// copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto +type WatchResponse struct { + Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + CompactRevision int64 `protobuf:"varint,2,opt,name=compact_revision,json=compactRevision,proto3" json:"compact_revision,omitempty"` + Events []*Event `protobuf:"bytes,3,rep,name=events,proto3" json:"events,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WatchResponse) Reset() { *m = WatchResponse{} } +func (m *WatchResponse) String() string { return proto.CompactTextString(m) } +func (*WatchResponse) ProtoMessage() {} +func (*WatchResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_5a2dc828c1dd8152, []int{4} +} +func (m *WatchResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WatchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_WatchResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *WatchResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_WatchResponse.Merge(m, src) +} +func (m *WatchResponse) XXX_Size() int { + return m.Size() +} +func (m *WatchResponse) XXX_DiscardUnknown() { + xxx_messageInfo_WatchResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_WatchResponse proto.InternalMessageInfo + +func (m *WatchResponse) GetHeader() *ResponseHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *WatchResponse) GetCompactRevision() int64 { + if m != nil { + return m.CompactRevision + } + return 0 +} + +func (m *WatchResponse) GetEvents() []*Event { + if m != nil { + return m.Events + } + return nil +} + +// copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto +type GetRequest struct { + Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + RangeEnd []byte `protobuf:"bytes,2,opt,name=range_end,json=rangeEnd,proto3" json:"range_end,omitempty"` + Limit int64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` + Revision int64 `protobuf:"varint,4,opt,name=revision,proto3" json:"revision,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetRequest) Reset() { *m = GetRequest{} } +func (m *GetRequest) String() string { return proto.CompactTextString(m) } +func (*GetRequest) ProtoMessage() {} +func (*GetRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_5a2dc828c1dd8152, []int{5} +} +func (m *GetRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GetRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GetRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetRequest.Merge(m, src) +} +func (m *GetRequest) XXX_Size() int { + return m.Size() +} +func (m *GetRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetRequest proto.InternalMessageInfo + +func (m *GetRequest) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *GetRequest) GetRangeEnd() []byte { + if m != nil { + return m.RangeEnd + } + return nil +} + +func (m *GetRequest) GetLimit() int64 { + if m != nil { + return m.Limit + } + return 0 +} + +func (m *GetRequest) GetRevision() int64 { + if m != nil { + return m.Revision + } + return 0 +} + +// copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto +type GetResponse struct { + Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + Kvs []*KeyValue `protobuf:"bytes,2,rep,name=kvs,proto3" json:"kvs,omitempty"` + More bool `protobuf:"varint,3,opt,name=more,proto3" json:"more,omitempty"` + Count int64 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetResponse) Reset() { *m = GetResponse{} } +func (m *GetResponse) String() string { return proto.CompactTextString(m) } +func (*GetResponse) ProtoMessage() {} +func (*GetResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_5a2dc828c1dd8152, []int{6} +} +func (m *GetResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GetResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GetResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetResponse.Merge(m, src) +} +func (m *GetResponse) XXX_Size() int { + return m.Size() +} +func (m *GetResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetResponse proto.InternalMessageInfo + +func (m *GetResponse) GetHeader() *ResponseHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *GetResponse) GetKvs() []*KeyValue { + if m != nil { + return m.Kvs + } + return nil +} + +func (m *GetResponse) GetMore() bool { + if m != nil { + return m.More + } + return false +} + +func (m *GetResponse) GetCount() int64 { + if m != nil { + return m.Count + } + return 0 +} + +// copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto +type PutRequest struct { + Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + Lease int64 `protobuf:"varint,3,opt,name=lease,proto3" json:"lease,omitempty"` + PrevKv bool `protobuf:"varint,4,opt,name=prev_kv,json=prevKv,proto3" json:"prev_kv,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PutRequest) Reset() { *m = PutRequest{} } +func (m *PutRequest) String() string { return proto.CompactTextString(m) } +func (*PutRequest) ProtoMessage() {} +func (*PutRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_5a2dc828c1dd8152, []int{7} +} +func (m *PutRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PutRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PutRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PutRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_PutRequest.Merge(m, src) +} +func (m *PutRequest) XXX_Size() int { + return m.Size() +} +func (m *PutRequest) XXX_DiscardUnknown() { + xxx_messageInfo_PutRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_PutRequest proto.InternalMessageInfo + +func (m *PutRequest) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *PutRequest) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +func (m *PutRequest) GetLease() int64 { + if m != nil { + return m.Lease + } + return 0 +} + +func (m *PutRequest) GetPrevKv() bool { + if m != nil { + return m.PrevKv + } + return false +} + +// copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto +type PutResponse struct { + Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + PrevKv *KeyValue `protobuf:"bytes,2,opt,name=prev_kv,json=prevKv,proto3" json:"prev_kv,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PutResponse) Reset() { *m = PutResponse{} } +func (m *PutResponse) String() string { return proto.CompactTextString(m) } +func (*PutResponse) ProtoMessage() {} +func (*PutResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_5a2dc828c1dd8152, []int{8} +} +func (m *PutResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PutResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PutResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PutResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_PutResponse.Merge(m, src) +} +func (m *PutResponse) XXX_Size() int { + return m.Size() +} +func (m *PutResponse) XXX_DiscardUnknown() { + xxx_messageInfo_PutResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_PutResponse proto.InternalMessageInfo + +func (m *PutResponse) GetHeader() *ResponseHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *PutResponse) GetPrevKv() *KeyValue { + if m != nil { + return m.PrevKv + } + return nil +} + +// copied from etcd https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/mvccpb/kv.proto +type KeyValue struct { + // key is the key in bytes. An empty key is not allowed. + Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + // create_revision is the revision of last creation on this key. + CreateRevision int64 `protobuf:"varint,2,opt,name=create_revision,json=createRevision,proto3" json:"create_revision,omitempty"` + // mod_revision is the revision of last modification on this key. + ModRevision int64 `protobuf:"varint,3,opt,name=mod_revision,json=modRevision,proto3" json:"mod_revision,omitempty"` + // version is the version of the key. A deletion resets + // the version to zero and any modification of the key + // increases its version. + Version int64 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` + // value is the value held by the key, in bytes. + Value []byte `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"` + // lease is the ID of the lease that attached to key. + // When the attached lease expires, the key will be deleted. + // If lease is 0, then no lease is attached to the key. + Lease int64 `protobuf:"varint,6,opt,name=lease,proto3" json:"lease,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeyValue) Reset() { *m = KeyValue{} } +func (m *KeyValue) String() string { return proto.CompactTextString(m) } +func (*KeyValue) ProtoMessage() {} +func (*KeyValue) Descriptor() ([]byte, []int) { + return fileDescriptor_5a2dc828c1dd8152, []int{9} +} +func (m *KeyValue) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KeyValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_KeyValue.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *KeyValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeyValue.Merge(m, src) +} +func (m *KeyValue) XXX_Size() int { + return m.Size() +} +func (m *KeyValue) XXX_DiscardUnknown() { + xxx_messageInfo_KeyValue.DiscardUnknown(m) +} + +var xxx_messageInfo_KeyValue proto.InternalMessageInfo + +func (m *KeyValue) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *KeyValue) GetCreateRevision() int64 { + if m != nil { + return m.CreateRevision + } + return 0 +} + +func (m *KeyValue) GetModRevision() int64 { + if m != nil { + return m.ModRevision + } + return 0 +} + +func (m *KeyValue) GetVersion() int64 { + if m != nil { + return m.Version + } + return 0 +} + +func (m *KeyValue) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +func (m *KeyValue) GetLease() int64 { + if m != nil { + return m.Lease + } + return 0 +} + +// copied from etcd https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/mvccpb/kv.proto +type Event struct { + // type is the kind of event. If type is a PUT, it indicates + // new data has been stored to the key. If type is a DELETE, + // it indicates the key was deleted. + Type Event_EventType `protobuf:"varint,1,opt,name=type,proto3,enum=meta_storagepb.Event_EventType" json:"type,omitempty"` + // kv holds the KeyValue for the event. + // A PUT event contains current kv pair. + // A PUT event with kv.Version=1 indicates the creation of a key. + // A DELETE/EXPIRE event contains the deleted key with + // its modification revision set to the revision of deletion. + Kv *KeyValue `protobuf:"bytes,2,opt,name=kv,proto3" json:"kv,omitempty"` + // prev_kv holds the key-value pair before the event happens. + PrevKv *KeyValue `protobuf:"bytes,3,opt,name=prev_kv,json=prevKv,proto3" json:"prev_kv,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Event) Reset() { *m = Event{} } +func (m *Event) String() string { return proto.CompactTextString(m) } +func (*Event) ProtoMessage() {} +func (*Event) Descriptor() ([]byte, []int) { + return fileDescriptor_5a2dc828c1dd8152, []int{10} +} +func (m *Event) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Event.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Event) XXX_Merge(src proto.Message) { + xxx_messageInfo_Event.Merge(m, src) +} +func (m *Event) XXX_Size() int { + return m.Size() +} +func (m *Event) XXX_DiscardUnknown() { + xxx_messageInfo_Event.DiscardUnknown(m) +} + +var xxx_messageInfo_Event proto.InternalMessageInfo + +func (m *Event) GetType() Event_EventType { + if m != nil { + return m.Type + } + return Event_PUT +} + +func (m *Event) GetKv() *KeyValue { + if m != nil { + return m.Kv + } + return nil +} + +func (m *Event) GetPrevKv() *KeyValue { + if m != nil { + return m.PrevKv + } + return nil +} + +func init() { + proto.RegisterEnum("meta_storagepb.ErrorType", ErrorType_name, ErrorType_value) + proto.RegisterEnum("meta_storagepb.Event_EventType", Event_EventType_name, Event_EventType_value) + proto.RegisterType((*Error)(nil), "meta_storagepb.Error") + proto.RegisterType((*RequestHeader)(nil), "meta_storagepb.RequestHeader") + proto.RegisterType((*ResponseHeader)(nil), "meta_storagepb.ResponseHeader") + proto.RegisterType((*WatchRequest)(nil), "meta_storagepb.WatchRequest") + proto.RegisterType((*WatchResponse)(nil), "meta_storagepb.WatchResponse") + proto.RegisterType((*GetRequest)(nil), "meta_storagepb.GetRequest") + proto.RegisterType((*GetResponse)(nil), "meta_storagepb.GetResponse") + proto.RegisterType((*PutRequest)(nil), "meta_storagepb.PutRequest") + proto.RegisterType((*PutResponse)(nil), "meta_storagepb.PutResponse") + proto.RegisterType((*KeyValue)(nil), "meta_storagepb.KeyValue") + proto.RegisterType((*Event)(nil), "meta_storagepb.Event") +} + +func init() { proto.RegisterFile("meta_storagepb.proto", fileDescriptor_5a2dc828c1dd8152) } + +var fileDescriptor_5a2dc828c1dd8152 = []byte{ + // 749 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcd, 0x6e, 0xda, 0x58, + 0x14, 0xe6, 0x62, 0x30, 0x70, 0x20, 0xc4, 0xba, 0x62, 0x66, 0x3c, 0x64, 0xc2, 0x30, 0x96, 0x66, + 0x86, 0xc9, 0x28, 0xcc, 0x94, 0x54, 0x5d, 0x37, 0x4d, 0x68, 0x52, 0xd1, 0x24, 0xc8, 0x25, 0xcd, + 0x12, 0x39, 0xf6, 0x11, 0x41, 0xc4, 0x98, 0x5e, 0x5f, 0x5b, 0xe1, 0x4d, 0x2a, 0x75, 0xd5, 0x5d, + 0x57, 0x7d, 0x81, 0xbe, 0x40, 0x97, 0x5d, 0x56, 0xea, 0xa6, 0x4a, 0x5f, 0xa4, 0xf2, 0xb5, 0xcd, + 0x8f, 0x4b, 0xaa, 0xa8, 0xd9, 0xc0, 0x3d, 0xe7, 0x7e, 0x7c, 0xdf, 0x39, 0x9f, 0xce, 0x3d, 0x40, + 0xc5, 0x46, 0x6e, 0xf4, 0x5d, 0xee, 0x30, 0x63, 0x80, 0x93, 0xf3, 0xe6, 0x84, 0x39, 0xdc, 0xa1, + 0xe5, 0xe5, 0x6c, 0xb5, 0x32, 0x70, 0x06, 0x8e, 0xb8, 0xfa, 0x2f, 0x38, 0x85, 0xa8, 0xea, 0x3a, + 0xf3, 0x5c, 0x2e, 0x8e, 0x61, 0x42, 0xeb, 0x42, 0xb6, 0xcd, 0x98, 0xc3, 0xe8, 0x36, 0x64, 0xf8, + 0x74, 0x82, 0x2a, 0xa9, 0x93, 0x46, 0xb9, 0xf5, 0x6b, 0x33, 0x21, 0x22, 0x40, 0xbd, 0xe9, 0x04, + 0x75, 0x01, 0xa3, 0x2a, 0xe4, 0x6c, 0x74, 0x5d, 0x63, 0x80, 0x6a, 0xba, 0x4e, 0x1a, 0x05, 0x3d, + 0x0e, 0xb5, 0xc7, 0xb0, 0xa6, 0xe3, 0x0b, 0x0f, 0x5d, 0x7e, 0x88, 0x86, 0x85, 0x8c, 0x6e, 0x02, + 0x98, 0x97, 0x9e, 0xcb, 0x91, 0xf5, 0x87, 0x96, 0xe0, 0xcf, 0xe8, 0x85, 0x28, 0xf3, 0xc4, 0xa2, + 0x3f, 0x83, 0xec, 0x3a, 0x1e, 0x33, 0x63, 0xa2, 0x28, 0xd2, 0xae, 0xa0, 0xac, 0xa3, 0x3b, 0x71, + 0xc6, 0x2e, 0xde, 0x8e, 0xe8, 0x5f, 0xc8, 0x62, 0x50, 0xa5, 0xe0, 0x29, 0xb6, 0x7e, 0x5a, 0xd9, + 0x82, 0x1e, 0x62, 0x68, 0x15, 0xf2, 0x0c, 0xfd, 0xa1, 0x3b, 0x74, 0xc6, 0xaa, 0x54, 0x27, 0x0d, + 0x49, 0x9f, 0xc5, 0x9a, 0x05, 0xa5, 0x33, 0x83, 0x9b, 0x17, 0x51, 0x1b, 0x54, 0x01, 0x69, 0x84, + 0x53, 0x21, 0x58, 0xd2, 0x83, 0x23, 0xdd, 0x80, 0x02, 0x33, 0xc6, 0x03, 0xec, 0xe3, 0xd8, 0x12, + 0x72, 0x25, 0x3d, 0x2f, 0x12, 0xed, 0xb1, 0x45, 0xff, 0x84, 0xb2, 0xcb, 0x0d, 0xc6, 0xfb, 0x09, + 0x81, 0x35, 0x91, 0xd5, 0x63, 0x95, 0xd7, 0x04, 0xd6, 0x22, 0x99, 0xb0, 0x4b, 0xfa, 0x00, 0xe4, + 0x0b, 0xd1, 0xa9, 0x90, 0x2a, 0xb6, 0x6a, 0xc9, 0x0e, 0x96, 0xfd, 0xd0, 0x23, 0x34, 0xfd, 0x07, + 0x14, 0xd3, 0xb1, 0x27, 0x86, 0xb9, 0x20, 0x99, 0x16, 0x92, 0xeb, 0x51, 0x3e, 0x16, 0xa5, 0xdb, + 0x20, 0xa3, 0x8f, 0x63, 0xee, 0xaa, 0x52, 0x5d, 0x5a, 0x69, 0x52, 0x70, 0xab, 0x47, 0x20, 0xcd, + 0x06, 0x38, 0x40, 0xfe, 0x83, 0x3e, 0x54, 0x20, 0x7b, 0x39, 0xb4, 0x87, 0x3c, 0x6a, 0x3f, 0x0c, + 0x96, 0x8c, 0xcf, 0x24, 0x8c, 0x7f, 0x45, 0xa0, 0x28, 0xf4, 0xee, 0x68, 0xc8, 0x16, 0x48, 0x23, + 0xdf, 0x55, 0xd3, 0xa2, 0x45, 0x35, 0xf9, 0xa3, 0x0e, 0x4e, 0x9f, 0x1b, 0x97, 0x1e, 0xea, 0x01, + 0x88, 0x52, 0xc8, 0xd8, 0x0e, 0x43, 0x51, 0x64, 0x5e, 0x17, 0xe7, 0xa0, 0x72, 0xd3, 0xf1, 0xc6, + 0x3c, 0x2a, 0x30, 0x0c, 0x34, 0x13, 0xa0, 0xeb, 0x7d, 0xc7, 0x8c, 0x0a, 0x64, 0xfd, 0x80, 0x37, + 0x32, 0x22, 0x0c, 0x84, 0x0b, 0x68, 0xb8, 0x38, 0x73, 0x21, 0x08, 0xe8, 0x2f, 0x90, 0x9b, 0x30, + 0xf4, 0xfb, 0x23, 0x5f, 0x68, 0xe4, 0x75, 0x39, 0x08, 0x3b, 0xbe, 0x76, 0x05, 0x45, 0x21, 0x72, + 0x47, 0x07, 0xee, 0xcd, 0xf9, 0xc3, 0xd7, 0x70, 0xb3, 0x0b, 0xb1, 0xf2, 0x5b, 0x02, 0xf9, 0x38, + 0xb9, 0xa2, 0xbb, 0xbf, 0x61, 0xdd, 0x64, 0x68, 0x70, 0x4c, 0xce, 0x58, 0x39, 0x4c, 0xcf, 0x46, + 0xec, 0x0f, 0x28, 0xd9, 0x8e, 0x95, 0x1c, 0xfe, 0xa2, 0xed, 0x58, 0x33, 0x88, 0x0a, 0x39, 0x1f, + 0xd9, 0xc2, 0x08, 0xc4, 0xe1, 0xdc, 0xc3, 0xec, 0x4a, 0x0f, 0xe5, 0x05, 0x0f, 0xb5, 0x77, 0x04, + 0xb2, 0x62, 0x5c, 0xe9, 0xce, 0xd2, 0xee, 0xfa, 0x7d, 0xe5, 0x4c, 0x87, 0x9f, 0x0b, 0x1b, 0xac, + 0x01, 0xe9, 0x5b, 0xb8, 0x93, 0x1e, 0xf9, 0x8b, 0x66, 0x4a, 0xb7, 0x34, 0xb3, 0x0e, 0x85, 0x99, + 0x1e, 0xcd, 0x81, 0xd4, 0x3d, 0xed, 0x29, 0x29, 0x0a, 0x20, 0xef, 0xb7, 0x9f, 0xb6, 0x7b, 0x6d, + 0x85, 0x6c, 0xdd, 0x87, 0xc2, 0x6c, 0xa7, 0x52, 0x19, 0xd2, 0x27, 0x1d, 0x25, 0x45, 0x8b, 0x90, + 0x3b, 0x3d, 0xee, 0x1c, 0x9f, 0x9c, 0x1d, 0x2b, 0x84, 0x52, 0x28, 0xef, 0xef, 0xf6, 0x76, 0xfb, + 0x7b, 0x27, 0x47, 0xdd, 0xdd, 0xbd, 0x5e, 0x7b, 0x5f, 0x49, 0xb7, 0x3e, 0x11, 0x28, 0x1e, 0x21, + 0x37, 0x9e, 0x85, 0xd2, 0xf4, 0x10, 0xb2, 0x62, 0x87, 0xd0, 0xdf, 0x92, 0x25, 0x2d, 0x6e, 0xb0, + 0xea, 0xe6, 0x0d, 0xb7, 0xe1, 0xec, 0x68, 0xa9, 0xff, 0x09, 0x7d, 0x08, 0xd2, 0x01, 0x72, 0x5a, + 0x4d, 0x22, 0xe7, 0xef, 0xbf, 0xba, 0xb1, 0xf2, 0x2e, 0xe6, 0x08, 0x18, 0xba, 0xde, 0x0a, 0x86, + 0xf9, 0xa3, 0xf9, 0x96, 0x61, 0x61, 0xd6, 0xb5, 0xd4, 0xa3, 0xbf, 0x3e, 0xbe, 0xc9, 0x93, 0xf7, + 0xd7, 0x35, 0xf2, 0xe1, 0xba, 0x46, 0x3e, 0x5f, 0xd7, 0xc8, 0xcb, 0x2f, 0xb5, 0x14, 0x28, 0x0e, + 0x1b, 0x34, 0xf9, 0x70, 0xe4, 0x37, 0x47, 0xbe, 0xf8, 0xd3, 0x3a, 0x97, 0xc5, 0xd7, 0xce, 0xd7, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x91, 0x77, 0x3d, 0x2a, 0x0a, 0x07, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// MetaStorageClient is the client API for MetaStorage service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type MetaStorageClient interface { + Watch(ctx context.Context, in *WatchRequest, opts ...grpc.CallOption) (MetaStorage_WatchClient, error) + // Get is the same as etcd Range which might be implemented in a more common way + // so that we can use other storages to replace etcd in the future. + Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) + Put(ctx context.Context, in *PutRequest, opts ...grpc.CallOption) (*PutResponse, error) +} + +type metaStorageClient struct { + cc *grpc.ClientConn +} + +func NewMetaStorageClient(cc *grpc.ClientConn) MetaStorageClient { + return &metaStorageClient{cc} +} + +func (c *metaStorageClient) Watch(ctx context.Context, in *WatchRequest, opts ...grpc.CallOption) (MetaStorage_WatchClient, error) { + stream, err := c.cc.NewStream(ctx, &_MetaStorage_serviceDesc.Streams[0], "/meta_storagepb.MetaStorage/Watch", opts...) + if err != nil { + return nil, err + } + x := &metaStorageWatchClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type MetaStorage_WatchClient interface { + Recv() (*WatchResponse, error) + grpc.ClientStream +} + +type metaStorageWatchClient struct { + grpc.ClientStream +} + +func (x *metaStorageWatchClient) Recv() (*WatchResponse, error) { + m := new(WatchResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *metaStorageClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) { + out := new(GetResponse) + err := c.cc.Invoke(ctx, "/meta_storagepb.MetaStorage/Get", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *metaStorageClient) Put(ctx context.Context, in *PutRequest, opts ...grpc.CallOption) (*PutResponse, error) { + out := new(PutResponse) + err := c.cc.Invoke(ctx, "/meta_storagepb.MetaStorage/Put", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// MetaStorageServer is the server API for MetaStorage service. +type MetaStorageServer interface { + Watch(*WatchRequest, MetaStorage_WatchServer) error + // Get is the same as etcd Range which might be implemented in a more common way + // so that we can use other storages to replace etcd in the future. + Get(context.Context, *GetRequest) (*GetResponse, error) + Put(context.Context, *PutRequest) (*PutResponse, error) +} + +// UnimplementedMetaStorageServer can be embedded to have forward compatible implementations. +type UnimplementedMetaStorageServer struct { +} + +func (*UnimplementedMetaStorageServer) Watch(req *WatchRequest, srv MetaStorage_WatchServer) error { + return status.Errorf(codes.Unimplemented, "method Watch not implemented") +} +func (*UnimplementedMetaStorageServer) Get(ctx context.Context, req *GetRequest) (*GetResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Get not implemented") +} +func (*UnimplementedMetaStorageServer) Put(ctx context.Context, req *PutRequest) (*PutResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Put not implemented") +} + +func RegisterMetaStorageServer(s *grpc.Server, srv MetaStorageServer) { + s.RegisterService(&_MetaStorage_serviceDesc, srv) +} + +func _MetaStorage_Watch_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(WatchRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(MetaStorageServer).Watch(m, &metaStorageWatchServer{stream}) +} + +type MetaStorage_WatchServer interface { + Send(*WatchResponse) error + grpc.ServerStream +} + +type metaStorageWatchServer struct { + grpc.ServerStream +} + +func (x *metaStorageWatchServer) Send(m *WatchResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _MetaStorage_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MetaStorageServer).Get(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/meta_storagepb.MetaStorage/Get", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MetaStorageServer).Get(ctx, req.(*GetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MetaStorage_Put_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PutRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MetaStorageServer).Put(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/meta_storagepb.MetaStorage/Put", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MetaStorageServer).Put(ctx, req.(*PutRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _MetaStorage_serviceDesc = grpc.ServiceDesc{ + ServiceName: "meta_storagepb.MetaStorage", + HandlerType: (*MetaStorageServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Get", + Handler: _MetaStorage_Get_Handler, + }, + { + MethodName: "Put", + Handler: _MetaStorage_Put_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "Watch", + Handler: _MetaStorage_Watch_Handler, + ServerStreams: true, + }, + }, + Metadata: "meta_storagepb.proto", +} + +func (m *Error) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Error) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Error) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Message) > 0 { + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x12 + } + if m.Type != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.Type)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *RequestHeader) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestHeader) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestHeader) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Source) > 0 { + i -= len(m.Source) + copy(dAtA[i:], m.Source) + i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.Source))) + i-- + dAtA[i] = 0x12 + } + if m.ClusterId != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.ClusterId)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ResponseHeader) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseHeader) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseHeader) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Revision != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.Revision)) + i-- + dAtA[i] = 0x18 + } + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMetaStoragepb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.ClusterId != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.ClusterId)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *WatchRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WatchRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WatchRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.StartRevision != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.StartRevision)) + i-- + dAtA[i] = 0x18 + } + if len(m.RangeEnd) > 0 { + i -= len(m.RangeEnd) + copy(dAtA[i:], m.RangeEnd) + i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.RangeEnd))) + i-- + dAtA[i] = 0x12 + } + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *WatchResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WatchResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WatchResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Events) > 0 { + for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMetaStoragepb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if m.CompactRevision != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.CompactRevision)) + i-- + dAtA[i] = 0x10 + } + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMetaStoragepb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GetRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Revision != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.Revision)) + i-- + dAtA[i] = 0x20 + } + if m.Limit != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.Limit)) + i-- + dAtA[i] = 0x18 + } + if len(m.RangeEnd) > 0 { + i -= len(m.RangeEnd) + copy(dAtA[i:], m.RangeEnd) + i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.RangeEnd))) + i-- + dAtA[i] = 0x12 + } + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GetResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Count != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.Count)) + i-- + dAtA[i] = 0x20 + } + if m.More { + i-- + if m.More { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if len(m.Kvs) > 0 { + for iNdEx := len(m.Kvs) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Kvs[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMetaStoragepb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMetaStoragepb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PutRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PutRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PutRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.PrevKv { + i-- + if m.PrevKv { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if m.Lease != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.Lease)) + i-- + dAtA[i] = 0x18 + } + if len(m.Value) > 0 { + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0x12 + } + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PutResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PutResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PutResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.PrevKv != nil { + { + size, err := m.PrevKv.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMetaStoragepb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMetaStoragepb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *KeyValue) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KeyValue) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KeyValue) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Lease != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.Lease)) + i-- + dAtA[i] = 0x30 + } + if len(m.Value) > 0 { + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0x2a + } + if m.Version != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.Version)) + i-- + dAtA[i] = 0x20 + } + if m.ModRevision != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.ModRevision)) + i-- + dAtA[i] = 0x18 + } + if m.CreateRevision != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.CreateRevision)) + i-- + dAtA[i] = 0x10 + } + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Event) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Event) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.PrevKv != nil { + { + size, err := m.PrevKv.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMetaStoragepb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Kv != nil { + { + size, err := m.Kv.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMetaStoragepb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Type != 0 { + i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.Type)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func encodeVarintMetaStoragepb(dAtA []byte, offset int, v uint64) int { + offset -= sovMetaStoragepb(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Error) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Type != 0 { + n += 1 + sovMetaStoragepb(uint64(m.Type)) + } + l = len(m.Message) + if l > 0 { + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *RequestHeader) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ClusterId != 0 { + n += 1 + sovMetaStoragepb(uint64(m.ClusterId)) + } + l = len(m.Source) + if l > 0 { + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ResponseHeader) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ClusterId != 0 { + n += 1 + sovMetaStoragepb(uint64(m.ClusterId)) + } + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + if m.Revision != 0 { + n += 1 + sovMetaStoragepb(uint64(m.Revision)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *WatchRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + l = len(m.RangeEnd) + if l > 0 { + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + if m.StartRevision != 0 { + n += 1 + sovMetaStoragepb(uint64(m.StartRevision)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *WatchResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + if m.CompactRevision != 0 { + n += 1 + sovMetaStoragepb(uint64(m.CompactRevision)) + } + if len(m.Events) > 0 { + for _, e := range m.Events { + l = e.Size() + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *GetRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + l = len(m.RangeEnd) + if l > 0 { + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + if m.Limit != 0 { + n += 1 + sovMetaStoragepb(uint64(m.Limit)) + } + if m.Revision != 0 { + n += 1 + sovMetaStoragepb(uint64(m.Revision)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *GetResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + if len(m.Kvs) > 0 { + for _, e := range m.Kvs { + l = e.Size() + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + } + if m.More { + n += 2 + } + if m.Count != 0 { + n += 1 + sovMetaStoragepb(uint64(m.Count)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *PutRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + l = len(m.Value) + if l > 0 { + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + if m.Lease != 0 { + n += 1 + sovMetaStoragepb(uint64(m.Lease)) + } + if m.PrevKv { + n += 2 + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *PutResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + if m.PrevKv != nil { + l = m.PrevKv.Size() + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *KeyValue) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + if m.CreateRevision != 0 { + n += 1 + sovMetaStoragepb(uint64(m.CreateRevision)) + } + if m.ModRevision != 0 { + n += 1 + sovMetaStoragepb(uint64(m.ModRevision)) + } + if m.Version != 0 { + n += 1 + sovMetaStoragepb(uint64(m.Version)) + } + l = len(m.Value) + if l > 0 { + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + if m.Lease != 0 { + n += 1 + sovMetaStoragepb(uint64(m.Lease)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Event) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Type != 0 { + n += 1 + sovMetaStoragepb(uint64(m.Type)) + } + if m.Kv != nil { + l = m.Kv.Size() + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + if m.PrevKv != nil { + l = m.PrevKv.Size() + n += 1 + l + sovMetaStoragepb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovMetaStoragepb(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozMetaStoragepb(x uint64) (n int) { + return sovMetaStoragepb(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Error) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Error: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= ErrorType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMetaStoragepb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMetaStoragepb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestHeader) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestHeader: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestHeader: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType) + } + m.ClusterId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ClusterId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Source = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMetaStoragepb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMetaStoragepb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseHeader) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseHeader: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseHeader: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType) + } + m.ClusterId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ClusterId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Error == nil { + m.Error = &Error{} + } + if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) + } + m.Revision = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Revision |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipMetaStoragepb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMetaStoragepb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WatchRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WatchRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WatchRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...) + if m.Key == nil { + m.Key = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RangeEnd", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RangeEnd = append(m.RangeEnd[:0], dAtA[iNdEx:postIndex]...) + if m.RangeEnd == nil { + m.RangeEnd = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartRevision", wireType) + } + m.StartRevision = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.StartRevision |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipMetaStoragepb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMetaStoragepb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WatchResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WatchResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WatchResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &ResponseHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CompactRevision", wireType) + } + m.CompactRevision = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CompactRevision |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Events = append(m.Events, &Event{}) + if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMetaStoragepb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMetaStoragepb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...) + if m.Key == nil { + m.Key = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RangeEnd", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RangeEnd = append(m.RangeEnd[:0], dAtA[iNdEx:postIndex]...) + if m.RangeEnd == nil { + m.RangeEnd = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType) + } + m.Limit = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Limit |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) + } + m.Revision = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Revision |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipMetaStoragepb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMetaStoragepb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &ResponseHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kvs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Kvs = append(m.Kvs, &KeyValue{}) + if err := m.Kvs[len(m.Kvs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field More", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.More = bool(v != 0) + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + } + m.Count = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Count |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipMetaStoragepb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMetaStoragepb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PutRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PutRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PutRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...) + if m.Key == nil { + m.Key = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...) + if m.Value == nil { + m.Value = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lease", wireType) + } + m.Lease = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Lease |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PrevKv", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.PrevKv = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipMetaStoragepb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMetaStoragepb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PutResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PutResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PutResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &ResponseHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PrevKv", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PrevKv == nil { + m.PrevKv = &KeyValue{} + } + if err := m.PrevKv.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMetaStoragepb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMetaStoragepb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KeyValue) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KeyValue: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KeyValue: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...) + if m.Key == nil { + m.Key = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CreateRevision", wireType) + } + m.CreateRevision = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CreateRevision |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ModRevision", wireType) + } + m.ModRevision = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ModRevision |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + m.Version = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Version |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...) + if m.Value == nil { + m.Value = []byte{} + } + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Lease", wireType) + } + m.Lease = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Lease |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipMetaStoragepb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMetaStoragepb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Event) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Event: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= Event_EventType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kv", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Kv == nil { + m.Kv = &KeyValue{} + } + if err := m.Kv.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PrevKv", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PrevKv == nil { + m.PrevKv = &KeyValue{} + } + if err := m.PrevKv.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMetaStoragepb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMetaStoragepb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipMetaStoragepb(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthMetaStoragepb + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupMetaStoragepb + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthMetaStoragepb + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthMetaStoragepb = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowMetaStoragepb = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupMetaStoragepb = fmt.Errorf("proto: unexpected end of group") +) diff --git a/pkg/span/span.pb.go b/pkg/span/span.pb.go deleted file mode 100644 index 0cb5660..0000000 --- a/pkg/span/span.pb.go +++ /dev/null @@ -1,1655 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: span.proto - -package span - -import ( - "fmt" - "io" - "math" - - proto "github.com/golang/protobuf/proto" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package - -type SpanSet struct { - StartTimeNs uint64 `protobuf:"varint,1,opt,name=start_time_ns,json=startTimeNs,proto3" json:"start_time_ns,omitempty"` - CyclesPerSec uint64 `protobuf:"varint,2,opt,name=cycles_per_sec,json=cyclesPerSec,proto3" json:"cycles_per_sec,omitempty"` - Spans []*Span `protobuf:"bytes,3,rep,name=spans" json:"spans,omitempty"` - CreateTimeNs uint64 `protobuf:"varint,4,opt,name=create_time_ns,json=createTimeNs,proto3" json:"create_time_ns,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SpanSet) Reset() { *m = SpanSet{} } -func (m *SpanSet) String() string { return proto.CompactTextString(m) } -func (*SpanSet) ProtoMessage() {} -func (*SpanSet) Descriptor() ([]byte, []int) { - return fileDescriptor_span_65a1ec609e5ab604, []int{0} -} -func (m *SpanSet) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SpanSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_SpanSet.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *SpanSet) XXX_Merge(src proto.Message) { - xxx_messageInfo_SpanSet.Merge(dst, src) -} -func (m *SpanSet) XXX_Size() int { - return m.Size() -} -func (m *SpanSet) XXX_DiscardUnknown() { - xxx_messageInfo_SpanSet.DiscardUnknown(m) -} - -var xxx_messageInfo_SpanSet proto.InternalMessageInfo - -func (m *SpanSet) GetStartTimeNs() uint64 { - if m != nil { - return m.StartTimeNs - } - return 0 -} - -func (m *SpanSet) GetCyclesPerSec() uint64 { - if m != nil { - return m.CyclesPerSec - } - return 0 -} - -func (m *SpanSet) GetSpans() []*Span { - if m != nil { - return m.Spans - } - return nil -} - -func (m *SpanSet) GetCreateTimeNs() uint64 { - if m != nil { - return m.CreateTimeNs - } - return 0 -} - -type Root struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Root) Reset() { *m = Root{} } -func (m *Root) String() string { return proto.CompactTextString(m) } -func (*Root) ProtoMessage() {} -func (*Root) Descriptor() ([]byte, []int) { - return fileDescriptor_span_65a1ec609e5ab604, []int{1} -} -func (m *Root) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Root) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Root.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *Root) XXX_Merge(src proto.Message) { - xxx_messageInfo_Root.Merge(dst, src) -} -func (m *Root) XXX_Size() int { - return m.Size() -} -func (m *Root) XXX_DiscardUnknown() { - xxx_messageInfo_Root.DiscardUnknown(m) -} - -var xxx_messageInfo_Root proto.InternalMessageInfo - -type Parent struct { - Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Parent) Reset() { *m = Parent{} } -func (m *Parent) String() string { return proto.CompactTextString(m) } -func (*Parent) ProtoMessage() {} -func (*Parent) Descriptor() ([]byte, []int) { - return fileDescriptor_span_65a1ec609e5ab604, []int{2} -} -func (m *Parent) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Parent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Parent.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *Parent) XXX_Merge(src proto.Message) { - xxx_messageInfo_Parent.Merge(dst, src) -} -func (m *Parent) XXX_Size() int { - return m.Size() -} -func (m *Parent) XXX_DiscardUnknown() { - xxx_messageInfo_Parent.DiscardUnknown(m) -} - -var xxx_messageInfo_Parent proto.InternalMessageInfo - -func (m *Parent) GetId() uint64 { - if m != nil { - return m.Id - } - return 0 -} - -type Continue struct { - Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Continue) Reset() { *m = Continue{} } -func (m *Continue) String() string { return proto.CompactTextString(m) } -func (*Continue) ProtoMessage() {} -func (*Continue) Descriptor() ([]byte, []int) { - return fileDescriptor_span_65a1ec609e5ab604, []int{3} -} -func (m *Continue) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Continue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Continue.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *Continue) XXX_Merge(src proto.Message) { - xxx_messageInfo_Continue.Merge(dst, src) -} -func (m *Continue) XXX_Size() int { - return m.Size() -} -func (m *Continue) XXX_DiscardUnknown() { - xxx_messageInfo_Continue.DiscardUnknown(m) -} - -var xxx_messageInfo_Continue proto.InternalMessageInfo - -func (m *Continue) GetId() uint64 { - if m != nil { - return m.Id - } - return 0 -} - -type Link struct { - // Types that are valid to be assigned to Link: - // *Link_Root - // *Link_Parent - // *Link_Continue - Link isLink_Link `protobuf_oneof:"link"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Link) Reset() { *m = Link{} } -func (m *Link) String() string { return proto.CompactTextString(m) } -func (*Link) ProtoMessage() {} -func (*Link) Descriptor() ([]byte, []int) { - return fileDescriptor_span_65a1ec609e5ab604, []int{4} -} -func (m *Link) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Link) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Link.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *Link) XXX_Merge(src proto.Message) { - xxx_messageInfo_Link.Merge(dst, src) -} -func (m *Link) XXX_Size() int { - return m.Size() -} -func (m *Link) XXX_DiscardUnknown() { - xxx_messageInfo_Link.DiscardUnknown(m) -} - -var xxx_messageInfo_Link proto.InternalMessageInfo - -type isLink_Link interface { - isLink_Link() - MarshalTo([]byte) (int, error) - Size() int -} - -type Link_Root struct { - Root *Root `protobuf:"bytes,1,opt,name=root,oneof"` -} -type Link_Parent struct { - Parent *Parent `protobuf:"bytes,2,opt,name=parent,oneof"` -} -type Link_Continue struct { - Continue *Continue `protobuf:"bytes,3,opt,name=continue,oneof"` -} - -func (*Link_Root) isLink_Link() {} -func (*Link_Parent) isLink_Link() {} -func (*Link_Continue) isLink_Link() {} - -func (m *Link) GetLink() isLink_Link { - if m != nil { - return m.Link - } - return nil -} - -func (m *Link) GetRoot() *Root { - if x, ok := m.GetLink().(*Link_Root); ok { - return x.Root - } - return nil -} - -func (m *Link) GetParent() *Parent { - if x, ok := m.GetLink().(*Link_Parent); ok { - return x.Parent - } - return nil -} - -func (m *Link) GetContinue() *Continue { - if x, ok := m.GetLink().(*Link_Continue); ok { - return x.Continue - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*Link) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _Link_OneofMarshaler, _Link_OneofUnmarshaler, _Link_OneofSizer, []interface{}{ - (*Link_Root)(nil), - (*Link_Parent)(nil), - (*Link_Continue)(nil), - } -} - -func _Link_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*Link) - // link - switch x := m.Link.(type) { - case *Link_Root: - _ = b.EncodeVarint(1<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Root); err != nil { - return err - } - case *Link_Parent: - _ = b.EncodeVarint(2<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Parent); err != nil { - return err - } - case *Link_Continue: - _ = b.EncodeVarint(3<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Continue); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("Link.Link has unexpected type %T", x) - } - return nil -} - -func _Link_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*Link) - switch tag { - case 1: // link.root - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Root) - err := b.DecodeMessage(msg) - m.Link = &Link_Root{msg} - return true, err - case 2: // link.parent - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Parent) - err := b.DecodeMessage(msg) - m.Link = &Link_Parent{msg} - return true, err - case 3: // link.continue - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Continue) - err := b.DecodeMessage(msg) - m.Link = &Link_Continue{msg} - return true, err - default: - return false, nil - } -} - -func _Link_OneofSizer(msg proto.Message) (n int) { - m := msg.(*Link) - // link - switch x := m.Link.(type) { - case *Link_Root: - s := proto.Size(x.Root) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *Link_Parent: - s := proto.Size(x.Parent) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *Link_Continue: - s := proto.Size(x.Continue) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -type Span struct { - Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Link *Link `protobuf:"bytes,2,opt,name=link" json:"link,omitempty"` - BeginCycles uint64 `protobuf:"varint,3,opt,name=begin_cycles,json=beginCycles,proto3" json:"begin_cycles,omitempty"` - EndCycles uint64 `protobuf:"varint,4,opt,name=end_cycles,json=endCycles,proto3" json:"end_cycles,omitempty"` - Event uint32 `protobuf:"varint,5,opt,name=event,proto3" json:"event,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Span) Reset() { *m = Span{} } -func (m *Span) String() string { return proto.CompactTextString(m) } -func (*Span) ProtoMessage() {} -func (*Span) Descriptor() ([]byte, []int) { - return fileDescriptor_span_65a1ec609e5ab604, []int{5} -} -func (m *Span) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Span) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Span.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalTo(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (dst *Span) XXX_Merge(src proto.Message) { - xxx_messageInfo_Span.Merge(dst, src) -} -func (m *Span) XXX_Size() int { - return m.Size() -} -func (m *Span) XXX_DiscardUnknown() { - xxx_messageInfo_Span.DiscardUnknown(m) -} - -var xxx_messageInfo_Span proto.InternalMessageInfo - -func (m *Span) GetId() uint64 { - if m != nil { - return m.Id - } - return 0 -} - -func (m *Span) GetLink() *Link { - if m != nil { - return m.Link - } - return nil -} - -func (m *Span) GetBeginCycles() uint64 { - if m != nil { - return m.BeginCycles - } - return 0 -} - -func (m *Span) GetEndCycles() uint64 { - if m != nil { - return m.EndCycles - } - return 0 -} - -func (m *Span) GetEvent() uint32 { - if m != nil { - return m.Event - } - return 0 -} - -func init() { - proto.RegisterType((*SpanSet)(nil), "span.SpanSet") - proto.RegisterType((*Root)(nil), "span.Root") - proto.RegisterType((*Parent)(nil), "span.Parent") - proto.RegisterType((*Continue)(nil), "span.Continue") - proto.RegisterType((*Link)(nil), "span.Link") - proto.RegisterType((*Span)(nil), "span.Span") -} -func (m *SpanSet) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SpanSet) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.StartTimeNs != 0 { - dAtA[i] = 0x8 - i++ - i = encodeVarintSpan(dAtA, i, uint64(m.StartTimeNs)) - } - if m.CyclesPerSec != 0 { - dAtA[i] = 0x10 - i++ - i = encodeVarintSpan(dAtA, i, uint64(m.CyclesPerSec)) - } - if len(m.Spans) > 0 { - for _, msg := range m.Spans { - dAtA[i] = 0x1a - i++ - i = encodeVarintSpan(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.CreateTimeNs != 0 { - dAtA[i] = 0x20 - i++ - i = encodeVarintSpan(dAtA, i, uint64(m.CreateTimeNs)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Root) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Root) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Parent) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Parent) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Id != 0 { - dAtA[i] = 0x8 - i++ - i = encodeVarintSpan(dAtA, i, uint64(m.Id)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Continue) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Continue) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Id != 0 { - dAtA[i] = 0x8 - i++ - i = encodeVarintSpan(dAtA, i, uint64(m.Id)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Link) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Link) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Link != nil { - nn1, err := m.Link.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn1 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Link_Root) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Root != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintSpan(dAtA, i, uint64(m.Root.Size())) - n2, err := m.Root.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - return i, nil -} -func (m *Link_Parent) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Parent != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintSpan(dAtA, i, uint64(m.Parent.Size())) - n3, err := m.Parent.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n3 - } - return i, nil -} -func (m *Link_Continue) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Continue != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintSpan(dAtA, i, uint64(m.Continue.Size())) - n4, err := m.Continue.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n4 - } - return i, nil -} -func (m *Span) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Span) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Id != 0 { - dAtA[i] = 0x8 - i++ - i = encodeVarintSpan(dAtA, i, uint64(m.Id)) - } - if m.Link != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintSpan(dAtA, i, uint64(m.Link.Size())) - n5, err := m.Link.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n5 - } - if m.BeginCycles != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintSpan(dAtA, i, uint64(m.BeginCycles)) - } - if m.EndCycles != 0 { - dAtA[i] = 0x20 - i++ - i = encodeVarintSpan(dAtA, i, uint64(m.EndCycles)) - } - if m.Event != 0 { - dAtA[i] = 0x28 - i++ - i = encodeVarintSpan(dAtA, i, uint64(m.Event)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func encodeVarintSpan(dAtA []byte, offset int, v uint64) int { - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return offset + 1 -} -func (m *SpanSet) Size() (n int) { - var l int - _ = l - if m.StartTimeNs != 0 { - n += 1 + sovSpan(uint64(m.StartTimeNs)) - } - if m.CyclesPerSec != 0 { - n += 1 + sovSpan(uint64(m.CyclesPerSec)) - } - if len(m.Spans) > 0 { - for _, e := range m.Spans { - l = e.Size() - n += 1 + l + sovSpan(uint64(l)) - } - } - if m.CreateTimeNs != 0 { - n += 1 + sovSpan(uint64(m.CreateTimeNs)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Root) Size() (n int) { - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Parent) Size() (n int) { - var l int - _ = l - if m.Id != 0 { - n += 1 + sovSpan(uint64(m.Id)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Continue) Size() (n int) { - var l int - _ = l - if m.Id != 0 { - n += 1 + sovSpan(uint64(m.Id)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Link) Size() (n int) { - var l int - _ = l - if m.Link != nil { - n += m.Link.Size() - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Link_Root) Size() (n int) { - var l int - _ = l - if m.Root != nil { - l = m.Root.Size() - n += 1 + l + sovSpan(uint64(l)) - } - return n -} -func (m *Link_Parent) Size() (n int) { - var l int - _ = l - if m.Parent != nil { - l = m.Parent.Size() - n += 1 + l + sovSpan(uint64(l)) - } - return n -} -func (m *Link_Continue) Size() (n int) { - var l int - _ = l - if m.Continue != nil { - l = m.Continue.Size() - n += 1 + l + sovSpan(uint64(l)) - } - return n -} -func (m *Span) Size() (n int) { - var l int - _ = l - if m.Id != 0 { - n += 1 + sovSpan(uint64(m.Id)) - } - if m.Link != nil { - l = m.Link.Size() - n += 1 + l + sovSpan(uint64(l)) - } - if m.BeginCycles != 0 { - n += 1 + sovSpan(uint64(m.BeginCycles)) - } - if m.EndCycles != 0 { - n += 1 + sovSpan(uint64(m.EndCycles)) - } - if m.Event != 0 { - n += 1 + sovSpan(uint64(m.Event)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovSpan(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozSpan(x uint64) (n int) { - return sovSpan(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *SpanSet) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SpanSet: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SpanSet: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTimeNs", wireType) - } - m.StartTimeNs = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.StartTimeNs |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CyclesPerSec", wireType) - } - m.CyclesPerSec = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.CyclesPerSec |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spans", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthSpan - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Spans = append(m.Spans, &Span{}) - if err := m.Spans[len(m.Spans)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CreateTimeNs", wireType) - } - m.CreateTimeNs = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.CreateTimeNs |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipSpan(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthSpan - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Root) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Root: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Root: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipSpan(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthSpan - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Parent) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Parent: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Parent: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - m.Id = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Id |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipSpan(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthSpan - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Continue) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Continue: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Continue: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - m.Id = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Id |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipSpan(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthSpan - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Link) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Link: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Link: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Root", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthSpan - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &Root{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Link = &Link_Root{v} - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Parent", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthSpan - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &Parent{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Link = &Link_Parent{v} - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Continue", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthSpan - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &Continue{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Link = &Link_Continue{v} - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipSpan(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthSpan - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Span) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Span: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Span: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - m.Id = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Id |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Link", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthSpan - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Link == nil { - m.Link = &Link{} - } - if err := m.Link.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BeginCycles", wireType) - } - m.BeginCycles = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.BeginCycles |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EndCycles", wireType) - } - m.EndCycles = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.EndCycles |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Event", wireType) - } - m.Event = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpan - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Event |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipSpan(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthSpan - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipSpan(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowSpan - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowSpan - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowSpan - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthSpan - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowSpan - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipSpan(dAtA[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthSpan = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowSpan = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("span.proto", fileDescriptor_span_65a1ec609e5ab604) } - -var fileDescriptor_span_65a1ec609e5ab604 = []byte{ - // 354 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x92, 0xc1, 0x4a, 0xf3, 0x40, - 0x14, 0x85, 0x33, 0xed, 0x34, 0x7f, 0xff, 0x9b, 0xb6, 0xc8, 0xe0, 0x22, 0x08, 0x86, 0x18, 0x44, - 0xba, 0x90, 0x2e, 0xea, 0x1b, 0xb4, 0x9b, 0x2e, 0x44, 0xca, 0xd4, 0x7d, 0x48, 0x93, 0x8b, 0x0c, - 0x6d, 0x27, 0x21, 0x19, 0x05, 0x5f, 0xc0, 0xa5, 0x6b, 0xc1, 0x17, 0x72, 0xe9, 0x23, 0x48, 0x7d, - 0x11, 0xc9, 0x9d, 0x69, 0x17, 0xba, 0x4b, 0xce, 0x39, 0xdc, 0xef, 0xdc, 0xcb, 0x00, 0x34, 0x55, - 0xa6, 0x27, 0x55, 0x5d, 0x9a, 0x52, 0xf0, 0xf6, 0x3b, 0x79, 0x67, 0xf0, 0x6f, 0x55, 0x65, 0x7a, - 0x85, 0x46, 0x24, 0x30, 0x6c, 0x4c, 0x56, 0x9b, 0xd4, 0xa8, 0x1d, 0xa6, 0xba, 0x09, 0x59, 0xcc, - 0xc6, 0x5c, 0x06, 0x24, 0xde, 0xab, 0x1d, 0xde, 0x35, 0xe2, 0x12, 0x46, 0xf9, 0x73, 0xbe, 0xc5, - 0x26, 0xad, 0xb0, 0x4e, 0x1b, 0xcc, 0xc3, 0x0e, 0x85, 0x06, 0x56, 0x5d, 0x62, 0xbd, 0xc2, 0x5c, - 0xc4, 0xd0, 0x6b, 0xa7, 0x37, 0x61, 0x37, 0xee, 0x8e, 0x83, 0x29, 0x4c, 0x88, 0xdb, 0x72, 0xa4, - 0x35, 0x68, 0x4e, 0x8d, 0x99, 0xc1, 0x23, 0x8c, 0xbb, 0x39, 0xa4, 0x5a, 0x5a, 0xe2, 0x03, 0x97, - 0x65, 0x69, 0x92, 0x10, 0xfc, 0x65, 0x56, 0xa3, 0x36, 0x62, 0x04, 0x1d, 0x55, 0xb8, 0x62, 0x1d, - 0x55, 0x24, 0x67, 0xd0, 0x9f, 0x97, 0xda, 0x28, 0xfd, 0x88, 0x7f, 0xbc, 0x17, 0x06, 0xfc, 0x56, - 0xe9, 0x8d, 0x88, 0x81, 0xd7, 0x65, 0x69, 0xc8, 0x3a, 0xb6, 0x69, 0x07, 0x2f, 0x3c, 0x49, 0x8e, - 0xb8, 0x02, 0xbf, 0x22, 0x00, 0xad, 0x13, 0x4c, 0x07, 0x36, 0x63, 0xa1, 0x0b, 0x4f, 0x3a, 0x57, - 0x5c, 0x43, 0x3f, 0x77, 0xb8, 0xb0, 0x4b, 0xc9, 0x91, 0x4d, 0x1e, 0x4a, 0x2c, 0x3c, 0x79, 0x4c, - 0xcc, 0x7c, 0xe0, 0x5b, 0xa5, 0x37, 0xc9, 0x2b, 0x03, 0xde, 0x2e, 0xff, 0xbb, 0xa1, 0x88, 0x6c, - 0xc0, 0x41, 0x5d, 0xb1, 0xb6, 0xb2, 0x24, 0x5d, 0x5c, 0xc0, 0x60, 0x8d, 0x0f, 0x4a, 0xa7, 0xf6, - 0xba, 0x84, 0xe4, 0x32, 0x20, 0x6d, 0x4e, 0x92, 0x38, 0x07, 0x40, 0x5d, 0x1c, 0x02, 0xf6, 0x88, - 0xff, 0x51, 0x17, 0xce, 0x3e, 0x85, 0x1e, 0x3e, 0xb5, 0x7b, 0xf5, 0x62, 0x36, 0x1e, 0x4a, 0xfb, - 0x33, 0x3b, 0xf9, 0xd8, 0x47, 0xec, 0x73, 0x1f, 0xb1, 0xaf, 0x7d, 0xc4, 0xde, 0xbe, 0x23, 0x6f, - 0xed, 0xd3, 0xa3, 0xb8, 0xf9, 0x09, 0x00, 0x00, 0xff, 0xff, 0xdb, 0x3d, 0xb9, 0x99, 0x22, 0x02, - 0x00, 0x00, -} diff --git a/pkg/tracepb/tracepb.pb.go b/pkg/tracepb/tracepb.pb.go index 55cf091..e5b4919 100644 --- a/pkg/tracepb/tracepb.pb.go +++ b/pkg/tracepb/tracepb.pb.go @@ -68,7 +68,6 @@ var xxx_messageInfo_TraceRecordRequest proto.InternalMessageInfo type TraceRecord struct { // Types that are valid to be assigned to RecordOneof: - // // *TraceRecord_Report // *TraceRecord_NotifyCollect RecordOneof isTraceRecord_RecordOneof `protobuf_oneof:"record_oneof"` diff --git a/proto/meta_storagepb.proto b/proto/meta_storagepb.proto new file mode 100644 index 0000000..6581081 --- /dev/null +++ b/proto/meta_storagepb.proto @@ -0,0 +1,134 @@ +syntax = "proto3"; +package meta_storagepb; + +import "gogoproto/gogo.proto"; +import "rustproto.proto"; + +option (gogoproto.sizer_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (rustproto.lite_runtime_all) = true; + +option java_package = "org.tikv.kvproto"; + +// MetaStorage is the meta storage service. +service MetaStorage { + rpc Watch(WatchRequest) returns (stream WatchResponse) {} + + // Get is the same as etcd Range which might be implemented in a more common way + // so that we can use other storages to replace etcd in the future. + rpc Get(GetRequest) returns (GetResponse) {} + + rpc Put(PutRequest) returns (PutResponse) {} +} + +enum ErrorType { + OK = 0; + UNKNOWN = 1; + // required watch revision is smaller than current compact/min revision. + DATA_COMPACTED = 2; +} + +message Error { + ErrorType type = 1; + string message = 2; +} + +message RequestHeader { + // cluster_id is the ID of the cluster which be sent to. + uint64 cluster_id = 1; + // source is the source of the request. + string source = 2; +} + +message ResponseHeader { + // cluster_id is the ID of the cluster which sent the response. + uint64 cluster_id = 1; + Error error = 2; + int64 revision = 3; +} + +// copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto +message WatchRequest { + bytes key = 1; + bytes range_end = 2; + int64 start_revision = 3; +} + +// copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto +message WatchResponse { + ResponseHeader header = 1; + int64 compact_revision = 2; + repeated Event events = 3; +} + +// copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto +message GetRequest { + bytes key = 1; + bytes range_end = 2; + int64 limit = 3; + int64 revision = 4; +} + +// copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto +message GetResponse { + ResponseHeader header = 1; + repeated KeyValue kvs = 2; + bool more = 3; + int64 count = 4; +} + +// copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto +message PutRequest { + bytes key = 1; + bytes value = 2; + int64 lease = 3; + bool prev_kv = 4; +} + +// copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto +message PutResponse { + ResponseHeader header = 1; + KeyValue prev_kv = 2; +} + +// copied from etcd https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/mvccpb/kv.proto +message KeyValue { + // key is the key in bytes. An empty key is not allowed. + bytes key = 1; + // create_revision is the revision of last creation on this key. + int64 create_revision = 2; + // mod_revision is the revision of last modification on this key. + int64 mod_revision = 3; + // version is the version of the key. A deletion resets + // the version to zero and any modification of the key + // increases its version. + int64 version = 4; + // value is the value held by the key, in bytes. + bytes value = 5; + // lease is the ID of the lease that attached to key. + // When the attached lease expires, the key will be deleted. + // If lease is 0, then no lease is attached to the key. + int64 lease = 6; +} + +// copied from etcd https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/mvccpb/kv.proto +message Event { + enum EventType { + PUT = 0; + DELETE = 1; + } + // type is the kind of event. If type is a PUT, it indicates + // new data has been stored to the key. If type is a DELETE, + // it indicates the key was deleted. + EventType type = 1; + // kv holds the KeyValue for the event. + // A PUT event contains current kv pair. + // A PUT event with kv.Version=1 indicates the creation of a key. + // A DELETE/EXPIRE event contains the deleted key with + // its modification revision set to the revision of deletion. + KeyValue kv = 2; + + // prev_kv holds the key-value pair before the event happens. + KeyValue prev_kv = 3; +} diff --git a/scripts/proto.lock b/scripts/proto.lock index c37f5e5..59e2b31 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -8730,6 +8730,11 @@ "id": 27, "name": "busy_threshold_ms", "type": "uint32" + }, + { + "id": 32, + "name": "keyspace_id", + "type": "uint32" } ], "reserved_ids": [ @@ -10159,6 +10164,336 @@ ] } }, + { + "protopath": "meta_storagepb.proto", + "def": { + "enums": [ + { + "name": "ErrorType", + "enum_fields": [ + { + "name": "OK" + }, + { + "name": "UNKNOWN", + "integer": 1 + }, + { + "name": "DATA_COMPACTED", + "integer": 2 + } + ] + }, + { + "name": "Event.EventType", + "enum_fields": [ + { + "name": "PUT" + }, + { + "name": "DELETE", + "integer": 1 + } + ] + } + ], + "messages": [ + { + "name": "Error", + "fields": [ + { + "id": 1, + "name": "type", + "type": "ErrorType" + }, + { + "id": 2, + "name": "message", + "type": "string" + } + ] + }, + { + "name": "RequestHeader", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + }, + { + "id": 2, + "name": "source", + "type": "string" + } + ] + }, + { + "name": "ResponseHeader", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + }, + { + "id": 2, + "name": "error", + "type": "Error" + }, + { + "id": 3, + "name": "revision", + "type": "int64" + } + ] + }, + { + "name": "WatchRequest", + "fields": [ + { + "id": 1, + "name": "key", + "type": "bytes" + }, + { + "id": 2, + "name": "range_end", + "type": "bytes" + }, + { + "id": 3, + "name": "start_revision", + "type": "int64" + } + ] + }, + { + "name": "WatchResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "compact_revision", + "type": "int64" + }, + { + "id": 3, + "name": "events", + "type": "Event", + "is_repeated": true + } + ] + }, + { + "name": "GetRequest", + "fields": [ + { + "id": 1, + "name": "key", + "type": "bytes" + }, + { + "id": 2, + "name": "range_end", + "type": "bytes" + }, + { + "id": 3, + "name": "limit", + "type": "int64" + }, + { + "id": 4, + "name": "revision", + "type": "int64" + } + ] + }, + { + "name": "GetResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "kvs", + "type": "KeyValue", + "is_repeated": true + }, + { + "id": 3, + "name": "more", + "type": "bool" + }, + { + "id": 4, + "name": "count", + "type": "int64" + } + ] + }, + { + "name": "PutRequest", + "fields": [ + { + "id": 1, + "name": "key", + "type": "bytes" + }, + { + "id": 2, + "name": "value", + "type": "bytes" + }, + { + "id": 3, + "name": "lease", + "type": "int64" + }, + { + "id": 4, + "name": "prev_kv", + "type": "bool" + } + ] + }, + { + "name": "PutResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "prev_kv", + "type": "KeyValue" + } + ] + }, + { + "name": "KeyValue", + "fields": [ + { + "id": 1, + "name": "key", + "type": "bytes" + }, + { + "id": 2, + "name": "create_revision", + "type": "int64" + }, + { + "id": 3, + "name": "mod_revision", + "type": "int64" + }, + { + "id": 4, + "name": "version", + "type": "int64" + }, + { + "id": 5, + "name": "value", + "type": "bytes" + }, + { + "id": 6, + "name": "lease", + "type": "int64" + } + ] + }, + { + "name": "Event", + "fields": [ + { + "id": 1, + "name": "type", + "type": "EventType" + }, + { + "id": 2, + "name": "kv", + "type": "KeyValue" + }, + { + "id": 3, + "name": "prev_kv", + "type": "KeyValue" + } + ] + } + ], + "services": [ + { + "name": "MetaStorage", + "rpcs": [ + { + "name": "Watch", + "in_type": "WatchRequest", + "out_type": "WatchResponse", + "out_streamed": true + }, + { + "name": "Get", + "in_type": "GetRequest", + "out_type": "GetResponse" + }, + { + "name": "Put", + "in_type": "PutRequest", + "out_type": "PutResponse" + } + ] + } + ], + "imports": [ + { + "path": "gogoproto/gogo.proto" + }, + { + "path": "rustproto.proto" + } + ], + "package": { + "name": "meta_storagepb" + }, + "options": [ + { + "name": "(gogoproto.sizer_all)", + "value": "true" + }, + { + "name": "(gogoproto.marshaler_all)", + "value": "true" + }, + { + "name": "(gogoproto.unmarshaler_all)", + "value": "true" + }, + { + "name": "(rustproto.lite_runtime_all)", + "value": "true" + }, + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, { "protopath": "metapb.proto", "def": { @@ -10570,6 +10905,11 @@ "id": 9, "name": "mpp_version", "type": "int64" + }, + { + "id": 10, + "name": "keyspace_id", + "type": "uint32" } ] }, -- Gitee From cde823253e7d843eacdf383b79c17d74ce36f834 Mon Sep 17 00:00:00 2001 From: Ryan Leung Date: Mon, 27 Feb 2023 19:50:20 +0800 Subject: [PATCH 07/44] add prevkv to watch request (#1063) Signed-off-by: Ryan Leung --- pkg/disaggregated/disaggregated.pb.go | 1 - pkg/meta_storagepb/meta_storagepb.pb.go | 137 +++++++++++++++--------- pkg/tikvpb/tikvpb.pb.go | 10 +- proto/meta_storagepb.proto | 1 + scripts/proto.lock | 120 +++++++++++++++++++++ 5 files changed, 216 insertions(+), 53 deletions(-) diff --git a/pkg/disaggregated/disaggregated.pb.go b/pkg/disaggregated/disaggregated.pb.go index 42217a2..5ec49b0 100644 --- a/pkg/disaggregated/disaggregated.pb.go +++ b/pkg/disaggregated/disaggregated.pb.go @@ -25,7 +25,6 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package type S3LockResult struct { // Types that are valid to be assigned to Error: - // // *S3LockResult_Success // *S3LockResult_NotOwner // *S3LockResult_Conflict diff --git a/pkg/meta_storagepb/meta_storagepb.pb.go b/pkg/meta_storagepb/meta_storagepb.pb.go index e3c6702..1190ac5 100644 --- a/pkg/meta_storagepb/meta_storagepb.pb.go +++ b/pkg/meta_storagepb/meta_storagepb.pb.go @@ -263,6 +263,7 @@ type WatchRequest struct { Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` RangeEnd []byte `protobuf:"bytes,2,opt,name=range_end,json=rangeEnd,proto3" json:"range_end,omitempty"` StartRevision int64 `protobuf:"varint,3,opt,name=start_revision,json=startRevision,proto3" json:"start_revision,omitempty"` + PrevKv bool `protobuf:"varint,4,opt,name=prev_kv,json=prevKv,proto3" json:"prev_kv,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -322,6 +323,13 @@ func (m *WatchRequest) GetStartRevision() int64 { return 0 } +func (m *WatchRequest) GetPrevKv() bool { + if m != nil { + return m.PrevKv + } + return false +} + // copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto type WatchResponse struct { Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` @@ -848,54 +856,54 @@ func init() { func init() { proto.RegisterFile("meta_storagepb.proto", fileDescriptor_5a2dc828c1dd8152) } var fileDescriptor_5a2dc828c1dd8152 = []byte{ - // 749 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcd, 0x6e, 0xda, 0x58, - 0x14, 0xe6, 0x62, 0x30, 0x70, 0x20, 0xc4, 0xba, 0x62, 0x66, 0x3c, 0x64, 0xc2, 0x30, 0x96, 0x66, - 0x86, 0xc9, 0x28, 0xcc, 0x94, 0x54, 0x5d, 0x37, 0x4d, 0x68, 0x52, 0xd1, 0x24, 0xc8, 0x25, 0xcd, - 0x12, 0x39, 0xf6, 0x11, 0x41, 0xc4, 0x98, 0x5e, 0x5f, 0x5b, 0xe1, 0x4d, 0x2a, 0x75, 0xd5, 0x5d, - 0x57, 0x7d, 0x81, 0xbe, 0x40, 0x97, 0x5d, 0x56, 0xea, 0xa6, 0x4a, 0x5f, 0xa4, 0xf2, 0xb5, 0xcd, - 0x8f, 0x4b, 0xaa, 0xa8, 0xd9, 0xc0, 0x3d, 0xe7, 0x7e, 0x7c, 0xdf, 0x39, 0x9f, 0xce, 0x3d, 0x40, - 0xc5, 0x46, 0x6e, 0xf4, 0x5d, 0xee, 0x30, 0x63, 0x80, 0x93, 0xf3, 0xe6, 0x84, 0x39, 0xdc, 0xa1, - 0xe5, 0xe5, 0x6c, 0xb5, 0x32, 0x70, 0x06, 0x8e, 0xb8, 0xfa, 0x2f, 0x38, 0x85, 0xa8, 0xea, 0x3a, - 0xf3, 0x5c, 0x2e, 0x8e, 0x61, 0x42, 0xeb, 0x42, 0xb6, 0xcd, 0x98, 0xc3, 0xe8, 0x36, 0x64, 0xf8, - 0x74, 0x82, 0x2a, 0xa9, 0x93, 0x46, 0xb9, 0xf5, 0x6b, 0x33, 0x21, 0x22, 0x40, 0xbd, 0xe9, 0x04, - 0x75, 0x01, 0xa3, 0x2a, 0xe4, 0x6c, 0x74, 0x5d, 0x63, 0x80, 0x6a, 0xba, 0x4e, 0x1a, 0x05, 0x3d, - 0x0e, 0xb5, 0xc7, 0xb0, 0xa6, 0xe3, 0x0b, 0x0f, 0x5d, 0x7e, 0x88, 0x86, 0x85, 0x8c, 0x6e, 0x02, - 0x98, 0x97, 0x9e, 0xcb, 0x91, 0xf5, 0x87, 0x96, 0xe0, 0xcf, 0xe8, 0x85, 0x28, 0xf3, 0xc4, 0xa2, - 0x3f, 0x83, 0xec, 0x3a, 0x1e, 0x33, 0x63, 0xa2, 0x28, 0xd2, 0xae, 0xa0, 0xac, 0xa3, 0x3b, 0x71, - 0xc6, 0x2e, 0xde, 0x8e, 0xe8, 0x5f, 0xc8, 0x62, 0x50, 0xa5, 0xe0, 0x29, 0xb6, 0x7e, 0x5a, 0xd9, - 0x82, 0x1e, 0x62, 0x68, 0x15, 0xf2, 0x0c, 0xfd, 0xa1, 0x3b, 0x74, 0xc6, 0xaa, 0x54, 0x27, 0x0d, - 0x49, 0x9f, 0xc5, 0x9a, 0x05, 0xa5, 0x33, 0x83, 0x9b, 0x17, 0x51, 0x1b, 0x54, 0x01, 0x69, 0x84, - 0x53, 0x21, 0x58, 0xd2, 0x83, 0x23, 0xdd, 0x80, 0x02, 0x33, 0xc6, 0x03, 0xec, 0xe3, 0xd8, 0x12, - 0x72, 0x25, 0x3d, 0x2f, 0x12, 0xed, 0xb1, 0x45, 0xff, 0x84, 0xb2, 0xcb, 0x0d, 0xc6, 0xfb, 0x09, - 0x81, 0x35, 0x91, 0xd5, 0x63, 0x95, 0xd7, 0x04, 0xd6, 0x22, 0x99, 0xb0, 0x4b, 0xfa, 0x00, 0xe4, - 0x0b, 0xd1, 0xa9, 0x90, 0x2a, 0xb6, 0x6a, 0xc9, 0x0e, 0x96, 0xfd, 0xd0, 0x23, 0x34, 0xfd, 0x07, - 0x14, 0xd3, 0xb1, 0x27, 0x86, 0xb9, 0x20, 0x99, 0x16, 0x92, 0xeb, 0x51, 0x3e, 0x16, 0xa5, 0xdb, - 0x20, 0xa3, 0x8f, 0x63, 0xee, 0xaa, 0x52, 0x5d, 0x5a, 0x69, 0x52, 0x70, 0xab, 0x47, 0x20, 0xcd, - 0x06, 0x38, 0x40, 0xfe, 0x83, 0x3e, 0x54, 0x20, 0x7b, 0x39, 0xb4, 0x87, 0x3c, 0x6a, 0x3f, 0x0c, - 0x96, 0x8c, 0xcf, 0x24, 0x8c, 0x7f, 0x45, 0xa0, 0x28, 0xf4, 0xee, 0x68, 0xc8, 0x16, 0x48, 0x23, - 0xdf, 0x55, 0xd3, 0xa2, 0x45, 0x35, 0xf9, 0xa3, 0x0e, 0x4e, 0x9f, 0x1b, 0x97, 0x1e, 0xea, 0x01, - 0x88, 0x52, 0xc8, 0xd8, 0x0e, 0x43, 0x51, 0x64, 0x5e, 0x17, 0xe7, 0xa0, 0x72, 0xd3, 0xf1, 0xc6, - 0x3c, 0x2a, 0x30, 0x0c, 0x34, 0x13, 0xa0, 0xeb, 0x7d, 0xc7, 0x8c, 0x0a, 0x64, 0xfd, 0x80, 0x37, - 0x32, 0x22, 0x0c, 0x84, 0x0b, 0x68, 0xb8, 0x38, 0x73, 0x21, 0x08, 0xe8, 0x2f, 0x90, 0x9b, 0x30, - 0xf4, 0xfb, 0x23, 0x5f, 0x68, 0xe4, 0x75, 0x39, 0x08, 0x3b, 0xbe, 0x76, 0x05, 0x45, 0x21, 0x72, - 0x47, 0x07, 0xee, 0xcd, 0xf9, 0xc3, 0xd7, 0x70, 0xb3, 0x0b, 0xb1, 0xf2, 0x5b, 0x02, 0xf9, 0x38, - 0xb9, 0xa2, 0xbb, 0xbf, 0x61, 0xdd, 0x64, 0x68, 0x70, 0x4c, 0xce, 0x58, 0x39, 0x4c, 0xcf, 0x46, - 0xec, 0x0f, 0x28, 0xd9, 0x8e, 0x95, 0x1c, 0xfe, 0xa2, 0xed, 0x58, 0x33, 0x88, 0x0a, 0x39, 0x1f, - 0xd9, 0xc2, 0x08, 0xc4, 0xe1, 0xdc, 0xc3, 0xec, 0x4a, 0x0f, 0xe5, 0x05, 0x0f, 0xb5, 0x77, 0x04, - 0xb2, 0x62, 0x5c, 0xe9, 0xce, 0xd2, 0xee, 0xfa, 0x7d, 0xe5, 0x4c, 0x87, 0x9f, 0x0b, 0x1b, 0xac, - 0x01, 0xe9, 0x5b, 0xb8, 0x93, 0x1e, 0xf9, 0x8b, 0x66, 0x4a, 0xb7, 0x34, 0xb3, 0x0e, 0x85, 0x99, - 0x1e, 0xcd, 0x81, 0xd4, 0x3d, 0xed, 0x29, 0x29, 0x0a, 0x20, 0xef, 0xb7, 0x9f, 0xb6, 0x7b, 0x6d, - 0x85, 0x6c, 0xdd, 0x87, 0xc2, 0x6c, 0xa7, 0x52, 0x19, 0xd2, 0x27, 0x1d, 0x25, 0x45, 0x8b, 0x90, - 0x3b, 0x3d, 0xee, 0x1c, 0x9f, 0x9c, 0x1d, 0x2b, 0x84, 0x52, 0x28, 0xef, 0xef, 0xf6, 0x76, 0xfb, - 0x7b, 0x27, 0x47, 0xdd, 0xdd, 0xbd, 0x5e, 0x7b, 0x5f, 0x49, 0xb7, 0x3e, 0x11, 0x28, 0x1e, 0x21, - 0x37, 0x9e, 0x85, 0xd2, 0xf4, 0x10, 0xb2, 0x62, 0x87, 0xd0, 0xdf, 0x92, 0x25, 0x2d, 0x6e, 0xb0, - 0xea, 0xe6, 0x0d, 0xb7, 0xe1, 0xec, 0x68, 0xa9, 0xff, 0x09, 0x7d, 0x08, 0xd2, 0x01, 0x72, 0x5a, - 0x4d, 0x22, 0xe7, 0xef, 0xbf, 0xba, 0xb1, 0xf2, 0x2e, 0xe6, 0x08, 0x18, 0xba, 0xde, 0x0a, 0x86, - 0xf9, 0xa3, 0xf9, 0x96, 0x61, 0x61, 0xd6, 0xb5, 0xd4, 0xa3, 0xbf, 0x3e, 0xbe, 0xc9, 0x93, 0xf7, - 0xd7, 0x35, 0xf2, 0xe1, 0xba, 0x46, 0x3e, 0x5f, 0xd7, 0xc8, 0xcb, 0x2f, 0xb5, 0x14, 0x28, 0x0e, - 0x1b, 0x34, 0xf9, 0x70, 0xe4, 0x37, 0x47, 0xbe, 0xf8, 0xd3, 0x3a, 0x97, 0xc5, 0xd7, 0xce, 0xd7, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x91, 0x77, 0x3d, 0x2a, 0x0a, 0x07, 0x00, 0x00, + // 752 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0x4f, 0x6f, 0x12, 0x41, + 0x14, 0x67, 0x58, 0x58, 0xe0, 0x41, 0xe9, 0x66, 0x82, 0xba, 0x52, 0x8b, 0xb8, 0x89, 0x8a, 0x35, + 0x45, 0xa5, 0xc6, 0xb3, 0xb5, 0xc5, 0xd6, 0x60, 0x5b, 0xb2, 0x52, 0x7b, 0x24, 0xdb, 0xe5, 0x85, + 0x12, 0xba, 0x2c, 0xce, 0xce, 0x6e, 0xca, 0xc1, 0xef, 0x61, 0xe2, 0xc9, 0x9b, 0x27, 0xbf, 0x80, + 0x5f, 0xc0, 0xa3, 0x47, 0x13, 0x2f, 0xa6, 0x7e, 0x11, 0xb3, 0xb3, 0xcb, 0xbf, 0x95, 0x9a, 0xc6, + 0x5e, 0x60, 0xde, 0x9b, 0xc7, 0xef, 0xf7, 0x7b, 0xbf, 0x79, 0x33, 0x40, 0xc1, 0x42, 0x6e, 0xb4, + 0x1d, 0x6e, 0x33, 0xa3, 0x8b, 0xc3, 0xe3, 0xea, 0x90, 0xd9, 0xdc, 0xa6, 0xf9, 0xf9, 0x6c, 0xb1, + 0xd0, 0xb5, 0xbb, 0xb6, 0xd8, 0x7a, 0xe4, 0xaf, 0x82, 0xaa, 0xe2, 0x32, 0x73, 0x1d, 0x2e, 0x96, + 0x41, 0x42, 0x6b, 0x42, 0xb2, 0xce, 0x98, 0xcd, 0xe8, 0x3a, 0x24, 0xf8, 0x68, 0x88, 0x2a, 0x29, + 0x93, 0x4a, 0xbe, 0x76, 0xb3, 0x1a, 0x21, 0x11, 0x45, 0xad, 0xd1, 0x10, 0x75, 0x51, 0x46, 0x55, + 0x48, 0x59, 0xe8, 0x38, 0x46, 0x17, 0xd5, 0x78, 0x99, 0x54, 0x32, 0xfa, 0x38, 0xd4, 0x5e, 0xc2, + 0x92, 0x8e, 0xef, 0x5c, 0x74, 0xf8, 0x2e, 0x1a, 0x1d, 0x64, 0x74, 0x15, 0xc0, 0x3c, 0x75, 0x1d, + 0x8e, 0xac, 0xdd, 0xeb, 0x08, 0xfc, 0x84, 0x9e, 0x09, 0x33, 0xaf, 0x3a, 0xf4, 0x3a, 0xc8, 0x8e, + 0xed, 0x32, 0x73, 0x0c, 0x14, 0x46, 0xda, 0x19, 0xe4, 0x75, 0x74, 0x86, 0xf6, 0xc0, 0xc1, 0xcb, + 0x01, 0x3d, 0x84, 0x24, 0xfa, 0x2a, 0x05, 0x4e, 0xb6, 0x76, 0x6d, 0x61, 0x0b, 0x7a, 0x50, 0x43, + 0x8b, 0x90, 0x66, 0xe8, 0xf5, 0x9c, 0x9e, 0x3d, 0x50, 0xa5, 0x32, 0xa9, 0x48, 0xfa, 0x24, 0xd6, + 0xde, 0x43, 0xee, 0xc8, 0xe0, 0xe6, 0x49, 0xd8, 0x06, 0x55, 0x40, 0xea, 0xe3, 0x48, 0x10, 0xe6, + 0x74, 0x7f, 0x49, 0x57, 0x20, 0xc3, 0x8c, 0x41, 0x17, 0xdb, 0x38, 0xe8, 0x08, 0xba, 0x9c, 0x9e, + 0x16, 0x89, 0xfa, 0xa0, 0x43, 0xef, 0x42, 0xde, 0xe1, 0x06, 0xe3, 0xed, 0x08, 0xc1, 0x92, 0xc8, + 0xea, 0x61, 0x92, 0xde, 0x80, 0xd4, 0x90, 0xa1, 0xd7, 0xee, 0x7b, 0x6a, 0xa2, 0x4c, 0x2a, 0x69, + 0x5d, 0xf6, 0xc3, 0x86, 0xa7, 0x7d, 0x22, 0xb0, 0x14, 0xf2, 0x07, 0xed, 0xd3, 0x67, 0x20, 0x9f, + 0x08, 0x0b, 0x84, 0x86, 0x6c, 0xad, 0x14, 0x6d, 0x6d, 0xde, 0x28, 0x3d, 0xac, 0xa6, 0x0f, 0x40, + 0x31, 0x6d, 0x6b, 0x68, 0x98, 0x33, 0x5a, 0xe2, 0x42, 0xcb, 0x72, 0x98, 0x9f, 0xa8, 0x59, 0x07, + 0x19, 0x3d, 0x1c, 0x70, 0x47, 0x95, 0xca, 0xd2, 0x42, 0xf7, 0xfc, 0x5d, 0x3d, 0x2c, 0xd2, 0x2c, + 0x80, 0x1d, 0xe4, 0xff, 0x69, 0x50, 0x01, 0x92, 0xa7, 0x3d, 0xab, 0xc7, 0x43, 0x5f, 0x82, 0x60, + 0xee, 0x44, 0x12, 0x91, 0x13, 0xf9, 0x48, 0x20, 0x2b, 0xf8, 0xae, 0x68, 0xc8, 0x1a, 0x48, 0x7d, + 0xcf, 0x51, 0xe3, 0xa2, 0x45, 0x35, 0xfa, 0xa3, 0x06, 0x8e, 0xde, 0x1a, 0xa7, 0x2e, 0xea, 0x7e, + 0x11, 0xa5, 0x90, 0xb0, 0x6c, 0x86, 0x42, 0x64, 0x5a, 0x17, 0x6b, 0x5f, 0xb9, 0x69, 0xbb, 0x03, + 0x1e, 0x0a, 0x0c, 0x02, 0xcd, 0x04, 0x68, 0xba, 0xff, 0x30, 0xa3, 0x00, 0x49, 0xcf, 0xc7, 0x0d, + 0x8d, 0x08, 0x02, 0xe1, 0x02, 0x1a, 0x0e, 0x4e, 0x5c, 0xf0, 0x83, 0x8b, 0xa7, 0xe2, 0x0c, 0xb2, + 0x82, 0xe4, 0x8a, 0x0e, 0x3c, 0x99, 0xe2, 0x07, 0xd7, 0xe4, 0x62, 0x17, 0xc6, 0xcc, 0x5f, 0x08, + 0xa4, 0xc7, 0xc9, 0x05, 0xdd, 0xdd, 0x87, 0x65, 0x93, 0xa1, 0xc1, 0x31, 0x3a, 0x63, 0xf9, 0x20, + 0x3d, 0x19, 0xb1, 0x3b, 0x90, 0xb3, 0xec, 0x4e, 0xf4, 0x56, 0x64, 0x2d, 0xbb, 0x33, 0x29, 0x51, + 0x21, 0xe5, 0x21, 0x9b, 0x19, 0x81, 0x71, 0x38, 0xf5, 0x30, 0xb9, 0xd0, 0x43, 0x79, 0xc6, 0x43, + 0xed, 0x2b, 0x81, 0xa4, 0x18, 0x57, 0xba, 0x31, 0xf7, 0xa8, 0xdd, 0x5e, 0x38, 0xd3, 0xc1, 0xe7, + 0xcc, 0xd3, 0x56, 0x81, 0xf8, 0x25, 0xdc, 0x89, 0xf7, 0xbd, 0x59, 0x33, 0xa5, 0x4b, 0x9a, 0x59, + 0x86, 0xcc, 0x84, 0x8f, 0xa6, 0x40, 0x6a, 0x1e, 0xb6, 0x94, 0x18, 0x05, 0x90, 0xb7, 0xeb, 0xaf, + 0xeb, 0xad, 0xba, 0x42, 0xd6, 0x9e, 0x42, 0x66, 0xf2, 0xd8, 0x52, 0x19, 0xe2, 0x07, 0x0d, 0x25, + 0x46, 0xb3, 0x90, 0x3a, 0xdc, 0x6f, 0xec, 0x1f, 0x1c, 0xed, 0x2b, 0x84, 0x52, 0xc8, 0x6f, 0x6f, + 0xb6, 0x36, 0xdb, 0x5b, 0x07, 0x7b, 0xcd, 0xcd, 0xad, 0x56, 0x7d, 0x5b, 0x89, 0xd7, 0x7e, 0x12, + 0xc8, 0xee, 0x21, 0x37, 0xde, 0x04, 0xd4, 0x74, 0x17, 0x92, 0xe2, 0x0d, 0xa1, 0xb7, 0xa2, 0x92, + 0x66, 0x9f, 0xb6, 0xe2, 0xea, 0x05, 0xbb, 0xc1, 0xec, 0x68, 0xb1, 0xc7, 0x84, 0x3e, 0x07, 0x69, + 0x07, 0x39, 0x2d, 0x46, 0x2b, 0xa7, 0xf7, 0xbf, 0xb8, 0xb2, 0x70, 0x6f, 0x8c, 0xe1, 0x23, 0x34, + 0xdd, 0x05, 0x08, 0xd3, 0x4b, 0xf3, 0x37, 0xc2, 0xcc, 0xac, 0x6b, 0xb1, 0x17, 0xf7, 0x7e, 0x7c, + 0x4e, 0x93, 0x6f, 0xe7, 0x25, 0xf2, 0xfd, 0xbc, 0x44, 0x7e, 0x9d, 0x97, 0xc8, 0x87, 0xdf, 0xa5, + 0x18, 0x28, 0x36, 0xeb, 0x56, 0x79, 0xaf, 0xef, 0x55, 0xfb, 0x9e, 0xf8, 0x37, 0x3b, 0x96, 0xc5, + 0xd7, 0xc6, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xf2, 0x8e, 0x6c, 0x23, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1233,6 +1241,16 @@ func (m *WatchRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.PrevKv { + i-- + if m.PrevKv { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } if m.StartRevision != 0 { i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.StartRevision)) i-- @@ -1744,6 +1762,9 @@ func (m *WatchRequest) Size() (n int) { if m.StartRevision != 0 { n += 1 + sovMetaStoragepb(uint64(m.StartRevision)) } + if m.PrevKv { + n += 2 + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -2381,6 +2402,26 @@ func (m *WatchRequest) Unmarshal(dAtA []byte) error { break } } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PrevKv", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.PrevKv = bool(v != 0) default: iNdEx = preIndex skippy, err := skipMetaStoragepb(dAtA[iNdEx:]) diff --git a/pkg/tikvpb/tikvpb.pb.go b/pkg/tikvpb/tikvpb.pb.go index fc9b192..105c21b 100644 --- a/pkg/tikvpb/tikvpb.pb.go +++ b/pkg/tikvpb/tikvpb.pb.go @@ -1496,9 +1496,10 @@ type TikvClient interface { Compact(ctx context.Context, in *kvrpcpb.CompactRequest, opts ...grpc.CallOption) (*kvrpcpb.CompactResponse, error) /// Get the information about history lock waiting from TiKV. GetLockWaitHistory(ctx context.Context, in *kvrpcpb.GetLockWaitHistoryRequest, opts ...grpc.CallOption) (*kvrpcpb.GetLockWaitHistoryResponse, error) - /// Try to add a lock to the data file. + // These are for TiFlash disaggregated architecture + /// Try to lock a S3 object, atomically TryAddLock(ctx context.Context, in *disaggregated.TryAddLockRequest, opts ...grpc.CallOption) (*disaggregated.TryAddLockResponse, error) - /// Try to delete a data file. + /// Try to delete a S3 object, atomically TryMarkDelete(ctx context.Context, in *disaggregated.TryMarkDeleteRequest, opts ...grpc.CallOption) (*disaggregated.TryMarkDeleteResponse, error) } @@ -2292,9 +2293,10 @@ type TikvServer interface { Compact(context.Context, *kvrpcpb.CompactRequest) (*kvrpcpb.CompactResponse, error) /// Get the information about history lock waiting from TiKV. GetLockWaitHistory(context.Context, *kvrpcpb.GetLockWaitHistoryRequest) (*kvrpcpb.GetLockWaitHistoryResponse, error) - /// Try to add a lock to the data file. + // These are for TiFlash disaggregated architecture + /// Try to lock a S3 object, atomically TryAddLock(context.Context, *disaggregated.TryAddLockRequest) (*disaggregated.TryAddLockResponse, error) - /// Try to delete a data file. + /// Try to delete a S3 object, atomically TryMarkDelete(context.Context, *disaggregated.TryMarkDeleteRequest) (*disaggregated.TryMarkDeleteResponse, error) } diff --git a/proto/meta_storagepb.proto b/proto/meta_storagepb.proto index 6581081..c56bf5e 100644 --- a/proto/meta_storagepb.proto +++ b/proto/meta_storagepb.proto @@ -53,6 +53,7 @@ message WatchRequest { bytes key = 1; bytes range_end = 2; int64 start_revision = 3; + bool prev_kv = 4; } // copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto diff --git a/scripts/proto.lock b/scripts/proto.lock index 59e2b31..10cc769 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -3770,6 +3770,108 @@ ] } }, + { + "protopath": "disaggregated.proto", + "def": { + "messages": [ + { + "name": "S3LockResult", + "fields": [ + { + "id": 1, + "name": "success", + "type": "Success" + }, + { + "id": 2, + "name": "not_owner", + "type": "NotOwner" + }, + { + "id": 3, + "name": "conflict", + "type": "Conflict" + } + ] + }, + { + "name": "Success" + }, + { + "name": "NotOwner" + }, + { + "name": "Conflict", + "fields": [ + { + "id": 1, + "name": "reason", + "type": "string" + } + ] + }, + { + "name": "TryAddLockRequest", + "fields": [ + { + "id": 1, + "name": "data_file_key", + "type": "string" + }, + { + "id": 3, + "name": "lock_store_id", + "type": "uint64" + }, + { + "id": 4, + "name": "lock_seq", + "type": "uint64" + } + ] + }, + { + "name": "TryAddLockResponse", + "fields": [ + { + "id": 1, + "name": "result", + "type": "S3LockResult" + } + ] + }, + { + "name": "TryMarkDeleteRequest", + "fields": [ + { + "id": 1, + "name": "data_file_key", + "type": "string" + } + ] + }, + { + "name": "TryMarkDeleteResponse", + "fields": [ + { + "id": 1, + "name": "result", + "type": "S3LockResult" + } + ] + } + ], + "package": { + "name": "disaggregated" + }, + "options": [ + { + "name": "java_package", + "value": "org.tikv.kvproto" + } + ] + } + }, { "protopath": "disk_usage.proto", "def": { @@ -10265,6 +10367,11 @@ "id": 3, "name": "start_revision", "type": "int64" + }, + { + "id": 4, + "name": "prev_kv", + "type": "bool" } ] }, @@ -17242,6 +17349,16 @@ "name": "GetLockWaitHistory", "in_type": "kvrpcpb.GetLockWaitHistoryRequest", "out_type": "kvrpcpb.GetLockWaitHistoryResponse" + }, + { + "name": "tryAddLock", + "in_type": "disaggregated.TryAddLockRequest", + "out_type": "disaggregated.TryAddLockResponse" + }, + { + "name": "tryMarkDelete", + "in_type": "disaggregated.TryMarkDeleteRequest", + "out_type": "disaggregated.TryMarkDeleteResponse" } ] } @@ -17259,6 +17376,9 @@ { "path": "raft_serverpb.proto" }, + { + "path": "disaggregated.proto" + }, { "path": "gogoproto/gogo.proto" }, -- Gitee From 1e9aca94bab633f53717b6ecc6a19834fada73e1 Mon Sep 17 00:00:00 2001 From: Ryan Leung Date: Tue, 28 Feb 2023 12:10:42 +0800 Subject: [PATCH 08/44] add request header (#1065) Signed-off-by: Ryan Leung --- pkg/meta_storagepb/meta_storagepb.pb.go | 356 ++++++++++++++++++------ proto/meta_storagepb.proto | 27 +- scripts/proto.lock | 33 ++- 3 files changed, 308 insertions(+), 108 deletions(-) diff --git a/pkg/meta_storagepb/meta_storagepb.pb.go b/pkg/meta_storagepb/meta_storagepb.pb.go index 1190ac5..4d3958a 100644 --- a/pkg/meta_storagepb/meta_storagepb.pb.go +++ b/pkg/meta_storagepb/meta_storagepb.pb.go @@ -260,13 +260,14 @@ func (m *ResponseHeader) GetRevision() int64 { // copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto type WatchRequest struct { - Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - RangeEnd []byte `protobuf:"bytes,2,opt,name=range_end,json=rangeEnd,proto3" json:"range_end,omitempty"` - StartRevision int64 `protobuf:"varint,3,opt,name=start_revision,json=startRevision,proto3" json:"start_revision,omitempty"` - PrevKv bool `protobuf:"varint,4,opt,name=prev_kv,json=prevKv,proto3" json:"prev_kv,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + RangeEnd []byte `protobuf:"bytes,3,opt,name=range_end,json=rangeEnd,proto3" json:"range_end,omitempty"` + StartRevision int64 `protobuf:"varint,4,opt,name=start_revision,json=startRevision,proto3" json:"start_revision,omitempty"` + PrevKv bool `protobuf:"varint,5,opt,name=prev_kv,json=prevKv,proto3" json:"prev_kv,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *WatchRequest) Reset() { *m = WatchRequest{} } @@ -302,6 +303,13 @@ func (m *WatchRequest) XXX_DiscardUnknown() { var xxx_messageInfo_WatchRequest proto.InternalMessageInfo +func (m *WatchRequest) GetHeader() *RequestHeader { + if m != nil { + return m.Header + } + return nil +} + func (m *WatchRequest) GetKey() []byte { if m != nil { return m.Key @@ -396,13 +404,14 @@ func (m *WatchResponse) GetEvents() []*Event { // copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto type GetRequest struct { - Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - RangeEnd []byte `protobuf:"bytes,2,opt,name=range_end,json=rangeEnd,proto3" json:"range_end,omitempty"` - Limit int64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` - Revision int64 `protobuf:"varint,4,opt,name=revision,proto3" json:"revision,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + RangeEnd []byte `protobuf:"bytes,3,opt,name=range_end,json=rangeEnd,proto3" json:"range_end,omitempty"` + Limit int64 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"` + Revision int64 `protobuf:"varint,5,opt,name=revision,proto3" json:"revision,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetRequest) Reset() { *m = GetRequest{} } @@ -438,6 +447,13 @@ func (m *GetRequest) XXX_DiscardUnknown() { var xxx_messageInfo_GetRequest proto.InternalMessageInfo +func (m *GetRequest) GetHeader() *RequestHeader { + if m != nil { + return m.Header + } + return nil +} + func (m *GetRequest) GetKey() []byte { if m != nil { return m.Key @@ -540,13 +556,14 @@ func (m *GetResponse) GetCount() int64 { // copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto type PutRequest struct { - Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` - Lease int64 `protobuf:"varint,3,opt,name=lease,proto3" json:"lease,omitempty"` - PrevKv bool `protobuf:"varint,4,opt,name=prev_kv,json=prevKv,proto3" json:"prev_kv,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` + Lease int64 `protobuf:"varint,4,opt,name=lease,proto3" json:"lease,omitempty"` + PrevKv bool `protobuf:"varint,5,opt,name=prev_kv,json=prevKv,proto3" json:"prev_kv,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *PutRequest) Reset() { *m = PutRequest{} } @@ -582,6 +599,13 @@ func (m *PutRequest) XXX_DiscardUnknown() { var xxx_messageInfo_PutRequest proto.InternalMessageInfo +func (m *PutRequest) GetHeader() *RequestHeader { + if m != nil { + return m.Header + } + return nil +} + func (m *PutRequest) GetKey() []byte { if m != nil { return m.Key @@ -856,54 +880,56 @@ func init() { func init() { proto.RegisterFile("meta_storagepb.proto", fileDescriptor_5a2dc828c1dd8152) } var fileDescriptor_5a2dc828c1dd8152 = []byte{ - // 752 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0x4f, 0x6f, 0x12, 0x41, - 0x14, 0x67, 0x58, 0x58, 0xe0, 0x41, 0xe9, 0x66, 0x82, 0xba, 0x52, 0x8b, 0xb8, 0x89, 0x8a, 0x35, - 0x45, 0xa5, 0xc6, 0xb3, 0xb5, 0xc5, 0xd6, 0x60, 0x5b, 0xb2, 0x52, 0x7b, 0x24, 0xdb, 0xe5, 0x85, - 0x12, 0xba, 0x2c, 0xce, 0xce, 0x6e, 0xca, 0xc1, 0xef, 0x61, 0xe2, 0xc9, 0x9b, 0x27, 0xbf, 0x80, - 0x5f, 0xc0, 0xa3, 0x47, 0x13, 0x2f, 0xa6, 0x7e, 0x11, 0xb3, 0xb3, 0xcb, 0xbf, 0x95, 0x9a, 0xc6, - 0x5e, 0x60, 0xde, 0x9b, 0xc7, 0xef, 0xf7, 0x7b, 0xbf, 0x79, 0x33, 0x40, 0xc1, 0x42, 0x6e, 0xb4, - 0x1d, 0x6e, 0x33, 0xa3, 0x8b, 0xc3, 0xe3, 0xea, 0x90, 0xd9, 0xdc, 0xa6, 0xf9, 0xf9, 0x6c, 0xb1, - 0xd0, 0xb5, 0xbb, 0xb6, 0xd8, 0x7a, 0xe4, 0xaf, 0x82, 0xaa, 0xe2, 0x32, 0x73, 0x1d, 0x2e, 0x96, - 0x41, 0x42, 0x6b, 0x42, 0xb2, 0xce, 0x98, 0xcd, 0xe8, 0x3a, 0x24, 0xf8, 0x68, 0x88, 0x2a, 0x29, - 0x93, 0x4a, 0xbe, 0x76, 0xb3, 0x1a, 0x21, 0x11, 0x45, 0xad, 0xd1, 0x10, 0x75, 0x51, 0x46, 0x55, - 0x48, 0x59, 0xe8, 0x38, 0x46, 0x17, 0xd5, 0x78, 0x99, 0x54, 0x32, 0xfa, 0x38, 0xd4, 0x5e, 0xc2, - 0x92, 0x8e, 0xef, 0x5c, 0x74, 0xf8, 0x2e, 0x1a, 0x1d, 0x64, 0x74, 0x15, 0xc0, 0x3c, 0x75, 0x1d, - 0x8e, 0xac, 0xdd, 0xeb, 0x08, 0xfc, 0x84, 0x9e, 0x09, 0x33, 0xaf, 0x3a, 0xf4, 0x3a, 0xc8, 0x8e, - 0xed, 0x32, 0x73, 0x0c, 0x14, 0x46, 0xda, 0x19, 0xe4, 0x75, 0x74, 0x86, 0xf6, 0xc0, 0xc1, 0xcb, - 0x01, 0x3d, 0x84, 0x24, 0xfa, 0x2a, 0x05, 0x4e, 0xb6, 0x76, 0x6d, 0x61, 0x0b, 0x7a, 0x50, 0x43, - 0x8b, 0x90, 0x66, 0xe8, 0xf5, 0x9c, 0x9e, 0x3d, 0x50, 0xa5, 0x32, 0xa9, 0x48, 0xfa, 0x24, 0xd6, - 0xde, 0x43, 0xee, 0xc8, 0xe0, 0xe6, 0x49, 0xd8, 0x06, 0x55, 0x40, 0xea, 0xe3, 0x48, 0x10, 0xe6, - 0x74, 0x7f, 0x49, 0x57, 0x20, 0xc3, 0x8c, 0x41, 0x17, 0xdb, 0x38, 0xe8, 0x08, 0xba, 0x9c, 0x9e, - 0x16, 0x89, 0xfa, 0xa0, 0x43, 0xef, 0x42, 0xde, 0xe1, 0x06, 0xe3, 0xed, 0x08, 0xc1, 0x92, 0xc8, - 0xea, 0x61, 0x92, 0xde, 0x80, 0xd4, 0x90, 0xa1, 0xd7, 0xee, 0x7b, 0x6a, 0xa2, 0x4c, 0x2a, 0x69, - 0x5d, 0xf6, 0xc3, 0x86, 0xa7, 0x7d, 0x22, 0xb0, 0x14, 0xf2, 0x07, 0xed, 0xd3, 0x67, 0x20, 0x9f, - 0x08, 0x0b, 0x84, 0x86, 0x6c, 0xad, 0x14, 0x6d, 0x6d, 0xde, 0x28, 0x3d, 0xac, 0xa6, 0x0f, 0x40, - 0x31, 0x6d, 0x6b, 0x68, 0x98, 0x33, 0x5a, 0xe2, 0x42, 0xcb, 0x72, 0x98, 0x9f, 0xa8, 0x59, 0x07, - 0x19, 0x3d, 0x1c, 0x70, 0x47, 0x95, 0xca, 0xd2, 0x42, 0xf7, 0xfc, 0x5d, 0x3d, 0x2c, 0xd2, 0x2c, - 0x80, 0x1d, 0xe4, 0xff, 0x69, 0x50, 0x01, 0x92, 0xa7, 0x3d, 0xab, 0xc7, 0x43, 0x5f, 0x82, 0x60, - 0xee, 0x44, 0x12, 0x91, 0x13, 0xf9, 0x48, 0x20, 0x2b, 0xf8, 0xae, 0x68, 0xc8, 0x1a, 0x48, 0x7d, - 0xcf, 0x51, 0xe3, 0xa2, 0x45, 0x35, 0xfa, 0xa3, 0x06, 0x8e, 0xde, 0x1a, 0xa7, 0x2e, 0xea, 0x7e, - 0x11, 0xa5, 0x90, 0xb0, 0x6c, 0x86, 0x42, 0x64, 0x5a, 0x17, 0x6b, 0x5f, 0xb9, 0x69, 0xbb, 0x03, - 0x1e, 0x0a, 0x0c, 0x02, 0xcd, 0x04, 0x68, 0xba, 0xff, 0x30, 0xa3, 0x00, 0x49, 0xcf, 0xc7, 0x0d, - 0x8d, 0x08, 0x02, 0xe1, 0x02, 0x1a, 0x0e, 0x4e, 0x5c, 0xf0, 0x83, 0x8b, 0xa7, 0xe2, 0x0c, 0xb2, - 0x82, 0xe4, 0x8a, 0x0e, 0x3c, 0x99, 0xe2, 0x07, 0xd7, 0xe4, 0x62, 0x17, 0xc6, 0xcc, 0x5f, 0x08, - 0xa4, 0xc7, 0xc9, 0x05, 0xdd, 0xdd, 0x87, 0x65, 0x93, 0xa1, 0xc1, 0x31, 0x3a, 0x63, 0xf9, 0x20, - 0x3d, 0x19, 0xb1, 0x3b, 0x90, 0xb3, 0xec, 0x4e, 0xf4, 0x56, 0x64, 0x2d, 0xbb, 0x33, 0x29, 0x51, - 0x21, 0xe5, 0x21, 0x9b, 0x19, 0x81, 0x71, 0x38, 0xf5, 0x30, 0xb9, 0xd0, 0x43, 0x79, 0xc6, 0x43, - 0xed, 0x2b, 0x81, 0xa4, 0x18, 0x57, 0xba, 0x31, 0xf7, 0xa8, 0xdd, 0x5e, 0x38, 0xd3, 0xc1, 0xe7, - 0xcc, 0xd3, 0x56, 0x81, 0xf8, 0x25, 0xdc, 0x89, 0xf7, 0xbd, 0x59, 0x33, 0xa5, 0x4b, 0x9a, 0x59, - 0x86, 0xcc, 0x84, 0x8f, 0xa6, 0x40, 0x6a, 0x1e, 0xb6, 0x94, 0x18, 0x05, 0x90, 0xb7, 0xeb, 0xaf, - 0xeb, 0xad, 0xba, 0x42, 0xd6, 0x9e, 0x42, 0x66, 0xf2, 0xd8, 0x52, 0x19, 0xe2, 0x07, 0x0d, 0x25, - 0x46, 0xb3, 0x90, 0x3a, 0xdc, 0x6f, 0xec, 0x1f, 0x1c, 0xed, 0x2b, 0x84, 0x52, 0xc8, 0x6f, 0x6f, - 0xb6, 0x36, 0xdb, 0x5b, 0x07, 0x7b, 0xcd, 0xcd, 0xad, 0x56, 0x7d, 0x5b, 0x89, 0xd7, 0x7e, 0x12, - 0xc8, 0xee, 0x21, 0x37, 0xde, 0x04, 0xd4, 0x74, 0x17, 0x92, 0xe2, 0x0d, 0xa1, 0xb7, 0xa2, 0x92, - 0x66, 0x9f, 0xb6, 0xe2, 0xea, 0x05, 0xbb, 0xc1, 0xec, 0x68, 0xb1, 0xc7, 0x84, 0x3e, 0x07, 0x69, - 0x07, 0x39, 0x2d, 0x46, 0x2b, 0xa7, 0xf7, 0xbf, 0xb8, 0xb2, 0x70, 0x6f, 0x8c, 0xe1, 0x23, 0x34, - 0xdd, 0x05, 0x08, 0xd3, 0x4b, 0xf3, 0x37, 0xc2, 0xcc, 0xac, 0x6b, 0xb1, 0x17, 0xf7, 0x7e, 0x7c, - 0x4e, 0x93, 0x6f, 0xe7, 0x25, 0xf2, 0xfd, 0xbc, 0x44, 0x7e, 0x9d, 0x97, 0xc8, 0x87, 0xdf, 0xa5, - 0x18, 0x28, 0x36, 0xeb, 0x56, 0x79, 0xaf, 0xef, 0x55, 0xfb, 0x9e, 0xf8, 0x37, 0x3b, 0x96, 0xc5, - 0xd7, 0xc6, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xf2, 0x8e, 0x6c, 0x23, 0x07, 0x00, 0x00, + // 777 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0x41, 0x6f, 0xda, 0x58, + 0x10, 0xe6, 0x61, 0x6c, 0x60, 0x20, 0xc4, 0x7a, 0x62, 0x77, 0xbd, 0x64, 0xc3, 0xb2, 0x96, 0x76, + 0x97, 0xcd, 0x2a, 0xec, 0x2e, 0xd9, 0xf6, 0xdc, 0x34, 0xa1, 0x49, 0x45, 0x93, 0x20, 0x97, 0x34, + 0x47, 0xe4, 0xc0, 0x88, 0x20, 0x02, 0xa6, 0xcf, 0xcf, 0x56, 0xf8, 0x27, 0x55, 0x7b, 0xaa, 0xd4, + 0x43, 0x4f, 0x3d, 0xf5, 0xd6, 0x3f, 0xd0, 0x63, 0x8f, 0x95, 0x7a, 0xa9, 0xd2, 0x3f, 0x52, 0xf9, + 0xd9, 0x18, 0xe3, 0x10, 0x29, 0x52, 0xaa, 0x5e, 0xe0, 0xcd, 0xbc, 0xf1, 0x37, 0xdf, 0x7c, 0x9a, + 0x99, 0x07, 0xc5, 0x11, 0x72, 0xb3, 0x63, 0x73, 0x8b, 0x99, 0x7d, 0x9c, 0x9c, 0xd6, 0x26, 0xcc, + 0xe2, 0x16, 0x2d, 0x2c, 0x7a, 0x4b, 0xc5, 0xbe, 0xd5, 0xb7, 0xc4, 0xd5, 0x3f, 0xde, 0xc9, 0x8f, + 0x2a, 0xad, 0x32, 0xc7, 0xe6, 0xe2, 0xe8, 0x3b, 0xf4, 0x16, 0xc8, 0x0d, 0xc6, 0x2c, 0x46, 0x37, + 0x21, 0xc5, 0xa7, 0x13, 0xd4, 0x48, 0x85, 0x54, 0x0b, 0xf5, 0x9f, 0x6b, 0xb1, 0x24, 0x22, 0xa8, + 0x3d, 0x9d, 0xa0, 0x21, 0xc2, 0xa8, 0x06, 0xe9, 0x11, 0xda, 0xb6, 0xd9, 0x47, 0x2d, 0x59, 0x21, + 0xd5, 0xac, 0x31, 0x33, 0xf5, 0x07, 0xb0, 0x62, 0xe0, 0x53, 0x07, 0x6d, 0xbe, 0x8f, 0x66, 0x0f, + 0x19, 0x5d, 0x07, 0xe8, 0x9e, 0x3b, 0x36, 0x47, 0xd6, 0x19, 0xf4, 0x04, 0x7e, 0xca, 0xc8, 0x06, + 0x9e, 0x87, 0x3d, 0xfa, 0x23, 0x28, 0xb6, 0xe5, 0xb0, 0xee, 0x0c, 0x28, 0xb0, 0xf4, 0x0b, 0x28, + 0x18, 0x68, 0x4f, 0xac, 0xb1, 0x8d, 0x37, 0x03, 0xfa, 0x1b, 0x64, 0xf4, 0x58, 0x0a, 0x9c, 0x5c, + 0xfd, 0x87, 0xa5, 0x25, 0x18, 0x7e, 0x0c, 0x2d, 0x41, 0x86, 0xa1, 0x3b, 0xb0, 0x07, 0xd6, 0x58, + 0x93, 0x2a, 0xa4, 0x2a, 0x19, 0xa1, 0xad, 0xbf, 0x25, 0x90, 0x3f, 0x31, 0x79, 0xf7, 0x2c, 0xa8, + 0x83, 0xde, 0x01, 0xe5, 0x4c, 0x50, 0x10, 0x49, 0x73, 0xf5, 0xf5, 0x38, 0xf4, 0x42, 0xc1, 0x46, + 0x10, 0x4c, 0x55, 0x90, 0x86, 0x38, 0x15, 0x74, 0xf2, 0x86, 0x77, 0xa4, 0x6b, 0x90, 0x65, 0xe6, + 0xb8, 0x8f, 0x1d, 0x1c, 0xf7, 0x44, 0xda, 0xbc, 0x91, 0x11, 0x8e, 0xc6, 0xb8, 0x47, 0x7f, 0x87, + 0x82, 0xcd, 0x4d, 0xc6, 0x3b, 0x21, 0xb1, 0x94, 0x20, 0xb6, 0x22, 0xbc, 0x46, 0xe0, 0xa4, 0x3f, + 0x41, 0x7a, 0xc2, 0xd0, 0xed, 0x0c, 0x5d, 0x4d, 0xae, 0x90, 0x6a, 0xc6, 0x50, 0x3c, 0xb3, 0xe9, + 0xea, 0x2f, 0x09, 0xac, 0x04, 0xb4, 0x7d, 0xd9, 0xe8, 0xdd, 0x18, 0xef, 0xf2, 0x55, 0xde, 0x51, + 0x81, 0x43, 0xe2, 0x7f, 0x81, 0xda, 0xb5, 0x46, 0x13, 0xb3, 0x1b, 0xe1, 0x92, 0x14, 0x5c, 0x56, + 0x03, 0x7f, 0xc8, 0x66, 0x13, 0x14, 0x74, 0x71, 0xcc, 0x6d, 0x4d, 0xaa, 0x48, 0x4b, 0x55, 0xf7, + 0x6e, 0x8d, 0x20, 0x48, 0x7f, 0x45, 0x00, 0xf6, 0x90, 0x7f, 0x5f, 0x61, 0x8b, 0x20, 0x9f, 0x0f, + 0x46, 0x03, 0x1e, 0xe8, 0xe9, 0x1b, 0x0b, 0x1d, 0x20, 0xc7, 0x3a, 0xe0, 0x05, 0x81, 0x9c, 0xa0, + 0x79, 0x4b, 0x21, 0x37, 0x40, 0x1a, 0xba, 0xb6, 0x96, 0x14, 0xd2, 0x68, 0xf1, 0x8f, 0x9a, 0x38, + 0x7d, 0x62, 0x9e, 0x3b, 0x68, 0x78, 0x41, 0x94, 0x42, 0x6a, 0x64, 0x31, 0x14, 0xec, 0x33, 0x86, + 0x38, 0x7b, 0xcc, 0xbb, 0x96, 0x33, 0x0e, 0x99, 0x0b, 0x43, 0x7f, 0x4e, 0x00, 0x5a, 0xce, 0xb7, + 0x17, 0xb1, 0x08, 0xb2, 0xeb, 0xf1, 0x09, 0x04, 0xf4, 0x0d, 0xa1, 0x1e, 0x9a, 0x36, 0x86, 0xea, + 0x79, 0xc6, 0xf5, 0x5d, 0x78, 0x01, 0x39, 0xc1, 0xed, 0x96, 0xca, 0xfd, 0x37, 0xc7, 0xf7, 0xc7, + 0xf9, 0x7a, 0xf5, 0x66, 0x99, 0xdf, 0x10, 0xc8, 0xcc, 0x9c, 0xb3, 0xea, 0xc8, 0xbc, 0xba, 0x3f, + 0x61, 0xb5, 0xcb, 0xd0, 0xe4, 0x18, 0xef, 0xe9, 0x82, 0xef, 0x0e, 0x5b, 0xfa, 0x37, 0xc8, 0x8f, + 0xac, 0x5e, 0x27, 0xb6, 0x1e, 0x72, 0x23, 0xab, 0x17, 0x86, 0x68, 0x90, 0x76, 0x91, 0x45, 0x66, + 0x74, 0x66, 0xce, 0x35, 0x94, 0x97, 0x6a, 0xa8, 0x44, 0x34, 0xd4, 0xdf, 0x11, 0x90, 0xc5, 0x78, + 0xd0, 0xad, 0x85, 0xe5, 0xfb, 0xeb, 0xd2, 0x19, 0xf2, 0x7f, 0x23, 0x2b, 0xb8, 0x0a, 0xc9, 0x1b, + 0xa8, 0x93, 0x1c, 0xba, 0x51, 0x31, 0xa5, 0x1b, 0x8a, 0x59, 0x81, 0x6c, 0x98, 0x8f, 0xa6, 0x41, + 0x6a, 0x1d, 0xb7, 0xd5, 0x04, 0x05, 0x50, 0x76, 0x1b, 0x8f, 0x1a, 0xed, 0x86, 0x4a, 0x36, 0xfe, + 0x87, 0x6c, 0xf8, 0x28, 0x50, 0x05, 0x92, 0x47, 0x4d, 0x35, 0x41, 0x73, 0x90, 0x3e, 0x3e, 0x6c, + 0x1e, 0x1e, 0x9d, 0x1c, 0xaa, 0x84, 0x52, 0x28, 0xec, 0x6e, 0xb7, 0xb7, 0x3b, 0x3b, 0x47, 0x07, + 0xad, 0xed, 0x9d, 0x76, 0x63, 0x57, 0x4d, 0xd6, 0x3f, 0x11, 0xc8, 0x1d, 0x20, 0x37, 0x1f, 0xfb, + 0xa9, 0xe9, 0x3e, 0xc8, 0x62, 0x67, 0xd1, 0x5f, 0xe2, 0x94, 0xa2, 0x1b, 0xb8, 0xb4, 0x7e, 0xcd, + 0xad, 0xdf, 0x3b, 0x7a, 0xe2, 0x5f, 0x42, 0xef, 0x81, 0xb4, 0x87, 0x9c, 0x96, 0xe2, 0x91, 0xf3, + 0x75, 0x53, 0x5a, 0x5b, 0x7a, 0x37, 0xc3, 0xf0, 0x10, 0x5a, 0xce, 0x12, 0x84, 0xf9, 0xac, 0x5d, + 0x45, 0x88, 0xf4, 0xba, 0x9e, 0xb8, 0xff, 0xc7, 0xc7, 0xd7, 0x19, 0xf2, 0xfe, 0xb2, 0x4c, 0x3e, + 0x5c, 0x96, 0xc9, 0xe7, 0xcb, 0x32, 0x79, 0xf6, 0xa5, 0x9c, 0x00, 0xd5, 0x62, 0xfd, 0x1a, 0x1f, + 0x0c, 0xdd, 0xda, 0xd0, 0x15, 0xaf, 0xee, 0xa9, 0x22, 0xfe, 0xb6, 0xbe, 0x06, 0x00, 0x00, 0xff, + 0xff, 0xfd, 0xde, 0x7c, 0x36, 0xcb, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1249,25 +1275,37 @@ func (m *WatchRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0 } i-- - dAtA[i] = 0x20 + dAtA[i] = 0x28 } if m.StartRevision != 0 { i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.StartRevision)) i-- - dAtA[i] = 0x18 + dAtA[i] = 0x20 } if len(m.RangeEnd) > 0 { i -= len(m.RangeEnd) copy(dAtA[i:], m.RangeEnd) i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.RangeEnd))) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x1a } if len(m.Key) > 0 { i -= len(m.Key) copy(dAtA[i:], m.Key) i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.Key))) i-- + dAtA[i] = 0x12 + } + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMetaStoragepb(dAtA, i, uint64(size)) + } + i-- dAtA[i] = 0xa } return len(dAtA) - i, nil @@ -1358,25 +1396,37 @@ func (m *GetRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { if m.Revision != 0 { i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.Revision)) i-- - dAtA[i] = 0x20 + dAtA[i] = 0x28 } if m.Limit != 0 { i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.Limit)) i-- - dAtA[i] = 0x18 + dAtA[i] = 0x20 } if len(m.RangeEnd) > 0 { i -= len(m.RangeEnd) copy(dAtA[i:], m.RangeEnd) i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.RangeEnd))) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x1a } if len(m.Key) > 0 { i -= len(m.Key) copy(dAtA[i:], m.Key) i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.Key))) i-- + dAtA[i] = 0x12 + } + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMetaStoragepb(dAtA, i, uint64(size)) + } + i-- dAtA[i] = 0xa } return len(dAtA) - i, nil @@ -1482,25 +1532,37 @@ func (m *PutRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0 } i-- - dAtA[i] = 0x20 + dAtA[i] = 0x28 } if m.Lease != 0 { i = encodeVarintMetaStoragepb(dAtA, i, uint64(m.Lease)) i-- - dAtA[i] = 0x18 + dAtA[i] = 0x20 } if len(m.Value) > 0 { i -= len(m.Value) copy(dAtA[i:], m.Value) i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.Value))) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x1a } if len(m.Key) > 0 { i -= len(m.Key) copy(dAtA[i:], m.Key) i = encodeVarintMetaStoragepb(dAtA, i, uint64(len(m.Key))) i-- + dAtA[i] = 0x12 + } + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMetaStoragepb(dAtA, i, uint64(size)) + } + i-- dAtA[i] = 0xa } return len(dAtA) - i, nil @@ -1751,6 +1813,10 @@ func (m *WatchRequest) Size() (n int) { } var l int _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovMetaStoragepb(uint64(l)) + } l = len(m.Key) if l > 0 { n += 1 + l + sovMetaStoragepb(uint64(l)) @@ -1802,6 +1868,10 @@ func (m *GetRequest) Size() (n int) { } var l int _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovMetaStoragepb(uint64(l)) + } l = len(m.Key) if l > 0 { n += 1 + l + sovMetaStoragepb(uint64(l)) @@ -1856,6 +1926,10 @@ func (m *PutRequest) Size() (n int) { } var l int _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovMetaStoragepb(uint64(l)) + } l = len(m.Key) if l > 0 { n += 1 + l + sovMetaStoragepb(uint64(l)) @@ -2316,6 +2390,42 @@ func (m *WatchRequest) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &RequestHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) } @@ -2349,7 +2459,7 @@ func (m *WatchRequest) Unmarshal(dAtA []byte) error { m.Key = []byte{} } iNdEx = postIndex - case 2: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field RangeEnd", wireType) } @@ -2383,7 +2493,7 @@ func (m *WatchRequest) Unmarshal(dAtA []byte) error { m.RangeEnd = []byte{} } iNdEx = postIndex - case 3: + case 4: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field StartRevision", wireType) } @@ -2402,7 +2512,7 @@ func (m *WatchRequest) Unmarshal(dAtA []byte) error { break } } - case 4: + case 5: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field PrevKv", wireType) } @@ -2614,6 +2724,42 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &RequestHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) } @@ -2647,7 +2793,7 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error { m.Key = []byte{} } iNdEx = postIndex - case 2: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field RangeEnd", wireType) } @@ -2681,7 +2827,7 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error { m.RangeEnd = []byte{} } iNdEx = postIndex - case 3: + case 4: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType) } @@ -2700,7 +2846,7 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error { break } } - case 4: + case 5: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) } @@ -2931,6 +3077,42 @@ func (m *PutRequest) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetaStoragepb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMetaStoragepb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMetaStoragepb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &RequestHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) } @@ -2964,7 +3146,7 @@ func (m *PutRequest) Unmarshal(dAtA []byte) error { m.Key = []byte{} } iNdEx = postIndex - case 2: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) } @@ -2998,7 +3180,7 @@ func (m *PutRequest) Unmarshal(dAtA []byte) error { m.Value = []byte{} } iNdEx = postIndex - case 3: + case 4: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Lease", wireType) } @@ -3017,7 +3199,7 @@ func (m *PutRequest) Unmarshal(dAtA []byte) error { break } } - case 4: + case 5: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field PrevKv", wireType) } diff --git a/proto/meta_storagepb.proto b/proto/meta_storagepb.proto index c56bf5e..bae7ae5 100644 --- a/proto/meta_storagepb.proto +++ b/proto/meta_storagepb.proto @@ -50,10 +50,11 @@ message ResponseHeader { // copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto message WatchRequest { - bytes key = 1; - bytes range_end = 2; - int64 start_revision = 3; - bool prev_kv = 4; + RequestHeader header = 1; + bytes key = 2; + bytes range_end = 3; + int64 start_revision = 4; + bool prev_kv = 5; } // copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto @@ -65,10 +66,11 @@ message WatchResponse { // copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto message GetRequest { - bytes key = 1; - bytes range_end = 2; - int64 limit = 3; - int64 revision = 4; + RequestHeader header = 1; + bytes key = 2; + bytes range_end = 3; + int64 limit = 4; + int64 revision = 5; } // copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto @@ -81,10 +83,11 @@ message GetResponse { // copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto message PutRequest { - bytes key = 1; - bytes value = 2; - int64 lease = 3; - bool prev_kv = 4; + RequestHeader header = 1; + bytes key = 2; + bytes value = 3; + int64 lease = 4; + bool prev_kv = 5; } // copied part of https://github.com/etcd-io/etcd/blob/7dfd29b0cc7ce25337276dce646ca2a65aa44b4d/api/etcdserverpb/rpc.proto diff --git a/scripts/proto.lock b/scripts/proto.lock index 10cc769..f6ebdb2 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -10355,21 +10355,26 @@ "fields": [ { "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, "name": "key", "type": "bytes" }, { - "id": 2, + "id": 3, "name": "range_end", "type": "bytes" }, { - "id": 3, + "id": 4, "name": "start_revision", "type": "int64" }, { - "id": 4, + "id": 5, "name": "prev_kv", "type": "bool" } @@ -10401,21 +10406,26 @@ "fields": [ { "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, "name": "key", "type": "bytes" }, { - "id": 2, + "id": 3, "name": "range_end", "type": "bytes" }, { - "id": 3, + "id": 4, "name": "limit", "type": "int64" }, { - "id": 4, + "id": 5, "name": "revision", "type": "int64" } @@ -10452,21 +10462,26 @@ "fields": [ { "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, "name": "key", "type": "bytes" }, { - "id": 2, + "id": 3, "name": "value", "type": "bytes" }, { - "id": 3, + "id": 4, "name": "lease", "type": "int64" }, { - "id": 4, + "id": 5, "name": "prev_kv", "type": "bool" } -- Gitee From bebf415a224480254e07d6957a3bf5df4bed40fc Mon Sep 17 00:00:00 2001 From: 3pointer Date: Thu, 2 Mar 2023 16:52:08 +0800 Subject: [PATCH 09/44] br: add provider for s3 backend (#1067) --- pkg/brpb/brpb.pb.go | 198 ++++++++++++++++++++++++++++---------------- proto/brpb.proto | 1 + 2 files changed, 127 insertions(+), 72 deletions(-) diff --git a/pkg/brpb/brpb.pb.go b/pkg/brpb/brpb.pb.go index 503d7e8..08b72e2 100644 --- a/pkg/brpb/brpb.pb.go +++ b/pkg/brpb/brpb.pb.go @@ -1524,6 +1524,7 @@ type S3 struct { ExternalId string `protobuf:"bytes,13,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"` ObjectLockEnabled bool `protobuf:"varint,14,opt,name=object_lock_enabled,json=objectLockEnabled,proto3" json:"object_lock_enabled,omitempty"` SessionToken string `protobuf:"bytes,15,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"` + Provider string `protobuf:"bytes,16,opt,name=provider,proto3" json:"provider,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1667,6 +1668,13 @@ func (m *S3) GetSessionToken() string { return "" } +func (m *S3) GetProvider() string { + if m != nil { + return m.Provider + } + return "" +} + // GCS storage backend saves files into google cloud storage. type GCS struct { Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` @@ -2955,13 +2963,13 @@ func init() { func init() { proto.RegisterFile("brpb.proto", fileDescriptor_483d1f48d58a4885) } var fileDescriptor_483d1f48d58a4885 = []byte{ - // 2845 bytes of a gzipped FileDescriptorProto + // 2854 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0xdb, 0x6f, 0x1b, 0xc7, 0xd5, 0xd7, 0x92, 0xcb, 0xdb, 0xe1, 0x55, 0x63, 0xc7, 0x61, 0xe4, 0xcf, 0xb6, 0x42, 0x7f, 0xf6, 0xa7, 0xcf, 0x01, 0x94, 0x44, 0x72, 0x82, 0xb4, 0x69, 0x11, 0xe8, 0xe2, 0x44, 0xaa, 0x1d, 0x5b, 0x1d, 0xa9, 0x29, 0x9a, 0x97, 0xc5, 0x70, 0x77, 0x28, 0x6e, 0xb9, 0xdc, 0x65, 0x77, 0x96, 0xb4, 0x95, 0xff, 0xa1, 0x68, 0xfb, 0x50, 0xb4, 0x0f, 0x7d, 0x2d, 0xda, 0x3f, 0xa3, 0x2f, 0x05, 0x12, - 0xb4, 0x40, 0x03, 0xe4, 0xa5, 0x0f, 0x7d, 0x28, 0xd2, 0x7f, 0xa4, 0x38, 0x67, 0x66, 0x97, 0x4b, + 0xb4, 0x40, 0x03, 0xe4, 0xa5, 0x8f, 0x45, 0xfa, 0x4f, 0xf4, 0xb1, 0x38, 0x67, 0x66, 0x97, 0x4b, 0x59, 0x94, 0xe3, 0xa2, 0xc8, 0x13, 0x67, 0x7e, 0xe7, 0xcc, 0xec, 0x9c, 0xfb, 0x99, 0x21, 0x40, 0x3f, 0x9e, 0xf4, 0x37, 0x27, 0x71, 0x94, 0x44, 0xac, 0xdc, 0x17, 0xee, 0x68, 0x3a, 0x59, 0x6b, 0x8e, 0x66, 0xf1, 0xc4, 0x4d, 0xe1, 0xb5, 0xa6, 0x8c, 0xe3, 0x28, 0xe3, 0x5a, 0x6b, 0x8c, 0x65, @@ -3051,7 +3059,7 @@ var fileDescriptor_483d1f48d58a4885 = []byte{ 0x03, 0x60, 0xe2, 0xb3, 0x69, 0x2c, 0x9d, 0x7e, 0x10, 0xf5, 0x9d, 0xd4, 0x0f, 0x2a, 0xb4, 0xa2, 0x9b, 0xae, 0xd8, 0x41, 0x8e, 0xdd, 0x20, 0xea, 0x1b, 0x3d, 0x1d, 0xac, 0xf0, 0x8e, 0x38, 0x87, 0xed, 0xd6, 0xa0, 0x62, 0x12, 0x41, 0xaf, 0x0c, 0x36, 0xea, 0xaa, 0x77, 0x1d, 0x4a, 0xa4, 0x0e, - 0x34, 0x3f, 0xfa, 0x60, 0xda, 0xfb, 0x91, 0x3f, 0xfe, 0xa3, 0x08, 0x85, 0xe3, 0x6d, 0xac, 0xd2, + 0x34, 0x3f, 0xfa, 0x60, 0xda, 0xfb, 0x91, 0x3f, 0xfe, 0xab, 0x08, 0x85, 0xe3, 0x6d, 0xac, 0xd2, 0x32, 0xf4, 0x26, 0x91, 0x6f, 0xea, 0x54, 0x8d, 0x67, 0x73, 0x6c, 0x0f, 0x75, 0x62, 0x37, 0xd7, 0x25, 0x33, 0x43, 0xbc, 0x3f, 0x75, 0x47, 0x32, 0x31, 0x05, 0xd0, 0xcc, 0x10, 0x9f, 0xc4, 0x72, 0xe0, 0x3f, 0x33, 0x7e, 0x66, 0x66, 0x3a, 0x65, 0xea, 0x5c, 0xe5, 0x06, 0x42, 0xe9, 0x92, 0x5e, @@ -3065,75 +3073,76 @@ var fileDescriptor_483d1f48d58a4885 = []byte{ 0xf9, 0x4e, 0xac, 0x6b, 0xc1, 0xb3, 0x44, 0xc6, 0xa1, 0x08, 0x70, 0x71, 0x93, 0xa8, 0x90, 0x42, 0x87, 0x1e, 0xdb, 0x84, 0x2b, 0x51, 0xff, 0xa7, 0xd2, 0x4d, 0x9c, 0x20, 0x72, 0x47, 0x59, 0x87, 0xdf, 0xa2, 0xd3, 0xac, 0x6a, 0xd2, 0xa3, 0xc8, 0x1d, 0x99, 0xf6, 0x9e, 0xd4, 0x99, 0x46, 0x64, - 0x34, 0x92, 0x3a, 0xcb, 0xa1, 0x3a, 0x4d, 0xd4, 0x21, 0xd6, 0xfb, 0xdc, 0x82, 0xe2, 0x47, 0x7b, - 0xc7, 0x2f, 0xb2, 0xaf, 0xb1, 0x63, 0x61, 0x89, 0x1d, 0x8b, 0x97, 0xdb, 0xd1, 0xbe, 0xc0, 0x8e, - 0x77, 0xa0, 0x35, 0x89, 0xa5, 0x27, 0x07, 0x7e, 0x28, 0x3d, 0x07, 0x0d, 0xa8, 0xad, 0xdd, 0x9c, - 0xa3, 0x3b, 0x6e, 0x80, 0x3d, 0x9c, 0x8b, 0x40, 0x98, 0xf8, 0x22, 0x50, 0xe4, 0xfe, 0xc6, 0xf6, - 0xed, 0x1c, 0x8e, 0x0e, 0xde, 0xfb, 0xb3, 0x05, 0x9d, 0xf3, 0x21, 0xf0, 0xed, 0xcb, 0xf5, 0x3a, - 0x34, 0x84, 0xeb, 0x46, 0xd3, 0x30, 0x71, 0x28, 0x95, 0x6a, 0xa9, 0xea, 0x06, 0x7b, 0x8c, 0x19, - 0xf5, 0x06, 0x80, 0x1a, 0x8a, 0x58, 0xea, 0xb6, 0x41, 0x4b, 0x53, 0xd3, 0x08, 0x36, 0x28, 0xbf, - 0xb2, 0xa0, 0xbc, 0xab, 0x4f, 0xf2, 0xcd, 0xa2, 0xae, 0xb8, 0x24, 0xea, 0xec, 0x25, 0x52, 0x95, - 0x2e, 0x97, 0xaa, 0xfc, 0xbc, 0x54, 0xd8, 0x71, 0x36, 0xf2, 0x49, 0x8c, 0xdd, 0xcd, 0xbe, 0x62, - 0x99, 0x66, 0xcf, 0x24, 0x21, 0x7d, 0xf2, 0xec, 0xab, 0xb7, 0xa1, 0x39, 0x89, 0xa3, 0x99, 0xef, - 0xc9, 0x58, 0xeb, 0x43, 0xab, 0xba, 0x91, 0x82, 0xa4, 0x90, 0x77, 0xa0, 0x24, 0x92, 0x24, 0x4e, - 0xef, 0x31, 0xb7, 0x2e, 0x4a, 0x9b, 0x9b, 0x3b, 0xc8, 0xf1, 0x20, 0x4c, 0xe2, 0x33, 0xae, 0xb9, - 0xd7, 0xde, 0x03, 0x98, 0x83, 0x98, 0x06, 0xd2, 0xd6, 0xbc, 0xc6, 0x71, 0x88, 0x4d, 0xfd, 0x4c, - 0x04, 0xd3, 0xf4, 0x9b, 0x7a, 0xf2, 0xdd, 0xc2, 0x7b, 0x56, 0xef, 0x26, 0xd8, 0x98, 0x5e, 0xb5, - 0x0e, 0xc7, 0x51, 0x92, 0x5e, 0x77, 0xcd, 0x0c, 0x5d, 0xa9, 0x95, 0xf6, 0x88, 0x6a, 0x12, 0x85, - 0x0a, 0xc3, 0xbb, 0xa4, 0x9b, 0x5b, 0x6b, 0xb1, 0x90, 0x50, 0x33, 0xcb, 0x35, 0xed, 0x3f, 0x6c, - 0x15, 0xbf, 0xc9, 0xab, 0xd0, 0xb9, 0xc7, 0x84, 0xd2, 0x37, 0x7a, 0x4c, 0xe8, 0x5d, 0x81, 0xd5, - 0xbd, 0xa1, 0x74, 0x47, 0x3b, 0xde, 0xd8, 0x0f, 0x4d, 0xbb, 0xdb, 0xfb, 0xb9, 0x05, 0x2c, 0x8f, - 0xbe, 0x8c, 0x80, 0x77, 0x17, 0x52, 0x3d, 0x9a, 0xdd, 0x3c, 0xd5, 0x71, 0x42, 0x33, 0x27, 0xbc, - 0x07, 0xab, 0x43, 0xa1, 0x9c, 0x89, 0x0c, 0x3d, 0x3f, 0x3c, 0x75, 0x04, 0x7e, 0x89, 0xa4, 0xae, - 0xf2, 0xf6, 0x50, 0xa8, 0x23, 0x8d, 0xd3, 0x01, 0x7a, 0x7f, 0xb1, 0xe0, 0xc6, 0x03, 0x93, 0xe6, - 0x4c, 0xd8, 0x72, 0x89, 0xde, 0x27, 0xd3, 0x06, 0xfd, 0x82, 0x26, 0xd6, 0x7a, 0xa9, 0x26, 0xf6, - 0x16, 0xd4, 0x4d, 0xea, 0xcc, 0xf9, 0x20, 0x68, 0xe8, 0xb1, 0x69, 0x72, 0x62, 0xfd, 0x4d, 0xcd, - 0xa1, 0x43, 0xaa, 0x6e, 0x30, 0x62, 0xb9, 0x03, 0x2d, 0x37, 0x0a, 0x13, 0x19, 0x26, 0x4e, 0x20, - 0xc3, 0xd3, 0x64, 0x68, 0x3a, 0xfa, 0xa6, 0x41, 0x1f, 0x11, 0xd8, 0x5b, 0x87, 0x9b, 0xcb, 0x84, - 0xd1, 0x8a, 0xee, 0xfd, 0xde, 0x82, 0xb5, 0x73, 0x2c, 0xc7, 0x62, 0xf6, 0x2d, 0x0a, 0xfb, 0xbc, - 0x24, 0xc5, 0x8b, 0x24, 0xb9, 0x01, 0xd7, 0x2f, 0x3c, 0xa6, 0x11, 0xe3, 0x97, 0x05, 0xfd, 0xca, - 0xe1, 0x89, 0x44, 0xb0, 0x7b, 0xa9, 0x0b, 0xeb, 0x07, 0x8e, 0xac, 0xf1, 0xd9, 0x37, 0xaf, 0x15, - 0xd4, 0x84, 0x1b, 0x57, 0x7e, 0x17, 0xea, 0xf4, 0xc0, 0x79, 0x1a, 0x47, 0xd3, 0x09, 0xa6, 0x1b, - 0x5c, 0xf1, 0xca, 0xf9, 0x15, 0x1f, 0x21, 0x95, 0xd3, 0x53, 0x28, 0x0d, 0x95, 0x6e, 0x67, 0xd1, - 0x42, 0xbe, 0x47, 0x42, 0x15, 0x75, 0xa7, 0x2b, 0x0f, 0x49, 0xe4, 0x58, 0xaa, 0x28, 0x98, 0xc9, - 0x5c, 0x4f, 0x0b, 0x29, 0xa4, 0xfb, 0xdd, 0xb1, 0x78, 0x86, 0x34, 0x6d, 0xb4, 0xd2, 0x58, 0x3c, - 0x33, 0xb0, 0x1f, 0x22, 0x5c, 0x32, 0xb0, 0x1f, 0x9e, 0xe0, 0x09, 0xe9, 0x05, 0x3a, 0x8b, 0xb6, - 0x8a, 0x89, 0xb6, 0xdc, 0x93, 0x60, 0x1a, 0x6d, 0xf5, 0xf1, 0x7c, 0xd2, 0xfb, 0x9b, 0x05, 0xcd, - 0x85, 0xf3, 0x5f, 0xd4, 0x51, 0xb1, 0xef, 0x41, 0x7b, 0xfe, 0xc8, 0xa3, 0x2f, 0x2e, 0x85, 0x4b, - 0xb4, 0xd6, 0xcc, 0x5e, 0x7c, 0xe8, 0x1a, 0x30, 0x3f, 0x72, 0x31, 0x7f, 0xe4, 0x25, 0x02, 0xde, - 0x85, 0x36, 0x72, 0xe7, 0x95, 0xa3, 0x25, 0x6d, 0xea, 0xd0, 0x4f, 0xf5, 0x73, 0x0d, 0xca, 0xc6, - 0x15, 0xf4, 0x4b, 0x9b, 0x99, 0xf5, 0xbe, 0xb2, 0xa1, 0x91, 0x3f, 0x4d, 0xee, 0x29, 0xd0, 0x5a, - 0x78, 0x0a, 0x4c, 0x05, 0x2d, 0xe4, 0x04, 0xbd, 0x07, 0xab, 0xe1, 0x74, 0xdc, 0x97, 0xb1, 0x13, - 0x0d, 0x1c, 0x19, 0x26, 0xb1, 0x2f, 0xf5, 0xa9, 0x8b, 0xbc, 0xad, 0x09, 0x4f, 0x06, 0x0f, 0x34, - 0x9c, 0x13, 0xcb, 0xbe, 0x58, 0xac, 0x52, 0x5e, 0xac, 0x73, 0xf6, 0x2e, 0x3f, 0x67, 0xef, 0xeb, - 0x50, 0x33, 0x2f, 0x12, 0xbe, 0x47, 0xe6, 0x2b, 0xf2, 0xaa, 0x06, 0xce, 0x5f, 0xe8, 0xab, 0xcb, - 0xb3, 0x74, 0xed, 0x82, 0xa7, 0x9c, 0xf9, 0xb3, 0xe0, 0xff, 0x82, 0x4d, 0x17, 0x9d, 0x3a, 0x39, - 0x47, 0x27, 0x9f, 0xb4, 0xe9, 0x42, 0x43, 0x54, 0xdc, 0xce, 0x57, 0x0e, 0x3a, 0x09, 0xf5, 0x7b, - 0x55, 0x5e, 0xf6, 0x15, 0xfd, 0x17, 0xf1, 0x1a, 0x54, 0xf5, 0xb5, 0xca, 0xf4, 0x7a, 0x45, 0x5e, - 0xa1, 0xf9, 0xa1, 0x97, 0x33, 0x46, 0x2b, 0x6f, 0x0c, 0xf6, 0x1d, 0x58, 0x43, 0x1d, 0xf5, 0xe5, - 0x29, 0x69, 0xca, 0xf1, 0x43, 0xc7, 0x93, 0x03, 0x31, 0x0d, 0x12, 0xc7, 0x1d, 0x50, 0x77, 0x67, - 0xf3, 0x57, 0xc6, 0x7e, 0xb8, 0x8b, 0x0c, 0x27, 0xea, 0x30, 0xdc, 0xd7, 0xd4, 0xbd, 0x01, 0xe5, - 0x37, 0x7a, 0x2d, 0x8f, 0x06, 0x03, 0x25, 0x13, 0x7a, 0xe4, 0xb6, 0x79, 0x9d, 0xb0, 0x27, 0x04, - 0xcd, 0x59, 0xcc, 0xb7, 0x57, 0x73, 0x2c, 0x3a, 0x23, 0x5c, 0x78, 0xcf, 0x63, 0x2f, 0x79, 0xcf, - 0x2b, 0xf8, 0xb3, 0xde, 0x2f, 0x2c, 0x58, 0xcd, 0xdf, 0x71, 0x1f, 0xa4, 0xc5, 0x73, 0x28, 0x26, - 0x13, 0x19, 0x3a, 0x22, 0x7d, 0x0b, 0xab, 0x6a, 0x60, 0x87, 0xde, 0x68, 0xa8, 0x02, 0x39, 0x6e, - 0xe4, 0xa5, 0x39, 0xad, 0x46, 0xc8, 0x5e, 0xe4, 0x61, 0xf1, 0xd2, 0x7f, 0x21, 0x39, 0x63, 0xa9, - 0x14, 0x5e, 0x8d, 0x74, 0x02, 0x6f, 0x10, 0xf8, 0xb1, 0xc6, 0x16, 0x12, 0x88, 0x9d, 0xde, 0x87, - 0x29, 0x81, 0xdc, 0xfb, 0x3e, 0xb4, 0xcf, 0x9d, 0x9c, 0xd5, 0xa1, 0xf2, 0xa3, 0xc7, 0x0f, 0x1f, - 0x3f, 0xf9, 0xf1, 0xe3, 0xce, 0x0a, 0xab, 0x40, 0xf1, 0xd1, 0xa7, 0xf7, 0x3b, 0x16, 0x03, 0x28, - 0x1f, 0x3f, 0xde, 0x39, 0x3a, 0xfa, 0x49, 0xa7, 0xc0, 0xaa, 0x60, 0x7f, 0x7a, 0x7c, 0xb2, 0xdf, - 0x29, 0xde, 0xbb, 0x01, 0xf5, 0x5c, 0x52, 0x60, 0x65, 0x28, 0x7c, 0xf2, 0x76, 0x67, 0x85, 0x7e, - 0xb7, 0x3a, 0xd6, 0xbd, 0x5b, 0x50, 0x4d, 0xdd, 0x02, 0x37, 0xd8, 0x97, 0x81, 0x4c, 0xa4, 0xde, - 0xf5, 0x68, 0x9a, 0x74, 0xac, 0xad, 0xdf, 0x60, 0xcb, 0x47, 0xaa, 0x60, 0xef, 0x83, 0xf9, 0x8f, - 0x8c, 0x65, 0x29, 0x71, 0xe1, 0xb5, 0x6a, 0xed, 0xda, 0x79, 0xd8, 0xe4, 0xe3, 0x95, 0xb7, 0x2c, - 0x76, 0x04, 0x57, 0xa8, 0xb2, 0xe7, 0xeb, 0xeb, 0x93, 0x09, 0x7b, 0x2d, 0xb3, 0xce, 0xf9, 0x66, - 0x60, 0x6d, 0xed, 0x22, 0xd2, 0x7c, 0xc7, 0xad, 0x3f, 0x59, 0xd0, 0x3e, 0x57, 0x05, 0xd8, 0xa7, - 0x50, 0x31, 0x85, 0x91, 0xdd, 0xc9, 0xba, 0x84, 0xcb, 0x0a, 0xf8, 0xda, 0xdd, 0x17, 0xb1, 0xa5, - 0x5f, 0x64, 0x3f, 0x04, 0x5b, 0x89, 0x99, 0x64, 0xbd, 0x25, 0x2b, 0x72, 0x95, 0x72, 0xed, 0xf6, - 0xa5, 0x3c, 0xe9, 0x96, 0xbb, 0x77, 0xff, 0xfe, 0xc7, 0xaa, 0xf5, 0xf9, 0xd7, 0x37, 0xad, 0x2f, - 0xbf, 0xbe, 0x69, 0xfd, 0xf3, 0xeb, 0x9b, 0xd6, 0x6f, 0xff, 0x75, 0x73, 0x05, 0x3a, 0x51, 0x7c, - 0xba, 0x99, 0xf8, 0xa3, 0xd9, 0xe6, 0x68, 0x46, 0x7f, 0x16, 0xf6, 0xcb, 0xf4, 0xb3, 0xfd, 0xef, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x02, 0xdd, 0x8c, 0x60, 0xb0, 0x1c, 0x00, 0x00, + 0x34, 0x92, 0x3a, 0xcb, 0xa1, 0x3a, 0x4d, 0xd4, 0x21, 0x86, 0x76, 0x9d, 0xc4, 0xd1, 0xcc, 0xf7, + 0x64, 0x4c, 0x37, 0x9f, 0x1a, 0xcf, 0xe6, 0xbd, 0xcf, 0x2d, 0x28, 0x7e, 0xb4, 0x77, 0xfc, 0x22, + 0xdb, 0x1b, 0x1b, 0x17, 0x96, 0xd8, 0xb8, 0x78, 0xb9, 0x8d, 0xed, 0x0b, 0x6c, 0x7c, 0x07, 0x5a, + 0x93, 0x58, 0x7a, 0x72, 0xe0, 0x87, 0xd2, 0x73, 0xd0, 0xb8, 0xda, 0x13, 0x9a, 0x73, 0x74, 0xc7, + 0x0d, 0xb0, 0xbf, 0x73, 0x11, 0x08, 0x13, 0x5f, 0x04, 0x8a, 0x42, 0xc3, 0xf8, 0x45, 0x3b, 0x87, + 0xa3, 0xf3, 0xf7, 0xfe, 0x6c, 0x41, 0xe7, 0x7c, 0x78, 0x7c, 0xfb, 0x72, 0xbd, 0x0e, 0x0d, 0xe1, + 0xba, 0xd1, 0x34, 0x4c, 0x1c, 0x4a, 0xb3, 0x5a, 0xaa, 0xba, 0xc1, 0x1e, 0x63, 0xb6, 0xbd, 0x01, + 0xa0, 0x86, 0x22, 0x96, 0xba, 0xa5, 0xd0, 0xd2, 0xd4, 0x34, 0x82, 0xcd, 0xcb, 0xaf, 0x2c, 0x28, + 0xef, 0xea, 0x93, 0x7c, 0xb3, 0x88, 0x2c, 0x2e, 0x89, 0x48, 0x7b, 0x89, 0x54, 0xa5, 0xcb, 0xa5, + 0x2a, 0x3f, 0x2f, 0x15, 0x76, 0xa3, 0x8d, 0x7c, 0x82, 0x63, 0x77, 0xb3, 0xaf, 0x58, 0xa6, 0x11, + 0x34, 0x09, 0x4a, 0x9f, 0x3c, 0xfb, 0xea, 0x6d, 0x68, 0xa6, 0xbe, 0xa6, 0xf5, 0xa1, 0x55, 0xdd, + 0x48, 0x41, 0x52, 0xc8, 0x3b, 0x50, 0x12, 0x49, 0x12, 0xa7, 0x77, 0x9c, 0x5b, 0x17, 0xa5, 0xd4, + 0xcd, 0x1d, 0xe4, 0x78, 0x10, 0x26, 0xf1, 0x19, 0xd7, 0xdc, 0x6b, 0xef, 0x01, 0xcc, 0x41, 0x4c, + 0x11, 0x69, 0xdb, 0x5e, 0xe3, 0x38, 0xc4, 0x86, 0x7f, 0x26, 0x82, 0x69, 0xfa, 0x4d, 0x3d, 0xf9, + 0x6e, 0xe1, 0x3d, 0xab, 0x77, 0x13, 0x6c, 0x4c, 0xbd, 0x5a, 0x87, 0xe3, 0x28, 0x49, 0xaf, 0xc2, + 0x66, 0x86, 0xae, 0xd4, 0x4a, 0xfb, 0x47, 0x35, 0x89, 0x42, 0x85, 0xa1, 0x5f, 0xd2, 0x8d, 0xaf, + 0xb5, 0x58, 0x64, 0xa8, 0xd1, 0xe5, 0x9a, 0xf6, 0x1f, 0xb6, 0x91, 0xdf, 0xe4, 0xc5, 0xe8, 0xdc, + 0x43, 0x43, 0xe9, 0x1b, 0x3d, 0x34, 0xf4, 0xae, 0xc0, 0xea, 0xde, 0x50, 0xba, 0xa3, 0x1d, 0x6f, + 0xec, 0x87, 0xa6, 0x15, 0xee, 0xfd, 0xdc, 0x02, 0x96, 0x47, 0x5f, 0x46, 0xc0, 0xbb, 0x0b, 0x65, + 0x00, 0xcd, 0x6e, 0x9e, 0xf1, 0x38, 0xa1, 0x99, 0x13, 0xde, 0x83, 0xd5, 0xa1, 0x50, 0xce, 0x44, + 0x86, 0x9e, 0x1f, 0x9e, 0x3a, 0x02, 0xbf, 0x44, 0x52, 0x57, 0x79, 0x7b, 0x28, 0xd4, 0x91, 0xc6, + 0xe9, 0x00, 0xbd, 0xbf, 0x58, 0x70, 0xe3, 0x81, 0x49, 0x81, 0x26, 0x6c, 0xb9, 0x44, 0xef, 0x93, + 0x69, 0xf3, 0x7e, 0x41, 0x83, 0x6b, 0xbd, 0x54, 0x83, 0x7b, 0x0b, 0xea, 0x26, 0xad, 0xe6, 0x7c, + 0x10, 0x34, 0xf4, 0xd8, 0x34, 0x40, 0xb1, 0xfe, 0xa6, 0xe6, 0xd0, 0x21, 0x55, 0x37, 0x18, 0xb1, + 0xdc, 0x81, 0x96, 0x1b, 0x85, 0x89, 0x0c, 0x13, 0x27, 0x90, 0xe1, 0x69, 0x32, 0x34, 0xdd, 0x7e, + 0xd3, 0xa0, 0x8f, 0x08, 0xec, 0xad, 0xc3, 0xcd, 0x65, 0xc2, 0x68, 0x45, 0xf7, 0x7e, 0x6f, 0xc1, + 0xda, 0x39, 0x96, 0x63, 0x31, 0xfb, 0x16, 0x85, 0x7d, 0x5e, 0x92, 0xe2, 0x45, 0x92, 0xdc, 0x80, + 0xeb, 0x17, 0x1e, 0xd3, 0x88, 0xf1, 0xcb, 0x82, 0x7e, 0x01, 0xf1, 0x44, 0x22, 0xd8, 0xbd, 0xd4, + 0x85, 0xf5, 0xe3, 0x47, 0xd6, 0x14, 0xed, 0x9b, 0x97, 0x0c, 0x6a, 0xd0, 0x8d, 0x2b, 0xbf, 0x0b, + 0x75, 0x7a, 0xfc, 0x3c, 0x8d, 0xa3, 0xe9, 0x04, 0xd3, 0x0d, 0xae, 0x78, 0xe5, 0xfc, 0x8a, 0x8f, + 0x90, 0xca, 0xe9, 0x99, 0x94, 0x86, 0x4a, 0xb7, 0xba, 0x68, 0x21, 0xdf, 0x23, 0xa1, 0x8a, 0xba, + 0x0b, 0x96, 0x87, 0x24, 0x72, 0x2c, 0x55, 0x14, 0xcc, 0x64, 0xae, 0xdf, 0x85, 0x14, 0xd2, 0xbd, + 0xf0, 0x58, 0x3c, 0x43, 0x9a, 0x36, 0x5a, 0x69, 0x2c, 0x9e, 0x19, 0xd8, 0x0f, 0x11, 0x2e, 0x19, + 0xd8, 0x0f, 0x4f, 0xf0, 0x84, 0xf4, 0x3a, 0x9d, 0x45, 0x5b, 0xc5, 0x44, 0x5b, 0xee, 0xb9, 0x30, + 0x8d, 0xb6, 0xfa, 0x78, 0x3e, 0xe9, 0xfd, 0xcd, 0x82, 0xe6, 0xc2, 0xf9, 0x2f, 0xea, 0xb6, 0xd8, + 0xf7, 0xa0, 0x3d, 0x7f, 0x00, 0xd2, 0x97, 0x9a, 0xc2, 0x25, 0x5a, 0x6b, 0x66, 0xaf, 0x41, 0x74, + 0x45, 0x98, 0x1f, 0xb9, 0x98, 0x3f, 0xf2, 0x12, 0x01, 0xef, 0x42, 0x1b, 0xb9, 0xf3, 0xca, 0xd1, + 0x92, 0x36, 0x75, 0xe8, 0xa7, 0xfa, 0xb9, 0x06, 0x65, 0xe3, 0x0a, 0xfa, 0x15, 0xce, 0xcc, 0x7a, + 0x5f, 0xd9, 0xd0, 0xc8, 0x9f, 0x26, 0xf7, 0x4c, 0x68, 0x2d, 0x3c, 0x13, 0xa6, 0x82, 0x16, 0x72, + 0x82, 0xde, 0x83, 0xd5, 0x70, 0x3a, 0xee, 0xcb, 0xd8, 0x89, 0x06, 0x8e, 0x0c, 0x93, 0xd8, 0x97, + 0xfa, 0xd4, 0x45, 0xde, 0xd6, 0x84, 0x27, 0x83, 0x07, 0x1a, 0xce, 0x89, 0x65, 0x5f, 0x2c, 0x56, + 0x29, 0x2f, 0xd6, 0x39, 0x7b, 0x97, 0x9f, 0xb3, 0xf7, 0x75, 0xa8, 0x99, 0xd7, 0x0a, 0xdf, 0x23, + 0xf3, 0x15, 0x79, 0x55, 0x03, 0xe7, 0x2f, 0xfb, 0xd5, 0xe5, 0x59, 0xba, 0x76, 0xc1, 0x33, 0xcf, + 0xfc, 0xc9, 0xf0, 0x7f, 0xc1, 0xa6, 0x4b, 0x50, 0x9d, 0x9c, 0xa3, 0x93, 0x4f, 0xda, 0x74, 0xd9, + 0x21, 0x2a, 0x6e, 0xe7, 0x2b, 0x07, 0x9d, 0x84, 0x7a, 0xc1, 0x2a, 0x2f, 0xfb, 0x8a, 0xfe, 0xa7, + 0x78, 0x0d, 0xaa, 0xfa, 0xca, 0x65, 0xfa, 0xc0, 0x22, 0xaf, 0xd0, 0xfc, 0xd0, 0xcb, 0x19, 0xa3, + 0x95, 0x37, 0x06, 0xfb, 0x0e, 0xac, 0xa1, 0x8e, 0xfa, 0xf2, 0x94, 0x34, 0xe5, 0xf8, 0xa1, 0xe3, + 0xc9, 0x81, 0x98, 0x06, 0x89, 0xe3, 0x0e, 0xa8, 0xf3, 0xb3, 0xf9, 0x2b, 0x63, 0x3f, 0xdc, 0x45, + 0x86, 0x13, 0x75, 0x18, 0xee, 0x6b, 0xea, 0xde, 0x80, 0xf2, 0x1b, 0xbd, 0xa4, 0x47, 0x83, 0x81, + 0x92, 0x09, 0xb5, 0x81, 0x36, 0xaf, 0x13, 0xf6, 0x84, 0xa0, 0x39, 0x8b, 0xf9, 0xf6, 0x6a, 0x8e, + 0x45, 0x67, 0x84, 0x0b, 0xef, 0x80, 0xec, 0x25, 0xef, 0x80, 0x05, 0x7f, 0xd6, 0xfb, 0x85, 0x05, + 0xab, 0xf9, 0xfb, 0xef, 0x83, 0xb4, 0x78, 0x0e, 0xc5, 0x64, 0x22, 0x43, 0x47, 0xa4, 0xef, 0x64, + 0x55, 0x0d, 0xec, 0xd0, 0xfb, 0x0d, 0x55, 0x20, 0xc7, 0x8d, 0xbc, 0x34, 0xa7, 0xd5, 0x08, 0xd9, + 0x8b, 0x3c, 0x2c, 0x5e, 0xfa, 0xef, 0x25, 0x67, 0x2c, 0x95, 0xc2, 0x6b, 0x93, 0x4e, 0xe0, 0x0d, + 0x02, 0x3f, 0xd6, 0xd8, 0x42, 0x02, 0xb1, 0xd3, 0xbb, 0x32, 0x25, 0x90, 0x7b, 0xdf, 0x87, 0xf6, + 0xb9, 0x93, 0xb3, 0x3a, 0x54, 0x7e, 0xf4, 0xf8, 0xe1, 0xe3, 0x27, 0x3f, 0x7e, 0xdc, 0x59, 0x61, + 0x15, 0x28, 0x3e, 0xfa, 0xf4, 0x7e, 0xc7, 0x62, 0x00, 0xe5, 0xe3, 0xc7, 0x3b, 0x47, 0x47, 0x3f, + 0xe9, 0x14, 0x58, 0x15, 0xec, 0x4f, 0x8f, 0x4f, 0xf6, 0x3b, 0xc5, 0x7b, 0x37, 0xa0, 0x9e, 0x4b, + 0x0a, 0xac, 0x0c, 0x85, 0x4f, 0xde, 0xee, 0xac, 0xd0, 0xef, 0x56, 0xc7, 0xba, 0x77, 0x0b, 0xaa, + 0xa9, 0x5b, 0xe0, 0x06, 0xfb, 0x32, 0x90, 0x89, 0xd4, 0xbb, 0x1e, 0x4d, 0x93, 0x8e, 0xb5, 0xf5, + 0x1b, 0x6c, 0xf9, 0x48, 0x15, 0xec, 0x7d, 0x30, 0xff, 0x9f, 0xb1, 0x2c, 0x25, 0x2e, 0xbc, 0x64, + 0xad, 0x5d, 0x3b, 0x0f, 0x9b, 0x7c, 0xbc, 0xf2, 0x96, 0xc5, 0x8e, 0xe0, 0x0a, 0x55, 0xf6, 0x7c, + 0x7d, 0x7d, 0x32, 0x61, 0xaf, 0x65, 0xd6, 0x39, 0xdf, 0x0c, 0xac, 0xad, 0x5d, 0x44, 0x9a, 0xef, + 0xb8, 0xf5, 0x27, 0x0b, 0xda, 0xe7, 0xaa, 0x00, 0xfb, 0x14, 0x2a, 0xa6, 0x30, 0xb2, 0x3b, 0x59, + 0x97, 0x70, 0x59, 0x01, 0x5f, 0xbb, 0xfb, 0x22, 0xb6, 0xf4, 0x8b, 0xec, 0x87, 0x60, 0x2b, 0x31, + 0x93, 0xac, 0xb7, 0x64, 0x45, 0xae, 0x52, 0xae, 0xdd, 0xbe, 0x94, 0x27, 0xdd, 0x72, 0xf7, 0xee, + 0xdf, 0xff, 0x58, 0xb5, 0x3e, 0xff, 0xfa, 0xa6, 0xf5, 0xe5, 0xd7, 0x37, 0xad, 0x7f, 0x7c, 0x7d, + 0xd3, 0xfa, 0xed, 0x3f, 0x6f, 0xae, 0x40, 0x27, 0x8a, 0x4f, 0x37, 0x13, 0x7f, 0x34, 0xdb, 0x1c, + 0xcd, 0xe8, 0x8f, 0xc4, 0x7e, 0x99, 0x7e, 0xb6, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x5c, 0x29, + 0xb2, 0x7d, 0xcc, 0x1c, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -4646,6 +4655,15 @@ func (m *S3) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.Provider) > 0 { + i -= len(m.Provider) + copy(dAtA[i:], m.Provider) + i = encodeVarintBrpb(dAtA, i, uint64(len(m.Provider))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } if len(m.SessionToken) > 0 { i -= len(m.SessionToken) copy(dAtA[i:], m.SessionToken) @@ -6378,6 +6396,10 @@ func (m *S3) Size() (n int) { if l > 0 { n += 1 + l + sovBrpb(uint64(l)) } + l = len(m.Provider) + if l > 0 { + n += 2 + l + sovBrpb(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -10460,6 +10482,38 @@ func (m *S3) Unmarshal(dAtA []byte) error { } m.SessionToken = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthBrpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthBrpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Provider = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipBrpb(dAtA[iNdEx:]) diff --git a/proto/brpb.proto b/proto/brpb.proto index 5fc24ae..3ac4acf 100644 --- a/proto/brpb.proto +++ b/proto/brpb.proto @@ -289,6 +289,7 @@ message S3 { string external_id = 13; bool object_lock_enabled = 14; string session_token = 15; + string provider = 16; } // GCS storage backend saves files into google cloud storage. -- Gitee From bfdb1d7eb15712cff7b6d833f757662da3a4f7f4 Mon Sep 17 00:00:00 2001 From: JaySon Date: Fri, 3 Mar 2023 15:50:49 +0800 Subject: [PATCH 10/44] Add rpc interface for tiflash disaggregated architecture (#1068) * Add proto for tiflash disaggregated read from s3 --------- Signed-off-by: JaySon-Huang --- pkg/disaggregated/disaggregated.pb.go | 3442 ++++++++++++++++++++----- pkg/kvrpcpb/kvrpcpb.pb.go | 8 +- pkg/tikvpb/tikvpb.pb.go | 404 +-- pkg/tracepb/tracepb.pb.go | 1 + proto/disaggregated.proto | 77 +- proto/tikvpb.proto | 4 + 6 files changed, 3183 insertions(+), 753 deletions(-) diff --git a/pkg/disaggregated/disaggregated.pb.go b/pkg/disaggregated/disaggregated.pb.go index 5ec49b0..26be2e8 100644 --- a/pkg/disaggregated/disaggregated.pb.go +++ b/pkg/disaggregated/disaggregated.pb.go @@ -10,6 +10,8 @@ import ( math_bits "math/bits" proto "github.com/golang/protobuf/proto" + coprocessor "github.com/pingcap/kvproto/pkg/coprocessor" + metapb "github.com/pingcap/kvproto/pkg/metapb" ) // Reference imports to suppress errors if they are not otherwise used. @@ -461,278 +463,565 @@ func (m *TryMarkDeleteResponse) GetResult() *S3LockResult { return nil } -func init() { - proto.RegisterType((*S3LockResult)(nil), "disaggregated.S3LockResult") - proto.RegisterType((*Success)(nil), "disaggregated.Success") - proto.RegisterType((*NotOwner)(nil), "disaggregated.NotOwner") - proto.RegisterType((*Conflict)(nil), "disaggregated.Conflict") - proto.RegisterType((*TryAddLockRequest)(nil), "disaggregated.TryAddLockRequest") - proto.RegisterType((*TryAddLockResponse)(nil), "disaggregated.TryAddLockResponse") - proto.RegisterType((*TryMarkDeleteRequest)(nil), "disaggregated.TryMarkDeleteRequest") - proto.RegisterType((*TryMarkDeleteResponse)(nil), "disaggregated.TryMarkDeleteResponse") +type DisaggTaskMeta struct { + StartTs uint64 `protobuf:"varint,1,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"` + // query_ts + server_id + local_query_id to represent a global unique query. + QueryTs uint64 `protobuf:"varint,2,opt,name=query_ts,json=queryTs,proto3" json:"query_ts,omitempty"` + ServerId uint64 `protobuf:"varint,3,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` + LocalQueryId uint64 `protobuf:"varint,4,opt,name=local_query_id,json=localQueryId,proto3" json:"local_query_id,omitempty"` + TaskId int64 `protobuf:"varint,5,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` + ExecutorId string `protobuf:"bytes,6,opt,name=executor_id,json=executorId,proto3" json:"executor_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func init() { proto.RegisterFile("disaggregated.proto", fileDescriptor_1026192e39a9f8dc) } - -var fileDescriptor_1026192e39a9f8dc = []byte{ - // 368 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x52, 0xcd, 0x4e, 0xea, 0x40, - 0x14, 0xa6, 0xf7, 0x72, 0x69, 0x39, 0x5c, 0x92, 0x7b, 0x47, 0xc5, 0x1a, 0x93, 0xc6, 0xcc, 0xca, - 0x55, 0x17, 0x10, 0x5d, 0xb8, 0x13, 0x8d, 0x81, 0x88, 0x9a, 0x14, 0xf6, 0x4d, 0x6d, 0x0f, 0x4d, - 0xd3, 0xa6, 0x03, 0x33, 0x03, 0xa6, 0x6f, 0xe2, 0xb3, 0xf8, 0x04, 0x2e, 0x7d, 0x04, 0x83, 0x2f, - 0x62, 0xa6, 0x4c, 0x13, 0x20, 0x6e, 0x8c, 0xab, 0x99, 0xf9, 0x7e, 0xe6, 0x7c, 0xe7, 0xcc, 0xc0, - 0x5e, 0x94, 0x88, 0x20, 0x8e, 0x39, 0xc6, 0x81, 0xc4, 0xc8, 0x9d, 0x71, 0x26, 0x19, 0x69, 0x6f, - 0x81, 0xf4, 0xc5, 0x80, 0xbf, 0xe3, 0xde, 0x88, 0x85, 0xa9, 0x87, 0x62, 0x91, 0x49, 0xd2, 0x05, - 0x53, 0x2c, 0xc2, 0x10, 0x85, 0xb0, 0x8d, 0x13, 0xe3, 0xb4, 0xd5, 0xed, 0xb8, 0xdb, 0xd7, 0x8c, - 0xd7, 0xec, 0xa0, 0xe6, 0x55, 0x42, 0x72, 0x0e, 0xcd, 0x9c, 0x49, 0x9f, 0x3d, 0xe5, 0xc8, 0xed, - 0x5f, 0xa5, 0xeb, 0x70, 0xc7, 0x75, 0xcf, 0xe4, 0x83, 0xa2, 0x07, 0x35, 0xcf, 0xca, 0xf5, 0x9e, - 0x9c, 0x81, 0x15, 0xb2, 0x7c, 0x9a, 0x25, 0xa1, 0xb4, 0x7f, 0x7f, 0x69, 0xbb, 0xd2, 0xb4, 0xb2, - 0x55, 0xd2, 0xbe, 0x09, 0x7f, 0x90, 0x73, 0xc6, 0x69, 0x13, 0x4c, 0x9d, 0x86, 0x02, 0x58, 0x55, - 0x09, 0x4a, 0xc1, 0xaa, 0x7c, 0xa4, 0x03, 0x0d, 0x8e, 0x81, 0x60, 0x79, 0xd9, 0x4d, 0xd3, 0xd3, - 0x27, 0xba, 0x84, 0xff, 0x13, 0x5e, 0x5c, 0x46, 0xd1, 0xba, 0xf5, 0xf9, 0x02, 0x85, 0x24, 0x14, - 0xda, 0x51, 0x20, 0x03, 0x7f, 0x9a, 0x64, 0xe8, 0xa7, 0x58, 0x68, 0x4f, 0x4b, 0x81, 0x37, 0x49, - 0x86, 0xb7, 0x58, 0x28, 0x4d, 0xc6, 0xc2, 0xd4, 0x17, 0x92, 0x71, 0xf4, 0x93, 0xa8, 0x0c, 0x5e, - 0xf7, 0x5a, 0x0a, 0x1c, 0x2b, 0x6c, 0x18, 0x91, 0x23, 0xb0, 0xd6, 0x1a, 0x9c, 0xdb, 0xf5, 0x92, - 0x36, 0x4b, 0x1a, 0xe7, 0x74, 0x08, 0x64, 0xb3, 0xae, 0x98, 0xb1, 0x5c, 0x20, 0xe9, 0xa9, 0x94, - 0x6a, 0xfc, 0x7a, 0xe6, 0xc7, 0xbb, 0x33, 0xdf, 0x78, 0x21, 0x4f, 0x4b, 0xe9, 0x05, 0xec, 0x4f, - 0x78, 0x71, 0x17, 0xf0, 0xf4, 0x1a, 0x33, 0x94, 0xf8, 0x8d, 0x2e, 0xe8, 0x08, 0x0e, 0x76, 0xbc, - 0x3f, 0x48, 0xd2, 0xa7, 0xaf, 0x2b, 0xc7, 0x78, 0x5b, 0x39, 0xc6, 0xfb, 0xca, 0x31, 0x9e, 0x3f, - 0x9c, 0x1a, 0xfc, 0x63, 0x3c, 0x76, 0x65, 0x92, 0x2e, 0xdd, 0x74, 0x59, 0xfe, 0xbb, 0xc7, 0x46, - 0xb9, 0xf4, 0x3e, 0x03, 0x00, 0x00, 0xff, 0xff, 0xe2, 0x41, 0x32, 0xe4, 0x95, 0x02, 0x00, 0x00, +func (m *DisaggTaskMeta) Reset() { *m = DisaggTaskMeta{} } +func (m *DisaggTaskMeta) String() string { return proto.CompactTextString(m) } +func (*DisaggTaskMeta) ProtoMessage() {} +func (*DisaggTaskMeta) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{8} +} +func (m *DisaggTaskMeta) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DisaggTaskMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DisaggTaskMeta.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DisaggTaskMeta) XXX_Merge(src proto.Message) { + xxx_messageInfo_DisaggTaskMeta.Merge(m, src) +} +func (m *DisaggTaskMeta) XXX_Size() int { + return m.Size() +} +func (m *DisaggTaskMeta) XXX_DiscardUnknown() { + xxx_messageInfo_DisaggTaskMeta.DiscardUnknown(m) } -func (m *S3LockResult) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +var xxx_messageInfo_DisaggTaskMeta proto.InternalMessageInfo + +func (m *DisaggTaskMeta) GetStartTs() uint64 { + if m != nil { + return m.StartTs } - return dAtA[:n], nil + return 0 } -func (m *S3LockResult) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *DisaggTaskMeta) GetQueryTs() uint64 { + if m != nil { + return m.QueryTs + } + return 0 } -func (m *S3LockResult) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) +func (m *DisaggTaskMeta) GetServerId() uint64 { + if m != nil { + return m.ServerId } - if m.Error != nil { - { - size := m.Error.Size() - i -= size - if _, err := m.Error.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } + return 0 +} + +func (m *DisaggTaskMeta) GetLocalQueryId() uint64 { + if m != nil { + return m.LocalQueryId } - return len(dAtA) - i, nil + return 0 } -func (m *S3LockResult_Success) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *DisaggTaskMeta) GetTaskId() int64 { + if m != nil { + return m.TaskId + } + return 0 } -func (m *S3LockResult_Success) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Success != nil { - { - size, err := m.Success.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDisaggregated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa +func (m *DisaggTaskMeta) GetExecutorId() string { + if m != nil { + return m.ExecutorId } - return len(dAtA) - i, nil + return "" } -func (m *S3LockResult_NotOwner) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) + +type DisaggReadError struct { + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *S3LockResult_NotOwner) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.NotOwner != nil { - { - size, err := m.NotOwner.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDisaggregated(dAtA, i, uint64(size)) +func (m *DisaggReadError) Reset() { *m = DisaggReadError{} } +func (m *DisaggReadError) String() string { return proto.CompactTextString(m) } +func (*DisaggReadError) ProtoMessage() {} +func (*DisaggReadError) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{9} +} +func (m *DisaggReadError) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DisaggReadError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DisaggReadError.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err } - i-- - dAtA[i] = 0x12 + return b[:n], nil } - return len(dAtA) - i, nil } -func (m *S3LockResult_Conflict) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *DisaggReadError) XXX_Merge(src proto.Message) { + xxx_messageInfo_DisaggReadError.Merge(m, src) +} +func (m *DisaggReadError) XXX_Size() int { + return m.Size() +} +func (m *DisaggReadError) XXX_DiscardUnknown() { + xxx_messageInfo_DisaggReadError.DiscardUnknown(m) } -func (m *S3LockResult_Conflict) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Conflict != nil { - { - size, err := m.Conflict.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDisaggregated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a +var xxx_messageInfo_DisaggReadError proto.InternalMessageInfo + +func (m *DisaggReadError) GetCode() int32 { + if m != nil { + return m.Code } - return len(dAtA) - i, nil + return 0 } -func (m *Success) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err + +func (m *DisaggReadError) GetMsg() string { + if m != nil { + return m.Msg } - return dAtA[:n], nil + return "" } -func (m *Success) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +type EstablishDisaggTaskRequest struct { + Meta *DisaggTaskMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + // The write node needs to ensure that subsequent + // FetchDisaggPagesRequest can be processed within timeout_s. + // unit: seconds + TimeoutS int64 `protobuf:"varint,3,opt,name=timeout_s,json=timeoutS,proto3" json:"timeout_s,omitempty"` + // The key ranges, Region meta that read node need to execute TableScan + Regions []*coprocessor.RegionInfo `protobuf:"bytes,4,rep,name=regions,proto3" json:"regions,omitempty"` + SchemaVer int64 `protobuf:"varint,5,opt,name=schema_ver,json=schemaVer,proto3" json:"schema_ver,omitempty"` + // Used for PartitionTableScan + TableRegions []*coprocessor.TableRegions `protobuf:"bytes,6,rep,name=table_regions,json=tableRegions,proto3" json:"table_regions,omitempty"` + // The encoded TableScan/PartitionTableScan + Selection. + EncodedPlan []byte `protobuf:"bytes,7,opt,name=encoded_plan,json=encodedPlan,proto3" json:"encoded_plan,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *Success) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) +func (m *EstablishDisaggTaskRequest) Reset() { *m = EstablishDisaggTaskRequest{} } +func (m *EstablishDisaggTaskRequest) String() string { return proto.CompactTextString(m) } +func (*EstablishDisaggTaskRequest) ProtoMessage() {} +func (*EstablishDisaggTaskRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{10} +} +func (m *EstablishDisaggTaskRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EstablishDisaggTaskRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EstablishDisaggTaskRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return len(dAtA) - i, nil +} +func (m *EstablishDisaggTaskRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_EstablishDisaggTaskRequest.Merge(m, src) +} +func (m *EstablishDisaggTaskRequest) XXX_Size() int { + return m.Size() +} +func (m *EstablishDisaggTaskRequest) XXX_DiscardUnknown() { + xxx_messageInfo_EstablishDisaggTaskRequest.DiscardUnknown(m) } -func (m *NotOwner) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +var xxx_messageInfo_EstablishDisaggTaskRequest proto.InternalMessageInfo + +func (m *EstablishDisaggTaskRequest) GetMeta() *DisaggTaskMeta { + if m != nil { + return m.Meta } - return dAtA[:n], nil + return nil } -func (m *NotOwner) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *EstablishDisaggTaskRequest) GetAddress() string { + if m != nil { + return m.Address + } + return "" } -func (m *NotOwner) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) +func (m *EstablishDisaggTaskRequest) GetTimeoutS() int64 { + if m != nil { + return m.TimeoutS } - return len(dAtA) - i, nil + return 0 } -func (m *Conflict) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *EstablishDisaggTaskRequest) GetRegions() []*coprocessor.RegionInfo { + if m != nil { + return m.Regions } - return dAtA[:n], nil + return nil } -func (m *Conflict) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *EstablishDisaggTaskRequest) GetSchemaVer() int64 { + if m != nil { + return m.SchemaVer + } + return 0 } -func (m *Conflict) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.Reason) > 0 { - i -= len(m.Reason) - copy(dAtA[i:], m.Reason) - i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Reason))) - i-- - dAtA[i] = 0xa +func (m *EstablishDisaggTaskRequest) GetTableRegions() []*coprocessor.TableRegions { + if m != nil { + return m.TableRegions } - return len(dAtA) - i, nil + return nil } -func (m *TryAddLockRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *EstablishDisaggTaskRequest) GetEncodedPlan() []byte { + if m != nil { + return m.EncodedPlan } - return dAtA[:n], nil + return nil } -func (m *TryAddLockRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +type EstablishDisaggTaskResponse struct { + Error *DisaggReadError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + // The read node needs to update its region cache about + // these regions + RetryRegions []*metapb.Region `protobuf:"bytes,2,rep,name=retry_regions,json=retryRegions,proto3" json:"retry_regions,omitempty"` + // Write node maintains a snapshot with a lease time. + // Read node should read the delta pages + // (ColumnFileInMemory and ColumnFileTiny) + // along with this store_id and snapshot_id. + StoreId uint64 `protobuf:"varint,3,opt,name=store_id,json=storeId,proto3" json:"store_id,omitempty"` + SnapshotId *DisaggTaskMeta `protobuf:"bytes,4,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + // Serialized disaggregated tasks (per physical table) + Tables [][]byte `protobuf:"bytes,5,rep,name=tables,proto3" json:"tables,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *TryAddLockRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) +func (m *EstablishDisaggTaskResponse) Reset() { *m = EstablishDisaggTaskResponse{} } +func (m *EstablishDisaggTaskResponse) String() string { return proto.CompactTextString(m) } +func (*EstablishDisaggTaskResponse) ProtoMessage() {} +func (*EstablishDisaggTaskResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{11} +} +func (m *EstablishDisaggTaskResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EstablishDisaggTaskResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EstablishDisaggTaskResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - if m.LockSeq != 0 { - i = encodeVarintDisaggregated(dAtA, i, uint64(m.LockSeq)) - i-- - dAtA[i] = 0x20 +} +func (m *EstablishDisaggTaskResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_EstablishDisaggTaskResponse.Merge(m, src) +} +func (m *EstablishDisaggTaskResponse) XXX_Size() int { + return m.Size() +} +func (m *EstablishDisaggTaskResponse) XXX_DiscardUnknown() { + xxx_messageInfo_EstablishDisaggTaskResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_EstablishDisaggTaskResponse proto.InternalMessageInfo + +func (m *EstablishDisaggTaskResponse) GetError() *DisaggReadError { + if m != nil { + return m.Error } - if m.LockStoreId != 0 { - i = encodeVarintDisaggregated(dAtA, i, uint64(m.LockStoreId)) - i-- - dAtA[i] = 0x18 + return nil +} + +func (m *EstablishDisaggTaskResponse) GetRetryRegions() []*metapb.Region { + if m != nil { + return m.RetryRegions } - if len(m.DataFileKey) > 0 { - i -= len(m.DataFileKey) - copy(dAtA[i:], m.DataFileKey) - i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.DataFileKey))) - i-- - dAtA[i] = 0xa + return nil +} + +func (m *EstablishDisaggTaskResponse) GetStoreId() uint64 { + if m != nil { + return m.StoreId } - return len(dAtA) - i, nil + return 0 } -func (m *TryAddLockResponse) Marshal() (dAtA []byte, err error) { +func (m *EstablishDisaggTaskResponse) GetSnapshotId() *DisaggTaskMeta { + if m != nil { + return m.SnapshotId + } + return nil +} + +func (m *EstablishDisaggTaskResponse) GetTables() [][]byte { + if m != nil { + return m.Tables + } + return nil +} + +type FetchDisaggPagesRequest struct { + // The snapshot id to fetch pages + SnapshotId *DisaggTaskMeta `protobuf:"bytes,1,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + TableId int64 `protobuf:"varint,2,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` + SegmentId uint64 `protobuf:"varint,3,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"` + // It must be a subset of the delta pages ids returned + // in EstablishDisaggTaskResponse.segments + PageIds []uint64 `protobuf:"varint,4,rep,packed,name=page_ids,json=pageIds,proto3" json:"page_ids,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FetchDisaggPagesRequest) Reset() { *m = FetchDisaggPagesRequest{} } +func (m *FetchDisaggPagesRequest) String() string { return proto.CompactTextString(m) } +func (*FetchDisaggPagesRequest) ProtoMessage() {} +func (*FetchDisaggPagesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{12} +} +func (m *FetchDisaggPagesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FetchDisaggPagesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_FetchDisaggPagesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *FetchDisaggPagesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_FetchDisaggPagesRequest.Merge(m, src) +} +func (m *FetchDisaggPagesRequest) XXX_Size() int { + return m.Size() +} +func (m *FetchDisaggPagesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_FetchDisaggPagesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_FetchDisaggPagesRequest proto.InternalMessageInfo + +func (m *FetchDisaggPagesRequest) GetSnapshotId() *DisaggTaskMeta { + if m != nil { + return m.SnapshotId + } + return nil +} + +func (m *FetchDisaggPagesRequest) GetTableId() int64 { + if m != nil { + return m.TableId + } + return 0 +} + +func (m *FetchDisaggPagesRequest) GetSegmentId() uint64 { + if m != nil { + return m.SegmentId + } + return 0 +} + +func (m *FetchDisaggPagesRequest) GetPageIds() []uint64 { + if m != nil { + return m.PageIds + } + return nil +} + +type PagesPacket struct { + Error *DisaggReadError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + // Serialized column file data + // * ColumnFilePersisted alone with its schema, page data, field offsets + Pages [][]byte `protobuf:"bytes,2,rep,name=pages,proto3" json:"pages,omitempty"` + // * ColumnFileInMemory alone with its serialized block + Chunks [][]byte `protobuf:"bytes,3,rep,name=chunks,proto3" json:"chunks,omitempty"` + // Return tipb.SelectResponse.execution_summaries in the + // last packet + Summaries [][]byte `protobuf:"bytes,4,rep,name=summaries,proto3" json:"summaries,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PagesPacket) Reset() { *m = PagesPacket{} } +func (m *PagesPacket) String() string { return proto.CompactTextString(m) } +func (*PagesPacket) ProtoMessage() {} +func (*PagesPacket) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{13} +} +func (m *PagesPacket) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PagesPacket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PagesPacket.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PagesPacket) XXX_Merge(src proto.Message) { + xxx_messageInfo_PagesPacket.Merge(m, src) +} +func (m *PagesPacket) XXX_Size() int { + return m.Size() +} +func (m *PagesPacket) XXX_DiscardUnknown() { + xxx_messageInfo_PagesPacket.DiscardUnknown(m) +} + +var xxx_messageInfo_PagesPacket proto.InternalMessageInfo + +func (m *PagesPacket) GetError() *DisaggReadError { + if m != nil { + return m.Error + } + return nil +} + +func (m *PagesPacket) GetPages() [][]byte { + if m != nil { + return m.Pages + } + return nil +} + +func (m *PagesPacket) GetChunks() [][]byte { + if m != nil { + return m.Chunks + } + return nil +} + +func (m *PagesPacket) GetSummaries() [][]byte { + if m != nil { + return m.Summaries + } + return nil +} + +func init() { + proto.RegisterType((*S3LockResult)(nil), "disaggregated.S3LockResult") + proto.RegisterType((*Success)(nil), "disaggregated.Success") + proto.RegisterType((*NotOwner)(nil), "disaggregated.NotOwner") + proto.RegisterType((*Conflict)(nil), "disaggregated.Conflict") + proto.RegisterType((*TryAddLockRequest)(nil), "disaggregated.TryAddLockRequest") + proto.RegisterType((*TryAddLockResponse)(nil), "disaggregated.TryAddLockResponse") + proto.RegisterType((*TryMarkDeleteRequest)(nil), "disaggregated.TryMarkDeleteRequest") + proto.RegisterType((*TryMarkDeleteResponse)(nil), "disaggregated.TryMarkDeleteResponse") + proto.RegisterType((*DisaggTaskMeta)(nil), "disaggregated.DisaggTaskMeta") + proto.RegisterType((*DisaggReadError)(nil), "disaggregated.DisaggReadError") + proto.RegisterType((*EstablishDisaggTaskRequest)(nil), "disaggregated.EstablishDisaggTaskRequest") + proto.RegisterType((*EstablishDisaggTaskResponse)(nil), "disaggregated.EstablishDisaggTaskResponse") + proto.RegisterType((*FetchDisaggPagesRequest)(nil), "disaggregated.FetchDisaggPagesRequest") + proto.RegisterType((*PagesPacket)(nil), "disaggregated.PagesPacket") +} + +func init() { proto.RegisterFile("disaggregated.proto", fileDescriptor_1026192e39a9f8dc) } + +var fileDescriptor_1026192e39a9f8dc = []byte{ + // 872 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcd, 0x6e, 0x23, 0x45, + 0x10, 0xce, 0xc4, 0x3f, 0x63, 0x97, 0x27, 0x61, 0xb7, 0x59, 0x36, 0x4e, 0xc2, 0x1a, 0x33, 0xe2, + 0x90, 0x93, 0xa5, 0xdd, 0xf0, 0x23, 0x71, 0x58, 0x89, 0x65, 0x77, 0xb5, 0x23, 0x76, 0x21, 0x74, + 0x2c, 0xae, 0xa3, 0xce, 0x74, 0x65, 0x32, 0x9a, 0xf1, 0xb4, 0xd3, 0xdd, 0x36, 0xf8, 0x29, 0xb8, + 0xf2, 0x14, 0x3c, 0x00, 0x1c, 0xb9, 0x70, 0xe4, 0x11, 0x50, 0x78, 0x0c, 0x2e, 0xa8, 0x7f, 0x66, + 0x13, 0x5b, 0x91, 0x50, 0xe0, 0xe4, 0xae, 0xaf, 0xea, 0xeb, 0xae, 0xfa, 0xaa, 0x6a, 0x0c, 0xef, + 0xf2, 0x42, 0xb1, 0x3c, 0x97, 0x98, 0x33, 0x8d, 0x7c, 0x32, 0x97, 0x42, 0x0b, 0xb2, 0xb3, 0x06, + 0x1e, 0xdc, 0xcf, 0xc4, 0x5c, 0x8a, 0x0c, 0x95, 0x12, 0xd2, 0x45, 0x1c, 0x44, 0x33, 0xd4, 0x6c, + 0x7e, 0xe6, 0xac, 0xf8, 0x97, 0x00, 0xa2, 0xd3, 0xe3, 0xd7, 0x22, 0x2b, 0x29, 0xaa, 0x45, 0xa5, + 0xc9, 0x13, 0x08, 0xd5, 0x22, 0x33, 0x8c, 0x61, 0x30, 0x0e, 0x8e, 0x06, 0x4f, 0x1e, 0x4e, 0xd6, + 0xdf, 0x39, 0x75, 0xde, 0x57, 0x5b, 0xb4, 0x09, 0x24, 0x9f, 0x42, 0xbf, 0x16, 0x3a, 0x15, 0xdf, + 0xd7, 0x28, 0x87, 0xdb, 0x96, 0xb5, 0xb7, 0xc1, 0xfa, 0x5a, 0xe8, 0x6f, 0x8c, 0xfb, 0xd5, 0x16, + 0xed, 0xd5, 0xfe, 0x4c, 0x3e, 0x81, 0x5e, 0x26, 0xea, 0xf3, 0xaa, 0xc8, 0xf4, 0xb0, 0x75, 0x2b, + 0xed, 0x4b, 0xef, 0x36, 0xb4, 0x26, 0xf4, 0x59, 0x08, 0x1d, 0x94, 0x52, 0xc8, 0xb8, 0x0f, 0xa1, + 0xcf, 0x26, 0x06, 0xe8, 0x35, 0x4f, 0xc4, 0x31, 0xf4, 0x1a, 0x1e, 0x79, 0x08, 0x5d, 0x89, 0x4c, + 0x89, 0xda, 0x56, 0xd3, 0xa7, 0xde, 0x8a, 0x97, 0x70, 0x7f, 0x2a, 0x57, 0x5f, 0x70, 0xee, 0x4a, + 0xbf, 0x5c, 0xa0, 0xd2, 0x24, 0x86, 0x1d, 0xce, 0x34, 0x4b, 0xcf, 0x8b, 0x0a, 0xd3, 0x12, 0x57, + 0x9e, 0x33, 0x30, 0xe0, 0xcb, 0xa2, 0xc2, 0xaf, 0x70, 0x65, 0x62, 0x2a, 0x91, 0x95, 0xa9, 0xd2, + 0x42, 0x62, 0x5a, 0x70, 0x9b, 0x78, 0x9b, 0x0e, 0x0c, 0x78, 0x6a, 0xb0, 0x84, 0x93, 0x7d, 0xe8, + 0xb9, 0x18, 0xbc, 0x1c, 0xb6, 0xad, 0x3b, 0xb4, 0x6e, 0xbc, 0x8c, 0x13, 0x20, 0x37, 0xdf, 0x55, + 0x73, 0x51, 0x2b, 0x24, 0xc7, 0x26, 0x4b, 0x23, 0xbf, 0xd7, 0xfc, 0x70, 0x53, 0xf3, 0x1b, 0x1d, + 0xa2, 0x3e, 0x34, 0xfe, 0x1c, 0x1e, 0x4c, 0xe5, 0xea, 0x0d, 0x93, 0xe5, 0x73, 0xac, 0x50, 0xe3, + 0x1d, 0xaa, 0x88, 0x5f, 0xc3, 0x7b, 0x1b, 0xdc, 0xff, 0x93, 0xc9, 0x6f, 0x01, 0xec, 0x3e, 0xb7, + 0x61, 0x53, 0xa6, 0xca, 0x37, 0xa8, 0x99, 0x91, 0x40, 0x69, 0x26, 0x75, 0xaa, 0xdd, 0x1c, 0xb5, + 0x69, 0x68, 0xed, 0xa9, 0x32, 0xae, 0xcb, 0x05, 0xca, 0x95, 0x71, 0x6d, 0x3b, 0x97, 0xb5, 0xa7, + 0x8a, 0x1c, 0x42, 0x5f, 0xa1, 0x5c, 0xa2, 0xbc, 0x16, 0xb6, 0xe7, 0x80, 0x84, 0x93, 0x8f, 0x60, + 0xb7, 0x12, 0x19, 0xab, 0x52, 0xc7, 0x2e, 0xb8, 0xd7, 0x36, 0xb2, 0xe8, 0xb7, 0x06, 0x4c, 0x38, + 0xd9, 0x83, 0x50, 0x33, 0x55, 0x1a, 0x77, 0x67, 0x1c, 0x1c, 0xb5, 0x68, 0xd7, 0x98, 0x09, 0x27, + 0x1f, 0xc0, 0x00, 0x7f, 0xc0, 0x6c, 0xa1, 0x85, 0xbd, 0xbd, 0x6b, 0x45, 0x81, 0x06, 0x4a, 0x78, + 0xfc, 0x19, 0xbc, 0xe3, 0x8a, 0xa0, 0xc8, 0xf8, 0x0b, 0x33, 0x60, 0x84, 0x40, 0x3b, 0x13, 0x1c, + 0x6d, 0x05, 0x1d, 0x6a, 0xcf, 0xe4, 0x1e, 0xb4, 0x66, 0x2a, 0xb7, 0x99, 0xf7, 0xa9, 0x39, 0xc6, + 0xbf, 0x6e, 0xc3, 0xc1, 0x0b, 0xa5, 0xd9, 0x59, 0x55, 0xa8, 0x8b, 0x6b, 0x1d, 0x9a, 0x7e, 0x3c, + 0x86, 0xb6, 0x59, 0x39, 0x2f, 0xe8, 0xa3, 0x0d, 0x41, 0xd7, 0x75, 0xa3, 0x36, 0x94, 0x0c, 0x21, + 0x64, 0x9c, 0x4b, 0xb3, 0x84, 0xee, 0x9d, 0xc6, 0x34, 0x0a, 0xe9, 0x62, 0x86, 0x62, 0xa1, 0x53, + 0x65, 0x15, 0x6a, 0xd1, 0x9e, 0x07, 0x4e, 0xc9, 0x63, 0x08, 0x25, 0xe6, 0x85, 0xa8, 0xd5, 0xb0, + 0x3d, 0x6e, 0xd9, 0x75, 0xba, 0xb9, 0xff, 0xd4, 0xfa, 0x92, 0xfa, 0x5c, 0xd0, 0x26, 0x8e, 0x3c, + 0x02, 0x50, 0xd9, 0x05, 0xce, 0x58, 0xba, 0x44, 0xe9, 0x15, 0xeb, 0x3b, 0xe4, 0x3b, 0x94, 0xe4, + 0x29, 0xec, 0x98, 0xba, 0x30, 0x6d, 0xee, 0xed, 0xda, 0x7b, 0xf7, 0xd7, 0xee, 0x9d, 0x9a, 0x08, + 0x77, 0xb9, 0xa2, 0x91, 0xbe, 0x61, 0x91, 0x0f, 0x21, 0xc2, 0xda, 0xc8, 0xc6, 0xd3, 0x79, 0xc5, + 0xea, 0x61, 0x38, 0x0e, 0x8e, 0x22, 0x3a, 0xf0, 0xd8, 0x49, 0xc5, 0xea, 0xf8, 0xef, 0x00, 0x0e, + 0x6f, 0x55, 0xcf, 0x4f, 0xe4, 0xc7, 0x7e, 0xdb, 0xbd, 0x7e, 0xa3, 0x5b, 0xf5, 0x7b, 0xdb, 0x32, + 0xea, 0x82, 0xc9, 0x31, 0xec, 0x48, 0xd4, 0x72, 0xf5, 0x36, 0xf1, 0x6d, 0x9b, 0xf8, 0xee, 0xc4, + 0x7f, 0xfd, 0x5c, 0x82, 0x34, 0xb2, 0x41, 0x4d, 0xb6, 0x76, 0x68, 0xd7, 0xd6, 0x3a, 0x54, 0x7e, + 0xa5, 0x9f, 0xc2, 0x40, 0xd5, 0x6c, 0xae, 0x2e, 0x84, 0x6e, 0x26, 0xef, 0x5f, 0x7b, 0x09, 0x0d, + 0x23, 0xe1, 0xe6, 0x3b, 0x64, 0x85, 0x51, 0xc3, 0xce, 0xb8, 0x75, 0x14, 0x51, 0x6f, 0xc5, 0x3f, + 0x07, 0xb0, 0xf7, 0x12, 0x75, 0xe6, 0x2b, 0x3f, 0x61, 0x39, 0xaa, 0x66, 0x70, 0x36, 0xde, 0x0c, + 0xee, 0xfa, 0xe6, 0x3e, 0xf4, 0x5c, 0xf3, 0x0a, 0x6e, 0xc7, 0xa8, 0x45, 0x43, 0x6b, 0x27, 0xdc, + 0xb6, 0x1d, 0xf3, 0x19, 0xd6, 0xfa, 0xba, 0xd6, 0xbe, 0x47, 0x1c, 0x73, 0xce, 0x72, 0x43, 0x74, + 0x93, 0xd4, 0xa6, 0xa1, 0xb1, 0x13, 0xae, 0xe2, 0x1f, 0x03, 0x18, 0xd8, 0x2c, 0x4f, 0x58, 0x56, + 0xa2, 0xfe, 0x8f, 0xed, 0x79, 0x00, 0x1d, 0x73, 0xa1, 0x6b, 0x4b, 0x44, 0x9d, 0x61, 0x44, 0xca, + 0x2e, 0x16, 0x75, 0x69, 0x26, 0xdb, 0x8a, 0xe4, 0x2c, 0xf2, 0x3e, 0xf4, 0xd5, 0x62, 0x36, 0x63, + 0xb2, 0x40, 0x97, 0x4f, 0x44, 0xaf, 0x81, 0x67, 0xf1, 0xef, 0x57, 0xa3, 0xe0, 0x8f, 0xab, 0x51, + 0xf0, 0xe7, 0xd5, 0x28, 0xf8, 0xe9, 0xaf, 0xd1, 0x16, 0xdc, 0x13, 0x32, 0x9f, 0xe8, 0xa2, 0x5c, + 0x4e, 0xca, 0xa5, 0xfd, 0x9b, 0x3b, 0xeb, 0xda, 0x9f, 0xe3, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, + 0x75, 0x05, 0x68, 0x9e, 0x34, 0x07, 0x00, 0x00, +} + +func (m *S3LockResult) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -742,12 +1031,12 @@ func (m *TryAddLockResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TryAddLockResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *S3LockResult) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TryAddLockResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *S3LockResult) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -756,9 +1045,28 @@ func (m *TryAddLockResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.Result != nil { + if m.Error != nil { { - size, err := m.Result.MarshalToSizedBuffer(dAtA[:i]) + size := m.Error.Size() + i -= size + if _, err := m.Error.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *S3LockResult_Success) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *S3LockResult_Success) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Success != nil { + { + size, err := m.Success.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -770,8 +1078,49 @@ func (m *TryAddLockResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { } return len(dAtA) - i, nil } +func (m *S3LockResult_NotOwner) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} -func (m *TryMarkDeleteRequest) Marshal() (dAtA []byte, err error) { +func (m *S3LockResult_NotOwner) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.NotOwner != nil { + { + size, err := m.NotOwner.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *S3LockResult_Conflict) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *S3LockResult_Conflict) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Conflict != nil { + { + size, err := m.Conflict.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *Success) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -781,12 +1130,12 @@ func (m *TryMarkDeleteRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TryMarkDeleteRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *Success) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TryMarkDeleteRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *Success) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -795,17 +1144,10 @@ func (m *TryMarkDeleteRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if len(m.DataFileKey) > 0 { - i -= len(m.DataFileKey) - copy(dAtA[i:], m.DataFileKey) - i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.DataFileKey))) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *TryMarkDeleteResponse) Marshal() (dAtA []byte, err error) { +func (m *NotOwner) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -815,12 +1157,12 @@ func (m *TryMarkDeleteResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TryMarkDeleteResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *NotOwner) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TryMarkDeleteResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *NotOwner) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -829,154 +1171,619 @@ func (m *TryMarkDeleteResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.Result != nil { - { - size, err := m.Result.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDisaggregated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func encodeVarintDisaggregated(dAtA []byte, offset int, v uint64) int { - offset -= sovDisaggregated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *Conflict) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - dAtA[offset] = uint8(v) - return base + return dAtA[:n], nil } -func (m *S3LockResult) Size() (n int) { - if m == nil { - return 0 - } + +func (m *Conflict) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Conflict) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.Error != nil { - n += m.Error.Size() - } if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - return n + if len(m.Reason) > 0 { + i -= len(m.Reason) + copy(dAtA[i:], m.Reason) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Reason))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *S3LockResult_Success) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Success != nil { - l = m.Success.Size() - n += 1 + l + sovDisaggregated(uint64(l)) +func (m *TryAddLockRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - return n + return dAtA[:n], nil } -func (m *S3LockResult_NotOwner) Size() (n int) { - if m == nil { - return 0 - } + +func (m *TryAddLockRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TryAddLockRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.NotOwner != nil { - l = m.NotOwner.Size() - n += 1 + l + sovDisaggregated(uint64(l)) + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - return n -} -func (m *S3LockResult_Conflict) Size() (n int) { - if m == nil { - return 0 + if m.LockSeq != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.LockSeq)) + i-- + dAtA[i] = 0x20 } - var l int - _ = l - if m.Conflict != nil { - l = m.Conflict.Size() - n += 1 + l + sovDisaggregated(uint64(l)) + if m.LockStoreId != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.LockStoreId)) + i-- + dAtA[i] = 0x18 } - return n + if len(m.DataFileKey) > 0 { + i -= len(m.DataFileKey) + copy(dAtA[i:], m.DataFileKey) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.DataFileKey))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *Success) Size() (n int) { - if m == nil { - return 0 + +func (m *TryAddLockResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *TryAddLockResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TryAddLockResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - return n + if m.Result != nil { + { + size, err := m.Result.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *NotOwner) Size() (n int) { - if m == nil { - return 0 +func (m *TryMarkDeleteRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *TryMarkDeleteRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TryMarkDeleteRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - return n + if len(m.DataFileKey) > 0 { + i -= len(m.DataFileKey) + copy(dAtA[i:], m.DataFileKey) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.DataFileKey))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *Conflict) Size() (n int) { - if m == nil { - return 0 +func (m *TryMarkDeleteResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *TryMarkDeleteResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TryMarkDeleteResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = len(m.Reason) - if l > 0 { - n += 1 + l + sovDisaggregated(uint64(l)) - } if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - return n + if m.Result != nil { + { + size, err := m.Result.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *TryAddLockRequest) Size() (n int) { - if m == nil { - return 0 +func (m *DisaggTaskMeta) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *DisaggTaskMeta) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DisaggTaskMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = len(m.DataFileKey) - if l > 0 { - n += 1 + l + sovDisaggregated(uint64(l)) - } - if m.LockStoreId != 0 { - n += 1 + sovDisaggregated(uint64(m.LockStoreId)) + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - if m.LockSeq != 0 { - n += 1 + sovDisaggregated(uint64(m.LockSeq)) + if len(m.ExecutorId) > 0 { + i -= len(m.ExecutorId) + copy(dAtA[i:], m.ExecutorId) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.ExecutorId))) + i-- + dAtA[i] = 0x32 + } + if m.TaskId != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.TaskId)) + i-- + dAtA[i] = 0x28 + } + if m.LocalQueryId != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.LocalQueryId)) + i-- + dAtA[i] = 0x20 + } + if m.ServerId != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.ServerId)) + i-- + dAtA[i] = 0x18 + } + if m.QueryTs != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.QueryTs)) + i-- + dAtA[i] = 0x10 + } + if m.StartTs != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.StartTs)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *DisaggReadError) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *DisaggReadError) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DisaggReadError) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - return n + if len(m.Msg) > 0 { + i -= len(m.Msg) + copy(dAtA[i:], m.Msg) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Msg))) + i-- + dAtA[i] = 0x12 + } + if m.Code != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil } -func (m *TryAddLockResponse) Size() (n int) { +func (m *EstablishDisaggTaskRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EstablishDisaggTaskRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EstablishDisaggTaskRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.EncodedPlan) > 0 { + i -= len(m.EncodedPlan) + copy(dAtA[i:], m.EncodedPlan) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.EncodedPlan))) + i-- + dAtA[i] = 0x3a + } + if len(m.TableRegions) > 0 { + for iNdEx := len(m.TableRegions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.TableRegions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } + if m.SchemaVer != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.SchemaVer)) + i-- + dAtA[i] = 0x28 + } + if len(m.Regions) > 0 { + for iNdEx := len(m.Regions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Regions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if m.TimeoutS != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.TimeoutS)) + i-- + dAtA[i] = 0x18 + } + if len(m.Address) > 0 { + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0x12 + } + if m.Meta != nil { + { + size, err := m.Meta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EstablishDisaggTaskResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EstablishDisaggTaskResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EstablishDisaggTaskResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Tables) > 0 { + for iNdEx := len(m.Tables) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Tables[iNdEx]) + copy(dAtA[i:], m.Tables[iNdEx]) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Tables[iNdEx]))) + i-- + dAtA[i] = 0x2a + } + } + if m.SnapshotId != nil { + { + size, err := m.SnapshotId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.StoreId != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.StoreId)) + i-- + dAtA[i] = 0x18 + } + if len(m.RetryRegions) > 0 { + for iNdEx := len(m.RetryRegions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RetryRegions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FetchDisaggPagesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FetchDisaggPagesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FetchDisaggPagesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.PageIds) > 0 { + dAtA10 := make([]byte, len(m.PageIds)*10) + var j9 int + for _, num := range m.PageIds { + for num >= 1<<7 { + dAtA10[j9] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j9++ + } + dAtA10[j9] = uint8(num) + j9++ + } + i -= j9 + copy(dAtA[i:], dAtA10[:j9]) + i = encodeVarintDisaggregated(dAtA, i, uint64(j9)) + i-- + dAtA[i] = 0x22 + } + if m.SegmentId != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.SegmentId)) + i-- + dAtA[i] = 0x18 + } + if m.TableId != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.TableId)) + i-- + dAtA[i] = 0x10 + } + if m.SnapshotId != nil { + { + size, err := m.SnapshotId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PagesPacket) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PagesPacket) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PagesPacket) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Summaries) > 0 { + for iNdEx := len(m.Summaries) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Summaries[iNdEx]) + copy(dAtA[i:], m.Summaries[iNdEx]) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Summaries[iNdEx]))) + i-- + dAtA[i] = 0x22 + } + } + if len(m.Chunks) > 0 { + for iNdEx := len(m.Chunks) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Chunks[iNdEx]) + copy(dAtA[i:], m.Chunks[iNdEx]) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Chunks[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.Pages) > 0 { + for iNdEx := len(m.Pages) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Pages[iNdEx]) + copy(dAtA[i:], m.Pages[iNdEx]) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Pages[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintDisaggregated(dAtA []byte, offset int, v uint64) int { + offset -= sovDisaggregated(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *S3LockResult) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Result != nil { - l = m.Result.Size() - n += 1 + l + sovDisaggregated(uint64(l)) + if m.Error != nil { + n += m.Error.Size() } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) @@ -984,45 +1791,1348 @@ func (m *TryAddLockResponse) Size() (n int) { return n } -func (m *TryMarkDeleteRequest) Size() (n int) { +func (m *S3LockResult_Success) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.DataFileKey) + if m.Success != nil { + l = m.Success.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + return n +} +func (m *S3LockResult_NotOwner) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NotOwner != nil { + l = m.NotOwner.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + return n +} +func (m *S3LockResult_Conflict) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Conflict != nil { + l = m.Conflict.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + return n +} +func (m *Success) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NotOwner) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Conflict) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Reason) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TryAddLockRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.DataFileKey) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.LockStoreId != 0 { + n += 1 + sovDisaggregated(uint64(m.LockStoreId)) + } + if m.LockSeq != 0 { + n += 1 + sovDisaggregated(uint64(m.LockSeq)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TryAddLockResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Result != nil { + l = m.Result.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TryMarkDeleteRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.DataFileKey) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TryMarkDeleteResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Result != nil { + l = m.Result.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *DisaggTaskMeta) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.StartTs != 0 { + n += 1 + sovDisaggregated(uint64(m.StartTs)) + } + if m.QueryTs != 0 { + n += 1 + sovDisaggregated(uint64(m.QueryTs)) + } + if m.ServerId != 0 { + n += 1 + sovDisaggregated(uint64(m.ServerId)) + } + if m.LocalQueryId != 0 { + n += 1 + sovDisaggregated(uint64(m.LocalQueryId)) + } + if m.TaskId != 0 { + n += 1 + sovDisaggregated(uint64(m.TaskId)) + } + l = len(m.ExecutorId) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *DisaggReadError) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovDisaggregated(uint64(m.Code)) + } + l = len(m.Msg) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *EstablishDisaggTaskRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Meta != nil { + l = m.Meta.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + l = len(m.Address) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.TimeoutS != 0 { + n += 1 + sovDisaggregated(uint64(m.TimeoutS)) + } + if len(m.Regions) > 0 { + for _, e := range m.Regions { + l = e.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + } + if m.SchemaVer != 0 { + n += 1 + sovDisaggregated(uint64(m.SchemaVer)) + } + if len(m.TableRegions) > 0 { + for _, e := range m.TableRegions { + l = e.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + } + l = len(m.EncodedPlan) if l > 0 { n += 1 + l + sovDisaggregated(uint64(l)) } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } - return n -} + return n +} + +func (m *EstablishDisaggTaskResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + if len(m.RetryRegions) > 0 { + for _, e := range m.RetryRegions { + l = e.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + } + if m.StoreId != 0 { + n += 1 + sovDisaggregated(uint64(m.StoreId)) + } + if m.SnapshotId != nil { + l = m.SnapshotId.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + if len(m.Tables) > 0 { + for _, b := range m.Tables { + l = len(b) + n += 1 + l + sovDisaggregated(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *FetchDisaggPagesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SnapshotId != nil { + l = m.SnapshotId.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.TableId != 0 { + n += 1 + sovDisaggregated(uint64(m.TableId)) + } + if m.SegmentId != 0 { + n += 1 + sovDisaggregated(uint64(m.SegmentId)) + } + if len(m.PageIds) > 0 { + l = 0 + for _, e := range m.PageIds { + l += sovDisaggregated(uint64(e)) + } + n += 1 + sovDisaggregated(uint64(l)) + l + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *PagesPacket) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + if len(m.Pages) > 0 { + for _, b := range m.Pages { + l = len(b) + n += 1 + l + sovDisaggregated(uint64(l)) + } + } + if len(m.Chunks) > 0 { + for _, b := range m.Chunks { + l = len(b) + n += 1 + l + sovDisaggregated(uint64(l)) + } + } + if len(m.Summaries) > 0 { + for _, b := range m.Summaries { + l = len(b) + n += 1 + l + sovDisaggregated(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovDisaggregated(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozDisaggregated(x uint64) (n int) { + return sovDisaggregated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *S3LockResult) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: S3LockResult: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: S3LockResult: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &Success{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Error = &S3LockResult_Success{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NotOwner", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &NotOwner{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Error = &S3LockResult_NotOwner{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conflict", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &Conflict{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Error = &S3LockResult_Conflict{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Success) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Success: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Success: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NotOwner) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NotOwner: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NotOwner: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Conflict) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Conflict: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Conflict: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TryAddLockRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TryAddLockRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TryAddLockRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DataFileKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DataFileKey = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LockStoreId", wireType) + } + m.LockStoreId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LockStoreId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LockSeq", wireType) + } + m.LockSeq = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LockSeq |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TryAddLockResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TryAddLockResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TryAddLockResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Result == nil { + m.Result = &S3LockResult{} + } + if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TryMarkDeleteRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TryMarkDeleteRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TryMarkDeleteRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DataFileKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DataFileKey = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TryMarkDeleteResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TryMarkDeleteResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TryMarkDeleteResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Result == nil { + m.Result = &S3LockResult{} + } + if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DisaggTaskMeta) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DisaggTaskMeta: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DisaggTaskMeta: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartTs", wireType) + } + m.StartTs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.StartTs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QueryTs", wireType) + } + m.QueryTs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QueryTs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ServerId", wireType) + } + m.ServerId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ServerId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LocalQueryId", wireType) + } + m.LocalQueryId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LocalQueryId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TaskId", wireType) + } + m.TaskId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TaskId |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExecutorId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ExecutorId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DisaggReadError) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DisaggReadError: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DisaggReadError: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Msg", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Msg = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } -func (m *TryMarkDeleteResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Result != nil { - l = m.Result.Size() - n += 1 + l + sovDisaggregated(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + if iNdEx > l { + return io.ErrUnexpectedEOF } - return n -} - -func sovDisaggregated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozDisaggregated(x uint64) (n int) { - return sovDisaggregated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + return nil } -func (m *S3LockResult) Unmarshal(dAtA []byte) error { +func (m *EstablishDisaggTaskRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1045,15 +3155,15 @@ func (m *S3LockResult) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: S3LockResult: wiretype end group for non-group") + return fmt.Errorf("proto: EstablishDisaggTaskRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: S3LockResult: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EstablishDisaggTaskRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Meta", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1080,15 +3190,67 @@ func (m *S3LockResult) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &Success{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Meta == nil { + m.Meta = &DisaggTaskMeta{} + } + if err := m.Meta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Error = &S3LockResult_Success{v} iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NotOwner", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TimeoutS", wireType) + } + m.TimeoutS = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TimeoutS |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Regions", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1115,15 +3277,33 @@ func (m *S3LockResult) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &NotOwner{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Regions = append(m.Regions, &coprocessor.RegionInfo{}) + if err := m.Regions[len(m.Regions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Error = &S3LockResult_NotOwner{v} iNdEx = postIndex - case 3: + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SchemaVer", wireType) + } + m.SchemaVer = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SchemaVer |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conflict", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TableRegions", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1150,11 +3330,44 @@ func (m *S3LockResult) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &Conflict{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.TableRegions = append(m.TableRegions, &coprocessor.TableRegions{}) + if err := m.TableRegions[len(m.TableRegions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Error = &S3LockResult_Conflict{v} + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EncodedPlan", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EncodedPlan = append(m.EncodedPlan[:0], dAtA[iNdEx:postIndex]...) + if m.EncodedPlan == nil { + m.EncodedPlan = []byte{} + } iNdEx = postIndex default: iNdEx = preIndex @@ -1178,7 +3391,7 @@ func (m *S3LockResult) Unmarshal(dAtA []byte) error { } return nil } -func (m *Success) Unmarshal(dAtA []byte) error { +func (m *EstablishDisaggTaskResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1201,119 +3414,142 @@ func (m *Success) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Success: wiretype end group for non-group") + return fmt.Errorf("proto: EstablishDisaggTaskResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Success: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EstablishDisaggTaskResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipDisaggregated(dAtA[iNdEx:]) - if err != nil { - return err + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { return ErrInvalidLengthDisaggregated } - if (iNdEx + skippy) > l { + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NotOwner) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDisaggregated + if m.Error == nil { + m.Error = &DisaggReadError{} } - if iNdEx >= l { + if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RetryRegions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.RetryRegions = append(m.RetryRegions, &metapb.Region{}) + if err := m.RetryRegions[len(m.RetryRegions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StoreId", wireType) + } + m.StoreId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.StoreId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SnapshotId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NotOwner: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NotOwner: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipDisaggregated(dAtA[iNdEx:]) - if err != nil { - return err + if msglen < 0 { + return ErrInvalidLengthDisaggregated } - if (skippy < 0) || (iNdEx+skippy) < 0 { + postIndex := iNdEx + msglen + if postIndex < 0 { return ErrInvalidLengthDisaggregated } - if (iNdEx + skippy) > l { + if postIndex > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Conflict) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDisaggregated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.SnapshotId == nil { + m.SnapshotId = &DisaggTaskMeta{} } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if err := m.SnapshotId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Conflict: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Conflict: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Tables", wireType) } - var stringLen uint64 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -1323,23 +3559,23 @@ func (m *Conflict) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if byteLen < 0 { return ErrInvalidLengthDisaggregated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + byteLen if postIndex < 0 { return ErrInvalidLengthDisaggregated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Reason = string(dAtA[iNdEx:postIndex]) + m.Tables = append(m.Tables, make([]byte, postIndex-iNdEx)) + copy(m.Tables[len(m.Tables)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -1363,7 +3599,7 @@ func (m *Conflict) Unmarshal(dAtA []byte) error { } return nil } -func (m *TryAddLockRequest) Unmarshal(dAtA []byte) error { +func (m *FetchDisaggPagesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1386,17 +3622,17 @@ func (m *TryAddLockRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TryAddLockRequest: wiretype end group for non-group") + return fmt.Errorf("proto: FetchDisaggPagesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TryAddLockRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: FetchDisaggPagesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DataFileKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SnapshotId", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -1406,29 +3642,33 @@ func (m *TryAddLockRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthDisaggregated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthDisaggregated } if postIndex > l { return io.ErrUnexpectedEOF } - m.DataFileKey = string(dAtA[iNdEx:postIndex]) + if m.SnapshotId == nil { + m.SnapshotId = &DisaggTaskMeta{} + } + if err := m.SnapshotId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 3: + case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LockStoreId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TableId", wireType) } - m.LockStoreId = 0 + m.TableId = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -1438,16 +3678,16 @@ func (m *TryAddLockRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.LockStoreId |= uint64(b&0x7F) << shift + m.TableId |= int64(b&0x7F) << shift if b < 0x80 { break } } - case 4: + case 3: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LockSeq", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SegmentId", wireType) } - m.LockSeq = 0 + m.SegmentId = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -1457,11 +3697,87 @@ func (m *TryAddLockRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.LockSeq |= uint64(b&0x7F) << shift + m.SegmentId |= uint64(b&0x7F) << shift if b < 0x80 { break } } + case 4: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.PageIds = append(m.PageIds, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.PageIds) == 0 { + m.PageIds = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.PageIds = append(m.PageIds, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field PageIds", wireType) + } default: iNdEx = preIndex skippy, err := skipDisaggregated(dAtA[iNdEx:]) @@ -1484,7 +3800,7 @@ func (m *TryAddLockRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *TryAddLockResponse) Unmarshal(dAtA []byte) error { +func (m *PagesPacket) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1507,15 +3823,15 @@ func (m *TryAddLockResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TryAddLockResponse: wiretype end group for non-group") + return fmt.Errorf("proto: PagesPacket: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TryAddLockResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: PagesPacket: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1542,69 +3858,18 @@ func (m *TryAddLockResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Result == nil { - m.Result = &S3LockResult{} + if m.Error == nil { + m.Error = &DisaggReadError{} } - if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipDisaggregated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthDisaggregated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TryMarkDeleteRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDisaggregated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TryMarkDeleteRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TryMarkDeleteRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DataFileKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Pages", wireType) } - var stringLen uint64 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -1614,80 +3879,61 @@ func (m *TryMarkDeleteRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if byteLen < 0 { return ErrInvalidLengthDisaggregated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + byteLen if postIndex < 0 { return ErrInvalidLengthDisaggregated } if postIndex > l { return io.ErrUnexpectedEOF } - m.DataFileKey = string(dAtA[iNdEx:postIndex]) + m.Pages = append(m.Pages, make([]byte, postIndex-iNdEx)) + copy(m.Pages[len(m.Pages)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipDisaggregated(dAtA[iNdEx:]) - if err != nil { - return err + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Chunks", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthDisaggregated + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + if byteLen < 0 { + return ErrInvalidLengthDisaggregated } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TryMarkDeleteResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDisaggregated + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TryMarkDeleteResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TryMarkDeleteResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.Chunks = append(m.Chunks, make([]byte, postIndex-iNdEx)) + copy(m.Chunks[len(m.Chunks)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Summaries", wireType) } - var msglen int + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -1697,27 +3943,23 @@ func (m *TryMarkDeleteResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + if byteLen < 0 { return ErrInvalidLengthDisaggregated } - postIndex := iNdEx + msglen + postIndex := iNdEx + byteLen if postIndex < 0 { return ErrInvalidLengthDisaggregated } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Result == nil { - m.Result = &S3LockResult{} - } - if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Summaries = append(m.Summaries, make([]byte, postIndex-iNdEx)) + copy(m.Summaries[len(m.Summaries)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index 63cf66f..1d19d25 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -1888,9 +1888,10 @@ type CheckTxnStatusResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Error *KeyError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Three kinds of transaction status: - // locked: lock_ttl > 0 - // committed: commit_version > 0 - // rollbacked: lock_ttl = 0 && commit_version = 0 + // + // locked: lock_ttl > 0 + // committed: commit_version > 0 + // rollbacked: lock_ttl = 0 && commit_version = 0 LockTtl uint64 `protobuf:"varint,3,opt,name=lock_ttl,json=lockTtl,proto3" json:"lock_ttl,omitempty"` CommitVersion uint64 `protobuf:"varint,4,opt,name=commit_version,json=commitVersion,proto3" json:"commit_version,omitempty"` // The action performed by TiKV (and why if the action is to rollback). @@ -9374,6 +9375,7 @@ func (m *RawChecksumResponse) GetTotalBytes() uint64 { type CompactError struct { // Types that are valid to be assigned to Error: + // // *CompactError_ErrInvalidStartKey // *CompactError_ErrPhysicalTableNotExist // *CompactError_ErrCompactInProgress diff --git a/pkg/tikvpb/tikvpb.pb.go b/pkg/tikvpb/tikvpb.pb.go index 105c21b..1cd131d 100644 --- a/pkg/tikvpb/tikvpb.pb.go +++ b/pkg/tikvpb/tikvpb.pb.go @@ -1248,156 +1248,159 @@ func init() { func init() { proto.RegisterFile("tikvpb.proto", fileDescriptor_274fe050f0c997b3) } var fileDescriptor_274fe050f0c997b3 = []byte{ - // 2386 bytes of a gzipped FileDescriptorProto + // 2434 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x9a, 0xdb, 0x52, 0x1b, 0xc9, - 0x19, 0x80, 0x07, 0x5b, 0xe6, 0xd0, 0x18, 0x03, 0x0d, 0x36, 0x43, 0x1b, 0x83, 0x3d, 0x66, 0x37, - 0xce, 0xa6, 0x8a, 0xd8, 0x5e, 0x67, 0x9d, 0x3d, 0x64, 0x83, 0x11, 0x36, 0x60, 0x41, 0xad, 0x4a, - 0x92, 0x77, 0x9d, 0xaa, 0xa4, 0xa8, 0xb6, 0xd4, 0x16, 0x13, 0xa4, 0x19, 0x65, 0xa6, 0x19, 0xac, - 0x37, 0xc9, 0x23, 0xa4, 0xf2, 0x24, 0xb9, 0x4c, 0x55, 0x2e, 0x92, 0xcb, 0x94, 0xf3, 0x10, 0x7b, - 0x99, 0xad, 0xee, 0x99, 0xe9, 0xc3, 0x4c, 0xf7, 0x88, 0xbd, 0x62, 0xf8, 0x4f, 0x7d, 0xfe, 0xfb, - 0xfb, 0xbb, 0x04, 0x6e, 0x52, 0xff, 0x3c, 0x19, 0xbd, 0xdb, 0x19, 0x45, 0x21, 0x0d, 0xe1, 0x74, - 0xfa, 0x1f, 0x5a, 0xee, 0x86, 0xa3, 0x28, 0xec, 0x92, 0x38, 0x0e, 0xa3, 0x54, 0x85, 0x16, 0xce, - 0x93, 0x68, 0xd4, 0xcd, 0x2d, 0xd1, 0xdc, 0x70, 0x34, 0xca, 0x3e, 0x57, 0x22, 0xfc, 0x9e, 0x9e, - 0xc6, 0x24, 0x4a, 0x48, 0x24, 0xf4, 0x2b, 0x3d, 0x3f, 0xc6, 0xfd, 0x7e, 0x44, 0xfa, 0x98, 0x92, - 0x5e, 0x26, 0x5c, 0xed, 0x87, 0xfd, 0x90, 0x7f, 0xfe, 0x9a, 0x7d, 0x65, 0xd2, 0xc5, 0xe8, 0x22, - 0xa6, 0xfc, 0x33, 0x15, 0x78, 0xff, 0x5a, 0x02, 0xab, 0x7b, 0x98, 0x76, 0xcf, 0xea, 0xe1, 0x70, - 0x88, 0x83, 0x5e, 0xdc, 0x22, 0x7f, 0xb9, 0x20, 0x31, 0x85, 0xbb, 0x60, 0x36, 0x4a, 0x3f, 0x63, - 0x77, 0xea, 0xfe, 0xf5, 0x47, 0xf3, 0x4f, 0xb7, 0x77, 0xb2, 0xfe, 0x9b, 0xec, 0x77, 0xb2, 0xbf, - 0x2d, 0xe1, 0x05, 0xb7, 0xc0, 0x7c, 0xf6, 0x7d, 0xea, 0xf7, 0x62, 0xf7, 0xda, 0xfd, 0xeb, 0x8f, - 0x6a, 0x2d, 0x90, 0x89, 0x8e, 0x7a, 0x31, 0xfa, 0xf7, 0x22, 0x98, 0xc9, 0x9b, 0xfb, 0x05, 0xb8, - 0x7e, 0x40, 0xa8, 0x3b, 0x75, 0x7f, 0xea, 0xd1, 0xfc, 0xd3, 0x95, 0x9d, 0x7c, 0x02, 0x0e, 0x08, - 0xcd, 0x2c, 0x0e, 0x9d, 0x16, 0xb3, 0x80, 0x9f, 0x81, 0x5a, 0xbb, 0x8b, 0x03, 0xf7, 0x1a, 0xb7, - 0x5c, 0x15, 0x96, 0x4c, 0x28, 0x4d, 0xb9, 0x0d, 0xfc, 0x02, 0xcc, 0x36, 0x23, 0x72, 0x19, 0xf9, - 0x94, 0xb8, 0xd7, 0xb9, 0xbd, 0x2b, 0xec, 0x73, 0x85, 0xf4, 0x11, 0xb6, 0xf0, 0x31, 0x98, 0x66, - 0xc3, 0xf3, 0xa9, 0x5b, 0xe3, 0x5e, 0x77, 0x84, 0x57, 0x2a, 0x96, 0x3e, 0x99, 0x1d, 0xf3, 0x38, - 0x1a, 0x8e, 0xc2, 0x88, 0xba, 0x37, 0x0a, 0x1e, 0xa9, 0x58, 0xf1, 0x48, 0x05, 0xf0, 0x73, 0x30, - 0x53, 0x1f, 0x10, 0x1c, 0x5c, 0x8c, 0xdc, 0x69, 0xee, 0xb2, 0x26, 0x1b, 0x49, 0xe5, 0xd2, 0x27, - 0xb7, 0x64, 0x03, 0xe2, 0x93, 0xcf, 0xa6, 0x6a, 0xa6, 0x30, 0xa0, 0x5c, 0xa1, 0x0c, 0x28, 0x17, - 0xc1, 0x97, 0x60, 0x81, 0x7f, 0xb7, 0xc2, 0xc1, 0xe0, 0x1d, 0xee, 0x9e, 0xbb, 0xb3, 0xdc, 0xf9, - 0x9e, 0xee, 0x9c, 0x6b, 0x65, 0x04, 0xdd, 0x8b, 0x35, 0xcf, 0xe6, 0xf5, 0x38, 0xec, 0x9e, 0xbb, - 0x73, 0x85, 0xe6, 0x73, 0x85, 0xd2, 0x7c, 0x2e, 0x82, 0xbf, 0x07, 0xf3, 0x2d, 0x12, 0x87, 0x83, - 0x84, 0x70, 0x57, 0xc0, 0x5d, 0xef, 0x0a, 0x57, 0x45, 0x27, 0xbd, 0x55, 0x0f, 0xb8, 0x0d, 0xae, - 0x1d, 0xd4, 0xdd, 0x79, 0xee, 0x07, 0xe5, 0xe6, 0xa8, 0x4b, 0xf3, 0x6b, 0x07, 0x75, 0xd6, 0xcc, - 0x3e, 0x19, 0x10, 0x4a, 0x5a, 0x38, 0xe8, 0x13, 0xf7, 0x66, 0xa1, 0x19, 0x45, 0xa7, 0x34, 0xa3, - 0x48, 0xd9, 0x2a, 0xb6, 0xf0, 0x25, 0x9b, 0xdc, 0x85, 0xc2, 0x2a, 0xa6, 0x62, 0x65, 0x15, 0x53, - 0x01, 0x1f, 0x19, 0xbe, 0x14, 0x6b, 0x72, 0xab, 0x38, 0x32, 0xa9, 0x53, 0x47, 0x26, 0xa5, 0x59, - 0x93, 0xcd, 0x0b, 0xea, 0x2e, 0x96, 0x9b, 0x6c, 0x5e, 0x14, 0x9a, 0x6c, 0x5e, 0x68, 0x4d, 0x32, - 0xb7, 0x25, 0x4b, 0x93, 0x9a, 0xaf, 0xea, 0x01, 0xbf, 0x04, 0x73, 0x2d, 0x7c, 0x99, 0x8e, 0xdb, - 0x5d, 0xe6, 0xee, 0xeb, 0xaa, 0x7b, 0x36, 0x23, 0xc2, 0x59, 0x5a, 0xc3, 0x43, 0x70, 0x2b, 0x8f, - 0x94, 0xf9, 0x43, 0xee, 0xbf, 0x59, 0x6a, 0xbe, 0x18, 0xa4, 0xe0, 0xc7, 0xb6, 0x7f, 0x0b, 0x5f, - 0xf2, 0x93, 0xbc, 0x52, 0xd8, 0xfe, 0x99, 0x5c, 0xd9, 0xfe, 0x99, 0x24, 0x6b, 0x5e, 0x5d, 0xe3, - 0xd5, 0x72, 0xf3, 0xc6, 0x65, 0x2e, 0xf8, 0xc1, 0x3d, 0x70, 0x33, 0xef, 0x10, 0xef, 0xc3, 0x6d, - 0x1e, 0x67, 0xa3, 0x34, 0x0c, 0xbd, 0x23, 0x9a, 0x0f, 0xfc, 0x2d, 0x98, 0xaf, 0xcb, 0xd4, 0xed, - 0xde, 0xc9, 0x12, 0x92, 0x9a, 0xce, 0x95, 0x15, 0x50, 0x4c, 0x61, 0x03, 0x2c, 0x36, 0x49, 0x1c, - 0xfb, 0x43, 0x3f, 0xa6, 0x7e, 0x97, 0x9f, 0x89, 0x35, 0xee, 0xbd, 0x25, 0xd3, 0x93, 0xae, 0x97, - 0x81, 0x8a, 0x9e, 0xf0, 0x07, 0xb0, 0xa2, 0x88, 0xc4, 0x09, 0x77, 0x79, 0xc0, 0x87, 0xa6, 0x80, - 0xe5, 0x73, 0x6e, 0x8a, 0xc0, 0x66, 0xbb, 0x7e, 0x46, 0xba, 0xe7, 0x9d, 0x0f, 0x41, 0x9b, 0x62, - 0x7a, 0x11, 0xbb, 0xeb, 0x85, 0xd9, 0xd6, 0xd5, 0xca, 0x6c, 0xeb, 0x0a, 0x36, 0xdb, 0x9d, 0x0f, - 0xc1, 0x21, 0xc1, 0x11, 0xdd, 0x23, 0x98, 0xba, 0xa8, 0x30, 0xdb, 0xaa, 0x52, 0x99, 0x6d, 0x55, - 0xcc, 0x86, 0xc9, 0xa3, 0xb6, 0x49, 0x37, 0x0c, 0x7a, 0x38, 0x1a, 0xb3, 0xc1, 0xc7, 0xee, 0x83, - 0xc2, 0x30, 0x0d, 0x36, 0xca, 0x30, 0x0d, 0xda, 0x6c, 0x53, 0xa9, 0x2b, 0xe9, 0x95, 0x37, 0x95, - 0xa2, 0xd6, 0x37, 0x95, 0xba, 0xac, 0x1d, 0x00, 0x5f, 0x0d, 0x70, 0x7c, 0xc6, 0x66, 0xaf, 0x13, - 0x7e, 0x4f, 0xa2, 0xd8, 0x0f, 0x03, 0xf7, 0x21, 0x8f, 0xe6, 0x89, 0x68, 0x65, 0x13, 0x19, 0xd1, - 0xe0, 0x0f, 0x7d, 0xb0, 0xde, 0x8c, 0xc8, 0x08, 0x47, 0xc4, 0x10, 0x7c, 0x9b, 0x07, 0xff, 0xa5, - 0x7a, 0xab, 0x99, 0x2d, 0x65, 0x1b, 0xf6, 0x68, 0xf0, 0x2b, 0x70, 0xe3, 0xe5, 0x70, 0x44, 0xc7, - 0xee, 0xff, 0xd3, 0x7b, 0xf8, 0x81, 0xf1, 0xc6, 0xe7, 0x26, 0x32, 0x5e, 0xea, 0xb2, 0x77, 0x03, - 0x5c, 0xef, 0x0e, 0x7b, 0xaf, 0x6b, 0xb3, 0x77, 0x97, 0x1e, 0x78, 0x7f, 0x5f, 0x06, 0xb7, 0x0b, - 0x94, 0x10, 0x8f, 0xc2, 0x20, 0x26, 0x70, 0x1f, 0xcc, 0x45, 0xd9, 0x77, 0xce, 0x15, 0x9f, 0x5a, - 0xb8, 0x22, 0xb5, 0xda, 0xc9, 0x3f, 0x5a, 0xd2, 0x71, 0x22, 0x5a, 0xc0, 0xc7, 0x60, 0x95, 0x46, - 0x38, 0x88, 0xd9, 0x55, 0x7b, 0x3a, 0xc0, 0x63, 0x12, 0x9d, 0x0e, 0x42, 0xdc, 0xe3, 0x14, 0x50, - 0x6b, 0x41, 0xa1, 0x3b, 0x66, 0xaa, 0xe3, 0x10, 0xf7, 0xd0, 0x8f, 0x8b, 0x60, 0x56, 0xf4, 0xf2, - 0x91, 0x4a, 0x23, 0xab, 0x3a, 0x8d, 0xa4, 0x26, 0x39, 0x8e, 0xfc, 0x4a, 0xc3, 0x91, 0xdb, 0x05, - 0x1c, 0x11, 0xb6, 0x29, 0x8f, 0x3c, 0x2f, 0xf1, 0xc8, 0xba, 0x81, 0x47, 0x84, 0x93, 0x04, 0x92, - 0x27, 0x05, 0x20, 0x59, 0x2b, 0x01, 0x89, 0x70, 0xca, 0x89, 0xe4, 0x49, 0x81, 0x48, 0xd6, 0x4a, - 0x44, 0x22, 0x5d, 0x32, 0x24, 0x79, 0x56, 0x44, 0x12, 0xb7, 0x8c, 0x24, 0xc2, 0x49, 0x30, 0xc9, - 0xf3, 0x12, 0x93, 0xac, 0x1b, 0x98, 0x44, 0x0e, 0x4a, 0x5c, 0x7d, 0xaf, 0xcc, 0x50, 0xb2, 0x69, - 0x83, 0x12, 0x11, 0xa2, 0x40, 0x25, 0xcf, 0x4b, 0x54, 0xb2, 0x6e, 0xa0, 0x12, 0xd9, 0x01, 0x81, - 0x25, 0xbb, 0x26, 0x2c, 0xd9, 0x30, 0x63, 0x89, 0x70, 0xd7, 0xb8, 0xe4, 0x13, 0x85, 0x4b, 0x56, - 0x34, 0x2e, 0x11, 0xf6, 0x0c, 0x4c, 0x76, 0x4d, 0x60, 0xb2, 0x61, 0x06, 0x13, 0xd9, 0x90, 0x7a, - 0x5f, 0x3d, 0x29, 0x90, 0xc9, 0x5a, 0x89, 0x4c, 0xe4, 0x6a, 0x66, 0x68, 0xb2, 0x6b, 0x42, 0x93, - 0x0d, 0x33, 0x9a, 0x28, 0xa3, 0x53, 0xd8, 0xe4, 0x49, 0x81, 0x4d, 0xd6, 0x4a, 0x6c, 0xa2, 0x35, - 0xca, 0xd8, 0x62, 0xd7, 0x04, 0x27, 0x1b, 0x66, 0x38, 0x29, 0x37, 0xca, 0x22, 0x7c, 0x55, 0xa6, - 0x13, 0x64, 0xa2, 0x13, 0xe1, 0xad, 0xe0, 0xc9, 0x91, 0x05, 0x4f, 0xb6, 0xac, 0x78, 0x22, 0xa2, - 0x14, 0xf9, 0xe4, 0x59, 0x91, 0x4f, 0xdc, 0x32, 0x9f, 0xc8, 0xb3, 0x90, 0x03, 0xca, 0x91, 0x05, - 0x50, 0xb6, 0xac, 0x80, 0xa2, 0x75, 0x40, 0x5d, 0xf1, 0xba, 0x91, 0x50, 0xee, 0x59, 0x08, 0x45, - 0x84, 0xd1, 0x11, 0xe5, 0x4b, 0x13, 0xa2, 0xdc, 0x2e, 0x20, 0x8a, 0x5c, 0x07, 0xf5, 0x32, 0x3b, - 0xb6, 0x31, 0xca, 0x7d, 0x3b, 0xa3, 0x88, 0x48, 0x25, 0x48, 0x79, 0x5b, 0x05, 0x29, 0xdb, 0xd5, - 0x90, 0x22, 0xa2, 0x1a, 0x29, 0xe5, 0xc8, 0x42, 0x29, 0x5b, 0x56, 0x4a, 0x91, 0x53, 0x5e, 0xc0, - 0x94, 0xba, 0x11, 0x53, 0xee, 0x59, 0x30, 0x45, 0x4e, 0xb9, 0xc6, 0x29, 0x6f, 0xab, 0x38, 0x65, - 0xbb, 0x9a, 0x53, 0xe4, 0x48, 0x4d, 0xa0, 0x72, 0x64, 0x01, 0x95, 0x2d, 0x2b, 0xa8, 0x68, 0x9b, - 0x4b, 0x5d, 0xdc, 0x37, 0x15, 0xa4, 0xf2, 0xb0, 0x92, 0x54, 0x44, 0x48, 0x13, 0xaa, 0xfc, 0x79, - 0x32, 0xaa, 0x7c, 0x76, 0x15, 0x54, 0x11, 0x8d, 0x54, 0xb0, 0xca, 0xd7, 0x05, 0x56, 0xf1, 0xaa, - 0x58, 0x45, 0x04, 0x34, 0xc1, 0xca, 0x1e, 0x58, 0x4a, 0x2f, 0x14, 0xfc, 0x9e, 0x9e, 0x90, 0x38, - 0xc6, 0x7d, 0x02, 0x77, 0x40, 0x6d, 0x18, 0xf7, 0x73, 0x42, 0x41, 0x3b, 0xfa, 0xb3, 0x8b, 0x62, - 0xd9, 0xe2, 0x76, 0x5e, 0x1b, 0xac, 0x5b, 0x19, 0x09, 0xae, 0x81, 0x19, 0x9a, 0xa2, 0x0a, 0x27, - 0x8a, 0x5a, 0x6b, 0x9a, 0x72, 0x4c, 0x81, 0xf7, 0x00, 0xe8, 0x91, 0x01, 0x1e, 0x9f, 0x52, 0x7f, - 0x48, 0x38, 0x42, 0xd4, 0x5a, 0x73, 0x5c, 0xd2, 0xf1, 0x87, 0xc4, 0xfb, 0x0d, 0x40, 0xf6, 0xc1, - 0x58, 0xa3, 0x3e, 0xfd, 0xf1, 0x21, 0xa8, 0x75, 0xfc, 0xf3, 0x04, 0x3e, 0x03, 0x37, 0x1a, 0x09, - 0x4b, 0xe4, 0xa6, 0xf7, 0x14, 0x64, 0xc4, 0x1a, 0xcf, 0x81, 0xcf, 0xc1, 0x74, 0x23, 0xe1, 0xd9, - 0xc3, 0xf8, 0xb8, 0x82, 0xcc, 0x8c, 0xe3, 0x39, 0xb0, 0x0e, 0x40, 0x23, 0x11, 0xc8, 0x62, 0x7d, - 0x69, 0x41, 0x76, 0xe6, 0xf1, 0x1c, 0xf8, 0x16, 0x2c, 0x37, 0x92, 0x62, 0xf6, 0x98, 0x54, 0x16, - 0xa1, 0x89, 0x39, 0xc9, 0x73, 0x60, 0x0f, 0xdc, 0x6e, 0x7c, 0x6f, 0xca, 0x20, 0x57, 0xa9, 0x91, - 0xd0, 0x95, 0x72, 0x94, 0xe7, 0xc0, 0xef, 0xc0, 0xad, 0x46, 0xa2, 0x25, 0x84, 0xca, 0x32, 0x07, - 0x55, 0x67, 0x17, 0xcf, 0x81, 0x6f, 0xc0, 0x52, 0x23, 0x29, 0x24, 0xaa, 0x09, 0x15, 0x18, 0x9a, - 0x94, 0xfb, 0xb2, 0xd9, 0x48, 0x4c, 0x59, 0xe6, 0x2a, 0xa5, 0x14, 0xba, 0x52, 0x1e, 0xf3, 0x1c, - 0xf8, 0x3b, 0x30, 0xdb, 0x48, 0x32, 0x20, 0xb5, 0x3c, 0xa2, 0x21, 0x1b, 0xcb, 0xe6, 0xee, 0x19, - 0x9c, 0x5a, 0x5e, 0xd4, 0x90, 0x8d, 0x6b, 0x3d, 0x07, 0xee, 0x82, 0xb9, 0x46, 0x92, 0x63, 0xaa, - 0xed, 0x79, 0x0d, 0x59, 0x21, 0x37, 0xdf, 0xd2, 0x82, 0x87, 0xac, 0x6f, 0x6d, 0xc8, 0x4e, 0xbc, - 0x9e, 0x03, 0x5b, 0x60, 0x31, 0x0b, 0x22, 0xb6, 0x5c, 0xf5, 0xc3, 0x1b, 0x9a, 0x80, 0xc0, 0x79, - 0xc7, 0x04, 0xc8, 0x5a, 0x5f, 0xe1, 0x90, 0x9d, 0x84, 0x3d, 0x07, 0x1e, 0x83, 0x85, 0x46, 0xa2, - 0xe2, 0x6c, 0xd5, 0x93, 0x1c, 0xaa, 0x04, 0x63, 0xcf, 0x81, 0x4f, 0x40, 0xad, 0x91, 0x1c, 0xd4, - 0xa1, 0xe1, 0x7d, 0x0e, 0x99, 0xd8, 0x38, 0xef, 0x80, 0x0a, 0x3d, 0x55, 0x8f, 0x75, 0xa8, 0x12, - 0x98, 0x3d, 0x07, 0x26, 0xe0, 0x2e, 0xcf, 0x3f, 0x96, 0x0b, 0xe3, 0xea, 0x45, 0x32, 0xfa, 0x19, - 0x97, 0x94, 0xe7, 0x40, 0x0c, 0x56, 0x1b, 0x89, 0xa1, 0xc1, 0x2b, 0x94, 0xfc, 0xe8, 0x2a, 0x97, - 0xad, 0xe7, 0xc0, 0xaf, 0x73, 0xfc, 0x87, 0x96, 0x27, 0x49, 0x64, 0x2b, 0x08, 0x3c, 0x07, 0xbe, - 0xd6, 0x0a, 0x01, 0x58, 0xf5, 0x3a, 0x89, 0x2a, 0xeb, 0x03, 0xd1, 0x11, 0xc6, 0xe9, 0x96, 0x87, - 0x4a, 0x64, 0x2b, 0x12, 0xf4, 0x8e, 0xb0, 0x08, 0x55, 0x6f, 0x96, 0xa8, 0xb2, 0x66, 0xf0, 0x1c, - 0xb8, 0xaf, 0x94, 0x09, 0xd0, 0xfe, 0x7c, 0x89, 0x2a, 0x6a, 0x07, 0xcf, 0x81, 0xed, 0x62, 0xc1, - 0x00, 0x27, 0xbc, 0x64, 0xa2, 0x49, 0xa5, 0x84, 0xe7, 0xc0, 0x6f, 0x45, 0xe9, 0x00, 0x6d, 0x8f, - 0x9a, 0xc8, 0x5a, 0x4d, 0x88, 0x4e, 0xa9, 0xc7, 0x62, 0xc2, 0xfb, 0x26, 0x9a, 0x54, 0x5e, 0x78, - 0x0e, 0x3c, 0xd1, 0xcb, 0x09, 0x58, 0xf9, 0xd4, 0x89, 0xaa, 0xcb, 0x0c, 0x11, 0xee, 0x80, 0xd0, - 0x06, 0x19, 0x77, 0x3a, 0xc7, 0x7a, 0x38, 0x21, 0x36, 0x86, 0x53, 0xb4, 0x22, 0xdc, 0x2b, 0xb0, - 0xcc, 0x09, 0x75, 0xc8, 0x0e, 0xdb, 0x8b, 0xa0, 0xd7, 0xbe, 0xc4, 0x23, 0x7d, 0x87, 0xd5, 0x5f, - 0xb4, 0x8d, 0x3b, 0x8c, 0xcb, 0x0b, 0x3b, 0x8c, 0xdf, 0x49, 0xf1, 0xc5, 0x50, 0xdf, 0x61, 0xb9, - 0xd4, 0xb8, 0xc3, 0xa4, 0x52, 0xc4, 0x3a, 0x05, 0xf0, 0x4d, 0x10, 0xe3, 0xf7, 0x64, 0x9f, 0xc4, - 0x34, 0x0a, 0xc7, 0xe9, 0x52, 0xc8, 0x43, 0x5d, 0x56, 0x96, 0x0f, 0xb5, 0xc9, 0x46, 0x34, 0x40, - 0xc0, 0x6a, 0x8b, 0xf4, 0xfd, 0x98, 0x92, 0x88, 0xa5, 0xd2, 0xef, 0xde, 0xa5, 0x7c, 0x09, 0xb7, - 0x95, 0x44, 0x5b, 0x56, 0xe7, 0x8d, 0x7c, 0x32, 0xc1, 0x4a, 0x34, 0xf3, 0x47, 0xb0, 0xcc, 0x47, - 0xa7, 0xb5, 0xf1, 0x40, 0xbf, 0xc0, 0x4d, 0x0d, 0x78, 0x55, 0x26, 0xea, 0x2c, 0xb5, 0xc8, 0x30, - 0x4c, 0x6f, 0x03, 0x11, 0xde, 0x53, 0x3a, 0x57, 0x54, 0x96, 0x67, 0xc9, 0x64, 0x23, 0x1a, 0xf8, - 0x03, 0x58, 0x6a, 0x9e, 0x8d, 0x63, 0xbf, 0x8b, 0x07, 0xe2, 0xbe, 0x53, 0x70, 0xaf, 0xa0, 0xca, - 0x83, 0x3f, 0xa8, 0xb0, 0x10, 0xa1, 0xbf, 0xd1, 0xaa, 0x63, 0x68, 0x7c, 0xba, 0x47, 0xe6, 0x6a, - 0x99, 0x67, 0xa0, 0x65, 0xc5, 0xbb, 0x4d, 0x23, 0x82, 0x87, 0x3f, 0x33, 0xc6, 0xe3, 0x29, 0x78, - 0x92, 0x15, 0x1f, 0x6a, 0x47, 0xd6, 0x35, 0xf3, 0x14, 0x01, 0x44, 0x3a, 0x33, 0xa8, 0x94, 0x70, - 0xed, 0x62, 0x8d, 0x08, 0x27, 0x3c, 0x63, 0xa3, 0x49, 0xd5, 0x23, 0x4f, 0xfa, 0x35, 0x56, 0xf1, - 0xc0, 0x8a, 0x32, 0x08, 0xad, 0x14, 0x74, 0xfb, 0x61, 0x40, 0x3c, 0xe7, 0xd1, 0x14, 0xfc, 0x16, - 0xcc, 0x89, 0xea, 0x0a, 0xba, 0x5a, 0x91, 0x76, 0x25, 0xff, 0x17, 0x60, 0xb6, 0x1d, 0xe0, 0x51, - 0x7c, 0x16, 0x32, 0x94, 0xd6, 0x8d, 0x72, 0x45, 0xfd, 0xec, 0x22, 0x38, 0xb7, 0x87, 0x78, 0x0d, - 0xe6, 0xdb, 0xa3, 0x01, 0x23, 0xcb, 0x3e, 0xbb, 0x97, 0x65, 0x56, 0x50, 0xa4, 0xe5, 0xac, 0xa0, - 0x29, 0xb5, 0x7b, 0x87, 0xe0, 0xde, 0x51, 0xd0, 0x23, 0x1f, 0xd4, 0x7b, 0x27, 0x97, 0x19, 0xee, - 0x1d, 0xa9, 0x52, 0xd3, 0xe7, 0x49, 0xd2, 0xed, 0x1e, 0x10, 0xba, 0x37, 0x6e, 0x90, 0xb1, 0x92, - 0x3e, 0x55, 0x71, 0x39, 0x7d, 0xea, 0x5a, 0xf5, 0x8c, 0x08, 0x4d, 0x9b, 0xe2, 0x88, 0x76, 0x62, - 0xe5, 0x8c, 0x14, 0x55, 0xe5, 0x33, 0x52, 0xb6, 0x50, 0xe0, 0x75, 0x41, 0xab, 0x41, 0xe1, 0x46, - 0xd5, 0xaf, 0x00, 0xd0, 0xbd, 0xca, 0xb7, 0x7c, 0xb6, 0x1a, 0x8f, 0xa7, 0xe0, 0x21, 0x58, 0xdc, - 0xf7, 0xe3, 0x11, 0xb3, 0x38, 0x69, 0x36, 0x3b, 0x38, 0x66, 0x04, 0x3b, 0x1c, 0x8d, 0x76, 0x72, - 0x29, 0x13, 0x49, 0x82, 0x2d, 0x6b, 0x44, 0xef, 0xf6, 0xc0, 0x42, 0x1d, 0x07, 0x5d, 0x32, 0xc8, - 0xe3, 0xdc, 0xe1, 0xd6, 0xa9, 0x4c, 0x8d, 0xb2, 0x56, 0x92, 0x8b, 0x18, 0x1d, 0x70, 0xe7, 0x65, - 0x4c, 0xf1, 0xbb, 0x81, 0x1f, 0xb3, 0xee, 0xd4, 0xc3, 0x20, 0x20, 0x5d, 0x9a, 0x02, 0x1c, 0x73, - 0x32, 0x2b, 0xf3, 0xc0, 0x90, 0xdb, 0x9c, 0x34, 0x9b, 0xfb, 0x98, 0xe2, 0x26, 0xee, 0x9e, 0x13, - 0xca, 0x0f, 0xe2, 0x17, 0x60, 0xe6, 0x28, 0x7e, 0x31, 0xf0, 0x13, 0x02, 0x57, 0xb8, 0x49, 0xf6, - 0x9f, 0xac, 0xbe, 0x35, 0xa1, 0xe8, 0xcd, 0x21, 0x98, 0x4f, 0xd3, 0x2d, 0xc1, 0x3d, 0x12, 0x29, - 0x7b, 0x55, 0x91, 0x96, 0xf7, 0xaa, 0xa6, 0xcc, 0xde, 0x07, 0x1a, 0xe0, 0xd6, 0x01, 0xa1, 0x6d, - 0x1a, 0x46, 0xa4, 0x8d, 0xdf, 0x93, 0x4e, 0x5b, 0xdd, 0xf8, 0x52, 0x6a, 0xd8, 0xf8, 0xaa, 0x32, - 0x0b, 0xd6, 0x01, 0x8b, 0x07, 0x84, 0xb2, 0xfc, 0xf9, 0x03, 0xf6, 0xe9, 0x51, 0xf0, 0x3e, 0x54, - 0x8a, 0xf2, 0x82, 0xa6, 0x5c, 0x94, 0x97, 0x0c, 0xb2, 0xa8, 0xdf, 0x80, 0x19, 0x7e, 0xe7, 0x77, - 0x29, 0xd4, 0xaa, 0x40, 0x26, 0x31, 0x94, 0x67, 0xb9, 0x22, 0xf3, 0xfe, 0x13, 0x80, 0x4a, 0xe0, - 0x43, 0x3f, 0xa6, 0x61, 0x34, 0x56, 0xae, 0x9e, 0xb2, 0xb2, 0x7c, 0xf5, 0x98, 0x6c, 0xb2, 0xf0, - 0x6d, 0x00, 0x68, 0x34, 0x7e, 0xd1, 0xeb, 0x65, 0x57, 0x8e, 0xfe, 0x23, 0x9b, 0x8e, 0x50, 0xc9, - 0xe3, 0x64, 0xb7, 0x50, 0x2e, 0xe3, 0x05, 0x1a, 0x8d, 0x4f, 0x70, 0x74, 0x9e, 0xf1, 0xe6, 0xc3, - 0xb2, 0x97, 0xd4, 0xca, 0x72, 0xbb, 0xd2, 0x28, 0x8f, 0xbe, 0xf7, 0xe9, 0x7f, 0xfe, 0x36, 0x3b, - 0xf5, 0x8f, 0x8f, 0x9b, 0x53, 0xff, 0xfc, 0xb8, 0x39, 0xf5, 0xdf, 0x8f, 0x9b, 0x53, 0x7f, 0xfd, - 0xdf, 0xa6, 0x03, 0x96, 0xc2, 0xa8, 0xcf, 0x8f, 0xe5, 0xce, 0x79, 0xc2, 0x7f, 0xf4, 0xf3, 0x6e, - 0x9a, 0xff, 0xf9, 0xfc, 0xa7, 0x00, 0x00, 0x00, 0xff, 0xff, 0x10, 0x6a, 0x03, 0x6d, 0x91, 0x24, + 0xf9, 0xc0, 0x07, 0x5b, 0xe6, 0xd0, 0x18, 0x03, 0x0d, 0x36, 0xc3, 0x18, 0x83, 0x3d, 0xc6, 0xfe, + 0x7b, 0xf7, 0x5f, 0x45, 0x6c, 0xaf, 0xb3, 0xce, 0x1e, 0xb2, 0xc1, 0x08, 0x1b, 0xb0, 0xa0, 0x56, + 0x25, 0xc9, 0xbb, 0x4e, 0x2a, 0x29, 0xaa, 0x2d, 0x35, 0x42, 0x41, 0x9a, 0x51, 0x66, 0x9a, 0xc1, + 0x7a, 0x93, 0x3c, 0x42, 0x2a, 0xaf, 0x91, 0x9b, 0x5c, 0xa6, 0x2a, 0x17, 0xc9, 0x65, 0xca, 0x79, + 0x88, 0x5c, 0x26, 0xd5, 0x3d, 0x33, 0x7d, 0x9a, 0xee, 0x91, 0xf6, 0x8a, 0xe1, 0x3b, 0xf5, 0xf9, + 0xeb, 0xdf, 0xd7, 0x25, 0x70, 0x93, 0xf4, 0x2e, 0x92, 0xe1, 0x87, 0x9d, 0x61, 0x14, 0x92, 0x10, + 0x4e, 0xa7, 0xff, 0x79, 0xcb, 0xed, 0x70, 0x18, 0x85, 0x6d, 0x1c, 0xc7, 0x61, 0x94, 0xaa, 0xbc, + 0x85, 0x8b, 0x24, 0x1a, 0xb6, 0x73, 0x4b, 0x6f, 0x6e, 0x30, 0x1c, 0x66, 0x9f, 0x2b, 0x11, 0x3a, + 0x23, 0xa7, 0x31, 0x8e, 0x12, 0x1c, 0x71, 0xfd, 0x4a, 0xa7, 0x17, 0xa3, 0x6e, 0x37, 0xc2, 0x5d, + 0x44, 0x70, 0x27, 0x13, 0xae, 0x76, 0xc3, 0x6e, 0xc8, 0x3e, 0x7f, 0x46, 0xbf, 0x32, 0xe9, 0x62, + 0x74, 0x19, 0x13, 0xf6, 0x99, 0x0a, 0xfc, 0xbf, 0x2f, 0x81, 0xd5, 0x3d, 0x44, 0xda, 0xe7, 0xd5, + 0x70, 0x30, 0x40, 0x41, 0x27, 0x6e, 0xe0, 0x3f, 0x5c, 0xe2, 0x98, 0xc0, 0x5d, 0x30, 0x1b, 0xa5, + 0x9f, 0xb1, 0x3b, 0x75, 0xff, 0xfa, 0x93, 0xf9, 0xe7, 0xdb, 0x3b, 0x59, 0xff, 0x4d, 0xf6, 0x3b, + 0xd9, 0xdf, 0x06, 0xf7, 0x82, 0x5b, 0x60, 0x3e, 0xfb, 0x3e, 0xed, 0x75, 0x62, 0xf7, 0xda, 0xfd, + 0xeb, 0x4f, 0x2a, 0x0d, 0x90, 0x89, 0x8e, 0x3a, 0xb1, 0xf7, 0x8f, 0x45, 0x30, 0x93, 0x37, 0xf7, + 0x7f, 0xe0, 0xfa, 0x01, 0x26, 0xee, 0xd4, 0xfd, 0xa9, 0x27, 0xf3, 0xcf, 0x57, 0x76, 0xf2, 0x09, + 0x38, 0xc0, 0x24, 0xb3, 0x38, 0x74, 0x1a, 0xd4, 0x02, 0x7e, 0x0e, 0x2a, 0xcd, 0x36, 0x0a, 0xdc, + 0x6b, 0xcc, 0x72, 0x95, 0x5b, 0x52, 0xa1, 0x30, 0x65, 0x36, 0xf0, 0x4b, 0x30, 0x5b, 0x8f, 0xf0, + 0x55, 0xd4, 0x23, 0xd8, 0xbd, 0xce, 0xec, 0x5d, 0x6e, 0x9f, 0x2b, 0x84, 0x0f, 0xb7, 0x85, 0x4f, + 0xc1, 0x34, 0x1d, 0x5e, 0x8f, 0xb8, 0x15, 0xe6, 0x75, 0x87, 0x7b, 0xa5, 0x62, 0xe1, 0x93, 0xd9, + 0x51, 0x8f, 0xa3, 0xc1, 0x30, 0x8c, 0x88, 0x7b, 0x43, 0xf3, 0x48, 0xc5, 0x92, 0x47, 0x2a, 0x80, + 0x5f, 0x80, 0x99, 0x6a, 0x1f, 0xa3, 0xe0, 0x72, 0xe8, 0x4e, 0x33, 0x97, 0x35, 0xd1, 0x48, 0x2a, + 0x17, 0x3e, 0xb9, 0x25, 0x1d, 0x10, 0x9b, 0x7c, 0x3a, 0x55, 0x33, 0xda, 0x80, 0x72, 0x85, 0x34, + 0xa0, 0x5c, 0x04, 0x5f, 0x83, 0x05, 0xf6, 0xdd, 0x08, 0xfb, 0xfd, 0x0f, 0xa8, 0x7d, 0xe1, 0xce, + 0x32, 0xe7, 0x7b, 0xaa, 0x73, 0xae, 0x15, 0x11, 0x54, 0x2f, 0xda, 0x3c, 0x9d, 0xd7, 0xe3, 0xb0, + 0x7d, 0xe1, 0xce, 0x69, 0xcd, 0xe7, 0x0a, 0xa9, 0xf9, 0x5c, 0x04, 0x7f, 0x05, 0xe6, 0x1b, 0x38, + 0x0e, 0xfb, 0x09, 0x66, 0xae, 0x80, 0xb9, 0xde, 0xe5, 0xae, 0x92, 0x4e, 0x78, 0xcb, 0x1e, 0x70, + 0x1b, 0x5c, 0x3b, 0xa8, 0xba, 0xf3, 0xcc, 0x0f, 0x8a, 0xcd, 0x51, 0x15, 0xe6, 0xd7, 0x0e, 0xaa, + 0xb4, 0x99, 0x7d, 0xdc, 0xc7, 0x04, 0x37, 0x50, 0xd0, 0xc5, 0xee, 0x4d, 0xad, 0x19, 0x49, 0x27, + 0x35, 0x23, 0x49, 0xe9, 0x2a, 0x36, 0xd0, 0x15, 0x9d, 0xdc, 0x05, 0x6d, 0x15, 0x53, 0xb1, 0xb4, + 0x8a, 0xa9, 0x80, 0x8d, 0x0c, 0x5d, 0xf1, 0x35, 0xb9, 0xa5, 0x8f, 0x4c, 0xe8, 0xe4, 0x91, 0x09, + 0x69, 0xd6, 0x64, 0xfd, 0x92, 0xb8, 0x8b, 0xc5, 0x26, 0xeb, 0x97, 0x5a, 0x93, 0xf5, 0x4b, 0xa5, + 0x49, 0xea, 0xb6, 0x64, 0x69, 0x52, 0xf1, 0x95, 0x3d, 0xe0, 0x57, 0x60, 0xae, 0x81, 0xae, 0xd2, + 0x71, 0xbb, 0xcb, 0xcc, 0x7d, 0x5d, 0x76, 0xcf, 0x66, 0x84, 0x3b, 0x0b, 0x6b, 0x78, 0x08, 0x6e, + 0xe5, 0x91, 0x32, 0x7f, 0xc8, 0xfc, 0x37, 0x0b, 0xcd, 0xeb, 0x41, 0x34, 0x3f, 0xba, 0xfd, 0x1b, + 0xe8, 0x8a, 0x9d, 0xe4, 0x15, 0x6d, 0xfb, 0x67, 0x72, 0x69, 0xfb, 0x67, 0x92, 0xac, 0x79, 0x79, + 0x8d, 0x57, 0x8b, 0xcd, 0x1b, 0x97, 0x59, 0xf3, 0x83, 0x7b, 0xe0, 0x66, 0xde, 0x21, 0xd6, 0x87, + 0xdb, 0x2c, 0xce, 0x46, 0x61, 0x18, 0x6a, 0x47, 0x14, 0x1f, 0xf8, 0x0b, 0x30, 0x5f, 0x15, 0xa9, + 0xdb, 0xbd, 0x93, 0x25, 0x24, 0x39, 0x9d, 0x4b, 0x2b, 0x20, 0x99, 0xc2, 0x1a, 0x58, 0xac, 0xe3, + 0x38, 0xee, 0x0d, 0x7a, 0x31, 0xe9, 0xb5, 0xd9, 0x99, 0x58, 0x63, 0xde, 0x5b, 0x22, 0x3d, 0xa9, + 0x7a, 0x11, 0x48, 0xf7, 0x84, 0x3f, 0x82, 0x15, 0x49, 0xc4, 0x4f, 0xb8, 0xcb, 0x02, 0x3e, 0x34, + 0x05, 0x2c, 0x9e, 0x73, 0x53, 0x04, 0x3a, 0xdb, 0xd5, 0x73, 0xdc, 0xbe, 0x68, 0x7d, 0x0c, 0x9a, + 0x04, 0x91, 0xcb, 0xd8, 0x5d, 0xd7, 0x66, 0x5b, 0x55, 0x4b, 0xb3, 0xad, 0x2a, 0xe8, 0x6c, 0xb7, + 0x3e, 0x06, 0x87, 0x18, 0x45, 0x64, 0x0f, 0x23, 0xe2, 0x7a, 0xda, 0x6c, 0xcb, 0x4a, 0x69, 0xb6, + 0x65, 0x31, 0x1d, 0x26, 0x8b, 0xda, 0xc4, 0xed, 0x30, 0xe8, 0xa0, 0x68, 0x44, 0x07, 0x1f, 0xbb, + 0x0f, 0xb4, 0x61, 0x1a, 0x6c, 0xa4, 0x61, 0x1a, 0xb4, 0xd9, 0xa6, 0x92, 0x57, 0xd2, 0x2f, 0x6e, + 0x2a, 0x49, 0xad, 0x6e, 0x2a, 0x79, 0x59, 0x5b, 0x00, 0xbe, 0xe9, 0xa3, 0xf8, 0x9c, 0xce, 0x5e, + 0x2b, 0xfc, 0x01, 0x47, 0x71, 0x2f, 0x0c, 0xdc, 0x87, 0x2c, 0x9a, 0xcf, 0xa3, 0x15, 0x4d, 0x44, + 0x44, 0x83, 0x3f, 0xec, 0x81, 0xf5, 0x7a, 0x84, 0x87, 0x28, 0xc2, 0x86, 0xe0, 0xdb, 0x2c, 0xf8, + 0x67, 0xf2, 0xad, 0x66, 0xb6, 0x14, 0x6d, 0xd8, 0xa3, 0xc1, 0xaf, 0xc1, 0x8d, 0xd7, 0x83, 0x21, + 0x19, 0xb9, 0xff, 0x4d, 0xef, 0xe1, 0x07, 0xc6, 0x1b, 0x9f, 0x99, 0x88, 0x78, 0xa9, 0xcb, 0xde, + 0x0d, 0x70, 0xbd, 0x3d, 0xe8, 0xbc, 0xad, 0xcc, 0xde, 0x5d, 0x7a, 0xe0, 0xff, 0x79, 0x19, 0xdc, + 0xd6, 0x28, 0x21, 0x1e, 0x86, 0x41, 0x8c, 0xe1, 0x3e, 0x98, 0x8b, 0xb2, 0xef, 0x9c, 0x2b, 0x1e, + 0x5b, 0xb8, 0x22, 0xb5, 0xda, 0xc9, 0x3f, 0x1a, 0xc2, 0x71, 0x2c, 0x5a, 0xc0, 0xa7, 0x60, 0x95, + 0x44, 0x28, 0x88, 0xe9, 0x55, 0x7b, 0xda, 0x47, 0x23, 0x1c, 0x9d, 0xf6, 0x43, 0xd4, 0x61, 0x14, + 0x50, 0x69, 0x40, 0xae, 0x3b, 0xa6, 0xaa, 0xe3, 0x10, 0x75, 0xbc, 0xff, 0x2c, 0x82, 0x59, 0xde, + 0xcb, 0x27, 0x32, 0x8d, 0xac, 0xaa, 0x34, 0x92, 0x9a, 0xe4, 0x38, 0xf2, 0xff, 0x0a, 0x8e, 0xdc, + 0xd6, 0x70, 0x84, 0xdb, 0xa6, 0x3c, 0xf2, 0xb2, 0xc0, 0x23, 0xeb, 0x06, 0x1e, 0xe1, 0x4e, 0x02, + 0x48, 0x9e, 0x69, 0x40, 0xb2, 0x56, 0x00, 0x12, 0xee, 0x94, 0x13, 0xc9, 0x33, 0x8d, 0x48, 0xd6, + 0x0a, 0x44, 0x22, 0x5c, 0x32, 0x24, 0x79, 0xa1, 0x23, 0x89, 0x5b, 0x44, 0x12, 0xee, 0xc4, 0x99, + 0xe4, 0x65, 0x81, 0x49, 0xd6, 0x0d, 0x4c, 0x22, 0x06, 0xc5, 0xaf, 0xbe, 0x37, 0x66, 0x28, 0xd9, + 0xb4, 0x41, 0x09, 0x0f, 0xa1, 0x51, 0xc9, 0xcb, 0x02, 0x95, 0xac, 0x1b, 0xa8, 0x44, 0x74, 0x80, + 0x63, 0xc9, 0xae, 0x09, 0x4b, 0x36, 0xcc, 0x58, 0xc2, 0xdd, 0x15, 0x2e, 0x79, 0x24, 0x71, 0xc9, + 0x8a, 0xc2, 0x25, 0xdc, 0x9e, 0x82, 0xc9, 0xae, 0x09, 0x4c, 0x36, 0xcc, 0x60, 0x22, 0x1a, 0x92, + 0xef, 0xab, 0x67, 0x1a, 0x99, 0xac, 0x15, 0xc8, 0x44, 0xac, 0x66, 0x86, 0x26, 0xbb, 0x26, 0x34, + 0xd9, 0x30, 0xa3, 0x89, 0x34, 0x3a, 0x89, 0x4d, 0x9e, 0x69, 0x6c, 0xb2, 0x56, 0x60, 0x13, 0xa5, + 0x51, 0xca, 0x16, 0xbb, 0x26, 0x38, 0xd9, 0x30, 0xc3, 0x49, 0xb1, 0x51, 0x1a, 0xe1, 0xeb, 0x22, + 0x9d, 0x78, 0x26, 0x3a, 0xe1, 0xde, 0x12, 0x9e, 0x1c, 0x59, 0xf0, 0x64, 0xcb, 0x8a, 0x27, 0x3c, + 0x8a, 0xce, 0x27, 0x2f, 0x74, 0x3e, 0x71, 0x8b, 0x7c, 0x22, 0xce, 0x42, 0x0e, 0x28, 0x47, 0x16, + 0x40, 0xd9, 0xb2, 0x02, 0x8a, 0xd2, 0x01, 0x79, 0xc5, 0xab, 0x46, 0x42, 0xb9, 0x67, 0x21, 0x14, + 0x1e, 0x46, 0x45, 0x94, 0xaf, 0x4c, 0x88, 0x72, 0x5b, 0x43, 0x14, 0xb1, 0x0e, 0xf2, 0x65, 0x76, + 0x6c, 0x63, 0x94, 0xfb, 0x76, 0x46, 0xe1, 0x91, 0x0a, 0x90, 0xf2, 0xbe, 0x0c, 0x52, 0xb6, 0xcb, + 0x21, 0x85, 0x47, 0x35, 0x52, 0xca, 0x91, 0x85, 0x52, 0xb6, 0xac, 0x94, 0x22, 0xa6, 0x5c, 0xc3, + 0x94, 0xaa, 0x11, 0x53, 0xee, 0x59, 0x30, 0x45, 0x4c, 0xb9, 0xc2, 0x29, 0xef, 0xcb, 0x38, 0x65, + 0xbb, 0x9c, 0x53, 0xc4, 0x48, 0x4d, 0xa0, 0x72, 0x64, 0x01, 0x95, 0x2d, 0x2b, 0xa8, 0x28, 0x9b, + 0x4b, 0x5e, 0xdc, 0x77, 0x25, 0xa4, 0xf2, 0xb0, 0x94, 0x54, 0x78, 0x48, 0x13, 0xaa, 0xfc, 0x7e, + 0x3c, 0xaa, 0x7c, 0x3e, 0x09, 0xaa, 0xf0, 0x46, 0x4a, 0x58, 0xe5, 0x1b, 0x8d, 0x55, 0xfc, 0x32, + 0x56, 0xe1, 0x01, 0x4d, 0xb0, 0xb2, 0x07, 0x96, 0xd2, 0x0b, 0x05, 0x9d, 0x91, 0x13, 0x1c, 0xc7, + 0xa8, 0x8b, 0xe1, 0x0e, 0xa8, 0x0c, 0xe2, 0x6e, 0x4e, 0x28, 0xde, 0x8e, 0xfa, 0xec, 0x22, 0x59, + 0x36, 0x98, 0x9d, 0xdf, 0x04, 0xeb, 0x56, 0x46, 0x82, 0x6b, 0x60, 0x86, 0xa4, 0xa8, 0xc2, 0x88, + 0xa2, 0xd2, 0x98, 0x26, 0x0c, 0x53, 0xe0, 0x3d, 0x00, 0x3a, 0xb8, 0x8f, 0x46, 0xa7, 0xa4, 0x37, + 0xc0, 0x0c, 0x21, 0x2a, 0x8d, 0x39, 0x26, 0x69, 0xf5, 0x06, 0xd8, 0xff, 0x39, 0xf0, 0xec, 0x83, + 0xb1, 0x46, 0x7d, 0xfe, 0x97, 0x47, 0xa0, 0xd2, 0xea, 0x5d, 0x24, 0xf0, 0x05, 0xb8, 0x51, 0x4b, + 0x68, 0x22, 0x37, 0xbd, 0xa7, 0x78, 0x46, 0xac, 0xf1, 0x1d, 0xf8, 0x12, 0x4c, 0xd7, 0x12, 0x96, + 0x3d, 0x8c, 0x8f, 0x2b, 0x9e, 0x99, 0x71, 0x7c, 0x07, 0x56, 0x01, 0xa8, 0x25, 0x1c, 0x59, 0xac, + 0x2f, 0x2d, 0x9e, 0x9d, 0x79, 0x7c, 0x07, 0xbe, 0x07, 0xcb, 0xb5, 0x44, 0xcf, 0x1e, 0xe3, 0xca, + 0x22, 0x6f, 0x6c, 0x4e, 0xf2, 0x1d, 0xd8, 0x01, 0xb7, 0x6b, 0x3f, 0x98, 0x32, 0xc8, 0x24, 0x35, + 0x92, 0x37, 0x51, 0x8e, 0xf2, 0x1d, 0xf8, 0x3d, 0xb8, 0x55, 0x4b, 0x94, 0x84, 0x50, 0x5a, 0xe6, + 0x78, 0xe5, 0xd9, 0xc5, 0x77, 0xe0, 0x3b, 0xb0, 0x54, 0x4b, 0xb4, 0x44, 0x35, 0xa6, 0x02, 0xf3, + 0xc6, 0xe5, 0xbe, 0x6c, 0x36, 0x12, 0x53, 0x96, 0x99, 0xa4, 0x94, 0xf2, 0x26, 0xca, 0x63, 0xbe, + 0x03, 0x7f, 0x09, 0x66, 0x6b, 0x49, 0x06, 0xa4, 0x96, 0x47, 0x34, 0xcf, 0xc6, 0xb2, 0xb9, 0x7b, + 0x06, 0xa7, 0x96, 0x17, 0x35, 0xcf, 0xc6, 0xb5, 0xbe, 0x03, 0x77, 0xc1, 0x5c, 0x2d, 0xc9, 0x31, + 0xd5, 0xf6, 0xbc, 0xe6, 0x59, 0x21, 0x37, 0xdf, 0xd2, 0x9c, 0x87, 0xac, 0x6f, 0x6d, 0x9e, 0x9d, + 0x78, 0x7d, 0x07, 0x36, 0xc0, 0x62, 0x16, 0x84, 0x6f, 0xb9, 0xf2, 0x87, 0x37, 0x6f, 0x0c, 0x02, + 0xe7, 0x1d, 0xe3, 0x20, 0x6b, 0x7d, 0x85, 0xf3, 0xec, 0x24, 0xec, 0x3b, 0xf0, 0x18, 0x2c, 0xd4, + 0x12, 0x19, 0x67, 0xcb, 0x9e, 0xe4, 0xbc, 0x52, 0x30, 0xf6, 0x1d, 0xf8, 0x0c, 0x54, 0x6a, 0xc9, + 0x41, 0x15, 0x1a, 0xde, 0xe7, 0x3c, 0x13, 0x1b, 0xe7, 0x1d, 0x90, 0xa1, 0xa7, 0xec, 0xb1, 0xce, + 0x2b, 0x05, 0x66, 0xdf, 0x81, 0x09, 0xb8, 0xcb, 0xf2, 0x8f, 0xe5, 0xc2, 0x98, 0xbc, 0x48, 0xf6, + 0x7e, 0xc2, 0x25, 0xe5, 0x3b, 0x10, 0x81, 0xd5, 0x5a, 0x62, 0x68, 0x70, 0x82, 0x92, 0xdf, 0x9b, + 0xe4, 0xb2, 0xf5, 0x1d, 0xf8, 0x4d, 0x8e, 0xff, 0xd0, 0xf2, 0x24, 0xe9, 0xd9, 0x0a, 0x02, 0xdf, + 0x81, 0x6f, 0x95, 0x42, 0x00, 0x96, 0xbd, 0x4e, 0x7a, 0xa5, 0xf5, 0x01, 0xef, 0x08, 0xe5, 0x74, + 0xcb, 0x43, 0xa5, 0x67, 0x2b, 0x12, 0xd4, 0x8e, 0xd0, 0x08, 0x65, 0x6f, 0x96, 0x5e, 0x69, 0xcd, + 0xe0, 0x3b, 0x70, 0x5f, 0x2a, 0x13, 0xa0, 0xfd, 0xf9, 0xd2, 0x2b, 0xa9, 0x1d, 0x7c, 0x07, 0x36, + 0xf5, 0x82, 0x01, 0x8e, 0x79, 0xc9, 0xf4, 0xc6, 0x95, 0x12, 0xbe, 0x03, 0xbf, 0xe3, 0xa5, 0x03, + 0xb4, 0x3d, 0x6a, 0x7a, 0xd6, 0x6a, 0x82, 0x77, 0x4a, 0x3e, 0x16, 0x63, 0xde, 0x37, 0xbd, 0x71, + 0xe5, 0x85, 0xef, 0xc0, 0x13, 0xb5, 0x9c, 0x80, 0xa5, 0x4f, 0x9d, 0x5e, 0x79, 0x99, 0xc1, 0xc3, + 0x1d, 0x60, 0x52, 0xc3, 0xa3, 0x56, 0xeb, 0x58, 0x0d, 0xc7, 0xc5, 0xc6, 0x70, 0x92, 0x96, 0x87, + 0x7b, 0x03, 0x96, 0x19, 0xa1, 0x0e, 0xe8, 0x61, 0x7b, 0x15, 0x74, 0x9a, 0x57, 0x68, 0xa8, 0xee, + 0xb0, 0xea, 0xab, 0xa6, 0x71, 0x87, 0x31, 0xb9, 0xb6, 0xc3, 0xd8, 0x9d, 0x14, 0x5f, 0x0e, 0xd4, + 0x1d, 0x96, 0x4b, 0x8d, 0x3b, 0x4c, 0x28, 0x79, 0xac, 0x53, 0x00, 0xdf, 0x05, 0x31, 0x3a, 0xc3, + 0xfb, 0x38, 0x26, 0x51, 0x38, 0x4a, 0x97, 0x42, 0x1c, 0xea, 0xa2, 0xb2, 0x78, 0xa8, 0x4d, 0x36, + 0xbc, 0x01, 0x0c, 0x56, 0x1b, 0xb8, 0xdb, 0x8b, 0x09, 0x8e, 0x68, 0x2a, 0xfd, 0xfe, 0x43, 0xca, + 0x97, 0x70, 0x5b, 0x4a, 0xb4, 0x45, 0x75, 0xde, 0xc8, 0xa3, 0x31, 0x56, 0xbc, 0x99, 0xdf, 0x82, + 0x65, 0x36, 0x3a, 0xa5, 0x8d, 0x07, 0xea, 0x05, 0x6e, 0x6a, 0xc0, 0x2f, 0x33, 0x91, 0x67, 0xa9, + 0x81, 0x07, 0x61, 0x7a, 0x1b, 0xf0, 0xf0, 0xbe, 0xd4, 0x39, 0x5d, 0x59, 0x9c, 0x25, 0x93, 0x0d, + 0x6f, 0xe0, 0xd7, 0x60, 0xa9, 0x7e, 0x3e, 0x8a, 0x7b, 0x6d, 0xd4, 0xe7, 0xf7, 0x9d, 0x84, 0x7b, + 0x9a, 0x2a, 0x0f, 0xfe, 0xa0, 0xc4, 0x82, 0x87, 0xfe, 0x56, 0xa9, 0x8e, 0xa1, 0xf1, 0xe9, 0xde, + 0x33, 0x57, 0xcb, 0x2c, 0x03, 0x2d, 0x4b, 0xde, 0x4d, 0x12, 0x61, 0x34, 0xf8, 0x89, 0x31, 0x9e, + 0x4e, 0xc1, 0x93, 0xac, 0xf8, 0x90, 0x3b, 0xb2, 0xae, 0x98, 0xa7, 0x08, 0xc0, 0xd3, 0x99, 0x41, + 0x25, 0x85, 0x6b, 0xea, 0x35, 0x22, 0x1c, 0xf3, 0x8c, 0xed, 0x8d, 0xab, 0x1e, 0x59, 0xd2, 0xaf, + 0xd0, 0x8a, 0x07, 0x96, 0x94, 0x41, 0xde, 0x8a, 0xa6, 0xdb, 0x0f, 0x03, 0xec, 0x3b, 0x4f, 0xa6, + 0xe0, 0x77, 0x60, 0x8e, 0x57, 0x57, 0xd0, 0x55, 0x8a, 0xb4, 0x89, 0xfc, 0x5f, 0x81, 0xd9, 0x66, + 0x80, 0x86, 0xf1, 0x79, 0x48, 0x51, 0x5a, 0x35, 0xca, 0x15, 0xd5, 0xf3, 0xcb, 0xe0, 0xc2, 0x1e, + 0xe2, 0x2d, 0x98, 0x6f, 0x0e, 0xfb, 0x94, 0x2c, 0xbb, 0xf4, 0x5e, 0x16, 0x59, 0x41, 0x92, 0x16, + 0xb3, 0x82, 0xa2, 0x54, 0xee, 0x1d, 0x8c, 0x3a, 0x47, 0x41, 0x07, 0x7f, 0x94, 0xef, 0x9d, 0x5c, + 0x66, 0xb8, 0x77, 0x84, 0x4a, 0x4e, 0x9f, 0x27, 0x49, 0xbb, 0x7d, 0x80, 0xc9, 0xde, 0xa8, 0x86, + 0x47, 0x52, 0xfa, 0x94, 0xc5, 0xc5, 0xf4, 0xa9, 0x6a, 0xe5, 0x33, 0xc2, 0x35, 0x4d, 0x82, 0x22, + 0xd2, 0x8a, 0xa5, 0x33, 0xa2, 0xab, 0x8a, 0x67, 0xa4, 0x68, 0x21, 0xc1, 0xeb, 0x82, 0x52, 0x83, + 0xc2, 0x8d, 0xb2, 0x5f, 0x01, 0x78, 0xf7, 0x4a, 0xdf, 0xf2, 0xe9, 0x6a, 0x3c, 0x9d, 0x82, 0x87, + 0x60, 0x71, 0xbf, 0x17, 0x0f, 0xa9, 0xc5, 0x49, 0xbd, 0xde, 0x42, 0x31, 0x25, 0xd8, 0xc1, 0x70, + 0xb8, 0x93, 0x4b, 0xa9, 0x48, 0x10, 0x6c, 0x51, 0xc3, 0x7b, 0xb7, 0x07, 0x16, 0xaa, 0x28, 0x68, + 0xe3, 0x7e, 0x1e, 0xe7, 0x0e, 0xb3, 0x4e, 0x65, 0x72, 0x94, 0xb5, 0x82, 0x9c, 0xc7, 0x68, 0x81, + 0x3b, 0xaf, 0x63, 0x82, 0x3e, 0xf4, 0x7b, 0x31, 0xed, 0x4e, 0x35, 0x0c, 0x02, 0xdc, 0x26, 0x29, + 0xc0, 0x51, 0x27, 0xb3, 0x32, 0x0f, 0x0c, 0x99, 0xcd, 0x49, 0xbd, 0xbe, 0x8f, 0x08, 0xaa, 0xa3, + 0xf6, 0x05, 0x26, 0xec, 0x20, 0x7e, 0x09, 0x66, 0x8e, 0xe2, 0x57, 0xfd, 0x5e, 0x82, 0xe1, 0x0a, + 0x33, 0xc9, 0xfe, 0x13, 0xd5, 0xb7, 0x22, 0xe4, 0xbd, 0x39, 0x04, 0xf3, 0x69, 0xba, 0xc5, 0xa8, + 0x83, 0x23, 0x69, 0xaf, 0x4a, 0xd2, 0xe2, 0x5e, 0x55, 0x94, 0xd9, 0xfb, 0x40, 0x0d, 0xdc, 0x3a, + 0xc0, 0xa4, 0x49, 0xc2, 0x08, 0x37, 0xd1, 0x19, 0x6e, 0x35, 0xe5, 0x8d, 0x2f, 0xa4, 0x86, 0x8d, + 0x2f, 0x2b, 0xb3, 0x60, 0x2d, 0xb0, 0x78, 0x80, 0x09, 0xcd, 0x9f, 0x3f, 0xa2, 0x1e, 0x39, 0x0a, + 0xce, 0x42, 0xa9, 0x28, 0xd7, 0x34, 0xc5, 0xa2, 0xbc, 0x60, 0x90, 0x45, 0xfd, 0x16, 0xcc, 0xb0, + 0x3b, 0xbf, 0x4d, 0xa0, 0x52, 0x05, 0x52, 0x89, 0xa1, 0x3c, 0xcb, 0x15, 0x99, 0xf7, 0xef, 0x00, + 0x94, 0x02, 0x1f, 0xf6, 0x62, 0x12, 0x46, 0x23, 0xe9, 0xea, 0x29, 0x2a, 0x8b, 0x57, 0x8f, 0xc9, + 0x26, 0x0b, 0xdf, 0x04, 0x80, 0x44, 0xa3, 0x57, 0x9d, 0x4e, 0x76, 0xe5, 0xa8, 0x3f, 0xb2, 0x69, + 0x71, 0x95, 0x38, 0x4e, 0x76, 0x0b, 0xe9, 0x32, 0x5e, 0x20, 0xd1, 0xe8, 0x04, 0x45, 0x17, 0x19, + 0x6f, 0x3e, 0x2c, 0x7a, 0x09, 0xad, 0x28, 0xb7, 0x4b, 0x8d, 0x78, 0xf4, 0x00, 0xac, 0xf0, 0xdd, + 0xba, 0xcf, 0x3c, 0xd8, 0xa1, 0xf8, 0x4c, 0x73, 0x37, 0xd8, 0x88, 0xca, 0x67, 0x02, 0x53, 0xde, + 0xde, 0x6f, 0xc0, 0xd2, 0x1b, 0x4c, 0x11, 0x98, 0x29, 0xeb, 0xa8, 0x8b, 0x63, 0xf8, 0x58, 0x8b, + 0xa0, 0x1b, 0x88, 0x04, 0xa9, 0xda, 0x31, 0xa5, 0x38, 0x40, 0x7b, 0x8f, 0xff, 0xf9, 0xa7, 0xd9, + 0xa9, 0xbf, 0x7e, 0xda, 0x9c, 0xfa, 0xdb, 0xa7, 0xcd, 0xa9, 0x7f, 0x7d, 0xda, 0x9c, 0xfa, 0xe3, + 0xbf, 0x37, 0x1d, 0xb0, 0x14, 0x46, 0x5d, 0x96, 0x62, 0x76, 0x2e, 0x12, 0xf6, 0x03, 0xa6, 0x0f, + 0xd3, 0xec, 0xcf, 0x17, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xc8, 0xdf, 0x05, 0xfc, 0x5d, 0x25, 0x00, 0x00, } @@ -1501,6 +1504,10 @@ type TikvClient interface { TryAddLock(ctx context.Context, in *disaggregated.TryAddLockRequest, opts ...grpc.CallOption) (*disaggregated.TryAddLockResponse, error) /// Try to delete a S3 object, atomically TryMarkDelete(ctx context.Context, in *disaggregated.TryMarkDeleteRequest, opts ...grpc.CallOption) (*disaggregated.TryMarkDeleteResponse, error) + /// Build the disaggregated task on TiFlash write node + EstablishDisaggTask(ctx context.Context, in *disaggregated.EstablishDisaggTaskRequest, opts ...grpc.CallOption) (*disaggregated.EstablishDisaggTaskResponse, error) + /// Exchange page data between TiFlash write node and compute node + FetchDisaggPages(ctx context.Context, in *disaggregated.FetchDisaggPagesRequest, opts ...grpc.CallOption) (Tikv_FetchDisaggPagesClient, error) } type tikvClient struct { @@ -2208,6 +2215,47 @@ func (c *tikvClient) TryMarkDelete(ctx context.Context, in *disaggregated.TryMar return out, nil } +func (c *tikvClient) EstablishDisaggTask(ctx context.Context, in *disaggregated.EstablishDisaggTaskRequest, opts ...grpc.CallOption) (*disaggregated.EstablishDisaggTaskResponse, error) { + out := new(disaggregated.EstablishDisaggTaskResponse) + err := c.cc.Invoke(ctx, "/tikvpb.Tikv/EstablishDisaggTask", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *tikvClient) FetchDisaggPages(ctx context.Context, in *disaggregated.FetchDisaggPagesRequest, opts ...grpc.CallOption) (Tikv_FetchDisaggPagesClient, error) { + stream, err := c.cc.NewStream(ctx, &_Tikv_serviceDesc.Streams[7], "/tikvpb.Tikv/FetchDisaggPages", opts...) + if err != nil { + return nil, err + } + x := &tikvFetchDisaggPagesClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type Tikv_FetchDisaggPagesClient interface { + Recv() (*disaggregated.PagesPacket, error) + grpc.ClientStream +} + +type tikvFetchDisaggPagesClient struct { + grpc.ClientStream +} + +func (x *tikvFetchDisaggPagesClient) Recv() (*disaggregated.PagesPacket, error) { + m := new(disaggregated.PagesPacket) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + // TikvServer is the server API for Tikv service. type TikvServer interface { // Commands using a transactional interface. @@ -2298,6 +2346,10 @@ type TikvServer interface { TryAddLock(context.Context, *disaggregated.TryAddLockRequest) (*disaggregated.TryAddLockResponse, error) /// Try to delete a S3 object, atomically TryMarkDelete(context.Context, *disaggregated.TryMarkDeleteRequest) (*disaggregated.TryMarkDeleteResponse, error) + /// Build the disaggregated task on TiFlash write node + EstablishDisaggTask(context.Context, *disaggregated.EstablishDisaggTaskRequest) (*disaggregated.EstablishDisaggTaskResponse, error) + /// Exchange page data between TiFlash write node and compute node + FetchDisaggPages(*disaggregated.FetchDisaggPagesRequest, Tikv_FetchDisaggPagesServer) error } // UnimplementedTikvServer can be embedded to have forward compatible implementations. @@ -2481,6 +2533,12 @@ func (*UnimplementedTikvServer) TryAddLock(ctx context.Context, req *disaggregat func (*UnimplementedTikvServer) TryMarkDelete(ctx context.Context, req *disaggregated.TryMarkDeleteRequest) (*disaggregated.TryMarkDeleteResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method TryMarkDelete not implemented") } +func (*UnimplementedTikvServer) EstablishDisaggTask(ctx context.Context, req *disaggregated.EstablishDisaggTaskRequest) (*disaggregated.EstablishDisaggTaskResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EstablishDisaggTask not implemented") +} +func (*UnimplementedTikvServer) FetchDisaggPages(req *disaggregated.FetchDisaggPagesRequest, srv Tikv_FetchDisaggPagesServer) error { + return status.Errorf(codes.Unimplemented, "method FetchDisaggPages not implemented") +} func RegisterTikvServer(s *grpc.Server, srv TikvServer) { s.RegisterService(&_Tikv_serviceDesc, srv) @@ -3589,6 +3647,45 @@ func _Tikv_TryMarkDelete_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } +func _Tikv_EstablishDisaggTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(disaggregated.EstablishDisaggTaskRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TikvServer).EstablishDisaggTask(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tikvpb.Tikv/EstablishDisaggTask", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TikvServer).EstablishDisaggTask(ctx, req.(*disaggregated.EstablishDisaggTaskRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Tikv_FetchDisaggPages_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(disaggregated.FetchDisaggPagesRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(TikvServer).FetchDisaggPages(m, &tikvFetchDisaggPagesServer{stream}) +} + +type Tikv_FetchDisaggPagesServer interface { + Send(*disaggregated.PagesPacket) error + grpc.ServerStream +} + +type tikvFetchDisaggPagesServer struct { + grpc.ServerStream +} + +func (x *tikvFetchDisaggPagesServer) Send(m *disaggregated.PagesPacket) error { + return x.ServerStream.SendMsg(m) +} + var _Tikv_serviceDesc = grpc.ServiceDesc{ ServiceName: "tikvpb.Tikv", HandlerType: (*TikvServer)(nil), @@ -3801,6 +3898,10 @@ var _Tikv_serviceDesc = grpc.ServiceDesc{ MethodName: "tryMarkDelete", Handler: _Tikv_TryMarkDelete_Handler, }, + { + MethodName: "EstablishDisaggTask", + Handler: _Tikv_EstablishDisaggTask_Handler, + }, }, Streams: []grpc.StreamDesc{ { @@ -3839,6 +3940,11 @@ var _Tikv_serviceDesc = grpc.ServiceDesc{ Handler: _Tikv_EstablishMPPConnection_Handler, ServerStreams: true, }, + { + StreamName: "FetchDisaggPages", + Handler: _Tikv_FetchDisaggPages_Handler, + ServerStreams: true, + }, }, Metadata: "tikvpb.proto", } diff --git a/pkg/tracepb/tracepb.pb.go b/pkg/tracepb/tracepb.pb.go index e5b4919..55cf091 100644 --- a/pkg/tracepb/tracepb.pb.go +++ b/pkg/tracepb/tracepb.pb.go @@ -68,6 +68,7 @@ var xxx_messageInfo_TraceRecordRequest proto.InternalMessageInfo type TraceRecord struct { // Types that are valid to be assigned to RecordOneof: + // // *TraceRecord_Report // *TraceRecord_NotifyCollect RecordOneof isTraceRecord_RecordOneof `protobuf_oneof:"record_oneof"` diff --git a/proto/disaggregated.proto b/proto/disaggregated.proto index e31e455..5bcf34d 100644 --- a/proto/disaggregated.proto +++ b/proto/disaggregated.proto @@ -1,8 +1,13 @@ syntax = "proto3"; package disaggregated; +import "coprocessor.proto"; +import "metapb.proto"; + option java_package = "org.tikv.kvproto"; +/// For S3 lock service /// + message S3LockResult { oneof error { Success success = 1; @@ -21,7 +26,6 @@ message Conflict { string reason = 1; } - message TryAddLockRequest { // The data file key to add lock string data_file_key = 1; @@ -43,3 +47,74 @@ message TryMarkDeleteRequest { message TryMarkDeleteResponse { S3LockResult result = 1; } + +/// For compute task dispatch and data exchange /// + +message DisaggTaskMeta { + uint64 start_ts = 1; // start ts of a query + // query_ts + server_id + local_query_id to represent a global unique query. + uint64 query_ts = 2; // timestamp when start to execute query, used for TiFlash miniTSO schedule. + uint64 server_id = 3; // TiDB server id + uint64 local_query_id = 4; // unique local query_id if tidb don't restart. + int64 task_id = 5; // if task id is -1 , it indicates a tidb task. + string executor_id = 6; // the exectuor id +} +message DisaggReadError { + int32 code = 1; + string msg = 2; +} + +message EstablishDisaggTaskRequest { + DisaggTaskMeta meta = 1; + string address = 2; // target address of this task. + // The write node needs to ensure that subsequent + // FetchDisaggPagesRequest can be processed within timeout_s. + // unit: seconds + int64 timeout_s = 3; + // The key ranges, Region meta that read node need to execute TableScan + repeated coprocessor.RegionInfo regions = 4; + int64 schema_ver = 5; + // Used for PartitionTableScan + repeated coprocessor.TableRegions table_regions = 6; + // The encoded TableScan/PartitionTableScan + Selection. + bytes encoded_plan = 7; +} + +message EstablishDisaggTaskResponse { + DisaggReadError error = 1; + // The read node needs to update its region cache about + // these regions + repeated metapb.Region retry_regions = 2; + // Write node maintains a snapshot with a lease time. + // Read node should read the delta pages + // (ColumnFileInMemory and ColumnFileTiny) + // along with this store_id and snapshot_id. + uint64 store_id = 3; // metapb.Store.id + DisaggTaskMeta snapshot_id = 4; + // Serialized disaggregated tasks (per physical table) + repeated bytes tables = 5; +} + +message FetchDisaggPagesRequest { + // The snapshot id to fetch pages + DisaggTaskMeta snapshot_id = 1; + int64 table_id = 2; + uint64 segment_id = 3; + // It must be a subset of the delta pages ids returned + // in EstablishDisaggTaskResponse.segments + repeated uint64 page_ids = 4; +} + +message PagesPacket { + DisaggReadError error = 1; + + // Serialized column file data + // * ColumnFilePersisted alone with its schema, page data, field offsets + repeated bytes pages = 2; + // * ColumnFileInMemory alone with its serialized block + repeated bytes chunks = 3; + + // Return tipb.SelectResponse.execution_summaries in the + // last packet + repeated bytes summaries = 4; +} diff --git a/proto/tikvpb.proto b/proto/tikvpb.proto index 22edf11..f0305df 100644 --- a/proto/tikvpb.proto +++ b/proto/tikvpb.proto @@ -121,6 +121,10 @@ service Tikv { rpc tryAddLock(disaggregated.TryAddLockRequest) returns (disaggregated.TryAddLockResponse) {}; /// Try to delete a S3 object, atomically rpc tryMarkDelete(disaggregated.TryMarkDeleteRequest) returns (disaggregated.TryMarkDeleteResponse) {}; + /// Build the disaggregated task on TiFlash write node + rpc EstablishDisaggTask(disaggregated.EstablishDisaggTaskRequest) returns (disaggregated.EstablishDisaggTaskResponse) {} + /// Exchange page data between TiFlash write node and compute node + rpc FetchDisaggPages(disaggregated.FetchDisaggPagesRequest) returns (stream disaggregated.PagesPacket) {} } message BatchCommandsRequest { -- Gitee From 599d60b69067d2d4b8c850b0f076497888315a4b Mon Sep 17 00:00:00 2001 From: glorv Date: Mon, 6 Mar 2023 20:37:29 +0800 Subject: [PATCH 11/44] Enhance time_detail (#1070) --- pkg/kvrpcpb/kvrpcpb.pb.go | 1303 ++++++++++++++++++++++++------------- proto/kvrpcpb.proto | 21 + scripts/proto.lock | 237 +++++++ 3 files changed, 1100 insertions(+), 461 deletions(-) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index 1d19d25..c2cebe1 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -7001,6 +7001,95 @@ func (m *TimeDetail) GetTotalRpcWallTimeNs() uint64 { return 0 } +type TimeDetailV2 struct { + // Off-cpu wall time elapsed in TiKV side. Usually this includes queue waiting time and + // other kind of waitings in series. (Wait time in the raftstore is not included.) + WaitWallTimeNs uint64 `protobuf:"varint,1,opt,name=wait_wall_time_ns,json=waitWallTimeNs,proto3" json:"wait_wall_time_ns,omitempty"` + // Off-cpu and on-cpu wall time elapsed to actually process the request payload. It does not + // include `wait_wall_time` and `suspend_wall_time`. + // This field is very close to the CPU time in most cases. Some wait time spend in RocksDB + // cannot be excluded for now, like Mutex wait time, which is included in this field, so that + // this field is called wall time instead of CPU time. + ProcessWallTimeNs uint64 `protobuf:"varint,2,opt,name=process_wall_time_ns,json=processWallTimeNs,proto3" json:"process_wall_time_ns,omitempty"` + // Cpu wall time elapsed that task is waiting in queue. + ProcessSuspendWallTimeNs uint64 `protobuf:"varint,3,opt,name=process_suspend_wall_time_ns,json=processSuspendWallTimeNs,proto3" json:"process_suspend_wall_time_ns,omitempty"` + // KV read wall Time means the time used in key/value scan and get. + KvReadWallTimeNs uint64 `protobuf:"varint,4,opt,name=kv_read_wall_time_ns,json=kvReadWallTimeNs,proto3" json:"kv_read_wall_time_ns,omitempty"` + // Total wall clock time spent on this RPC in TiKV . + TotalRpcWallTimeNs uint64 `protobuf:"varint,5,opt,name=total_rpc_wall_time_ns,json=totalRpcWallTimeNs,proto3" json:"total_rpc_wall_time_ns,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TimeDetailV2) Reset() { *m = TimeDetailV2{} } +func (m *TimeDetailV2) String() string { return proto.CompactTextString(m) } +func (*TimeDetailV2) ProtoMessage() {} +func (*TimeDetailV2) Descriptor() ([]byte, []int) { + return fileDescriptor_1afe832be69693c7, []int{86} +} +func (m *TimeDetailV2) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TimeDetailV2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TimeDetailV2.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TimeDetailV2) XXX_Merge(src proto.Message) { + xxx_messageInfo_TimeDetailV2.Merge(m, src) +} +func (m *TimeDetailV2) XXX_Size() int { + return m.Size() +} +func (m *TimeDetailV2) XXX_DiscardUnknown() { + xxx_messageInfo_TimeDetailV2.DiscardUnknown(m) +} + +var xxx_messageInfo_TimeDetailV2 proto.InternalMessageInfo + +func (m *TimeDetailV2) GetWaitWallTimeNs() uint64 { + if m != nil { + return m.WaitWallTimeNs + } + return 0 +} + +func (m *TimeDetailV2) GetProcessWallTimeNs() uint64 { + if m != nil { + return m.ProcessWallTimeNs + } + return 0 +} + +func (m *TimeDetailV2) GetProcessSuspendWallTimeNs() uint64 { + if m != nil { + return m.ProcessSuspendWallTimeNs + } + return 0 +} + +func (m *TimeDetailV2) GetKvReadWallTimeNs() uint64 { + if m != nil { + return m.KvReadWallTimeNs + } + return 0 +} + +func (m *TimeDetailV2) GetTotalRpcWallTimeNs() uint64 { + if m != nil { + return m.TotalRpcWallTimeNs + } + return 0 +} + type ScanInfo struct { Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` Processed int64 `protobuf:"varint,2,opt,name=processed,proto3" json:"processed,omitempty"` @@ -7014,7 +7103,7 @@ func (m *ScanInfo) Reset() { *m = ScanInfo{} } func (m *ScanInfo) String() string { return proto.CompactTextString(m) } func (*ScanInfo) ProtoMessage() {} func (*ScanInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{86} + return fileDescriptor_1afe832be69693c7, []int{87} } func (m *ScanInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7078,7 +7167,7 @@ func (m *ScanDetail) Reset() { *m = ScanDetail{} } func (m *ScanDetail) String() string { return proto.CompactTextString(m) } func (*ScanDetail) ProtoMessage() {} func (*ScanDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{87} + return fileDescriptor_1afe832be69693c7, []int{88} } func (m *ScanDetail) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7174,7 +7263,7 @@ func (m *ScanDetailV2) Reset() { *m = ScanDetailV2{} } func (m *ScanDetailV2) String() string { return proto.CompactTextString(m) } func (*ScanDetailV2) ProtoMessage() {} func (*ScanDetailV2) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{88} + return fileDescriptor_1afe832be69693c7, []int{89} } func (m *ScanDetailV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7308,7 +7397,7 @@ func (m *ExecDetails) Reset() { *m = ExecDetails{} } func (m *ExecDetails) String() string { return proto.CompactTextString(m) } func (*ExecDetails) ProtoMessage() {} func (*ExecDetails) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{89} + return fileDescriptor_1afe832be69693c7, []int{90} } func (m *ExecDetails) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7353,21 +7442,24 @@ func (m *ExecDetails) GetScanDetail() *ScanDetail { type ExecDetailsV2 struct { // Available when ctx.record_time_stat = true or meet slow query. + // deprecated. Should use `time_detail_v2` instead. TimeDetail *TimeDetail `protobuf:"bytes,1,opt,name=time_detail,json=timeDetail,proto3" json:"time_detail,omitempty"` // Available when ctx.record_scan_stat = true or meet slow query. ScanDetailV2 *ScanDetailV2 `protobuf:"bytes,2,opt,name=scan_detail_v2,json=scanDetailV2,proto3" json:"scan_detail_v2,omitempty"` // Raftstore writing durations of the request. Only available for some write requests. - WriteDetail *WriteDetail `protobuf:"bytes,3,opt,name=write_detail,json=writeDetail,proto3" json:"write_detail,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + WriteDetail *WriteDetail `protobuf:"bytes,3,opt,name=write_detail,json=writeDetail,proto3" json:"write_detail,omitempty"` + // Available when ctx.record_time_stat = true or meet slow query. + TimeDetailV2 *TimeDetailV2 `protobuf:"bytes,4,opt,name=time_detail_v2,json=timeDetailV2,proto3" json:"time_detail_v2,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ExecDetailsV2) Reset() { *m = ExecDetailsV2{} } func (m *ExecDetailsV2) String() string { return proto.CompactTextString(m) } func (*ExecDetailsV2) ProtoMessage() {} func (*ExecDetailsV2) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{90} + return fileDescriptor_1afe832be69693c7, []int{91} } func (m *ExecDetailsV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7417,6 +7509,13 @@ func (m *ExecDetailsV2) GetWriteDetail() *WriteDetail { return nil } +func (m *ExecDetailsV2) GetTimeDetailV2() *TimeDetailV2 { + if m != nil { + return m.TimeDetailV2 + } + return nil +} + type WriteDetail struct { // Wait duration in the store loop. StoreBatchWaitNanos uint64 `protobuf:"varint,1,opt,name=store_batch_wait_nanos,json=storeBatchWaitNanos,proto3" json:"store_batch_wait_nanos,omitempty"` @@ -7461,7 +7560,7 @@ func (m *WriteDetail) Reset() { *m = WriteDetail{} } func (m *WriteDetail) String() string { return proto.CompactTextString(m) } func (*WriteDetail) ProtoMessage() {} func (*WriteDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{91} + return fileDescriptor_1afe832be69693c7, []int{92} } func (m *WriteDetail) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7622,7 +7721,7 @@ func (m *KvPair) Reset() { *m = KvPair{} } func (m *KvPair) String() string { return proto.CompactTextString(m) } func (*KvPair) ProtoMessage() {} func (*KvPair) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{92} + return fileDescriptor_1afe832be69693c7, []int{93} } func (m *KvPair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7686,7 +7785,7 @@ func (m *Mutation) Reset() { *m = Mutation{} } func (m *Mutation) String() string { return proto.CompactTextString(m) } func (*Mutation) ProtoMessage() {} func (*Mutation) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{93} + return fileDescriptor_1afe832be69693c7, []int{94} } func (m *Mutation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7762,7 +7861,7 @@ func (m *MvccWrite) Reset() { *m = MvccWrite{} } func (m *MvccWrite) String() string { return proto.CompactTextString(m) } func (*MvccWrite) ProtoMessage() {} func (*MvccWrite) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{94} + return fileDescriptor_1afe832be69693c7, []int{95} } func (m *MvccWrite) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7866,7 +7965,7 @@ func (m *MvccValue) Reset() { *m = MvccValue{} } func (m *MvccValue) String() string { return proto.CompactTextString(m) } func (*MvccValue) ProtoMessage() {} func (*MvccValue) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{95} + return fileDescriptor_1afe832be69693c7, []int{96} } func (m *MvccValue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7931,7 +8030,7 @@ func (m *MvccLock) Reset() { *m = MvccLock{} } func (m *MvccLock) String() string { return proto.CompactTextString(m) } func (*MvccLock) ProtoMessage() {} func (*MvccLock) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{96} + return fileDescriptor_1afe832be69693c7, []int{97} } func (m *MvccLock) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8057,7 +8156,7 @@ func (m *MvccInfo) Reset() { *m = MvccInfo{} } func (m *MvccInfo) String() string { return proto.CompactTextString(m) } func (*MvccInfo) ProtoMessage() {} func (*MvccInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{97} + return fileDescriptor_1afe832be69693c7, []int{98} } func (m *MvccInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8119,7 +8218,7 @@ func (m *TxnInfo) Reset() { *m = TxnInfo{} } func (m *TxnInfo) String() string { return proto.CompactTextString(m) } func (*TxnInfo) ProtoMessage() {} func (*TxnInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{98} + return fileDescriptor_1afe832be69693c7, []int{99} } func (m *TxnInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8174,7 +8273,7 @@ func (m *KeyRange) Reset() { *m = KeyRange{} } func (m *KeyRange) String() string { return proto.CompactTextString(m) } func (*KeyRange) ProtoMessage() {} func (*KeyRange) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{99} + return fileDescriptor_1afe832be69693c7, []int{100} } func (m *KeyRange) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8232,7 +8331,7 @@ func (m *LeaderInfo) Reset() { *m = LeaderInfo{} } func (m *LeaderInfo) String() string { return proto.CompactTextString(m) } func (*LeaderInfo) ProtoMessage() {} func (*LeaderInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{100} + return fileDescriptor_1afe832be69693c7, []int{101} } func (m *LeaderInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8308,7 +8407,7 @@ func (m *ReadState) Reset() { *m = ReadState{} } func (m *ReadState) String() string { return proto.CompactTextString(m) } func (*ReadState) ProtoMessage() {} func (*ReadState) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{101} + return fileDescriptor_1afe832be69693c7, []int{102} } func (m *ReadState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8363,7 +8462,7 @@ func (m *CheckLeaderRequest) Reset() { *m = CheckLeaderRequest{} } func (m *CheckLeaderRequest) String() string { return proto.CompactTextString(m) } func (*CheckLeaderRequest) ProtoMessage() {} func (*CheckLeaderRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{102} + return fileDescriptor_1afe832be69693c7, []int{103} } func (m *CheckLeaderRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8418,7 +8517,7 @@ func (m *CheckLeaderResponse) Reset() { *m = CheckLeaderResponse{} } func (m *CheckLeaderResponse) String() string { return proto.CompactTextString(m) } func (*CheckLeaderResponse) ProtoMessage() {} func (*CheckLeaderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{103} + return fileDescriptor_1afe832be69693c7, []int{104} } func (m *CheckLeaderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8474,7 +8573,7 @@ func (m *StoreSafeTSRequest) Reset() { *m = StoreSafeTSRequest{} } func (m *StoreSafeTSRequest) String() string { return proto.CompactTextString(m) } func (*StoreSafeTSRequest) ProtoMessage() {} func (*StoreSafeTSRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{104} + return fileDescriptor_1afe832be69693c7, []int{105} } func (m *StoreSafeTSRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8521,7 +8620,7 @@ func (m *StoreSafeTSResponse) Reset() { *m = StoreSafeTSResponse{} } func (m *StoreSafeTSResponse) String() string { return proto.CompactTextString(m) } func (*StoreSafeTSResponse) ProtoMessage() {} func (*StoreSafeTSResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{105} + return fileDescriptor_1afe832be69693c7, []int{106} } func (m *StoreSafeTSResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8570,7 +8669,7 @@ func (m *RawGetKeyTTLRequest) Reset() { *m = RawGetKeyTTLRequest{} } func (m *RawGetKeyTTLRequest) String() string { return proto.CompactTextString(m) } func (*RawGetKeyTTLRequest) ProtoMessage() {} func (*RawGetKeyTTLRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{106} + return fileDescriptor_1afe832be69693c7, []int{107} } func (m *RawGetKeyTTLRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8634,7 +8733,7 @@ func (m *RawGetKeyTTLResponse) Reset() { *m = RawGetKeyTTLResponse{} } func (m *RawGetKeyTTLResponse) String() string { return proto.CompactTextString(m) } func (*RawGetKeyTTLResponse) ProtoMessage() {} func (*RawGetKeyTTLResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{107} + return fileDescriptor_1afe832be69693c7, []int{108} } func (m *RawGetKeyTTLResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8708,7 +8807,7 @@ func (m *RawCASRequest) Reset() { *m = RawCASRequest{} } func (m *RawCASRequest) String() string { return proto.CompactTextString(m) } func (*RawCASRequest) ProtoMessage() {} func (*RawCASRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{108} + return fileDescriptor_1afe832be69693c7, []int{109} } func (m *RawCASRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8802,7 +8901,7 @@ func (m *RawCASResponse) Reset() { *m = RawCASResponse{} } func (m *RawCASResponse) String() string { return proto.CompactTextString(m) } func (*RawCASResponse) ProtoMessage() {} func (*RawCASResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{109} + return fileDescriptor_1afe832be69693c7, []int{110} } func (m *RawCASResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8877,7 +8976,7 @@ func (m *GetLockWaitInfoRequest) Reset() { *m = GetLockWaitInfoRequest{} func (m *GetLockWaitInfoRequest) String() string { return proto.CompactTextString(m) } func (*GetLockWaitInfoRequest) ProtoMessage() {} func (*GetLockWaitInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{110} + return fileDescriptor_1afe832be69693c7, []int{111} } func (m *GetLockWaitInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8926,7 +9025,7 @@ func (m *GetLockWaitInfoResponse) Reset() { *m = GetLockWaitInfoResponse func (m *GetLockWaitInfoResponse) String() string { return proto.CompactTextString(m) } func (*GetLockWaitInfoResponse) ProtoMessage() {} func (*GetLockWaitInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{111} + return fileDescriptor_1afe832be69693c7, []int{112} } func (m *GetLockWaitInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8987,7 +9086,7 @@ func (m *GetLockWaitHistoryRequest) Reset() { *m = GetLockWaitHistoryReq func (m *GetLockWaitHistoryRequest) String() string { return proto.CompactTextString(m) } func (*GetLockWaitHistoryRequest) ProtoMessage() {} func (*GetLockWaitHistoryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{112} + return fileDescriptor_1afe832be69693c7, []int{113} } func (m *GetLockWaitHistoryRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9036,7 +9135,7 @@ func (m *GetLockWaitHistoryResponse) Reset() { *m = GetLockWaitHistoryRe func (m *GetLockWaitHistoryResponse) String() string { return proto.CompactTextString(m) } func (*GetLockWaitHistoryResponse) ProtoMessage() {} func (*GetLockWaitHistoryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{113} + return fileDescriptor_1afe832be69693c7, []int{114} } func (m *GetLockWaitHistoryResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9102,7 +9201,7 @@ func (m *RawCoprocessorRequest) Reset() { *m = RawCoprocessorRequest{} } func (m *RawCoprocessorRequest) String() string { return proto.CompactTextString(m) } func (*RawCoprocessorRequest) ProtoMessage() {} func (*RawCoprocessorRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{114} + return fileDescriptor_1afe832be69693c7, []int{115} } func (m *RawCoprocessorRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9181,7 +9280,7 @@ func (m *RawCoprocessorResponse) Reset() { *m = RawCoprocessorResponse{} func (m *RawCoprocessorResponse) String() string { return proto.CompactTextString(m) } func (*RawCoprocessorResponse) ProtoMessage() {} func (*RawCoprocessorResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{115} + return fileDescriptor_1afe832be69693c7, []int{116} } func (m *RawCoprocessorResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9244,7 +9343,7 @@ func (m *RawChecksumRequest) Reset() { *m = RawChecksumRequest{} } func (m *RawChecksumRequest) String() string { return proto.CompactTextString(m) } func (*RawChecksumRequest) ProtoMessage() {} func (*RawChecksumRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{116} + return fileDescriptor_1afe832be69693c7, []int{117} } func (m *RawChecksumRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9309,7 +9408,7 @@ func (m *RawChecksumResponse) Reset() { *m = RawChecksumResponse{} } func (m *RawChecksumResponse) String() string { return proto.CompactTextString(m) } func (*RawChecksumResponse) ProtoMessage() {} func (*RawChecksumResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{117} + return fileDescriptor_1afe832be69693c7, []int{118} } func (m *RawChecksumResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9390,7 +9489,7 @@ func (m *CompactError) Reset() { *m = CompactError{} } func (m *CompactError) String() string { return proto.CompactTextString(m) } func (*CompactError) ProtoMessage() {} func (*CompactError) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{118} + return fileDescriptor_1afe832be69693c7, []int{119} } func (m *CompactError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9498,7 +9597,7 @@ func (m *CompactErrorInvalidStartKey) Reset() { *m = CompactErrorInvalid func (m *CompactErrorInvalidStartKey) String() string { return proto.CompactTextString(m) } func (*CompactErrorInvalidStartKey) ProtoMessage() {} func (*CompactErrorInvalidStartKey) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{119} + return fileDescriptor_1afe832be69693c7, []int{120} } func (m *CompactErrorInvalidStartKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9537,7 +9636,7 @@ func (m *CompactErrorPhysicalTableNotExist) Reset() { *m = CompactErrorP func (m *CompactErrorPhysicalTableNotExist) String() string { return proto.CompactTextString(m) } func (*CompactErrorPhysicalTableNotExist) ProtoMessage() {} func (*CompactErrorPhysicalTableNotExist) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{120} + return fileDescriptor_1afe832be69693c7, []int{121} } func (m *CompactErrorPhysicalTableNotExist) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9576,7 +9675,7 @@ func (m *CompactErrorCompactInProgress) Reset() { *m = CompactErrorCompa func (m *CompactErrorCompactInProgress) String() string { return proto.CompactTextString(m) } func (*CompactErrorCompactInProgress) ProtoMessage() {} func (*CompactErrorCompactInProgress) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{121} + return fileDescriptor_1afe832be69693c7, []int{122} } func (m *CompactErrorCompactInProgress) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9615,7 +9714,7 @@ func (m *CompactErrorTooManyPendingTasks) Reset() { *m = CompactErrorToo func (m *CompactErrorTooManyPendingTasks) String() string { return proto.CompactTextString(m) } func (*CompactErrorTooManyPendingTasks) ProtoMessage() {} func (*CompactErrorTooManyPendingTasks) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{122} + return fileDescriptor_1afe832be69693c7, []int{123} } func (m *CompactErrorTooManyPendingTasks) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9671,7 +9770,7 @@ func (m *CompactRequest) Reset() { *m = CompactRequest{} } func (m *CompactRequest) String() string { return proto.CompactTextString(m) } func (*CompactRequest) ProtoMessage() {} func (*CompactRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{123} + return fileDescriptor_1afe832be69693c7, []int{124} } func (m *CompactRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9737,7 +9836,7 @@ func (m *CompactResponse) Reset() { *m = CompactResponse{} } func (m *CompactResponse) String() string { return proto.CompactTextString(m) } func (*CompactResponse) ProtoMessage() {} func (*CompactResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{124} + return fileDescriptor_1afe832be69693c7, []int{125} } func (m *CompactResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9895,6 +9994,7 @@ func init() { proto.RegisterType((*CommitTsTooLarge)(nil), "kvrpcpb.CommitTsTooLarge") proto.RegisterType((*AssertionFailed)(nil), "kvrpcpb.AssertionFailed") proto.RegisterType((*TimeDetail)(nil), "kvrpcpb.TimeDetail") + proto.RegisterType((*TimeDetailV2)(nil), "kvrpcpb.TimeDetailV2") proto.RegisterType((*ScanInfo)(nil), "kvrpcpb.ScanInfo") proto.RegisterType((*ScanDetail)(nil), "kvrpcpb.ScanDetail") proto.RegisterType((*ScanDetailV2)(nil), "kvrpcpb.ScanDetailV2") @@ -9939,406 +10039,410 @@ func init() { func init() { proto.RegisterFile("kvrpcpb.proto", fileDescriptor_1afe832be69693c7) } var fileDescriptor_1afe832be69693c7 = []byte{ - // 6370 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0x5b, 0x6c, 0x24, 0xd9, - 0x59, 0xf0, 0x54, 0x5f, 0xdc, 0xdd, 0x5f, 0xdb, 0xed, 0xf2, 0xf1, 0xad, 0xed, 0x99, 0xd9, 0xf1, - 0xd4, 0x66, 0x76, 0x1d, 0x27, 0xeb, 0xcd, 0x7a, 0x77, 0x73, 0xf9, 0x93, 0x3f, 0xd9, 0x19, 0x7b, - 0x2e, 0xde, 0xf1, 0x8c, 0xad, 0xea, 0xde, 0x59, 0x56, 0x90, 0x54, 0x8e, 0xab, 0x8f, 0xbb, 0x4b, - 0xae, 0xae, 0xaa, 0xad, 0x3a, 0x6d, 0xbb, 0x83, 0x90, 0x58, 0x05, 0x90, 0x22, 0x21, 0x2e, 0x51, - 0xa4, 0x20, 0x11, 0x21, 0xf1, 0x10, 0x89, 0xf0, 0x86, 0x78, 0x01, 0xf2, 0x80, 0x90, 0xf2, 0x10, - 0x10, 0x51, 0x22, 0x21, 0x14, 0x04, 0x0f, 0xc0, 0x22, 0xf1, 0xcc, 0x0b, 0x42, 0x3c, 0x20, 0xd0, - 0xb9, 0xd5, 0xa5, 0xbb, 0xc7, 0xe3, 0xe9, 0xb1, 0x67, 0x03, 0x4f, 0xee, 0xfa, 0xbe, 0xef, 0x9c, - 0xf3, 0x9d, 0xef, 0x76, 0xbe, 0x73, 0xce, 0x77, 0x0c, 0x53, 0x87, 0x47, 0x61, 0x60, 0x07, 0xfb, - 0xeb, 0x41, 0xe8, 0x53, 0x1f, 0x95, 0xe4, 0xe7, 0xf2, 0x64, 0x97, 0x50, 0xac, 0xc0, 0xcb, 0x53, - 0x24, 0x0c, 0xfd, 0x30, 0xfe, 0x9c, 0x6b, 0xfb, 0x6d, 0x9f, 0xff, 0x7c, 0x95, 0xfd, 0x92, 0xd0, - 0xe9, 0xb0, 0x17, 0x51, 0xfe, 0x53, 0x02, 0x6a, 0x2d, 0x82, 0x5b, 0xae, 0x6f, 0x1f, 0xaa, 0x5e, - 0x68, 0x88, 0x6d, 0xa2, 0x7a, 0x31, 0x5a, 0x00, 0x77, 0x09, 0x35, 0xc9, 0xfb, 0x3d, 0x12, 0x51, - 0xb4, 0x06, 0x25, 0xdb, 0xf7, 0x28, 0x39, 0xa1, 0x75, 0x6d, 0x45, 0x5b, 0xad, 0x6e, 0xe8, 0xeb, - 0x8a, 0xb5, 0x4d, 0x01, 0x37, 0x15, 0x01, 0xd2, 0x21, 0x7f, 0x48, 0xfa, 0xf5, 0xdc, 0x8a, 0xb6, - 0x3a, 0x69, 0xb2, 0x9f, 0xa8, 0x0e, 0xa5, 0x23, 0x12, 0x46, 0x8e, 0xef, 0xd5, 0xf3, 0x2b, 0xda, - 0x6a, 0xc1, 0x54, 0x9f, 0xc6, 0x87, 0x1a, 0x54, 0xf9, 0x30, 0x51, 0xe0, 0x7b, 0x11, 0x41, 0xaf, - 0xc1, 0x64, 0x48, 0xda, 0x8e, 0xef, 0x59, 0x7c, 0x4e, 0x72, 0xb0, 0xda, 0xba, 0x9a, 0xe1, 0x6d, - 0xf6, 0xd7, 0xac, 0x0a, 0x1a, 0xfe, 0x81, 0x5e, 0x86, 0xa2, 0xa0, 0xcd, 0x71, 0xda, 0x99, 0x98, - 0xb1, 0xfb, 0xa4, 0x2f, 0xc8, 0x05, 0x1e, 0xcd, 0x41, 0xf1, 0x08, 0xbb, 0x3d, 0xc2, 0x79, 0x98, - 0x34, 0xc5, 0x07, 0xba, 0x0c, 0x15, 0xcf, 0xa7, 0xd6, 0x81, 0xdf, 0xf3, 0x5a, 0xf5, 0xc2, 0x8a, - 0xb6, 0x5a, 0x36, 0xcb, 0x9e, 0x4f, 0xef, 0xb0, 0x6f, 0xf4, 0x45, 0x98, 0x26, 0x27, 0xc4, 0xb6, - 0x5a, 0x84, 0x62, 0xc7, 0x8d, 0xac, 0xa3, 0x8d, 0xfa, 0x04, 0x1f, 0x65, 0x21, 0x1e, 0xe5, 0xf6, - 0x09, 0xb1, 0xb7, 0x04, 0xfa, 0xd1, 0x86, 0x39, 0x45, 0xd2, 0x9f, 0x6f, 0x17, 0xca, 0x45, 0x7d, - 0xc2, 0xf8, 0x77, 0x0d, 0xaa, 0x0d, 0x1b, 0x7b, 0xe3, 0x08, 0xf3, 0x32, 0x54, 0x22, 0x8a, 0x43, - 0x6a, 0x25, 0x22, 0x2d, 0x73, 0xc0, 0x7d, 0xd2, 0x67, 0x33, 0x72, 0x9d, 0xae, 0x43, 0xf9, 0x8c, - 0xa6, 0x4c, 0xf1, 0x91, 0x96, 0x76, 0x21, 0x23, 0x6d, 0xb4, 0x04, 0xe5, 0x43, 0xd2, 0xb7, 0x7c, - 0xcf, 0xed, 0xd7, 0x8b, 0x7c, 0xaa, 0xa5, 0x43, 0xd2, 0xdf, 0xf5, 0x5c, 0xae, 0xa2, 0x90, 0x30, - 0x3a, 0xc2, 0x67, 0x58, 0x36, 0xd5, 0x27, 0x5a, 0x84, 0x12, 0xf1, 0x5a, 0x7c, 0xfc, 0x12, 0x1f, - 0x7f, 0x82, 0x78, 0x2d, 0x36, 0xfa, 0x35, 0xa8, 0x46, 0xb8, 0x1b, 0xb8, 0xc4, 0x8a, 0x28, 0x09, - 0xea, 0x65, 0xce, 0x03, 0x08, 0x50, 0x83, 0x92, 0xc0, 0xf8, 0x6d, 0x0d, 0x26, 0xc5, 0xbc, 0xc7, - 0xd7, 0xee, 0x0d, 0x28, 0x06, 0xd8, 0x09, 0xa3, 0x7a, 0x6e, 0x25, 0xbf, 0x5a, 0xdd, 0x98, 0x4e, - 0xb4, 0x7b, 0xb4, 0x87, 0x9d, 0xd0, 0x14, 0xd8, 0xc4, 0x08, 0xf2, 0xa7, 0x1b, 0x81, 0xf1, 0x9f, - 0x45, 0x98, 0xde, 0x0b, 0xc9, 0x71, 0xe8, 0x50, 0x32, 0x8e, 0x3e, 0x5e, 0x85, 0x4a, 0xb7, 0x47, - 0x31, 0x75, 0x7c, 0x4f, 0xf1, 0x94, 0x0c, 0xf6, 0x40, 0x62, 0xcc, 0x84, 0x06, 0x5d, 0x87, 0xc9, - 0x20, 0x74, 0xba, 0x38, 0xec, 0x5b, 0xcc, 0xd9, 0xa4, 0xf1, 0x55, 0x25, 0x6c, 0xc7, 0xb7, 0x0f, - 0xd1, 0x8b, 0x30, 0x25, 0x74, 0x9c, 0x55, 0xdb, 0x24, 0x07, 0x3e, 0x4a, 0x74, 0xc7, 0xda, 0x5b, - 0x94, 0xba, 0x5c, 0x77, 0x05, 0xb3, 0xc4, 0xbe, 0x9b, 0xd4, 0x45, 0x1b, 0x30, 0x1f, 0x1d, 0x3a, - 0x81, 0x65, 0xfb, 0x5e, 0x44, 0x43, 0xec, 0x78, 0xd4, 0xb2, 0x3b, 0xc4, 0x3e, 0x94, 0x9a, 0x9c, - 0x65, 0xc8, 0xcd, 0x18, 0xb7, 0xc9, 0x50, 0xe8, 0xe7, 0x61, 0x36, 0x20, 0x51, 0xe4, 0x74, 0x9d, - 0x88, 0x3a, 0xb6, 0x85, 0x6d, 0x31, 0xa3, 0xd2, 0x4a, 0x7e, 0xb5, 0xb6, 0xb1, 0x16, 0xcf, 0x68, - 0x40, 0x54, 0xeb, 0x7b, 0x49, 0x9b, 0x9b, 0xbc, 0x89, 0x89, 0x82, 0x41, 0x50, 0xc4, 0x78, 0xa5, - 0x27, 0x9e, 0x15, 0x39, 0x5f, 0x23, 0xdc, 0x2c, 0x0a, 0x66, 0x89, 0x9e, 0x78, 0x0d, 0xe7, 0x6b, - 0x04, 0x19, 0x30, 0x75, 0xe0, 0x87, 0x56, 0x2f, 0x68, 0x61, 0x4a, 0x2c, 0x1a, 0xd5, 0x2b, 0x1c, - 0x5f, 0x3d, 0xf0, 0xc3, 0x77, 0x38, 0xac, 0x19, 0x31, 0x9a, 0xae, 0xe3, 0x59, 0xb6, 0xdf, 0xed, - 0x3a, 0x94, 0xd1, 0x80, 0xa0, 0xe9, 0x3a, 0xde, 0x26, 0x87, 0x35, 0x23, 0xb4, 0x0a, 0x7a, 0x2f, - 0x22, 0x16, 0x8e, 0xfa, 0x9e, 0x2d, 0x29, 0xeb, 0x55, 0x3e, 0xdd, 0x5a, 0x2f, 0x22, 0x37, 0x19, - 0x58, 0xd0, 0xa2, 0x15, 0xa8, 0x46, 0xc4, 0xf6, 0xbd, 0x16, 0x0e, 0x1d, 0x12, 0xd5, 0x27, 0x57, - 0xf2, 0x4c, 0xfe, 0x29, 0x10, 0xba, 0x02, 0x40, 0x43, 0xe6, 0x16, 0xc4, 0x0a, 0xec, 0xfa, 0x94, - 0x88, 0x01, 0x34, 0xec, 0xef, 0x7a, 0x64, 0xcf, 0xe6, 0xdc, 0xe0, 0x93, 0x14, 0x37, 0x35, 0xc9, - 0x0d, 0x3e, 0x89, 0xb9, 0x79, 0x0b, 0xa6, 0x71, 0x14, 0x91, 0x90, 0x4d, 0xdf, 0x72, 0xc9, 0x11, - 0x71, 0xeb, 0xd3, 0x2b, 0xda, 0x6a, 0x6d, 0x63, 0x31, 0x96, 0xe4, 0x4d, 0x85, 0xdf, 0x61, 0x68, - 0xb3, 0x86, 0x33, 0xdf, 0xc6, 0x3e, 0xcc, 0x0c, 0xc9, 0x16, 0x2d, 0xc3, 0x42, 0xe3, 0xfe, 0xf6, - 0x9e, 0xb5, 0x77, 0xbb, 0xd1, 0xd8, 0x7e, 0xb0, 0xdd, 0x68, 0x6e, 0x6f, 0x5a, 0x9b, 0xf7, 0x6e, - 0x6f, 0xde, 0xd7, 0x2f, 0xa1, 0x3a, 0xcc, 0x6d, 0xed, 0x8e, 0xc0, 0x68, 0x68, 0x11, 0x66, 0xb7, - 0x76, 0xad, 0xcd, 0xdd, 0x87, 0x8d, 0xa6, 0x79, 0x73, 0xfb, 0x61, 0x53, 0x22, 0x72, 0xc6, 0x7f, - 0x69, 0xa0, 0x27, 0x0a, 0x1d, 0xdf, 0x27, 0x3f, 0x0e, 0x13, 0x1c, 0x3b, 0xec, 0x00, 0xb1, 0xb7, - 0x49, 0x82, 0x61, 0x55, 0xe6, 0x87, 0x55, 0xf9, 0x32, 0xe8, 0x42, 0xf4, 0x29, 0x32, 0xe1, 0x01, - 0x53, 0x3e, 0xd3, 0x40, 0x4c, 0x38, 0x22, 0x1a, 0x17, 0x9f, 0x22, 0x1a, 0x1b, 0x3f, 0x28, 0xc0, - 0x42, 0x4a, 0xc8, 0xcc, 0xf7, 0xfe, 0xaf, 0x84, 0x80, 0x21, 0xb7, 0x9a, 0x18, 0xe9, 0x56, 0x4e, - 0x64, 0x1d, 0x38, 0x61, 0x44, 0x05, 0x1f, 0x25, 0x6e, 0xe9, 0x55, 0x27, 0xba, 0xc3, 0x60, 0x9c, - 0x8f, 0xeb, 0x30, 0x79, 0x8c, 0x99, 0x0a, 0x9c, 0x2e, 0xf1, 0x7b, 0x94, 0x7b, 0x6f, 0xde, 0xac, - 0x32, 0x58, 0x53, 0x80, 0x50, 0x1d, 0x8a, 0x07, 0x7e, 0x68, 0x13, 0xee, 0xb9, 0xe5, 0x5b, 0xb9, - 0xba, 0x66, 0x0a, 0x00, 0x9b, 0x44, 0x48, 0x68, 0x2f, 0xf4, 0x2c, 0xbe, 0xb4, 0x0a, 0xbf, 0x2d, - 0x9b, 0x93, 0x02, 0xf8, 0x88, 0xc3, 0x86, 0x2d, 0xa2, 0x3a, 0xca, 0x22, 0xa6, 0x79, 0x00, 0xb3, - 0xc8, 0x89, 0x13, 0x51, 0xe2, 0xd9, 0xa4, 0x3e, 0x29, 0x7c, 0x9b, 0x83, 0x6f, 0x2b, 0x28, 0x7a, - 0x05, 0x66, 0xb9, 0x44, 0xd8, 0x8a, 0x66, 0x39, 0x07, 0x82, 0x3e, 0x92, 0x2e, 0xac, 0x33, 0x14, - 0x5b, 0xdc, 0xb6, 0x0f, 0x78, 0x8b, 0x08, 0x6d, 0xb1, 0xd9, 0x1d, 0x12, 0xab, 0x17, 0x58, 0x5d, - 0xbf, 0x45, 0xb8, 0x27, 0xd7, 0x36, 0x8c, 0x24, 0xda, 0x65, 0x8d, 0xe3, 0x5d, 0x7c, 0x48, 0xde, - 0x09, 0x1e, 0xf8, 0x2d, 0x62, 0xc2, 0x71, 0xfc, 0xdb, 0xf8, 0x37, 0x0d, 0xea, 0x03, 0x94, 0xf7, - 0x49, 0xdf, 0x24, 0x51, 0xcf, 0xa5, 0xe8, 0x73, 0x50, 0xa0, 0xfd, 0x80, 0x70, 0x2b, 0xaa, 0x6d, - 0xdc, 0x78, 0x5c, 0xd7, 0x71, 0x83, 0x66, 0x3f, 0x20, 0x26, 0x6f, 0x92, 0xe4, 0x27, 0xb9, 0x74, - 0x7e, 0x72, 0x05, 0x2a, 0x89, 0x14, 0xf2, 0x7c, 0x62, 0x09, 0x00, 0xbd, 0x09, 0x8b, 0x6c, 0x96, - 0xa4, 0x65, 0x1d, 0x3b, 0xb4, 0xc3, 0x56, 0x80, 0x03, 0xd7, 0xb1, 0x53, 0x2e, 0x34, 0x27, 0xd0, - 0xef, 0x3a, 0xb4, 0xb3, 0x29, 0x91, 0xcd, 0x08, 0xad, 0x03, 0x5f, 0x14, 0xac, 0x90, 0x44, 0xbe, - 0x7b, 0xe4, 0x78, 0x6d, 0x61, 0x10, 0x22, 0x80, 0xce, 0x30, 0x94, 0xa9, 0x30, 0x8c, 0x5b, 0xe3, - 0x5f, 0x73, 0xb0, 0x38, 0xe4, 0x39, 0xcf, 0x25, 0x80, 0x5c, 0x83, 0xca, 0x40, 0xf0, 0xe0, 0x16, - 0x57, 0xb6, 0x95, 0xad, 0xd4, 0x95, 0xd4, 0xd8, 0x7c, 0x27, 0x85, 0x39, 0x0a, 0xc9, 0x2d, 0xc0, - 0x84, 0xb4, 0xc3, 0x22, 0x8f, 0xf9, 0xf2, 0x0b, 0x5d, 0x05, 0x88, 0x33, 0x3e, 0xe6, 0x28, 0x79, - 0x26, 0x52, 0x95, 0xf2, 0x8d, 0x8c, 0x32, 0xa5, 0xa7, 0x88, 0x32, 0xe8, 0xf3, 0x2c, 0x93, 0x62, - 0xaa, 0x8d, 0xea, 0x65, 0x3e, 0xbb, 0xeb, 0x4f, 0x34, 0x02, 0x53, 0xb5, 0x30, 0xbe, 0xab, 0xc1, - 0x72, 0x8a, 0xca, 0xf4, 0x5d, 0x77, 0x1f, 0x8f, 0x17, 0xa6, 0x86, 0x42, 0x4a, 0x6e, 0x44, 0x48, - 0x19, 0x8a, 0x1b, 0xf9, 0xe1, 0xb8, 0x81, 0xa0, 0x70, 0x48, 0xfa, 0xcc, 0xa0, 0x98, 0x14, 0xf9, - 0x6f, 0xe3, 0xfb, 0x1a, 0x5c, 0x1e, 0xc9, 0xe7, 0x73, 0x31, 0x8a, 0x11, 0x2a, 0xca, 0x3f, 0xcd, - 0x42, 0xf0, 0x47, 0x1a, 0xcc, 0x36, 0x4f, 0xbc, 0x7b, 0x04, 0x87, 0xf4, 0x16, 0xc1, 0x63, 0xed, - 0x72, 0x06, 0x83, 0x7a, 0xee, 0x0c, 0x41, 0x3d, 0x3f, 0x42, 0x03, 0x2f, 0xc1, 0x34, 0x6e, 0x1d, - 0x39, 0x11, 0xb1, 0xe2, 0xd8, 0x2e, 0x17, 0x3f, 0x01, 0xde, 0x11, 0x11, 0xde, 0xf8, 0x91, 0x06, - 0x73, 0x59, 0x9e, 0x9f, 0xc3, 0x96, 0x29, 0xbd, 0xe2, 0xe4, 0xb3, 0x2b, 0xce, 0x08, 0x1d, 0x14, - 0x9e, 0x46, 0x07, 0xff, 0x9c, 0x83, 0x79, 0x9e, 0x8a, 0x36, 0x4f, 0xbc, 0x06, 0xc5, 0xb4, 0x17, - 0x8d, 0xa3, 0x85, 0x6b, 0xa0, 0x24, 0x9e, 0xda, 0x20, 0x81, 0x04, 0xb1, 0x4d, 0xca, 0x22, 0x94, - 0xc4, 0x0c, 0x94, 0x69, 0x4f, 0xf0, 0x09, 0x44, 0x4c, 0xee, 0x36, 0x76, 0x5d, 0x12, 0x5a, 0x42, - 0x47, 0x49, 0xd2, 0x21, 0xc0, 0x0d, 0x06, 0x6d, 0xf2, 0x68, 0x61, 0xf7, 0xc2, 0x90, 0x78, 0x9c, - 0x44, 0x2c, 0xbb, 0x15, 0x09, 0x69, 0x46, 0xe8, 0x35, 0x98, 0x0f, 0xa5, 0xf1, 0xb3, 0x05, 0x88, - 0x05, 0x16, 0x1e, 0x9d, 0x65, 0xee, 0x8d, 0x14, 0x72, 0xfb, 0xe0, 0xa1, 0x4f, 0xf9, 0x32, 0x84, - 0xd6, 0x60, 0x86, 0xaf, 0x97, 0x56, 0x3a, 0x77, 0x15, 0x6b, 0xf1, 0x34, 0x47, 0x34, 0x92, 0xe4, - 0xf5, 0x0b, 0xb0, 0x9c, 0xc4, 0xe8, 0x74, 0xc2, 0xce, 0x6d, 0xae, 0xcc, 0x1b, 0xd5, 0x63, 0x8a, - 0x81, 0xf8, 0x62, 0xfc, 0x38, 0x07, 0x0b, 0x83, 0x32, 0xfe, 0x68, 0xad, 0xe6, 0x06, 0xd4, 0x64, - 0x38, 0xcf, 0x26, 0x3a, 0x53, 0x02, 0xaa, 0x9c, 0xe2, 0x65, 0x98, 0x10, 0x3b, 0x12, 0x2e, 0xf0, - 0x5a, 0x6a, 0xdb, 0x27, 0x77, 0x1d, 0x12, 0x8d, 0xd6, 0xa1, 0xc2, 0x87, 0x72, 0xbc, 0x03, 0x5f, - 0x6e, 0xcd, 0x13, 0xbe, 0x98, 0x0c, 0xb6, 0xbd, 0x03, 0xdf, 0xe4, 0xec, 0xb0, 0x5f, 0xcf, 0x1a, - 0xdc, 0x8d, 0x0f, 0x34, 0x58, 0xe6, 0x12, 0x6d, 0xc8, 0xfd, 0x03, 0xf7, 0xf4, 0xb1, 0x4c, 0x57, - 0x85, 0xd5, 0x5c, 0x12, 0x56, 0xcf, 0x14, 0x31, 0x8c, 0xff, 0xd6, 0xe0, 0xf2, 0x48, 0x1e, 0x9e, - 0x83, 0x6a, 0x5f, 0x86, 0x22, 0x93, 0x25, 0x73, 0xa6, 0xfc, 0x68, 0x59, 0x0b, 0x3c, 0xba, 0x9c, - 0x5e, 0xb7, 0x85, 0x8e, 0x93, 0x35, 0xfb, 0x59, 0x13, 0xf9, 0xef, 0x69, 0x30, 0x25, 0x1c, 0xe4, - 0xc2, 0x16, 0x46, 0xa5, 0x9d, 0x7c, 0x4a, 0x3b, 0x67, 0x33, 0x5e, 0x71, 0xe8, 0x63, 0x4e, 0xec, - 0x3b, 0x9e, 0xeb, 0xb7, 0x8d, 0xbf, 0xd1, 0xa0, 0xa6, 0x78, 0x7d, 0x0e, 0x0a, 0x1a, 0xe6, 0x31, - 0x3f, 0xca, 0xc1, 0x9e, 0x35, 0x7a, 0xb7, 0x61, 0x6a, 0xbb, 0x1b, 0xf8, 0x61, 0xac, 0x80, 0xcc, - 0xa6, 0x48, 0x3b, 0xc3, 0xa6, 0x68, 0x98, 0xd1, 0xdc, 0x08, 0x46, 0x8d, 0xf7, 0xa0, 0xa6, 0x06, - 0x1a, 0x5f, 0x7a, 0x73, 0x69, 0xe9, 0x55, 0xd4, 0x51, 0xd0, 0x37, 0x99, 0x66, 0x5c, 0x82, 0xbd, - 0x5e, 0x70, 0x3e, 0xc7, 0x9c, 0x67, 0x5a, 0xef, 0xb3, 0xeb, 0x49, 0x61, 0x60, 0x3d, 0x31, 0xbe, - 0xa5, 0xc1, 0x74, 0xcc, 0xd4, 0xcf, 0x8c, 0xbd, 0x18, 0x87, 0x30, 0x7d, 0x0b, 0x53, 0xbb, 0x33, - 0xe6, 0x91, 0xf0, 0xa8, 0x58, 0xf7, 0xf8, 0x43, 0xe1, 0x7f, 0xd0, 0x40, 0x4f, 0x46, 0xbb, 0xf0, - 0xb3, 0xc3, 0x67, 0xf4, 0x85, 0x44, 0xd6, 0xc5, 0xd3, 0x65, 0xfd, 0x76, 0xa1, 0x9c, 0xd7, 0x0b, - 0xc6, 0x2f, 0xc2, 0x1c, 0x9f, 0xdc, 0x85, 0xe7, 0xf6, 0x23, 0x42, 0x98, 0xf1, 0xc7, 0x1a, 0xcc, - 0x0f, 0x8c, 0xfe, 0x1c, 0x8c, 0xec, 0x59, 0xf3, 0xf5, 0x3f, 0xd4, 0x60, 0xba, 0x61, 0x63, 0x6f, - 0xdc, 0x13, 0x9b, 0x6b, 0x50, 0xed, 0xe2, 0x93, 0x01, 0x61, 0x41, 0x17, 0x9f, 0x28, 0x51, 0x65, - 0x4e, 0xd9, 0xf3, 0x8f, 0x3b, 0x65, 0x2f, 0xa4, 0x4f, 0xd9, 0x53, 0xc7, 0xe2, 0xc5, 0xf4, 0xb1, - 0xb8, 0xf1, 0x53, 0x0d, 0xf4, 0x84, 0xd9, 0x9f, 0xa5, 0x35, 0xf9, 0x59, 0x83, 0xfe, 0x8f, 0x35, - 0x40, 0xe2, 0x5c, 0x80, 0x8c, 0xab, 0x89, 0x33, 0x19, 0xee, 0x19, 0xd7, 0xb0, 0x57, 0xa0, 0x42, - 0x4f, 0x3c, 0x9e, 0xfa, 0x89, 0xcd, 0x69, 0x7a, 0xe4, 0xe6, 0x89, 0x27, 0x52, 0x3f, 0x2a, 0x7e, - 0x24, 0xdb, 0xd8, 0x62, 0xca, 0x1d, 0xd8, 0x46, 0x30, 0x33, 0xa3, 0xff, 0x05, 0xce, 0xf0, 0x08, - 0x2a, 0x77, 0x37, 0xc7, 0x91, 0xfd, 0x55, 0x80, 0x08, 0x1f, 0x10, 0x2b, 0xf0, 0x1d, 0x8f, 0x4a, - 0xc1, 0x57, 0x18, 0x64, 0x8f, 0x01, 0x8c, 0x0e, 0x00, 0xeb, 0xf7, 0xe2, 0x25, 0x60, 0x7c, 0x5b, - 0x03, 0xb4, 0x45, 0x5c, 0x42, 0x89, 0x89, 0xbd, 0x36, 0x39, 0xf7, 0x6b, 0xb1, 0x94, 0x6b, 0xe6, - 0x07, 0x6f, 0xac, 0x3c, 0x9f, 0x3a, 0x07, 0xf2, 0x0a, 0x4c, 0xdc, 0xf6, 0x81, 0x00, 0xed, 0x7a, - 0x6e, 0xdf, 0xf8, 0x0a, 0xcc, 0x66, 0x18, 0x3b, 0xef, 0x94, 0xe3, 0x4f, 0x35, 0x58, 0xd9, 0x0b, - 0x49, 0x80, 0x43, 0x72, 0xc7, 0xc5, 0x51, 0x87, 0x45, 0xe0, 0xa6, 0x2f, 0x0d, 0xfa, 0xf9, 0xc9, - 0x61, 0x09, 0xca, 0x03, 0x9b, 0xde, 0x52, 0x24, 0xb7, 0xbb, 0xa9, 0x55, 0xb9, 0x98, 0x5d, 0x95, - 0x5d, 0xb8, 0x7e, 0x0a, 0xeb, 0xe7, 0x2d, 0xa9, 0x1f, 0x6b, 0xb0, 0x74, 0x3e, 0x22, 0x4a, 0xcd, - 0x28, 0x97, 0xbd, 0x0e, 0x3d, 0x35, 0xea, 0xa7, 0x84, 0x57, 0x78, 0xac, 0xf0, 0x8a, 0x59, 0xe1, - 0x65, 0x36, 0x3d, 0x13, 0xd9, 0x4d, 0x8f, 0x41, 0x60, 0xf9, 0x79, 0x08, 0xee, 0xcb, 0x30, 0x65, - 0xe2, 0xe3, 0x73, 0xbb, 0xba, 0xaf, 0x41, 0xce, 0x3e, 0xe0, 0xc2, 0xa9, 0x98, 0x39, 0xfb, 0xc0, - 0xf8, 0x75, 0x0d, 0x6a, 0xaa, 0xff, 0x73, 0x66, 0x7d, 0x8c, 0x0b, 0x7a, 0xa3, 0x05, 0xc8, 0xc4, - 0xc7, 0xe7, 0x9d, 0x9a, 0x0e, 0x4e, 0xda, 0x87, 0xd9, 0xcc, 0x28, 0x17, 0x9d, 0x92, 0x1a, 0xbf, - 0xa7, 0x71, 0x2d, 0xee, 0xf5, 0xce, 0x49, 0x8b, 0xa3, 0x25, 0x2b, 0xa6, 0x59, 0x50, 0xd3, 0x64, - 0xed, 0x92, 0xab, 0x25, 0xf6, 0x93, 0x39, 0xc1, 0x81, 0x1f, 0x5a, 0x36, 0x8e, 0xe4, 0x79, 0xd6, - 0xc4, 0x81, 0x1f, 0x6e, 0xe2, 0x88, 0x6d, 0xcb, 0x14, 0x7f, 0xe7, 0x6d, 0xc0, 0x7f, 0xa6, 0x25, - 0x3a, 0x1d, 0x53, 0x00, 0x67, 0x4c, 0xfc, 0x07, 0xd4, 0x8c, 0xe6, 0xc4, 0xfc, 0x0b, 0xf1, 0x2d, - 0xc3, 0xa0, 0x0c, 0x8a, 0x69, 0x19, 0x30, 0xcb, 0xa1, 0xd4, 0x15, 0x37, 0x08, 0x05, 0x93, 0xff, - 0x66, 0x0b, 0x48, 0x86, 0xf7, 0xf3, 0x16, 0x4e, 0x1f, 0x74, 0x13, 0x1f, 0xcb, 0x35, 0xea, 0x22, - 0x1c, 0x3c, 0x3d, 0xdd, 0x42, 0x46, 0xe5, 0xbf, 0x00, 0x33, 0xa9, 0xa1, 0xcf, 0x7b, 0x62, 0xbf, - 0xac, 0xc1, 0xbc, 0x92, 0xdc, 0xf8, 0xd3, 0x3b, 0x83, 0x33, 0x3f, 0x7e, 0x82, 0x18, 0x16, 0x06, - 0x39, 0x38, 0xef, 0x59, 0xfe, 0x48, 0x44, 0xcf, 0xe7, 0x58, 0x0c, 0x94, 0x2e, 0xf9, 0x29, 0x64, - 0x4b, 0x7e, 0x84, 0x60, 0x8a, 0xb1, 0x60, 0x9e, 0xbe, 0x04, 0xc8, 0x68, 0xc3, 0x74, 0x3c, 0x9d, - 0xf1, 0x65, 0x75, 0x1d, 0xf2, 0x87, 0x47, 0x8f, 0x75, 0x56, 0x86, 0x33, 0xbe, 0x21, 0xcc, 0xe3, - 0x23, 0xc9, 0x1a, 0x07, 0xc2, 0xa4, 0xb4, 0x93, 0x0b, 0xcd, 0x13, 0x7f, 0xa2, 0x25, 0x71, 0x64, - 0x5c, 0x63, 0xf9, 0x38, 0x4c, 0x84, 0x8c, 0xbb, 0x91, 0xf7, 0x69, 0x82, 0x6f, 0x49, 0xc0, 0x76, - 0x06, 0x04, 0xdb, 0x1d, 0x2b, 0x6d, 0x3f, 0x15, 0x06, 0xd9, 0x39, 0x37, 0x1b, 0x32, 0x5c, 0x98, - 0xcb, 0xce, 0xe8, 0x42, 0xed, 0xe5, 0x97, 0x60, 0xe9, 0x1d, 0x8f, 0xed, 0x6d, 0xb6, 0x48, 0x44, - 0x43, 0xbf, 0xff, 0x7c, 0x4d, 0x86, 0xe5, 0x7a, 0xa3, 0x86, 0x3f, 0x6f, 0x33, 0xf9, 0x2a, 0x5c, - 0x36, 0x49, 0xdb, 0x89, 0x28, 0x09, 0xd9, 0xf6, 0x75, 0x77, 0x3f, 0x22, 0xe1, 0x11, 0x09, 0xc7, - 0x99, 0xe7, 0x3c, 0x4c, 0x74, 0xf1, 0x09, 0xcb, 0x5b, 0x45, 0x92, 0x5c, 0xec, 0xe2, 0x93, 0x66, - 0x64, 0xbc, 0x01, 0x57, 0x46, 0x8f, 0x20, 0xa7, 0x12, 0xf3, 0xa5, 0x65, 0x73, 0xd0, 0x3a, 0xbf, - 0xa0, 0xb8, 0x20, 0xa6, 0x7a, 0xb0, 0x34, 0xa2, 0xfb, 0xd3, 0x38, 0x62, 0x26, 0xec, 0x44, 0x96, - 0xed, 0x12, 0x2c, 0x76, 0x01, 0x65, 0xb3, 0xe4, 0x44, 0xfc, 0x9c, 0xf5, 0xcc, 0xc7, 0x27, 0xc6, - 0x57, 0x60, 0xc9, 0x24, 0x5d, 0x5f, 0x1c, 0x15, 0x5c, 0xc0, 0xb4, 0x36, 0x60, 0x79, 0x54, 0xff, - 0xa7, 0x4a, 0xfa, 0x37, 0x35, 0x58, 0xdc, 0xeb, 0xf4, 0x23, 0xc7, 0xc6, 0xee, 0xb3, 0x9c, 0x90, - 0x8d, 0x66, 0x69, 0x8c, 0x73, 0x31, 0xe3, 0x3d, 0xa8, 0x0f, 0x33, 0x74, 0xaa, 0x6e, 0x62, 0x05, - 0xe4, 0x9e, 0xa0, 0x80, 0xef, 0x68, 0x80, 0x1a, 0x81, 0xeb, 0x50, 0x93, 0x7b, 0xc6, 0x78, 0x27, - 0x81, 0x95, 0x88, 0xf5, 0x90, 0xb8, 0xb3, 0x28, 0x27, 0xe1, 0x40, 0x36, 0xa9, 0xab, 0x00, 0x31, - 0x81, 0x3a, 0x3a, 0xad, 0x28, 0x6c, 0x84, 0x96, 0xa1, 0xe2, 0x44, 0x56, 0x88, 0x8f, 0xad, 0xc3, - 0x23, 0x15, 0x0b, 0x9d, 0xc8, 0xc4, 0xc7, 0xf7, 0x8f, 0x8c, 0x1f, 0x68, 0x30, 0x9b, 0x61, 0x6f, - 0x7c, 0x77, 0x7f, 0x09, 0x0a, 0x2e, 0x39, 0xa0, 0xf2, 0x24, 0xa5, 0xb6, 0x2e, 0xcb, 0xbd, 0x45, - 0xc7, 0x9c, 0x63, 0x8e, 0x47, 0xab, 0x50, 0x0c, 0x9d, 0x76, 0x87, 0xca, 0x13, 0xa4, 0x51, 0x84, - 0x82, 0x00, 0xad, 0xb2, 0xc0, 0xdc, 0xe6, 0xb7, 0x33, 0xe2, 0xa8, 0x6c, 0x80, 0xd6, 0x54, 0x68, - 0xe3, 0x57, 0x34, 0xd0, 0x4d, 0x82, 0x5b, 0xdb, 0x5e, 0x8b, 0x9c, 0x8c, 0x23, 0xe3, 0xf4, 0x06, - 0x39, 0x97, 0xdd, 0x20, 0x27, 0x6b, 0x52, 0xfe, 0x09, 0x6b, 0x92, 0xf1, 0x5b, 0x1a, 0xcc, 0xa4, - 0xd8, 0x18, 0x5f, 0x96, 0x57, 0x01, 0x42, 0x82, 0x5b, 0x96, 0xc3, 0x3a, 0x52, 0xc7, 0x5e, 0xa1, - 0xea, 0x99, 0xb1, 0x24, 0x4a, 0xa4, 0x86, 0x4a, 0x87, 0x63, 0xf3, 0x93, 0x04, 0x46, 0x03, 0x66, - 0x1f, 0x1c, 0xd9, 0xf6, 0x5d, 0x42, 0x6f, 0xf5, 0x79, 0xed, 0xce, 0x39, 0xe4, 0xdf, 0xc6, 0xaf, - 0x69, 0x30, 0x97, 0xed, 0xf5, 0xbc, 0xb7, 0xd5, 0x37, 0xa0, 0xc0, 0xaf, 0xc7, 0x07, 0xe7, 0xc7, - 0x46, 0xe5, 0xf3, 0xe3, 0x68, 0xe3, 0xab, 0xb0, 0x18, 0xf3, 0x21, 0x8b, 0x1f, 0xce, 0x57, 0xfb, - 0xcc, 0x7f, 0xeb, 0xc3, 0x43, 0x9c, 0xf7, 0x74, 0xa5, 0x88, 0xf3, 0xc9, 0x16, 0x47, 0x09, 0xa0, - 0x70, 0xba, 0x00, 0x3e, 0xa8, 0x40, 0x69, 0x33, 0x59, 0xf6, 0x25, 0x37, 0x4e, 0x8b, 0xb3, 0x52, - 0x30, 0xcb, 0x02, 0xb0, 0xdd, 0x42, 0x9f, 0x4e, 0x58, 0x0d, 0x7c, 0xbb, 0x23, 0xbd, 0x74, 0x36, - 0xeb, 0x50, 0xb7, 0x19, 0x2a, 0xe6, 0x97, 0x7d, 0xa0, 0x15, 0x28, 0x04, 0x84, 0xa8, 0x1a, 0xf5, - 0x49, 0x45, 0xbf, 0x47, 0x48, 0x68, 0x72, 0x0c, 0xdf, 0x52, 0x92, 0xb0, 0x2b, 0xb7, 0xe0, 0xfc, - 0x37, 0x7a, 0x15, 0xca, 0x41, 0xe8, 0xf8, 0xa1, 0x43, 0xfb, 0x3c, 0xa7, 0xaa, 0x6d, 0xcc, 0xa6, - 0xa4, 0xdf, 0xed, 0x62, 0xaf, 0xb5, 0x17, 0x3a, 0x66, 0x4c, 0x84, 0xde, 0x82, 0x69, 0x27, 0xf2, - 0x5d, 0x9c, 0x2a, 0x46, 0x2e, 0x0d, 0x14, 0x23, 0x6f, 0x2b, 0xbc, 0x2c, 0x46, 0x76, 0x32, 0xdf, - 0xe8, 0x63, 0x50, 0xe3, 0x47, 0x2e, 0x8e, 0xeb, 0x5a, 0x36, 0xb6, 0x3b, 0x44, 0x56, 0x9a, 0x4c, - 0x7a, 0x3e, 0xbd, 0xe3, 0xb8, 0xee, 0x26, 0x83, 0x71, 0x4d, 0xf7, 0x3d, 0xdb, 0x72, 0xfd, 0xb6, - 0xa8, 0x05, 0x35, 0x4b, 0xec, 0x7b, 0xc7, 0x6f, 0xa3, 0x55, 0xd0, 0x43, 0x62, 0xfb, 0x61, 0x8b, - 0x17, 0x92, 0x5a, 0x11, 0xc5, 0x54, 0x16, 0x83, 0xd6, 0x04, 0xbc, 0xe9, 0x74, 0x49, 0x83, 0x62, - 0x9a, 0xa2, 0x8c, 0x6c, 0xec, 0x09, 0xca, 0x6a, 0x9a, 0x92, 0x2d, 0x22, 0x9c, 0xf2, 0x3a, 0x93, - 0x7a, 0xe0, 0x3a, 0x36, 0xb6, 0x98, 0xf7, 0xca, 0x8a, 0xd0, 0xaa, 0x84, 0xb1, 0x50, 0x81, 0x6e, - 0x40, 0x4d, 0xd4, 0xc2, 0x90, 0x96, 0x25, 0x96, 0x94, 0x29, 0xbe, 0x37, 0x9f, 0x52, 0x50, 0x5e, - 0x28, 0x81, 0x3e, 0x07, 0x4b, 0x6c, 0xb1, 0x23, 0x27, 0xc4, 0xee, 0x71, 0x21, 0xb5, 0x7a, 0xa1, - 0x90, 0x56, 0x57, 0x55, 0x77, 0x2f, 0x74, 0xf1, 0xc9, 0x6d, 0x85, 0xdf, 0x92, 0xe8, 0x07, 0xbc, - 0x40, 0x03, 0x07, 0x81, 0xeb, 0x10, 0x15, 0x4f, 0xa6, 0xc5, 0xfd, 0x85, 0x04, 0x8a, 0x90, 0xb2, - 0x08, 0x25, 0x8a, 0xa3, 0x43, 0x66, 0x3a, 0xba, 0xa8, 0x39, 0x62, 0x9f, 0xdb, 0x2d, 0xbe, 0xb8, - 0x50, 0xec, 0x12, 0x31, 0x81, 0x19, 0x51, 0xcc, 0xc9, 0x21, 0x9c, 0xfd, 0x4f, 0x02, 0x62, 0x8c, - 0xf6, 0x42, 0x9b, 0x58, 0xed, 0xd0, 0xef, 0x05, 0x16, 0xc5, 0xed, 0x3a, 0xe2, 0x86, 0xac, 0x2b, - 0xcc, 0x5d, 0x86, 0x68, 0xe2, 0x36, 0xfa, 0x2c, 0x4c, 0xb5, 0x9c, 0xe8, 0xd0, 0x3a, 0xe8, 0xb9, - 0xae, 0xe5, 0x07, 0xb4, 0x3e, 0xcb, 0x95, 0x3c, 0x17, 0x2b, 0x79, 0xcb, 0x89, 0x0e, 0xef, 0xf4, - 0x5c, 0x77, 0x37, 0xa0, 0x66, 0xb5, 0x95, 0x7c, 0x30, 0x99, 0xb3, 0x45, 0x8c, 0xd0, 0xb0, 0x6f, - 0x85, 0xc2, 0xc5, 0xeb, 0x73, 0x42, 0xe6, 0x4e, 0x64, 0x32, 0xb0, 0x72, 0xfc, 0x37, 0xa0, 0x8a, - 0x03, 0x27, 0xbe, 0x86, 0x99, 0x1f, 0x30, 0xbf, 0x9b, 0x7b, 0xdb, 0xea, 0x1c, 0x13, 0x70, 0xe0, - 0x24, 0xd5, 0x3b, 0xd3, 0xe2, 0xd4, 0x93, 0xc6, 0x7a, 0x58, 0xe0, 0x7a, 0xa8, 0xc5, 0x60, 0xa1, - 0x88, 0xff, 0x07, 0xe2, 0xd1, 0x91, 0xa5, 0xa2, 0xcb, 0x22, 0xf7, 0x8c, 0xf9, 0x75, 0xf5, 0x14, - 0xa9, 0xc9, 0xfe, 0xaa, 0x10, 0x33, 0x49, 0x53, 0x5f, 0x42, 0xd7, 0x9c, 0x4b, 0x4b, 0x08, 0xa6, - 0x5e, 0xe7, 0x51, 0x60, 0x4a, 0x42, 0x1b, 0x1c, 0xc8, 0x44, 0xce, 0x9f, 0x22, 0x08, 0x92, 0x25, - 0x11, 0xfd, 0xe9, 0x89, 0x27, 0xd1, 0xeb, 0x30, 0x3b, 0x20, 0x72, 0x0f, 0x77, 0x49, 0x7d, 0x99, - 0x77, 0x35, 0x93, 0x91, 0xf9, 0x43, 0xdc, 0x25, 0x68, 0x0d, 0x66, 0xf6, 0x7b, 0x51, 0xdf, 0xa2, - 0x9d, 0x90, 0x44, 0x1d, 0xdf, 0x6d, 0x31, 0x93, 0xb9, 0xcc, 0xf3, 0x9f, 0x69, 0x86, 0x68, 0x2a, - 0xf8, 0x83, 0x08, 0x5d, 0x83, 0x2a, 0x4b, 0x22, 0x02, 0x36, 0x41, 0xa7, 0x55, 0x5f, 0x11, 0xef, - 0x63, 0x14, 0x68, 0xbb, 0xf5, 0x76, 0xa1, 0x5c, 0xd0, 0x8b, 0xcc, 0x82, 0x71, 0xcb, 0x7a, 0xbf, - 0xe7, 0x87, 0xbd, 0xae, 0xf1, 0x8f, 0x39, 0x28, 0xab, 0x75, 0x67, 0xa8, 0xc4, 0x50, 0x1b, 0x2e, - 0x31, 0xbc, 0x0e, 0x93, 0xbc, 0xfe, 0x29, 0x7b, 0xc2, 0x5d, 0x65, 0x30, 0xa5, 0x8d, 0xe1, 0x78, - 0x98, 0xae, 0xcf, 0x2a, 0x64, 0xeb, 0xb3, 0xd2, 0x2f, 0x37, 0x8a, 0xd9, 0x97, 0x1b, 0xab, 0xb2, - 0xd4, 0x8a, 0x97, 0x37, 0x8b, 0x40, 0x54, 0x8d, 0x2d, 0x61, 0x37, 0x10, 0x45, 0x56, 0xcd, 0x7e, - 0x40, 0xd0, 0x27, 0x00, 0x71, 0xca, 0x6c, 0x65, 0x69, 0x89, 0x77, 0x37, 0xcd, 0x30, 0x77, 0x52, - 0xd5, 0xa5, 0xa3, 0x1e, 0x72, 0x94, 0x47, 0x3e, 0xe4, 0x18, 0xaa, 0x1c, 0xaf, 0x0c, 0x57, 0x8e, - 0x0f, 0x3c, 0xf6, 0x80, 0xa1, 0xc7, 0x1e, 0xc6, 0xb7, 0x0b, 0x50, 0x56, 0x17, 0x52, 0xa9, 0xc5, - 0x5f, 0x7b, 0xc2, 0xe2, 0x8f, 0xae, 0xb0, 0x15, 0x81, 0x86, 0x7d, 0xbc, 0xef, 0x12, 0xb9, 0xe0, - 0x24, 0x00, 0xb6, 0x14, 0xe1, 0x7d, 0x3f, 0xa4, 0xf2, 0x9c, 0x49, 0x7c, 0xa0, 0x0d, 0x28, 0xab, - 0x8a, 0xec, 0xa1, 0x9b, 0xd6, 0x77, 0x43, 0x87, 0x12, 0x55, 0x92, 0x6d, 0xc6, 0x74, 0xcc, 0x27, - 0xb0, 0xcb, 0x4c, 0xa2, 0x2f, 0x0b, 0x09, 0x8b, 0xd2, 0x27, 0x62, 0xa7, 0x13, 0x58, 0x5e, 0x4b, - 0x68, 0x4e, 0xe2, 0xd4, 0x17, 0x7a, 0x05, 0xca, 0xea, 0x51, 0xdf, 0x50, 0x31, 0xdc, 0x96, 0x44, - 0x98, 0x31, 0x09, 0xda, 0x82, 0x99, 0x58, 0x98, 0x16, 0x39, 0x09, 0x9c, 0x90, 0xb4, 0x64, 0x39, - 0x5c, 0x3d, 0xb3, 0xc4, 0x30, 0xd1, 0xde, 0x16, 0x78, 0x73, 0xda, 0xce, 0x02, 0x58, 0x1c, 0x62, - 0x26, 0x93, 0x9c, 0xd1, 0x97, 0x79, 0x0f, 0x73, 0xe9, 0xab, 0xd8, 0x87, 0xf2, 0xbc, 0xde, 0xac, - 0xd2, 0xe4, 0x03, 0xdd, 0x83, 0xd9, 0x64, 0x7c, 0xea, 0xfb, 0x96, 0x8b, 0xc3, 0xb6, 0x78, 0x57, - 0x50, 0xdd, 0x58, 0x1a, 0xe2, 0xa0, 0xe9, 0xfb, 0x3b, 0x8c, 0xc0, 0xd4, 0xed, 0x01, 0x08, 0xda, - 0x04, 0x3d, 0x79, 0x7f, 0x73, 0x80, 0x1d, 0x97, 0xb4, 0xf8, 0x7a, 0x93, 0x9e, 0x48, 0xfc, 0x00, - 0xe7, 0x0e, 0xc7, 0x9b, 0xc9, 0x8b, 0x1d, 0x01, 0x30, 0xfe, 0x36, 0x07, 0x53, 0x19, 0xad, 0x64, - 0x72, 0x19, 0x2d, 0x9b, 0xc9, 0x5e, 0x83, 0x6a, 0xba, 0xd8, 0x5e, 0x96, 0x14, 0xd8, 0x49, 0x89, - 0xfd, 0xb0, 0xdb, 0xd5, 0xa1, 0x24, 0x5d, 0x57, 0xde, 0x28, 0xa9, 0x4f, 0x16, 0xf8, 0xe3, 0xce, - 0x12, 0xf3, 0x16, 0xfe, 0xa7, 0x2b, 0x4c, 0x6c, 0xe3, 0x6f, 0xc2, 0x44, 0x48, 0x70, 0xe4, 0x7b, - 0xd2, 0x0b, 0xaf, 0x8e, 0xb6, 0xa9, 0x75, 0x93, 0x13, 0x99, 0x92, 0xd8, 0x38, 0x86, 0x09, 0x01, - 0x41, 0x55, 0x28, 0xbd, 0xe3, 0x1d, 0x7a, 0xfe, 0xb1, 0xa7, 0x5f, 0x42, 0x35, 0x80, 0xdd, 0x80, - 0xca, 0xaa, 0x51, 0x5d, 0x43, 0x73, 0xa0, 0xa7, 0x0b, 0xbb, 0x99, 0x85, 0xeb, 0x39, 0x84, 0xa0, - 0xd6, 0x20, 0xee, 0x81, 0xe9, 0xbb, 0x2e, 0x69, 0xdd, 0xc2, 0xf6, 0xa1, 0x9e, 0x47, 0x53, 0x50, - 0x31, 0x6d, 0x51, 0x5e, 0x1a, 0xe9, 0x05, 0xb4, 0x08, 0xb3, 0x3b, 0xf8, 0x6b, 0xfd, 0x77, 0x3c, - 0xe7, 0xfd, 0x1e, 0xf1, 0x48, 0x14, 0x71, 0x94, 0x5e, 0x34, 0x56, 0x60, 0x32, 0x6d, 0xb3, 0x4a, - 0x32, 0x5a, 0x92, 0x03, 0xff, 0xbe, 0x06, 0x65, 0x65, 0x9f, 0xe9, 0x8a, 0x5d, 0x2d, 0x53, 0xb1, - 0xab, 0xc2, 0x56, 0x92, 0x40, 0x73, 0x42, 0xb6, 0x6b, 0x5b, 0x83, 0x19, 0x65, 0xd5, 0x0c, 0x6d, - 0x75, 0x70, 0xd4, 0x91, 0x45, 0x03, 0xd3, 0x0a, 0x71, 0x9f, 0xf4, 0xef, 0xe1, 0xa8, 0x83, 0xde, - 0x04, 0xe0, 0x4f, 0x5c, 0xec, 0x0e, 0x76, 0x3c, 0xb9, 0x19, 0x5a, 0x58, 0x8f, 0x1f, 0xc3, 0xbe, - 0x8b, 0x1d, 0x7a, 0xc7, 0x0f, 0x6f, 0x7b, 0x6c, 0x19, 0xac, 0x30, 0xca, 0x4d, 0x46, 0x68, 0x7c, - 0x53, 0x83, 0xe9, 0x01, 0x5f, 0x38, 0xcd, 0x3e, 0xd6, 0x61, 0x16, 0x53, 0x4a, 0xba, 0x01, 0x5b, - 0x03, 0x13, 0x9d, 0x0a, 0x3b, 0x99, 0x89, 0x51, 0xb1, 0x52, 0x87, 0xcd, 0x65, 0x28, 0xdc, 0x15, - 0x86, 0xc2, 0x9d, 0xb1, 0x0d, 0xd5, 0x94, 0x77, 0x3d, 0xc1, 0x5e, 0x4f, 0x2d, 0x94, 0x36, 0x5e, - 0x05, 0x7d, 0xd0, 0xd1, 0xb2, 0xf7, 0x99, 0xda, 0xc0, 0x7d, 0xe6, 0x5f, 0x69, 0x30, 0x3d, 0xe0, - 0x53, 0xa7, 0x31, 0x30, 0x7c, 0xf3, 0xf0, 0x29, 0xa8, 0xc4, 0x2e, 0xc8, 0x27, 0x5e, 0xdb, 0x40, - 0xc3, 0xde, 0x6a, 0x26, 0x44, 0x4c, 0xcd, 0x3c, 0x26, 0x3a, 0x5e, 0x7b, 0xb0, 0x6a, 0x7b, 0x5a, - 0x21, 0x54, 0xdd, 0xf6, 0x27, 0x01, 0xc5, 0xb4, 0x43, 0x3e, 0xa5, 0x30, 0xb1, 0x20, 0xff, 0x5a, - 0x03, 0x60, 0x39, 0xa9, 0x28, 0xb3, 0x40, 0x1f, 0x87, 0x19, 0x6e, 0x23, 0xc7, 0xd8, 0x75, 0x45, - 0x0a, 0xdb, 0x55, 0x13, 0xaa, 0x31, 0xc4, 0xbb, 0xd8, 0x75, 0x19, 0xf9, 0x83, 0x08, 0xbd, 0x0a, - 0x73, 0x41, 0xe8, 0xdb, 0x24, 0x8a, 0xb2, 0xd4, 0x52, 0xd3, 0x12, 0x97, 0x6a, 0xb0, 0x0e, 0x73, - 0x87, 0x47, 0x3c, 0x03, 0xcc, 0x36, 0x10, 0xe6, 0xaa, 0x1f, 0x1e, 0xb1, 0x5c, 0x30, 0x45, 0xbf, - 0x01, 0x0b, 0xd4, 0xa7, 0xd8, 0xb5, 0xc2, 0xc0, 0x4e, 0xb5, 0xf0, 0xd4, 0xcc, 0x11, 0xc7, 0x9a, - 0x81, 0xad, 0xda, 0x3c, 0x8c, 0x8c, 0x2f, 0x43, 0x99, 0xe5, 0xcd, 0x3c, 0x8b, 0x98, 0x83, 0x22, - 0xa7, 0xe0, 0xfc, 0xe7, 0x4d, 0xf1, 0xc1, 0x96, 0x33, 0xc9, 0x1a, 0x69, 0x71, 0x5e, 0xf3, 0x66, - 0x02, 0x88, 0xf7, 0xcc, 0xfb, 0x7d, 0x4a, 0x04, 0x67, 0x79, 0xb1, 0x67, 0xbe, 0xc5, 0x00, 0xc6, - 0xd7, 0x35, 0x00, 0xd6, 0xbf, 0x94, 0xd6, 0xcb, 0x50, 0xe4, 0x6f, 0x0a, 0x87, 0x16, 0x51, 0xc5, - 0x83, 0x29, 0xf0, 0x6c, 0x23, 0x16, 0xbf, 0x95, 0x18, 0x49, 0xc7, 0xd1, 0x8c, 0xac, 0x85, 0x29, - 0x1e, 0xda, 0xb0, 0x26, 0x64, 0x0c, 0x6d, 0xfc, 0x47, 0x51, 0x3c, 0x2f, 0x16, 0x5c, 0x3c, 0xda, - 0x40, 0xaf, 0x00, 0x8a, 0xa7, 0xa0, 0x32, 0x22, 0xa5, 0xb6, 0x99, 0x18, 0x23, 0xf3, 0xa2, 0x08, - 0x7d, 0x1a, 0x16, 0x87, 0xc9, 0xd3, 0x8f, 0x56, 0xe7, 0x87, 0xda, 0xf0, 0x44, 0xe8, 0x06, 0xd4, - 0x84, 0x42, 0xe2, 0x21, 0x64, 0xe5, 0x2a, 0x87, 0xc6, 0xdd, 0x7f, 0x09, 0xae, 0x84, 0x2c, 0xcb, - 0x6d, 0xed, 0x5b, 0x2d, 0x7e, 0x57, 0x60, 0x45, 0x87, 0x4e, 0x10, 0xf0, 0x70, 0xd0, 0xf3, 0xa8, - 0xd4, 0xf7, 0x92, 0xa4, 0x11, 0xd7, 0x09, 0x0d, 0x41, 0xb1, 0xc9, 0x08, 0xd8, 0x36, 0x45, 0x75, - 0xc0, 0x62, 0x5a, 0xb6, 0xb5, 0xd0, 0xfd, 0x82, 0x24, 0xb8, 0x4f, 0xfa, 0x99, 0xa6, 0x6f, 0xc1, - 0x55, 0xd5, 0x74, 0x9f, 0x07, 0x45, 0xbe, 0x8b, 0xb3, 0x3a, 0x2c, 0xec, 0xf1, 0xe6, 0xc5, 0xcc, - 0xe0, 0xb7, 0x18, 0x0d, 0xdf, 0xd4, 0xdd, 0x73, 0xa8, 0xe8, 0xe1, 0x33, 0x50, 0xcf, 0xf6, 0xc0, - 0xed, 0x41, 0x34, 0x16, 0x95, 0x0d, 0xf3, 0xe9, 0xc6, 0xcc, 0x66, 0x45, 0xc3, 0x37, 0x61, 0x71, - 0x44, 0x43, 0x66, 0x48, 0x32, 0x03, 0x9c, 0x1b, 0x6c, 0xc7, 0x6c, 0xea, 0x31, 0xe3, 0x79, 0xd8, - 0xf3, 0x55, 0x9e, 0x37, 0x34, 0xde, 0x43, 0x86, 0x64, 0x7e, 0xde, 0x26, 0xd4, 0x8a, 0x3c, 0x1c, - 0x44, 0x1d, 0x9f, 0xca, 0x26, 0xe2, 0xc5, 0xb0, 0xde, 0x26, 0xb4, 0x21, 0x11, 0x82, 0x9a, 0x09, - 0x26, 0x3e, 0x0c, 0xb2, 0x82, 0xd0, 0x0f, 0xfc, 0x88, 0x58, 0xdc, 0xd7, 0x45, 0xc3, 0xaa, 0x14, - 0x8c, 0x3a, 0x1f, 0xda, 0x13, 0x24, 0x6c, 0x55, 0x18, 0xd5, 0x03, 0x5b, 0x9c, 0x9d, 0xb0, 0x9b, - 0xee, 0x61, 0x72, 0xa0, 0x87, 0x4d, 0x41, 0x32, 0xdc, 0x43, 0xe0, 0xfb, 0xae, 0x15, 0xd9, 0x1d, - 0xd2, 0xea, 0xb9, 0x19, 0x1e, 0xa6, 0x92, 0x1e, 0xf6, 0x7c, 0xdf, 0x6d, 0x48, 0x92, 0xb8, 0x07, - 0xe3, 0x57, 0x35, 0xa8, 0xa6, 0x6a, 0xc4, 0xd8, 0x36, 0x8d, 0xc7, 0x04, 0x51, 0x52, 0x26, 0xdd, - 0x30, 0xd9, 0xa6, 0x25, 0x81, 0xcd, 0x04, 0x9a, 0x04, 0xb9, 0x37, 0xa0, 0xca, 0xf7, 0xdc, 0xb2, - 0x55, 0x6e, 0xa0, 0x55, 0xe2, 0x5a, 0x26, 0x44, 0xf1, 0x6f, 0x51, 0xc4, 0x2a, 0xb6, 0x2e, 0xc6, - 0xf7, 0x35, 0x98, 0xca, 0xd4, 0xaa, 0x8d, 0xc9, 0xc9, 0xe7, 0xa1, 0x96, 0xe2, 0xc4, 0x3a, 0xda, - 0x90, 0xcc, 0xcc, 0x8f, 0x60, 0xe6, 0xd1, 0x86, 0x39, 0x19, 0xa5, 0xbd, 0xfe, 0x33, 0x30, 0xc9, - 0xa3, 0x8b, 0x1a, 0x33, 0x3f, 0x90, 0x7e, 0xf2, 0xa4, 0x48, 0x0e, 0x5a, 0x3d, 0x4e, 0x3e, 0x8c, - 0x0f, 0x4a, 0x50, 0x4d, 0x21, 0xd1, 0xeb, 0xb0, 0x10, 0x51, 0x3f, 0x24, 0xd6, 0x3e, 0xa6, 0x76, - 0x27, 0xad, 0x10, 0x11, 0x42, 0x66, 0x39, 0x96, 0xdf, 0x60, 0x25, 0xca, 0x7c, 0x93, 0x07, 0x11, - 0x6e, 0x45, 0x11, 0xf1, 0x5a, 0xe9, 0x56, 0x22, 0x2a, 0xcc, 0x49, 0x74, 0x83, 0x78, 0xad, 0xa4, - 0xd9, 0x1a, 0xcc, 0x04, 0x2c, 0x50, 0xf0, 0xa7, 0xb8, 0x6d, 0xd9, 0x40, 0x26, 0x2c, 0x12, 0xb1, - 0xe3, 0xb7, 0x05, 0xed, 0x26, 0x5c, 0x0b, 0xf1, 0x01, 0xb5, 0x5a, 0xfb, 0x96, 0x98, 0xa8, 0x4b, - 0x70, 0x8b, 0x84, 0xe9, 0xa1, 0x44, 0x34, 0x58, 0x66, 0x64, 0x5b, 0xfb, 0x7c, 0x4e, 0x3b, 0x9c, - 0x26, 0x19, 0x70, 0x03, 0x16, 0x54, 0x27, 0xea, 0xd0, 0x46, 0xb6, 0x15, 0xa1, 0x00, 0x89, 0xb6, - 0x0d, 0x71, 0x80, 0x23, 0xda, 0x7c, 0x11, 0xae, 0x64, 0x07, 0xee, 0x92, 0x2e, 0x65, 0xdb, 0x1d, - 0xd9, 0x52, 0xc4, 0x81, 0x7a, 0x6a, 0xd4, 0x07, 0x92, 0x40, 0xb4, 0x5f, 0x05, 0x99, 0xa9, 0xa7, - 0x46, 0x13, 0x31, 0x40, 0x1e, 0x04, 0xc4, 0x23, 0xbd, 0x0e, 0x0b, 0x38, 0x08, 0xdc, 0xfe, 0xb0, - 0xe8, 0x45, 0x24, 0x9e, 0xe5, 0xd8, 0x01, 0xd1, 0xbf, 0x04, 0xd3, 0xa2, 0x51, 0xd2, 0x7b, 0x45, - 0xbe, 0x9c, 0x63, 0xe0, 0xe1, 0xce, 0xbb, 0x3d, 0x4a, 0x4e, 0xc4, 0x33, 0xbb, 0x74, 0x94, 0x10, - 0x9d, 0x3f, 0x60, 0x48, 0xb6, 0xeb, 0x8b, 0x9d, 0x54, 0x34, 0x7a, 0x9c, 0xc8, 0x65, 0xa0, 0xe0, - 0x44, 0x23, 0x25, 0xfe, 0x1a, 0xcc, 0xa7, 0x7b, 0x38, 0xc6, 0x6e, 0x26, 0x40, 0xa0, 0xa4, 0xe5, - 0xbb, 0xd8, 0x15, 0x4d, 0x3e, 0x0f, 0xcb, 0xe9, 0x26, 0x03, 0xe2, 0x16, 0x61, 0x61, 0x31, 0x69, - 0x37, 0x24, 0x6d, 0x77, 0x50, 0x7a, 0xe2, 0x30, 0xab, 0xe6, 0x66, 0x05, 0xf7, 0x22, 0x4c, 0xa9, - 0x94, 0x45, 0x90, 0xc9, 0x43, 0x2c, 0x09, 0x14, 0x44, 0x6c, 0x95, 0xeb, 0x84, 0x3e, 0xa5, 0xf1, - 0xf8, 0xba, 0x5c, 0xe5, 0x24, 0x54, 0x90, 0xfd, 0x7f, 0xb8, 0x3c, 0xf8, 0x2c, 0x2d, 0xcd, 0xc0, - 0x8c, 0x30, 0x91, 0x60, 0xf0, 0x61, 0xb5, 0x8a, 0x64, 0xef, 0xc1, 0x84, 0xb8, 0xb6, 0x4d, 0xaa, - 0x47, 0xb5, 0x27, 0xd4, 0xcf, 0x9e, 0xb1, 0xba, 0xc9, 0xf8, 0x40, 0x83, 0xb2, 0x7a, 0x78, 0x82, - 0x2e, 0x43, 0xce, 0x0f, 0xe4, 0xa3, 0xec, 0xcc, 0xa9, 0x45, 0xce, 0x0f, 0xce, 0x5c, 0x2f, 0x95, - 0x49, 0x58, 0x0b, 0x67, 0x48, 0x58, 0x8d, 0x9f, 0xe6, 0xa0, 0xf2, 0xe0, 0xc8, 0xb6, 0xb9, 0xba, - 0xd0, 0xb5, 0xcc, 0xdb, 0xf0, 0x0c, 0x1b, 0xe2, 0x05, 0xf8, 0x29, 0x37, 0x27, 0x97, 0x87, 0xde, - 0x41, 0xa7, 0xde, 0x53, 0x5d, 0x83, 0x6a, 0xd4, 0xf1, 0x43, 0x6a, 0xa5, 0x5e, 0x42, 0x9b, 0xc0, - 0x41, 0xfc, 0xd5, 0x3d, 0x4b, 0x75, 0x3a, 0x38, 0xb2, 0xfc, 0x23, 0x12, 0xba, 0x98, 0x67, 0x11, - 0xea, 0x5d, 0xa2, 0xac, 0x69, 0x9a, 0xef, 0xe0, 0x68, 0x37, 0xc6, 0xaa, 0xc7, 0x01, 0x68, 0x05, - 0x26, 0x59, 0xbb, 0xb6, 0x6d, 0x1d, 0xf0, 0xf7, 0xe7, 0xe2, 0x4e, 0x1f, 0x3a, 0x38, 0xba, 0x6b, - 0xdf, 0xe1, 0x0f, 0xd0, 0x97, 0xa0, 0x1c, 0x63, 0x85, 0x6f, 0x97, 0xda, 0x12, 0xf5, 0x31, 0xa8, - 0xb9, 0x38, 0xe2, 0x1b, 0x2d, 0xaf, 0xcd, 0x8f, 0x80, 0x84, 0x33, 0x4f, 0x32, 0xe8, 0x26, 0x07, - 0xf2, 0xdd, 0xec, 0x62, 0x9c, 0x7b, 0x51, 0xdf, 0x4a, 0xb5, 0x90, 0xde, 0x3c, 0xa7, 0xd0, 0x4d, - 0x7f, 0x27, 0x6e, 0x68, 0x7c, 0x41, 0x08, 0x56, 0x4c, 0xef, 0x94, 0x6d, 0xc7, 0xc8, 0x47, 0xf5, - 0xc6, 0x77, 0xf2, 0x50, 0x66, 0xcd, 0xf9, 0x19, 0xda, 0xb3, 0xa8, 0x25, 0xb5, 0xa7, 0xcf, 0x67, - 0xf7, 0xf4, 0x4f, 0xd4, 0xc9, 0x70, 0xb5, 0xdd, 0x59, 0xfe, 0x89, 0x43, 0xfa, 0x80, 0xae, 0x34, - 0x78, 0x40, 0x77, 0xd6, 0x93, 0xb4, 0x81, 0x53, 0xb2, 0xca, 0xf0, 0xbf, 0x44, 0xb9, 0x06, 0xd5, - 0xf8, 0x59, 0x2b, 0x15, 0xe7, 0x68, 0x05, 0x13, 0x14, 0xa8, 0x19, 0x8d, 0x50, 0x6e, 0xf5, 0xe9, - 0x94, 0x3b, 0x79, 0x8a, 0x72, 0xbf, 0xa1, 0x09, 0xf5, 0xf0, 0xfd, 0x8b, 0xda, 0x34, 0x68, 0x23, - 0x6e, 0x6f, 0xf8, 0xed, 0xb2, 0xd8, 0x34, 0xac, 0xc1, 0x04, 0x8f, 0x9a, 0xea, 0x1a, 0x19, 0x65, - 0x08, 0xb9, 0x03, 0x9a, 0x92, 0x82, 0xd1, 0xca, 0xff, 0x0c, 0x90, 0x1f, 0x41, 0xcb, 0xd5, 0xa3, - 0xfe, 0x5b, 0x80, 0xf1, 0x3a, 0x94, 0xe4, 0x5b, 0x02, 0xae, 0xb1, 0x13, 0x4f, 0x5a, 0x18, 0xfb, - 0x89, 0x16, 0x60, 0x22, 0xe2, 0xef, 0x6a, 0xa5, 0x5d, 0xc8, 0x2f, 0xe3, 0x2d, 0x7e, 0xc6, 0xc8, - 0x2f, 0x34, 0xb3, 0x77, 0xe8, 0xda, 0xe3, 0x2b, 0x48, 0x72, 0x99, 0x0a, 0x92, 0xbf, 0xd0, 0x00, - 0xc4, 0x8a, 0xc2, 0x87, 0x3e, 0xf5, 0x3e, 0x6a, 0x11, 0x4a, 0x01, 0x21, 0x21, 0x43, 0x49, 0x36, - 0xd8, 0xe7, 0x76, 0x2b, 0xbe, 0x4e, 0xca, 0xa7, 0xae, 0x93, 0x06, 0x2f, 0xaf, 0x0a, 0x67, 0xbc, - 0xbc, 0x7a, 0x4d, 0x6e, 0x09, 0xd9, 0x0c, 0x89, 0x3c, 0x94, 0x4c, 0xe4, 0xc6, 0xf2, 0xf1, 0x06, - 0xc3, 0x88, 0x6d, 0x22, 0xff, 0x69, 0x6c, 0x43, 0x25, 0x86, 0x0f, 0xdf, 0x9c, 0x68, 0xa3, 0x6f, - 0x4e, 0xf8, 0x13, 0x05, 0x9a, 0x08, 0x14, 0x1f, 0x90, 0x66, 0x64, 0x34, 0x00, 0x89, 0x92, 0x0f, - 0x2e, 0x12, 0x75, 0x3d, 0xf1, 0x4a, 0x72, 0xa9, 0x2d, 0x9e, 0x1c, 0x26, 0x99, 0x66, 0x22, 0xbb, - 0xf8, 0x66, 0x1b, 0xd5, 0x20, 0x17, 0x77, 0x9c, 0xa3, 0x91, 0xf1, 0x25, 0x98, 0xcd, 0x74, 0x2a, - 0x6f, 0x22, 0xeb, 0xd9, 0x5e, 0x0b, 0x8f, 0xef, 0x60, 0x0b, 0x50, 0x83, 0xe5, 0x84, 0x0d, 0xc6, - 0x64, 0x43, 0x71, 0xb5, 0x0e, 0x15, 0xb6, 0x5f, 0xe3, 0xf7, 0xd8, 0xa3, 0x56, 0x33, 0x71, 0xcf, - 0x5d, 0x3e, 0x94, 0xbf, 0x8c, 0x75, 0x98, 0xcd, 0xf4, 0x22, 0xd9, 0x48, 0xc9, 0x42, 0xcb, 0xc8, - 0xc2, 0xe6, 0xb5, 0x61, 0x77, 0x09, 0x33, 0xa0, 0x66, 0x73, 0xe7, 0x62, 0xea, 0xbc, 0x7f, 0x43, - 0xe3, 0xf5, 0x5a, 0xa9, 0x51, 0x2e, 0xe0, 0x9e, 0x36, 0x79, 0x20, 0xce, 0xe3, 0xdf, 0xa9, 0x95, - 0xde, 0x7f, 0x2f, 0x4a, 0xa2, 0x37, 0x6f, 0x36, 0x2e, 0xb2, 0x24, 0xfa, 0x93, 0x80, 0x82, 0x90, - 0x1c, 0x39, 0x7e, 0x2f, 0x4a, 0xbd, 0xe5, 0x17, 0xbc, 0xe8, 0x0a, 0x13, 0xbf, 0xe4, 0xbf, 0x01, - 0xb5, 0x98, 0x5a, 0x74, 0x26, 0x9e, 0x82, 0x4d, 0x29, 0xe8, 0xa3, 0x54, 0x9d, 0xf5, 0xc4, 0x60, - 0x9d, 0x75, 0x29, 0x9e, 0xb9, 0xf1, 0x43, 0x51, 0x17, 0xca, 0x27, 0x77, 0xde, 0x72, 0xae, 0x43, - 0x29, 0xea, 0xd9, 0x36, 0x91, 0x15, 0x0e, 0x65, 0x53, 0x7d, 0x5e, 0xc8, 0x64, 0x8d, 0x2d, 0x58, - 0xb8, 0x4b, 0xa8, 0xca, 0xf2, 0xb8, 0x03, 0x3e, 0xbd, 0xbe, 0x8c, 0x6f, 0x69, 0xb0, 0x38, 0xd4, - 0xcd, 0x79, 0x4b, 0xe6, 0x53, 0x2c, 0xf8, 0x52, 0xbe, 0x04, 0xe6, 0x4f, 0x3d, 0x06, 0x56, 0x64, - 0xc6, 0x5d, 0x58, 0x4a, 0x71, 0x75, 0xcf, 0x61, 0x3b, 0xc2, 0x71, 0xea, 0x40, 0x8c, 0x6f, 0x6b, - 0xb0, 0x3c, 0xaa, 0xa7, 0x8f, 0x7e, 0x8a, 0x7f, 0x29, 0x2a, 0x6d, 0x37, 0x7d, 0xb9, 0x1b, 0xf0, - 0xc3, 0x31, 0xcb, 0x26, 0x6d, 0x3f, 0x08, 0xc5, 0x6d, 0xaa, 0xe0, 0xa8, 0xcc, 0x00, 0xfc, 0x12, - 0x95, 0xef, 0x0b, 0x83, 0x50, 0x9d, 0x9f, 0x59, 0x21, 0x79, 0x5f, 0x46, 0x9e, 0x1a, 0x83, 0x27, - 0x6f, 0x7d, 0x52, 0xf5, 0x42, 0x85, 0x27, 0xd5, 0xb0, 0x22, 0x79, 0x68, 0x28, 0x8c, 0x52, 0x9c, - 0x10, 0xf6, 0x78, 0xa5, 0x6e, 0x66, 0x2a, 0xe7, 0x2d, 0x60, 0x94, 0x3a, 0xab, 0x54, 0xc3, 0x7e, - 0x57, 0xbc, 0x60, 0xe0, 0x6b, 0x4b, 0xd4, 0xeb, 0x8e, 0x23, 0xbf, 0xcf, 0x42, 0x05, 0xbb, 0x6d, - 0x3f, 0x74, 0x68, 0xa7, 0xcb, 0x07, 0xac, 0x6d, 0x2c, 0x27, 0xd4, 0xb2, 0xe3, 0x9b, 0x8a, 0xc2, - 0x4c, 0x88, 0x9f, 0xa6, 0xc4, 0xea, 0x4f, 0x44, 0x95, 0x71, 0xc2, 0xe7, 0x79, 0x0b, 0x67, 0x19, - 0xca, 0xb6, 0xec, 0x3c, 0xde, 0xb3, 0xc8, 0x6f, 0x66, 0x21, 0xe2, 0x14, 0xf5, 0xf0, 0x28, 0xfe, - 0x07, 0x11, 0x1c, 0x70, 0xff, 0x88, 0xa7, 0x9f, 0x02, 0x29, 0x0e, 0xa0, 0x45, 0x8e, 0x0c, 0x1c, - 0x24, 0x4e, 0xa0, 0xbf, 0x97, 0x87, 0xc9, 0x4d, 0xbf, 0x1b, 0x60, 0x9b, 0x0a, 0x06, 0xde, 0x83, - 0x79, 0x12, 0x86, 0x96, 0xe3, 0x1d, 0x61, 0xd7, 0x69, 0x59, 0xd9, 0x8c, 0xab, 0xba, 0xf1, 0xb1, - 0xf4, 0x6d, 0x62, 0xdc, 0x6a, 0x5b, 0x50, 0x37, 0x64, 0x36, 0x76, 0xef, 0x92, 0x89, 0x48, 0x38, - 0x08, 0x45, 0x2e, 0x5c, 0x61, 0x5d, 0x07, 0xb2, 0xaa, 0xd1, 0x92, 0x7b, 0xf2, 0x38, 0x60, 0x8a, - 0xb3, 0xaa, 0xb5, 0x91, 0x23, 0xa8, 0x52, 0xc8, 0x26, 0xdf, 0xa7, 0xcb, 0x50, 0x7a, 0xef, 0x92, - 0x59, 0x27, 0xe1, 0x68, 0x1c, 0xb2, 0x60, 0x91, 0x8d, 0x66, 0x8b, 0x4e, 0x2c, 0xc7, 0xb3, 0x82, - 0xd0, 0x6f, 0x87, 0x24, 0x8a, 0xe4, 0xc9, 0xd6, 0x4b, 0x23, 0x07, 0x92, 0xbf, 0xb7, 0xbd, 0x3d, - 0x49, 0x7d, 0xef, 0x92, 0x39, 0x47, 0xc2, 0x61, 0x38, 0x3a, 0x80, 0x65, 0x36, 0x00, 0xf5, 0x7d, - 0xab, 0x8b, 0xbd, 0xbe, 0x15, 0x10, 0xaf, 0xe5, 0x78, 0x6d, 0x8b, 0xe2, 0xe8, 0x30, 0x92, 0xe9, - 0xe0, 0xea, 0xc8, 0x31, 0x9a, 0xbe, 0xff, 0x00, 0x7b, 0xfd, 0x3d, 0xd1, 0xa0, 0xc9, 0xe8, 0xef, - 0x5d, 0x32, 0x17, 0x48, 0x38, 0x0a, 0x73, 0xab, 0x24, 0x4d, 0xc2, 0xb8, 0x0a, 0x97, 0x4f, 0x11, - 0xba, 0xf1, 0x22, 0x5c, 0x7f, 0xa2, 0xc4, 0x8c, 0x6b, 0x70, 0xf5, 0xd4, 0xd9, 0x1a, 0xd7, 0xe1, - 0xda, 0x13, 0x58, 0x35, 0xbe, 0x2e, 0xfe, 0x13, 0x07, 0xa3, 0x51, 0x2e, 0x79, 0x6a, 0x6e, 0xbe, - 0x06, 0x33, 0x03, 0x3a, 0x77, 0xd4, 0x55, 0xc9, 0x74, 0x90, 0xe6, 0x72, 0xbb, 0xc5, 0x0f, 0x5f, - 0xfc, 0x76, 0x96, 0x54, 0x5c, 0x9b, 0xd4, 0x24, 0x5c, 0x52, 0x1a, 0x7f, 0x2e, 0xee, 0x11, 0x05, - 0x17, 0xd2, 0xe1, 0x3e, 0x91, 0x3d, 0xfb, 0x98, 0x1f, 0x29, 0x7d, 0xe5, 0x54, 0x2f, 0xc2, 0x14, - 0xdb, 0x93, 0x87, 0xa4, 0x8b, 0x1d, 0xcf, 0xf1, 0xda, 0xb2, 0x9e, 0x99, 0x6d, 0xd4, 0x4d, 0x05, - 0x43, 0xeb, 0xfc, 0x6a, 0x9d, 0xb5, 0x25, 0x69, 0x67, 0x10, 0x51, 0x6a, 0x26, 0x46, 0x35, 0x52, - 0x73, 0x4d, 0xe8, 0xb3, 0xef, 0x1e, 0xa7, 0x63, 0xc4, 0x6d, 0xbe, 0x35, 0x59, 0x7b, 0x1b, 0x96, - 0x1e, 0xfb, 0x8f, 0xf2, 0xd0, 0x1c, 0xe8, 0xc9, 0xd7, 0x43, 0x3f, 0xec, 0x62, 0x57, 0xbf, 0x84, - 0x16, 0x61, 0x36, 0x81, 0xde, 0xf1, 0x43, 0x9b, 0xd7, 0x38, 0xeb, 0xda, 0x9a, 0x0b, 0x57, 0x4e, - 0xfb, 0xcf, 0x78, 0xac, 0x3b, 0x59, 0x41, 0xdc, 0x73, 0x69, 0xdc, 0xdd, 0x0a, 0x5c, 0x49, 0xa0, - 0x3b, 0x43, 0xff, 0xe0, 0x4e, 0xdc, 0x62, 0x27, 0x14, 0xe2, 0x72, 0x52, 0xcf, 0xad, 0xbd, 0x0c, - 0x90, 0x94, 0x2c, 0xa1, 0x09, 0xc8, 0x3d, 0x7a, 0x4d, 0xbf, 0x84, 0x2a, 0x50, 0x7c, 0xf4, 0x5a, - 0xb3, 0xb9, 0xa3, 0x6b, 0x1c, 0xb4, 0xa1, 0xe7, 0xd6, 0x3e, 0x01, 0x90, 0x94, 0xd6, 0x21, 0x80, - 0x89, 0x78, 0xe8, 0x12, 0xe4, 0x77, 0xfc, 0x63, 0x5d, 0x43, 0x65, 0x28, 0xdc, 0x73, 0xda, 0x1d, - 0x3d, 0xb7, 0xf6, 0x2a, 0xd4, 0xb2, 0xf5, 0x74, 0xac, 0x9b, 0xc6, 0xb6, 0x7e, 0x89, 0xfd, 0x35, - 0x37, 0x75, 0x8d, 0xdf, 0x94, 0x6f, 0x8a, 0x9b, 0xf2, 0x86, 0x9e, 0x5b, 0x7b, 0x04, 0xd5, 0x54, - 0x6d, 0x16, 0xe3, 0xf5, 0xa1, 0x4f, 0x6f, 0xba, 0xae, 0x7f, 0x4c, 0x5a, 0xbb, 0x1e, 0x03, 0x0b, - 0x91, 0xc5, 0xa0, 0x9b, 0x6e, 0xd7, 0x8f, 0x28, 0x47, 0x68, 0xa8, 0x0e, 0x73, 0x29, 0x04, 0xbf, - 0x57, 0xe7, 0x98, 0xdc, 0x9a, 0x0d, 0xb9, 0xdd, 0x80, 0x71, 0xb8, 0xd7, 0xa3, 0x82, 0xd5, 0x2d, - 0xe2, 0x0a, 0x56, 0xb9, 0xb8, 0x73, 0x68, 0x12, 0xca, 0xea, 0x6c, 0x47, 0xcf, 0xb3, 0x79, 0x6d, - 0x7b, 0x11, 0x09, 0xa9, 0x5e, 0x40, 0xb3, 0x30, 0x3d, 0xa0, 0x08, 0xbd, 0x88, 0x10, 0xd4, 0x38, - 0xd7, 0xca, 0x0d, 0x23, 0x7d, 0x62, 0x6d, 0x1d, 0x2a, 0xf1, 0x51, 0x17, 0xeb, 0xf9, 0xa1, 0xef, - 0x11, 0x21, 0x44, 0x4e, 0xa2, 0x6b, 0x6c, 0x10, 0xd5, 0x40, 0x48, 0x27, 0xfb, 0xaf, 0x4f, 0x19, - 0x5f, 0xbb, 0x07, 0x07, 0xfa, 0x25, 0xd6, 0xfa, 0x0e, 0xe6, 0x4d, 0x00, 0x26, 0x1a, 0x34, 0x64, - 0xaa, 0xcb, 0xad, 0xfd, 0xae, 0x06, 0x13, 0xf2, 0xff, 0x9f, 0xf2, 0x9e, 0xc4, 0x6f, 0xfd, 0x12, - 0x9a, 0x87, 0x99, 0x66, 0x73, 0x47, 0xdc, 0xbd, 0xc7, 0xb3, 0xe0, 0xf2, 0xe0, 0xc7, 0xb6, 0x72, - 0xc8, 0x18, 0x93, 0x63, 0x0d, 0x1e, 0xc4, 0x97, 0xe5, 0x8d, 0xbd, 0x5e, 0xd4, 0x21, 0x2d, 0x3d, - 0xcf, 0xac, 0x27, 0xee, 0x67, 0xc4, 0xff, 0xb0, 0xd3, 0x0b, 0x68, 0x09, 0xe6, 0xd3, 0x5d, 0x6e, - 0xf9, 0x0f, 0x7d, 0xda, 0x71, 0xbc, 0xb6, 0x5e, 0x5c, 0xbb, 0x01, 0xa5, 0xdb, 0x27, 0x34, 0xc4, - 0xbb, 0x81, 0x98, 0xbc, 0x1f, 0xe8, 0x97, 0x90, 0x0e, 0x93, 0x6c, 0xa3, 0xbb, 0xeb, 0xb6, 0x78, - 0x0e, 0xac, 0x6b, 0x6b, 0x06, 0xcc, 0x0c, 0xad, 0xd2, 0xcc, 0x0c, 0x36, 0x43, 0xfb, 0xd3, 0x6f, - 0x58, 0x3f, 0xe7, 0x87, 0xfa, 0xa5, 0x5b, 0x2f, 0xfd, 0xdd, 0x1f, 0x94, 0xb5, 0x1f, 0x7e, 0xf8, - 0x82, 0xf6, 0x93, 0x0f, 0x5f, 0xd0, 0xfe, 0xe9, 0xc3, 0x17, 0xb4, 0xdf, 0xf9, 0x97, 0x17, 0x2e, - 0x81, 0xee, 0x87, 0xed, 0x75, 0xea, 0x1c, 0x1e, 0xad, 0x1f, 0x1e, 0xf1, 0xff, 0xc4, 0xbd, 0x3f, - 0xc1, 0xff, 0xbc, 0xfe, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xde, 0xaf, 0xf2, 0x6f, 0x0d, 0x5c, - 0x00, 0x00, + // 6444 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x3c, 0x5b, 0x6c, 0x24, 0xd9, + 0x55, 0x53, 0xfd, 0x70, 0x77, 0x9f, 0x6e, 0xb7, 0xcb, 0xd7, 0xaf, 0x1e, 0xcf, 0xcc, 0x8e, 0xa7, + 0x36, 0xb3, 0x3b, 0x71, 0xb2, 0xde, 0xac, 0x77, 0x37, 0x0f, 0x12, 0x92, 0x9d, 0xb1, 0xe7, 0xe1, + 0x1d, 0xcf, 0xd8, 0xaa, 0xee, 0x9d, 0x65, 0x05, 0x49, 0xe5, 0xba, 0xfa, 0xba, 0xbb, 0xe4, 0xea, + 0xaa, 0xda, 0xaa, 0xdb, 0xb6, 0x3b, 0x08, 0x89, 0x55, 0x00, 0x29, 0x12, 0x0a, 0x10, 0x45, 0x0a, + 0x12, 0x11, 0x12, 0x1f, 0x91, 0x08, 0x7f, 0x88, 0x1f, 0x1e, 0x1f, 0x08, 0x29, 0x1f, 0x01, 0x11, + 0x25, 0x12, 0x42, 0x41, 0xf0, 0x01, 0x2c, 0x12, 0xdf, 0xfc, 0x20, 0xe0, 0x03, 0x81, 0xee, 0xab, + 0x1e, 0xdd, 0x3d, 0x1e, 0x4f, 0x8f, 0x3d, 0x09, 0x7c, 0xd9, 0x75, 0xce, 0xb9, 0xf7, 0x9e, 0x73, + 0xee, 0xb9, 0xe7, 0x9e, 0x7b, 0xee, 0xb9, 0x0d, 0xd3, 0x07, 0x87, 0x61, 0x60, 0x07, 0x7b, 0x6b, + 0x41, 0xe8, 0x53, 0x1f, 0x95, 0xe4, 0xe7, 0x72, 0xad, 0x47, 0x28, 0x56, 0xe0, 0xe5, 0x69, 0x12, + 0x86, 0x7e, 0x18, 0x7f, 0xce, 0x77, 0xfc, 0x8e, 0xcf, 0xff, 0x7d, 0x95, 0xfd, 0x27, 0xa1, 0x33, + 0x61, 0x3f, 0xa2, 0xfc, 0x5f, 0x09, 0xa8, 0xb7, 0x09, 0x6e, 0xbb, 0xbe, 0x7d, 0xa0, 0x7a, 0xa1, + 0x21, 0xb6, 0x89, 0xea, 0xc5, 0x68, 0x03, 0xdc, 0x25, 0xd4, 0x24, 0xef, 0xf7, 0x49, 0x44, 0xd1, + 0x2a, 0x94, 0x6c, 0xdf, 0xa3, 0xe4, 0x98, 0x36, 0xb4, 0x15, 0xed, 0x46, 0x75, 0x5d, 0x5f, 0x53, + 0xac, 0x6d, 0x08, 0xb8, 0xa9, 0x08, 0x90, 0x0e, 0xf9, 0x03, 0x32, 0x68, 0xe4, 0x56, 0xb4, 0x1b, + 0x35, 0x93, 0xfd, 0x8b, 0x1a, 0x50, 0x3a, 0x24, 0x61, 0xe4, 0xf8, 0x5e, 0x23, 0xbf, 0xa2, 0xdd, + 0x28, 0x98, 0xea, 0xd3, 0xf8, 0x50, 0x83, 0x2a, 0x1f, 0x26, 0x0a, 0x7c, 0x2f, 0x22, 0xe8, 0x35, + 0xa8, 0x85, 0xa4, 0xe3, 0xf8, 0x9e, 0xc5, 0x65, 0x92, 0x83, 0xd5, 0xd7, 0x94, 0x84, 0xb7, 0xd9, + 0x5f, 0xb3, 0x2a, 0x68, 0xf8, 0x07, 0x7a, 0x19, 0x8a, 0x82, 0x36, 0xc7, 0x69, 0x67, 0x63, 0xc6, + 0xee, 0x93, 0x81, 0x20, 0x17, 0x78, 0x34, 0x0f, 0xc5, 0x43, 0xec, 0xf6, 0x09, 0xe7, 0xa1, 0x66, + 0x8a, 0x0f, 0x74, 0x09, 0x2a, 0x9e, 0x4f, 0xad, 0x7d, 0xbf, 0xef, 0xb5, 0x1b, 0x85, 0x15, 0xed, + 0x46, 0xd9, 0x2c, 0x7b, 0x3e, 0xbd, 0xc3, 0xbe, 0xd1, 0xe7, 0x61, 0x86, 0x1c, 0x13, 0xdb, 0x6a, + 0x13, 0x8a, 0x1d, 0x37, 0xb2, 0x0e, 0xd7, 0x1b, 0x53, 0x7c, 0x94, 0xc5, 0x78, 0x94, 0xdb, 0xc7, + 0xc4, 0xde, 0x14, 0xe8, 0x47, 0xeb, 0xe6, 0x34, 0x49, 0x7f, 0xbe, 0x5d, 0x28, 0x17, 0xf5, 0x29, + 0xe3, 0xdf, 0x35, 0xa8, 0x36, 0x6d, 0xec, 0x4d, 0xa2, 0xcc, 0x4b, 0x50, 0x89, 0x28, 0x0e, 0xa9, + 0x95, 0xa8, 0xb4, 0xcc, 0x01, 0xf7, 0xc9, 0x80, 0x49, 0xe4, 0x3a, 0x3d, 0x87, 0x72, 0x89, 0xa6, + 0x4d, 0xf1, 0x91, 0xd6, 0x76, 0x21, 0xa3, 0x6d, 0x74, 0x11, 0xca, 0x07, 0x64, 0x60, 0xf9, 0x9e, + 0x3b, 0x68, 0x14, 0xb9, 0xa8, 0xa5, 0x03, 0x32, 0xd8, 0xf1, 0x5c, 0x3e, 0x45, 0x21, 0x61, 0x74, + 0x84, 0x4b, 0x58, 0x36, 0xd5, 0x27, 0x5a, 0x82, 0x12, 0xf1, 0xda, 0x7c, 0xfc, 0x12, 0x1f, 0x7f, + 0x8a, 0x78, 0x6d, 0x36, 0xfa, 0x55, 0xa8, 0x46, 0xb8, 0x17, 0xb8, 0xc4, 0x8a, 0x28, 0x09, 0x1a, + 0x65, 0xce, 0x03, 0x08, 0x50, 0x93, 0x92, 0xc0, 0xf8, 0x2d, 0x0d, 0x6a, 0x42, 0xee, 0xc9, 0x67, + 0xf7, 0x3a, 0x14, 0x03, 0xec, 0x84, 0x51, 0x23, 0xb7, 0x92, 0xbf, 0x51, 0x5d, 0x9f, 0x49, 0x66, + 0xf7, 0x70, 0x17, 0x3b, 0xa1, 0x29, 0xb0, 0x89, 0x11, 0xe4, 0x4f, 0x36, 0x02, 0xe3, 0xbf, 0x8a, + 0x30, 0xb3, 0x1b, 0x92, 0xa3, 0xd0, 0xa1, 0x64, 0x92, 0xf9, 0x78, 0x15, 0x2a, 0xbd, 0x3e, 0xc5, + 0xd4, 0xf1, 0x3d, 0xc5, 0x53, 0x32, 0xd8, 0x03, 0x89, 0x31, 0x13, 0x1a, 0x74, 0x0d, 0x6a, 0x41, + 0xe8, 0xf4, 0x70, 0x38, 0xb0, 0xd8, 0x62, 0x93, 0xc6, 0x57, 0x95, 0xb0, 0x6d, 0xdf, 0x3e, 0x40, + 0x2f, 0xc2, 0xb4, 0x98, 0xe3, 0xec, 0xb4, 0xd5, 0x38, 0xf0, 0x51, 0x32, 0x77, 0xac, 0xbd, 0x45, + 0xa9, 0xcb, 0xe7, 0xae, 0x60, 0x96, 0xd8, 0x77, 0x8b, 0xba, 0x68, 0x1d, 0x16, 0xa2, 0x03, 0x27, + 0xb0, 0x6c, 0xdf, 0x8b, 0x68, 0x88, 0x1d, 0x8f, 0x5a, 0x76, 0x97, 0xd8, 0x07, 0x72, 0x26, 0xe7, + 0x18, 0x72, 0x23, 0xc6, 0x6d, 0x30, 0x14, 0xfa, 0x79, 0x98, 0x0b, 0x48, 0x14, 0x39, 0x3d, 0x27, + 0xa2, 0x8e, 0x6d, 0x61, 0x5b, 0x48, 0x54, 0x5a, 0xc9, 0xdf, 0xa8, 0xaf, 0xaf, 0xc6, 0x12, 0x0d, + 0xa9, 0x6a, 0x6d, 0x37, 0x69, 0x73, 0x93, 0x37, 0x31, 0x51, 0x30, 0x0c, 0x8a, 0x18, 0xaf, 0xf4, + 0xd8, 0xb3, 0x22, 0xe7, 0x2b, 0x84, 0x9b, 0x45, 0xc1, 0x2c, 0xd1, 0x63, 0xaf, 0xe9, 0x7c, 0x85, + 0x20, 0x03, 0xa6, 0xf7, 0xfd, 0xd0, 0xea, 0x07, 0x6d, 0x4c, 0x89, 0x45, 0xa3, 0x46, 0x85, 0xe3, + 0xab, 0xfb, 0x7e, 0xf8, 0x0e, 0x87, 0xb5, 0x22, 0x46, 0xd3, 0x73, 0x3c, 0xcb, 0xf6, 0x7b, 0x3d, + 0x87, 0x32, 0x1a, 0x10, 0x34, 0x3d, 0xc7, 0xdb, 0xe0, 0xb0, 0x56, 0x84, 0x6e, 0x80, 0xde, 0x8f, + 0x88, 0x85, 0xa3, 0x81, 0x67, 0x4b, 0xca, 0x46, 0x95, 0x8b, 0x5b, 0xef, 0x47, 0xe4, 0x26, 0x03, + 0x0b, 0x5a, 0xb4, 0x02, 0xd5, 0x88, 0xd8, 0xbe, 0xd7, 0xc6, 0xa1, 0x43, 0xa2, 0x46, 0x6d, 0x25, + 0xcf, 0xf4, 0x9f, 0x02, 0xa1, 0xcb, 0x00, 0x34, 0x64, 0xcb, 0x82, 0x58, 0x81, 0xdd, 0x98, 0x16, + 0x3e, 0x80, 0x86, 0x83, 0x1d, 0x8f, 0xec, 0xda, 0x9c, 0x1b, 0x7c, 0x9c, 0xe2, 0xa6, 0x2e, 0xb9, + 0xc1, 0xc7, 0x31, 0x37, 0x6f, 0xc1, 0x0c, 0x8e, 0x22, 0x12, 0x32, 0xf1, 0x2d, 0x97, 0x1c, 0x12, + 0xb7, 0x31, 0xb3, 0xa2, 0xdd, 0xa8, 0xaf, 0x2f, 0xc5, 0x9a, 0xbc, 0xa9, 0xf0, 0xdb, 0x0c, 0x6d, + 0xd6, 0x71, 0xe6, 0xdb, 0xd8, 0x83, 0xd9, 0x11, 0xdd, 0xa2, 0x65, 0x58, 0x6c, 0xde, 0xdf, 0xda, + 0xb5, 0x76, 0x6f, 0x37, 0x9b, 0x5b, 0x0f, 0xb6, 0x9a, 0xad, 0xad, 0x0d, 0x6b, 0xe3, 0xde, 0xed, + 0x8d, 0xfb, 0xfa, 0x05, 0xd4, 0x80, 0xf9, 0xcd, 0x9d, 0x31, 0x18, 0x0d, 0x2d, 0xc1, 0xdc, 0xe6, + 0x8e, 0xb5, 0xb1, 0xf3, 0xb0, 0xd9, 0x32, 0x6f, 0x6e, 0x3d, 0x6c, 0x49, 0x44, 0xce, 0xf8, 0x6f, + 0x0d, 0xf4, 0x64, 0x42, 0x27, 0x5f, 0x93, 0x1f, 0x85, 0x29, 0x8e, 0x1d, 0x5d, 0x00, 0xf1, 0x6a, + 0x93, 0x04, 0xa3, 0x53, 0x99, 0x1f, 0x9d, 0xca, 0x97, 0x41, 0x17, 0xaa, 0x4f, 0x91, 0x89, 0x15, + 0x30, 0xed, 0xb3, 0x19, 0x88, 0x09, 0xc7, 0x78, 0xe3, 0xe2, 0x53, 0x78, 0x63, 0xe3, 0x7b, 0x05, + 0x58, 0x4c, 0x29, 0x99, 0xad, 0xbd, 0xff, 0x2f, 0x2e, 0x60, 0x64, 0x59, 0x4d, 0x8d, 0x5d, 0x56, + 0x4e, 0x64, 0xed, 0x3b, 0x61, 0x44, 0x05, 0x1f, 0x25, 0x6e, 0xe9, 0x55, 0x27, 0xba, 0xc3, 0x60, + 0x9c, 0x8f, 0x6b, 0x50, 0x3b, 0xc2, 0x6c, 0x0a, 0x9c, 0x1e, 0xf1, 0xfb, 0x94, 0xaf, 0xde, 0xbc, + 0x59, 0x65, 0xb0, 0x96, 0x00, 0xa1, 0x06, 0x14, 0xf7, 0xfd, 0xd0, 0x26, 0x7c, 0xe5, 0x96, 0x6f, + 0xe5, 0x1a, 0x9a, 0x29, 0x00, 0x4c, 0x88, 0x90, 0xd0, 0x7e, 0xe8, 0x59, 0x7c, 0x6b, 0x15, 0xeb, + 0xb6, 0x6c, 0xd6, 0x04, 0xf0, 0x11, 0x87, 0x8d, 0x5a, 0x44, 0x75, 0x9c, 0x45, 0xcc, 0x70, 0x07, + 0x66, 0x91, 0x63, 0x27, 0xa2, 0xc4, 0xb3, 0x49, 0xa3, 0x26, 0xd6, 0x36, 0x07, 0xdf, 0x56, 0x50, + 0xf4, 0x0a, 0xcc, 0x71, 0x8d, 0xb0, 0x1d, 0xcd, 0x72, 0xf6, 0x05, 0x7d, 0x24, 0x97, 0xb0, 0xce, + 0x50, 0x6c, 0x73, 0xdb, 0xda, 0xe7, 0x2d, 0x22, 0xb4, 0xc9, 0xa4, 0x3b, 0x20, 0x56, 0x3f, 0xb0, + 0x7a, 0x7e, 0x9b, 0xf0, 0x95, 0x5c, 0x5f, 0x37, 0x12, 0x6f, 0x97, 0x35, 0x8e, 0x77, 0xf1, 0x01, + 0x79, 0x27, 0x78, 0xe0, 0xb7, 0x89, 0x09, 0x47, 0xf1, 0xff, 0xc6, 0xbf, 0x69, 0xd0, 0x18, 0xa2, + 0xbc, 0x4f, 0x06, 0x26, 0x89, 0xfa, 0x2e, 0x45, 0x9f, 0x81, 0x02, 0x1d, 0x04, 0x84, 0x5b, 0x51, + 0x7d, 0xfd, 0xfa, 0xe3, 0xba, 0x8e, 0x1b, 0xb4, 0x06, 0x01, 0x31, 0x79, 0x93, 0x24, 0x3e, 0xc9, + 0xa5, 0xe3, 0x93, 0xcb, 0x50, 0x49, 0xb4, 0x90, 0xe7, 0x82, 0x25, 0x00, 0xf4, 0x26, 0x2c, 0x31, + 0x29, 0x49, 0xdb, 0x3a, 0x72, 0x68, 0x97, 0xed, 0x00, 0xfb, 0xae, 0x63, 0xa7, 0x96, 0xd0, 0xbc, + 0x40, 0xbf, 0xeb, 0xd0, 0xee, 0x86, 0x44, 0xb6, 0x22, 0xb4, 0x06, 0x7c, 0x53, 0xb0, 0x42, 0x12, + 0xf9, 0xee, 0xa1, 0xe3, 0x75, 0x84, 0x41, 0x08, 0x07, 0x3a, 0xcb, 0x50, 0xa6, 0xc2, 0x30, 0x6e, + 0x8d, 0x7f, 0xcd, 0xc1, 0xd2, 0xc8, 0xca, 0x79, 0x2e, 0x0e, 0xe4, 0x2a, 0x54, 0x86, 0x9c, 0x07, + 0xb7, 0xb8, 0xb2, 0xad, 0x6c, 0xa5, 0xa1, 0xb4, 0xc6, 0xe4, 0xad, 0x09, 0x73, 0x14, 0x9a, 0x5b, + 0x84, 0x29, 0x69, 0x87, 0x45, 0xee, 0xf3, 0xe5, 0x17, 0xba, 0x02, 0x10, 0x47, 0x7c, 0x6c, 0xa1, + 0xe4, 0x99, 0x4a, 0x55, 0xc8, 0x37, 0xd6, 0xcb, 0x94, 0x9e, 0xc2, 0xcb, 0xa0, 0xcf, 0xb2, 0x48, + 0x8a, 0x4d, 0x6d, 0xd4, 0x28, 0x73, 0xe9, 0xae, 0x3d, 0xd1, 0x08, 0x4c, 0xd5, 0xc2, 0xf8, 0x8e, + 0x06, 0xcb, 0x29, 0x2a, 0xd3, 0x77, 0xdd, 0x3d, 0x3c, 0x99, 0x9b, 0x1a, 0x71, 0x29, 0xb9, 0x31, + 0x2e, 0x65, 0xc4, 0x6f, 0xe4, 0x47, 0xfd, 0x06, 0x82, 0xc2, 0x01, 0x19, 0x30, 0x83, 0x62, 0x5a, + 0xe4, 0xff, 0x1b, 0x7f, 0xa6, 0xc1, 0xa5, 0xb1, 0x7c, 0x3e, 0x17, 0xa3, 0x18, 0x33, 0x45, 0xf9, + 0xa7, 0xd9, 0x08, 0xfe, 0x50, 0x83, 0xb9, 0xd6, 0xb1, 0x77, 0x8f, 0xe0, 0x90, 0xde, 0x22, 0x78, + 0xa2, 0x53, 0xce, 0xb0, 0x53, 0xcf, 0x9d, 0xc2, 0xa9, 0xe7, 0xc7, 0xcc, 0xc0, 0x4b, 0x30, 0x83, + 0xdb, 0x87, 0x4e, 0x44, 0xac, 0xd8, 0xb7, 0xcb, 0xcd, 0x4f, 0x80, 0xb7, 0x85, 0x87, 0x37, 0x7e, + 0xa0, 0xc1, 0x7c, 0x96, 0xe7, 0xe7, 0x70, 0x64, 0x4a, 0xef, 0x38, 0xf9, 0xec, 0x8e, 0x33, 0x66, + 0x0e, 0x0a, 0x4f, 0x33, 0x07, 0xff, 0x9c, 0x83, 0x05, 0x1e, 0x8a, 0xb6, 0x8e, 0xbd, 0x26, 0xc5, + 0xb4, 0x1f, 0x4d, 0x32, 0x0b, 0x57, 0x41, 0x69, 0x3c, 0x75, 0x40, 0x02, 0x09, 0x62, 0x87, 0x94, + 0x25, 0x28, 0x09, 0x09, 0x94, 0x69, 0x4f, 0x71, 0x01, 0x22, 0xa6, 0x77, 0x1b, 0xbb, 0x2e, 0x09, + 0x2d, 0x31, 0x47, 0x49, 0xd0, 0x21, 0xc0, 0x4d, 0x06, 0x6d, 0x71, 0x6f, 0x61, 0xf7, 0xc3, 0x90, + 0x78, 0x9c, 0x44, 0x6c, 0xbb, 0x15, 0x09, 0x69, 0x45, 0xe8, 0x35, 0x58, 0x08, 0xa5, 0xf1, 0xb3, + 0x0d, 0x88, 0x39, 0x16, 0xee, 0x9d, 0x65, 0xec, 0x8d, 0x14, 0x72, 0x6b, 0xff, 0xa1, 0x4f, 0xf9, + 0x36, 0x84, 0x56, 0x61, 0x96, 0xef, 0x97, 0x56, 0x3a, 0x76, 0x15, 0x7b, 0xf1, 0x0c, 0x47, 0x34, + 0x93, 0xe0, 0xf5, 0x73, 0xb0, 0x9c, 0xf8, 0xe8, 0x74, 0xc0, 0xce, 0x6d, 0xae, 0xcc, 0x1b, 0x35, + 0x62, 0x8a, 0x21, 0xff, 0x62, 0xfc, 0x30, 0x07, 0x8b, 0xc3, 0x3a, 0xfe, 0xc9, 0x5a, 0xcd, 0x75, + 0xa8, 0x4b, 0x77, 0x9e, 0x0d, 0x74, 0xa6, 0x05, 0x54, 0x2d, 0x8a, 0x97, 0x61, 0x4a, 0x9c, 0x48, + 0xb8, 0xc2, 0xeb, 0xa9, 0x63, 0x9f, 0x3c, 0x75, 0x48, 0x34, 0x5a, 0x83, 0x0a, 0x1f, 0xca, 0xf1, + 0xf6, 0x7d, 0x79, 0x34, 0x4f, 0xf8, 0x62, 0x3a, 0xd8, 0xf2, 0xf6, 0x7d, 0x93, 0xb3, 0xc3, 0xfe, + 0x7b, 0x56, 0xe7, 0x6e, 0x7c, 0xa0, 0xc1, 0x32, 0xd7, 0x68, 0x53, 0x9e, 0x1f, 0xf8, 0x4a, 0x9f, + 0xc8, 0x74, 0x95, 0x5b, 0xcd, 0x25, 0x6e, 0xf5, 0x54, 0x1e, 0xc3, 0xf8, 0x1f, 0x0d, 0x2e, 0x8d, + 0xe5, 0xe1, 0x39, 0x4c, 0xed, 0xcb, 0x50, 0x64, 0xba, 0x64, 0x8b, 0x29, 0x3f, 0x5e, 0xd7, 0x02, + 0x8f, 0x2e, 0xa5, 0xf7, 0x6d, 0x31, 0xc7, 0xc9, 0x9e, 0xfd, 0xac, 0x81, 0xfc, 0x77, 0x35, 0x98, + 0x16, 0x0b, 0xe4, 0xdc, 0x36, 0x46, 0x35, 0x3b, 0xf9, 0xd4, 0xec, 0x9c, 0xce, 0x78, 0x45, 0xd2, + 0xc7, 0x9c, 0xda, 0x73, 0x3c, 0xd7, 0xef, 0x18, 0x7f, 0xa3, 0x41, 0x5d, 0xf1, 0xfa, 0x1c, 0x26, + 0x68, 0x94, 0xc7, 0xfc, 0xb8, 0x05, 0xf6, 0xac, 0xde, 0xbb, 0x03, 0xd3, 0x5b, 0xbd, 0xc0, 0x0f, + 0xe3, 0x09, 0xc8, 0x1c, 0x8a, 0xb4, 0x53, 0x1c, 0x8a, 0x46, 0x19, 0xcd, 0x8d, 0x61, 0xd4, 0x78, + 0x0f, 0xea, 0x6a, 0xa0, 0xc9, 0xb5, 0x37, 0x9f, 0xd6, 0x5e, 0x45, 0xa5, 0x82, 0xbe, 0xc1, 0x66, + 0xc6, 0x25, 0xd8, 0xeb, 0x07, 0x67, 0x93, 0xe6, 0x3c, 0xd5, 0x7e, 0x9f, 0xdd, 0x4f, 0x0a, 0x43, + 0xfb, 0x89, 0xf1, 0x4d, 0x0d, 0x66, 0x62, 0xa6, 0x7e, 0x6a, 0xec, 0xc5, 0x38, 0x80, 0x99, 0x5b, + 0x98, 0xda, 0xdd, 0x09, 0x53, 0xc2, 0xe3, 0x7c, 0xdd, 0xe3, 0x93, 0xc2, 0xff, 0xa0, 0x81, 0x9e, + 0x8c, 0x76, 0xee, 0xb9, 0xc3, 0x67, 0x5c, 0x0b, 0x89, 0xae, 0x8b, 0x27, 0xeb, 0xfa, 0xed, 0x42, + 0x39, 0xaf, 0x17, 0x8c, 0x5f, 0x84, 0x79, 0x2e, 0xdc, 0xb9, 0xc7, 0xf6, 0x63, 0x5c, 0x98, 0xf1, + 0x47, 0x1a, 0x2c, 0x0c, 0x8d, 0xfe, 0x1c, 0x8c, 0xec, 0x59, 0xe3, 0xf5, 0x3f, 0xd0, 0x60, 0xa6, + 0x69, 0x63, 0x6f, 0xd2, 0x8c, 0xcd, 0x55, 0xa8, 0xf6, 0xf0, 0xf1, 0x90, 0xb2, 0xa0, 0x87, 0x8f, + 0x95, 0xaa, 0x32, 0x59, 0xf6, 0xfc, 0xe3, 0xb2, 0xec, 0x85, 0x74, 0x96, 0x3d, 0x95, 0x16, 0x2f, + 0xa6, 0xd3, 0xe2, 0xc6, 0x8f, 0x35, 0xd0, 0x13, 0x66, 0x7f, 0x9a, 0xf6, 0xe4, 0x67, 0x75, 0xfa, + 0x3f, 0xd4, 0x00, 0x89, 0xbc, 0x00, 0x99, 0x74, 0x26, 0x4e, 0x65, 0xb8, 0xa7, 0xdc, 0xc3, 0x5e, + 0x81, 0x0a, 0x3d, 0xf6, 0x78, 0xe8, 0x27, 0x0e, 0xa7, 0xe9, 0x91, 0x5b, 0xc7, 0x9e, 0x08, 0xfd, + 0xa8, 0xf8, 0x27, 0x39, 0xc6, 0x16, 0x53, 0xcb, 0x81, 0x1d, 0x04, 0x33, 0x12, 0xfd, 0x1f, 0x58, + 0x0c, 0x8f, 0xa0, 0x72, 0x77, 0x63, 0x12, 0xdd, 0x5f, 0x01, 0x88, 0xf0, 0x3e, 0xb1, 0x02, 0xdf, + 0xf1, 0xa8, 0x54, 0x7c, 0x85, 0x41, 0x76, 0x19, 0xc0, 0xe8, 0x02, 0xb0, 0x7e, 0xcf, 0x5f, 0x03, + 0xc6, 0xb7, 0x34, 0x40, 0x9b, 0xc4, 0x25, 0x94, 0x98, 0xd8, 0xeb, 0x90, 0x33, 0xbf, 0x16, 0x4b, + 0x2d, 0xcd, 0xfc, 0xf0, 0x8d, 0x95, 0xe7, 0x53, 0x67, 0x5f, 0x5e, 0x81, 0x89, 0xdb, 0x3e, 0x10, + 0xa0, 0x1d, 0xcf, 0x1d, 0x18, 0x5f, 0x82, 0xb9, 0x0c, 0x63, 0x67, 0x1d, 0x72, 0xfc, 0x89, 0x06, + 0x2b, 0xbb, 0x21, 0x09, 0x70, 0x48, 0xee, 0xb8, 0x38, 0xea, 0x32, 0x0f, 0xdc, 0xf2, 0xa5, 0x41, + 0x3f, 0x3f, 0x3d, 0x5c, 0x84, 0xf2, 0xd0, 0xa1, 0xb7, 0x14, 0xc9, 0xe3, 0x6e, 0x6a, 0x57, 0x2e, + 0x66, 0x77, 0x65, 0x17, 0xae, 0x9d, 0xc0, 0xfa, 0x59, 0x6b, 0xea, 0x87, 0x1a, 0x5c, 0x3c, 0x1b, + 0x15, 0xa5, 0x24, 0xca, 0x65, 0xaf, 0x43, 0x4f, 0xf4, 0xfa, 0x29, 0xe5, 0x15, 0x1e, 0xab, 0xbc, + 0x62, 0x56, 0x79, 0x99, 0x43, 0xcf, 0x54, 0xf6, 0xd0, 0x63, 0x10, 0x58, 0x7e, 0x1e, 0x8a, 0xfb, + 0x22, 0x4c, 0x9b, 0xf8, 0xe8, 0xcc, 0xae, 0xee, 0xeb, 0x90, 0xb3, 0xf7, 0xb9, 0x72, 0x2a, 0x66, + 0xce, 0xde, 0x37, 0x7e, 0x5d, 0x83, 0xba, 0xea, 0xff, 0x8c, 0x59, 0x9f, 0xe0, 0x82, 0xde, 0x68, + 0x03, 0x32, 0xf1, 0xd1, 0x59, 0x87, 0xa6, 0xc3, 0x42, 0xfb, 0x30, 0x97, 0x19, 0xe5, 0xbc, 0x43, + 0x52, 0xe3, 0x77, 0x35, 0x3e, 0x8b, 0xbb, 0xfd, 0x33, 0x9a, 0xc5, 0xf1, 0x9a, 0x15, 0x62, 0x16, + 0x94, 0x98, 0xac, 0x5d, 0x72, 0xb5, 0xc4, 0xfe, 0x65, 0x8b, 0x60, 0xdf, 0x0f, 0x2d, 0x1b, 0x47, + 0x32, 0x9f, 0x35, 0xb5, 0xef, 0x87, 0x1b, 0x38, 0x62, 0xc7, 0x32, 0xc5, 0xdf, 0x59, 0x1b, 0xf0, + 0x9f, 0x6a, 0xc9, 0x9c, 0x4e, 0xa8, 0x80, 0x53, 0x06, 0xfe, 0x43, 0xd3, 0x8c, 0xe6, 0x85, 0xfc, + 0x85, 0xf8, 0x96, 0x61, 0x58, 0x07, 0xc5, 0xb4, 0x0e, 0x98, 0xe5, 0x50, 0xea, 0x8a, 0x1b, 0x84, + 0x82, 0xc9, 0xff, 0x67, 0x1b, 0x48, 0x86, 0xf7, 0xb3, 0x56, 0xce, 0x00, 0x74, 0x13, 0x1f, 0xc9, + 0x3d, 0xea, 0x3c, 0x16, 0x78, 0x5a, 0xdc, 0x42, 0x66, 0xca, 0x7f, 0x01, 0x66, 0x53, 0x43, 0x9f, + 0xb5, 0x60, 0xbf, 0xac, 0xc1, 0x82, 0xd2, 0xdc, 0xe4, 0xe2, 0x9d, 0x62, 0x31, 0x3f, 0x5e, 0x40, + 0x0c, 0x8b, 0xc3, 0x1c, 0x9c, 0xb5, 0x94, 0x3f, 0x10, 0xde, 0xf3, 0x39, 0x16, 0x03, 0xa5, 0x4b, + 0x7e, 0x0a, 0xd9, 0x92, 0x1f, 0xa1, 0x98, 0x62, 0xac, 0x98, 0xa7, 0x2f, 0x01, 0x32, 0x3a, 0x30, + 0x13, 0x8b, 0x33, 0xb9, 0xae, 0xae, 0x41, 0xfe, 0xe0, 0xf0, 0xb1, 0x8b, 0x95, 0xe1, 0x8c, 0xaf, + 0x09, 0xf3, 0xf8, 0x89, 0x44, 0x8d, 0x43, 0x6e, 0x52, 0xda, 0xc9, 0xb9, 0xc6, 0x89, 0x3f, 0xd2, + 0x12, 0x3f, 0x32, 0xa9, 0xb1, 0x7c, 0x14, 0xa6, 0x42, 0xc6, 0xdd, 0xd8, 0xfb, 0x34, 0xc1, 0xb7, + 0x24, 0x60, 0x27, 0x03, 0x82, 0xed, 0xae, 0x95, 0xb6, 0x9f, 0x0a, 0x83, 0x6c, 0x9f, 0x99, 0x0d, + 0x19, 0x2e, 0xcc, 0x67, 0x25, 0x3a, 0x57, 0x7b, 0xf9, 0x25, 0xb8, 0xf8, 0x8e, 0xc7, 0xce, 0x36, + 0x9b, 0x24, 0xa2, 0xa1, 0x3f, 0x78, 0xbe, 0x26, 0xc3, 0x62, 0xbd, 0x71, 0xc3, 0x9f, 0xb5, 0x99, + 0x7c, 0x19, 0x2e, 0x99, 0xa4, 0xe3, 0x44, 0x94, 0x84, 0xec, 0xf8, 0xba, 0xb3, 0x17, 0x91, 0xf0, + 0x90, 0x84, 0x93, 0xc8, 0xb9, 0x00, 0x53, 0x3d, 0x7c, 0xcc, 0xe2, 0x56, 0x11, 0x24, 0x17, 0x7b, + 0xf8, 0xb8, 0x15, 0x19, 0x6f, 0xc0, 0xe5, 0xf1, 0x23, 0x48, 0x51, 0x62, 0xbe, 0xb4, 0x6c, 0x0c, + 0xda, 0xe0, 0x17, 0x14, 0xe7, 0xc4, 0x54, 0x1f, 0x2e, 0x8e, 0xe9, 0xfe, 0x24, 0x8e, 0x98, 0x09, + 0x3b, 0x91, 0x65, 0xbb, 0x04, 0x8b, 0x53, 0x40, 0xd9, 0x2c, 0x39, 0x11, 0xcf, 0xb3, 0x9e, 0x3a, + 0x7d, 0x62, 0x7c, 0x09, 0x2e, 0x9a, 0xa4, 0xe7, 0x8b, 0x54, 0xc1, 0x39, 0x88, 0xb5, 0x0e, 0xcb, + 0xe3, 0xfa, 0x3f, 0x51, 0xd3, 0xbf, 0xa1, 0xc1, 0xd2, 0x6e, 0x77, 0x10, 0x39, 0x36, 0x76, 0x9f, + 0x25, 0x43, 0x36, 0x9e, 0xa5, 0x09, 0xf2, 0x62, 0xc6, 0x7b, 0xd0, 0x18, 0x65, 0xe8, 0xc4, 0xb9, + 0x89, 0x27, 0x20, 0xf7, 0x84, 0x09, 0xf8, 0xb6, 0x06, 0xa8, 0x19, 0xb8, 0x0e, 0x35, 0xf9, 0xca, + 0x98, 0x2c, 0x13, 0x58, 0x89, 0x58, 0x0f, 0xc9, 0x72, 0x16, 0xe5, 0x24, 0x1c, 0xc8, 0x84, 0xba, + 0x02, 0x10, 0x13, 0xa8, 0xd4, 0x69, 0x45, 0x61, 0x23, 0xb4, 0x0c, 0x15, 0x27, 0xb2, 0x42, 0x7c, + 0x64, 0x1d, 0x1c, 0x2a, 0x5f, 0xe8, 0x44, 0x26, 0x3e, 0xba, 0x7f, 0x68, 0x7c, 0x4f, 0x83, 0xb9, + 0x0c, 0x7b, 0x93, 0x2f, 0xf7, 0x97, 0xa0, 0xe0, 0x92, 0x7d, 0x2a, 0x33, 0x29, 0xf5, 0x35, 0x59, + 0xee, 0x2d, 0x3a, 0xe6, 0x1c, 0x73, 0x3c, 0xba, 0x01, 0xc5, 0xd0, 0xe9, 0x74, 0xa9, 0xcc, 0x20, + 0x8d, 0x23, 0x14, 0x04, 0xe8, 0x06, 0x73, 0xcc, 0x1d, 0x7e, 0x3b, 0x23, 0x52, 0x65, 0x43, 0xb4, + 0xa6, 0x42, 0x1b, 0xbf, 0xa2, 0x81, 0x6e, 0x12, 0xdc, 0xde, 0xf2, 0xda, 0xe4, 0x78, 0x12, 0x1d, + 0xa7, 0x0f, 0xc8, 0xb9, 0xec, 0x01, 0x39, 0xd9, 0x93, 0xf2, 0x4f, 0xd8, 0x93, 0x8c, 0xdf, 0xd4, + 0x60, 0x36, 0xc5, 0xc6, 0xe4, 0xba, 0xbc, 0x02, 0x10, 0x12, 0xdc, 0xb6, 0x1c, 0xd6, 0x91, 0x4a, + 0x7b, 0x85, 0xaa, 0x67, 0xc6, 0x92, 0x28, 0x91, 0x1a, 0x29, 0x1d, 0x8e, 0xcd, 0x4f, 0x12, 0x18, + 0x4d, 0x98, 0x7b, 0x70, 0x68, 0xdb, 0x77, 0x09, 0xbd, 0x35, 0xe0, 0xb5, 0x3b, 0x67, 0x10, 0x7f, + 0x1b, 0xbf, 0xa6, 0xc1, 0x7c, 0xb6, 0xd7, 0xb3, 0x3e, 0x56, 0x5f, 0x87, 0x02, 0xbf, 0x1e, 0x1f, + 0x96, 0x8f, 0x8d, 0xca, 0xe5, 0xe3, 0x68, 0xe3, 0xcb, 0xb0, 0x14, 0xf3, 0x21, 0x8b, 0x1f, 0xce, + 0x76, 0xf6, 0xd9, 0xfa, 0x6d, 0x8c, 0x0e, 0x71, 0xd6, 0xe2, 0x4a, 0x15, 0xe7, 0x93, 0x23, 0x8e, + 0x52, 0x40, 0xe1, 0x64, 0x05, 0x7c, 0x50, 0x81, 0xd2, 0x46, 0xb2, 0xed, 0x4b, 0x6e, 0x9c, 0x36, + 0x67, 0xa5, 0x60, 0x96, 0x05, 0x60, 0xab, 0x8d, 0x3e, 0x99, 0xb0, 0x1a, 0xf8, 0x76, 0x57, 0xae, + 0xd2, 0xb9, 0xec, 0x82, 0xba, 0xcd, 0x50, 0x31, 0xbf, 0xec, 0x03, 0xad, 0x40, 0x21, 0x20, 0x44, + 0xd5, 0xa8, 0xd7, 0x14, 0xfd, 0x2e, 0x21, 0xa1, 0xc9, 0x31, 0xfc, 0x48, 0x49, 0xc2, 0x9e, 0x3c, + 0x82, 0xf3, 0xff, 0xd1, 0xab, 0x50, 0x0e, 0x42, 0xc7, 0x0f, 0x1d, 0x3a, 0xe0, 0x31, 0x55, 0x7d, + 0x7d, 0x2e, 0xa5, 0xfd, 0x5e, 0x0f, 0x7b, 0xed, 0xdd, 0xd0, 0x31, 0x63, 0x22, 0xf4, 0x16, 0xcc, + 0x38, 0x91, 0xef, 0xe2, 0x54, 0x31, 0x72, 0x69, 0xa8, 0x18, 0x79, 0x4b, 0xe1, 0x65, 0x31, 0xb2, + 0x93, 0xf9, 0x46, 0x1f, 0x81, 0x3a, 0x4f, 0xb9, 0x38, 0xae, 0x6b, 0xd9, 0xd8, 0xee, 0x12, 0x59, + 0x69, 0x52, 0xf3, 0x7c, 0x7a, 0xc7, 0x71, 0xdd, 0x0d, 0x06, 0xe3, 0x33, 0x3d, 0xf0, 0x6c, 0xcb, + 0xf5, 0x3b, 0xa2, 0x16, 0xd4, 0x2c, 0xb1, 0xef, 0x6d, 0xbf, 0x83, 0x6e, 0x80, 0x1e, 0x12, 0xdb, + 0x0f, 0xdb, 0xbc, 0x90, 0xd4, 0x8a, 0x28, 0xa6, 0xb2, 0x18, 0xb4, 0x2e, 0xe0, 0x2d, 0xa7, 0x47, + 0x9a, 0x14, 0xd3, 0x14, 0x65, 0x64, 0x63, 0x4f, 0x50, 0x56, 0xd3, 0x94, 0x6c, 0x13, 0xe1, 0x94, + 0xd7, 0x98, 0xd6, 0x03, 0xd7, 0xb1, 0xb1, 0xc5, 0x56, 0xaf, 0xac, 0x08, 0xad, 0x4a, 0x18, 0x73, + 0x15, 0xe8, 0x3a, 0xd4, 0x45, 0x2d, 0x0c, 0x69, 0x5b, 0x62, 0x4b, 0x99, 0xe6, 0x67, 0xf3, 0x69, + 0x05, 0xe5, 0x85, 0x12, 0xe8, 0x33, 0x70, 0x91, 0x6d, 0x76, 0xe4, 0x98, 0xd8, 0x7d, 0xae, 0xa4, + 0x76, 0x3f, 0x14, 0xda, 0xea, 0xa9, 0xea, 0xee, 0xc5, 0x1e, 0x3e, 0xbe, 0xad, 0xf0, 0x9b, 0x12, + 0xfd, 0x80, 0x17, 0x68, 0xe0, 0x20, 0x70, 0x1d, 0xa2, 0xfc, 0xc9, 0x8c, 0xb8, 0xbf, 0x90, 0x40, + 0xe1, 0x52, 0x96, 0xa0, 0x44, 0x71, 0x74, 0xc0, 0x4c, 0x47, 0x17, 0x35, 0x47, 0xec, 0x73, 0xab, + 0xcd, 0x37, 0x17, 0x8a, 0x5d, 0x22, 0x04, 0x98, 0x15, 0xc5, 0x9c, 0x1c, 0xc2, 0xd9, 0xff, 0x38, + 0x20, 0xc6, 0x68, 0x3f, 0xb4, 0x89, 0xd5, 0x09, 0xfd, 0x7e, 0x60, 0x51, 0xdc, 0x69, 0x20, 0x6e, + 0xc8, 0xba, 0xc2, 0xdc, 0x65, 0x88, 0x16, 0xee, 0xa0, 0x4f, 0xc3, 0x74, 0xdb, 0x89, 0x0e, 0xac, + 0xfd, 0xbe, 0xeb, 0x5a, 0x7e, 0x40, 0x1b, 0x73, 0x7c, 0x92, 0xe7, 0xe3, 0x49, 0xde, 0x74, 0xa2, + 0x83, 0x3b, 0x7d, 0xd7, 0xdd, 0x09, 0xa8, 0x59, 0x6d, 0x27, 0x1f, 0x4c, 0xe7, 0x6c, 0x13, 0x23, + 0x34, 0x1c, 0x58, 0xa1, 0x58, 0xe2, 0x8d, 0x79, 0xa1, 0x73, 0x27, 0x32, 0x19, 0x58, 0x2d, 0xfc, + 0x37, 0xa0, 0x8a, 0x03, 0x27, 0xbe, 0x86, 0x59, 0x18, 0x32, 0xbf, 0x9b, 0xbb, 0x5b, 0x2a, 0x8f, + 0x09, 0x38, 0x70, 0x92, 0xea, 0x9d, 0x19, 0x91, 0xf5, 0xa4, 0xf1, 0x3c, 0x2c, 0xf2, 0x79, 0xa8, + 0xc7, 0x60, 0x31, 0x11, 0x3f, 0x03, 0xe2, 0xd1, 0x91, 0xa5, 0xbc, 0xcb, 0x12, 0x5f, 0x19, 0x0b, + 0x6b, 0xea, 0x29, 0x52, 0x8b, 0xfd, 0x55, 0x2e, 0xa6, 0x46, 0x53, 0x5f, 0x62, 0xae, 0x39, 0x97, + 0x96, 0x50, 0x4c, 0xa3, 0xc1, 0xbd, 0xc0, 0xb4, 0x84, 0x36, 0x39, 0x90, 0xa9, 0x9c, 0x3f, 0x45, + 0x10, 0x24, 0x17, 0x85, 0xf7, 0xa7, 0xc7, 0x9e, 0x44, 0xaf, 0xc1, 0xdc, 0x90, 0xca, 0x3d, 0xdc, + 0x23, 0x8d, 0x65, 0xde, 0xd5, 0x6c, 0x46, 0xe7, 0x0f, 0x71, 0x8f, 0xa0, 0x55, 0x98, 0xdd, 0xeb, + 0x47, 0x03, 0x8b, 0x76, 0x43, 0x12, 0x75, 0x7d, 0xb7, 0xcd, 0x4c, 0xe6, 0x12, 0x8f, 0x7f, 0x66, + 0x18, 0xa2, 0xa5, 0xe0, 0x0f, 0x22, 0x74, 0x15, 0xaa, 0x2c, 0x88, 0x08, 0x98, 0x80, 0x4e, 0xbb, + 0xb1, 0x22, 0xde, 0xc7, 0x28, 0xd0, 0x56, 0xfb, 0xed, 0x42, 0xb9, 0xa0, 0x17, 0x99, 0x05, 0xe3, + 0xb6, 0xf5, 0x7e, 0xdf, 0x0f, 0xfb, 0x3d, 0xe3, 0x1f, 0x73, 0x50, 0x56, 0xfb, 0xce, 0x48, 0x89, + 0xa1, 0x36, 0x5a, 0x62, 0x78, 0x0d, 0x6a, 0xbc, 0xfe, 0x29, 0x9b, 0xe1, 0xae, 0x32, 0x98, 0x9a, + 0x8d, 0x51, 0x7f, 0x98, 0xae, 0xcf, 0x2a, 0x64, 0xeb, 0xb3, 0xd2, 0x2f, 0x37, 0x8a, 0xd9, 0x97, + 0x1b, 0x37, 0x64, 0xa9, 0x15, 0x2f, 0x6f, 0x16, 0x8e, 0xa8, 0x1a, 0x5b, 0xc2, 0x4e, 0x20, 0x8a, + 0xac, 0x5a, 0x83, 0x80, 0xa0, 0x8f, 0x01, 0xe2, 0x94, 0xd9, 0xca, 0xd2, 0x12, 0xef, 0x6e, 0x86, + 0x61, 0xee, 0xa4, 0xaa, 0x4b, 0xc7, 0x3d, 0xe4, 0x28, 0x8f, 0x7d, 0xc8, 0x31, 0x52, 0x39, 0x5e, + 0x19, 0xad, 0x1c, 0x1f, 0x7a, 0xec, 0x01, 0x23, 0x8f, 0x3d, 0x8c, 0x6f, 0x15, 0xa0, 0xac, 0x2e, + 0xa4, 0x52, 0x9b, 0xbf, 0xf6, 0x84, 0xcd, 0x1f, 0x5d, 0x66, 0x3b, 0x02, 0x0d, 0x07, 0x78, 0xcf, + 0x25, 0x72, 0xc3, 0x49, 0x00, 0x6c, 0x2b, 0xc2, 0x7b, 0x7e, 0x48, 0x65, 0x9e, 0x49, 0x7c, 0xa0, + 0x75, 0x28, 0xab, 0x8a, 0xec, 0x91, 0x9b, 0xd6, 0x77, 0x43, 0x87, 0x12, 0x55, 0x92, 0x6d, 0xc6, + 0x74, 0x6c, 0x4d, 0x60, 0x97, 0x99, 0xc4, 0x40, 0x16, 0x12, 0x16, 0xe5, 0x9a, 0x88, 0x17, 0x9d, + 0xc0, 0xf2, 0x5a, 0x42, 0xb3, 0x86, 0x53, 0x5f, 0xe8, 0x15, 0x28, 0xab, 0x47, 0x7d, 0x23, 0xc5, + 0x70, 0x9b, 0x12, 0x61, 0xc6, 0x24, 0x68, 0x13, 0x66, 0x63, 0x65, 0x5a, 0xe4, 0x38, 0x70, 0x42, + 0xd2, 0x96, 0xe5, 0x70, 0x8d, 0xcc, 0x16, 0xc3, 0x54, 0x7b, 0x5b, 0xe0, 0xcd, 0x19, 0x3b, 0x0b, + 0x60, 0x7e, 0x88, 0x99, 0x4c, 0x92, 0xa3, 0x2f, 0xf3, 0x1e, 0xe6, 0xd3, 0x57, 0xb1, 0x0f, 0x65, + 0xbe, 0xde, 0xac, 0xd2, 0xe4, 0x03, 0xdd, 0x83, 0xb9, 0x64, 0x7c, 0xea, 0xfb, 0x96, 0x8b, 0xc3, + 0x8e, 0x78, 0x57, 0x50, 0x5d, 0xbf, 0x38, 0xc2, 0x41, 0xcb, 0xf7, 0xb7, 0x19, 0x81, 0xa9, 0xdb, + 0x43, 0x10, 0xb4, 0x01, 0x7a, 0xf2, 0xfe, 0x66, 0x1f, 0x3b, 0x2e, 0x69, 0xf3, 0xfd, 0x26, 0x2d, + 0x48, 0xfc, 0x00, 0xe7, 0x0e, 0xc7, 0x9b, 0xc9, 0x8b, 0x1d, 0x01, 0x30, 0xfe, 0x36, 0x07, 0xd3, + 0x99, 0x59, 0xc9, 0xc4, 0x32, 0x5a, 0x36, 0x92, 0xbd, 0x0a, 0xd5, 0x74, 0xb1, 0xbd, 0x2c, 0x29, + 0xb0, 0x93, 0x12, 0xfb, 0xd1, 0x65, 0xd7, 0x80, 0x92, 0x5c, 0xba, 0xf2, 0x46, 0x49, 0x7d, 0x32, + 0xc7, 0x1f, 0x77, 0x96, 0x98, 0xb7, 0x58, 0x7f, 0xba, 0xc2, 0xc4, 0x36, 0xfe, 0x26, 0x4c, 0x85, + 0x04, 0x47, 0xbe, 0x27, 0x57, 0xe1, 0x95, 0xf1, 0x36, 0xb5, 0x66, 0x72, 0x22, 0x53, 0x12, 0x1b, + 0x47, 0x30, 0x25, 0x20, 0xa8, 0x0a, 0xa5, 0x77, 0xbc, 0x03, 0xcf, 0x3f, 0xf2, 0xf4, 0x0b, 0xa8, + 0x0e, 0xb0, 0x13, 0x50, 0x59, 0x35, 0xaa, 0x6b, 0x68, 0x1e, 0xf4, 0x74, 0x61, 0x37, 0xb3, 0x70, + 0x3d, 0x87, 0x10, 0xd4, 0x9b, 0xc4, 0xdd, 0x37, 0x7d, 0xd7, 0x25, 0xed, 0x5b, 0xd8, 0x3e, 0xd0, + 0xf3, 0x68, 0x1a, 0x2a, 0xa6, 0x2d, 0xca, 0x4b, 0x23, 0xbd, 0x80, 0x96, 0x60, 0x6e, 0x1b, 0x7f, + 0x65, 0xf0, 0x8e, 0xe7, 0xbc, 0xdf, 0x27, 0x1e, 0x89, 0x22, 0x8e, 0xd2, 0x8b, 0xc6, 0x0a, 0xd4, + 0xd2, 0x36, 0xab, 0x34, 0xa3, 0x25, 0x31, 0xf0, 0xef, 0x69, 0x50, 0x56, 0xf6, 0x99, 0xae, 0xd8, + 0xd5, 0x32, 0x15, 0xbb, 0xca, 0x6d, 0x25, 0x01, 0x34, 0x27, 0x64, 0xa7, 0xb6, 0x55, 0x98, 0x55, + 0x56, 0xcd, 0xd0, 0x56, 0x17, 0x47, 0x5d, 0x59, 0x34, 0x30, 0xa3, 0x10, 0xf7, 0xc9, 0xe0, 0x1e, + 0x8e, 0xba, 0xe8, 0x4d, 0x00, 0xfe, 0xc4, 0xc5, 0xee, 0x62, 0xc7, 0x93, 0x87, 0xa1, 0xc5, 0xb5, + 0xf8, 0x31, 0xec, 0xbb, 0xd8, 0xa1, 0x77, 0xfc, 0xf0, 0xb6, 0xc7, 0xb6, 0xc1, 0x0a, 0xa3, 0xdc, + 0x60, 0x84, 0xc6, 0x37, 0x34, 0x98, 0x19, 0x5a, 0x0b, 0x27, 0xd9, 0xc7, 0x1a, 0xcc, 0x61, 0x4a, + 0x49, 0x2f, 0x60, 0x7b, 0x60, 0x32, 0xa7, 0xc2, 0x4e, 0x66, 0x63, 0x54, 0x3c, 0xa9, 0xa3, 0xe6, + 0x32, 0xe2, 0xee, 0x0a, 0x23, 0xee, 0xce, 0xd8, 0x82, 0x6a, 0x6a, 0x75, 0x3d, 0xc1, 0x5e, 0x4f, + 0x2c, 0x94, 0x36, 0x5e, 0x05, 0x7d, 0x78, 0xa1, 0x65, 0xef, 0x33, 0xb5, 0xa1, 0xfb, 0xcc, 0xbf, + 0xd2, 0x60, 0x66, 0x68, 0x4d, 0x9d, 0xc4, 0xc0, 0xe8, 0xcd, 0xc3, 0x27, 0xa0, 0x12, 0x2f, 0x41, + 0x2e, 0x78, 0x7d, 0x1d, 0x8d, 0xae, 0x56, 0x33, 0x21, 0x62, 0xd3, 0xcc, 0x7d, 0xa2, 0xe3, 0x75, + 0x86, 0xab, 0xb6, 0x67, 0x14, 0x42, 0xd5, 0x6d, 0x7f, 0x1c, 0x50, 0x4c, 0x3b, 0xb2, 0xa6, 0x14, + 0x26, 0x56, 0xe4, 0x5f, 0x6b, 0x00, 0x2c, 0x26, 0x15, 0x65, 0x16, 0xe8, 0xa3, 0x30, 0xcb, 0x6d, + 0xe4, 0x08, 0xbb, 0xae, 0x08, 0x61, 0x7b, 0x4a, 0xa0, 0x3a, 0x43, 0xbc, 0x8b, 0x5d, 0x97, 0x91, + 0x3f, 0x88, 0xd0, 0xab, 0x30, 0x1f, 0x84, 0xbe, 0x4d, 0xa2, 0x28, 0x4b, 0x2d, 0x67, 0x5a, 0xe2, + 0x52, 0x0d, 0xd6, 0x60, 0xfe, 0xe0, 0x90, 0x47, 0x80, 0xd9, 0x06, 0xc2, 0x5c, 0xf5, 0x83, 0x43, + 0x16, 0x0b, 0xa6, 0xe8, 0xd7, 0x61, 0x91, 0xfa, 0x14, 0xbb, 0x56, 0x18, 0xd8, 0xa9, 0x16, 0x9e, + 0x92, 0x1c, 0x71, 0xac, 0x19, 0xd8, 0xaa, 0xcd, 0xc3, 0xc8, 0xf8, 0x7a, 0x0e, 0x6a, 0x89, 0x38, + 0x8f, 0xd6, 0xc7, 0x08, 0xe4, 0x8d, 0x15, 0xe8, 0xe1, 0x63, 0x04, 0xf2, 0x1e, 0x27, 0xd0, 0xc3, + 0x08, 0x7d, 0x1e, 0x2e, 0xab, 0x06, 0x51, 0x3f, 0x0a, 0x88, 0xd7, 0xce, 0x36, 0x14, 0x82, 0x35, + 0x24, 0x4d, 0x53, 0x90, 0xa4, 0xda, 0x8f, 0x55, 0x48, 0x2c, 0xde, 0x90, 0x42, 0x1e, 0x9e, 0xa4, + 0x90, 0xe2, 0x63, 0x15, 0xf2, 0x45, 0x28, 0xb3, 0x83, 0x04, 0x0f, 0xab, 0xe6, 0xa1, 0xc8, 0x29, + 0xb8, 0xfc, 0x79, 0x53, 0x7c, 0xb0, 0xfd, 0x5d, 0x72, 0x48, 0xda, 0x5c, 0xd6, 0xbc, 0x99, 0x00, + 0xe2, 0x24, 0xc2, 0xde, 0x80, 0x12, 0x21, 0x51, 0x5e, 0x24, 0x11, 0x6e, 0x31, 0x80, 0xf1, 0x55, + 0x0d, 0x80, 0xf5, 0x2f, 0xcd, 0xe7, 0x65, 0x28, 0xf2, 0x47, 0x96, 0x23, 0x51, 0x85, 0xe2, 0xc1, + 0x14, 0x78, 0x76, 0x32, 0x8d, 0x1f, 0x8f, 0x8c, 0xa5, 0xe3, 0x68, 0x46, 0xd6, 0xc6, 0x14, 0x8f, + 0x9c, 0xe0, 0x13, 0x32, 0x86, 0x36, 0xfe, 0xa3, 0x28, 0xde, 0x5b, 0xc7, 0xb3, 0xfe, 0x0a, 0xa0, + 0x58, 0x04, 0x15, 0x22, 0xaa, 0x69, 0x9f, 0x8d, 0x31, 0x32, 0x50, 0x8c, 0xd0, 0x27, 0x61, 0x69, + 0x94, 0x3c, 0xfd, 0x8a, 0x77, 0x61, 0xa4, 0x0d, 0x8f, 0x0c, 0xaf, 0x43, 0x5d, 0x4c, 0x48, 0x3c, + 0x84, 0x2c, 0xe5, 0xe5, 0xd0, 0xb8, 0xfb, 0x2f, 0xc0, 0xe5, 0x90, 0x85, 0xfd, 0xed, 0x3d, 0xab, + 0xcd, 0x2f, 0x4f, 0xac, 0xe8, 0xc0, 0x09, 0x02, 0xee, 0x1f, 0xfb, 0x1e, 0x95, 0x76, 0x72, 0x51, + 0xd2, 0x88, 0xfb, 0x95, 0xa6, 0xa0, 0xd8, 0x60, 0x04, 0xec, 0xdc, 0xa6, 0x3a, 0x60, 0x4e, 0x3e, + 0xdb, 0x5a, 0x58, 0xcb, 0xa2, 0x24, 0xb8, 0x4f, 0x06, 0x99, 0xa6, 0x6f, 0xc1, 0x15, 0xd5, 0x74, + 0x8f, 0xef, 0x12, 0xfc, 0x58, 0x6b, 0x75, 0xd9, 0x3e, 0xc0, 0x9b, 0x17, 0x33, 0x83, 0xdf, 0x62, + 0x34, 0xfc, 0x94, 0x7b, 0xcf, 0xa1, 0xa2, 0x87, 0x4f, 0x41, 0x23, 0xdb, 0x03, 0xb7, 0x07, 0xd1, + 0x58, 0x94, 0x7a, 0x2c, 0xa4, 0x1b, 0x33, 0x9b, 0x15, 0x0d, 0xdf, 0x84, 0xa5, 0x31, 0x0d, 0x99, + 0x21, 0xc9, 0x90, 0x78, 0x7e, 0xb8, 0x1d, 0xb3, 0xa9, 0xc7, 0x8c, 0xe7, 0x61, 0xcf, 0x57, 0x81, + 0xef, 0xc8, 0x78, 0x0f, 0x19, 0x92, 0x39, 0xbe, 0x0e, 0xa1, 0x56, 0xe4, 0xe1, 0x20, 0xea, 0xfa, + 0x54, 0x36, 0x11, 0x4f, 0xa8, 0xf5, 0x0e, 0xa1, 0x4d, 0x89, 0x10, 0xd4, 0x4c, 0x31, 0x71, 0x76, + 0xcc, 0x0a, 0x42, 0x3f, 0xf0, 0x23, 0x62, 0x71, 0x5f, 0x21, 0x1a, 0x56, 0xa5, 0x62, 0x54, 0xc2, + 0x6c, 0x57, 0x90, 0xb0, 0x6d, 0x72, 0x5c, 0x0f, 0x2c, 0x5a, 0x71, 0xc2, 0x5e, 0xba, 0x87, 0xda, + 0x50, 0x0f, 0x1b, 0x82, 0x64, 0xb4, 0x87, 0xc0, 0xf7, 0x5d, 0x2b, 0xb2, 0xbb, 0xa4, 0xdd, 0x77, + 0x33, 0x3c, 0x4c, 0x27, 0x3d, 0xec, 0xfa, 0xbe, 0xdb, 0x94, 0x24, 0x71, 0x0f, 0xc6, 0xaf, 0x6a, + 0x50, 0x4d, 0x15, 0xcd, 0xb1, 0x73, 0x2b, 0xf7, 0x09, 0xa2, 0xc6, 0x4e, 0x2e, 0xc3, 0xe4, 0xdc, + 0x9a, 0xb8, 0x46, 0x13, 0x68, 0xe2, 0xf5, 0xdf, 0x80, 0x2a, 0x4f, 0x42, 0xc8, 0x56, 0xb9, 0xa1, + 0x56, 0xc9, 0xd2, 0x32, 0x21, 0x8a, 0xff, 0x17, 0x55, 0xbd, 0xe2, 0x2c, 0x67, 0xfc, 0xa7, 0x06, + 0xd3, 0x99, 0xe2, 0xbd, 0x09, 0x39, 0xf9, 0x2c, 0xd4, 0x53, 0x9c, 0x58, 0x87, 0xeb, 0x92, 0x99, + 0x85, 0x31, 0xcc, 0x3c, 0x5a, 0x37, 0x6b, 0x51, 0x7a, 0xd5, 0x7f, 0x0a, 0x6a, 0xdc, 0xbb, 0xa8, + 0x31, 0xf3, 0x43, 0xf1, 0x38, 0x8f, 0x12, 0xe5, 0xa0, 0xd5, 0xa3, 0xe4, 0x83, 0x8d, 0x9a, 0xe2, + 0x35, 0x29, 0x0f, 0x5d, 0x18, 0xc3, 0x2e, 0x1b, 0x95, 0xa6, 0xbe, 0x8c, 0x0f, 0x4a, 0x50, 0x4d, + 0xf5, 0x8c, 0x5e, 0x87, 0xc5, 0x88, 0xfa, 0x21, 0xb1, 0xf6, 0x30, 0xb5, 0xbb, 0xe9, 0xd9, 0x14, + 0xfe, 0x67, 0x8e, 0x63, 0xf9, 0x7d, 0x60, 0x62, 0x09, 0x6f, 0x72, 0x0f, 0xc4, 0x4d, 0x30, 0x12, + 0xfb, 0x48, 0xdc, 0x4a, 0xb8, 0x94, 0x79, 0x89, 0x6e, 0xf2, 0x2d, 0x44, 0x35, 0x5b, 0x85, 0xd9, + 0x80, 0x79, 0x19, 0xfe, 0xb0, 0xb9, 0x23, 0x1b, 0xc8, 0xf0, 0x4f, 0x22, 0xb6, 0xfd, 0x8e, 0xa0, + 0xdd, 0x80, 0xab, 0x21, 0xde, 0xa7, 0x56, 0x7b, 0xcf, 0x12, 0x5a, 0x72, 0x09, 0x6e, 0x93, 0x30, + 0x3d, 0x94, 0x70, 0x25, 0xcb, 0x8c, 0x6c, 0x73, 0x8f, 0xcb, 0xb4, 0xcd, 0x69, 0x92, 0x01, 0xd7, + 0x61, 0x51, 0x75, 0xa2, 0x52, 0x60, 0xb2, 0xad, 0xdc, 0x82, 0x44, 0xdb, 0xa6, 0x48, 0x87, 0x89, + 0x36, 0x9f, 0x87, 0xcb, 0xd9, 0x81, 0x7b, 0xa4, 0x47, 0xd9, 0xe1, 0x51, 0xb6, 0x14, 0x4e, 0xa4, + 0x91, 0x1a, 0xf5, 0x81, 0x24, 0x10, 0xed, 0x6f, 0x80, 0x3c, 0xf7, 0xa4, 0x46, 0x13, 0x0e, 0x44, + 0xa6, 0x55, 0xe2, 0x91, 0x5e, 0x87, 0x45, 0x1c, 0x04, 0xee, 0x60, 0x54, 0xf5, 0xc2, 0x8d, 0xcf, + 0x71, 0xec, 0x90, 0xea, 0x5f, 0x82, 0x19, 0xd1, 0x28, 0xe9, 0xbd, 0x22, 0xdf, 0x21, 0x32, 0xf0, + 0x68, 0xe7, 0xbd, 0x3e, 0x25, 0xc7, 0xe2, 0xd1, 0x62, 0xda, 0xc5, 0x88, 0xce, 0x1f, 0x30, 0x24, + 0x3b, 0x43, 0xc7, 0x2b, 0x5c, 0x34, 0x7a, 0x9c, 0xca, 0xa5, 0x97, 0xe1, 0x44, 0x63, 0x35, 0xfe, + 0x1a, 0x2c, 0xa4, 0x7b, 0x38, 0xc2, 0x6e, 0xc6, 0xbb, 0xa0, 0xa4, 0xe5, 0xbb, 0xd8, 0x15, 0x4d, + 0x3e, 0x0b, 0xcb, 0xe9, 0x26, 0x43, 0xea, 0x16, 0x3e, 0x65, 0x29, 0x69, 0x37, 0xa2, 0x6d, 0x77, + 0x58, 0x7b, 0x22, 0x35, 0x58, 0x77, 0xb3, 0x8a, 0x7b, 0x11, 0xa6, 0x55, 0xf8, 0x23, 0xc8, 0x64, + 0x4a, 0x50, 0x02, 0x05, 0x11, 0xdb, 0x22, 0xbb, 0xa1, 0x4f, 0x69, 0x3c, 0xbe, 0x2e, 0xb7, 0x48, + 0x09, 0x15, 0x64, 0x3f, 0x0b, 0x97, 0x86, 0x1f, 0xf9, 0xa5, 0x19, 0x98, 0x95, 0x91, 0xd4, 0xf0, + 0x33, 0x75, 0xe5, 0x06, 0xdf, 0x83, 0x29, 0x71, 0x09, 0x9e, 0xd4, 0xe2, 0x6a, 0x4f, 0xa8, 0x46, + 0x3e, 0x65, 0xad, 0x98, 0xf1, 0x81, 0x06, 0x65, 0xf5, 0x8c, 0x07, 0x5d, 0x82, 0x9c, 0x1f, 0xc8, + 0x27, 0xee, 0x99, 0x1c, 0x50, 0xce, 0x0f, 0x4e, 0x5d, 0x7d, 0x96, 0x09, 0xff, 0x0b, 0xa7, 0x08, + 0xff, 0x8d, 0x1f, 0xe7, 0xa0, 0xf2, 0xe0, 0xd0, 0xb6, 0xf9, 0x74, 0xa1, 0xab, 0x99, 0x97, 0xf6, + 0x19, 0x36, 0xc4, 0x7b, 0xfa, 0x13, 0xee, 0xa1, 0x2e, 0x8d, 0xbc, 0x2a, 0x4f, 0xbd, 0x4e, 0xbb, + 0x0a, 0xd5, 0xa8, 0xeb, 0x87, 0xd4, 0x4a, 0xbd, 0x2b, 0x37, 0x81, 0x83, 0xf8, 0x6f, 0x18, 0xb0, + 0x38, 0xa9, 0x8b, 0x23, 0xcb, 0x3f, 0x24, 0xa1, 0x8b, 0x79, 0x08, 0xa2, 0x5e, 0x79, 0xca, 0x0a, + 0xb1, 0x85, 0x2e, 0x8e, 0x76, 0x62, 0xac, 0x7a, 0x6a, 0x81, 0x56, 0xa0, 0xc6, 0xda, 0x75, 0x6c, + 0x6b, 0x9f, 0xbf, 0xe6, 0x17, 0x15, 0x12, 0xd0, 0xc5, 0xd1, 0x5d, 0xfb, 0x0e, 0x7f, 0xce, 0x7f, + 0x11, 0xca, 0x31, 0x56, 0xac, 0xed, 0x52, 0x47, 0xa2, 0x3e, 0x02, 0x75, 0x17, 0x47, 0xfc, 0xd8, + 0xea, 0x75, 0x78, 0x42, 0x4d, 0x2c, 0xe6, 0x1a, 0x83, 0x6e, 0x70, 0x20, 0xcf, 0x0d, 0x2c, 0xc5, + 0x81, 0x1b, 0xf5, 0xad, 0x54, 0x0b, 0xb9, 0x9a, 0xe7, 0x15, 0xba, 0xe5, 0x6f, 0xc7, 0x0d, 0x8d, + 0xcf, 0x09, 0xc5, 0x0a, 0xf1, 0x4e, 0x38, 0xc4, 0x8d, 0xfd, 0x89, 0x02, 0xe3, 0xdb, 0x79, 0x28, + 0xb3, 0xe6, 0x3c, 0x23, 0xf9, 0x2c, 0xd3, 0x92, 0xca, 0x90, 0xe4, 0xb3, 0x19, 0x92, 0x27, 0xce, + 0xc9, 0x68, 0xed, 0xe2, 0x69, 0x7e, 0x12, 0x23, 0x9d, 0xee, 0x2c, 0x0d, 0xa7, 0x3b, 0x4f, 0x9b, + 0x97, 0x1c, 0xca, 0x39, 0x56, 0x46, 0x7f, 0x60, 0xe6, 0x2a, 0x54, 0xe3, 0x47, 0xc2, 0x54, 0x64, + 0x25, 0x0b, 0x26, 0x28, 0x50, 0x2b, 0x1a, 0x33, 0xb9, 0xd5, 0xa7, 0x9b, 0xdc, 0xda, 0x09, 0x93, + 0xfb, 0x35, 0x4d, 0x4c, 0x0f, 0x3f, 0xfc, 0xa8, 0x13, 0x87, 0x36, 0xe6, 0x2e, 0x8c, 0xdf, 0xd5, + 0x8b, 0x13, 0xc7, 0x2a, 0x4c, 0x71, 0xaf, 0xa9, 0x2e, 0xe5, 0x51, 0x86, 0x90, 0x2f, 0x40, 0x53, + 0x52, 0x30, 0x5a, 0xf9, 0x3b, 0x0b, 0xf9, 0x31, 0xb4, 0x7c, 0x7a, 0xd4, 0x6f, 0x2f, 0x18, 0xaf, + 0x43, 0x49, 0xbe, 0xcc, 0xe0, 0x33, 0x76, 0xec, 0x49, 0x0b, 0x63, 0xff, 0xa2, 0x45, 0x98, 0x8a, + 0xf8, 0x2b, 0x65, 0x69, 0x17, 0xf2, 0xcb, 0x78, 0x8b, 0x67, 0x6c, 0xf9, 0xf5, 0x70, 0xb6, 0x22, + 0x41, 0x7b, 0x7c, 0x3d, 0x4e, 0x2e, 0x53, 0x8f, 0xf3, 0x17, 0x1a, 0x80, 0xd8, 0x51, 0xf8, 0xd0, + 0x27, 0xde, 0xee, 0x2d, 0x41, 0x29, 0x20, 0x24, 0x64, 0x28, 0xc9, 0x06, 0xfb, 0xdc, 0x6a, 0xc7, + 0x97, 0x73, 0xf9, 0xd4, 0xe5, 0xdc, 0xf0, 0x55, 0x60, 0xe1, 0x94, 0x57, 0x81, 0xaf, 0xc9, 0xf3, + 0x24, 0x93, 0x90, 0xc8, 0x14, 0x6f, 0xa2, 0x37, 0x16, 0xcc, 0x37, 0x19, 0x46, 0x9c, 0x31, 0xf9, + 0xbf, 0xc6, 0x16, 0x54, 0x62, 0xf8, 0xe8, 0x3d, 0x94, 0x36, 0xfe, 0x1e, 0x8a, 0x3f, 0xf8, 0xa0, + 0x89, 0x42, 0xf1, 0x3e, 0x69, 0x45, 0x46, 0x13, 0x90, 0x28, 0xa0, 0xe1, 0x2a, 0x51, 0x97, 0x3d, + 0xaf, 0x24, 0x25, 0x02, 0xe2, 0x01, 0x67, 0x12, 0xa6, 0x26, 0xba, 0x8b, 0xeb, 0x04, 0x50, 0x1d, + 0x72, 0x71, 0xc7, 0x39, 0x1a, 0x19, 0x5f, 0x80, 0xb9, 0x4c, 0xa7, 0xf2, 0x5e, 0xb7, 0x91, 0xed, + 0xb5, 0xf0, 0xf8, 0x0e, 0x36, 0x01, 0x35, 0x59, 0x4c, 0xd8, 0x64, 0x4c, 0x36, 0x15, 0x57, 0x6b, + 0x50, 0x61, 0x87, 0x3d, 0x5e, 0x15, 0x30, 0x6e, 0x37, 0x13, 0x55, 0x03, 0xe5, 0x03, 0xf9, 0x9f, + 0xb1, 0x06, 0x73, 0x99, 0x5e, 0x24, 0x1b, 0x29, 0x5d, 0x68, 0x19, 0x5d, 0xd8, 0xbc, 0xd2, 0xee, + 0x2e, 0x61, 0x06, 0xd4, 0x6a, 0x6d, 0x9f, 0x4f, 0xd5, 0xfc, 0xd7, 0x35, 0x5e, 0xfd, 0x96, 0x1a, + 0xe5, 0x1c, 0x6e, 0xbd, 0x93, 0xe7, 0xf6, 0xdc, 0xff, 0x9d, 0x58, 0x37, 0xff, 0xf7, 0xa2, 0xc0, + 0x7c, 0xe3, 0x66, 0xf3, 0x3c, 0x0b, 0xcc, 0x3f, 0x0e, 0x28, 0x08, 0xc9, 0xa1, 0xe3, 0xf7, 0xa3, + 0xd4, 0x2f, 0x23, 0x08, 0x5e, 0x74, 0x85, 0x89, 0x7f, 0x17, 0xe1, 0x3a, 0xd4, 0x63, 0x6a, 0xd1, + 0x99, 0x78, 0x58, 0x37, 0xad, 0xa0, 0x8f, 0x52, 0x55, 0xeb, 0x53, 0xc3, 0x55, 0xeb, 0xa5, 0x58, + 0x72, 0xe3, 0xfb, 0xa2, 0xca, 0x96, 0x0b, 0x77, 0xd6, 0x7a, 0x6e, 0x40, 0x29, 0xea, 0xdb, 0x36, + 0x91, 0xf5, 0x22, 0x65, 0x53, 0x7d, 0x9e, 0x8b, 0xb0, 0xc6, 0x26, 0x2c, 0xde, 0x25, 0x54, 0x45, + 0x79, 0x7c, 0x01, 0x3e, 0xfd, 0x7c, 0x19, 0xdf, 0xd4, 0x60, 0x69, 0xa4, 0x9b, 0xb3, 0xd6, 0xcc, + 0x27, 0x98, 0xf3, 0xa5, 0x7c, 0x0b, 0xcc, 0x9f, 0x98, 0x54, 0x57, 0x64, 0xc6, 0x5d, 0xb8, 0x98, + 0xe2, 0xea, 0x9e, 0xc3, 0x4e, 0x84, 0x93, 0x54, 0xd5, 0x18, 0xdf, 0xd2, 0x60, 0x79, 0x5c, 0x4f, + 0x3f, 0x79, 0x11, 0xff, 0x52, 0xd4, 0x2d, 0x6f, 0xf8, 0xf2, 0x34, 0xe0, 0x87, 0x13, 0x16, 0xa1, + 0xda, 0x7e, 0x10, 0x8a, 0xbb, 0x69, 0xc1, 0x51, 0x99, 0x01, 0xf8, 0x95, 0x34, 0x3f, 0x17, 0x06, + 0xa1, 0x4a, 0xbe, 0x59, 0x21, 0x79, 0x5f, 0x7a, 0x9e, 0x3a, 0x83, 0x27, 0x2f, 0xa7, 0x52, 0xd5, + 0x57, 0x85, 0x27, 0x55, 0x04, 0x23, 0x99, 0x71, 0x14, 0x46, 0x29, 0xd2, 0x8b, 0x7d, 0x5e, 0xf7, + 0x9c, 0x11, 0xe5, 0xac, 0x15, 0x8c, 0x52, 0x89, 0x4e, 0x35, 0xec, 0x77, 0xc4, 0x7b, 0x10, 0xbe, + 0xb7, 0x44, 0xfd, 0xde, 0x24, 0xfa, 0xfb, 0x34, 0x54, 0xb0, 0xdb, 0xf1, 0x43, 0x87, 0x76, 0x7b, + 0x7c, 0xc0, 0xfa, 0xfa, 0x72, 0x42, 0x2d, 0x3b, 0xbe, 0xa9, 0x28, 0xcc, 0x84, 0xf8, 0x69, 0x0a, + 0xd6, 0xfe, 0x58, 0xd4, 0x6c, 0x27, 0x7c, 0x9e, 0xb5, 0x72, 0x96, 0xa1, 0x6c, 0xcb, 0xce, 0xe3, + 0x33, 0x8b, 0xfc, 0x66, 0x16, 0x22, 0x52, 0xb0, 0x07, 0x87, 0xf1, 0xcf, 0x6d, 0x70, 0xc0, 0xfd, + 0x43, 0x1e, 0x7e, 0x0a, 0xa4, 0xc8, 0x5e, 0x8b, 0x18, 0x19, 0x38, 0x48, 0xa4, 0xaf, 0xbf, 0x9b, + 0x87, 0xda, 0x86, 0xdf, 0x0b, 0xb0, 0x4d, 0x05, 0x03, 0xef, 0xc1, 0x02, 0x09, 0x43, 0xcb, 0xf1, + 0x0e, 0xb1, 0xeb, 0xb4, 0xad, 0x6c, 0xc4, 0x55, 0x5d, 0xff, 0x48, 0xfa, 0x6e, 0x36, 0x6e, 0xb5, + 0x25, 0xa8, 0x9b, 0x32, 0x1a, 0xbb, 0x77, 0xc1, 0x44, 0x24, 0x1c, 0x86, 0x22, 0x17, 0x2e, 0xb3, + 0xae, 0x03, 0x59, 0x23, 0x6a, 0xc9, 0x33, 0x79, 0xec, 0x30, 0x45, 0xa2, 0x6b, 0x75, 0xec, 0x08, + 0xaa, 0xb0, 0xb4, 0xc5, 0xcf, 0xe9, 0xd2, 0x95, 0xde, 0xbb, 0x60, 0x36, 0x48, 0x38, 0x1e, 0x87, + 0x2c, 0x58, 0x62, 0xa3, 0xd9, 0xa2, 0x13, 0xcb, 0xf1, 0xac, 0x20, 0xf4, 0x3b, 0x21, 0x89, 0x22, + 0x99, 0x16, 0x7b, 0x69, 0xec, 0x40, 0xf2, 0xff, 0x2d, 0x6f, 0x57, 0x52, 0xdf, 0xbb, 0x60, 0xce, + 0x93, 0x70, 0x14, 0x8e, 0xf6, 0x61, 0x99, 0x0d, 0x40, 0x7d, 0xdf, 0xea, 0x61, 0x6f, 0x60, 0x05, + 0xc4, 0x6b, 0x3b, 0x5e, 0xc7, 0xa2, 0x38, 0x3a, 0x88, 0x64, 0x38, 0x78, 0x63, 0xec, 0x18, 0x2d, + 0xdf, 0x7f, 0x80, 0xbd, 0xc1, 0xae, 0x68, 0xd0, 0x62, 0xf4, 0xf7, 0x2e, 0x98, 0x8b, 0x24, 0x1c, + 0x87, 0xb9, 0x55, 0x92, 0x26, 0x61, 0x5c, 0x81, 0x4b, 0x27, 0x28, 0xdd, 0x78, 0x11, 0xae, 0x3d, + 0x51, 0x63, 0xc6, 0x55, 0xb8, 0x72, 0xa2, 0xb4, 0xc6, 0x35, 0xb8, 0xfa, 0x04, 0x56, 0x8d, 0xaf, + 0x8a, 0xdf, 0x35, 0x61, 0x34, 0x6a, 0x49, 0x9e, 0x18, 0x9b, 0xaf, 0xc2, 0xec, 0xd0, 0x9c, 0x3b, + 0xea, 0x9e, 0x65, 0x26, 0x48, 0x73, 0xb9, 0xd5, 0xe6, 0xc9, 0x17, 0xbf, 0x93, 0x25, 0x15, 0x77, + 0x2e, 0x75, 0x09, 0x97, 0x94, 0xc6, 0x9f, 0x8b, 0x5b, 0x59, 0xc1, 0x85, 0x5c, 0x70, 0x1f, 0xcb, + 0xe6, 0x3e, 0x16, 0xc6, 0x6a, 0x5f, 0x2d, 0xaa, 0x17, 0x61, 0x9a, 0x9d, 0xc9, 0x43, 0xd2, 0xc3, + 0x8e, 0xe7, 0x78, 0x1d, 0x59, 0x1d, 0xce, 0x0e, 0xea, 0xa6, 0x82, 0xa1, 0x35, 0x5e, 0xa8, 0xc0, + 0xda, 0x92, 0xf4, 0x62, 0x10, 0x5e, 0x6a, 0x36, 0x46, 0x35, 0x53, 0xb2, 0x26, 0xf4, 0xd9, 0x57, + 0xa4, 0x33, 0x31, 0xe2, 0x36, 0x3f, 0x9a, 0xac, 0xbe, 0x0d, 0x17, 0x1f, 0xfb, 0xb3, 0x83, 0x68, + 0x1e, 0xf4, 0xe4, 0xeb, 0xa1, 0x1f, 0xf6, 0xb0, 0xab, 0x5f, 0x40, 0x4b, 0x30, 0x97, 0x40, 0xef, + 0xf8, 0xa1, 0xcd, 0x2b, 0xc6, 0x75, 0x6d, 0xd5, 0x85, 0xcb, 0x27, 0xfd, 0xce, 0x20, 0xeb, 0x4e, + 0xd6, 0x63, 0xf7, 0x5d, 0x1a, 0x77, 0xb7, 0x02, 0x97, 0x13, 0xe8, 0xf6, 0xc8, 0xcf, 0x05, 0x8a, + 0x9a, 0x80, 0x84, 0x42, 0x5c, 0xf5, 0xea, 0xb9, 0xd5, 0x97, 0x01, 0x92, 0x02, 0x30, 0x34, 0x05, + 0xb9, 0x47, 0xaf, 0xe9, 0x17, 0x50, 0x05, 0x8a, 0x8f, 0x5e, 0x6b, 0xb5, 0xb6, 0x75, 0x8d, 0x83, + 0xd6, 0xf5, 0xdc, 0xea, 0xc7, 0x00, 0x92, 0x42, 0x45, 0x04, 0x30, 0x15, 0x0f, 0x5d, 0x82, 0xfc, + 0xb6, 0x7f, 0xa4, 0x6b, 0xa8, 0x0c, 0x85, 0x7b, 0x4e, 0xa7, 0xab, 0xe7, 0x56, 0x5f, 0x85, 0x7a, + 0xb6, 0x3a, 0x91, 0x75, 0xd3, 0xdc, 0xd2, 0x2f, 0xb0, 0xbf, 0xe6, 0x86, 0xae, 0xf1, 0xba, 0x83, + 0x0d, 0x51, 0x77, 0xd0, 0xd4, 0x73, 0xab, 0x8f, 0xa0, 0x9a, 0xaa, 0x74, 0x63, 0xbc, 0x3e, 0xf4, + 0xe9, 0x4d, 0xd7, 0xf5, 0x8f, 0x48, 0x7b, 0xc7, 0x63, 0x60, 0xa1, 0xb2, 0x18, 0x74, 0xd3, 0xed, + 0xf9, 0x11, 0xe5, 0x08, 0x0d, 0x35, 0x60, 0x3e, 0x85, 0xe0, 0x55, 0x0a, 0x1c, 0x93, 0x5b, 0xb5, + 0x21, 0xb7, 0x13, 0x30, 0x0e, 0x77, 0xfb, 0x54, 0xb0, 0xba, 0x49, 0x5c, 0xc1, 0x2a, 0x57, 0x77, + 0x0e, 0xd5, 0xa0, 0xac, 0x72, 0x3b, 0x7a, 0x9e, 0xc9, 0xb5, 0xe5, 0x45, 0x24, 0xa4, 0x7a, 0x01, + 0xcd, 0xc1, 0xcc, 0xd0, 0x44, 0xe8, 0x45, 0x84, 0xa0, 0xce, 0xb9, 0x56, 0xcb, 0x30, 0xd2, 0xa7, + 0x56, 0xd7, 0xa0, 0x12, 0xa7, 0xba, 0x58, 0xcf, 0x0f, 0x7d, 0x8f, 0x08, 0x25, 0x72, 0x12, 0x5d, + 0x63, 0x83, 0xa8, 0x06, 0x42, 0x3b, 0xd9, 0x1f, 0x92, 0x65, 0x7c, 0xed, 0xec, 0xef, 0xeb, 0x17, + 0x58, 0xeb, 0x3b, 0x98, 0x37, 0x01, 0x98, 0x6a, 0xd2, 0x90, 0x4d, 0x5d, 0x6e, 0xf5, 0x77, 0x34, + 0x98, 0x92, 0xbf, 0x26, 0xcb, 0x7b, 0x12, 0xff, 0xeb, 0x17, 0xd0, 0x02, 0xcc, 0xb6, 0x5a, 0xdb, + 0xa2, 0x92, 0x21, 0x96, 0x82, 0xeb, 0x83, 0xa7, 0x6d, 0xe5, 0x90, 0x31, 0x26, 0xc7, 0x1a, 0x3c, + 0x88, 0x4b, 0x0f, 0x9a, 0xbb, 0xfd, 0xa8, 0x4b, 0xda, 0x7a, 0x9e, 0x59, 0x4f, 0xdc, 0xcf, 0x98, + 0x5f, 0x04, 0xd4, 0x0b, 0xe8, 0x22, 0x2c, 0xa4, 0xbb, 0xdc, 0xf4, 0x1f, 0xfa, 0xb4, 0xeb, 0x78, + 0x1d, 0xbd, 0xb8, 0x7a, 0x1d, 0x4a, 0xb7, 0x8f, 0x69, 0x88, 0x77, 0x02, 0x21, 0xbc, 0x1f, 0xe8, + 0x17, 0x90, 0x0e, 0x35, 0x76, 0xd0, 0xdd, 0x71, 0xdb, 0x3c, 0x06, 0xd6, 0xb5, 0x55, 0x03, 0x66, + 0x47, 0x76, 0x69, 0x66, 0x06, 0x1b, 0xa1, 0xfd, 0xc9, 0x37, 0xac, 0x9f, 0xf3, 0x43, 0xfd, 0xc2, + 0xad, 0x97, 0xfe, 0xee, 0xf7, 0xcb, 0xda, 0xf7, 0x3f, 0x7c, 0x41, 0xfb, 0xd1, 0x87, 0x2f, 0x68, + 0xff, 0xf4, 0xe1, 0x0b, 0xda, 0x6f, 0xff, 0xcb, 0x0b, 0x17, 0x40, 0xf7, 0xc3, 0xce, 0x1a, 0x75, + 0x0e, 0x0e, 0xd7, 0x0e, 0x0e, 0xf9, 0xef, 0x9a, 0xef, 0x4d, 0xf1, 0x3f, 0xaf, 0xff, 0x6f, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xc5, 0x41, 0x55, 0x5e, 0x5b, 0x5d, 0x00, 0x00, } func (m *GetRequest) Marshal() (dAtA []byte, err error) { @@ -15903,6 +16007,58 @@ func (m *TimeDetail) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *TimeDetailV2) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TimeDetailV2) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TimeDetailV2) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.TotalRpcWallTimeNs != 0 { + i = encodeVarintKvrpcpb(dAtA, i, uint64(m.TotalRpcWallTimeNs)) + i-- + dAtA[i] = 0x28 + } + if m.KvReadWallTimeNs != 0 { + i = encodeVarintKvrpcpb(dAtA, i, uint64(m.KvReadWallTimeNs)) + i-- + dAtA[i] = 0x20 + } + if m.ProcessSuspendWallTimeNs != 0 { + i = encodeVarintKvrpcpb(dAtA, i, uint64(m.ProcessSuspendWallTimeNs)) + i-- + dAtA[i] = 0x18 + } + if m.ProcessWallTimeNs != 0 { + i = encodeVarintKvrpcpb(dAtA, i, uint64(m.ProcessWallTimeNs)) + i-- + dAtA[i] = 0x10 + } + if m.WaitWallTimeNs != 0 { + i = encodeVarintKvrpcpb(dAtA, i, uint64(m.WaitWallTimeNs)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *ScanInfo) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -16175,6 +16331,18 @@ func (m *ExecDetailsV2) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.TimeDetailV2 != nil { + { + size, err := m.TimeDetailV2.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintKvrpcpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } if m.WriteDetail != nil { { size, err := m.WriteDetail.MarshalToSizedBuffer(dAtA[:i]) @@ -16592,20 +16760,20 @@ func (m *MvccLock) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x58 } if len(m.RollbackTs) > 0 { - dAtA129 := make([]byte, len(m.RollbackTs)*10) - var j128 int + dAtA130 := make([]byte, len(m.RollbackTs)*10) + var j129 int for _, num := range m.RollbackTs { for num >= 1<<7 { - dAtA129[j128] = uint8(uint64(num)&0x7f | 0x80) + dAtA130[j129] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j128++ + j129++ } - dAtA129[j128] = uint8(num) - j128++ + dAtA130[j129] = uint8(num) + j129++ } - i -= j128 - copy(dAtA[i:], dAtA129[:j128]) - i = encodeVarintKvrpcpb(dAtA, i, uint64(j128)) + i -= j129 + copy(dAtA[i:], dAtA130[:j129]) + i = encodeVarintKvrpcpb(dAtA, i, uint64(j129)) i-- dAtA[i] = 0x52 } @@ -16994,20 +17162,20 @@ func (m *CheckLeaderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x10 } if len(m.Regions) > 0 { - dAtA134 := make([]byte, len(m.Regions)*10) - var j133 int + dAtA135 := make([]byte, len(m.Regions)*10) + var j134 int for _, num := range m.Regions { for num >= 1<<7 { - dAtA134[j133] = uint8(uint64(num)&0x7f | 0x80) + dAtA135[j134] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j133++ + j134++ } - dAtA134[j133] = uint8(num) - j133++ + dAtA135[j134] = uint8(num) + j134++ } - i -= j133 - copy(dAtA[i:], dAtA134[:j133]) - i = encodeVarintKvrpcpb(dAtA, i, uint64(j133)) + i -= j134 + copy(dAtA[i:], dAtA135[:j134]) + i = encodeVarintKvrpcpb(dAtA, i, uint64(j134)) i-- dAtA[i] = 0xa } @@ -20564,6 +20732,33 @@ func (m *TimeDetail) Size() (n int) { return n } +func (m *TimeDetailV2) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.WaitWallTimeNs != 0 { + n += 1 + sovKvrpcpb(uint64(m.WaitWallTimeNs)) + } + if m.ProcessWallTimeNs != 0 { + n += 1 + sovKvrpcpb(uint64(m.ProcessWallTimeNs)) + } + if m.ProcessSuspendWallTimeNs != 0 { + n += 1 + sovKvrpcpb(uint64(m.ProcessSuspendWallTimeNs)) + } + if m.KvReadWallTimeNs != 0 { + n += 1 + sovKvrpcpb(uint64(m.KvReadWallTimeNs)) + } + if m.TotalRpcWallTimeNs != 0 { + n += 1 + sovKvrpcpb(uint64(m.TotalRpcWallTimeNs)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *ScanInfo) Size() (n int) { if m == nil { return 0 @@ -20698,6 +20893,10 @@ func (m *ExecDetailsV2) Size() (n int) { l = m.WriteDetail.Size() n += 1 + l + sovKvrpcpb(uint64(l)) } + if m.TimeDetailV2 != nil { + l = m.TimeDetailV2.Size() + n += 1 + l + sovKvrpcpb(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -36578,6 +36777,152 @@ func (m *TimeDetail) Unmarshal(dAtA []byte) error { } return nil } +func (m *TimeDetailV2) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TimeDetailV2: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TimeDetailV2: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field WaitWallTimeNs", wireType) + } + m.WaitWallTimeNs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.WaitWallTimeNs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ProcessWallTimeNs", wireType) + } + m.ProcessWallTimeNs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ProcessWallTimeNs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ProcessSuspendWallTimeNs", wireType) + } + m.ProcessSuspendWallTimeNs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ProcessSuspendWallTimeNs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KvReadWallTimeNs", wireType) + } + m.KvReadWallTimeNs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.KvReadWallTimeNs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalRpcWallTimeNs", wireType) + } + m.TotalRpcWallTimeNs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TotalRpcWallTimeNs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipKvrpcpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthKvrpcpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *ScanInfo) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -37403,6 +37748,42 @@ func (m *ExecDetailsV2) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TimeDetailV2", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthKvrpcpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthKvrpcpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TimeDetailV2 == nil { + m.TimeDetailV2 = &TimeDetailV2{} + } + if err := m.TimeDetailV2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipKvrpcpb(dAtA[iNdEx:]) diff --git a/proto/kvrpcpb.proto b/proto/kvrpcpb.proto index 49354cb..0d23456 100644 --- a/proto/kvrpcpb.proto +++ b/proto/kvrpcpb.proto @@ -1021,6 +1021,24 @@ message TimeDetail { uint64 total_rpc_wall_time_ns = 4; } +message TimeDetailV2 { + // Off-cpu wall time elapsed in TiKV side. Usually this includes queue waiting time and + // other kind of waitings in series. (Wait time in the raftstore is not included.) + uint64 wait_wall_time_ns = 1; + // Off-cpu and on-cpu wall time elapsed to actually process the request payload. It does not + // include `wait_wall_time` and `suspend_wall_time`. + // This field is very close to the CPU time in most cases. Some wait time spend in RocksDB + // cannot be excluded for now, like Mutex wait time, which is included in this field, so that + // this field is called wall time instead of CPU time. + uint64 process_wall_time_ns = 2; + // Cpu wall time elapsed that task is waiting in queue. + uint64 process_suspend_wall_time_ns = 3; + // KV read wall Time means the time used in key/value scan and get. + uint64 kv_read_wall_time_ns = 4; + // Total wall clock time spent on this RPC in TiKV . + uint64 total_rpc_wall_time_ns = 5; +} + message ScanInfo { int64 total = 1; int64 processed = 2; @@ -1099,6 +1117,7 @@ message ExecDetails { message ExecDetailsV2 { // Available when ctx.record_time_stat = true or meet slow query. + // deprecated. Should use `time_detail_v2` instead. TimeDetail time_detail = 1; // Available when ctx.record_scan_stat = true or meet slow query. @@ -1106,6 +1125,8 @@ message ExecDetailsV2 { // Raftstore writing durations of the request. Only available for some write requests. WriteDetail write_detail = 3; + // Available when ctx.record_time_stat = true or meet slow query. + TimeDetailV2 time_detail_v2 = 4; } message WriteDetail { diff --git a/scripts/proto.lock b/scripts/proto.lock index f6ebdb2..a493006 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -800,6 +800,11 @@ "id": 15, "name": "session_token", "type": "string" + }, + { + "id": 16, + "name": "provider", + "type": "string" } ] }, @@ -3859,6 +3864,192 @@ "type": "S3LockResult" } ] + }, + { + "name": "DisaggTaskMeta", + "fields": [ + { + "id": 1, + "name": "start_ts", + "type": "uint64" + }, + { + "id": 2, + "name": "query_ts", + "type": "uint64" + }, + { + "id": 3, + "name": "server_id", + "type": "uint64" + }, + { + "id": 4, + "name": "local_query_id", + "type": "uint64" + }, + { + "id": 5, + "name": "task_id", + "type": "int64" + }, + { + "id": 6, + "name": "executor_id", + "type": "string" + } + ] + }, + { + "name": "DisaggReadError", + "fields": [ + { + "id": 1, + "name": "code", + "type": "int32" + }, + { + "id": 2, + "name": "msg", + "type": "string" + } + ] + }, + { + "name": "EstablishDisaggTaskRequest", + "fields": [ + { + "id": 1, + "name": "meta", + "type": "DisaggTaskMeta" + }, + { + "id": 2, + "name": "address", + "type": "string" + }, + { + "id": 3, + "name": "timeout_s", + "type": "int64" + }, + { + "id": 4, + "name": "regions", + "type": "coprocessor.RegionInfo", + "is_repeated": true + }, + { + "id": 5, + "name": "schema_ver", + "type": "int64" + }, + { + "id": 6, + "name": "table_regions", + "type": "coprocessor.TableRegions", + "is_repeated": true + }, + { + "id": 7, + "name": "encoded_plan", + "type": "bytes" + } + ] + }, + { + "name": "EstablishDisaggTaskResponse", + "fields": [ + { + "id": 1, + "name": "error", + "type": "DisaggReadError" + }, + { + "id": 2, + "name": "retry_regions", + "type": "metapb.Region", + "is_repeated": true + }, + { + "id": 3, + "name": "store_id", + "type": "uint64" + }, + { + "id": 4, + "name": "snapshot_id", + "type": "DisaggTaskMeta" + }, + { + "id": 5, + "name": "tables", + "type": "bytes", + "is_repeated": true + } + ] + }, + { + "name": "FetchDisaggPagesRequest", + "fields": [ + { + "id": 1, + "name": "snapshot_id", + "type": "DisaggTaskMeta" + }, + { + "id": 2, + "name": "table_id", + "type": "int64" + }, + { + "id": 3, + "name": "segment_id", + "type": "uint64" + }, + { + "id": 4, + "name": "page_ids", + "type": "uint64", + "is_repeated": true + } + ] + }, + { + "name": "PagesPacket", + "fields": [ + { + "id": 1, + "name": "error", + "type": "DisaggReadError" + }, + { + "id": 2, + "name": "pages", + "type": "bytes", + "is_repeated": true + }, + { + "id": 3, + "name": "chunks", + "type": "bytes", + "is_repeated": true + }, + { + "id": 4, + "name": "summaries", + "type": "bytes", + "is_repeated": true + } + ] + } + ], + "imports": [ + { + "path": "coprocessor.proto" + }, + { + "path": "metapb.proto" } ], "package": { @@ -9133,6 +9324,36 @@ } ] }, + { + "name": "TimeDetailV2", + "fields": [ + { + "id": 1, + "name": "wait_wall_time_ns", + "type": "uint64" + }, + { + "id": 2, + "name": "process_wall_time_ns", + "type": "uint64" + }, + { + "id": 3, + "name": "process_suspend_wall_time_ns", + "type": "uint64" + }, + { + "id": 4, + "name": "kv_read_wall_time_ns", + "type": "uint64" + }, + { + "id": 5, + "name": "total_rpc_wall_time_ns", + "type": "uint64" + } + ] + }, { "name": "ScanInfo", "fields": [ @@ -9279,6 +9500,11 @@ "id": 3, "name": "write_detail", "type": "WriteDetail" + }, + { + "id": 4, + "name": "time_detail_v2", + "type": "TimeDetailV2" } ] }, @@ -17374,6 +17600,17 @@ "name": "tryMarkDelete", "in_type": "disaggregated.TryMarkDeleteRequest", "out_type": "disaggregated.TryMarkDeleteResponse" + }, + { + "name": "EstablishDisaggTask", + "in_type": "disaggregated.EstablishDisaggTaskRequest", + "out_type": "disaggregated.EstablishDisaggTaskResponse" + }, + { + "name": "FetchDisaggPages", + "in_type": "disaggregated.FetchDisaggPagesRequest", + "out_type": "disaggregated.PagesPacket", + "out_streamed": true } ] } -- Gitee From 02fc19e8abc41245e286d4a70f23e5139e3a33fe Mon Sep 17 00:00:00 2001 From: Jay Date: Wed, 8 Mar 2023 17:11:50 +0800 Subject: [PATCH 12/44] importer: add missing region id for compact request (#1066) Signed-off-by: Jay Lee --- pkg/import_sstpb/import_sstpb.pb.go | 322 +++++++++++++++++----------- proto/import_sstpb.proto | 1 + scripts/proto.lock | 5 + 3 files changed, 197 insertions(+), 131 deletions(-) diff --git a/pkg/import_sstpb/import_sstpb.pb.go b/pkg/import_sstpb/import_sstpb.pb.go index a30993b..7a70c17 100644 --- a/pkg/import_sstpb/import_sstpb.pb.go +++ b/pkg/import_sstpb/import_sstpb.pb.go @@ -828,11 +828,12 @@ type CompactRequest struct { // Compact files in the range and above the output level. // Compact all files if the range is not specified. // Compact all files to the bottommost level if the output level is -1. - Range *Range `protobuf:"bytes,1,opt,name=range,proto3" json:"range,omitempty"` - OutputLevel int32 `protobuf:"varint,2,opt,name=output_level,json=outputLevel,proto3" json:"output_level,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Range *Range `protobuf:"bytes,1,opt,name=range,proto3" json:"range,omitempty"` + OutputLevel int32 `protobuf:"varint,2,opt,name=output_level,json=outputLevel,proto3" json:"output_level,omitempty"` + Context *kvrpcpb.Context `protobuf:"bytes,3,opt,name=context,proto3" json:"context,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *CompactRequest) Reset() { *m = CompactRequest{} } @@ -882,6 +883,13 @@ func (m *CompactRequest) GetOutputLevel() int32 { return 0 } +func (m *CompactRequest) GetContext() *kvrpcpb.Context { + if m != nil { + return m.Context + } + return nil +} + type CompactResponse struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2439,132 +2447,132 @@ func init() { func init() { proto.RegisterFile("import_sstpb.proto", fileDescriptor_4d076b7935cfab6b) } var fileDescriptor_4d076b7935cfab6b = []byte{ - // 1987 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4b, 0x6f, 0x1c, 0x4b, - 0xf5, 0x77, 0xcf, 0x7b, 0xce, 0x3c, 0x53, 0xf1, 0x75, 0x3a, 0x93, 0xc4, 0x76, 0xfa, 0x9f, 0x7b, - 0xff, 0x8e, 0x03, 0x76, 0x70, 0x20, 0x0b, 0x16, 0x44, 0xf1, 0x83, 0x1b, 0xe3, 0xf8, 0xda, 0xf4, - 0x98, 0xb0, 0x40, 0xa2, 0xd5, 0xee, 0x29, 0x8f, 0x9b, 0xe9, 0xe9, 0x6e, 0xba, 0x6a, 0x66, 0x32, - 0x12, 0xe2, 0x73, 0x20, 0x36, 0x88, 0x05, 0x12, 0x62, 0x8d, 0x84, 0xf8, 0x06, 0x77, 0xc9, 0x92, - 0x15, 0x42, 0xe1, 0x8b, 0xa0, 0x3a, 0x55, 0x3d, 0xd3, 0xdd, 0x19, 0xdb, 0x89, 0x25, 0x56, 0x5d, - 0x75, 0xea, 0xd4, 0x39, 0xa7, 0x4e, 0x9d, 0xc7, 0xaf, 0x1a, 0x88, 0x3b, 0x0c, 0x83, 0x88, 0x5b, - 0x8c, 0xf1, 0xf0, 0x7c, 0x2b, 0x8c, 0x02, 0x1e, 0x90, 0x7a, 0x92, 0xd6, 0xa9, 0x0f, 0x29, 0xb7, - 0xe3, 0xb5, 0x4e, 0x83, 0x46, 0x51, 0x10, 0xcd, 0xa7, 0x83, 0x71, 0x14, 0x3a, 0xb3, 0xe9, 0x72, - 0x3f, 0xe8, 0x07, 0x38, 0xdc, 0x16, 0x23, 0x45, 0x6d, 0x45, 0x23, 0xc6, 0x71, 0xa8, 0x08, 0x70, - 0x3e, 0x93, 0x60, 0xbc, 0x86, 0x3b, 0xdd, 0x89, 0xcb, 0x9d, 0xcb, 0xe3, 0xa0, 0x47, 0x4d, 0xfa, - 0xeb, 0x11, 0x65, 0x9c, 0x7c, 0x07, 0x0a, 0xc3, 0xa0, 0x47, 0x75, 0x6d, 0x5d, 0xdb, 0x68, 0xee, - 0xe8, 0x5b, 0x29, 0x23, 0x13, 0xec, 0xc8, 0x65, 0x2c, 0x03, 0x49, 0x8a, 0x60, 0x61, 0xe0, 0x33, - 0x6a, 0xb4, 0xa1, 0xf9, 0x35, 0xe5, 0x09, 0xa9, 0xc6, 0x2b, 0x68, 0xcd, 0x28, 0x92, 0xe9, 0x33, - 0x15, 0x6d, 0x43, 0xd1, 0xb4, 0xfd, 0x3e, 0x25, 0xcb, 0x50, 0x64, 0xdc, 0x8e, 0x38, 0xee, 0xab, - 0x9b, 0x72, 0x42, 0xda, 0x90, 0xa7, 0x7e, 0x4f, 0xcf, 0x21, 0x4d, 0x0c, 0x8d, 0x3f, 0xe6, 0xa1, - 0xdc, 0xed, 0x9e, 0x1d, 0x53, 0x6e, 0x13, 0x02, 0x85, 0xd1, 0xc8, 0xed, 0xa9, 0x2d, 0x38, 0x26, - 0x4f, 0xa1, 0x18, 0x09, 0x81, 0xb8, 0xa7, 0xb6, 0x73, 0x37, 0xad, 0x1f, 0x75, 0x99, 0x92, 0x43, - 0xa8, 0x74, 0x22, 0xe7, 0xc5, 0x8e, 0x9e, 0x5f, 0xd7, 0x36, 0x1a, 0xa6, 0x9c, 0x90, 0x15, 0x28, - 0x79, 0xd4, 0xef, 0xf3, 0x4b, 0xbd, 0xb0, 0xae, 0x6d, 0x14, 0x4c, 0x35, 0x23, 0xf7, 0xa0, 0xec, - 0x5c, 0x58, 0xbe, 0x3d, 0xa4, 0x7a, 0x71, 0x5d, 0xdb, 0xa8, 0x9a, 0x25, 0xe7, 0xe2, 0x1b, 0x7b, - 0x48, 0xc9, 0x03, 0xa8, 0x46, 0xb4, 0xef, 0x06, 0xbe, 0xe5, 0xf6, 0xf4, 0x12, 0xee, 0xa9, 0x48, - 0xc2, 0x61, 0x8f, 0xbc, 0x84, 0xba, 0x5a, 0xa4, 0x61, 0xe0, 0x5c, 0xea, 0x65, 0x65, 0x95, 0x8a, - 0x00, 0x13, 0xd7, 0x0e, 0xc4, 0x92, 0x59, 0x8b, 0xe6, 0x13, 0xb2, 0x09, 0x77, 0xa8, 0xdf, 0xb3, - 0x06, 0x74, 0x6a, 0xd1, 0xf7, 0x8e, 0x37, 0x62, 0xee, 0x98, 0xea, 0x95, 0x75, 0x6d, 0xa3, 0x62, - 0xb6, 0xa8, 0xdf, 0x3b, 0xa2, 0xd3, 0x83, 0x98, 0x2c, 0x0c, 0xe0, 0x01, 0xb7, 0x3d, 0x6b, 0x30, - 0x66, 0x7a, 0x55, 0x1a, 0x80, 0x84, 0xa3, 0x31, 0x23, 0x6b, 0x50, 0x93, 0x8b, 0xe7, 0x53, 0x4e, - 0x99, 0x0e, 0xb8, 0x0c, 0x48, 0xda, 0x15, 0x14, 0xf2, 0x7d, 0xa8, 0xd9, 0xa1, 0x6b, 0x8d, 0x69, - 0xc4, 0xdc, 0xc0, 0xd7, 0x6b, 0x78, 0x6d, 0x77, 0xb7, 0xe2, 0x28, 0x7c, 0x7d, 0x7a, 0xf8, 0x4e, - 0x2e, 0x99, 0x60, 0x87, 0xae, 0x1a, 0x0b, 0x9d, 0x8e, 0x1b, 0x5e, 0xd2, 0xc8, 0x72, 0xc7, 0x7a, - 0x1d, 0xfd, 0x5f, 0x91, 0x84, 0xc3, 0xb1, 0xf1, 0x5b, 0xa8, 0x99, 0x74, 0x12, 0xb9, 0x9c, 0x9a, - 0x23, 0x8f, 0x92, 0x27, 0xd0, 0x0c, 0x3c, 0x79, 0x96, 0x30, 0xa2, 0x17, 0xee, 0x7b, 0x75, 0x61, - 0xf5, 0xc0, 0x13, 0x07, 0x39, 0x45, 0x9a, 0xe0, 0xf2, 0xe9, 0x24, 0xc9, 0x25, 0x6f, 0xbd, 0xee, - 0xd3, 0xc9, 0x9c, 0xeb, 0xff, 0xa0, 0x21, 0xb8, 0xb8, 0x3b, 0xa4, 0x8c, 0xdb, 0xc3, 0x10, 0xef, - 0xae, 0x80, 0x4c, 0x67, 0x31, 0xcd, 0xf8, 0x05, 0x34, 0x7e, 0x16, 0x7a, 0x81, 0xdd, 0x8b, 0x83, - 0xff, 0x19, 0x14, 0x84, 0xc3, 0x51, 0x6f, 0x6d, 0xe7, 0x8b, 0x4c, 0x4c, 0xca, 0x68, 0x7a, 0xb3, - 0x64, 0x22, 0x13, 0x59, 0x86, 0x42, 0xcf, 0xe6, 0xb6, 0x54, 0x2f, 0xa8, 0x62, 0xb6, 0x5b, 0x86, - 0xa2, 0x73, 0x39, 0xf2, 0x07, 0x22, 0x09, 0x62, 0xe1, 0x2a, 0x2d, 0x7a, 0xd0, 0x38, 0xf4, 0xfb, - 0x94, 0xf1, 0x58, 0xdd, 0x26, 0x94, 0x9d, 0xc0, 0xe7, 0xf4, 0x3d, 0x57, 0x1a, 0xdb, 0x33, 0x77, - 0xee, 0x49, 0xba, 0x19, 0x33, 0x90, 0xff, 0x87, 0x3c, 0x63, 0x5c, 0x45, 0xeb, 0x62, 0xcb, 0x4c, - 0xc1, 0x61, 0x0c, 0x80, 0x1c, 0x8f, 0x3c, 0xee, 0xde, 0x5e, 0xd5, 0x53, 0x28, 0x30, 0xc6, 0x99, - 0x9e, 0x5b, 0xcf, 0x5f, 0xad, 0x0b, 0x59, 0x8c, 0x97, 0xd0, 0x8c, 0xf5, 0xa8, 0xb4, 0x7e, 0x02, - 0x45, 0xac, 0x53, 0x4a, 0x4d, 0x73, 0x2b, 0xae, 0x5a, 0x07, 0xe2, 0x6b, 0xca, 0x45, 0xe3, 0x97, - 0xd0, 0xdc, 0x0b, 0x86, 0xa1, 0xed, 0xcc, 0x0c, 0x9c, 0xe5, 0xa3, 0x76, 0x63, 0x3e, 0x3e, 0x86, - 0x7a, 0x30, 0xe2, 0xe1, 0x88, 0x5b, 0x1e, 0x1d, 0x53, 0x0f, 0x7d, 0x52, 0x34, 0x6b, 0x92, 0xf6, - 0x56, 0x90, 0x8c, 0x3b, 0xd0, 0x9a, 0xc9, 0x57, 0xde, 0xff, 0x53, 0x1e, 0x5a, 0xfb, 0xc1, 0xc4, - 0x4f, 0xde, 0xf7, 0x77, 0x6f, 0x76, 0xea, 0x6e, 0xe1, 0xdb, 0x7f, 0xad, 0x2d, 0xa1, 0x6b, 0x45, - 0x1d, 0xc1, 0xbc, 0xae, 0x62, 0x5e, 0xe3, 0x98, 0xec, 0x8a, 0xc4, 0xc5, 0x18, 0xb6, 0xa2, 0x91, - 0x47, 0xf5, 0x06, 0xca, 0xba, 0x9f, 0x31, 0x7f, 0x1e, 0xe5, 0x4a, 0x5e, 0x2d, 0x4a, 0x04, 0xfe, - 0x2b, 0x68, 0x31, 0x1e, 0x44, 0x76, 0x9f, 0x5a, 0xe7, 0xb6, 0x33, 0x10, 0x95, 0xac, 0x89, 0x62, - 0x56, 0xb6, 0xc4, 0x7c, 0x14, 0x6e, 0x75, 0xe5, 0xf2, 0xae, 0x5c, 0x35, 0x9b, 0x2c, 0x35, 0x27, - 0x1b, 0xd0, 0x8e, 0x05, 0x38, 0xb6, 0x73, 0x49, 0x45, 0x85, 0xb9, 0x83, 0x46, 0xc6, 0x9c, 0x7b, - 0x82, 0x7c, 0xd8, 0x23, 0x1d, 0xa8, 0xba, 0xcc, 0x8a, 0xec, 0x89, 0x35, 0x18, 0xeb, 0x2d, 0xac, - 0x13, 0x65, 0x97, 0x99, 0xf6, 0xe4, 0x68, 0x4c, 0x5e, 0x40, 0x2d, 0xce, 0x55, 0xff, 0x22, 0xd0, - 0xdb, 0x68, 0x02, 0x89, 0x4d, 0xd8, 0x93, 0x59, 0xeb, 0x5f, 0x04, 0x26, 0x38, 0xb3, 0x31, 0xd9, - 0x17, 0xe7, 0x47, 0x6f, 0x5a, 0x7c, 0x1a, 0x52, 0x9d, 0x60, 0x5d, 0x78, 0x9c, 0x3e, 0x7f, 0xc6, - 0xef, 0x67, 0xd3, 0x90, 0x0a, 0x0f, 0xcc, 0x26, 0x3f, 0x29, 0x54, 0x2a, 0xed, 0xaa, 0x99, 0x1f, - 0x45, 0x9e, 0x61, 0x42, 0x11, 0x43, 0x85, 0xe8, 0x50, 0x1e, 0x52, 0xc6, 0x6c, 0x15, 0x13, 0x55, - 0x33, 0x9e, 0x92, 0x6d, 0xa8, 0x89, 0x63, 0x51, 0x4b, 0x46, 0x5a, 0x6e, 0x61, 0xa4, 0x01, 0xb2, - 0xe0, 0xd8, 0xf8, 0x9b, 0x06, 0xed, 0xb9, 0x0d, 0x2a, 0x52, 0xb7, 0x6f, 0x8e, 0x38, 0x75, 0x59, - 0x2a, 0xee, 0xee, 0x43, 0xc5, 0x65, 0x16, 0x1d, 0x86, 0x7c, 0x8a, 0x3a, 0xd1, 0x75, 0x07, 0x62, - 0x2a, 0xa2, 0x57, 0xda, 0x92, 0x5f, 0x24, 0x2b, 0x19, 0xfa, 0xf3, 0x6e, 0x52, 0x58, 0xdc, 0x4d, - 0x8a, 0xc9, 0x6e, 0x62, 0xbc, 0x82, 0x87, 0x5d, 0xca, 0x63, 0xdb, 0xbb, 0x21, 0xa5, 0xbd, 0xb7, - 0xee, 0xd0, 0x9d, 0xa5, 0xcd, 0x1a, 0xd4, 0x98, 0x20, 0x5a, 0x9e, 0xa0, 0xe2, 0x51, 0x0a, 0x26, - 0xb0, 0x19, 0x9f, 0xb1, 0x06, 0x8f, 0xae, 0x10, 0xa0, 0xf2, 0x22, 0x84, 0xc2, 0xa9, 0xed, 0x46, - 0xa2, 0x85, 0x0e, 0xe8, 0x54, 0x95, 0x5c, 0x31, 0x14, 0x96, 0x8e, 0x6d, 0x6f, 0x44, 0x55, 0x81, - 0x95, 0x13, 0xf2, 0x25, 0xe4, 0x02, 0x59, 0x4e, 0x9b, 0xd9, 0x94, 0x11, 0x72, 0xb6, 0x4e, 0x4e, - 0xcd, 0x5c, 0x10, 0x1a, 0xf7, 0x21, 0x77, 0x72, 0x4a, 0xca, 0x90, 0x3f, 0x1d, 0xf1, 0xf6, 0x12, - 0x01, 0x28, 0xed, 0x53, 0x8f, 0x72, 0xda, 0xd6, 0x8c, 0x2e, 0xc0, 0xcf, 0x45, 0xec, 0xef, 0xda, - 0xdc, 0xb9, 0xc4, 0x0e, 0x11, 0x0c, 0x87, 0x2e, 0xb7, 0x38, 0x53, 0xf6, 0x57, 0x24, 0xe1, 0x8c, - 0x91, 0x0d, 0x28, 0x86, 0xb6, 0x1b, 0xc5, 0xb5, 0x88, 0x7c, 0xac, 0xcf, 0x94, 0x0c, 0xc6, 0x18, - 0xea, 0x28, 0xf4, 0x56, 0xa5, 0xfc, 0x39, 0x14, 0xcf, 0x85, 0x31, 0x2a, 0x94, 0x32, 0x60, 0x64, - 0x6e, 0xec, 0x9b, 0x25, 0x53, 0x32, 0xce, 0xcb, 0x7c, 0x1f, 0x1a, 0x4a, 0xaf, 0x0a, 0xab, 0xa7, - 0xe9, 0x02, 0x78, 0x5d, 0x28, 0x3c, 0x83, 0xa2, 0x50, 0x7f, 0x43, 0xa5, 0x95, 0x3c, 0xa2, 0x59, - 0x99, 0xf6, 0x24, 0xe1, 0xb8, 0x36, 0xe4, 0x39, 0xf7, 0x94, 0xcb, 0xc4, 0xf0, 0xd3, 0xbd, 0x45, - 0x9a, 0x90, 0xe3, 0x4c, 0xf5, 0xc4, 0x1c, 0x67, 0xc6, 0x6f, 0xa0, 0x15, 0x0b, 0xbf, 0x95, 0x03, - 0x5f, 0xa4, 0x1d, 0xf8, 0x20, 0x9b, 0x4b, 0x93, 0x6b, 0x7d, 0xf8, 0x2b, 0x68, 0xcf, 0xb5, 0xff, - 0x8f, 0xdd, 0xf8, 0x77, 0x0d, 0x56, 0xf6, 0x47, 0xa1, 0xe7, 0x3a, 0x36, 0xa7, 0xfb, 0x94, 0x53, - 0xe7, 0x56, 0x3d, 0xf2, 0x01, 0x54, 0x11, 0x79, 0x0a, 0x1c, 0xa2, 0xf2, 0xa3, 0x82, 0x84, 0x23, - 0x3a, 0x15, 0x10, 0x50, 0x81, 0x32, 0x74, 0x71, 0xdd, 0x2c, 0x49, 0x28, 0x26, 0x2a, 0x88, 0xc0, - 0x2d, 0x81, 0xef, 0x4d, 0x31, 0xfd, 0x2b, 0x66, 0x79, 0x40, 0xa7, 0x27, 0xbe, 0x37, 0x25, 0x06, - 0x34, 0x86, 0xae, 0x6f, 0xcd, 0x53, 0x41, 0xd6, 0x81, 0xda, 0xd0, 0xf5, 0xf7, 0x54, 0x36, 0x18, - 0xc7, 0x50, 0x3a, 0x1a, 0x7f, 0x56, 0xb2, 0xa6, 0x92, 0x2b, 0x9f, 0x4e, 0x2e, 0xe3, 0x2f, 0x1a, - 0xdc, 0xfb, 0xc8, 0x15, 0xca, 0xfd, 0xdf, 0x9b, 0xe3, 0xd1, 0x6b, 0xba, 0x79, 0x0c, 0x45, 0xf1, - 0x1a, 0x9e, 0x43, 0x15, 0x61, 0x68, 0xa2, 0x26, 0x2f, 0xbc, 0x35, 0xe1, 0x02, 0xb9, 0x63, 0x33, - 0x8e, 0xd7, 0x3c, 0x5e, 0xdc, 0x72, 0x9a, 0x5b, 0x1e, 0x35, 0xce, 0xef, 0x3f, 0xe4, 0xa1, 0x74, - 0xf4, 0x2e, 0x86, 0xf3, 0xd8, 0x86, 0xb5, 0x44, 0x1b, 0x7e, 0x0c, 0x75, 0x2c, 0xd2, 0x56, 0x70, - 0x71, 0xc1, 0x28, 0x47, 0x78, 0x5a, 0x30, 0x6b, 0x48, 0x3b, 0x41, 0x52, 0xa2, 0xc4, 0xe6, 0x52, - 0x80, 0x7d, 0xb6, 0x55, 0xad, 0xd6, 0x13, 0x5b, 0xdf, 0x4a, 0x96, 0x26, 0xe4, 0x9c, 0x0b, 0xf4, - 0x5f, 0xd5, 0xcc, 0x39, 0x17, 0xc2, 0xad, 0x2e, 0xb3, 0x7a, 0x58, 0xd0, 0xd4, 0x45, 0x56, 0x5c, - 0x26, 0x0b, 0x9c, 0xb8, 0x64, 0x19, 0x1a, 0x3c, 0x86, 0xd1, 0x65, 0x9c, 0x9f, 0x31, 0xf2, 0x08, - 0x20, 0xa2, 0xb2, 0x75, 0xcd, 0x6e, 0xb8, 0xaa, 0x28, 0x67, 0x2c, 0x1d, 0x54, 0xa5, 0xab, 0x83, - 0xaa, 0x9c, 0x0a, 0xaa, 0x15, 0x28, 0xb1, 0x4b, 0x7b, 0xe7, 0x07, 0x2f, 0x11, 0xf7, 0xd7, 0x4d, - 0x35, 0x13, 0x4f, 0x03, 0x29, 0x8d, 0xf9, 0x76, 0xc8, 0x2e, 0x03, 0x34, 0x48, 0xc2, 0xfe, 0x16, - 0x2e, 0x74, 0x15, 0xfd, 0x8c, 0x91, 0x5d, 0x68, 0x3b, 0xc1, 0x30, 0x8c, 0x28, 0x13, 0xa8, 0x5d, - 0x76, 0xf2, 0x06, 0x96, 0xf8, 0x7b, 0xb3, 0xfe, 0x3f, 0x5f, 0xc7, 0xfe, 0xdd, 0x72, 0xd2, 0x04, - 0xe3, 0xaf, 0x79, 0xa8, 0xbf, 0x0e, 0x43, 0x6f, 0x1a, 0xe7, 0xd3, 0x46, 0xaa, 0x82, 0x64, 0x6f, - 0xf7, 0x9d, 0x84, 0x91, 0x58, 0x3e, 0x36, 0xe3, 0x0c, 0xae, 0x2f, 0x0c, 0x84, 0x77, 0x89, 0x04, - 0xfe, 0x08, 0x70, 0xe5, 0x6e, 0x01, 0xb8, 0x7e, 0x04, 0x8d, 0xa4, 0x0c, 0xa6, 0x37, 0x50, 0xef, - 0xd5, 0x42, 0xcc, 0x7a, 0x62, 0x3b, 0x5b, 0x88, 0xb7, 0x8a, 0x0b, 0xf1, 0xd6, 0x02, 0x68, 0x97, - 0xff, 0x2c, 0x68, 0x97, 0x28, 0x4a, 0x85, 0x9b, 0x8a, 0x52, 0x06, 0xc0, 0xd5, 0x3e, 0x05, 0xc0, - 0x19, 0x03, 0x68, 0xa8, 0x5b, 0xbb, 0x2d, 0x2e, 0x9a, 0x95, 0xea, 0xdc, 0x4d, 0xa5, 0xda, 0xf8, - 0x0a, 0xea, 0x7b, 0x1e, 0xb5, 0xa3, 0x38, 0x44, 0x56, 0xa0, 0x94, 0x78, 0xea, 0x55, 0x4d, 0x35, - 0x33, 0x7e, 0x08, 0x0d, 0xc5, 0xf7, 0xd9, 0xed, 0x60, 0xf3, 0x09, 0xc0, 0xfc, 0xf7, 0x81, 0x00, - 0x1e, 0xdf, 0x04, 0xd1, 0xd0, 0xf6, 0x24, 0x08, 0x39, 0xc4, 0x6d, 0x6d, 0x6d, 0x73, 0x1b, 0xee, - 0x2e, 0x40, 0xa5, 0x82, 0xe5, 0x2d, 0xed, 0xdb, 0xce, 0xb4, 0xbd, 0x44, 0xea, 0x50, 0x39, 0xa2, - 0x53, 0x16, 0xda, 0x0e, 0x6d, 0x6b, 0x3b, 0xbf, 0xaf, 0x40, 0x55, 0xee, 0xee, 0x76, 0xcf, 0xc8, - 0x4f, 0x53, 0x4a, 0xd6, 0xae, 0xfc, 0x7b, 0x21, 0x45, 0x77, 0xd6, 0xaf, 0x66, 0x50, 0x30, 0x6c, - 0x89, 0xbc, 0x81, 0xb2, 0xfa, 0x47, 0x42, 0x1e, 0xa6, 0xd9, 0xd3, 0x3f, 0x53, 0x3a, 0x8f, 0xae, - 0x58, 0x9d, 0x49, 0xfa, 0x1a, 0x4a, 0xf2, 0xe9, 0x49, 0x32, 0x8d, 0x38, 0xf5, 0xda, 0xed, 0x3c, - 0x5c, 0xbc, 0x18, 0x8b, 0xd9, 0xd0, 0xc8, 0x01, 0x94, 0xe4, 0xf3, 0x2e, 0x2b, 0x28, 0xf5, 0xb8, - 0xcc, 0x0a, 0x4a, 0xbf, 0x08, 0xe5, 0xc9, 0xd4, 0x6b, 0x2c, 0x7b, 0xb2, 0xf4, 0x23, 0x30, 0x7b, - 0xb2, 0xec, 0x13, 0x6e, 0x89, 0x44, 0xf0, 0xc5, 0x42, 0x34, 0x4b, 0x36, 0x33, 0x0e, 0xbe, 0x06, - 0x33, 0x77, 0x9e, 0x7d, 0x12, 0xef, 0x4c, 0xe7, 0x11, 0x54, 0xe2, 0x75, 0xf2, 0xe8, 0xda, 0x77, - 0x4d, 0x67, 0xf5, 0xaa, 0xe5, 0x99, 0xb0, 0x7d, 0x28, 0x22, 0xce, 0x21, 0x9d, 0x05, 0x18, 0x33, - 0x16, 0xf3, 0x60, 0xe1, 0x5a, 0xe2, 0x5e, 0x8e, 0xa1, 0x12, 0x03, 0xa6, 0xac, 0x49, 0x19, 0x18, - 0x97, 0x35, 0x29, 0x8b, 0xb3, 0x50, 0xdc, 0x09, 0xd4, 0x12, 0xbf, 0x0c, 0x48, 0x26, 0x58, 0x3f, - 0xfe, 0x9b, 0x70, 0xe3, 0x85, 0x9f, 0x43, 0x2b, 0x03, 0x2c, 0xc8, 0x93, 0x8c, 0x6b, 0x16, 0x42, - 0xb0, 0xce, 0x97, 0x37, 0x70, 0xc5, 0x1a, 0x9e, 0x6b, 0x64, 0x17, 0x8a, 0x58, 0xb7, 0xb2, 0x9e, - 0x4c, 0xb6, 0xa0, 0xac, 0x27, 0x53, 0x85, 0x0e, 0x13, 0x05, 0xb0, 0xcc, 0xfc, 0xd8, 0x15, 0x55, - 0x3d, 0x23, 0x28, 0x59, 0xa8, 0xb2, 0x82, 0x52, 0xc5, 0xc9, 0x58, 0xda, 0xfd, 0xea, 0x9f, 0x7f, - 0xae, 0x68, 0xdf, 0x7e, 0x58, 0xd5, 0xfe, 0xf1, 0x61, 0x55, 0xfb, 0xf7, 0x87, 0x55, 0xed, 0x77, - 0xff, 0x59, 0x5d, 0x82, 0x76, 0x10, 0xf5, 0xb7, 0xb8, 0x3b, 0x18, 0x6f, 0x0d, 0xc6, 0xf8, 0xcb, - 0xf5, 0xbc, 0x84, 0x9f, 0x17, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x11, 0x8d, 0x6b, 0xc7, 0xfc, - 0x15, 0x00, 0x00, + // 1997 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcd, 0x72, 0xdc, 0x4a, + 0xf5, 0xb7, 0xe6, 0x7b, 0xce, 0x7c, 0xa6, 0xe3, 0xeb, 0x28, 0x93, 0xc4, 0x76, 0xf4, 0xcf, 0xbd, + 0x7f, 0xc7, 0x01, 0x3b, 0x38, 0x90, 0x05, 0x0b, 0x52, 0xf1, 0x07, 0x37, 0xc6, 0xf1, 0xb5, 0xd1, + 0x98, 0xb0, 0x60, 0xa1, 0x92, 0x35, 0xed, 0xb1, 0x18, 0x8d, 0x24, 0xd4, 0x3d, 0xe3, 0x4c, 0x15, + 0xc5, 0x03, 0xf0, 0x04, 0x14, 0x1b, 0x8a, 0x05, 0x55, 0x14, 0x6b, 0xaa, 0x28, 0xde, 0xe0, 0x2e, + 0x59, 0xb2, 0xa2, 0xa8, 0xf0, 0x22, 0x54, 0x9f, 0x6e, 0xcd, 0x48, 0xca, 0xd8, 0x93, 0xb8, 0x8a, + 0x95, 0xba, 0x4f, 0x9f, 0x3e, 0xe7, 0xf4, 0xe9, 0xf3, 0xf1, 0x6b, 0x01, 0x71, 0x87, 0x61, 0x10, + 0x71, 0x8b, 0x31, 0x1e, 0x9e, 0x6f, 0x85, 0x51, 0xc0, 0x03, 0x52, 0x4f, 0xd2, 0x3a, 0xf5, 0x21, + 0xe5, 0x76, 0xbc, 0xd6, 0x69, 0xd0, 0x28, 0x0a, 0xa2, 0xd9, 0x74, 0x30, 0x8e, 0x42, 0x67, 0x3a, + 0x5d, 0xee, 0x07, 0xfd, 0x00, 0x87, 0xdb, 0x62, 0xa4, 0xa8, 0xad, 0x68, 0xc4, 0x38, 0x0e, 0x15, + 0x01, 0xce, 0xa7, 0x12, 0x8c, 0xd7, 0x70, 0xa7, 0x7b, 0xe5, 0x72, 0xe7, 0xf2, 0x38, 0xe8, 0x51, + 0x93, 0xfe, 0x6a, 0x44, 0x19, 0x27, 0xdf, 0x81, 0xc2, 0x30, 0xe8, 0x51, 0x5d, 0x5b, 0xd7, 0x36, + 0x9a, 0x3b, 0xfa, 0x56, 0xca, 0xc8, 0x04, 0x3b, 0x72, 0x19, 0xcb, 0x40, 0x92, 0x22, 0x58, 0x18, + 0xf8, 0x8c, 0x1a, 0x6d, 0x68, 0x7e, 0x4d, 0x79, 0x42, 0xaa, 0xf1, 0x0a, 0x5a, 0x53, 0x8a, 0x64, + 0xfa, 0x4c, 0x45, 0xdb, 0x50, 0x34, 0x6d, 0xbf, 0x4f, 0xc9, 0x32, 0x14, 0x19, 0xb7, 0x23, 0x8e, + 0xfb, 0xea, 0xa6, 0x9c, 0x90, 0x36, 0xe4, 0xa9, 0xdf, 0xd3, 0x73, 0x48, 0x13, 0x43, 0xe3, 0x8f, + 0x79, 0x28, 0x77, 0xbb, 0x67, 0xc7, 0x94, 0xdb, 0x84, 0x40, 0x61, 0x34, 0x72, 0x7b, 0x6a, 0x0b, + 0x8e, 0xc9, 0x53, 0x28, 0x46, 0x42, 0x20, 0xee, 0xa9, 0xed, 0xdc, 0x4d, 0xeb, 0x47, 0x5d, 0xa6, + 0xe4, 0x10, 0x2a, 0x9d, 0xc8, 0x79, 0xb1, 0xa3, 0xe7, 0xd7, 0xb5, 0x8d, 0x86, 0x29, 0x27, 0x64, + 0x05, 0x4a, 0x1e, 0xf5, 0xfb, 0xfc, 0x52, 0x2f, 0xac, 0x6b, 0x1b, 0x05, 0x53, 0xcd, 0xc8, 0x3d, + 0x28, 0x3b, 0x17, 0x96, 0x6f, 0x0f, 0xa9, 0x5e, 0x5c, 0xd7, 0x36, 0xaa, 0x66, 0xc9, 0xb9, 0xf8, + 0xc6, 0x1e, 0x52, 0xf2, 0x00, 0xaa, 0x11, 0xed, 0xbb, 0x81, 0x6f, 0xb9, 0x3d, 0xbd, 0x84, 0x7b, + 0x2a, 0x92, 0x70, 0xd8, 0x23, 0x2f, 0xa1, 0xae, 0x16, 0x69, 0x18, 0x38, 0x97, 0x7a, 0x59, 0x59, + 0xa5, 0x22, 0xc0, 0xc4, 0xb5, 0x03, 0xb1, 0x64, 0xd6, 0xa2, 0xd9, 0x84, 0x6c, 0xc2, 0x1d, 0xea, + 0xf7, 0xac, 0x01, 0x9d, 0x58, 0xf4, 0xbd, 0xe3, 0x8d, 0x98, 0x3b, 0xa6, 0x7a, 0x65, 0x5d, 0xdb, + 0xa8, 0x98, 0x2d, 0xea, 0xf7, 0x8e, 0xe8, 0xe4, 0x20, 0x26, 0x0b, 0x03, 0x78, 0xc0, 0x6d, 0xcf, + 0x1a, 0x8c, 0x99, 0x5e, 0x95, 0x06, 0x20, 0xe1, 0x68, 0xcc, 0xc8, 0x1a, 0xd4, 0xe4, 0xe2, 0xf9, + 0x84, 0x53, 0xa6, 0x03, 0x2e, 0x03, 0x92, 0x76, 0x05, 0x85, 0x7c, 0x1f, 0x6a, 0x76, 0xe8, 0x5a, + 0x63, 0x1a, 0x31, 0x37, 0xf0, 0xf5, 0x1a, 0x5e, 0xdb, 0xdd, 0xad, 0x38, 0x0a, 0x5f, 0x9f, 0x1e, + 0xbe, 0x93, 0x4b, 0x26, 0xd8, 0xa1, 0xab, 0xc6, 0x42, 0xa7, 0xe3, 0x86, 0x97, 0x34, 0xb2, 0xdc, + 0xb1, 0x5e, 0x47, 0xff, 0x57, 0x24, 0xe1, 0x70, 0x6c, 0xfc, 0x06, 0x6a, 0x26, 0xbd, 0x8a, 0x5c, + 0x4e, 0xcd, 0x91, 0x47, 0xc9, 0x13, 0x68, 0x06, 0x9e, 0x3c, 0x4b, 0x18, 0xd1, 0x0b, 0xf7, 0xbd, + 0xba, 0xb0, 0x7a, 0xe0, 0x89, 0x83, 0x9c, 0x22, 0x4d, 0x70, 0xf9, 0xf4, 0x2a, 0xc9, 0x25, 0x6f, + 0xbd, 0xee, 0xd3, 0xab, 0x19, 0xd7, 0xff, 0x41, 0x43, 0x70, 0x71, 0x77, 0x48, 0x19, 0xb7, 0x87, + 0x21, 0xde, 0x5d, 0x01, 0x99, 0xce, 0x62, 0x9a, 0xf1, 0x0b, 0x68, 0xfc, 0x2c, 0xf4, 0x02, 0xbb, + 0x17, 0x07, 0xff, 0x33, 0x28, 0x08, 0x87, 0xa3, 0xde, 0xda, 0xce, 0x17, 0x99, 0x98, 0x94, 0xd1, + 0xf4, 0x66, 0xc9, 0x44, 0x26, 0xb2, 0x0c, 0x85, 0x9e, 0xcd, 0x6d, 0xa9, 0x5e, 0x50, 0xc5, 0x6c, + 0xb7, 0x0c, 0x45, 0xe7, 0x72, 0xe4, 0x0f, 0x44, 0x12, 0xc4, 0xc2, 0x55, 0x5a, 0xf4, 0xa0, 0x71, + 0xe8, 0xf7, 0x29, 0xe3, 0xb1, 0xba, 0x4d, 0x28, 0x3b, 0x81, 0xcf, 0xe9, 0x7b, 0xae, 0x34, 0xb6, + 0xa7, 0xee, 0xdc, 0x93, 0x74, 0x33, 0x66, 0x20, 0xff, 0x0f, 0x79, 0xc6, 0xb8, 0x8a, 0xd6, 0xf9, + 0x96, 0x99, 0x82, 0xc3, 0x18, 0x00, 0x39, 0x1e, 0x79, 0xdc, 0xbd, 0xbd, 0xaa, 0xa7, 0x50, 0x60, + 0x8c, 0x33, 0x3d, 0xb7, 0x9e, 0xbf, 0x5e, 0x17, 0xb2, 0x18, 0x2f, 0xa1, 0x19, 0xeb, 0x51, 0x69, + 0xfd, 0x04, 0x8a, 0x58, 0xa7, 0x94, 0x9a, 0xe6, 0x56, 0x5c, 0xb5, 0x0e, 0xc4, 0xd7, 0x94, 0x8b, + 0xc6, 0x6f, 0x35, 0x68, 0xee, 0x05, 0xc3, 0xd0, 0x76, 0xa6, 0x16, 0x4e, 0x13, 0x52, 0x5b, 0x98, + 0x90, 0x8f, 0xa1, 0x1e, 0x8c, 0x78, 0x38, 0xe2, 0x96, 0x47, 0xc7, 0xd4, 0x43, 0xa7, 0x14, 0xcd, + 0x9a, 0xa4, 0xbd, 0x15, 0xa4, 0xe4, 0x79, 0xf3, 0x0b, 0xce, 0x6b, 0xdc, 0x81, 0xd6, 0xd4, 0x16, + 0x75, 0x55, 0x7f, 0xca, 0x43, 0x6b, 0x3f, 0xb8, 0xf2, 0x93, 0xc1, 0xf1, 0xdd, 0xc5, 0x37, 0xb0, + 0x5b, 0xf8, 0xf6, 0x5f, 0x6b, 0x4b, 0x78, 0x0f, 0xa2, 0xe8, 0x60, 0x11, 0xa8, 0x62, 0x11, 0xc0, + 0x31, 0xd9, 0x15, 0x59, 0x8e, 0x01, 0x6f, 0x45, 0x23, 0x8f, 0xea, 0x0d, 0x94, 0x75, 0x3f, 0x73, + 0xd4, 0x59, 0x4a, 0x28, 0x79, 0xb5, 0x28, 0x91, 0x25, 0xaf, 0xa0, 0xc5, 0x78, 0x10, 0xd9, 0x7d, + 0x6a, 0x9d, 0xdb, 0xce, 0x40, 0x94, 0xbd, 0x26, 0x8a, 0x59, 0xd9, 0x12, 0xf3, 0x51, 0xb8, 0xd5, + 0x95, 0xcb, 0xbb, 0x72, 0xd5, 0x6c, 0xb2, 0xd4, 0x9c, 0x6c, 0x40, 0x3b, 0x16, 0xe0, 0xd8, 0xce, + 0x25, 0x15, 0xe5, 0xe8, 0x0e, 0x1a, 0x19, 0x73, 0xee, 0x09, 0xf2, 0x61, 0x8f, 0x74, 0xa0, 0xea, + 0x32, 0x2b, 0xb2, 0xaf, 0xac, 0xc1, 0x58, 0x6f, 0x61, 0x51, 0x29, 0xbb, 0xcc, 0xb4, 0xaf, 0x8e, + 0xc6, 0xe4, 0x05, 0xd4, 0xe2, 0xc4, 0xf6, 0x2f, 0x02, 0xbd, 0x8d, 0x26, 0x90, 0xd8, 0x84, 0x3d, + 0x99, 0xe2, 0xfe, 0x45, 0x60, 0x82, 0x33, 0x1d, 0x93, 0x7d, 0x71, 0x7e, 0xf4, 0xa6, 0xc5, 0x27, + 0x21, 0xd5, 0x09, 0x16, 0x91, 0xc7, 0xe9, 0xf3, 0x67, 0xfc, 0x7e, 0x36, 0x09, 0xa9, 0xf0, 0xc0, + 0x74, 0xf2, 0x93, 0x42, 0xa5, 0xd2, 0xae, 0x9a, 0xf9, 0x51, 0xe4, 0x19, 0x26, 0x14, 0x31, 0xae, + 0x88, 0x0e, 0xe5, 0x21, 0x65, 0xcc, 0x56, 0xf1, 0x53, 0x35, 0xe3, 0x29, 0xd9, 0x86, 0x9a, 0x38, + 0x16, 0xb5, 0x64, 0x58, 0xe6, 0xe6, 0x86, 0x25, 0x20, 0x0b, 0x8e, 0x8d, 0xbf, 0x69, 0xd0, 0x9e, + 0xd9, 0xa0, 0xc2, 0x7a, 0x7b, 0x71, 0x74, 0xaa, 0xcb, 0x52, 0x31, 0x7a, 0x1f, 0x2a, 0x2e, 0xb3, + 0xe8, 0x30, 0xe4, 0x13, 0xd4, 0x89, 0xae, 0x3b, 0x10, 0x53, 0x11, 0xe9, 0xd2, 0x96, 0xfc, 0x3c, + 0x59, 0xc9, 0x3c, 0x99, 0xb5, 0x9e, 0xc2, 0xfc, 0xd6, 0x53, 0x4c, 0xb6, 0x1e, 0xe3, 0x15, 0x3c, + 0xec, 0x52, 0x1e, 0xdb, 0xde, 0x0d, 0x29, 0xed, 0xbd, 0x75, 0x87, 0xee, 0x34, 0xc5, 0xd6, 0xa0, + 0xc6, 0x04, 0xd1, 0xf2, 0x04, 0x15, 0x8f, 0x52, 0x30, 0x81, 0x4d, 0xf9, 0x8c, 0x35, 0x78, 0x74, + 0x8d, 0x00, 0x95, 0x17, 0x21, 0x14, 0x4e, 0x6d, 0x37, 0x12, 0xfd, 0x76, 0x40, 0x27, 0xaa, 0x3e, + 0x8b, 0xa1, 0xb0, 0x74, 0x6c, 0x7b, 0x23, 0xaa, 0xaa, 0xb1, 0x9c, 0x90, 0x2f, 0x21, 0x17, 0xc8, + 0xda, 0xdb, 0xcc, 0xa6, 0x8c, 0x90, 0xb3, 0x75, 0x72, 0x6a, 0xe6, 0x82, 0xd0, 0xb8, 0x0f, 0xb9, + 0x93, 0x53, 0x52, 0x86, 0xfc, 0xe9, 0x88, 0xb7, 0x97, 0x08, 0x40, 0x69, 0x9f, 0x7a, 0x94, 0xd3, + 0xb6, 0x66, 0x74, 0x01, 0x7e, 0x2e, 0x62, 0x7f, 0xd7, 0xe6, 0xce, 0x25, 0xb6, 0x93, 0x60, 0x38, + 0x74, 0xb9, 0xc5, 0x99, 0xb2, 0xbf, 0x22, 0x09, 0x67, 0x8c, 0x6c, 0x40, 0x31, 0xb4, 0xdd, 0x28, + 0x2e, 0x5c, 0xe4, 0x63, 0x7d, 0xa6, 0x64, 0x30, 0xc6, 0x50, 0x47, 0xa1, 0xb7, 0xaa, 0xfb, 0xcf, + 0xa1, 0x78, 0x2e, 0x8c, 0x51, 0xa1, 0x94, 0x41, 0x2e, 0x33, 0x63, 0xdf, 0x2c, 0x99, 0x92, 0x71, + 0xd6, 0x13, 0xfa, 0xd0, 0x50, 0x7a, 0x55, 0x58, 0x3d, 0x4d, 0x57, 0xcb, 0x9b, 0x42, 0xe1, 0x19, + 0x14, 0x85, 0xfa, 0x05, 0x65, 0x59, 0xf2, 0x88, 0xce, 0x66, 0xda, 0x57, 0x09, 0xc7, 0xb5, 0x21, + 0xcf, 0xb9, 0xa7, 0x5c, 0x26, 0x86, 0x9f, 0xee, 0x2d, 0xd2, 0x84, 0x1c, 0x67, 0xaa, 0x81, 0xe6, + 0x38, 0x33, 0x7e, 0x0d, 0xad, 0x58, 0xf8, 0xad, 0x1c, 0xf8, 0x22, 0xed, 0xc0, 0x07, 0xd9, 0x5c, + 0xba, 0xba, 0xd1, 0x87, 0xbf, 0x84, 0xf6, 0x4c, 0xfb, 0xff, 0xd8, 0x8d, 0x7f, 0xd7, 0x60, 0x65, + 0x7f, 0x14, 0x7a, 0xae, 0x63, 0x73, 0xba, 0x4f, 0x39, 0x75, 0x6e, 0xd5, 0x50, 0x1f, 0x40, 0x15, + 0x61, 0xaa, 0x00, 0x2d, 0x2a, 0x3f, 0x2a, 0x48, 0x38, 0xa2, 0x13, 0x81, 0x17, 0x15, 0x82, 0x43, + 0x17, 0xd7, 0xcd, 0x92, 0xc4, 0x6d, 0xa2, 0x82, 0x08, 0x90, 0x13, 0xf8, 0xde, 0x04, 0xd3, 0xbf, + 0x62, 0x96, 0x07, 0x74, 0x72, 0xe2, 0x7b, 0x13, 0x62, 0x40, 0x63, 0xe8, 0xfa, 0xd6, 0x2c, 0x15, + 0x64, 0x1d, 0xa8, 0x0d, 0x5d, 0x7f, 0x4f, 0x65, 0x83, 0x71, 0x0c, 0xa5, 0xa3, 0xf1, 0x67, 0x25, + 0x6b, 0x2a, 0xb9, 0xf2, 0xe9, 0xe4, 0x32, 0xfe, 0xa2, 0xc1, 0xbd, 0x8f, 0x5c, 0xa1, 0xdc, 0xff, + 0xbd, 0x19, 0x78, 0xbd, 0xa1, 0xf5, 0xc7, 0xb8, 0x15, 0xaf, 0xe1, 0x39, 0x54, 0x11, 0xb3, 0x26, + 0x6a, 0xf2, 0xdc, 0x5b, 0x13, 0x2e, 0x90, 0x3b, 0x36, 0xe3, 0x78, 0xcd, 0xe3, 0xc5, 0x2d, 0xa7, + 0xb9, 0xe5, 0x51, 0xe3, 0xfc, 0xfe, 0x43, 0x1e, 0x4a, 0x47, 0xef, 0x62, 0xec, 0x8f, 0x6d, 0x58, + 0x4b, 0xb4, 0xe1, 0xc7, 0x50, 0xc7, 0x22, 0x6d, 0x05, 0x17, 0x17, 0x8c, 0x72, 0xc4, 0xb2, 0x05, + 0xb3, 0x86, 0xb4, 0x13, 0x24, 0x25, 0x4a, 0x6c, 0x2e, 0x85, 0xee, 0xa7, 0x5b, 0xd5, 0x6a, 0x3d, + 0xb1, 0xf5, 0xad, 0x64, 0x69, 0x42, 0xce, 0xb9, 0x40, 0xff, 0x55, 0xcd, 0x9c, 0x73, 0x21, 0xdc, + 0xea, 0x32, 0xab, 0x87, 0x05, 0x4d, 0x5d, 0x64, 0xc5, 0x65, 0xb2, 0xc0, 0x89, 0x4b, 0x96, 0xa1, + 0xc1, 0x63, 0xcc, 0x5d, 0xc6, 0xf9, 0x19, 0x23, 0x8f, 0x00, 0x22, 0x2a, 0x5b, 0xd7, 0xf4, 0x86, + 0xab, 0x8a, 0x72, 0xc6, 0xd2, 0x41, 0x55, 0xba, 0x3e, 0xa8, 0xca, 0xa9, 0xa0, 0x5a, 0x81, 0x12, + 0xbb, 0xb4, 0x77, 0x7e, 0xf0, 0x12, 0x1f, 0x09, 0x75, 0x53, 0xcd, 0xc4, 0x3b, 0x42, 0x4a, 0x63, + 0xbe, 0x1d, 0xb2, 0xcb, 0x00, 0x0d, 0x92, 0x6f, 0x84, 0x16, 0x2e, 0x74, 0x15, 0xfd, 0x8c, 0x91, + 0x5d, 0x68, 0x3b, 0xc1, 0x30, 0x8c, 0x28, 0x13, 0x10, 0x5f, 0x76, 0xf2, 0x06, 0x96, 0xf8, 0x7b, + 0xd3, 0xfe, 0x3f, 0x5b, 0xc7, 0xfe, 0xdd, 0x72, 0xd2, 0x04, 0xe3, 0xaf, 0x79, 0xa8, 0xbf, 0x0e, + 0x43, 0x6f, 0x12, 0xe7, 0xd3, 0x46, 0xaa, 0x82, 0x64, 0x6f, 0xf7, 0x9d, 0xc4, 0x9c, 0x58, 0x3e, + 0x36, 0xe3, 0x0c, 0xae, 0xcf, 0x0d, 0x84, 0x77, 0x89, 0x04, 0xfe, 0x08, 0x70, 0xe5, 0x6e, 0x01, + 0xb8, 0x7e, 0x04, 0x8d, 0xa4, 0x0c, 0xa6, 0x37, 0x50, 0xef, 0xf5, 0x42, 0xcc, 0x7a, 0x62, 0x3b, + 0x9b, 0x8b, 0xb7, 0x8a, 0x73, 0xf1, 0xd6, 0x1c, 0x68, 0x97, 0xff, 0x2c, 0x68, 0x97, 0x28, 0x4a, + 0x85, 0x45, 0x45, 0x29, 0x03, 0xe0, 0x6a, 0x9f, 0x02, 0xe0, 0x8c, 0x01, 0x34, 0xd4, 0xad, 0xdd, + 0x16, 0x17, 0x4d, 0x4b, 0x75, 0x6e, 0x51, 0xa9, 0x36, 0xbe, 0x82, 0xfa, 0x9e, 0x47, 0xed, 0x28, + 0x0e, 0x91, 0x15, 0x28, 0x25, 0xde, 0x85, 0x55, 0x53, 0xcd, 0x8c, 0x1f, 0x42, 0x43, 0xf1, 0x7d, + 0x76, 0x3b, 0xd8, 0x7c, 0x02, 0x30, 0xfb, 0xd7, 0x20, 0x80, 0xc7, 0x37, 0x41, 0x34, 0xb4, 0x3d, + 0x09, 0x42, 0x0e, 0x71, 0x5b, 0x5b, 0xdb, 0xdc, 0x86, 0xbb, 0x73, 0x50, 0xa9, 0x60, 0x79, 0x4b, + 0xfb, 0xb6, 0x33, 0x69, 0x2f, 0x91, 0x3a, 0x54, 0x8e, 0xe8, 0x84, 0x85, 0xb6, 0x43, 0xdb, 0xda, + 0xce, 0xef, 0x2b, 0x50, 0x95, 0xbb, 0xbb, 0xdd, 0x33, 0xf2, 0xd3, 0x94, 0x92, 0xb5, 0x6b, 0x7f, + 0x75, 0x48, 0xd1, 0x9d, 0xf5, 0xeb, 0x19, 0x14, 0x0c, 0x5b, 0x22, 0x6f, 0xa0, 0xac, 0x7e, 0xa8, + 0x90, 0x87, 0x69, 0xf6, 0xf4, 0x9f, 0x97, 0xce, 0xa3, 0x6b, 0x56, 0xa7, 0x92, 0xbe, 0x86, 0x92, + 0x7c, 0xa7, 0x92, 0x4c, 0x23, 0x4e, 0x3d, 0x8d, 0x3b, 0x0f, 0xe7, 0x2f, 0xc6, 0x62, 0x36, 0x34, + 0x72, 0x00, 0x25, 0xf9, 0x16, 0xcc, 0x0a, 0x4a, 0xbd, 0x44, 0xb3, 0x82, 0xd2, 0xcf, 0x47, 0x79, + 0x32, 0xf5, 0x1a, 0xcb, 0x9e, 0x2c, 0xfd, 0x60, 0xcc, 0x9e, 0x2c, 0xfb, 0x84, 0x5b, 0x22, 0x11, + 0x7c, 0x31, 0x17, 0xcd, 0x92, 0xcd, 0x8c, 0x83, 0x6f, 0xc0, 0xcc, 0x9d, 0x67, 0x9f, 0xc4, 0x3b, + 0xd5, 0x79, 0x04, 0x95, 0x78, 0x9d, 0x3c, 0xba, 0xf1, 0x5d, 0xd3, 0x59, 0xbd, 0x6e, 0x79, 0x2a, + 0x6c, 0x1f, 0x8a, 0x88, 0x73, 0x48, 0x67, 0x0e, 0xc6, 0x8c, 0xc5, 0x3c, 0x98, 0xbb, 0x96, 0xb8, + 0x97, 0x63, 0xa8, 0xc4, 0x80, 0x29, 0x6b, 0x52, 0x06, 0xc6, 0x65, 0x4d, 0xca, 0xe2, 0x2c, 0x14, + 0x77, 0x02, 0xb5, 0xc4, 0xff, 0x05, 0x92, 0x09, 0xd6, 0x8f, 0x7f, 0x3d, 0x2c, 0xbc, 0xf0, 0x73, + 0x68, 0x65, 0x80, 0x05, 0x79, 0x92, 0x71, 0xcd, 0x5c, 0x08, 0xd6, 0xf9, 0x72, 0x01, 0x57, 0xac, + 0xe1, 0xb9, 0x46, 0x76, 0xa1, 0x88, 0x75, 0x2b, 0xeb, 0xc9, 0x64, 0x0b, 0xca, 0x7a, 0x32, 0x55, + 0xe8, 0x30, 0x51, 0x00, 0xcb, 0xcc, 0x8f, 0x5d, 0x51, 0xd5, 0x33, 0x82, 0x92, 0x85, 0x2a, 0x2b, + 0x28, 0x55, 0x9c, 0x8c, 0xa5, 0xdd, 0xaf, 0xfe, 0xf9, 0xe7, 0x8a, 0xf6, 0xed, 0x87, 0x55, 0xed, + 0x1f, 0x1f, 0x56, 0xb5, 0x7f, 0x7f, 0x58, 0xd5, 0x7e, 0xf7, 0x9f, 0xd5, 0x25, 0x68, 0x07, 0x51, + 0x7f, 0x8b, 0xbb, 0x83, 0xf1, 0xd6, 0x60, 0x8c, 0xff, 0x67, 0xcf, 0x4b, 0xf8, 0x79, 0xf1, 0xdf, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x24, 0x96, 0xcf, 0xef, 0x29, 0x16, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -3817,6 +3825,18 @@ func (m *CompactRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.Context != nil { + { + size, err := m.Context.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintImportSstpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } if m.OutputLevel != 0 { i = encodeVarintImportSstpb(dAtA, i, uint64(m.OutputLevel)) i-- @@ -5360,6 +5380,10 @@ func (m *CompactRequest) Size() (n int) { if m.OutputLevel != 0 { n += 1 + sovImportSstpb(uint64(m.OutputLevel)) } + if m.Context != nil { + l = m.Context.Size() + n += 1 + l + sovImportSstpb(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -7358,6 +7382,42 @@ func (m *CompactRequest) Unmarshal(dAtA []byte) error { break } } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Context", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImportSstpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthImportSstpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthImportSstpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Context == nil { + m.Context = &kvrpcpb.Context{} + } + if err := m.Context.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipImportSstpb(dAtA[iNdEx:]) diff --git a/proto/import_sstpb.proto b/proto/import_sstpb.proto index ec0b05a..21be2fc 100644 --- a/proto/import_sstpb.proto +++ b/proto/import_sstpb.proto @@ -146,6 +146,7 @@ message CompactRequest { // Compact all files to the bottommost level if the output level is -1. Range range = 1; int32 output_level = 2; + kvrpcpb.Context context = 3; } message CompactResponse { diff --git a/scripts/proto.lock b/scripts/proto.lock index a493006..e74e9eb 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -5901,6 +5901,11 @@ "id": 2, "name": "output_level", "type": "int32" + }, + { + "id": 3, + "name": "context", + "type": "kvrpcpb.Context" } ] }, -- Gitee From 60b33e619c70d8abe151f086a19a82895965f28f Mon Sep 17 00:00:00 2001 From: Jay Date: Thu, 9 Mar 2023 15:10:28 +0800 Subject: [PATCH 13/44] Introduce incr snap (#1072) Signed-off-by: Jay Lee --- pkg/kvrpcpb/kvrpcpb.pb.go | 8 +- pkg/raft_serverpb/raft_serverpb.pb.go | 5822 +++++++++++++++++-------- pkg/tikvpb/tikvpb.pb.go | 381 +- pkg/tracepb/tracepb.pb.go | 1 - proto/raft_serverpb.proto | 54 + proto/tikvpb.proto | 1 + scripts/proto.lock | 139 + 7 files changed, 4389 insertions(+), 2017 deletions(-) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index c2cebe1..8e0cac8 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -1888,10 +1888,9 @@ type CheckTxnStatusResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Error *KeyError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Three kinds of transaction status: - // - // locked: lock_ttl > 0 - // committed: commit_version > 0 - // rollbacked: lock_ttl = 0 && commit_version = 0 + // locked: lock_ttl > 0 + // committed: commit_version > 0 + // rollbacked: lock_ttl = 0 && commit_version = 0 LockTtl uint64 `protobuf:"varint,3,opt,name=lock_ttl,json=lockTtl,proto3" json:"lock_ttl,omitempty"` CommitVersion uint64 `protobuf:"varint,4,opt,name=commit_version,json=commitVersion,proto3" json:"commit_version,omitempty"` // The action performed by TiKV (and why if the action is to rollback). @@ -9474,7 +9473,6 @@ func (m *RawChecksumResponse) GetTotalBytes() uint64 { type CompactError struct { // Types that are valid to be assigned to Error: - // // *CompactError_ErrInvalidStartKey // *CompactError_ErrPhysicalTableNotExist // *CompactError_ErrCompactInProgress diff --git a/pkg/raft_serverpb/raft_serverpb.pb.go b/pkg/raft_serverpb/raft_serverpb.pb.go index d08f1c2..50848ca 100644 --- a/pkg/raft_serverpb/raft_serverpb.pb.go +++ b/pkg/raft_serverpb/raft_serverpb.pb.go @@ -559,26 +559,30 @@ func (m *Done) XXX_DiscardUnknown() { var xxx_messageInfo_Done proto.InternalMessageInfo -type KeyValue struct { - Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +type TabletSnapshotFileMeta struct { + FileSize uint64 `protobuf:"varint,1,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"` + FileName string `protobuf:"bytes,2,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"` + // Some block data. + HeadChunk []byte `protobuf:"bytes,3,opt,name=head_chunk,json=headChunk,proto3" json:"head_chunk,omitempty"` + // trailing data including checksum. + TrailingChunk []byte `protobuf:"bytes,4,opt,name=trailing_chunk,json=trailingChunk,proto3" json:"trailing_chunk,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *KeyValue) Reset() { *m = KeyValue{} } -func (m *KeyValue) String() string { return proto.CompactTextString(m) } -func (*KeyValue) ProtoMessage() {} -func (*KeyValue) Descriptor() ([]byte, []int) { +func (m *TabletSnapshotFileMeta) Reset() { *m = TabletSnapshotFileMeta{} } +func (m *TabletSnapshotFileMeta) String() string { return proto.CompactTextString(m) } +func (*TabletSnapshotFileMeta) ProtoMessage() {} +func (*TabletSnapshotFileMeta) Descriptor() ([]byte, []int) { return fileDescriptor_130ebc2f2c37a342, []int{6} } -func (m *KeyValue) XXX_Unmarshal(b []byte) error { +func (m *TabletSnapshotFileMeta) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *KeyValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TabletSnapshotFileMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_KeyValue.Marshal(b, m, deterministic) + return xxx_messageInfo_TabletSnapshotFileMeta.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -588,57 +592,72 @@ func (m *KeyValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return b[:n], nil } } -func (m *KeyValue) XXX_Merge(src proto.Message) { - xxx_messageInfo_KeyValue.Merge(m, src) +func (m *TabletSnapshotFileMeta) XXX_Merge(src proto.Message) { + xxx_messageInfo_TabletSnapshotFileMeta.Merge(m, src) } -func (m *KeyValue) XXX_Size() int { +func (m *TabletSnapshotFileMeta) XXX_Size() int { return m.Size() } -func (m *KeyValue) XXX_DiscardUnknown() { - xxx_messageInfo_KeyValue.DiscardUnknown(m) +func (m *TabletSnapshotFileMeta) XXX_DiscardUnknown() { + xxx_messageInfo_TabletSnapshotFileMeta.DiscardUnknown(m) } -var xxx_messageInfo_KeyValue proto.InternalMessageInfo +var xxx_messageInfo_TabletSnapshotFileMeta proto.InternalMessageInfo -func (m *KeyValue) GetKey() []byte { +func (m *TabletSnapshotFileMeta) GetFileSize() uint64 { if m != nil { - return m.Key + return m.FileSize + } + return 0 +} + +func (m *TabletSnapshotFileMeta) GetFileName() string { + if m != nil { + return m.FileName + } + return "" +} + +func (m *TabletSnapshotFileMeta) GetHeadChunk() []byte { + if m != nil { + return m.HeadChunk } return nil } -func (m *KeyValue) GetValue() []byte { +func (m *TabletSnapshotFileMeta) GetTrailingChunk() []byte { if m != nil { - return m.Value + return m.TrailingChunk } return nil } -type RaftSnapshotData struct { - Region *metapb.Region `protobuf:"bytes,1,opt,name=region,proto3" json:"region,omitempty"` - FileSize uint64 `protobuf:"varint,2,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"` - Data []*KeyValue `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` - Version uint64 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` - Meta *SnapshotMeta `protobuf:"bytes,5,opt,name=meta,proto3" json:"meta,omitempty"` - RemovedRecords []*metapb.Peer `protobuf:"bytes,6,rep,name=removed_records,json=removedRecords,proto3" json:"removed_records,omitempty"` - MergedRecords []*MergedRecord `protobuf:"bytes,7,rep,name=merged_records,json=mergedRecords,proto3" json:"merged_records,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +// Snapshot preview for server to decide whether skip some files. +// Server should send back an `AcceptedSnapshotFile` to let client +// keep sending specified files. Only SST files can be skipped, all +// other files should always be sent. +type TabletSnapshotPreview struct { + Metas []*TabletSnapshotFileMeta `protobuf:"bytes,1,rep,name=metas,proto3" json:"metas,omitempty"` + // There may be too many metas, use a flag to indicate all metas + // are sent. + End bool `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *RaftSnapshotData) Reset() { *m = RaftSnapshotData{} } -func (m *RaftSnapshotData) String() string { return proto.CompactTextString(m) } -func (*RaftSnapshotData) ProtoMessage() {} -func (*RaftSnapshotData) Descriptor() ([]byte, []int) { +func (m *TabletSnapshotPreview) Reset() { *m = TabletSnapshotPreview{} } +func (m *TabletSnapshotPreview) String() string { return proto.CompactTextString(m) } +func (*TabletSnapshotPreview) ProtoMessage() {} +func (*TabletSnapshotPreview) Descriptor() ([]byte, []int) { return fileDescriptor_130ebc2f2c37a342, []int{7} } -func (m *RaftSnapshotData) XXX_Unmarshal(b []byte) error { +func (m *TabletSnapshotPreview) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *RaftSnapshotData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TabletSnapshotPreview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_RaftSnapshotData.Marshal(b, m, deterministic) + return xxx_messageInfo_TabletSnapshotPreview.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -648,88 +667,115 @@ func (m *RaftSnapshotData) XXX_Marshal(b []byte, deterministic bool) ([]byte, er return b[:n], nil } } -func (m *RaftSnapshotData) XXX_Merge(src proto.Message) { - xxx_messageInfo_RaftSnapshotData.Merge(m, src) +func (m *TabletSnapshotPreview) XXX_Merge(src proto.Message) { + xxx_messageInfo_TabletSnapshotPreview.Merge(m, src) } -func (m *RaftSnapshotData) XXX_Size() int { +func (m *TabletSnapshotPreview) XXX_Size() int { return m.Size() } -func (m *RaftSnapshotData) XXX_DiscardUnknown() { - xxx_messageInfo_RaftSnapshotData.DiscardUnknown(m) +func (m *TabletSnapshotPreview) XXX_DiscardUnknown() { + xxx_messageInfo_TabletSnapshotPreview.DiscardUnknown(m) } -var xxx_messageInfo_RaftSnapshotData proto.InternalMessageInfo +var xxx_messageInfo_TabletSnapshotPreview proto.InternalMessageInfo -func (m *RaftSnapshotData) GetRegion() *metapb.Region { +func (m *TabletSnapshotPreview) GetMetas() []*TabletSnapshotFileMeta { if m != nil { - return m.Region + return m.Metas } return nil } -func (m *RaftSnapshotData) GetFileSize() uint64 { +func (m *TabletSnapshotPreview) GetEnd() bool { if m != nil { - return m.FileSize + return m.End } - return 0 + return false } -func (m *RaftSnapshotData) GetData() []*KeyValue { - if m != nil { - return m.Data - } - return nil +type TabletSnapshotFileChunk struct { + FileSize uint64 `protobuf:"varint,1,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"` + FileName string `protobuf:"bytes,2,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"` + Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *RaftSnapshotData) GetVersion() uint64 { - if m != nil { - return m.Version +func (m *TabletSnapshotFileChunk) Reset() { *m = TabletSnapshotFileChunk{} } +func (m *TabletSnapshotFileChunk) String() string { return proto.CompactTextString(m) } +func (*TabletSnapshotFileChunk) ProtoMessage() {} +func (*TabletSnapshotFileChunk) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{8} +} +func (m *TabletSnapshotFileChunk) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TabletSnapshotFileChunk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TabletSnapshotFileChunk.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return 0 +} +func (m *TabletSnapshotFileChunk) XXX_Merge(src proto.Message) { + xxx_messageInfo_TabletSnapshotFileChunk.Merge(m, src) +} +func (m *TabletSnapshotFileChunk) XXX_Size() int { + return m.Size() +} +func (m *TabletSnapshotFileChunk) XXX_DiscardUnknown() { + xxx_messageInfo_TabletSnapshotFileChunk.DiscardUnknown(m) } -func (m *RaftSnapshotData) GetMeta() *SnapshotMeta { +var xxx_messageInfo_TabletSnapshotFileChunk proto.InternalMessageInfo + +func (m *TabletSnapshotFileChunk) GetFileSize() uint64 { if m != nil { - return m.Meta + return m.FileSize } - return nil + return 0 } -func (m *RaftSnapshotData) GetRemovedRecords() []*metapb.Peer { +func (m *TabletSnapshotFileChunk) GetFileName() string { if m != nil { - return m.RemovedRecords + return m.FileName } - return nil + return "" } -func (m *RaftSnapshotData) GetMergedRecords() []*MergedRecord { +func (m *TabletSnapshotFileChunk) GetData() []byte { if m != nil { - return m.MergedRecords + return m.Data } return nil } -type StoreIdent struct { - ClusterId uint64 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` - StoreId uint64 `protobuf:"varint,2,opt,name=store_id,json=storeId,proto3" json:"store_id,omitempty"` - ApiVersion kvrpcpb.APIVersion `protobuf:"varint,3,opt,name=api_version,json=apiVersion,proto3,enum=kvrpcpb.APIVersion" json:"api_version,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type TabletSnapshotHead struct { + Message *RaftMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + UseCache bool `protobuf:"varint,2,opt,name=use_cache,json=useCache,proto3" json:"use_cache,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *StoreIdent) Reset() { *m = StoreIdent{} } -func (m *StoreIdent) String() string { return proto.CompactTextString(m) } -func (*StoreIdent) ProtoMessage() {} -func (*StoreIdent) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{8} +func (m *TabletSnapshotHead) Reset() { *m = TabletSnapshotHead{} } +func (m *TabletSnapshotHead) String() string { return proto.CompactTextString(m) } +func (*TabletSnapshotHead) ProtoMessage() {} +func (*TabletSnapshotHead) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{9} } -func (m *StoreIdent) XXX_Unmarshal(b []byte) error { +func (m *TabletSnapshotHead) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *StoreIdent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TabletSnapshotHead) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_StoreIdent.Marshal(b, m, deterministic) + return xxx_messageInfo_TabletSnapshotHead.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -739,63 +785,53 @@ func (m *StoreIdent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return b[:n], nil } } -func (m *StoreIdent) XXX_Merge(src proto.Message) { - xxx_messageInfo_StoreIdent.Merge(m, src) +func (m *TabletSnapshotHead) XXX_Merge(src proto.Message) { + xxx_messageInfo_TabletSnapshotHead.Merge(m, src) } -func (m *StoreIdent) XXX_Size() int { +func (m *TabletSnapshotHead) XXX_Size() int { return m.Size() } -func (m *StoreIdent) XXX_DiscardUnknown() { - xxx_messageInfo_StoreIdent.DiscardUnknown(m) +func (m *TabletSnapshotHead) XXX_DiscardUnknown() { + xxx_messageInfo_TabletSnapshotHead.DiscardUnknown(m) } -var xxx_messageInfo_StoreIdent proto.InternalMessageInfo - -func (m *StoreIdent) GetClusterId() uint64 { - if m != nil { - return m.ClusterId - } - return 0 -} +var xxx_messageInfo_TabletSnapshotHead proto.InternalMessageInfo -func (m *StoreIdent) GetStoreId() uint64 { +func (m *TabletSnapshotHead) GetMessage() *RaftMessage { if m != nil { - return m.StoreId + return m.Message } - return 0 + return nil } -func (m *StoreIdent) GetApiVersion() kvrpcpb.APIVersion { +func (m *TabletSnapshotHead) GetUseCache() bool { if m != nil { - return m.ApiVersion + return m.UseCache } - return kvrpcpb.APIVersion_V1 + return false } -type StoreRecoverState struct { - // Used for TiKV start recovery when WAL of KVDB was disabled. - // TiKV may read all relations between seqno and raft log index, and replay - // all raft logs which corresponding seqno smaller than the seqno here. - // After TiKV replays all raft logs and flushed KV data, the seqno here must - // be updated. - Seqno uint64 `protobuf:"varint,1,opt,name=seqno,proto3" json:"seqno,omitempty"` +type TabletSnapshotEnd struct { + // Checksum of all data sent in `TabletSnapshotFileChunk.data` and + // `TabletSnapshotFileChunk.file_name`. + Checksum uint64 `protobuf:"varint,1,opt,name=checksum,proto3" json:"checksum,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *StoreRecoverState) Reset() { *m = StoreRecoverState{} } -func (m *StoreRecoverState) String() string { return proto.CompactTextString(m) } -func (*StoreRecoverState) ProtoMessage() {} -func (*StoreRecoverState) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{9} +func (m *TabletSnapshotEnd) Reset() { *m = TabletSnapshotEnd{} } +func (m *TabletSnapshotEnd) String() string { return proto.CompactTextString(m) } +func (*TabletSnapshotEnd) ProtoMessage() {} +func (*TabletSnapshotEnd) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{10} } -func (m *StoreRecoverState) XXX_Unmarshal(b []byte) error { +func (m *TabletSnapshotEnd) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *StoreRecoverState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TabletSnapshotEnd) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_StoreRecoverState.Marshal(b, m, deterministic) + return xxx_messageInfo_TabletSnapshotEnd.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -805,45 +841,49 @@ func (m *StoreRecoverState) XXX_Marshal(b []byte, deterministic bool) ([]byte, e return b[:n], nil } } -func (m *StoreRecoverState) XXX_Merge(src proto.Message) { - xxx_messageInfo_StoreRecoverState.Merge(m, src) +func (m *TabletSnapshotEnd) XXX_Merge(src proto.Message) { + xxx_messageInfo_TabletSnapshotEnd.Merge(m, src) } -func (m *StoreRecoverState) XXX_Size() int { +func (m *TabletSnapshotEnd) XXX_Size() int { return m.Size() } -func (m *StoreRecoverState) XXX_DiscardUnknown() { - xxx_messageInfo_StoreRecoverState.DiscardUnknown(m) +func (m *TabletSnapshotEnd) XXX_DiscardUnknown() { + xxx_messageInfo_TabletSnapshotEnd.DiscardUnknown(m) } -var xxx_messageInfo_StoreRecoverState proto.InternalMessageInfo +var xxx_messageInfo_TabletSnapshotEnd proto.InternalMessageInfo -func (m *StoreRecoverState) GetSeqno() uint64 { +func (m *TabletSnapshotEnd) GetChecksum() uint64 { if m != nil { - return m.Seqno + return m.Checksum } return 0 } -type RaftLocalState struct { - HardState *eraftpb.HardState `protobuf:"bytes,1,opt,name=hard_state,json=hardState,proto3" json:"hard_state,omitempty"` - LastIndex uint64 `protobuf:"varint,2,opt,name=last_index,json=lastIndex,proto3" json:"last_index,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type TabletSnapshotRequest struct { + // Types that are valid to be assigned to Payload: + // *TabletSnapshotRequest_Head + // *TabletSnapshotRequest_Preview + // *TabletSnapshotRequest_Chunk + // *TabletSnapshotRequest_End + Payload isTabletSnapshotRequest_Payload `protobuf_oneof:"payload"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *RaftLocalState) Reset() { *m = RaftLocalState{} } -func (m *RaftLocalState) String() string { return proto.CompactTextString(m) } -func (*RaftLocalState) ProtoMessage() {} -func (*RaftLocalState) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{10} +func (m *TabletSnapshotRequest) Reset() { *m = TabletSnapshotRequest{} } +func (m *TabletSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*TabletSnapshotRequest) ProtoMessage() {} +func (*TabletSnapshotRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{11} } -func (m *RaftLocalState) XXX_Unmarshal(b []byte) error { +func (m *TabletSnapshotRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *RaftLocalState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TabletSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_RaftLocalState.Marshal(b, m, deterministic) + return xxx_messageInfo_TabletSnapshotRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -853,55 +893,106 @@ func (m *RaftLocalState) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro return b[:n], nil } } -func (m *RaftLocalState) XXX_Merge(src proto.Message) { - xxx_messageInfo_RaftLocalState.Merge(m, src) +func (m *TabletSnapshotRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TabletSnapshotRequest.Merge(m, src) } -func (m *RaftLocalState) XXX_Size() int { +func (m *TabletSnapshotRequest) XXX_Size() int { return m.Size() } -func (m *RaftLocalState) XXX_DiscardUnknown() { - xxx_messageInfo_RaftLocalState.DiscardUnknown(m) +func (m *TabletSnapshotRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TabletSnapshotRequest.DiscardUnknown(m) } -var xxx_messageInfo_RaftLocalState proto.InternalMessageInfo +var xxx_messageInfo_TabletSnapshotRequest proto.InternalMessageInfo -func (m *RaftLocalState) GetHardState() *eraftpb.HardState { +type isTabletSnapshotRequest_Payload interface { + isTabletSnapshotRequest_Payload() + MarshalTo([]byte) (int, error) + Size() int +} + +type TabletSnapshotRequest_Head struct { + Head *TabletSnapshotHead `protobuf:"bytes,1,opt,name=head,proto3,oneof" json:"head,omitempty"` +} +type TabletSnapshotRequest_Preview struct { + Preview *TabletSnapshotPreview `protobuf:"bytes,2,opt,name=preview,proto3,oneof" json:"preview,omitempty"` +} +type TabletSnapshotRequest_Chunk struct { + Chunk *TabletSnapshotFileChunk `protobuf:"bytes,3,opt,name=chunk,proto3,oneof" json:"chunk,omitempty"` +} +type TabletSnapshotRequest_End struct { + End *TabletSnapshotEnd `protobuf:"bytes,4,opt,name=end,proto3,oneof" json:"end,omitempty"` +} + +func (*TabletSnapshotRequest_Head) isTabletSnapshotRequest_Payload() {} +func (*TabletSnapshotRequest_Preview) isTabletSnapshotRequest_Payload() {} +func (*TabletSnapshotRequest_Chunk) isTabletSnapshotRequest_Payload() {} +func (*TabletSnapshotRequest_End) isTabletSnapshotRequest_Payload() {} + +func (m *TabletSnapshotRequest) GetPayload() isTabletSnapshotRequest_Payload { if m != nil { - return m.HardState + return m.Payload } return nil } -func (m *RaftLocalState) GetLastIndex() uint64 { - if m != nil { - return m.LastIndex +func (m *TabletSnapshotRequest) GetHead() *TabletSnapshotHead { + if x, ok := m.GetPayload().(*TabletSnapshotRequest_Head); ok { + return x.Head } - return 0 + return nil } -type RaftApplyState struct { - AppliedIndex uint64 `protobuf:"varint,1,opt,name=applied_index,json=appliedIndex,proto3" json:"applied_index,omitempty"` - LastCommitIndex uint64 `protobuf:"varint,3,opt,name=last_commit_index,json=lastCommitIndex,proto3" json:"last_commit_index,omitempty"` - CommitIndex uint64 `protobuf:"varint,4,opt,name=commit_index,json=commitIndex,proto3" json:"commit_index,omitempty"` - CommitTerm uint64 `protobuf:"varint,5,opt,name=commit_term,json=commitTerm,proto3" json:"commit_term,omitempty"` - TruncatedState *RaftTruncatedState `protobuf:"bytes,2,opt,name=truncated_state,json=truncatedState,proto3" json:"truncated_state,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *TabletSnapshotRequest) GetPreview() *TabletSnapshotPreview { + if x, ok := m.GetPayload().(*TabletSnapshotRequest_Preview); ok { + return x.Preview + } + return nil } -func (m *RaftApplyState) Reset() { *m = RaftApplyState{} } -func (m *RaftApplyState) String() string { return proto.CompactTextString(m) } -func (*RaftApplyState) ProtoMessage() {} -func (*RaftApplyState) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{11} +func (m *TabletSnapshotRequest) GetChunk() *TabletSnapshotFileChunk { + if x, ok := m.GetPayload().(*TabletSnapshotRequest_Chunk); ok { + return x.Chunk + } + return nil } -func (m *RaftApplyState) XXX_Unmarshal(b []byte) error { + +func (m *TabletSnapshotRequest) GetEnd() *TabletSnapshotEnd { + if x, ok := m.GetPayload().(*TabletSnapshotRequest_End); ok { + return x.End + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TabletSnapshotRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TabletSnapshotRequest_Head)(nil), + (*TabletSnapshotRequest_Preview)(nil), + (*TabletSnapshotRequest_Chunk)(nil), + (*TabletSnapshotRequest_End)(nil), + } +} + +type AcceptedSnapshotFiles struct { + FileName []string `protobuf:"bytes,1,rep,name=file_name,json=fileName,proto3" json:"file_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AcceptedSnapshotFiles) Reset() { *m = AcceptedSnapshotFiles{} } +func (m *AcceptedSnapshotFiles) String() string { return proto.CompactTextString(m) } +func (*AcceptedSnapshotFiles) ProtoMessage() {} +func (*AcceptedSnapshotFiles) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{12} +} +func (m *AcceptedSnapshotFiles) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *RaftApplyState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *AcceptedSnapshotFiles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_RaftApplyState.Marshal(b, m, deterministic) + return xxx_messageInfo_AcceptedSnapshotFiles.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -911,74 +1002,92 @@ func (m *RaftApplyState) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro return b[:n], nil } } -func (m *RaftApplyState) XXX_Merge(src proto.Message) { - xxx_messageInfo_RaftApplyState.Merge(m, src) +func (m *AcceptedSnapshotFiles) XXX_Merge(src proto.Message) { + xxx_messageInfo_AcceptedSnapshotFiles.Merge(m, src) } -func (m *RaftApplyState) XXX_Size() int { +func (m *AcceptedSnapshotFiles) XXX_Size() int { return m.Size() } -func (m *RaftApplyState) XXX_DiscardUnknown() { - xxx_messageInfo_RaftApplyState.DiscardUnknown(m) +func (m *AcceptedSnapshotFiles) XXX_DiscardUnknown() { + xxx_messageInfo_AcceptedSnapshotFiles.DiscardUnknown(m) } -var xxx_messageInfo_RaftApplyState proto.InternalMessageInfo +var xxx_messageInfo_AcceptedSnapshotFiles proto.InternalMessageInfo -func (m *RaftApplyState) GetAppliedIndex() uint64 { +func (m *AcceptedSnapshotFiles) GetFileName() []string { if m != nil { - return m.AppliedIndex + return m.FileName } - return 0 + return nil } -func (m *RaftApplyState) GetLastCommitIndex() uint64 { - if m != nil { - return m.LastCommitIndex - } - return 0 +type TabletSnapshotResponse struct { + Files *AcceptedSnapshotFiles `protobuf:"bytes,1,opt,name=files,proto3" json:"files,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *RaftApplyState) GetCommitIndex() uint64 { - if m != nil { - return m.CommitIndex - } - return 0 +func (m *TabletSnapshotResponse) Reset() { *m = TabletSnapshotResponse{} } +func (m *TabletSnapshotResponse) String() string { return proto.CompactTextString(m) } +func (*TabletSnapshotResponse) ProtoMessage() {} +func (*TabletSnapshotResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{13} } - -func (m *RaftApplyState) GetCommitTerm() uint64 { - if m != nil { - return m.CommitTerm +func (m *TabletSnapshotResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TabletSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TabletSnapshotResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return 0 +} +func (m *TabletSnapshotResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TabletSnapshotResponse.Merge(m, src) +} +func (m *TabletSnapshotResponse) XXX_Size() int { + return m.Size() +} +func (m *TabletSnapshotResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TabletSnapshotResponse.DiscardUnknown(m) } -func (m *RaftApplyState) GetTruncatedState() *RaftTruncatedState { +var xxx_messageInfo_TabletSnapshotResponse proto.InternalMessageInfo + +func (m *TabletSnapshotResponse) GetFiles() *AcceptedSnapshotFiles { if m != nil { - return m.TruncatedState + return m.Files } return nil } -type MergeState struct { - MinIndex uint64 `protobuf:"varint,1,opt,name=min_index,json=minIndex,proto3" json:"min_index,omitempty"` - Target *metapb.Region `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` - Commit uint64 `protobuf:"varint,3,opt,name=commit,proto3" json:"commit,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type KeyValue struct { + Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *MergeState) Reset() { *m = MergeState{} } -func (m *MergeState) String() string { return proto.CompactTextString(m) } -func (*MergeState) ProtoMessage() {} -func (*MergeState) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{12} +func (m *KeyValue) Reset() { *m = KeyValue{} } +func (m *KeyValue) String() string { return proto.CompactTextString(m) } +func (*KeyValue) ProtoMessage() {} +func (*KeyValue) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{14} } -func (m *MergeState) XXX_Unmarshal(b []byte) error { +func (m *KeyValue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *MergeState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *KeyValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_MergeState.Marshal(b, m, deterministic) + return xxx_messageInfo_KeyValue.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -988,65 +1097,57 @@ func (m *MergeState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return b[:n], nil } } -func (m *MergeState) XXX_Merge(src proto.Message) { - xxx_messageInfo_MergeState.Merge(m, src) +func (m *KeyValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeyValue.Merge(m, src) } -func (m *MergeState) XXX_Size() int { +func (m *KeyValue) XXX_Size() int { return m.Size() } -func (m *MergeState) XXX_DiscardUnknown() { - xxx_messageInfo_MergeState.DiscardUnknown(m) +func (m *KeyValue) XXX_DiscardUnknown() { + xxx_messageInfo_KeyValue.DiscardUnknown(m) } -var xxx_messageInfo_MergeState proto.InternalMessageInfo - -func (m *MergeState) GetMinIndex() uint64 { - if m != nil { - return m.MinIndex - } - return 0 -} +var xxx_messageInfo_KeyValue proto.InternalMessageInfo -func (m *MergeState) GetTarget() *metapb.Region { +func (m *KeyValue) GetKey() []byte { if m != nil { - return m.Target + return m.Key } return nil } -func (m *MergeState) GetCommit() uint64 { +func (m *KeyValue) GetValue() []byte { if m != nil { - return m.Commit + return m.Value } - return 0 + return nil } -type MergedRecord struct { - SourceRegionId uint64 `protobuf:"varint,1,opt,name=source_region_id,json=sourceRegionId,proto3" json:"source_region_id,omitempty"` - SourceEpoch *metapb.RegionEpoch `protobuf:"bytes,2,opt,name=source_epoch,json=sourceEpoch,proto3" json:"source_epoch,omitempty"` - SourcePeers []*metapb.Peer `protobuf:"bytes,3,rep,name=source_peers,json=sourcePeers,proto3" json:"source_peers,omitempty"` - TargetRegionId uint64 `protobuf:"varint,4,opt,name=target_region_id,json=targetRegionId,proto3" json:"target_region_id,omitempty"` - TargetEpoch *metapb.RegionEpoch `protobuf:"bytes,5,opt,name=target_epoch,json=targetEpoch,proto3" json:"target_epoch,omitempty"` - TargetPeers []*metapb.Peer `protobuf:"bytes,6,rep,name=target_peers,json=targetPeers,proto3" json:"target_peers,omitempty"` - // Commit merge index. - Index uint64 `protobuf:"varint,7,opt,name=index,proto3" json:"index,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type RaftSnapshotData struct { + Region *metapb.Region `protobuf:"bytes,1,opt,name=region,proto3" json:"region,omitempty"` + FileSize uint64 `protobuf:"varint,2,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"` + Data []*KeyValue `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` + Version uint64 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` + Meta *SnapshotMeta `protobuf:"bytes,5,opt,name=meta,proto3" json:"meta,omitempty"` + RemovedRecords []*metapb.Peer `protobuf:"bytes,6,rep,name=removed_records,json=removedRecords,proto3" json:"removed_records,omitempty"` + MergedRecords []*MergedRecord `protobuf:"bytes,7,rep,name=merged_records,json=mergedRecords,proto3" json:"merged_records,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *MergedRecord) Reset() { *m = MergedRecord{} } -func (m *MergedRecord) String() string { return proto.CompactTextString(m) } -func (*MergedRecord) ProtoMessage() {} -func (*MergedRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{13} +func (m *RaftSnapshotData) Reset() { *m = RaftSnapshotData{} } +func (m *RaftSnapshotData) String() string { return proto.CompactTextString(m) } +func (*RaftSnapshotData) ProtoMessage() {} +func (*RaftSnapshotData) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{15} } -func (m *MergedRecord) XXX_Unmarshal(b []byte) error { +func (m *RaftSnapshotData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *MergedRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *RaftSnapshotData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_MergedRecord.Marshal(b, m, deterministic) + return xxx_messageInfo_RaftSnapshotData.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -1056,96 +1157,88 @@ func (m *MergedRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) return b[:n], nil } } -func (m *MergedRecord) XXX_Merge(src proto.Message) { - xxx_messageInfo_MergedRecord.Merge(m, src) +func (m *RaftSnapshotData) XXX_Merge(src proto.Message) { + xxx_messageInfo_RaftSnapshotData.Merge(m, src) } -func (m *MergedRecord) XXX_Size() int { +func (m *RaftSnapshotData) XXX_Size() int { return m.Size() } -func (m *MergedRecord) XXX_DiscardUnknown() { - xxx_messageInfo_MergedRecord.DiscardUnknown(m) +func (m *RaftSnapshotData) XXX_DiscardUnknown() { + xxx_messageInfo_RaftSnapshotData.DiscardUnknown(m) } -var xxx_messageInfo_MergedRecord proto.InternalMessageInfo +var xxx_messageInfo_RaftSnapshotData proto.InternalMessageInfo -func (m *MergedRecord) GetSourceRegionId() uint64 { +func (m *RaftSnapshotData) GetRegion() *metapb.Region { if m != nil { - return m.SourceRegionId + return m.Region } - return 0 + return nil } -func (m *MergedRecord) GetSourceEpoch() *metapb.RegionEpoch { +func (m *RaftSnapshotData) GetFileSize() uint64 { if m != nil { - return m.SourceEpoch + return m.FileSize } - return nil + return 0 } -func (m *MergedRecord) GetSourcePeers() []*metapb.Peer { +func (m *RaftSnapshotData) GetData() []*KeyValue { if m != nil { - return m.SourcePeers + return m.Data } return nil } -func (m *MergedRecord) GetTargetRegionId() uint64 { +func (m *RaftSnapshotData) GetVersion() uint64 { if m != nil { - return m.TargetRegionId + return m.Version } return 0 } -func (m *MergedRecord) GetTargetEpoch() *metapb.RegionEpoch { +func (m *RaftSnapshotData) GetMeta() *SnapshotMeta { if m != nil { - return m.TargetEpoch + return m.Meta } return nil } -func (m *MergedRecord) GetTargetPeers() []*metapb.Peer { +func (m *RaftSnapshotData) GetRemovedRecords() []*metapb.Peer { if m != nil { - return m.TargetPeers + return m.RemovedRecords } return nil } -func (m *MergedRecord) GetIndex() uint64 { +func (m *RaftSnapshotData) GetMergedRecords() []*MergedRecord { if m != nil { - return m.Index + return m.MergedRecords } - return 0 + return nil } -type RegionLocalState struct { - State PeerState `protobuf:"varint,1,opt,name=state,proto3,enum=raft_serverpb.PeerState" json:"state,omitempty"` - Region *metapb.Region `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"` - MergeState *MergeState `protobuf:"bytes,3,opt,name=merge_state,json=mergeState,proto3" json:"merge_state,omitempty"` - // The apply index corresponding to the storage when it's initialized. - TabletIndex uint64 `protobuf:"varint,4,opt,name=tablet_index,json=tabletIndex,proto3" json:"tablet_index,omitempty"` - // Raft doesn't guarantee peer will be removed in the end. In v1, peer finds out its destiny - // by logs or broadcast; in v2, leader is responsible to ensure removed peers are destroyed. - RemovedRecords []*metapb.Peer `protobuf:"bytes,5,rep,name=removed_records,json=removedRecords,proto3" json:"removed_records,omitempty"` - // Merged peer can't be deleted like gc peers. Instead, leader needs to query target peer to - // decide whether source peer can be destroyed. - MergedRecords []*MergedRecord `protobuf:"bytes,6,rep,name=merged_records,json=mergedRecords,proto3" json:"merged_records,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type StoreIdent struct { + ClusterId uint64 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + StoreId uint64 `protobuf:"varint,2,opt,name=store_id,json=storeId,proto3" json:"store_id,omitempty"` + ApiVersion kvrpcpb.APIVersion `protobuf:"varint,3,opt,name=api_version,json=apiVersion,proto3,enum=kvrpcpb.APIVersion" json:"api_version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *RegionLocalState) Reset() { *m = RegionLocalState{} } -func (m *RegionLocalState) String() string { return proto.CompactTextString(m) } -func (*RegionLocalState) ProtoMessage() {} -func (*RegionLocalState) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{14} +func (m *StoreIdent) Reset() { *m = StoreIdent{} } +func (m *StoreIdent) String() string { return proto.CompactTextString(m) } +func (*StoreIdent) ProtoMessage() {} +func (*StoreIdent) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{16} } -func (m *RegionLocalState) XXX_Unmarshal(b []byte) error { +func (m *StoreIdent) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *RegionLocalState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *StoreIdent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_RegionLocalState.Marshal(b, m, deterministic) + return xxx_messageInfo_StoreIdent.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -1155,82 +1248,63 @@ func (m *RegionLocalState) XXX_Marshal(b []byte, deterministic bool) ([]byte, er return b[:n], nil } } -func (m *RegionLocalState) XXX_Merge(src proto.Message) { - xxx_messageInfo_RegionLocalState.Merge(m, src) +func (m *StoreIdent) XXX_Merge(src proto.Message) { + xxx_messageInfo_StoreIdent.Merge(m, src) } -func (m *RegionLocalState) XXX_Size() int { +func (m *StoreIdent) XXX_Size() int { return m.Size() } -func (m *RegionLocalState) XXX_DiscardUnknown() { - xxx_messageInfo_RegionLocalState.DiscardUnknown(m) -} - -var xxx_messageInfo_RegionLocalState proto.InternalMessageInfo - -func (m *RegionLocalState) GetState() PeerState { - if m != nil { - return m.State - } - return PeerState_Normal +func (m *StoreIdent) XXX_DiscardUnknown() { + xxx_messageInfo_StoreIdent.DiscardUnknown(m) } -func (m *RegionLocalState) GetRegion() *metapb.Region { - if m != nil { - return m.Region - } - return nil -} +var xxx_messageInfo_StoreIdent proto.InternalMessageInfo -func (m *RegionLocalState) GetMergeState() *MergeState { +func (m *StoreIdent) GetClusterId() uint64 { if m != nil { - return m.MergeState + return m.ClusterId } - return nil + return 0 } -func (m *RegionLocalState) GetTabletIndex() uint64 { +func (m *StoreIdent) GetStoreId() uint64 { if m != nil { - return m.TabletIndex + return m.StoreId } return 0 } -func (m *RegionLocalState) GetRemovedRecords() []*metapb.Peer { +func (m *StoreIdent) GetApiVersion() kvrpcpb.APIVersion { if m != nil { - return m.RemovedRecords + return m.ApiVersion } - return nil + return kvrpcpb.APIVersion_V1 } -func (m *RegionLocalState) GetMergedRecords() []*MergedRecord { - if m != nil { - return m.MergedRecords - } - return nil -} - -type RegionSequenceNumberRelation struct { - RegionId uint64 `protobuf:"varint,1,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` - SequenceNumber uint64 `protobuf:"varint,2,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` - ApplyState *RaftApplyState `protobuf:"bytes,3,opt,name=apply_state,json=applyState,proto3" json:"apply_state,omitempty"` - RegionState *RegionLocalState `protobuf:"bytes,4,opt,name=region_state,json=regionState,proto3" json:"region_state,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type StoreRecoverState struct { + // Used for TiKV start recovery when WAL of KVDB was disabled. + // TiKV may read all relations between seqno and raft log index, and replay + // all raft logs which corresponding seqno smaller than the seqno here. + // After TiKV replays all raft logs and flushed KV data, the seqno here must + // be updated. + Seqno uint64 `protobuf:"varint,1,opt,name=seqno,proto3" json:"seqno,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *RegionSequenceNumberRelation) Reset() { *m = RegionSequenceNumberRelation{} } -func (m *RegionSequenceNumberRelation) String() string { return proto.CompactTextString(m) } -func (*RegionSequenceNumberRelation) ProtoMessage() {} -func (*RegionSequenceNumberRelation) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{15} +func (m *StoreRecoverState) Reset() { *m = StoreRecoverState{} } +func (m *StoreRecoverState) String() string { return proto.CompactTextString(m) } +func (*StoreRecoverState) ProtoMessage() {} +func (*StoreRecoverState) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{17} } -func (m *RegionSequenceNumberRelation) XXX_Unmarshal(b []byte) error { +func (m *StoreRecoverState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *RegionSequenceNumberRelation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *StoreRecoverState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_RegionSequenceNumberRelation.Marshal(b, m, deterministic) + return xxx_messageInfo_StoreRecoverState.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -1240,73 +1314,103 @@ func (m *RegionSequenceNumberRelation) XXX_Marshal(b []byte, deterministic bool) return b[:n], nil } } -func (m *RegionSequenceNumberRelation) XXX_Merge(src proto.Message) { - xxx_messageInfo_RegionSequenceNumberRelation.Merge(m, src) +func (m *StoreRecoverState) XXX_Merge(src proto.Message) { + xxx_messageInfo_StoreRecoverState.Merge(m, src) } -func (m *RegionSequenceNumberRelation) XXX_Size() int { +func (m *StoreRecoverState) XXX_Size() int { return m.Size() } -func (m *RegionSequenceNumberRelation) XXX_DiscardUnknown() { - xxx_messageInfo_RegionSequenceNumberRelation.DiscardUnknown(m) +func (m *StoreRecoverState) XXX_DiscardUnknown() { + xxx_messageInfo_StoreRecoverState.DiscardUnknown(m) } -var xxx_messageInfo_RegionSequenceNumberRelation proto.InternalMessageInfo +var xxx_messageInfo_StoreRecoverState proto.InternalMessageInfo -func (m *RegionSequenceNumberRelation) GetRegionId() uint64 { +func (m *StoreRecoverState) GetSeqno() uint64 { if m != nil { - return m.RegionId + return m.Seqno } return 0 } -func (m *RegionSequenceNumberRelation) GetSequenceNumber() uint64 { - if m != nil { - return m.SequenceNumber +type RaftLocalState struct { + HardState *eraftpb.HardState `protobuf:"bytes,1,opt,name=hard_state,json=hardState,proto3" json:"hard_state,omitempty"` + LastIndex uint64 `protobuf:"varint,2,opt,name=last_index,json=lastIndex,proto3" json:"last_index,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RaftLocalState) Reset() { *m = RaftLocalState{} } +func (m *RaftLocalState) String() string { return proto.CompactTextString(m) } +func (*RaftLocalState) ProtoMessage() {} +func (*RaftLocalState) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{18} +} +func (m *RaftLocalState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RaftLocalState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RaftLocalState.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return 0 +} +func (m *RaftLocalState) XXX_Merge(src proto.Message) { + xxx_messageInfo_RaftLocalState.Merge(m, src) +} +func (m *RaftLocalState) XXX_Size() int { + return m.Size() +} +func (m *RaftLocalState) XXX_DiscardUnknown() { + xxx_messageInfo_RaftLocalState.DiscardUnknown(m) } -func (m *RegionSequenceNumberRelation) GetApplyState() *RaftApplyState { +var xxx_messageInfo_RaftLocalState proto.InternalMessageInfo + +func (m *RaftLocalState) GetHardState() *eraftpb.HardState { if m != nil { - return m.ApplyState + return m.HardState } return nil } -func (m *RegionSequenceNumberRelation) GetRegionState() *RegionLocalState { +func (m *RaftLocalState) GetLastIndex() uint64 { if m != nil { - return m.RegionState + return m.LastIndex } - return nil + return 0 } -type CheckGcPeer struct { - // The region ID who triggers the check and wait for report. It should be - // the ID of RaftMessage.from. - FromRegionId uint64 `protobuf:"varint,1,opt,name=from_region_id,json=fromRegionId,proto3" json:"from_region_id,omitempty"` - // The region ID to be checked if should be destroyed. - CheckRegionId uint64 `protobuf:"varint,2,opt,name=check_region_id,json=checkRegionId,proto3" json:"check_region_id,omitempty"` - // The epoch of the region to be checked. - CheckRegionEpoch *metapb.RegionEpoch `protobuf:"bytes,3,opt,name=check_region_epoch,json=checkRegionEpoch,proto3" json:"check_region_epoch,omitempty"` - // The peer to be checked. - CheckPeer *metapb.Peer `protobuf:"bytes,4,opt,name=check_peer,json=checkPeer,proto3" json:"check_peer,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type RaftApplyState struct { + AppliedIndex uint64 `protobuf:"varint,1,opt,name=applied_index,json=appliedIndex,proto3" json:"applied_index,omitempty"` + LastCommitIndex uint64 `protobuf:"varint,3,opt,name=last_commit_index,json=lastCommitIndex,proto3" json:"last_commit_index,omitempty"` + CommitIndex uint64 `protobuf:"varint,4,opt,name=commit_index,json=commitIndex,proto3" json:"commit_index,omitempty"` + CommitTerm uint64 `protobuf:"varint,5,opt,name=commit_term,json=commitTerm,proto3" json:"commit_term,omitempty"` + TruncatedState *RaftTruncatedState `protobuf:"bytes,2,opt,name=truncated_state,json=truncatedState,proto3" json:"truncated_state,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *CheckGcPeer) Reset() { *m = CheckGcPeer{} } -func (m *CheckGcPeer) String() string { return proto.CompactTextString(m) } -func (*CheckGcPeer) ProtoMessage() {} -func (*CheckGcPeer) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{16} +func (m *RaftApplyState) Reset() { *m = RaftApplyState{} } +func (m *RaftApplyState) String() string { return proto.CompactTextString(m) } +func (*RaftApplyState) ProtoMessage() {} +func (*RaftApplyState) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{19} } -func (m *CheckGcPeer) XXX_Unmarshal(b []byte) error { +func (m *RaftApplyState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *CheckGcPeer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *RaftApplyState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_CheckGcPeer.Marshal(b, m, deterministic) + return xxx_messageInfo_RaftApplyState.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -1316,75 +1420,74 @@ func (m *CheckGcPeer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) return b[:n], nil } } -func (m *CheckGcPeer) XXX_Merge(src proto.Message) { - xxx_messageInfo_CheckGcPeer.Merge(m, src) +func (m *RaftApplyState) XXX_Merge(src proto.Message) { + xxx_messageInfo_RaftApplyState.Merge(m, src) } -func (m *CheckGcPeer) XXX_Size() int { +func (m *RaftApplyState) XXX_Size() int { return m.Size() } -func (m *CheckGcPeer) XXX_DiscardUnknown() { - xxx_messageInfo_CheckGcPeer.DiscardUnknown(m) +func (m *RaftApplyState) XXX_DiscardUnknown() { + xxx_messageInfo_RaftApplyState.DiscardUnknown(m) } -var xxx_messageInfo_CheckGcPeer proto.InternalMessageInfo +var xxx_messageInfo_RaftApplyState proto.InternalMessageInfo -func (m *CheckGcPeer) GetFromRegionId() uint64 { +func (m *RaftApplyState) GetAppliedIndex() uint64 { if m != nil { - return m.FromRegionId + return m.AppliedIndex } return 0 } -func (m *CheckGcPeer) GetCheckRegionId() uint64 { +func (m *RaftApplyState) GetLastCommitIndex() uint64 { if m != nil { - return m.CheckRegionId + return m.LastCommitIndex } return 0 } -func (m *CheckGcPeer) GetCheckRegionEpoch() *metapb.RegionEpoch { +func (m *RaftApplyState) GetCommitIndex() uint64 { if m != nil { - return m.CheckRegionEpoch + return m.CommitIndex } - return nil + return 0 } -func (m *CheckGcPeer) GetCheckPeer() *metapb.Peer { +func (m *RaftApplyState) GetCommitTerm() uint64 { if m != nil { - return m.CheckPeer + return m.CommitTerm + } + return 0 +} + +func (m *RaftApplyState) GetTruncatedState() *RaftTruncatedState { + if m != nil { + return m.TruncatedState } return nil } -type ExtraMessage struct { - Type ExtraMessageType `protobuf:"varint,1,opt,name=type,proto3,enum=raft_serverpb.ExtraMessageType" json:"type,omitempty"` - // It's merge related index. In `WantRollbackMerge`, it's prepare merge index. In - // `MsgGcPeerRequest`, it's the commit merge index. In `MsgVoterReplicatedIndexRequest` - // it's the voter_replicated_index. - Index uint64 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"` - // In `MsgCheckStalePeerResponse`, it's the peers that receiver can continue to query. - CheckPeers []*metapb.Peer `protobuf:"bytes,3,rep,name=check_peers,json=checkPeers,proto3" json:"check_peers,omitempty"` - WaitData bool `protobuf:"varint,4,opt,name=wait_data,json=waitData,proto3" json:"wait_data,omitempty"` - // Flag for forcely wake up hibernate regions if true. - ForcelyAwaken bool `protobuf:"varint,5,opt,name=forcely_awaken,json=forcelyAwaken,proto3" json:"forcely_awaken,omitempty"` - CheckGcPeer *CheckGcPeer `protobuf:"bytes,6,opt,name=check_gc_peer,json=checkGcPeer,proto3" json:"check_gc_peer,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type MergeState struct { + MinIndex uint64 `protobuf:"varint,1,opt,name=min_index,json=minIndex,proto3" json:"min_index,omitempty"` + Target *metapb.Region `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` + Commit uint64 `protobuf:"varint,3,opt,name=commit,proto3" json:"commit,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *ExtraMessage) Reset() { *m = ExtraMessage{} } -func (m *ExtraMessage) String() string { return proto.CompactTextString(m) } -func (*ExtraMessage) ProtoMessage() {} -func (*ExtraMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{17} +func (m *MergeState) Reset() { *m = MergeState{} } +func (m *MergeState) String() string { return proto.CompactTextString(m) } +func (*MergeState) ProtoMessage() {} +func (*MergeState) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{20} } -func (m *ExtraMessage) XXX_Unmarshal(b []byte) error { +func (m *MergeState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *ExtraMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *MergeState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_ExtraMessage.Marshal(b, m, deterministic) + return xxx_messageInfo_MergeState.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -1394,604 +1497,630 @@ func (m *ExtraMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) return b[:n], nil } } -func (m *ExtraMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExtraMessage.Merge(m, src) +func (m *MergeState) XXX_Merge(src proto.Message) { + xxx_messageInfo_MergeState.Merge(m, src) } -func (m *ExtraMessage) XXX_Size() int { +func (m *MergeState) XXX_Size() int { return m.Size() } -func (m *ExtraMessage) XXX_DiscardUnknown() { - xxx_messageInfo_ExtraMessage.DiscardUnknown(m) +func (m *MergeState) XXX_DiscardUnknown() { + xxx_messageInfo_MergeState.DiscardUnknown(m) } -var xxx_messageInfo_ExtraMessage proto.InternalMessageInfo - -func (m *ExtraMessage) GetType() ExtraMessageType { - if m != nil { - return m.Type - } - return ExtraMessageType_MsgRegionWakeUp -} +var xxx_messageInfo_MergeState proto.InternalMessageInfo -func (m *ExtraMessage) GetIndex() uint64 { +func (m *MergeState) GetMinIndex() uint64 { if m != nil { - return m.Index + return m.MinIndex } return 0 } -func (m *ExtraMessage) GetCheckPeers() []*metapb.Peer { +func (m *MergeState) GetTarget() *metapb.Region { if m != nil { - return m.CheckPeers + return m.Target } return nil } -func (m *ExtraMessage) GetWaitData() bool { +func (m *MergeState) GetCommit() uint64 { if m != nil { - return m.WaitData + return m.Commit } - return false + return 0 } -func (m *ExtraMessage) GetForcelyAwaken() bool { - if m != nil { - return m.ForcelyAwaken - } - return false -} +type MergedRecord struct { + SourceRegionId uint64 `protobuf:"varint,1,opt,name=source_region_id,json=sourceRegionId,proto3" json:"source_region_id,omitempty"` + SourceEpoch *metapb.RegionEpoch `protobuf:"bytes,2,opt,name=source_epoch,json=sourceEpoch,proto3" json:"source_epoch,omitempty"` + SourcePeers []*metapb.Peer `protobuf:"bytes,3,rep,name=source_peers,json=sourcePeers,proto3" json:"source_peers,omitempty"` + TargetRegionId uint64 `protobuf:"varint,4,opt,name=target_region_id,json=targetRegionId,proto3" json:"target_region_id,omitempty"` + TargetEpoch *metapb.RegionEpoch `protobuf:"bytes,5,opt,name=target_epoch,json=targetEpoch,proto3" json:"target_epoch,omitempty"` + TargetPeers []*metapb.Peer `protobuf:"bytes,6,rep,name=target_peers,json=targetPeers,proto3" json:"target_peers,omitempty"` + // Commit merge index. + Index uint64 `protobuf:"varint,7,opt,name=index,proto3" json:"index,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} -func (m *ExtraMessage) GetCheckGcPeer() *CheckGcPeer { - if m != nil { - return m.CheckGcPeer +func (m *MergedRecord) Reset() { *m = MergedRecord{} } +func (m *MergedRecord) String() string { return proto.CompactTextString(m) } +func (*MergedRecord) ProtoMessage() {} +func (*MergedRecord) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{21} +} +func (m *MergedRecord) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MergedRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MergedRecord.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return nil } - -func init() { - proto.RegisterEnum("raft_serverpb.PeerState", PeerState_name, PeerState_value) - proto.RegisterEnum("raft_serverpb.ExtraMessageType", ExtraMessageType_name, ExtraMessageType_value) - proto.RegisterType((*RaftMessage)(nil), "raft_serverpb.RaftMessage") - proto.RegisterType((*RaftTruncatedState)(nil), "raft_serverpb.RaftTruncatedState") - proto.RegisterType((*SnapshotCFFile)(nil), "raft_serverpb.SnapshotCFFile") - proto.RegisterType((*SnapshotMeta)(nil), "raft_serverpb.SnapshotMeta") - proto.RegisterType((*SnapshotChunk)(nil), "raft_serverpb.SnapshotChunk") - proto.RegisterType((*Done)(nil), "raft_serverpb.Done") - proto.RegisterType((*KeyValue)(nil), "raft_serverpb.KeyValue") - proto.RegisterType((*RaftSnapshotData)(nil), "raft_serverpb.RaftSnapshotData") - proto.RegisterType((*StoreIdent)(nil), "raft_serverpb.StoreIdent") - proto.RegisterType((*StoreRecoverState)(nil), "raft_serverpb.StoreRecoverState") - proto.RegisterType((*RaftLocalState)(nil), "raft_serverpb.RaftLocalState") - proto.RegisterType((*RaftApplyState)(nil), "raft_serverpb.RaftApplyState") - proto.RegisterType((*MergeState)(nil), "raft_serverpb.MergeState") - proto.RegisterType((*MergedRecord)(nil), "raft_serverpb.MergedRecord") - proto.RegisterType((*RegionLocalState)(nil), "raft_serverpb.RegionLocalState") - proto.RegisterType((*RegionSequenceNumberRelation)(nil), "raft_serverpb.RegionSequenceNumberRelation") - proto.RegisterType((*CheckGcPeer)(nil), "raft_serverpb.CheckGcPeer") - proto.RegisterType((*ExtraMessage)(nil), "raft_serverpb.ExtraMessage") +func (m *MergedRecord) XXX_Merge(src proto.Message) { + xxx_messageInfo_MergedRecord.Merge(m, src) +} +func (m *MergedRecord) XXX_Size() int { + return m.Size() +} +func (m *MergedRecord) XXX_DiscardUnknown() { + xxx_messageInfo_MergedRecord.DiscardUnknown(m) } -func init() { proto.RegisterFile("raft_serverpb.proto", fileDescriptor_130ebc2f2c37a342) } +var xxx_messageInfo_MergedRecord proto.InternalMessageInfo -var fileDescriptor_130ebc2f2c37a342 = []byte{ - // 1724 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x4f, 0x93, 0x1b, 0x47, - 0x15, 0xcf, 0x48, 0xb2, 0x34, 0x7a, 0x1a, 0x69, 0xc7, 0xbd, 0x76, 0x2c, 0xef, 0xe2, 0xdd, 0xb5, - 0x4c, 0x9c, 0x8d, 0x53, 0x28, 0x95, 0x8d, 0x49, 0xa5, 0x38, 0xb8, 0x6a, 0x77, 0x9d, 0x90, 0x25, - 0x28, 0xe5, 0x9a, 0x5d, 0xdb, 0xc5, 0x69, 0xaa, 0x35, 0xd3, 0x9a, 0x1d, 0x34, 0xff, 0xd2, 0xdd, - 0x92, 0x2d, 0x8a, 0x13, 0x67, 0x3e, 0x00, 0x1f, 0x81, 0x0f, 0xc2, 0x81, 0x82, 0x0b, 0x07, 0x0e, - 0x1c, 0x29, 0x73, 0xe1, 0xca, 0x91, 0x1b, 0xd5, 0xfd, 0x7a, 0xa4, 0x91, 0x22, 0x9b, 0x82, 0x93, - 0xba, 0xdf, 0xfb, 0xbd, 0x9e, 0xdf, 0xeb, 0xf7, 0xa7, 0x9f, 0x60, 0x97, 0xd3, 0x89, 0xf4, 0x05, - 0xe3, 0x73, 0xc6, 0x8b, 0xf1, 0xb0, 0xe0, 0xb9, 0xcc, 0x49, 0x77, 0x4d, 0xb8, 0xd7, 0x65, 0x6a, - 0x5f, 0x6a, 0xf7, 0x9c, 0x94, 0x49, 0xba, 0xdc, 0x75, 0xa7, 0x73, 0x5e, 0x04, 0xcb, 0xad, 0x1b, - 0xc6, 0x62, 0xea, 0xcf, 0x04, 0x8d, 0x98, 0x91, 0xec, 0xf0, 0x99, 0x90, 0x7a, 0x89, 0x82, 0xc1, - 0xbf, 0xeb, 0xd0, 0xf1, 0xe8, 0x44, 0x8e, 0x98, 0x50, 0x30, 0xb2, 0x0f, 0x6d, 0xce, 0xa2, 0x38, - 0xcf, 0xfc, 0x38, 0xec, 0x5b, 0x47, 0xd6, 0x71, 0xc3, 0xb3, 0x51, 0x70, 0x11, 0x92, 0x8f, 0xa0, - 0x3d, 0xe1, 0x79, 0xea, 0x17, 0x8c, 0xf1, 0x7e, 0xed, 0xc8, 0x3a, 0xee, 0x9c, 0x38, 0x43, 0x43, - 0xe0, 0x19, 0x63, 0xdc, 0xb3, 0x95, 0x5a, 0xad, 0xc8, 0x07, 0xd0, 0x92, 0x39, 0x02, 0xeb, 0x5b, - 0x80, 0x4d, 0x99, 0x6b, 0xd8, 0x23, 0x68, 0xa5, 0xf8, 0xe5, 0x7e, 0x43, 0xc3, 0xdc, 0x61, 0xe9, - 0x9f, 0x61, 0xe4, 0x95, 0x00, 0xf2, 0x39, 0x38, 0x86, 0x1a, 0x2b, 0xf2, 0xe0, 0xba, 0x7f, 0x43, - 0x1b, 0xec, 0x96, 0xe7, 0x7a, 0x5a, 0xf7, 0xa5, 0x52, 0x79, 0x1d, 0xbe, 0xda, 0x90, 0xfb, 0xe0, - 0xc4, 0xc2, 0x97, 0x79, 0x3a, 0x16, 0x32, 0xcf, 0x58, 0xbf, 0x79, 0x64, 0x1d, 0xdb, 0x5e, 0x27, - 0x16, 0x57, 0xa5, 0x48, 0x79, 0x2d, 0x24, 0xe5, 0xd2, 0x9f, 0xb2, 0x45, 0xbf, 0x75, 0x64, 0x1d, - 0x3b, 0x9e, 0xad, 0x05, 0xdf, 0xb0, 0x05, 0xb9, 0x03, 0x2d, 0x96, 0x85, 0x5a, 0x65, 0x6b, 0x55, - 0x93, 0x65, 0xa1, 0x52, 0x7c, 0x0a, 0x4e, 0xca, 0x78, 0xc4, 0x7c, 0x49, 0x79, 0xc4, 0x64, 0xbf, - 0xad, 0x09, 0xf5, 0xd6, 0x09, 0x79, 0x1d, 0x8d, 0xb9, 0xd2, 0x10, 0xf2, 0x05, 0xb4, 0xd9, 0x6b, - 0xc9, 0xa9, 0x9f, 0x8a, 0xa8, 0x0f, 0x1a, 0xbf, 0x3f, 0x5c, 0x8f, 0xfa, 0x97, 0x4a, 0x5f, 0x3a, - 0x6f, 0x6b, 0xf4, 0x48, 0x44, 0x8a, 0x22, 0x5a, 0x06, 0xf2, 0x75, 0xbf, 0x83, 0x14, 0xb5, 0xe0, - 0x5c, 0xbe, 0x26, 0x8f, 0x01, 0x56, 0xa1, 0xee, 0x3b, 0x47, 0xd6, 0x71, 0xef, 0xe4, 0xf6, 0xb0, - 0x12, 0xfd, 0xa7, 0xb1, 0x98, 0x3e, 0xd7, 0x27, 0xb6, 0xc3, 0x72, 0x39, 0x78, 0x02, 0x44, 0x85, - 0xfe, 0x8a, 0xcf, 0xb2, 0x80, 0x4a, 0x16, 0x5e, 0x4a, 0x2a, 0x19, 0xb9, 0x05, 0x37, 0xe2, 0x2c, - 0x64, 0xaf, 0x4d, 0xf4, 0x71, 0x43, 0x08, 0x34, 0x24, 0xe3, 0xa9, 0x8e, 0x7a, 0xc3, 0xd3, 0xeb, - 0xc1, 0x33, 0xe8, 0x5d, 0x66, 0xb4, 0x10, 0xd7, 0xb9, 0x3c, 0xff, 0xea, 0xab, 0x38, 0x61, 0xa4, - 0x07, 0xb5, 0x60, 0xa2, 0x0d, 0xdb, 0x5e, 0x2d, 0x98, 0x28, 0x2b, 0x11, 0xff, 0x8a, 0x95, 0x56, - 0x6a, 0x4d, 0xf6, 0xc0, 0x0e, 0xae, 0x59, 0x30, 0x15, 0xb3, 0x54, 0xa7, 0x46, 0xd7, 0x5b, 0xee, - 0x07, 0x7f, 0xb5, 0xc0, 0x29, 0x8f, 0x1c, 0x31, 0x49, 0xc9, 0x17, 0x60, 0x07, 0x13, 0x7f, 0x12, - 0x27, 0x4c, 0xf4, 0xad, 0xa3, 0xfa, 0x71, 0xe7, 0xe4, 0xde, 0xc6, 0x75, 0xad, 0x33, 0xf0, 0x5a, - 0xc1, 0x44, 0xfd, 0x0a, 0x72, 0x08, 0x9d, 0x49, 0xce, 0xfd, 0x31, 0x4d, 0x68, 0x16, 0x20, 0x03, - 0xdb, 0x83, 0x49, 0xce, 0xcf, 0x50, 0x52, 0x02, 0x5e, 0xc5, 0x32, 0x63, 0x42, 0x68, 0x2a, 0x08, - 0x78, 0x89, 0x12, 0x75, 0x11, 0x3a, 0x07, 0x74, 0x66, 0x36, 0x3c, 0xdc, 0x90, 0x13, 0xb8, 0x1d, - 0xb1, 0x8c, 0x71, 0x2a, 0x99, 0x1f, 0xce, 0x38, 0x95, 0x2a, 0x21, 0x05, 0x0b, 0x74, 0x3a, 0x36, - 0xbc, 0xdd, 0x52, 0xf9, 0xd4, 0xe8, 0x2e, 0x59, 0x30, 0xf8, 0x05, 0x74, 0x97, 0x34, 0xaf, 0x67, - 0xd9, 0x94, 0x3c, 0x5e, 0xa5, 0xbd, 0xa5, 0x93, 0x60, 0x6f, 0xc3, 0xab, 0x4a, 0x49, 0xae, 0x0a, - 0x80, 0x40, 0x23, 0xa4, 0x92, 0x6a, 0x5f, 0x1c, 0x4f, 0xaf, 0x07, 0x4d, 0x68, 0x3c, 0xcd, 0x33, - 0x36, 0x38, 0x01, 0xfb, 0x1b, 0xb6, 0x78, 0x41, 0x93, 0x19, 0x23, 0x2e, 0xd4, 0x55, 0xb2, 0x5a, - 0x1a, 0xa6, 0x96, 0xca, 0x95, 0xb9, 0x52, 0x19, 0x53, 0xdc, 0x0c, 0xfe, 0x54, 0x03, 0x57, 0x7d, - 0xa8, 0xe4, 0xf6, 0x94, 0x4a, 0x4a, 0x1e, 0x42, 0x13, 0x8b, 0xc7, 0x30, 0xdb, 0x4c, 0x67, 0xa3, - 0x55, 0xf9, 0xa8, 0xc2, 0xe2, 0x57, 0xe2, 0x6b, 0x2b, 0xc1, 0xa5, 0x8a, 0xf1, 0xc7, 0x86, 0x69, - 0x5d, 0x87, 0xec, 0xce, 0x86, 0x73, 0x25, 0x51, 0x74, 0x81, 0xf4, 0xa1, 0x35, 0x67, 0x5c, 0xa8, - 0x4f, 0xe2, 0x4d, 0x97, 0x5b, 0xf2, 0x09, 0x34, 0xd4, 0xc7, 0x4d, 0xa5, 0xef, 0xbf, 0x25, 0xf2, - 0x2a, 0x51, 0x3c, 0x0d, 0x24, 0x3f, 0x86, 0x1d, 0xce, 0xd2, 0x7c, 0xce, 0x42, 0x9f, 0xb3, 0x20, - 0xe7, 0xa1, 0xe8, 0x37, 0x35, 0x85, 0xf5, 0xee, 0xd3, 0x33, 0x20, 0x0f, 0x31, 0xe4, 0x0c, 0x7a, - 0xba, 0x48, 0x57, 0x56, 0x2d, 0x6d, 0xb5, 0xf9, 0xc5, 0x91, 0x06, 0xa1, 0x95, 0xd7, 0x4d, 0x2b, - 0x3b, 0x31, 0xf8, 0x35, 0xc0, 0xa5, 0xcc, 0x39, 0xbb, 0x08, 0x59, 0x26, 0xc9, 0x3d, 0x80, 0x20, - 0x99, 0x09, 0xc9, 0xf8, 0xaa, 0x8f, 0xb6, 0x8d, 0xe4, 0x22, 0x24, 0x77, 0xc1, 0x16, 0x0a, 0xac, - 0x94, 0x78, 0x77, 0x2d, 0x81, 0xc6, 0xe4, 0x31, 0x74, 0x68, 0x11, 0xfb, 0xe5, 0x8d, 0xd4, 0x75, - 0x2d, 0xef, 0x0e, 0xcb, 0xc6, 0x7e, 0xfa, 0xec, 0xe2, 0x05, 0xaa, 0x3c, 0xa0, 0x45, 0x6c, 0xd6, - 0x83, 0x8f, 0xe0, 0xa6, 0xfe, 0xba, 0x62, 0x33, 0x67, 0x7c, 0x59, 0xc9, 0x82, 0x7d, 0x97, 0xe5, - 0x65, 0x25, 0xeb, 0xcd, 0x60, 0x0c, 0x3d, 0x15, 0xf4, 0x9f, 0xe7, 0x01, 0x4d, 0x10, 0xf7, 0x29, - 0xc0, 0x35, 0xe5, 0xa1, 0x2f, 0xd4, 0xce, 0x84, 0x9d, 0x2c, 0xfb, 0xf0, 0xd7, 0x94, 0x63, 0x67, - 0xf0, 0xda, 0xd7, 0xe5, 0x52, 0xf9, 0x97, 0x50, 0x21, 0x7d, 0xec, 0x14, 0xe8, 0x42, 0x5b, 0x49, - 0x2e, 0x94, 0x60, 0xf0, 0x2f, 0x0b, 0x3f, 0x72, 0x5a, 0x14, 0xc9, 0x02, 0x2d, 0x1e, 0x40, 0x97, - 0x16, 0x45, 0x12, 0xb3, 0xd0, 0xaf, 0xb6, 0x17, 0xc7, 0x08, 0xb5, 0x1d, 0x79, 0x04, 0x37, 0xf5, - 0xb1, 0x41, 0x9e, 0xa6, 0x71, 0x79, 0x7a, 0x5d, 0x03, 0x77, 0x94, 0xe2, 0x5c, 0xcb, 0x11, 0x7b, - 0x1f, 0x9c, 0x35, 0x18, 0xe6, 0x4e, 0x27, 0xa8, 0x40, 0x0e, 0xc1, 0x6c, 0x7d, 0xdd, 0xbb, 0xb0, - 0x42, 0x01, 0x45, 0x57, 0x8c, 0xa7, 0xe4, 0x67, 0xb0, 0x23, 0xcb, 0xee, 0x67, 0xdc, 0xc7, 0x67, - 0xed, 0xfe, 0x96, 0x7a, 0x5c, 0xef, 0x93, 0x5e, 0x4f, 0xae, 0xed, 0x07, 0x31, 0x80, 0xce, 0x0f, - 0x74, 0x77, 0x1f, 0xda, 0x69, 0x9c, 0xad, 0xb9, 0x6a, 0xa7, 0x71, 0x86, 0xbc, 0x1e, 0x42, 0xd3, - 0x3c, 0x19, 0xb5, 0xed, 0x35, 0x86, 0x5a, 0xf2, 0x3e, 0x34, 0x91, 0xac, 0xb9, 0x03, 0xb3, 0x53, - 0x85, 0xeb, 0x54, 0x73, 0x91, 0x1c, 0x83, 0x2b, 0xf2, 0x19, 0x0f, 0x98, 0xbf, 0xf9, 0x78, 0xf7, - 0x50, 0xee, 0x95, 0x4f, 0xf8, 0xe7, 0xe0, 0x18, 0x24, 0x3e, 0xa2, 0xb5, 0x77, 0x3c, 0xa2, 0x08, - 0xc4, 0x47, 0xf4, 0x93, 0xa5, 0x9d, 0x7a, 0xd3, 0x85, 0xa9, 0xec, 0xf5, 0xb2, 0x32, 0x06, 0x6a, - 0x2d, 0x14, 0x25, 0xf4, 0xa2, 0x42, 0x09, 0x43, 0xd4, 0x43, 0x79, 0x95, 0x92, 0x41, 0xfe, 0xf7, - 0x77, 0x1d, 0x81, 0x4b, 0x4a, 0xc6, 0x0e, 0x29, 0x6d, 0xab, 0x74, 0x63, 0x80, 0x94, 0x96, 0x2f, - 0x5b, 0xab, 0xf2, 0xb2, 0x0d, 0xfe, 0xa0, 0xba, 0xa0, 0xfe, 0x46, 0xa5, 0x24, 0x86, 0xba, 0xf7, - 0x9b, 0x6a, 0xe8, 0x9d, 0xf4, 0x37, 0xd2, 0x41, 0x9d, 0x87, 0x59, 0x80, 0xb0, 0x4a, 0xd7, 0xac, - 0xbd, 0xb3, 0x6b, 0xfe, 0x04, 0x70, 0x1c, 0x30, 0xc9, 0x86, 0xa3, 0xd1, 0xdd, 0x6d, 0x6d, 0x06, - 0x8f, 0x87, 0x74, 0x95, 0x52, 0xf7, 0x95, 0xbf, 0xe3, 0x84, 0x6d, 0x24, 0x3c, 0xca, 0x30, 0xb1, - 0xb6, 0xf4, 0xbf, 0x1b, 0xff, 0x57, 0xff, 0x6b, 0xfe, 0xcf, 0xfd, 0xef, 0x9f, 0x16, 0xfc, 0x00, - 0x9d, 0xbd, 0x64, 0xdf, 0xcd, 0x58, 0x16, 0xb0, 0x6f, 0x67, 0xe9, 0x98, 0x71, 0x8f, 0x25, 0xfa, - 0x1d, 0x7c, 0xf7, 0x64, 0xf9, 0x21, 0xec, 0x08, 0x63, 0xe6, 0x67, 0xda, 0xce, 0x34, 0x95, 0x9e, - 0x58, 0x3b, 0x8d, 0x3c, 0x51, 0xed, 0xb1, 0x48, 0x16, 0x6b, 0x17, 0x78, 0x6f, 0x4b, 0xb5, 0xae, - 0x5a, 0x8f, 0x6a, 0x94, 0xcb, 0x36, 0x74, 0xb6, 0x1c, 0x22, 0xf1, 0x00, 0x9c, 0x3a, 0x0f, 0x37, - 0x0f, 0xd8, 0xc8, 0x87, 0x72, 0xa0, 0xc4, 0x4a, 0xff, 0xb3, 0x05, 0x9d, 0x73, 0x35, 0xb2, 0xfc, - 0x34, 0xd0, 0x43, 0xec, 0x0f, 0xa1, 0xa7, 0xc7, 0xe2, 0x4d, 0xf7, 0x1c, 0x25, 0x5d, 0xa6, 0xf9, - 0x43, 0xd8, 0xd1, 0x73, 0x4e, 0x05, 0x86, 0x2e, 0x76, 0xb5, 0x78, 0x89, 0x3b, 0x05, 0xb2, 0x86, - 0xc3, 0xa2, 0xa8, 0xbf, 0xbd, 0x28, 0xdc, 0x8a, 0x3d, 0x56, 0xc6, 0xc7, 0x00, 0x78, 0x84, 0x9e, - 0xbf, 0x1b, 0x5b, 0xe6, 0xef, 0xb6, 0xd6, 0xab, 0xe5, 0xe0, 0xb7, 0x35, 0x70, 0xaa, 0x33, 0x27, - 0xf9, 0x0c, 0x1a, 0x72, 0x51, 0x94, 0xa9, 0x7f, 0xf8, 0x8e, 0xf1, 0xf4, 0x6a, 0x51, 0x30, 0x4f, - 0x83, 0x57, 0xb5, 0x55, 0xab, 0x4e, 0x8d, 0x3f, 0x82, 0xce, 0x8a, 0xc8, 0xf6, 0xa6, 0x01, 0x4b, - 0x26, 0x42, 0xa5, 0xc8, 0x2b, 0x1a, 0x4b, 0x5f, 0xcf, 0x0e, 0x0d, 0x3d, 0x90, 0xd9, 0x4a, 0xa0, - 0x07, 0x93, 0x0f, 0xa0, 0x37, 0xc9, 0x79, 0xc0, 0x92, 0x85, 0x4f, 0x5f, 0xd1, 0x29, 0xcb, 0x74, - 0xa3, 0xb0, 0xbd, 0xae, 0x91, 0x9e, 0x6a, 0x21, 0x79, 0x02, 0x78, 0x9f, 0x7e, 0x14, 0xa0, 0xfb, - 0xcd, 0xad, 0x03, 0x56, 0x25, 0x7e, 0x1e, 0x72, 0xc4, 0xcd, 0x23, 0x0f, 0xda, 0xcb, 0xea, 0x26, - 0x00, 0xcd, 0x6f, 0x73, 0x9e, 0xd2, 0xc4, 0x7d, 0x8f, 0x38, 0x60, 0xeb, 0x9c, 0x8a, 0xb3, 0xc8, - 0xb5, 0x48, 0x17, 0xda, 0xcb, 0xbf, 0x0f, 0x6e, 0x8d, 0x74, 0xa0, 0xa5, 0x8a, 0x43, 0xe9, 0xea, - 0x64, 0x07, 0x3a, 0xcf, 0x33, 0x3a, 0xa7, 0x71, 0xa2, 0x4a, 0xd3, 0x6d, 0x3c, 0xfa, 0x4d, 0x1d, - 0xdc, 0xcd, 0x7b, 0x23, 0xbb, 0xb0, 0x33, 0x12, 0x11, 0x86, 0xed, 0x25, 0x9d, 0xb2, 0xe7, 0x85, - 0xfb, 0x1e, 0xe9, 0xc3, 0xad, 0x91, 0x88, 0x5e, 0xd2, 0x4c, 0x7a, 0x79, 0x92, 0x8c, 0x69, 0x30, - 0xd5, 0x35, 0xe7, 0x5a, 0xe4, 0x36, 0xdc, 0x1c, 0x89, 0x48, 0xd3, 0xbe, 0x94, 0x34, 0xd1, 0x5d, - 0xd6, 0xad, 0x91, 0x7b, 0x70, 0xf7, 0x7b, 0x62, 0x8f, 0x89, 0x22, 0xcf, 0x04, 0x73, 0xeb, 0xe4, - 0x0e, 0xec, 0x8e, 0x44, 0xf4, 0x75, 0x3c, 0x66, 0x3c, 0x53, 0x79, 0xac, 0x8a, 0x49, 0x48, 0xb7, - 0x61, 0x3e, 0x54, 0x51, 0x18, 0x93, 0x1b, 0xe4, 0x43, 0x78, 0xa0, 0x79, 0xfd, 0x92, 0x05, 0x12, - 0x07, 0x85, 0xe8, 0x9c, 0xce, 0x04, 0x0b, 0xcf, 0x16, 0x23, 0x96, 0xe6, 0x7c, 0xa1, 0xff, 0x3c, - 0xb8, 0x4d, 0xb2, 0x07, 0xef, 0x8f, 0x44, 0x74, 0x8a, 0x7e, 0xc6, 0x49, 0x2c, 0x17, 0xe5, 0xf1, - 0x2d, 0xb2, 0x0f, 0x77, 0xbe, 0xa7, 0x33, 0x5f, 0xb0, 0xc9, 0x00, 0x0e, 0x46, 0x22, 0x7a, 0x91, - 0x4b, 0x45, 0xb5, 0x48, 0x62, 0xfd, 0x88, 0xea, 0x06, 0x56, 0x1e, 0xd0, 0x26, 0x0f, 0xe0, 0xf0, - 0xad, 0x18, 0x73, 0x10, 0x90, 0x5b, 0xe0, 0x8e, 0x44, 0x64, 0xa2, 0x68, 0x4c, 0x3b, 0xe6, 0xa6, - 0x4a, 0xa9, 0x01, 0x3b, 0x67, 0x0f, 0xff, 0xf6, 0x7b, 0xdb, 0xfa, 0xe3, 0x9b, 0x03, 0xeb, 0x2f, - 0x6f, 0x0e, 0xac, 0xbf, 0xbf, 0x39, 0xb0, 0x7e, 0xf7, 0x8f, 0x83, 0xf7, 0xc0, 0xcd, 0x79, 0x34, - 0x94, 0xf1, 0x74, 0x3e, 0x9c, 0xce, 0xf5, 0x3f, 0xe2, 0x71, 0x53, 0xff, 0x7c, 0xf6, 0x9f, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x3c, 0xbe, 0xbf, 0x5d, 0x8d, 0x0f, 0x00, 0x00, +func (m *MergedRecord) GetSourceRegionId() uint64 { + if m != nil { + return m.SourceRegionId + } + return 0 } -func (m *RaftMessage) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *MergedRecord) GetSourceEpoch() *metapb.RegionEpoch { + if m != nil { + return m.SourceEpoch } - return dAtA[:n], nil + return nil } -func (m *RaftMessage) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *MergedRecord) GetSourcePeers() []*metapb.Peer { + if m != nil { + return m.SourcePeers + } + return nil } -func (m *RaftMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) +func (m *MergedRecord) GetTargetRegionId() uint64 { + if m != nil { + return m.TargetRegionId } - if m.DiskUsage != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.DiskUsage)) - i-- - dAtA[i] = 0x60 + return 0 +} + +func (m *MergedRecord) GetTargetEpoch() *metapb.RegionEpoch { + if m != nil { + return m.TargetEpoch } - if len(m.ExtraCtx) > 0 { - i -= len(m.ExtraCtx) - copy(dAtA[i:], m.ExtraCtx) - i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.ExtraCtx))) - i-- - dAtA[i] = 0x5a + return nil +} + +func (m *MergedRecord) GetTargetPeers() []*metapb.Peer { + if m != nil { + return m.TargetPeers } - if m.ExtraMsg != nil { - { - size, err := m.ExtraMsg.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x52 + return nil +} + +func (m *MergedRecord) GetIndex() uint64 { + if m != nil { + return m.Index } - if m.MergeTarget != nil { - { - size, err := m.MergeTarget.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + return 0 +} + +type RegionLocalState struct { + State PeerState `protobuf:"varint,1,opt,name=state,proto3,enum=raft_serverpb.PeerState" json:"state,omitempty"` + Region *metapb.Region `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"` + MergeState *MergeState `protobuf:"bytes,3,opt,name=merge_state,json=mergeState,proto3" json:"merge_state,omitempty"` + // The apply index corresponding to the storage when it's initialized. + TabletIndex uint64 `protobuf:"varint,4,opt,name=tablet_index,json=tabletIndex,proto3" json:"tablet_index,omitempty"` + // Raft doesn't guarantee peer will be removed in the end. In v1, peer finds out its destiny + // by logs or broadcast; in v2, leader is responsible to ensure removed peers are destroyed. + RemovedRecords []*metapb.Peer `protobuf:"bytes,5,rep,name=removed_records,json=removedRecords,proto3" json:"removed_records,omitempty"` + // Merged peer can't be deleted like gc peers. Instead, leader needs to query target peer to + // decide whether source peer can be destroyed. + MergedRecords []*MergedRecord `protobuf:"bytes,6,rep,name=merged_records,json=mergedRecords,proto3" json:"merged_records,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RegionLocalState) Reset() { *m = RegionLocalState{} } +func (m *RegionLocalState) String() string { return proto.CompactTextString(m) } +func (*RegionLocalState) ProtoMessage() {} +func (*RegionLocalState) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{22} +} +func (m *RegionLocalState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RegionLocalState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RegionLocalState.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err } - i-- - dAtA[i] = 0x4a + return b[:n], nil } - if len(m.EndKey) > 0 { - i -= len(m.EndKey) - copy(dAtA[i:], m.EndKey) - i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.EndKey))) - i-- - dAtA[i] = 0x42 +} +func (m *RegionLocalState) XXX_Merge(src proto.Message) { + xxx_messageInfo_RegionLocalState.Merge(m, src) +} +func (m *RegionLocalState) XXX_Size() int { + return m.Size() +} +func (m *RegionLocalState) XXX_DiscardUnknown() { + xxx_messageInfo_RegionLocalState.DiscardUnknown(m) +} + +var xxx_messageInfo_RegionLocalState proto.InternalMessageInfo + +func (m *RegionLocalState) GetState() PeerState { + if m != nil { + return m.State } - if len(m.StartKey) > 0 { - i -= len(m.StartKey) - copy(dAtA[i:], m.StartKey) - i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.StartKey))) - i-- - dAtA[i] = 0x3a + return PeerState_Normal +} + +func (m *RegionLocalState) GetRegion() *metapb.Region { + if m != nil { + return m.Region } - if m.IsTombstone { - i-- - if m.IsTombstone { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x30 + return nil +} + +func (m *RegionLocalState) GetMergeState() *MergeState { + if m != nil { + return m.MergeState } - if m.RegionEpoch != nil { - { - size, err := m.RegionEpoch.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a + return nil +} + +func (m *RegionLocalState) GetTabletIndex() uint64 { + if m != nil { + return m.TabletIndex } - if m.Message != nil { - { - size, err := m.Message.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 + return 0 +} + +func (m *RegionLocalState) GetRemovedRecords() []*metapb.Peer { + if m != nil { + return m.RemovedRecords } - if m.ToPeer != nil { - { - size, err := m.ToPeer.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a + return nil +} + +func (m *RegionLocalState) GetMergedRecords() []*MergedRecord { + if m != nil { + return m.MergedRecords } - if m.FromPeer != nil { - { - size, err := m.FromPeer.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + return nil +} + +type RegionSequenceNumberRelation struct { + RegionId uint64 `protobuf:"varint,1,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` + SequenceNumber uint64 `protobuf:"varint,2,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + ApplyState *RaftApplyState `protobuf:"bytes,3,opt,name=apply_state,json=applyState,proto3" json:"apply_state,omitempty"` + RegionState *RegionLocalState `protobuf:"bytes,4,opt,name=region_state,json=regionState,proto3" json:"region_state,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RegionSequenceNumberRelation) Reset() { *m = RegionSequenceNumberRelation{} } +func (m *RegionSequenceNumberRelation) String() string { return proto.CompactTextString(m) } +func (*RegionSequenceNumberRelation) ProtoMessage() {} +func (*RegionSequenceNumberRelation) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{23} +} +func (m *RegionSequenceNumberRelation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RegionSequenceNumberRelation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RegionSequenceNumberRelation.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err } - i-- - dAtA[i] = 0x12 - } - if m.RegionId != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.RegionId)) - i-- - dAtA[i] = 0x8 + return b[:n], nil } - return len(dAtA) - i, nil +} +func (m *RegionSequenceNumberRelation) XXX_Merge(src proto.Message) { + xxx_messageInfo_RegionSequenceNumberRelation.Merge(m, src) +} +func (m *RegionSequenceNumberRelation) XXX_Size() int { + return m.Size() +} +func (m *RegionSequenceNumberRelation) XXX_DiscardUnknown() { + xxx_messageInfo_RegionSequenceNumberRelation.DiscardUnknown(m) } -func (m *RaftTruncatedState) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +var xxx_messageInfo_RegionSequenceNumberRelation proto.InternalMessageInfo + +func (m *RegionSequenceNumberRelation) GetRegionId() uint64 { + if m != nil { + return m.RegionId } - return dAtA[:n], nil + return 0 } -func (m *RaftTruncatedState) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *RegionSequenceNumberRelation) GetSequenceNumber() uint64 { + if m != nil { + return m.SequenceNumber + } + return 0 } -func (m *RaftTruncatedState) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if m.Term != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Term)) - i-- - dAtA[i] = 0x10 - } - if m.Index != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Index)) - i-- - dAtA[i] = 0x8 +func (m *RegionSequenceNumberRelation) GetApplyState() *RaftApplyState { + if m != nil { + return m.ApplyState } - return len(dAtA) - i, nil + return nil } -func (m *SnapshotCFFile) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *RegionSequenceNumberRelation) GetRegionState() *RegionLocalState { + if m != nil { + return m.RegionState } - return dAtA[:n], nil + return nil } -func (m *SnapshotCFFile) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +type CheckGcPeer struct { + // The region ID who triggers the check and wait for report. It should be + // the ID of RaftMessage.from. + FromRegionId uint64 `protobuf:"varint,1,opt,name=from_region_id,json=fromRegionId,proto3" json:"from_region_id,omitempty"` + // The region ID to be checked if should be destroyed. + CheckRegionId uint64 `protobuf:"varint,2,opt,name=check_region_id,json=checkRegionId,proto3" json:"check_region_id,omitempty"` + // The epoch of the region to be checked. + CheckRegionEpoch *metapb.RegionEpoch `protobuf:"bytes,3,opt,name=check_region_epoch,json=checkRegionEpoch,proto3" json:"check_region_epoch,omitempty"` + // The peer to be checked. + CheckPeer *metapb.Peer `protobuf:"bytes,4,opt,name=check_peer,json=checkPeer,proto3" json:"check_peer,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *SnapshotCFFile) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if m.Checksum != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Checksum)) - i-- - dAtA[i] = 0x18 - } - if m.Size_ != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Size_)) - i-- - dAtA[i] = 0x10 - } - if len(m.Cf) > 0 { - i -= len(m.Cf) - copy(dAtA[i:], m.Cf) - i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.Cf))) - i-- - dAtA[i] = 0xa +func (m *CheckGcPeer) Reset() { *m = CheckGcPeer{} } +func (m *CheckGcPeer) String() string { return proto.CompactTextString(m) } +func (*CheckGcPeer) ProtoMessage() {} +func (*CheckGcPeer) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{24} +} +func (m *CheckGcPeer) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CheckGcPeer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_CheckGcPeer.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return len(dAtA) - i, nil +} +func (m *CheckGcPeer) XXX_Merge(src proto.Message) { + xxx_messageInfo_CheckGcPeer.Merge(m, src) +} +func (m *CheckGcPeer) XXX_Size() int { + return m.Size() +} +func (m *CheckGcPeer) XXX_DiscardUnknown() { + xxx_messageInfo_CheckGcPeer.DiscardUnknown(m) } -func (m *SnapshotMeta) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +var xxx_messageInfo_CheckGcPeer proto.InternalMessageInfo + +func (m *CheckGcPeer) GetFromRegionId() uint64 { + if m != nil { + return m.FromRegionId } - return dAtA[:n], nil + return 0 } -func (m *SnapshotMeta) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *CheckGcPeer) GetCheckRegionId() uint64 { + if m != nil { + return m.CheckRegionId + } + return 0 } -func (m *SnapshotMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) +func (m *CheckGcPeer) GetCheckRegionEpoch() *metapb.RegionEpoch { + if m != nil { + return m.CheckRegionEpoch } - if m.GenerateDurationSec != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.GenerateDurationSec)) - i-- - dAtA[i] = 0x28 + return nil +} + +func (m *CheckGcPeer) GetCheckPeer() *metapb.Peer { + if m != nil { + return m.CheckPeer } - if m.Start != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Start)) - i-- - dAtA[i] = 0x20 - } - if m.ForWitness { - i-- - if m.ForWitness { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - } - if m.ForBalance { - i-- - if m.ForBalance { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x10 - } - if len(m.CfFiles) > 0 { - for iNdEx := len(m.CfFiles) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.CfFiles[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil + return nil } -func (m *SnapshotChunk) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil +type ExtraMessage struct { + Type ExtraMessageType `protobuf:"varint,1,opt,name=type,proto3,enum=raft_serverpb.ExtraMessageType" json:"type,omitempty"` + // It's merge related index. In `WantRollbackMerge`, it's prepare merge index. In + // `MsgGcPeerRequest`, it's the commit merge index. In `MsgVoterReplicatedIndexRequest` + // it's the voter_replicated_index. + Index uint64 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"` + // In `MsgCheckStalePeerResponse`, it's the peers that receiver can continue to query. + CheckPeers []*metapb.Peer `protobuf:"bytes,3,rep,name=check_peers,json=checkPeers,proto3" json:"check_peers,omitempty"` + WaitData bool `protobuf:"varint,4,opt,name=wait_data,json=waitData,proto3" json:"wait_data,omitempty"` + // Flag for forcely wake up hibernate regions if true. + ForcelyAwaken bool `protobuf:"varint,5,opt,name=forcely_awaken,json=forcelyAwaken,proto3" json:"forcely_awaken,omitempty"` + CheckGcPeer *CheckGcPeer `protobuf:"bytes,6,opt,name=check_gc_peer,json=checkGcPeer,proto3" json:"check_gc_peer,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *SnapshotChunk) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *ExtraMessage) Reset() { *m = ExtraMessage{} } +func (m *ExtraMessage) String() string { return proto.CompactTextString(m) } +func (*ExtraMessage) ProtoMessage() {} +func (*ExtraMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{25} } - -func (m *SnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.Data) > 0 { - i -= len(m.Data) - copy(dAtA[i:], m.Data) - i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.Data))) - i-- - dAtA[i] = 0x12 - } - if m.Message != nil { - { - size, err := m.Message.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) +func (m *ExtraMessage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExtraMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ExtraMessage.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err } - i-- - dAtA[i] = 0xa + return b[:n], nil } - return len(dAtA) - i, nil +} +func (m *ExtraMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExtraMessage.Merge(m, src) +} +func (m *ExtraMessage) XXX_Size() int { + return m.Size() +} +func (m *ExtraMessage) XXX_DiscardUnknown() { + xxx_messageInfo_ExtraMessage.DiscardUnknown(m) } -func (m *Done) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +var xxx_messageInfo_ExtraMessage proto.InternalMessageInfo + +func (m *ExtraMessage) GetType() ExtraMessageType { + if m != nil { + return m.Type } - return dAtA[:n], nil + return ExtraMessageType_MsgRegionWakeUp } -func (m *Done) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *ExtraMessage) GetIndex() uint64 { + if m != nil { + return m.Index + } + return 0 } -func (m *Done) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) +func (m *ExtraMessage) GetCheckPeers() []*metapb.Peer { + if m != nil { + return m.CheckPeers } - return len(dAtA) - i, nil + return nil } -func (m *KeyValue) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *ExtraMessage) GetWaitData() bool { + if m != nil { + return m.WaitData } - return dAtA[:n], nil + return false } -func (m *KeyValue) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *ExtraMessage) GetForcelyAwaken() bool { + if m != nil { + return m.ForcelyAwaken + } + return false } -func (m *KeyValue) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.Value) > 0 { - i -= len(m.Value) - copy(dAtA[i:], m.Value) - i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.Value))) - i-- - dAtA[i] = 0x12 - } - if len(m.Key) > 0 { - i -= len(m.Key) - copy(dAtA[i:], m.Key) - i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.Key))) - i-- - dAtA[i] = 0xa +func (m *ExtraMessage) GetCheckGcPeer() *CheckGcPeer { + if m != nil { + return m.CheckGcPeer } - return len(dAtA) - i, nil + return nil } -func (m *RaftSnapshotData) Marshal() (dAtA []byte, err error) { +func init() { + proto.RegisterEnum("raft_serverpb.PeerState", PeerState_name, PeerState_value) + proto.RegisterEnum("raft_serverpb.ExtraMessageType", ExtraMessageType_name, ExtraMessageType_value) + proto.RegisterType((*RaftMessage)(nil), "raft_serverpb.RaftMessage") + proto.RegisterType((*RaftTruncatedState)(nil), "raft_serverpb.RaftTruncatedState") + proto.RegisterType((*SnapshotCFFile)(nil), "raft_serverpb.SnapshotCFFile") + proto.RegisterType((*SnapshotMeta)(nil), "raft_serverpb.SnapshotMeta") + proto.RegisterType((*SnapshotChunk)(nil), "raft_serverpb.SnapshotChunk") + proto.RegisterType((*Done)(nil), "raft_serverpb.Done") + proto.RegisterType((*TabletSnapshotFileMeta)(nil), "raft_serverpb.TabletSnapshotFileMeta") + proto.RegisterType((*TabletSnapshotPreview)(nil), "raft_serverpb.TabletSnapshotPreview") + proto.RegisterType((*TabletSnapshotFileChunk)(nil), "raft_serverpb.TabletSnapshotFileChunk") + proto.RegisterType((*TabletSnapshotHead)(nil), "raft_serverpb.TabletSnapshotHead") + proto.RegisterType((*TabletSnapshotEnd)(nil), "raft_serverpb.TabletSnapshotEnd") + proto.RegisterType((*TabletSnapshotRequest)(nil), "raft_serverpb.TabletSnapshotRequest") + proto.RegisterType((*AcceptedSnapshotFiles)(nil), "raft_serverpb.AcceptedSnapshotFiles") + proto.RegisterType((*TabletSnapshotResponse)(nil), "raft_serverpb.TabletSnapshotResponse") + proto.RegisterType((*KeyValue)(nil), "raft_serverpb.KeyValue") + proto.RegisterType((*RaftSnapshotData)(nil), "raft_serverpb.RaftSnapshotData") + proto.RegisterType((*StoreIdent)(nil), "raft_serverpb.StoreIdent") + proto.RegisterType((*StoreRecoverState)(nil), "raft_serverpb.StoreRecoverState") + proto.RegisterType((*RaftLocalState)(nil), "raft_serverpb.RaftLocalState") + proto.RegisterType((*RaftApplyState)(nil), "raft_serverpb.RaftApplyState") + proto.RegisterType((*MergeState)(nil), "raft_serverpb.MergeState") + proto.RegisterType((*MergedRecord)(nil), "raft_serverpb.MergedRecord") + proto.RegisterType((*RegionLocalState)(nil), "raft_serverpb.RegionLocalState") + proto.RegisterType((*RegionSequenceNumberRelation)(nil), "raft_serverpb.RegionSequenceNumberRelation") + proto.RegisterType((*CheckGcPeer)(nil), "raft_serverpb.CheckGcPeer") + proto.RegisterType((*ExtraMessage)(nil), "raft_serverpb.ExtraMessage") +} + +func init() { proto.RegisterFile("raft_serverpb.proto", fileDescriptor_130ebc2f2c37a342) } + +var fileDescriptor_130ebc2f2c37a342 = []byte{ + // 2009 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0xcd, 0x73, 0x1b, 0x49, + 0x15, 0xf7, 0x48, 0xb2, 0x3e, 0x9e, 0x3e, 0xac, 0xb4, 0xf3, 0xa1, 0xc4, 0xc4, 0x76, 0x26, 0x1b, + 0xaf, 0x37, 0x5b, 0x38, 0xb5, 0x5e, 0xb3, 0x6c, 0x2d, 0x55, 0x29, 0x6c, 0x27, 0x8b, 0xcd, 0xa2, + 0x54, 0x6a, 0xec, 0x24, 0xc5, 0x69, 0xaa, 0x3d, 0xd3, 0x1a, 0x0f, 0x9a, 0xaf, 0xed, 0x6e, 0x29, + 0x11, 0xc5, 0x89, 0x33, 0x37, 0x2e, 0xfb, 0x27, 0xf0, 0x87, 0x70, 0xa0, 0xe0, 0xc2, 0x81, 0x03, + 0x47, 0x2a, 0x5c, 0xb8, 0x72, 0xe4, 0x46, 0x75, 0xbf, 0x1e, 0x69, 0xa4, 0x28, 0xde, 0xda, 0x9c, + 0x34, 0xfd, 0xde, 0xef, 0x75, 0xbf, 0xef, 0x7e, 0x2d, 0x58, 0xe7, 0x74, 0x20, 0x5d, 0xc1, 0xf8, + 0x98, 0xf1, 0xec, 0x62, 0x2f, 0xe3, 0xa9, 0x4c, 0x49, 0x7b, 0x8e, 0x78, 0xa7, 0xcd, 0xd4, 0x3a, + 0xe7, 0xde, 0x69, 0xc5, 0x4c, 0xd2, 0xe9, 0xaa, 0x3d, 0x1c, 0xf3, 0xcc, 0x9b, 0x2e, 0xbb, 0x7e, + 0x28, 0x86, 0xee, 0x48, 0xd0, 0x80, 0x19, 0xca, 0x1a, 0x1f, 0x09, 0xa9, 0x3f, 0x91, 0x60, 0xff, + 0xaf, 0x0c, 0x4d, 0x87, 0x0e, 0x64, 0x9f, 0x09, 0x05, 0x23, 0x1b, 0xd0, 0xe0, 0x2c, 0x08, 0xd3, + 0xc4, 0x0d, 0xfd, 0x9e, 0xb5, 0x6d, 0xed, 0x56, 0x9c, 0x3a, 0x12, 0x4e, 0x7d, 0xf2, 0x09, 0x34, + 0x06, 0x3c, 0x8d, 0xdd, 0x8c, 0x31, 0xde, 0x2b, 0x6d, 0x5b, 0xbb, 0xcd, 0xfd, 0xd6, 0x9e, 0x51, + 0xe0, 0x39, 0x63, 0xdc, 0xa9, 0x2b, 0xb6, 0xfa, 0x22, 0x0f, 0xa0, 0x26, 0x53, 0x04, 0x96, 0x97, + 0x00, 0xab, 0x32, 0xd5, 0xb0, 0x87, 0x50, 0x8b, 0xf1, 0xe4, 0x5e, 0x45, 0xc3, 0xba, 0x7b, 0xb9, + 0x7d, 0x46, 0x23, 0x27, 0x07, 0x90, 0x2f, 0xa0, 0x65, 0x54, 0x63, 0x59, 0xea, 0x5d, 0xf6, 0x56, + 0xb5, 0xc0, 0x7a, 0xbe, 0xaf, 0xa3, 0x79, 0x4f, 0x15, 0xcb, 0x69, 0xf2, 0xd9, 0x82, 0xdc, 0x83, + 0x56, 0x28, 0x5c, 0x99, 0xc6, 0x17, 0x42, 0xa6, 0x09, 0xeb, 0x55, 0xb7, 0xad, 0xdd, 0xba, 0xd3, + 0x0c, 0xc5, 0x79, 0x4e, 0x52, 0x56, 0x0b, 0x49, 0xb9, 0x74, 0x87, 0x6c, 0xd2, 0xab, 0x6d, 0x5b, + 0xbb, 0x2d, 0xa7, 0xae, 0x09, 0xdf, 0xb0, 0x09, 0xb9, 0x05, 0x35, 0x96, 0xf8, 0x9a, 0x55, 0xd7, + 0xac, 0x2a, 0x4b, 0x7c, 0xc5, 0xf8, 0x0c, 0x5a, 0x31, 0xe3, 0x01, 0x73, 0x25, 0xe5, 0x01, 0x93, + 0xbd, 0x86, 0x56, 0xa8, 0x33, 0xaf, 0x90, 0xd3, 0xd4, 0x98, 0x73, 0x0d, 0x21, 0x5f, 0x42, 0x83, + 0xbd, 0x91, 0x9c, 0xba, 0xb1, 0x08, 0x7a, 0xa0, 0xf1, 0x1b, 0x7b, 0xf3, 0x51, 0x7f, 0xaa, 0xf8, + 0xb9, 0xf1, 0x75, 0x8d, 0xee, 0x8b, 0x40, 0xa9, 0x88, 0x92, 0x9e, 0x7c, 0xd3, 0x6b, 0xa2, 0x8a, + 0x9a, 0x70, 0x2c, 0xdf, 0x90, 0x03, 0x80, 0x59, 0xa8, 0x7b, 0xad, 0x6d, 0x6b, 0xb7, 0xb3, 0x7f, + 0x63, 0xaf, 0x10, 0xfd, 0x27, 0xa1, 0x18, 0xbe, 0xd0, 0x3b, 0x36, 0xfc, 0xfc, 0xd3, 0x7e, 0x0c, + 0x44, 0x85, 0xfe, 0x9c, 0x8f, 0x12, 0x8f, 0x4a, 0xe6, 0x9f, 0x49, 0x2a, 0x19, 0xb9, 0x0e, 0xab, + 0x61, 0xe2, 0xb3, 0x37, 0x26, 0xfa, 0xb8, 0x20, 0x04, 0x2a, 0x92, 0xf1, 0x58, 0x47, 0xbd, 0xe2, + 0xe8, 0x6f, 0xfb, 0x39, 0x74, 0xce, 0x12, 0x9a, 0x89, 0xcb, 0x54, 0x1e, 0x7f, 0xfd, 0x75, 0x18, + 0x31, 0xd2, 0x81, 0x92, 0x37, 0xd0, 0x82, 0x0d, 0xa7, 0xe4, 0x0d, 0x94, 0x94, 0x08, 0x7f, 0xcb, + 0x72, 0x29, 0xf5, 0x4d, 0xee, 0x40, 0xdd, 0xbb, 0x64, 0xde, 0x50, 0x8c, 0x62, 0x9d, 0x1a, 0x6d, + 0x67, 0xba, 0xb6, 0xff, 0x61, 0x41, 0x2b, 0xdf, 0xb2, 0xcf, 0x24, 0x25, 0x5f, 0x42, 0xdd, 0x1b, + 0xb8, 0x83, 0x30, 0x62, 0xa2, 0x67, 0x6d, 0x97, 0x77, 0x9b, 0xfb, 0x77, 0x17, 0xdc, 0x35, 0xaf, + 0x81, 0x53, 0xf3, 0x06, 0xea, 0x57, 0x90, 0x2d, 0x68, 0x0e, 0x52, 0xee, 0x5e, 0xd0, 0x88, 0x26, + 0x1e, 0x6a, 0x50, 0x77, 0x60, 0x90, 0xf2, 0x23, 0xa4, 0xe4, 0x80, 0xd7, 0xa1, 0x4c, 0x98, 0x10, + 0x5a, 0x15, 0x04, 0xbc, 0x42, 0x8a, 0x72, 0x84, 0xce, 0x01, 0x9d, 0x99, 0x15, 0x07, 0x17, 0x64, + 0x1f, 0x6e, 0x04, 0x2c, 0x61, 0x9c, 0x4a, 0xe6, 0xfa, 0x23, 0x4e, 0xa5, 0x4a, 0x48, 0xc1, 0x3c, + 0x9d, 0x8e, 0x15, 0x67, 0x3d, 0x67, 0x3e, 0x31, 0xbc, 0x33, 0xe6, 0xd9, 0xbf, 0x86, 0xf6, 0x54, + 0xcd, 0xcb, 0x51, 0x32, 0x24, 0x07, 0xb3, 0xb4, 0xb7, 0x74, 0x12, 0xdc, 0x59, 0xb0, 0xaa, 0x50, + 0x92, 0xb3, 0x02, 0x20, 0x50, 0xf1, 0xa9, 0xa4, 0xda, 0x96, 0x96, 0xa3, 0xbf, 0xed, 0x2a, 0x54, + 0x9e, 0xa4, 0x09, 0xb3, 0xbf, 0xb3, 0xe0, 0xe6, 0x39, 0xbd, 0x88, 0x98, 0xcc, 0x4f, 0x52, 0x6e, + 0xd0, 0x3e, 0xdc, 0x80, 0x86, 0x72, 0xa0, 0xab, 0x23, 0x61, 0x4a, 0x5a, 0x11, 0xce, 0x54, 0x34, + 0x72, 0x66, 0x42, 0x63, 0x74, 0x52, 0x03, 0x99, 0xcf, 0x68, 0xcc, 0xc8, 0x5d, 0x80, 0x4b, 0x46, + 0x7d, 0xd7, 0x53, 0x4a, 0x6b, 0x0f, 0xb5, 0x9c, 0x86, 0xa2, 0xa0, 0x15, 0x0f, 0xa0, 0x23, 0x39, + 0x0d, 0xa3, 0x30, 0x09, 0x0c, 0xa4, 0xa2, 0x21, 0xed, 0x9c, 0xaa, 0x61, 0xf6, 0x00, 0x6e, 0xcc, + 0x6b, 0xf6, 0x9c, 0xb3, 0x71, 0xc8, 0x5e, 0x93, 0x9f, 0xc1, 0xaa, 0x2a, 0x95, 0x3c, 0xb2, 0x0f, + 0x16, 0x7c, 0xb0, 0xdc, 0x1c, 0x07, 0x65, 0x48, 0x17, 0xca, 0x2c, 0xf1, 0x4d, 0x5c, 0xd5, 0xa7, + 0x1d, 0xc0, 0xad, 0x77, 0x45, 0x50, 0xd3, 0x0f, 0x77, 0x41, 0xee, 0xf3, 0x72, 0xc1, 0xe7, 0x01, + 0x90, 0xf9, 0x83, 0x4e, 0x18, 0xf5, 0x3f, 0x30, 0xa6, 0x1b, 0xd0, 0x18, 0x09, 0xe6, 0x7a, 0xd4, + 0xbb, 0xcc, 0x93, 0xb4, 0x3e, 0x12, 0xec, 0x58, 0xad, 0xed, 0x47, 0x70, 0x6d, 0xfe, 0xa0, 0xa7, + 0x89, 0x3f, 0x57, 0x3f, 0xc6, 0x94, 0x69, 0xfd, 0xfc, 0xb1, 0xb4, 0xe8, 0x6b, 0x87, 0x7d, 0x3b, + 0x62, 0x42, 0x92, 0x9f, 0x42, 0x45, 0x05, 0xce, 0xa8, 0x76, 0xef, 0x4a, 0x57, 0x2b, 0x73, 0x4e, + 0x56, 0x1c, 0x2d, 0x40, 0x7e, 0x0e, 0xb5, 0x0c, 0xe3, 0x65, 0x3a, 0xfe, 0x47, 0x57, 0xca, 0x9a, + 0xd8, 0x9e, 0xac, 0x38, 0xb9, 0x18, 0x79, 0x0c, 0xab, 0xb3, 0x04, 0x6a, 0xee, 0xef, 0x7c, 0x6f, + 0x98, 0x75, 0xcc, 0x4e, 0x56, 0x1c, 0x14, 0x23, 0x07, 0x18, 0x69, 0xbc, 0x1f, 0xb6, 0xaf, 0x94, + 0x7e, 0x9a, 0x28, 0xc5, 0x15, 0xfc, 0xa8, 0x01, 0xb5, 0x8c, 0x4e, 0xa2, 0x94, 0xfa, 0xf6, 0x01, + 0xdc, 0x38, 0xf4, 0x3c, 0x96, 0xa9, 0x16, 0x57, 0x38, 0x46, 0xcc, 0x47, 0x5e, 0x25, 0x61, 0x21, + 0xf2, 0xf6, 0xf9, 0x62, 0x41, 0x39, 0x4c, 0x64, 0x69, 0x22, 0x18, 0xf9, 0x0a, 0x56, 0xf3, 0x8e, + 0xb4, 0xcc, 0x21, 0x4b, 0xcf, 0x72, 0x50, 0xc4, 0xde, 0x87, 0xfa, 0x37, 0x6c, 0xf2, 0x92, 0x46, + 0x23, 0xa6, 0x52, 0x58, 0x5d, 0x2a, 0x96, 0x4e, 0x2d, 0xf5, 0xa9, 0x5a, 0xce, 0x58, 0xb1, 0x4c, + 0x89, 0xe3, 0xc2, 0xfe, 0x6b, 0x09, 0xba, 0x2a, 0x79, 0xf2, 0x0d, 0x9f, 0x50, 0x49, 0xc9, 0x0e, + 0x54, 0xf1, 0x92, 0x33, 0x5a, 0x2c, 0x5e, 0x3b, 0x86, 0x3b, 0x9f, 0xfa, 0xa5, 0x85, 0xd4, 0xff, + 0x74, 0x9a, 0xdd, 0xaa, 0x00, 0x6f, 0x2d, 0x18, 0x92, 0x2b, 0x8a, 0x69, 0x4f, 0x7a, 0x50, 0x1b, + 0x33, 0x2e, 0xd4, 0x91, 0xd8, 0x11, 0xf3, 0x25, 0x79, 0x04, 0x15, 0x75, 0xb8, 0xb9, 0x91, 0x37, + 0xde, 0xd3, 0xa1, 0x75, 0xf5, 0x6a, 0x20, 0xf9, 0x09, 0xac, 0x71, 0x16, 0xa7, 0x63, 0xe6, 0xbb, + 0x9c, 0x79, 0x29, 0xf7, 0x45, 0xaf, 0xaa, 0x55, 0x98, 0x9f, 0x12, 0x3a, 0x06, 0xe4, 0x20, 0x86, + 0x1c, 0x41, 0x47, 0x5f, 0xa6, 0x33, 0xa9, 0x9a, 0x96, 0x5a, 0x3c, 0xb1, 0xaf, 0x41, 0x28, 0xe5, + 0xb4, 0xe3, 0xc2, 0x4a, 0xd8, 0xbf, 0x03, 0x38, 0x93, 0x29, 0x67, 0xa7, 0x3e, 0x4b, 0xa4, 0xea, + 0x70, 0x5e, 0x34, 0x12, 0x92, 0xf1, 0xd9, 0xbc, 0xd3, 0x30, 0x94, 0x53, 0x9f, 0xdc, 0x86, 0xba, + 0x50, 0x60, 0xc5, 0x44, 0xdf, 0xd5, 0x04, 0x0a, 0x93, 0x03, 0x68, 0xd2, 0x2c, 0x74, 0x73, 0x8f, + 0x94, 0xf5, 0x9d, 0xbb, 0xbe, 0x97, 0x0f, 0x60, 0x87, 0xcf, 0x4f, 0x5f, 0x22, 0xcb, 0x01, 0x9a, + 0x85, 0xe6, 0xdb, 0xfe, 0x04, 0xae, 0xe9, 0xd3, 0x95, 0x36, 0x63, 0xc6, 0xa7, 0x37, 0xae, 0x60, + 0xdf, 0x26, 0x69, 0x7e, 0xe3, 0xea, 0x85, 0x7d, 0x01, 0x1d, 0x15, 0xf4, 0x5f, 0xa5, 0x1e, 0x8d, + 0x10, 0xf7, 0x19, 0xc0, 0x25, 0xe5, 0xbe, 0x2b, 0xd4, 0xca, 0x84, 0x9d, 0x4c, 0xe7, 0xa5, 0x13, + 0xca, 0xf1, 0x06, 0x77, 0x1a, 0x97, 0xf9, 0xa7, 0xb2, 0x2f, 0xa2, 0x42, 0xba, 0x78, 0xa3, 0xa3, + 0x09, 0x0d, 0x45, 0x39, 0x55, 0x04, 0xfb, 0xbf, 0x16, 0x1e, 0x72, 0x98, 0x65, 0xd1, 0x04, 0x25, + 0xee, 0x43, 0x9b, 0x66, 0x59, 0x14, 0x32, 0xdf, 0x2d, 0x8e, 0x01, 0x2d, 0x43, 0xd4, 0x72, 0xe4, + 0x21, 0x5c, 0xd3, 0xdb, 0x7a, 0x69, 0x1c, 0x87, 0xf9, 0xee, 0x65, 0x0d, 0x5c, 0x53, 0x8c, 0x63, + 0x4d, 0x47, 0xec, 0x3d, 0x68, 0xcd, 0xc1, 0x30, 0x77, 0x9a, 0x5e, 0x01, 0xb2, 0x05, 0x66, 0xe9, + 0xea, 0x19, 0x03, 0x6f, 0x52, 0x40, 0xd2, 0x39, 0xe3, 0x31, 0xf9, 0x25, 0xac, 0xc9, 0x7c, 0x4a, + 0x31, 0xe6, 0x97, 0x96, 0x36, 0xb2, 0x77, 0xe7, 0x19, 0xa7, 0x23, 0xe7, 0xd6, 0x76, 0x08, 0xa0, + 0xf3, 0x03, 0xcd, 0xdd, 0x80, 0x46, 0x1c, 0x26, 0x73, 0xa6, 0xd6, 0xe3, 0x30, 0x41, 0xbd, 0x76, + 0xa0, 0x6a, 0x46, 0xbb, 0xd2, 0xf2, 0x1a, 0x43, 0x2e, 0xb9, 0x09, 0x55, 0x54, 0xd6, 0xf8, 0xc0, + 0xac, 0x54, 0xe1, 0xb6, 0x8a, 0xb9, 0x48, 0x76, 0xa1, 0x2b, 0xd2, 0x11, 0xf7, 0x98, 0xbb, 0x38, + 0x64, 0x77, 0x90, 0xee, 0xe4, 0xa3, 0xf6, 0x17, 0xd0, 0x32, 0x48, 0x1c, 0x76, 0x4b, 0x57, 0x0c, + 0xbb, 0x08, 0xc4, 0x61, 0xf7, 0xd1, 0x54, 0x4e, 0xcd, 0xde, 0xc2, 0x54, 0xf6, 0x7c, 0x59, 0x19, + 0x01, 0xf5, 0x2d, 0x94, 0x4a, 0x68, 0x45, 0x41, 0x25, 0x0c, 0x51, 0x07, 0xe9, 0x45, 0x95, 0x0c, + 0xf2, 0xfb, 0xe7, 0x6f, 0x04, 0x4e, 0x55, 0x32, 0x72, 0xa8, 0xd2, 0xb2, 0x4a, 0x37, 0x02, 0xa8, + 0xd2, 0x74, 0x02, 0xad, 0x15, 0x26, 0x50, 0xfb, 0xcf, 0xaa, 0x0b, 0xea, 0x33, 0x0a, 0x25, 0xb1, + 0xa7, 0x67, 0x34, 0x53, 0x0d, 0x9d, 0xfd, 0xde, 0x42, 0x3a, 0xa8, 0xfd, 0x30, 0x0b, 0x10, 0x56, + 0xe8, 0x9a, 0xa5, 0x2b, 0xbb, 0xe6, 0x57, 0x80, 0x63, 0xbb, 0x49, 0x36, 0xbc, 0xb9, 0x6e, 0x2f, + 0x6b, 0x33, 0xb8, 0x3d, 0xc4, 0xb3, 0x94, 0xba, 0xa7, 0xec, 0x55, 0x17, 0xc7, 0x7c, 0xc2, 0x23, + 0x0d, 0x13, 0x6b, 0x49, 0xff, 0x5b, 0xfd, 0xa0, 0xfe, 0x57, 0xfd, 0xc1, 0xfd, 0xef, 0x3f, 0x16, + 0xfc, 0x08, 0x8d, 0x3d, 0x53, 0xa3, 0x41, 0xe2, 0xb1, 0x67, 0xa3, 0xf8, 0x82, 0x71, 0x87, 0x45, + 0x7a, 0x5e, 0xbd, 0xfa, 0x05, 0xf8, 0x31, 0xac, 0x09, 0x23, 0xe6, 0x26, 0x5a, 0xce, 0x34, 0x95, + 0x8e, 0x98, 0xdb, 0x8d, 0x3c, 0x56, 0xed, 0x31, 0x8b, 0x26, 0x73, 0x0e, 0xbc, 0xbb, 0xa4, 0x5a, + 0x67, 0xad, 0x47, 0x35, 0xca, 0x69, 0x1b, 0x3a, 0x9a, 0x3e, 0xf6, 0x70, 0x03, 0xbc, 0xfd, 0xb7, + 0x16, 0x37, 0x58, 0xc8, 0x87, 0xfc, 0xe1, 0x87, 0x95, 0xfe, 0x37, 0x0b, 0x9a, 0xc7, 0x6a, 0x34, + 0xfa, 0x85, 0xa7, 0x1f, 0x9b, 0x1f, 0x41, 0x47, 0x3f, 0x5f, 0x17, 0xcd, 0x6b, 0x29, 0xea, 0x34, + 0xcd, 0x77, 0x60, 0x4d, 0xcf, 0x53, 0x05, 0x18, 0x9a, 0xd8, 0xd6, 0xe4, 0x29, 0xee, 0x10, 0xc8, + 0x1c, 0x0e, 0x8b, 0xa2, 0xfc, 0xfe, 0xa2, 0xe8, 0x16, 0xe4, 0xb1, 0x32, 0x3e, 0x05, 0xc0, 0x2d, + 0xf4, 0x3b, 0xb9, 0xb2, 0xe4, 0x9d, 0xdc, 0xd0, 0x7c, 0xf5, 0x69, 0xff, 0xa1, 0x04, 0xad, 0xe2, + 0xdb, 0x90, 0x7c, 0x0e, 0x15, 0x39, 0xc9, 0xf2, 0xd4, 0xdf, 0xba, 0xe2, 0x19, 0x79, 0x3e, 0xc9, + 0x98, 0xa3, 0xc1, 0xb3, 0xda, 0x2a, 0x15, 0x5f, 0x77, 0x3f, 0x86, 0xe6, 0x4c, 0x91, 0xe5, 0x4d, + 0x03, 0xa6, 0x9a, 0xe8, 0xb9, 0xe9, 0x35, 0x0d, 0xa5, 0xab, 0x67, 0x87, 0x0a, 0x0e, 0xad, 0x8a, + 0xa0, 0x07, 0x93, 0x07, 0xd0, 0x19, 0xa4, 0xdc, 0x63, 0xd1, 0xc4, 0xa5, 0xaf, 0xe9, 0x90, 0x25, + 0xba, 0x51, 0xd4, 0x9d, 0xb6, 0xa1, 0x1e, 0x6a, 0x22, 0x79, 0x0c, 0xe8, 0x4f, 0x37, 0xf0, 0xd0, + 0xfc, 0xea, 0xd2, 0xa1, 0xb9, 0x10, 0x3f, 0x07, 0x75, 0xc4, 0xc5, 0x43, 0x07, 0x1a, 0xd3, 0xea, + 0x26, 0x00, 0xd5, 0x67, 0x29, 0x8f, 0x69, 0xd4, 0x5d, 0x21, 0x2d, 0xa8, 0xeb, 0x9c, 0x0a, 0x93, + 0xa0, 0x6b, 0x91, 0x36, 0x34, 0xa6, 0xcf, 0xfc, 0x6e, 0x89, 0x34, 0xa1, 0xa6, 0x8a, 0x43, 0xf1, + 0xca, 0x64, 0x0d, 0x9a, 0x2f, 0x12, 0x3a, 0xa6, 0x61, 0xa4, 0x4a, 0xb3, 0x5b, 0x79, 0xf8, 0xfb, + 0x32, 0x74, 0x17, 0xfd, 0x46, 0xd6, 0x61, 0xad, 0x2f, 0x02, 0x0c, 0xdb, 0x2b, 0x3a, 0x64, 0x2f, + 0xb2, 0xee, 0x0a, 0xe9, 0xc1, 0xf5, 0xbe, 0x08, 0x5e, 0xd1, 0x44, 0x3a, 0x69, 0x14, 0x5d, 0x50, + 0x6f, 0xa8, 0x6b, 0xae, 0x6b, 0x91, 0x1b, 0x70, 0xad, 0x2f, 0x02, 0xad, 0xf6, 0x99, 0xa4, 0x91, + 0xee, 0xb2, 0xdd, 0x12, 0xb9, 0x0b, 0xb7, 0xdf, 0x21, 0xe7, 0x03, 0x65, 0xb7, 0x4c, 0x6e, 0xc1, + 0x7a, 0x5f, 0x04, 0x27, 0xe1, 0x05, 0xe3, 0x89, 0xca, 0x63, 0x9c, 0xda, 0xbb, 0x15, 0x73, 0x50, + 0x81, 0x61, 0x44, 0x56, 0xc9, 0xc7, 0x70, 0x5f, 0xeb, 0xf5, 0x1b, 0xe6, 0x49, 0x1c, 0x14, 0x82, + 0x63, 0x3a, 0x12, 0xcc, 0x3f, 0x9a, 0xf4, 0x59, 0x9c, 0xf2, 0x89, 0x7e, 0xe4, 0x77, 0xab, 0xe4, + 0x0e, 0xdc, 0xec, 0x8b, 0xe0, 0x10, 0xed, 0x0c, 0xa3, 0x50, 0x4e, 0xf2, 0xed, 0x6b, 0x64, 0x03, + 0x6e, 0xbd, 0xc3, 0x33, 0x27, 0xd4, 0x89, 0x0d, 0x9b, 0x7d, 0x11, 0xbc, 0x4c, 0xa5, 0x52, 0x35, + 0x8b, 0x42, 0x7d, 0x89, 0xea, 0x06, 0x96, 0x6f, 0xd0, 0x20, 0xf7, 0x61, 0xeb, 0xbd, 0x18, 0xb3, + 0x11, 0x90, 0xeb, 0xd0, 0xed, 0x8b, 0xc0, 0x44, 0xd1, 0x88, 0x36, 0x8d, 0xa7, 0x72, 0xaa, 0x01, + 0xb7, 0x8e, 0x76, 0xfe, 0xf9, 0xa7, 0xba, 0xf5, 0x97, 0xb7, 0x9b, 0xd6, 0xdf, 0xdf, 0x6e, 0x5a, + 0xff, 0x7a, 0xbb, 0x69, 0x7d, 0xf7, 0xef, 0xcd, 0x15, 0xe8, 0xa6, 0x3c, 0xd8, 0x93, 0xe1, 0x70, + 0xbc, 0x37, 0x1c, 0xeb, 0x7f, 0xae, 0x2e, 0xaa, 0xfa, 0xe7, 0xf3, 0xff, 0x07, 0x00, 0x00, 0xff, + 0xff, 0xd7, 0x7c, 0xc0, 0xda, 0x35, 0x13, 0x00, 0x00, +} + +func (m *RaftMessage) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2001,12 +2130,12 @@ func (m *RaftSnapshotData) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RaftSnapshotData) MarshalTo(dAtA []byte) (int, error) { +func (m *RaftMessage) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *RaftSnapshotData) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *RaftMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2015,37 +2144,33 @@ func (m *RaftSnapshotData) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if len(m.MergedRecords) > 0 { - for iNdEx := len(m.MergedRecords) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.MergedRecords[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - } + if m.DiskUsage != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.DiskUsage)) + i-- + dAtA[i] = 0x60 } - if len(m.RemovedRecords) > 0 { - for iNdEx := len(m.RemovedRecords) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.RemovedRecords[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + if len(m.ExtraCtx) > 0 { + i -= len(m.ExtraCtx) + copy(dAtA[i:], m.ExtraCtx) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.ExtraCtx))) + i-- + dAtA[i] = 0x5a + } + if m.ExtraMsg != nil { + { + size, err := m.ExtraMsg.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err } - i-- - dAtA[i] = 0x32 + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x52 } - if m.Meta != nil { + if m.MergeTarget != nil { { - size, err := m.Meta.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.MergeTarget.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2053,35 +2178,59 @@ func (m *RaftSnapshotData) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x2a + dAtA[i] = 0x4a } - if m.Version != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Version)) + if len(m.EndKey) > 0 { + i -= len(m.EndKey) + copy(dAtA[i:], m.EndKey) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.EndKey))) i-- - dAtA[i] = 0x20 + dAtA[i] = 0x42 } - if len(m.Data) > 0 { - for iNdEx := len(m.Data) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Data[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + if len(m.StartKey) > 0 { + i -= len(m.StartKey) + copy(dAtA[i:], m.StartKey) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.StartKey))) + i-- + dAtA[i] = 0x3a + } + if m.IsTombstone { + i-- + if m.IsTombstone { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } + if m.RegionEpoch != nil { + { + size, err := m.RegionEpoch.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err } - i-- - dAtA[i] = 0x1a + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x2a } - if m.FileSize != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.FileSize)) + if m.Message != nil { + { + size, err := m.Message.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x10 + dAtA[i] = 0x22 } - if m.Region != nil { + if m.ToPeer != nil { { - size, err := m.Region.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.ToPeer.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2089,12 +2238,29 @@ func (m *RaftSnapshotData) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0xa + dAtA[i] = 0x1a + } + if m.FromPeer != nil { + { + size, err := m.FromPeer.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.RegionId != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.RegionId)) + i-- + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *StoreIdent) Marshal() (dAtA []byte, err error) { +func (m *RaftTruncatedState) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2104,12 +2270,12 @@ func (m *StoreIdent) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *StoreIdent) MarshalTo(dAtA []byte) (int, error) { +func (m *RaftTruncatedState) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *StoreIdent) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *RaftTruncatedState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2118,25 +2284,20 @@ func (m *StoreIdent) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.ApiVersion != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.ApiVersion)) - i-- - dAtA[i] = 0x18 - } - if m.StoreId != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.StoreId)) + if m.Term != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Term)) i-- dAtA[i] = 0x10 } - if m.ClusterId != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.ClusterId)) + if m.Index != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Index)) i-- dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *StoreRecoverState) Marshal() (dAtA []byte, err error) { +func (m *SnapshotCFFile) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2146,12 +2307,12 @@ func (m *StoreRecoverState) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *StoreRecoverState) MarshalTo(dAtA []byte) (int, error) { +func (m *SnapshotCFFile) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *StoreRecoverState) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *SnapshotCFFile) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2160,15 +2321,27 @@ func (m *StoreRecoverState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.Seqno != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Seqno)) + if m.Checksum != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Checksum)) i-- - dAtA[i] = 0x8 + dAtA[i] = 0x18 + } + if m.Size_ != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Size_)) + i-- + dAtA[i] = 0x10 + } + if len(m.Cf) > 0 { + i -= len(m.Cf) + copy(dAtA[i:], m.Cf) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.Cf))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *RaftLocalState) Marshal() (dAtA []byte, err error) { +func (m *SnapshotMeta) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2178,12 +2351,12 @@ func (m *RaftLocalState) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RaftLocalState) MarshalTo(dAtA []byte) (int, error) { +func (m *SnapshotMeta) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *RaftLocalState) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *SnapshotMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2192,27 +2365,54 @@ func (m *RaftLocalState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.LastIndex != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.LastIndex)) + if m.GenerateDurationSec != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.GenerateDurationSec)) + i-- + dAtA[i] = 0x28 + } + if m.Start != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Start)) + i-- + dAtA[i] = 0x20 + } + if m.ForWitness { + i-- + if m.ForWitness { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.ForBalance { + i-- + if m.ForBalance { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } i-- dAtA[i] = 0x10 } - if m.HardState != nil { - { - size, err := m.HardState.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if len(m.CfFiles) > 0 { + for iNdEx := len(m.CfFiles) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.CfFiles[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } - i-- - dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *RaftApplyState) Marshal() (dAtA []byte, err error) { +func (m *SnapshotChunk) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2222,12 +2422,12 @@ func (m *RaftApplyState) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RaftApplyState) MarshalTo(dAtA []byte) (int, error) { +func (m *SnapshotChunk) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *RaftApplyState) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *SnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2236,24 +2436,16 @@ func (m *RaftApplyState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.CommitTerm != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.CommitTerm)) - i-- - dAtA[i] = 0x28 - } - if m.CommitIndex != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.CommitIndex)) - i-- - dAtA[i] = 0x20 - } - if m.LastCommitIndex != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.LastCommitIndex)) + if len(m.Data) > 0 { + i -= len(m.Data) + copy(dAtA[i:], m.Data) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.Data))) i-- - dAtA[i] = 0x18 + dAtA[i] = 0x12 } - if m.TruncatedState != nil { + if m.Message != nil { { - size, err := m.TruncatedState.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Message.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2261,17 +2453,12 @@ func (m *RaftApplyState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x12 - } - if m.AppliedIndex != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.AppliedIndex)) - i-- - dAtA[i] = 0x8 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *MergeState) Marshal() (dAtA []byte, err error) { +func (m *Done) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2281,12 +2468,12 @@ func (m *MergeState) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MergeState) MarshalTo(dAtA []byte) (int, error) { +func (m *Done) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MergeState) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *Done) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2295,32 +2482,10 @@ func (m *MergeState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.Commit != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Commit)) - i-- - dAtA[i] = 0x18 - } - if m.Target != nil { - { - size, err := m.Target.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.MinIndex != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.MinIndex)) - i-- - dAtA[i] = 0x8 - } return len(dAtA) - i, nil } -func (m *MergedRecord) Marshal() (dAtA []byte, err error) { +func (m *TabletSnapshotFileMeta) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2330,12 +2495,12 @@ func (m *MergedRecord) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MergedRecord) MarshalTo(dAtA []byte) (int, error) { +func (m *TabletSnapshotFileMeta) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MergedRecord) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TabletSnapshotFileMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2344,77 +2509,36 @@ func (m *MergedRecord) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.Index != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Index)) - i-- - dAtA[i] = 0x38 - } - if len(m.TargetPeers) > 0 { - for iNdEx := len(m.TargetPeers) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.TargetPeers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - } - } - if m.TargetEpoch != nil { - { - size, err := m.TargetEpoch.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } + if len(m.TrailingChunk) > 0 { + i -= len(m.TrailingChunk) + copy(dAtA[i:], m.TrailingChunk) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.TrailingChunk))) i-- - dAtA[i] = 0x2a + dAtA[i] = 0x22 } - if m.TargetRegionId != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.TargetRegionId)) + if len(m.HeadChunk) > 0 { + i -= len(m.HeadChunk) + copy(dAtA[i:], m.HeadChunk) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.HeadChunk))) i-- - dAtA[i] = 0x20 - } - if len(m.SourcePeers) > 0 { - for iNdEx := len(m.SourcePeers) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.SourcePeers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } + dAtA[i] = 0x1a } - if m.SourceEpoch != nil { - { - size, err := m.SourceEpoch.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } + if len(m.FileName) > 0 { + i -= len(m.FileName) + copy(dAtA[i:], m.FileName) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.FileName))) i-- dAtA[i] = 0x12 } - if m.SourceRegionId != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.SourceRegionId)) + if m.FileSize != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.FileSize)) i-- dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *RegionLocalState) Marshal() (dAtA []byte, err error) { +func (m *TabletSnapshotPreview) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2424,12 +2548,12 @@ func (m *RegionLocalState) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RegionLocalState) MarshalTo(dAtA []byte) (int, error) { +func (m *TabletSnapshotPreview) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *RegionLocalState) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TabletSnapshotPreview) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2438,24 +2562,20 @@ func (m *RegionLocalState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if len(m.MergedRecords) > 0 { - for iNdEx := len(m.MergedRecords) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.MergedRecords[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 + if m.End { + i-- + if m.End { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } + i-- + dAtA[i] = 0x10 } - if len(m.RemovedRecords) > 0 { - for iNdEx := len(m.RemovedRecords) - 1; iNdEx >= 0; iNdEx-- { + if len(m.Metas) > 0 { + for iNdEx := len(m.Metas) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.RemovedRecords[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Metas[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2463,47 +2583,59 @@ func (m *RegionLocalState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x2a + dAtA[i] = 0xa } } - if m.TabletIndex != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.TabletIndex)) - i-- - dAtA[i] = 0x20 + return len(dAtA) - i, nil +} + +func (m *TabletSnapshotFileChunk) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - if m.MergeState != nil { - { - size, err := m.MergeState.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } + return dAtA[:n], nil +} + +func (m *TabletSnapshotFileChunk) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TabletSnapshotFileChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Data) > 0 { + i -= len(m.Data) + copy(dAtA[i:], m.Data) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.Data))) i-- dAtA[i] = 0x1a } - if m.Region != nil { - { - size, err := m.Region.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } + if len(m.FileName) > 0 { + i -= len(m.FileName) + copy(dAtA[i:], m.FileName) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.FileName))) i-- dAtA[i] = 0x12 } - if m.State != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.State)) + if m.FileSize != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.FileSize)) i-- dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *RegionSequenceNumberRelation) Marshal() (dAtA []byte, err error) { +func (m *TabletSnapshotHead) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2513,12 +2645,12 @@ func (m *RegionSequenceNumberRelation) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RegionSequenceNumberRelation) MarshalTo(dAtA []byte) (int, error) { +func (m *TabletSnapshotHead) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *RegionSequenceNumberRelation) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TabletSnapshotHead) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2527,21 +2659,19 @@ func (m *RegionSequenceNumberRelation) MarshalToSizedBuffer(dAtA []byte) (int, e i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.RegionState != nil { - { - size, err := m.RegionState.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + if m.UseCache { + i-- + if m.UseCache { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } i-- - dAtA[i] = 0x22 + dAtA[i] = 0x10 } - if m.ApplyState != nil { + if m.Message != nil { { - size, err := m.ApplyState.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Message.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2549,22 +2679,12 @@ func (m *RegionSequenceNumberRelation) MarshalToSizedBuffer(dAtA []byte) (int, e i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x1a - } - if m.SequenceNumber != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.SequenceNumber)) - i-- - dAtA[i] = 0x10 - } - if m.RegionId != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.RegionId)) - i-- - dAtA[i] = 0x8 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *CheckGcPeer) Marshal() (dAtA []byte, err error) { +func (m *TabletSnapshotEnd) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2574,12 +2694,12 @@ func (m *CheckGcPeer) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *CheckGcPeer) MarshalTo(dAtA []byte) (int, error) { +func (m *TabletSnapshotEnd) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *CheckGcPeer) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TabletSnapshotEnd) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2588,44 +2708,15 @@ func (m *CheckGcPeer) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.CheckPeer != nil { - { - size, err := m.CheckPeer.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if m.CheckRegionEpoch != nil { - { - size, err := m.CheckRegionEpoch.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.CheckRegionId != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.CheckRegionId)) - i-- - dAtA[i] = 0x10 - } - if m.FromRegionId != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.FromRegionId)) + if m.Checksum != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Checksum)) i-- dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *ExtraMessage) Marshal() (dAtA []byte, err error) { +func (m *TabletSnapshotRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2635,12 +2726,12 @@ func (m *ExtraMessage) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExtraMessage) MarshalTo(dAtA []byte) (int, error) { +func (m *TabletSnapshotRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ExtraMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TabletSnapshotRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2649,9 +2740,28 @@ func (m *ExtraMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.CheckGcPeer != nil { + if m.Payload != nil { { - size, err := m.CheckGcPeer.MarshalToSizedBuffer(dAtA[:i]) + size := m.Payload.Size() + i -= size + if _, err := m.Payload.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *TabletSnapshotRequest_Head) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TabletSnapshotRequest_Head) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Head != nil { + { + size, err := m.Head.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2659,566 +2769,2256 @@ func (m *ExtraMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x32 - } - if m.ForcelyAwaken { - i-- - if m.ForcelyAwaken { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x28 + dAtA[i] = 0xa } - if m.WaitData { - i-- - if m.WaitData { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + return len(dAtA) - i, nil +} +func (m *TabletSnapshotRequest_Preview) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TabletSnapshotRequest_Preview) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Preview != nil { + { + size, err := m.Preview.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x20 + dAtA[i] = 0x12 } - if len(m.CheckPeers) > 0 { - for iNdEx := len(m.CheckPeers) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.CheckPeers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + return len(dAtA) - i, nil +} +func (m *TabletSnapshotRequest_Chunk) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TabletSnapshotRequest_Chunk) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Chunk != nil { + { + size, err := m.Chunk.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err } - i-- - dAtA[i] = 0x1a + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) } - } - if m.Index != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Index)) - i-- - dAtA[i] = 0x10 - } - if m.Type != 0 { - i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Type)) i-- - dAtA[i] = 0x8 + dAtA[i] = 0x1a } return len(dAtA) - i, nil } +func (m *TabletSnapshotRequest_End) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} -func encodeVarintRaftServerpb(dAtA []byte, offset int, v uint64) int { - offset -= sovRaftServerpb(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *TabletSnapshotRequest_End) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.End != nil { + { + size, err := m.End.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 } - dAtA[offset] = uint8(v) - return base + return len(dAtA) - i, nil } -func (m *RaftMessage) Size() (n int) { - if m == nil { - return 0 +func (m *AcceptedSnapshotFiles) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *AcceptedSnapshotFiles) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AcceptedSnapshotFiles) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.RegionId != 0 { - n += 1 + sovRaftServerpb(uint64(m.RegionId)) - } - if m.FromPeer != nil { - l = m.FromPeer.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } - if m.ToPeer != nil { - l = m.ToPeer.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } - if m.Message != nil { - l = m.Message.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } - if m.RegionEpoch != nil { - l = m.RegionEpoch.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } - if m.IsTombstone { - n += 2 - } - l = len(m.StartKey) - if l > 0 { - n += 1 + l + sovRaftServerpb(uint64(l)) - } - l = len(m.EndKey) - if l > 0 { - n += 1 + l + sovRaftServerpb(uint64(l)) - } - if m.MergeTarget != nil { - l = m.MergeTarget.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } - if m.ExtraMsg != nil { - l = m.ExtraMsg.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } - l = len(m.ExtraCtx) - if l > 0 { - n += 1 + l + sovRaftServerpb(uint64(l)) - } - if m.DiskUsage != 0 { - n += 1 + sovRaftServerpb(uint64(m.DiskUsage)) - } if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - return n + if len(m.FileName) > 0 { + for iNdEx := len(m.FileName) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.FileName[iNdEx]) + copy(dAtA[i:], m.FileName[iNdEx]) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.FileName[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil } -func (m *RaftTruncatedState) Size() (n int) { - if m == nil { - return 0 +func (m *TabletSnapshotResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *TabletSnapshotResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TabletSnapshotResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.Index != 0 { - n += 1 + sovRaftServerpb(uint64(m.Index)) - } - if m.Term != 0 { - n += 1 + sovRaftServerpb(uint64(m.Term)) - } if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - return n + if m.Files != nil { + { + size, err := m.Files.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *SnapshotCFFile) Size() (n int) { - if m == nil { - return 0 +func (m *KeyValue) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *KeyValue) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KeyValue) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = len(m.Cf) - if l > 0 { - n += 1 + l + sovRaftServerpb(uint64(l)) - } - if m.Size_ != 0 { - n += 1 + sovRaftServerpb(uint64(m.Size_)) + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - if m.Checksum != 0 { - n += 1 + sovRaftServerpb(uint64(m.Checksum)) + if len(m.Value) > 0 { + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0x12 } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa } - return n + return len(dAtA) - i, nil } -func (m *SnapshotMeta) Size() (n int) { - if m == nil { - return 0 +func (m *RaftSnapshotData) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *RaftSnapshotData) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RaftSnapshotData) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if len(m.CfFiles) > 0 { - for _, e := range m.CfFiles { - l = e.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.MergedRecords) > 0 { + for iNdEx := len(m.MergedRecords) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.MergedRecords[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a } } - if m.ForBalance { - n += 2 + if len(m.RemovedRecords) > 0 { + for iNdEx := len(m.RemovedRecords) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RemovedRecords[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } } - if m.ForWitness { - n += 2 + if m.Meta != nil { + { + size, err := m.Meta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a } - if m.Start != 0 { - n += 1 + sovRaftServerpb(uint64(m.Start)) + if m.Version != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Version)) + i-- + dAtA[i] = 0x20 } - if m.GenerateDurationSec != 0 { - n += 1 + sovRaftServerpb(uint64(m.GenerateDurationSec)) + if len(m.Data) > 0 { + for iNdEx := len(m.Data) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Data[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + if m.FileSize != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.FileSize)) + i-- + dAtA[i] = 0x10 } - return n + if m.Region != nil { + { + size, err := m.Region.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *SnapshotChunk) Size() (n int) { - if m == nil { - return 0 +func (m *StoreIdent) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *StoreIdent) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StoreIdent) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.Message != nil { - l = m.Message.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - l = len(m.Data) - if l > 0 { - n += 1 + l + sovRaftServerpb(uint64(l)) + if m.ApiVersion != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.ApiVersion)) + i-- + dAtA[i] = 0x18 } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + if m.StoreId != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.StoreId)) + i-- + dAtA[i] = 0x10 } - return n + if m.ClusterId != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.ClusterId)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil } -func (m *Done) Size() (n int) { - if m == nil { - return 0 +func (m *StoreRecoverState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *StoreRecoverState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StoreRecoverState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - return n + if m.Seqno != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Seqno)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil } -func (m *KeyValue) Size() (n int) { - if m == nil { - return 0 +func (m *RaftLocalState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *RaftLocalState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RaftLocalState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = len(m.Key) - if l > 0 { - n += 1 + l + sovRaftServerpb(uint64(l)) + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - l = len(m.Value) - if l > 0 { - n += 1 + l + sovRaftServerpb(uint64(l)) + if m.LastIndex != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.LastIndex)) + i-- + dAtA[i] = 0x10 } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + if m.HardState != nil { + { + size, err := m.HardState.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa } - return n + return len(dAtA) - i, nil } -func (m *RaftSnapshotData) Size() (n int) { - if m == nil { - return 0 +func (m *RaftApplyState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *RaftApplyState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RaftApplyState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.Region != nil { - l = m.Region.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - if m.FileSize != 0 { - n += 1 + sovRaftServerpb(uint64(m.FileSize)) + if m.CommitTerm != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.CommitTerm)) + i-- + dAtA[i] = 0x28 } - if len(m.Data) > 0 { - for _, e := range m.Data { - l = e.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } + if m.CommitIndex != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.CommitIndex)) + i-- + dAtA[i] = 0x20 } - if m.Version != 0 { - n += 1 + sovRaftServerpb(uint64(m.Version)) + if m.LastCommitIndex != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.LastCommitIndex)) + i-- + dAtA[i] = 0x18 } - if m.Meta != nil { - l = m.Meta.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } - if len(m.RemovedRecords) > 0 { - for _, e := range m.RemovedRecords { - l = e.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } - } - if len(m.MergedRecords) > 0 { - for _, e := range m.MergedRecords { - l = e.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) + if m.TruncatedState != nil { + { + size, err := m.TruncatedState.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x12 } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + if m.AppliedIndex != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.AppliedIndex)) + i-- + dAtA[i] = 0x8 } - return n + return len(dAtA) - i, nil } -func (m *StoreIdent) Size() (n int) { - if m == nil { - return 0 +func (m *MergeState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *MergeState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MergeState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.ClusterId != 0 { - n += 1 + sovRaftServerpb(uint64(m.ClusterId)) + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - if m.StoreId != 0 { - n += 1 + sovRaftServerpb(uint64(m.StoreId)) + if m.Commit != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Commit)) + i-- + dAtA[i] = 0x18 } - if m.ApiVersion != 0 { - n += 1 + sovRaftServerpb(uint64(m.ApiVersion)) + if m.Target != nil { + { + size, err := m.Target.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + if m.MinIndex != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.MinIndex)) + i-- + dAtA[i] = 0x8 } - return n + return len(dAtA) - i, nil } -func (m *StoreRecoverState) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Seqno != 0 { - n += 1 + sovRaftServerpb(uint64(m.Seqno)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) +func (m *MergedRecord) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - return n + return dAtA[:n], nil } -func (m *RaftLocalState) Size() (n int) { - if m == nil { - return 0 - } +func (m *MergedRecord) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MergedRecord) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.HardState != nil { - l = m.HardState.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } - if m.LastIndex != 0 { - n += 1 + sovRaftServerpb(uint64(m.LastIndex)) - } if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - return n -} - -func (m *RaftApplyState) Size() (n int) { - if m == nil { - return 0 + if m.Index != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Index)) + i-- + dAtA[i] = 0x38 } - var l int - _ = l - if m.AppliedIndex != 0 { - n += 1 + sovRaftServerpb(uint64(m.AppliedIndex)) + if len(m.TargetPeers) > 0 { + for iNdEx := len(m.TargetPeers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.TargetPeers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } } - if m.TruncatedState != nil { - l = m.TruncatedState.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) + if m.TargetEpoch != nil { + { + size, err := m.TargetEpoch.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a } - if m.LastCommitIndex != 0 { - n += 1 + sovRaftServerpb(uint64(m.LastCommitIndex)) + if m.TargetRegionId != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.TargetRegionId)) + i-- + dAtA[i] = 0x20 } - if m.CommitIndex != 0 { - n += 1 + sovRaftServerpb(uint64(m.CommitIndex)) + if len(m.SourcePeers) > 0 { + for iNdEx := len(m.SourcePeers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.SourcePeers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } } - if m.CommitTerm != 0 { - n += 1 + sovRaftServerpb(uint64(m.CommitTerm)) + if m.SourceEpoch != nil { + { + size, err := m.SourceEpoch.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + if m.SourceRegionId != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.SourceRegionId)) + i-- + dAtA[i] = 0x8 } - return n + return len(dAtA) - i, nil } -func (m *MergeState) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.MinIndex != 0 { - n += 1 + sovRaftServerpb(uint64(m.MinIndex)) - } - if m.Target != nil { - l = m.Target.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } - if m.Commit != 0 { - n += 1 + sovRaftServerpb(uint64(m.Commit)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) +func (m *RegionLocalState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - return n + return dAtA[:n], nil } -func (m *MergedRecord) Size() (n int) { - if m == nil { - return 0 - } +func (m *RegionLocalState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RegionLocalState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.SourceRegionId != 0 { - n += 1 + sovRaftServerpb(uint64(m.SourceRegionId)) - } - if m.SourceEpoch != nil { - l = m.SourceEpoch.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - if len(m.SourcePeers) > 0 { - for _, e := range m.SourcePeers { - l = e.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) + if len(m.MergedRecords) > 0 { + for iNdEx := len(m.MergedRecords) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.MergedRecords[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 } } - if m.TargetRegionId != 0 { - n += 1 + sovRaftServerpb(uint64(m.TargetRegionId)) - } - if m.TargetEpoch != nil { - l = m.TargetEpoch.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } - if len(m.TargetPeers) > 0 { - for _, e := range m.TargetPeers { - l = e.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) + if len(m.RemovedRecords) > 0 { + for iNdEx := len(m.RemovedRecords) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RemovedRecords[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a } } - if m.Index != 0 { - n += 1 + sovRaftServerpb(uint64(m.Index)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *RegionLocalState) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.State != 0 { - n += 1 + sovRaftServerpb(uint64(m.State)) - } - if m.Region != nil { - l = m.Region.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } - if m.MergeState != nil { - l = m.MergeState.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } if m.TabletIndex != 0 { - n += 1 + sovRaftServerpb(uint64(m.TabletIndex)) + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.TabletIndex)) + i-- + dAtA[i] = 0x20 } - if len(m.RemovedRecords) > 0 { - for _, e := range m.RemovedRecords { - l = e.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) + if m.MergeState != nil { + { + size, err := m.MergeState.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x1a } - if len(m.MergedRecords) > 0 { - for _, e := range m.MergedRecords { - l = e.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) + if m.Region != nil { + { + size, err := m.Region.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x12 } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + if m.State != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.State)) + i-- + dAtA[i] = 0x8 } - return n + return len(dAtA) - i, nil } -func (m *RegionSequenceNumberRelation) Size() (n int) { - if m == nil { - return 0 +func (m *RegionSequenceNumberRelation) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *RegionSequenceNumberRelation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RegionSequenceNumberRelation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.RegionId != 0 { - n += 1 + sovRaftServerpb(uint64(m.RegionId)) + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - if m.SequenceNumber != 0 { - n += 1 + sovRaftServerpb(uint64(m.SequenceNumber)) + if m.RegionState != nil { + { + size, err := m.RegionState.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 } if m.ApplyState != nil { - l = m.ApplyState.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) + { + size, err := m.ApplyState.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a } - if m.RegionState != nil { - l = m.RegionState.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) + if m.SequenceNumber != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.SequenceNumber)) + i-- + dAtA[i] = 0x10 } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + if m.RegionId != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.RegionId)) + i-- + dAtA[i] = 0x8 } - return n + return len(dAtA) - i, nil } -func (m *CheckGcPeer) Size() (n int) { - if m == nil { - return 0 +func (m *CheckGcPeer) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *CheckGcPeer) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CheckGcPeer) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.FromRegionId != 0 { - n += 1 + sovRaftServerpb(uint64(m.FromRegionId)) + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - if m.CheckRegionId != 0 { - n += 1 + sovRaftServerpb(uint64(m.CheckRegionId)) + if m.CheckPeer != nil { + { + size, err := m.CheckPeer.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 } if m.CheckRegionEpoch != nil { - l = m.CheckRegionEpoch.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) + { + size, err := m.CheckRegionEpoch.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a } - if m.CheckPeer != nil { - l = m.CheckPeer.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) + if m.CheckRegionId != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.CheckRegionId)) + i-- + dAtA[i] = 0x10 } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + if m.FromRegionId != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.FromRegionId)) + i-- + dAtA[i] = 0x8 } - return n + return len(dAtA) - i, nil } -func (m *ExtraMessage) Size() (n int) { - if m == nil { - return 0 +func (m *ExtraMessage) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *ExtraMessage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExtraMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.Type != 0 { - n += 1 + sovRaftServerpb(uint64(m.Type)) + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.CheckGcPeer != nil { + { + size, err := m.CheckGcPeer.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.ForcelyAwaken { + i-- + if m.ForcelyAwaken { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } + if m.WaitData { + i-- + if m.WaitData { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if len(m.CheckPeers) > 0 { + for iNdEx := len(m.CheckPeers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.CheckPeers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if m.Index != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Index)) + i-- + dAtA[i] = 0x10 + } + if m.Type != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Type)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func encodeVarintRaftServerpb(dAtA []byte, offset int, v uint64) int { + offset -= sovRaftServerpb(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *RaftMessage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RegionId != 0 { + n += 1 + sovRaftServerpb(uint64(m.RegionId)) + } + if m.FromPeer != nil { + l = m.FromPeer.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.ToPeer != nil { + l = m.ToPeer.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.Message != nil { + l = m.Message.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.RegionEpoch != nil { + l = m.RegionEpoch.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.IsTombstone { + n += 2 + } + l = len(m.StartKey) + if l > 0 { + n += 1 + l + sovRaftServerpb(uint64(l)) + } + l = len(m.EndKey) + if l > 0 { + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.MergeTarget != nil { + l = m.MergeTarget.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.ExtraMsg != nil { + l = m.ExtraMsg.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + l = len(m.ExtraCtx) + if l > 0 { + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.DiskUsage != 0 { + n += 1 + sovRaftServerpb(uint64(m.DiskUsage)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *RaftTruncatedState) Size() (n int) { + if m == nil { + return 0 } + var l int + _ = l if m.Index != 0 { n += 1 + sovRaftServerpb(uint64(m.Index)) } - if len(m.CheckPeers) > 0 { - for _, e := range m.CheckPeers { + if m.Term != 0 { + n += 1 + sovRaftServerpb(uint64(m.Term)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *SnapshotCFFile) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Cf) + if l > 0 { + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.Size_ != 0 { + n += 1 + sovRaftServerpb(uint64(m.Size_)) + } + if m.Checksum != 0 { + n += 1 + sovRaftServerpb(uint64(m.Checksum)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *SnapshotMeta) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.CfFiles) > 0 { + for _, e := range m.CfFiles { l = e.Size() n += 1 + l + sovRaftServerpb(uint64(l)) } } - if m.WaitData { - n += 2 - } - if m.ForcelyAwaken { - n += 2 - } - if m.CheckGcPeer != nil { - l = m.CheckGcPeer.Size() - n += 1 + l + sovRaftServerpb(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} + if m.ForBalance { + n += 2 + } + if m.ForWitness { + n += 2 + } + if m.Start != 0 { + n += 1 + sovRaftServerpb(uint64(m.Start)) + } + if m.GenerateDurationSec != 0 { + n += 1 + sovRaftServerpb(uint64(m.GenerateDurationSec)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *SnapshotChunk) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Message != nil { + l = m.Message.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + l = len(m.Data) + if l > 0 { + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Done) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TabletSnapshotFileMeta) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.FileSize != 0 { + n += 1 + sovRaftServerpb(uint64(m.FileSize)) + } + l = len(m.FileName) + if l > 0 { + n += 1 + l + sovRaftServerpb(uint64(l)) + } + l = len(m.HeadChunk) + if l > 0 { + n += 1 + l + sovRaftServerpb(uint64(l)) + } + l = len(m.TrailingChunk) + if l > 0 { + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TabletSnapshotPreview) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Metas) > 0 { + for _, e := range m.Metas { + l = e.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + } + if m.End { + n += 2 + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TabletSnapshotFileChunk) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.FileSize != 0 { + n += 1 + sovRaftServerpb(uint64(m.FileSize)) + } + l = len(m.FileName) + if l > 0 { + n += 1 + l + sovRaftServerpb(uint64(l)) + } + l = len(m.Data) + if l > 0 { + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TabletSnapshotHead) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Message != nil { + l = m.Message.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.UseCache { + n += 2 + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TabletSnapshotEnd) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Checksum != 0 { + n += 1 + sovRaftServerpb(uint64(m.Checksum)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TabletSnapshotRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Payload != nil { + n += m.Payload.Size() + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TabletSnapshotRequest_Head) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Head != nil { + l = m.Head.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + return n +} +func (m *TabletSnapshotRequest_Preview) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Preview != nil { + l = m.Preview.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + return n +} +func (m *TabletSnapshotRequest_Chunk) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Chunk != nil { + l = m.Chunk.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + return n +} +func (m *TabletSnapshotRequest_End) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.End != nil { + l = m.End.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + return n +} +func (m *AcceptedSnapshotFiles) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.FileName) > 0 { + for _, s := range m.FileName { + l = len(s) + n += 1 + l + sovRaftServerpb(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TabletSnapshotResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Files != nil { + l = m.Files.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *KeyValue) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + sovRaftServerpb(uint64(l)) + } + l = len(m.Value) + if l > 0 { + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *RaftSnapshotData) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Region != nil { + l = m.Region.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.FileSize != 0 { + n += 1 + sovRaftServerpb(uint64(m.FileSize)) + } + if len(m.Data) > 0 { + for _, e := range m.Data { + l = e.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + } + if m.Version != 0 { + n += 1 + sovRaftServerpb(uint64(m.Version)) + } + if m.Meta != nil { + l = m.Meta.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if len(m.RemovedRecords) > 0 { + for _, e := range m.RemovedRecords { + l = e.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + } + if len(m.MergedRecords) > 0 { + for _, e := range m.MergedRecords { + l = e.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *StoreIdent) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ClusterId != 0 { + n += 1 + sovRaftServerpb(uint64(m.ClusterId)) + } + if m.StoreId != 0 { + n += 1 + sovRaftServerpb(uint64(m.StoreId)) + } + if m.ApiVersion != 0 { + n += 1 + sovRaftServerpb(uint64(m.ApiVersion)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *StoreRecoverState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Seqno != 0 { + n += 1 + sovRaftServerpb(uint64(m.Seqno)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *RaftLocalState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.HardState != nil { + l = m.HardState.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.LastIndex != 0 { + n += 1 + sovRaftServerpb(uint64(m.LastIndex)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *RaftApplyState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AppliedIndex != 0 { + n += 1 + sovRaftServerpb(uint64(m.AppliedIndex)) + } + if m.TruncatedState != nil { + l = m.TruncatedState.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.LastCommitIndex != 0 { + n += 1 + sovRaftServerpb(uint64(m.LastCommitIndex)) + } + if m.CommitIndex != 0 { + n += 1 + sovRaftServerpb(uint64(m.CommitIndex)) + } + if m.CommitTerm != 0 { + n += 1 + sovRaftServerpb(uint64(m.CommitTerm)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *MergeState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MinIndex != 0 { + n += 1 + sovRaftServerpb(uint64(m.MinIndex)) + } + if m.Target != nil { + l = m.Target.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.Commit != 0 { + n += 1 + sovRaftServerpb(uint64(m.Commit)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *MergedRecord) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SourceRegionId != 0 { + n += 1 + sovRaftServerpb(uint64(m.SourceRegionId)) + } + if m.SourceEpoch != nil { + l = m.SourceEpoch.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if len(m.SourcePeers) > 0 { + for _, e := range m.SourcePeers { + l = e.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + } + if m.TargetRegionId != 0 { + n += 1 + sovRaftServerpb(uint64(m.TargetRegionId)) + } + if m.TargetEpoch != nil { + l = m.TargetEpoch.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if len(m.TargetPeers) > 0 { + for _, e := range m.TargetPeers { + l = e.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + } + if m.Index != 0 { + n += 1 + sovRaftServerpb(uint64(m.Index)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *RegionLocalState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.State != 0 { + n += 1 + sovRaftServerpb(uint64(m.State)) + } + if m.Region != nil { + l = m.Region.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.MergeState != nil { + l = m.MergeState.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.TabletIndex != 0 { + n += 1 + sovRaftServerpb(uint64(m.TabletIndex)) + } + if len(m.RemovedRecords) > 0 { + for _, e := range m.RemovedRecords { + l = e.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + } + if len(m.MergedRecords) > 0 { + for _, e := range m.MergedRecords { + l = e.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *RegionSequenceNumberRelation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RegionId != 0 { + n += 1 + sovRaftServerpb(uint64(m.RegionId)) + } + if m.SequenceNumber != 0 { + n += 1 + sovRaftServerpb(uint64(m.SequenceNumber)) + } + if m.ApplyState != nil { + l = m.ApplyState.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.RegionState != nil { + l = m.RegionState.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *CheckGcPeer) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.FromRegionId != 0 { + n += 1 + sovRaftServerpb(uint64(m.FromRegionId)) + } + if m.CheckRegionId != 0 { + n += 1 + sovRaftServerpb(uint64(m.CheckRegionId)) + } + if m.CheckRegionEpoch != nil { + l = m.CheckRegionEpoch.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.CheckPeer != nil { + l = m.CheckPeer.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ExtraMessage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Type != 0 { + n += 1 + sovRaftServerpb(uint64(m.Type)) + } + if m.Index != 0 { + n += 1 + sovRaftServerpb(uint64(m.Index)) + } + if len(m.CheckPeers) > 0 { + for _, e := range m.CheckPeers { + l = e.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + } + if m.WaitData { + n += 2 + } + if m.ForcelyAwaken { + n += 2 + } + if m.CheckGcPeer != nil { + l = m.CheckGcPeer.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovRaftServerpb(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozRaftServerpb(x uint64) (n int) { + return sovRaftServerpb(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *RaftMessage) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RaftMessage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RaftMessage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RegionId", wireType) + } + m.RegionId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RegionId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FromPeer", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FromPeer == nil { + m.FromPeer = &metapb.Peer{} + } + if err := m.FromPeer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ToPeer", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ToPeer == nil { + m.ToPeer = &metapb.Peer{} + } + if err := m.ToPeer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Message == nil { + m.Message = &eraftpb.Message{} + } + if err := m.Message.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RegionEpoch", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RegionEpoch == nil { + m.RegionEpoch = &metapb.RegionEpoch{} + } + if err := m.RegionEpoch.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsTombstone", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsTombstone = bool(v != 0) + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StartKey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StartKey = append(m.StartKey[:0], dAtA[iNdEx:postIndex]...) + if m.StartKey == nil { + m.StartKey = []byte{} + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EndKey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EndKey = append(m.EndKey[:0], dAtA[iNdEx:postIndex]...) + if m.EndKey == nil { + m.EndKey = []byte{} + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MergeTarget", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MergeTarget == nil { + m.MergeTarget = &metapb.Region{} + } + if err := m.MergeTarget.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExtraMsg", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ExtraMsg == nil { + m.ExtraMsg = &ExtraMessage{} + } + if err := m.ExtraMsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExtraCtx", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ExtraCtx = append(m.ExtraCtx[:0], dAtA[iNdEx:postIndex]...) + if m.ExtraCtx == nil { + m.ExtraCtx = []byte{} + } + iNdEx = postIndex + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DiskUsage", wireType) + } + m.DiskUsage = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DiskUsage |= disk_usage.DiskUsage(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipRaftServerpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRaftServerpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RaftTruncatedState) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RaftTruncatedState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RaftTruncatedState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + } + m.Index = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Index |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Term", wireType) + } + m.Term = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Term |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipRaftServerpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRaftServerpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SnapshotCFFile) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SnapshotCFFile: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SnapshotCFFile: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cf", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Cf = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Size_", wireType) + } + m.Size_ = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Size_ |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Checksum", wireType) + } + m.Checksum = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Checksum |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipRaftServerpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRaftServerpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } -func sovRaftServerpb(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozRaftServerpb(x uint64) (n int) { - return sovRaftServerpb(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil } -func (m *RaftMessage) Unmarshal(dAtA []byte) error { +func (m *SnapshotMeta) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3241,17 +5041,17 @@ func (m *RaftMessage) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RaftMessage: wiretype end group for non-group") + return fmt.Errorf("proto: SnapshotMeta: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RaftMessage: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: SnapshotMeta: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RegionId", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CfFiles", wireType) } - m.RegionId = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3261,16 +5061,31 @@ func (m *RaftMessage) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.RegionId |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CfFiles = append(m.CfFiles, &SnapshotCFFile{}) + if err := m.CfFiles[len(m.CfFiles)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FromPeer", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ForBalance", wireType) } - var msglen int + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3280,33 +5095,56 @@ func (m *RaftMessage) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthRaftServerpb - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthRaftServerpb + m.ForBalance = bool(v != 0) + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ForWitness", wireType) } - if postIndex > l { - return io.ErrUnexpectedEOF + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - if m.FromPeer == nil { - m.FromPeer = &metapb.Peer{} + m.ForWitness = bool(v != 0) + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Start", wireType) } - if err := m.FromPeer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + m.Start = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Start |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ToPeer", wireType) + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field GenerateDurationSec", wireType) } - var msglen int + m.GenerateDurationSec = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3316,29 +5154,63 @@ func (m *RaftMessage) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.GenerateDurationSec |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthRaftServerpb + default: + iNdEx = preIndex + skippy, err := skipRaftServerpb(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthRaftServerpb } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - if m.ToPeer == nil { - m.ToPeer = &metapb.Peer{} + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SnapshotChunk) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb } - if err := m.ToPeer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - iNdEx = postIndex - case 4: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SnapshotChunk: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SnapshotChunk: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) } @@ -3368,17 +5240,17 @@ func (m *RaftMessage) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Message == nil { - m.Message = &eraftpb.Message{} + m.Message = &RaftMessage{} } if err := m.Message.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 5: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RegionEpoch", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) } - var msglen int + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3388,33 +5260,133 @@ func (m *RaftMessage) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthRaftServerpb + if byteLen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRaftServerpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRaftServerpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Done) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Done: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Done: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipRaftServerpb(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthRaftServerpb } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - if m.RegionEpoch == nil { - m.RegionEpoch = &metapb.RegionEpoch{} + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TabletSnapshotFileMeta) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb } - if err := m.RegionEpoch.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - iNdEx = postIndex - case 6: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TabletSnapshotFileMeta: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TabletSnapshotFileMeta: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsTombstone", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FileSize", wireType) } - var v int + m.FileSize = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3424,17 +5396,16 @@ func (m *RaftMessage) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + m.FileSize |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.IsTombstone = bool(v != 0) - case 7: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FileName", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3444,29 +5415,27 @@ func (m *RaftMessage) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthRaftServerpb } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthRaftServerpb } if postIndex > l { return io.ErrUnexpectedEOF } - m.StartKey = append(m.StartKey[:0], dAtA[iNdEx:postIndex]...) - if m.StartKey == nil { - m.StartKey = []byte{} - } + m.FileName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 8: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field HeadChunk", wireType) } var byteLen int for shift := uint(0); ; shift += 7 { @@ -3493,16 +5462,16 @@ func (m *RaftMessage) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.EndKey = append(m.EndKey[:0], dAtA[iNdEx:postIndex]...) - if m.EndKey == nil { - m.EndKey = []byte{} + m.HeadChunk = append(m.HeadChunk[:0], dAtA[iNdEx:postIndex]...) + if m.HeadChunk == nil { + m.HeadChunk = []byte{} } iNdEx = postIndex - case 9: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MergeTarget", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TrailingChunk", wireType) } - var msglen int + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3512,69 +5481,82 @@ func (m *RaftMessage) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + if byteLen < 0 { return ErrInvalidLengthRaftServerpb } - postIndex := iNdEx + msglen + postIndex := iNdEx + byteLen if postIndex < 0 { return ErrInvalidLengthRaftServerpb } if postIndex > l { return io.ErrUnexpectedEOF } - if m.MergeTarget == nil { - m.MergeTarget = &metapb.Region{} - } - if err := m.MergeTarget.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + m.TrailingChunk = append(m.TrailingChunk[:0], dAtA[iNdEx:postIndex]...) + if m.TrailingChunk == nil { + m.TrailingChunk = []byte{} } iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ExtraMsg", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowRaftServerpb - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthRaftServerpb + default: + iNdEx = preIndex + skippy, err := skipRaftServerpb(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthRaftServerpb } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - if m.ExtraMsg == nil { - m.ExtraMsg = &ExtraMessage{} + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TabletSnapshotPreview) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb } - if err := m.ExtraMsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - iNdEx = postIndex - case 11: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TabletSnapshotPreview: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TabletSnapshotPreview: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ExtraCtx", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metas", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3584,31 +5566,31 @@ func (m *RaftMessage) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthRaftServerpb } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthRaftServerpb } if postIndex > l { return io.ErrUnexpectedEOF } - m.ExtraCtx = append(m.ExtraCtx[:0], dAtA[iNdEx:postIndex]...) - if m.ExtraCtx == nil { - m.ExtraCtx = []byte{} + m.Metas = append(m.Metas, &TabletSnapshotFileMeta{}) + if err := m.Metas[len(m.Metas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex - case 12: + case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DiskUsage", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field End", wireType) } - m.DiskUsage = 0 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3618,11 +5600,12 @@ func (m *RaftMessage) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.DiskUsage |= disk_usage.DiskUsage(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } + m.End = bool(v != 0) default: iNdEx = preIndex skippy, err := skipRaftServerpb(dAtA[iNdEx:]) @@ -3645,7 +5628,7 @@ func (m *RaftMessage) Unmarshal(dAtA []byte) error { } return nil } -func (m *RaftTruncatedState) Unmarshal(dAtA []byte) error { +func (m *TabletSnapshotFileChunk) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3668,17 +5651,17 @@ func (m *RaftTruncatedState) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RaftTruncatedState: wiretype end group for non-group") + return fmt.Errorf("proto: TabletSnapshotFileChunk: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RaftTruncatedState: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TabletSnapshotFileChunk: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FileSize", wireType) } - m.Index = 0 + m.FileSize = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3688,16 +5671,16 @@ func (m *RaftTruncatedState) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Index |= uint64(b&0x7F) << shift + m.FileSize |= uint64(b&0x7F) << shift if b < 0x80 { break } } case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Term", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FileName", wireType) } - m.Term = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3707,11 +5690,58 @@ func (m *RaftTruncatedState) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Term |= uint64(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FileName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } + if byteLen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipRaftServerpb(dAtA[iNdEx:]) @@ -3734,7 +5764,7 @@ func (m *RaftTruncatedState) Unmarshal(dAtA []byte) error { } return nil } -func (m *SnapshotCFFile) Unmarshal(dAtA []byte) error { +func (m *TabletSnapshotHead) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3757,17 +5787,17 @@ func (m *SnapshotCFFile) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SnapshotCFFile: wiretype end group for non-group") + return fmt.Errorf("proto: TabletSnapshotHead: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SnapshotCFFile: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TabletSnapshotHead: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Cf", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3777,29 +5807,33 @@ func (m *SnapshotCFFile) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthRaftServerpb } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthRaftServerpb } if postIndex > l { return io.ErrUnexpectedEOF } - m.Cf = string(dAtA[iNdEx:postIndex]) + if m.Message == nil { + m.Message = &RaftMessage{} + } + if err := m.Message.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Size_", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field UseCache", wireType) } - m.Size_ = 0 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3809,12 +5843,64 @@ func (m *SnapshotCFFile) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Size_ |= uint64(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - case 3: + m.UseCache = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipRaftServerpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRaftServerpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TabletSnapshotEnd) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TabletSnapshotEnd: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TabletSnapshotEnd: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Checksum", wireType) } @@ -3828,7 +5914,7 @@ func (m *SnapshotCFFile) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Checksum |= uint32(b&0x7F) << shift + m.Checksum |= uint64(b&0x7F) << shift if b < 0x80 { break } @@ -3855,7 +5941,7 @@ func (m *SnapshotCFFile) Unmarshal(dAtA []byte) error { } return nil } -func (m *SnapshotMeta) Unmarshal(dAtA []byte) error { +func (m *TabletSnapshotRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3878,15 +5964,15 @@ func (m *SnapshotMeta) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SnapshotMeta: wiretype end group for non-group") + return fmt.Errorf("proto: TabletSnapshotRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SnapshotMeta: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TabletSnapshotRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CfFiles", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Head", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3913,16 +5999,17 @@ func (m *SnapshotMeta) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.CfFiles = append(m.CfFiles, &SnapshotCFFile{}) - if err := m.CfFiles[len(m.CfFiles)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + v := &TabletSnapshotHead{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } + m.Payload = &TabletSnapshotRequest_Head{v} iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ForBalance", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Preview", wireType) } - var v int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3932,17 +6019,32 @@ func (m *SnapshotMeta) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.ForBalance = bool(v != 0) + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &TabletSnapshotPreview{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Payload = &TabletSnapshotRequest_Preview{v} + iNdEx = postIndex case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ForWitness", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Chunk", wireType) } - var v int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3952,17 +6054,32 @@ func (m *SnapshotMeta) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.ForWitness = bool(v != 0) + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &TabletSnapshotFileChunk{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Payload = &TabletSnapshotRequest_Chunk{v} + iNdEx = postIndex case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Start", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field End", wireType) } - m.Start = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -3972,30 +6089,27 @@ func (m *SnapshotMeta) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Start |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field GenerateDurationSec", wireType) + if msglen < 0 { + return ErrInvalidLengthRaftServerpb } - m.GenerateDurationSec = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowRaftServerpb - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.GenerateDurationSec |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &TabletSnapshotEnd{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } + m.Payload = &TabletSnapshotRequest_End{v} + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipRaftServerpb(dAtA[iNdEx:]) @@ -4018,7 +6132,7 @@ func (m *SnapshotMeta) Unmarshal(dAtA []byte) error { } return nil } -func (m *SnapshotChunk) Unmarshal(dAtA []byte) error { +func (m *AcceptedSnapshotFiles) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4041,53 +6155,17 @@ func (m *SnapshotChunk) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SnapshotChunk: wiretype end group for non-group") + return fmt.Errorf("proto: AcceptedSnapshotFiles: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SnapshotChunk: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: AcceptedSnapshotFiles: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowRaftServerpb - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthRaftServerpb - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthRaftServerpb - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Message == nil { - m.Message = &RaftMessage{} - } - if err := m.Message.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FileName", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowRaftServerpb @@ -4097,25 +6175,23 @@ func (m *SnapshotChunk) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthRaftServerpb } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthRaftServerpb } if postIndex > l { return io.ErrUnexpectedEOF } - m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) - if m.Data == nil { - m.Data = []byte{} - } + m.FileName = append(m.FileName, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -4139,7 +6215,7 @@ func (m *SnapshotChunk) Unmarshal(dAtA []byte) error { } return nil } -func (m *Done) Unmarshal(dAtA []byte) error { +func (m *TabletSnapshotResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4162,12 +6238,48 @@ func (m *Done) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Done: wiretype end group for non-group") + return fmt.Errorf("proto: TabletSnapshotResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Done: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TabletSnapshotResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Files", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Files == nil { + m.Files = &AcceptedSnapshotFiles{} + } + if err := m.Files.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipRaftServerpb(dAtA[iNdEx:]) diff --git a/pkg/tikvpb/tikvpb.pb.go b/pkg/tikvpb/tikvpb.pb.go index 1cd131d..f63526e 100644 --- a/pkg/tikvpb/tikvpb.pb.go +++ b/pkg/tikvpb/tikvpb.pb.go @@ -1248,160 +1248,161 @@ func init() { func init() { proto.RegisterFile("tikvpb.proto", fileDescriptor_274fe050f0c997b3) } var fileDescriptor_274fe050f0c997b3 = []byte{ - // 2434 bytes of a gzipped FileDescriptorProto + // 2454 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x9a, 0xdb, 0x52, 0x1b, 0xc9, - 0xf9, 0xc0, 0x07, 0x5b, 0xe6, 0xd0, 0x18, 0x03, 0x0d, 0x36, 0xc3, 0x18, 0x83, 0x3d, 0xc6, 0xfe, - 0x7b, 0xf7, 0x5f, 0x45, 0x6c, 0xaf, 0xb3, 0xce, 0x1e, 0xb2, 0xc1, 0x08, 0x1b, 0xb0, 0xa0, 0x56, - 0x25, 0xc9, 0xbb, 0x4e, 0x2a, 0x29, 0xaa, 0x2d, 0x35, 0x42, 0x41, 0x9a, 0x51, 0x66, 0x9a, 0xc1, - 0x7a, 0x93, 0x3c, 0x42, 0x2a, 0xaf, 0x91, 0x9b, 0x5c, 0xa6, 0x2a, 0x17, 0xc9, 0x65, 0xca, 0x79, - 0x88, 0x5c, 0x26, 0xd5, 0x3d, 0x33, 0x7d, 0x9a, 0xee, 0x91, 0xf6, 0x8a, 0xe1, 0x3b, 0xf5, 0xf9, - 0xeb, 0xdf, 0xd7, 0x25, 0x70, 0x93, 0xf4, 0x2e, 0x92, 0xe1, 0x87, 0x9d, 0x61, 0x14, 0x92, 0x10, - 0x4e, 0xa7, 0xff, 0x79, 0xcb, 0xed, 0x70, 0x18, 0x85, 0x6d, 0x1c, 0xc7, 0x61, 0x94, 0xaa, 0xbc, - 0x85, 0x8b, 0x24, 0x1a, 0xb6, 0x73, 0x4b, 0x6f, 0x6e, 0x30, 0x1c, 0x66, 0x9f, 0x2b, 0x11, 0x3a, - 0x23, 0xa7, 0x31, 0x8e, 0x12, 0x1c, 0x71, 0xfd, 0x4a, 0xa7, 0x17, 0xa3, 0x6e, 0x37, 0xc2, 0x5d, - 0x44, 0x70, 0x27, 0x13, 0xae, 0x76, 0xc3, 0x6e, 0xc8, 0x3e, 0x7f, 0x46, 0xbf, 0x32, 0xe9, 0x62, - 0x74, 0x19, 0x13, 0xf6, 0x99, 0x0a, 0xfc, 0xbf, 0x2f, 0x81, 0xd5, 0x3d, 0x44, 0xda, 0xe7, 0xd5, - 0x70, 0x30, 0x40, 0x41, 0x27, 0x6e, 0xe0, 0x3f, 0x5c, 0xe2, 0x98, 0xc0, 0x5d, 0x30, 0x1b, 0xa5, - 0x9f, 0xb1, 0x3b, 0x75, 0xff, 0xfa, 0x93, 0xf9, 0xe7, 0xdb, 0x3b, 0x59, 0xff, 0x4d, 0xf6, 0x3b, - 0xd9, 0xdf, 0x06, 0xf7, 0x82, 0x5b, 0x60, 0x3e, 0xfb, 0x3e, 0xed, 0x75, 0x62, 0xf7, 0xda, 0xfd, - 0xeb, 0x4f, 0x2a, 0x0d, 0x90, 0x89, 0x8e, 0x3a, 0xb1, 0xf7, 0x8f, 0x45, 0x30, 0x93, 0x37, 0xf7, - 0x7f, 0xe0, 0xfa, 0x01, 0x26, 0xee, 0xd4, 0xfd, 0xa9, 0x27, 0xf3, 0xcf, 0x57, 0x76, 0xf2, 0x09, - 0x38, 0xc0, 0x24, 0xb3, 0x38, 0x74, 0x1a, 0xd4, 0x02, 0x7e, 0x0e, 0x2a, 0xcd, 0x36, 0x0a, 0xdc, - 0x6b, 0xcc, 0x72, 0x95, 0x5b, 0x52, 0xa1, 0x30, 0x65, 0x36, 0xf0, 0x4b, 0x30, 0x5b, 0x8f, 0xf0, - 0x55, 0xd4, 0x23, 0xd8, 0xbd, 0xce, 0xec, 0x5d, 0x6e, 0x9f, 0x2b, 0x84, 0x0f, 0xb7, 0x85, 0x4f, - 0xc1, 0x34, 0x1d, 0x5e, 0x8f, 0xb8, 0x15, 0xe6, 0x75, 0x87, 0x7b, 0xa5, 0x62, 0xe1, 0x93, 0xd9, - 0x51, 0x8f, 0xa3, 0xc1, 0x30, 0x8c, 0x88, 0x7b, 0x43, 0xf3, 0x48, 0xc5, 0x92, 0x47, 0x2a, 0x80, - 0x5f, 0x80, 0x99, 0x6a, 0x1f, 0xa3, 0xe0, 0x72, 0xe8, 0x4e, 0x33, 0x97, 0x35, 0xd1, 0x48, 0x2a, - 0x17, 0x3e, 0xb9, 0x25, 0x1d, 0x10, 0x9b, 0x7c, 0x3a, 0x55, 0x33, 0xda, 0x80, 0x72, 0x85, 0x34, - 0xa0, 0x5c, 0x04, 0x5f, 0x83, 0x05, 0xf6, 0xdd, 0x08, 0xfb, 0xfd, 0x0f, 0xa8, 0x7d, 0xe1, 0xce, - 0x32, 0xe7, 0x7b, 0xaa, 0x73, 0xae, 0x15, 0x11, 0x54, 0x2f, 0xda, 0x3c, 0x9d, 0xd7, 0xe3, 0xb0, - 0x7d, 0xe1, 0xce, 0x69, 0xcd, 0xe7, 0x0a, 0xa9, 0xf9, 0x5c, 0x04, 0x7f, 0x05, 0xe6, 0x1b, 0x38, - 0x0e, 0xfb, 0x09, 0x66, 0xae, 0x80, 0xb9, 0xde, 0xe5, 0xae, 0x92, 0x4e, 0x78, 0xcb, 0x1e, 0x70, - 0x1b, 0x5c, 0x3b, 0xa8, 0xba, 0xf3, 0xcc, 0x0f, 0x8a, 0xcd, 0x51, 0x15, 0xe6, 0xd7, 0x0e, 0xaa, - 0xb4, 0x99, 0x7d, 0xdc, 0xc7, 0x04, 0x37, 0x50, 0xd0, 0xc5, 0xee, 0x4d, 0xad, 0x19, 0x49, 0x27, - 0x35, 0x23, 0x49, 0xe9, 0x2a, 0x36, 0xd0, 0x15, 0x9d, 0xdc, 0x05, 0x6d, 0x15, 0x53, 0xb1, 0xb4, - 0x8a, 0xa9, 0x80, 0x8d, 0x0c, 0x5d, 0xf1, 0x35, 0xb9, 0xa5, 0x8f, 0x4c, 0xe8, 0xe4, 0x91, 0x09, - 0x69, 0xd6, 0x64, 0xfd, 0x92, 0xb8, 0x8b, 0xc5, 0x26, 0xeb, 0x97, 0x5a, 0x93, 0xf5, 0x4b, 0xa5, - 0x49, 0xea, 0xb6, 0x64, 0x69, 0x52, 0xf1, 0x95, 0x3d, 0xe0, 0x57, 0x60, 0xae, 0x81, 0xae, 0xd2, - 0x71, 0xbb, 0xcb, 0xcc, 0x7d, 0x5d, 0x76, 0xcf, 0x66, 0x84, 0x3b, 0x0b, 0x6b, 0x78, 0x08, 0x6e, - 0xe5, 0x91, 0x32, 0x7f, 0xc8, 0xfc, 0x37, 0x0b, 0xcd, 0xeb, 0x41, 0x34, 0x3f, 0xba, 0xfd, 0x1b, - 0xe8, 0x8a, 0x9d, 0xe4, 0x15, 0x6d, 0xfb, 0x67, 0x72, 0x69, 0xfb, 0x67, 0x92, 0xac, 0x79, 0x79, - 0x8d, 0x57, 0x8b, 0xcd, 0x1b, 0x97, 0x59, 0xf3, 0x83, 0x7b, 0xe0, 0x66, 0xde, 0x21, 0xd6, 0x87, - 0xdb, 0x2c, 0xce, 0x46, 0x61, 0x18, 0x6a, 0x47, 0x14, 0x1f, 0xf8, 0x0b, 0x30, 0x5f, 0x15, 0xa9, - 0xdb, 0xbd, 0x93, 0x25, 0x24, 0x39, 0x9d, 0x4b, 0x2b, 0x20, 0x99, 0xc2, 0x1a, 0x58, 0xac, 0xe3, - 0x38, 0xee, 0x0d, 0x7a, 0x31, 0xe9, 0xb5, 0xd9, 0x99, 0x58, 0x63, 0xde, 0x5b, 0x22, 0x3d, 0xa9, - 0x7a, 0x11, 0x48, 0xf7, 0x84, 0x3f, 0x82, 0x15, 0x49, 0xc4, 0x4f, 0xb8, 0xcb, 0x02, 0x3e, 0x34, - 0x05, 0x2c, 0x9e, 0x73, 0x53, 0x04, 0x3a, 0xdb, 0xd5, 0x73, 0xdc, 0xbe, 0x68, 0x7d, 0x0c, 0x9a, - 0x04, 0x91, 0xcb, 0xd8, 0x5d, 0xd7, 0x66, 0x5b, 0x55, 0x4b, 0xb3, 0xad, 0x2a, 0xe8, 0x6c, 0xb7, - 0x3e, 0x06, 0x87, 0x18, 0x45, 0x64, 0x0f, 0x23, 0xe2, 0x7a, 0xda, 0x6c, 0xcb, 0x4a, 0x69, 0xb6, - 0x65, 0x31, 0x1d, 0x26, 0x8b, 0xda, 0xc4, 0xed, 0x30, 0xe8, 0xa0, 0x68, 0x44, 0x07, 0x1f, 0xbb, - 0x0f, 0xb4, 0x61, 0x1a, 0x6c, 0xa4, 0x61, 0x1a, 0xb4, 0xd9, 0xa6, 0x92, 0x57, 0xd2, 0x2f, 0x6e, - 0x2a, 0x49, 0xad, 0x6e, 0x2a, 0x79, 0x59, 0x5b, 0x00, 0xbe, 0xe9, 0xa3, 0xf8, 0x9c, 0xce, 0x5e, - 0x2b, 0xfc, 0x01, 0x47, 0x71, 0x2f, 0x0c, 0xdc, 0x87, 0x2c, 0x9a, 0xcf, 0xa3, 0x15, 0x4d, 0x44, - 0x44, 0x83, 0x3f, 0xec, 0x81, 0xf5, 0x7a, 0x84, 0x87, 0x28, 0xc2, 0x86, 0xe0, 0xdb, 0x2c, 0xf8, - 0x67, 0xf2, 0xad, 0x66, 0xb6, 0x14, 0x6d, 0xd8, 0xa3, 0xc1, 0xaf, 0xc1, 0x8d, 0xd7, 0x83, 0x21, - 0x19, 0xb9, 0xff, 0x4d, 0xef, 0xe1, 0x07, 0xc6, 0x1b, 0x9f, 0x99, 0x88, 0x78, 0xa9, 0xcb, 0xde, - 0x0d, 0x70, 0xbd, 0x3d, 0xe8, 0xbc, 0xad, 0xcc, 0xde, 0x5d, 0x7a, 0xe0, 0xff, 0x79, 0x19, 0xdc, - 0xd6, 0x28, 0x21, 0x1e, 0x86, 0x41, 0x8c, 0xe1, 0x3e, 0x98, 0x8b, 0xb2, 0xef, 0x9c, 0x2b, 0x1e, - 0x5b, 0xb8, 0x22, 0xb5, 0xda, 0xc9, 0x3f, 0x1a, 0xc2, 0x71, 0x2c, 0x5a, 0xc0, 0xa7, 0x60, 0x95, - 0x44, 0x28, 0x88, 0xe9, 0x55, 0x7b, 0xda, 0x47, 0x23, 0x1c, 0x9d, 0xf6, 0x43, 0xd4, 0x61, 0x14, - 0x50, 0x69, 0x40, 0xae, 0x3b, 0xa6, 0xaa, 0xe3, 0x10, 0x75, 0xbc, 0xff, 0x2c, 0x82, 0x59, 0xde, - 0xcb, 0x27, 0x32, 0x8d, 0xac, 0xaa, 0x34, 0x92, 0x9a, 0xe4, 0x38, 0xf2, 0xff, 0x0a, 0x8e, 0xdc, - 0xd6, 0x70, 0x84, 0xdb, 0xa6, 0x3c, 0xf2, 0xb2, 0xc0, 0x23, 0xeb, 0x06, 0x1e, 0xe1, 0x4e, 0x02, - 0x48, 0x9e, 0x69, 0x40, 0xb2, 0x56, 0x00, 0x12, 0xee, 0x94, 0x13, 0xc9, 0x33, 0x8d, 0x48, 0xd6, - 0x0a, 0x44, 0x22, 0x5c, 0x32, 0x24, 0x79, 0xa1, 0x23, 0x89, 0x5b, 0x44, 0x12, 0xee, 0xc4, 0x99, - 0xe4, 0x65, 0x81, 0x49, 0xd6, 0x0d, 0x4c, 0x22, 0x06, 0xc5, 0xaf, 0xbe, 0x37, 0x66, 0x28, 0xd9, - 0xb4, 0x41, 0x09, 0x0f, 0xa1, 0x51, 0xc9, 0xcb, 0x02, 0x95, 0xac, 0x1b, 0xa8, 0x44, 0x74, 0x80, - 0x63, 0xc9, 0xae, 0x09, 0x4b, 0x36, 0xcc, 0x58, 0xc2, 0xdd, 0x15, 0x2e, 0x79, 0x24, 0x71, 0xc9, - 0x8a, 0xc2, 0x25, 0xdc, 0x9e, 0x82, 0xc9, 0xae, 0x09, 0x4c, 0x36, 0xcc, 0x60, 0x22, 0x1a, 0x92, - 0xef, 0xab, 0x67, 0x1a, 0x99, 0xac, 0x15, 0xc8, 0x44, 0xac, 0x66, 0x86, 0x26, 0xbb, 0x26, 0x34, - 0xd9, 0x30, 0xa3, 0x89, 0x34, 0x3a, 0x89, 0x4d, 0x9e, 0x69, 0x6c, 0xb2, 0x56, 0x60, 0x13, 0xa5, - 0x51, 0xca, 0x16, 0xbb, 0x26, 0x38, 0xd9, 0x30, 0xc3, 0x49, 0xb1, 0x51, 0x1a, 0xe1, 0xeb, 0x22, - 0x9d, 0x78, 0x26, 0x3a, 0xe1, 0xde, 0x12, 0x9e, 0x1c, 0x59, 0xf0, 0x64, 0xcb, 0x8a, 0x27, 0x3c, - 0x8a, 0xce, 0x27, 0x2f, 0x74, 0x3e, 0x71, 0x8b, 0x7c, 0x22, 0xce, 0x42, 0x0e, 0x28, 0x47, 0x16, - 0x40, 0xd9, 0xb2, 0x02, 0x8a, 0xd2, 0x01, 0x79, 0xc5, 0xab, 0x46, 0x42, 0xb9, 0x67, 0x21, 0x14, - 0x1e, 0x46, 0x45, 0x94, 0xaf, 0x4c, 0x88, 0x72, 0x5b, 0x43, 0x14, 0xb1, 0x0e, 0xf2, 0x65, 0x76, - 0x6c, 0x63, 0x94, 0xfb, 0x76, 0x46, 0xe1, 0x91, 0x0a, 0x90, 0xf2, 0xbe, 0x0c, 0x52, 0xb6, 0xcb, - 0x21, 0x85, 0x47, 0x35, 0x52, 0xca, 0x91, 0x85, 0x52, 0xb6, 0xac, 0x94, 0x22, 0xa6, 0x5c, 0xc3, - 0x94, 0xaa, 0x11, 0x53, 0xee, 0x59, 0x30, 0x45, 0x4c, 0xb9, 0xc2, 0x29, 0xef, 0xcb, 0x38, 0x65, - 0xbb, 0x9c, 0x53, 0xc4, 0x48, 0x4d, 0xa0, 0x72, 0x64, 0x01, 0x95, 0x2d, 0x2b, 0xa8, 0x28, 0x9b, - 0x4b, 0x5e, 0xdc, 0x77, 0x25, 0xa4, 0xf2, 0xb0, 0x94, 0x54, 0x78, 0x48, 0x13, 0xaa, 0xfc, 0x7e, - 0x3c, 0xaa, 0x7c, 0x3e, 0x09, 0xaa, 0xf0, 0x46, 0x4a, 0x58, 0xe5, 0x1b, 0x8d, 0x55, 0xfc, 0x32, - 0x56, 0xe1, 0x01, 0x4d, 0xb0, 0xb2, 0x07, 0x96, 0xd2, 0x0b, 0x05, 0x9d, 0x91, 0x13, 0x1c, 0xc7, - 0xa8, 0x8b, 0xe1, 0x0e, 0xa8, 0x0c, 0xe2, 0x6e, 0x4e, 0x28, 0xde, 0x8e, 0xfa, 0xec, 0x22, 0x59, - 0x36, 0x98, 0x9d, 0xdf, 0x04, 0xeb, 0x56, 0x46, 0x82, 0x6b, 0x60, 0x86, 0xa4, 0xa8, 0xc2, 0x88, - 0xa2, 0xd2, 0x98, 0x26, 0x0c, 0x53, 0xe0, 0x3d, 0x00, 0x3a, 0xb8, 0x8f, 0x46, 0xa7, 0xa4, 0x37, - 0xc0, 0x0c, 0x21, 0x2a, 0x8d, 0x39, 0x26, 0x69, 0xf5, 0x06, 0xd8, 0xff, 0x39, 0xf0, 0xec, 0x83, - 0xb1, 0x46, 0x7d, 0xfe, 0x97, 0x47, 0xa0, 0xd2, 0xea, 0x5d, 0x24, 0xf0, 0x05, 0xb8, 0x51, 0x4b, - 0x68, 0x22, 0x37, 0xbd, 0xa7, 0x78, 0x46, 0xac, 0xf1, 0x1d, 0xf8, 0x12, 0x4c, 0xd7, 0x12, 0x96, - 0x3d, 0x8c, 0x8f, 0x2b, 0x9e, 0x99, 0x71, 0x7c, 0x07, 0x56, 0x01, 0xa8, 0x25, 0x1c, 0x59, 0xac, - 0x2f, 0x2d, 0x9e, 0x9d, 0x79, 0x7c, 0x07, 0xbe, 0x07, 0xcb, 0xb5, 0x44, 0xcf, 0x1e, 0xe3, 0xca, - 0x22, 0x6f, 0x6c, 0x4e, 0xf2, 0x1d, 0xd8, 0x01, 0xb7, 0x6b, 0x3f, 0x98, 0x32, 0xc8, 0x24, 0x35, - 0x92, 0x37, 0x51, 0x8e, 0xf2, 0x1d, 0xf8, 0x3d, 0xb8, 0x55, 0x4b, 0x94, 0x84, 0x50, 0x5a, 0xe6, - 0x78, 0xe5, 0xd9, 0xc5, 0x77, 0xe0, 0x3b, 0xb0, 0x54, 0x4b, 0xb4, 0x44, 0x35, 0xa6, 0x02, 0xf3, - 0xc6, 0xe5, 0xbe, 0x6c, 0x36, 0x12, 0x53, 0x96, 0x99, 0xa4, 0x94, 0xf2, 0x26, 0xca, 0x63, 0xbe, - 0x03, 0x7f, 0x09, 0x66, 0x6b, 0x49, 0x06, 0xa4, 0x96, 0x47, 0x34, 0xcf, 0xc6, 0xb2, 0xb9, 0x7b, - 0x06, 0xa7, 0x96, 0x17, 0x35, 0xcf, 0xc6, 0xb5, 0xbe, 0x03, 0x77, 0xc1, 0x5c, 0x2d, 0xc9, 0x31, - 0xd5, 0xf6, 0xbc, 0xe6, 0x59, 0x21, 0x37, 0xdf, 0xd2, 0x9c, 0x87, 0xac, 0x6f, 0x6d, 0x9e, 0x9d, - 0x78, 0x7d, 0x07, 0x36, 0xc0, 0x62, 0x16, 0x84, 0x6f, 0xb9, 0xf2, 0x87, 0x37, 0x6f, 0x0c, 0x02, - 0xe7, 0x1d, 0xe3, 0x20, 0x6b, 0x7d, 0x85, 0xf3, 0xec, 0x24, 0xec, 0x3b, 0xf0, 0x18, 0x2c, 0xd4, - 0x12, 0x19, 0x67, 0xcb, 0x9e, 0xe4, 0xbc, 0x52, 0x30, 0xf6, 0x1d, 0xf8, 0x0c, 0x54, 0x6a, 0xc9, - 0x41, 0x15, 0x1a, 0xde, 0xe7, 0x3c, 0x13, 0x1b, 0xe7, 0x1d, 0x90, 0xa1, 0xa7, 0xec, 0xb1, 0xce, - 0x2b, 0x05, 0x66, 0xdf, 0x81, 0x09, 0xb8, 0xcb, 0xf2, 0x8f, 0xe5, 0xc2, 0x98, 0xbc, 0x48, 0xf6, - 0x7e, 0xc2, 0x25, 0xe5, 0x3b, 0x10, 0x81, 0xd5, 0x5a, 0x62, 0x68, 0x70, 0x82, 0x92, 0xdf, 0x9b, - 0xe4, 0xb2, 0xf5, 0x1d, 0xf8, 0x4d, 0x8e, 0xff, 0xd0, 0xf2, 0x24, 0xe9, 0xd9, 0x0a, 0x02, 0xdf, - 0x81, 0x6f, 0x95, 0x42, 0x00, 0x96, 0xbd, 0x4e, 0x7a, 0xa5, 0xf5, 0x01, 0xef, 0x08, 0xe5, 0x74, - 0xcb, 0x43, 0xa5, 0x67, 0x2b, 0x12, 0xd4, 0x8e, 0xd0, 0x08, 0x65, 0x6f, 0x96, 0x5e, 0x69, 0xcd, - 0xe0, 0x3b, 0x70, 0x5f, 0x2a, 0x13, 0xa0, 0xfd, 0xf9, 0xd2, 0x2b, 0xa9, 0x1d, 0x7c, 0x07, 0x36, - 0xf5, 0x82, 0x01, 0x8e, 0x79, 0xc9, 0xf4, 0xc6, 0x95, 0x12, 0xbe, 0x03, 0xbf, 0xe3, 0xa5, 0x03, - 0xb4, 0x3d, 0x6a, 0x7a, 0xd6, 0x6a, 0x82, 0x77, 0x4a, 0x3e, 0x16, 0x63, 0xde, 0x37, 0xbd, 0x71, - 0xe5, 0x85, 0xef, 0xc0, 0x13, 0xb5, 0x9c, 0x80, 0xa5, 0x4f, 0x9d, 0x5e, 0x79, 0x99, 0xc1, 0xc3, - 0x1d, 0x60, 0x52, 0xc3, 0xa3, 0x56, 0xeb, 0x58, 0x0d, 0xc7, 0xc5, 0xc6, 0x70, 0x92, 0x96, 0x87, - 0x7b, 0x03, 0x96, 0x19, 0xa1, 0x0e, 0xe8, 0x61, 0x7b, 0x15, 0x74, 0x9a, 0x57, 0x68, 0xa8, 0xee, - 0xb0, 0xea, 0xab, 0xa6, 0x71, 0x87, 0x31, 0xb9, 0xb6, 0xc3, 0xd8, 0x9d, 0x14, 0x5f, 0x0e, 0xd4, - 0x1d, 0x96, 0x4b, 0x8d, 0x3b, 0x4c, 0x28, 0x79, 0xac, 0x53, 0x00, 0xdf, 0x05, 0x31, 0x3a, 0xc3, - 0xfb, 0x38, 0x26, 0x51, 0x38, 0x4a, 0x97, 0x42, 0x1c, 0xea, 0xa2, 0xb2, 0x78, 0xa8, 0x4d, 0x36, - 0xbc, 0x01, 0x0c, 0x56, 0x1b, 0xb8, 0xdb, 0x8b, 0x09, 0x8e, 0x68, 0x2a, 0xfd, 0xfe, 0x43, 0xca, - 0x97, 0x70, 0x5b, 0x4a, 0xb4, 0x45, 0x75, 0xde, 0xc8, 0xa3, 0x31, 0x56, 0xbc, 0x99, 0xdf, 0x82, - 0x65, 0x36, 0x3a, 0xa5, 0x8d, 0x07, 0xea, 0x05, 0x6e, 0x6a, 0xc0, 0x2f, 0x33, 0x91, 0x67, 0xa9, - 0x81, 0x07, 0x61, 0x7a, 0x1b, 0xf0, 0xf0, 0xbe, 0xd4, 0x39, 0x5d, 0x59, 0x9c, 0x25, 0x93, 0x0d, - 0x6f, 0xe0, 0xd7, 0x60, 0xa9, 0x7e, 0x3e, 0x8a, 0x7b, 0x6d, 0xd4, 0xe7, 0xf7, 0x9d, 0x84, 0x7b, - 0x9a, 0x2a, 0x0f, 0xfe, 0xa0, 0xc4, 0x82, 0x87, 0xfe, 0x56, 0xa9, 0x8e, 0xa1, 0xf1, 0xe9, 0xde, - 0x33, 0x57, 0xcb, 0x2c, 0x03, 0x2d, 0x4b, 0xde, 0x4d, 0x12, 0x61, 0x34, 0xf8, 0x89, 0x31, 0x9e, - 0x4e, 0xc1, 0x93, 0xac, 0xf8, 0x90, 0x3b, 0xb2, 0xae, 0x98, 0xa7, 0x08, 0xc0, 0xd3, 0x99, 0x41, - 0x25, 0x85, 0x6b, 0xea, 0x35, 0x22, 0x1c, 0xf3, 0x8c, 0xed, 0x8d, 0xab, 0x1e, 0x59, 0xd2, 0xaf, - 0xd0, 0x8a, 0x07, 0x96, 0x94, 0x41, 0xde, 0x8a, 0xa6, 0xdb, 0x0f, 0x03, 0xec, 0x3b, 0x4f, 0xa6, - 0xe0, 0x77, 0x60, 0x8e, 0x57, 0x57, 0xd0, 0x55, 0x8a, 0xb4, 0x89, 0xfc, 0x5f, 0x81, 0xd9, 0x66, - 0x80, 0x86, 0xf1, 0x79, 0x48, 0x51, 0x5a, 0x35, 0xca, 0x15, 0xd5, 0xf3, 0xcb, 0xe0, 0xc2, 0x1e, - 0xe2, 0x2d, 0x98, 0x6f, 0x0e, 0xfb, 0x94, 0x2c, 0xbb, 0xf4, 0x5e, 0x16, 0x59, 0x41, 0x92, 0x16, - 0xb3, 0x82, 0xa2, 0x54, 0xee, 0x1d, 0x8c, 0x3a, 0x47, 0x41, 0x07, 0x7f, 0x94, 0xef, 0x9d, 0x5c, - 0x66, 0xb8, 0x77, 0x84, 0x4a, 0x4e, 0x9f, 0x27, 0x49, 0xbb, 0x7d, 0x80, 0xc9, 0xde, 0xa8, 0x86, - 0x47, 0x52, 0xfa, 0x94, 0xc5, 0xc5, 0xf4, 0xa9, 0x6a, 0xe5, 0x33, 0xc2, 0x35, 0x4d, 0x82, 0x22, - 0xd2, 0x8a, 0xa5, 0x33, 0xa2, 0xab, 0x8a, 0x67, 0xa4, 0x68, 0x21, 0xc1, 0xeb, 0x82, 0x52, 0x83, - 0xc2, 0x8d, 0xb2, 0x5f, 0x01, 0x78, 0xf7, 0x4a, 0xdf, 0xf2, 0xe9, 0x6a, 0x3c, 0x9d, 0x82, 0x87, - 0x60, 0x71, 0xbf, 0x17, 0x0f, 0xa9, 0xc5, 0x49, 0xbd, 0xde, 0x42, 0x31, 0x25, 0xd8, 0xc1, 0x70, - 0xb8, 0x93, 0x4b, 0xa9, 0x48, 0x10, 0x6c, 0x51, 0xc3, 0x7b, 0xb7, 0x07, 0x16, 0xaa, 0x28, 0x68, - 0xe3, 0x7e, 0x1e, 0xe7, 0x0e, 0xb3, 0x4e, 0x65, 0x72, 0x94, 0xb5, 0x82, 0x9c, 0xc7, 0x68, 0x81, - 0x3b, 0xaf, 0x63, 0x82, 0x3e, 0xf4, 0x7b, 0x31, 0xed, 0x4e, 0x35, 0x0c, 0x02, 0xdc, 0x26, 0x29, - 0xc0, 0x51, 0x27, 0xb3, 0x32, 0x0f, 0x0c, 0x99, 0xcd, 0x49, 0xbd, 0xbe, 0x8f, 0x08, 0xaa, 0xa3, - 0xf6, 0x05, 0x26, 0xec, 0x20, 0x7e, 0x09, 0x66, 0x8e, 0xe2, 0x57, 0xfd, 0x5e, 0x82, 0xe1, 0x0a, - 0x33, 0xc9, 0xfe, 0x13, 0xd5, 0xb7, 0x22, 0xe4, 0xbd, 0x39, 0x04, 0xf3, 0x69, 0xba, 0xc5, 0xa8, - 0x83, 0x23, 0x69, 0xaf, 0x4a, 0xd2, 0xe2, 0x5e, 0x55, 0x94, 0xd9, 0xfb, 0x40, 0x0d, 0xdc, 0x3a, - 0xc0, 0xa4, 0x49, 0xc2, 0x08, 0x37, 0xd1, 0x19, 0x6e, 0x35, 0xe5, 0x8d, 0x2f, 0xa4, 0x86, 0x8d, - 0x2f, 0x2b, 0xb3, 0x60, 0x2d, 0xb0, 0x78, 0x80, 0x09, 0xcd, 0x9f, 0x3f, 0xa2, 0x1e, 0x39, 0x0a, - 0xce, 0x42, 0xa9, 0x28, 0xd7, 0x34, 0xc5, 0xa2, 0xbc, 0x60, 0x90, 0x45, 0xfd, 0x16, 0xcc, 0xb0, - 0x3b, 0xbf, 0x4d, 0xa0, 0x52, 0x05, 0x52, 0x89, 0xa1, 0x3c, 0xcb, 0x15, 0x99, 0xf7, 0xef, 0x00, - 0x94, 0x02, 0x1f, 0xf6, 0x62, 0x12, 0x46, 0x23, 0xe9, 0xea, 0x29, 0x2a, 0x8b, 0x57, 0x8f, 0xc9, - 0x26, 0x0b, 0xdf, 0x04, 0x80, 0x44, 0xa3, 0x57, 0x9d, 0x4e, 0x76, 0xe5, 0xa8, 0x3f, 0xb2, 0x69, - 0x71, 0x95, 0x38, 0x4e, 0x76, 0x0b, 0xe9, 0x32, 0x5e, 0x20, 0xd1, 0xe8, 0x04, 0x45, 0x17, 0x19, - 0x6f, 0x3e, 0x2c, 0x7a, 0x09, 0xad, 0x28, 0xb7, 0x4b, 0x8d, 0x78, 0xf4, 0x00, 0xac, 0xf0, 0xdd, - 0xba, 0xcf, 0x3c, 0xd8, 0xa1, 0xf8, 0x4c, 0x73, 0x37, 0xd8, 0x88, 0xca, 0x67, 0x02, 0x53, 0xde, - 0xde, 0x6f, 0xc0, 0xd2, 0x1b, 0x4c, 0x11, 0x98, 0x29, 0xeb, 0xa8, 0x8b, 0x63, 0xf8, 0x58, 0x8b, - 0xa0, 0x1b, 0x88, 0x04, 0xa9, 0xda, 0x31, 0xa5, 0x38, 0x40, 0x7b, 0x8f, 0xff, 0xf9, 0xa7, 0xd9, - 0xa9, 0xbf, 0x7e, 0xda, 0x9c, 0xfa, 0xdb, 0xa7, 0xcd, 0xa9, 0x7f, 0x7d, 0xda, 0x9c, 0xfa, 0xe3, - 0xbf, 0x37, 0x1d, 0xb0, 0x14, 0x46, 0x5d, 0x96, 0x62, 0x76, 0x2e, 0x12, 0xf6, 0x03, 0xa6, 0x0f, - 0xd3, 0xec, 0xcf, 0x17, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xc8, 0xdf, 0x05, 0xfc, 0x5d, 0x25, - 0x00, 0x00, + 0xf9, 0xc0, 0x47, 0xb6, 0xcc, 0xa1, 0x31, 0x06, 0x1a, 0x6c, 0x86, 0x31, 0x06, 0x7b, 0xcc, 0xfa, + 0xcf, 0xee, 0xbf, 0x8a, 0xd8, 0x5e, 0x67, 0x9d, 0x3d, 0x64, 0x83, 0x11, 0x36, 0xb0, 0x82, 0x5a, + 0x95, 0x24, 0xef, 0x3a, 0xa9, 0xa4, 0xa8, 0x46, 0x6a, 0x0b, 0x05, 0x69, 0x46, 0x99, 0x69, 0x06, + 0xeb, 0x4d, 0xf2, 0x08, 0x5b, 0x79, 0x92, 0x5c, 0xa6, 0x2a, 0x17, 0xc9, 0x65, 0xca, 0x79, 0x88, + 0x5c, 0x26, 0xd5, 0x3d, 0x33, 0x7d, 0x9a, 0xee, 0x11, 0x7b, 0xe5, 0xe1, 0x3b, 0xf5, 0xf9, 0xeb, + 0xdf, 0xd7, 0x16, 0xb8, 0x4d, 0xfa, 0x17, 0xc9, 0xe8, 0x6c, 0x67, 0x14, 0x85, 0x24, 0x84, 0x53, + 0xe9, 0x5f, 0xde, 0x52, 0x27, 0x1c, 0x45, 0x61, 0x07, 0xc7, 0x71, 0x18, 0xa5, 0x2a, 0x6f, 0xfe, + 0x22, 0x89, 0x46, 0x9d, 0xdc, 0xd2, 0x9b, 0x1d, 0x8e, 0x46, 0xd9, 0xe7, 0x72, 0x84, 0xde, 0x93, + 0xd3, 0x18, 0x47, 0x09, 0x8e, 0xb8, 0x7e, 0xb9, 0xdb, 0x8f, 0x51, 0xaf, 0x17, 0xe1, 0x1e, 0x22, + 0xb8, 0x9b, 0x09, 0x57, 0x7a, 0x61, 0x2f, 0x64, 0x9f, 0xbf, 0xa0, 0x5f, 0x99, 0x74, 0x21, 0xba, + 0x8c, 0x09, 0xfb, 0x4c, 0x05, 0xfe, 0xdf, 0x17, 0xc1, 0xca, 0x1e, 0x22, 0x9d, 0xf3, 0x5a, 0x38, + 0x1c, 0xa2, 0xa0, 0x1b, 0x37, 0xf1, 0x9f, 0x2e, 0x71, 0x4c, 0xe0, 0x2e, 0x98, 0x89, 0xd2, 0xcf, + 0xd8, 0xad, 0x3c, 0xbc, 0xb9, 0x3d, 0xf7, 0x7c, 0x6b, 0x27, 0xeb, 0xbf, 0xc9, 0x7e, 0x27, 0xfb, + 0xb7, 0xc9, 0xbd, 0xe0, 0x26, 0x98, 0xcb, 0xbe, 0x4f, 0xfb, 0xdd, 0xd8, 0xbd, 0xf1, 0xf0, 0xe6, + 0x76, 0xb5, 0x09, 0x32, 0xd1, 0x51, 0x37, 0xf6, 0xfe, 0xb1, 0x00, 0xa6, 0xf3, 0xe6, 0xfe, 0x0f, + 0xdc, 0x3c, 0xc0, 0xc4, 0xad, 0x3c, 0xac, 0x6c, 0xcf, 0x3d, 0x5f, 0xde, 0xc9, 0x27, 0xe0, 0x00, + 0x93, 0xcc, 0xe2, 0xd0, 0x69, 0x52, 0x0b, 0xf8, 0x19, 0xa8, 0xb6, 0x3a, 0x28, 0x70, 0x6f, 0x30, + 0xcb, 0x15, 0x6e, 0x49, 0x85, 0xc2, 0x94, 0xd9, 0xc0, 0x2f, 0xc0, 0x4c, 0x23, 0xc2, 0x57, 0x51, + 0x9f, 0x60, 0xf7, 0x26, 0xb3, 0x77, 0xb9, 0x7d, 0xae, 0x10, 0x3e, 0xdc, 0x16, 0x3e, 0x05, 0x53, + 0x74, 0x78, 0x7d, 0xe2, 0x56, 0x99, 0xd7, 0x3d, 0xee, 0x95, 0x8a, 0x85, 0x4f, 0x66, 0x47, 0x3d, + 0x8e, 0x86, 0xa3, 0x30, 0x22, 0xee, 0x2d, 0xcd, 0x23, 0x15, 0x4b, 0x1e, 0xa9, 0x00, 0x7e, 0x0e, + 0xa6, 0x6b, 0x03, 0x8c, 0x82, 0xcb, 0x91, 0x3b, 0xc5, 0x5c, 0x56, 0x45, 0x23, 0xa9, 0x5c, 0xf8, + 0xe4, 0x96, 0x74, 0x40, 0x6c, 0xf2, 0xe9, 0x54, 0x4d, 0x6b, 0x03, 0xca, 0x15, 0xd2, 0x80, 0x72, + 0x11, 0x7c, 0x0d, 0xe6, 0xd9, 0x77, 0x33, 0x1c, 0x0c, 0xce, 0x50, 0xe7, 0xc2, 0x9d, 0x61, 0xce, + 0x0f, 0x54, 0xe7, 0x5c, 0x2b, 0x22, 0xa8, 0x5e, 0xb4, 0x79, 0x3a, 0xaf, 0xc7, 0x61, 0xe7, 0xc2, + 0x9d, 0xd5, 0x9a, 0xcf, 0x15, 0x52, 0xf3, 0xb9, 0x08, 0xfe, 0x06, 0xcc, 0x35, 0x71, 0x1c, 0x0e, + 0x12, 0xcc, 0x5c, 0x01, 0x73, 0xbd, 0xcf, 0x5d, 0x25, 0x9d, 0xf0, 0x96, 0x3d, 0xe0, 0x16, 0xb8, + 0x71, 0x50, 0x73, 0xe7, 0x98, 0x1f, 0x14, 0x9b, 0xa3, 0x26, 0xcc, 0x6f, 0x1c, 0xd4, 0x68, 0x33, + 0xfb, 0x78, 0x80, 0x09, 0x6e, 0xa2, 0xa0, 0x87, 0xdd, 0xdb, 0x5a, 0x33, 0x92, 0x4e, 0x6a, 0x46, + 0x92, 0xd2, 0x55, 0x6c, 0xa2, 0x2b, 0x3a, 0xb9, 0xf3, 0xda, 0x2a, 0xa6, 0x62, 0x69, 0x15, 0x53, + 0x01, 0x1b, 0x19, 0xba, 0xe2, 0x6b, 0x72, 0x47, 0x1f, 0x99, 0xd0, 0xc9, 0x23, 0x13, 0xd2, 0xac, + 0xc9, 0xc6, 0x25, 0x71, 0x17, 0x8a, 0x4d, 0x36, 0x2e, 0xb5, 0x26, 0x1b, 0x97, 0x4a, 0x93, 0xd4, + 0x6d, 0xd1, 0xd2, 0xa4, 0xe2, 0x2b, 0x7b, 0xc0, 0x2f, 0xc1, 0x6c, 0x13, 0x5d, 0xa5, 0xe3, 0x76, + 0x97, 0x98, 0xfb, 0x9a, 0xec, 0x9e, 0xcd, 0x08, 0x77, 0x16, 0xd6, 0xf0, 0x10, 0xdc, 0xc9, 0x23, + 0x65, 0xfe, 0x90, 0xf9, 0x6f, 0x14, 0x9a, 0xd7, 0x83, 0x68, 0x7e, 0x74, 0xfb, 0x37, 0xd1, 0x15, + 0x3b, 0xc9, 0xcb, 0xda, 0xf6, 0xcf, 0xe4, 0xd2, 0xf6, 0xcf, 0x24, 0x59, 0xf3, 0xf2, 0x1a, 0xaf, + 0x14, 0x9b, 0x37, 0x2e, 0xb3, 0xe6, 0x07, 0xf7, 0xc0, 0xed, 0xbc, 0x43, 0xac, 0x0f, 0x77, 0x59, + 0x9c, 0xf5, 0xc2, 0x30, 0xd4, 0x8e, 0x28, 0x3e, 0xf0, 0x57, 0x60, 0xae, 0x26, 0x52, 0xb7, 0x7b, + 0x2f, 0x4b, 0x48, 0x72, 0x3a, 0x97, 0x56, 0x40, 0x32, 0x85, 0x75, 0xb0, 0xd0, 0xc0, 0x71, 0xdc, + 0x1f, 0xf6, 0x63, 0xd2, 0xef, 0xb0, 0x33, 0xb1, 0xca, 0xbc, 0x37, 0x45, 0x7a, 0x52, 0xf5, 0x22, + 0x90, 0xee, 0x09, 0x7f, 0x04, 0xcb, 0x92, 0x88, 0x9f, 0x70, 0x97, 0x05, 0x7c, 0x6c, 0x0a, 0x58, + 0x3c, 0xe7, 0xa6, 0x08, 0x74, 0xb6, 0x6b, 0xe7, 0xb8, 0x73, 0xd1, 0xfe, 0x10, 0xb4, 0x08, 0x22, + 0x97, 0xb1, 0xbb, 0xa6, 0xcd, 0xb6, 0xaa, 0x96, 0x66, 0x5b, 0x55, 0xd0, 0xd9, 0x6e, 0x7f, 0x08, + 0x0e, 0x31, 0x8a, 0xc8, 0x1e, 0x46, 0xc4, 0xf5, 0xb4, 0xd9, 0x96, 0x95, 0xd2, 0x6c, 0xcb, 0x62, + 0x3a, 0x4c, 0x16, 0xb5, 0x85, 0x3b, 0x61, 0xd0, 0x45, 0xd1, 0x98, 0x0e, 0x3e, 0x76, 0x1f, 0x69, + 0xc3, 0x34, 0xd8, 0x48, 0xc3, 0x34, 0x68, 0xb3, 0x4d, 0x25, 0xaf, 0xa4, 0x5f, 0xdc, 0x54, 0x92, + 0x5a, 0xdd, 0x54, 0xf2, 0xb2, 0xb6, 0x01, 0x7c, 0x33, 0x40, 0xf1, 0x39, 0x9d, 0xbd, 0x76, 0xf8, + 0x03, 0x8e, 0xe2, 0x7e, 0x18, 0xb8, 0x8f, 0x59, 0x34, 0x9f, 0x47, 0x2b, 0x9a, 0x88, 0x88, 0x06, + 0x7f, 0xd8, 0x07, 0x6b, 0x8d, 0x08, 0x8f, 0x50, 0x84, 0x0d, 0xc1, 0xb7, 0x58, 0xf0, 0x4f, 0xe5, + 0x5b, 0xcd, 0x6c, 0x29, 0xda, 0xb0, 0x47, 0x83, 0x5f, 0x81, 0x5b, 0xaf, 0x87, 0x23, 0x32, 0x76, + 0xff, 0x9b, 0xde, 0xc3, 0x8f, 0x8c, 0x37, 0x3e, 0x33, 0x11, 0xf1, 0x52, 0x97, 0xbd, 0x5b, 0xe0, + 0x66, 0x67, 0xd8, 0xfd, 0xae, 0x3a, 0x73, 0x7f, 0xf1, 0x91, 0xff, 0x97, 0x25, 0x70, 0x57, 0xa3, + 0x84, 0x78, 0x14, 0x06, 0x31, 0x86, 0xfb, 0x60, 0x36, 0xca, 0xbe, 0x73, 0xae, 0x78, 0x62, 0xe1, + 0x8a, 0xd4, 0x6a, 0x27, 0xff, 0x68, 0x0a, 0xc7, 0x89, 0x68, 0x01, 0x9f, 0x82, 0x15, 0x12, 0xa1, + 0x20, 0xa6, 0x57, 0xed, 0xe9, 0x00, 0x8d, 0x71, 0x74, 0x3a, 0x08, 0x51, 0x97, 0x51, 0x40, 0xb5, + 0x09, 0xb9, 0xee, 0x98, 0xaa, 0x8e, 0x43, 0xd4, 0xf5, 0xfe, 0xb3, 0x00, 0x66, 0x78, 0x2f, 0xb7, + 0x65, 0x1a, 0x59, 0x51, 0x69, 0x24, 0x35, 0xc9, 0x71, 0xe4, 0xff, 0x15, 0x1c, 0xb9, 0xab, 0xe1, + 0x08, 0xb7, 0x4d, 0x79, 0xe4, 0x65, 0x81, 0x47, 0xd6, 0x0c, 0x3c, 0xc2, 0x9d, 0x04, 0x90, 0x3c, + 0xd3, 0x80, 0x64, 0xb5, 0x00, 0x24, 0xdc, 0x29, 0x27, 0x92, 0x67, 0x1a, 0x91, 0xac, 0x16, 0x88, + 0x44, 0xb8, 0x64, 0x48, 0xf2, 0x42, 0x47, 0x12, 0xb7, 0x88, 0x24, 0xdc, 0x89, 0x33, 0xc9, 0xcb, + 0x02, 0x93, 0xac, 0x19, 0x98, 0x44, 0x0c, 0x8a, 0x5f, 0x7d, 0x6f, 0xcc, 0x50, 0xb2, 0x61, 0x83, + 0x12, 0x1e, 0x42, 0xa3, 0x92, 0x97, 0x05, 0x2a, 0x59, 0x33, 0x50, 0x89, 0xe8, 0x00, 0xc7, 0x92, + 0x5d, 0x13, 0x96, 0xac, 0x9b, 0xb1, 0x84, 0xbb, 0x2b, 0x5c, 0xf2, 0x89, 0xc4, 0x25, 0xcb, 0x0a, + 0x97, 0x70, 0x7b, 0x0a, 0x26, 0xbb, 0x26, 0x30, 0x59, 0x37, 0x83, 0x89, 0x68, 0x48, 0xbe, 0xaf, + 0x9e, 0x69, 0x64, 0xb2, 0x5a, 0x20, 0x13, 0xb1, 0x9a, 0x19, 0x9a, 0xec, 0x9a, 0xd0, 0x64, 0xdd, + 0x8c, 0x26, 0xd2, 0xe8, 0x24, 0x36, 0x79, 0xa6, 0xb1, 0xc9, 0x6a, 0x81, 0x4d, 0x94, 0x46, 0x29, + 0x5b, 0xec, 0x9a, 0xe0, 0x64, 0xdd, 0x0c, 0x27, 0xc5, 0x46, 0x69, 0x84, 0xaf, 0x8a, 0x74, 0xe2, + 0x99, 0xe8, 0x84, 0x7b, 0x4b, 0x78, 0x72, 0x64, 0xc1, 0x93, 0x4d, 0x2b, 0x9e, 0xf0, 0x28, 0x3a, + 0x9f, 0xbc, 0xd0, 0xf9, 0xc4, 0x2d, 0xf2, 0x89, 0x38, 0x0b, 0x39, 0xa0, 0x1c, 0x59, 0x00, 0x65, + 0xd3, 0x0a, 0x28, 0x4a, 0x07, 0xe4, 0x15, 0xaf, 0x19, 0x09, 0xe5, 0x81, 0x85, 0x50, 0x78, 0x18, + 0x15, 0x51, 0xbe, 0x34, 0x21, 0xca, 0x5d, 0x0d, 0x51, 0xc4, 0x3a, 0xc8, 0x97, 0xd9, 0xb1, 0x8d, + 0x51, 0x1e, 0xda, 0x19, 0x85, 0x47, 0x2a, 0x40, 0xca, 0xbb, 0x32, 0x48, 0xd9, 0x2a, 0x87, 0x14, + 0x1e, 0xd5, 0x48, 0x29, 0x47, 0x16, 0x4a, 0xd9, 0xb4, 0x52, 0x8a, 0x98, 0x72, 0x0d, 0x53, 0x6a, + 0x46, 0x4c, 0x79, 0x60, 0xc1, 0x14, 0x31, 0xe5, 0x0a, 0xa7, 0xbc, 0x2b, 0xe3, 0x94, 0xad, 0x72, + 0x4e, 0x11, 0x23, 0x35, 0x81, 0xca, 0x91, 0x05, 0x54, 0x36, 0xad, 0xa0, 0xa2, 0x6c, 0x2e, 0x79, + 0x71, 0xdf, 0x96, 0x90, 0xca, 0xe3, 0x52, 0x52, 0xe1, 0x21, 0x4d, 0xa8, 0xf2, 0xc7, 0xc9, 0xa8, + 0xf2, 0xd9, 0x75, 0x50, 0x85, 0x37, 0x52, 0xc2, 0x2a, 0x5f, 0x6b, 0xac, 0xe2, 0x97, 0xb1, 0x0a, + 0x0f, 0x68, 0x82, 0x95, 0x3d, 0xb0, 0x98, 0x5e, 0x28, 0xe8, 0x3d, 0x39, 0xc1, 0x71, 0x8c, 0x7a, + 0x18, 0xee, 0x80, 0xea, 0x30, 0xee, 0xe5, 0x84, 0xe2, 0xed, 0xa8, 0xcf, 0x2e, 0x92, 0x65, 0x93, + 0xd9, 0xf9, 0x2d, 0xb0, 0x66, 0x65, 0x24, 0xb8, 0x0a, 0xa6, 0x49, 0x8a, 0x2a, 0x8c, 0x28, 0xaa, + 0xcd, 0x29, 0xc2, 0x30, 0x05, 0x3e, 0x00, 0xa0, 0x8b, 0x07, 0x68, 0x7c, 0x4a, 0xfa, 0x43, 0xcc, + 0x10, 0xa2, 0xda, 0x9c, 0x65, 0x92, 0x76, 0x7f, 0x88, 0xfd, 0x5f, 0x02, 0xcf, 0x3e, 0x18, 0x6b, + 0xd4, 0xe7, 0x3f, 0x3d, 0x01, 0xd5, 0x76, 0xff, 0x22, 0x81, 0x2f, 0xc0, 0xad, 0x7a, 0x42, 0x13, + 0xb9, 0xe9, 0x3d, 0xc5, 0x33, 0x62, 0x8d, 0xef, 0xc0, 0x97, 0x60, 0xaa, 0x9e, 0xb0, 0xec, 0x61, + 0x7c, 0x5c, 0xf1, 0xcc, 0x8c, 0xe3, 0x3b, 0xb0, 0x06, 0x40, 0x3d, 0xe1, 0xc8, 0x62, 0x7d, 0x69, + 0xf1, 0xec, 0xcc, 0xe3, 0x3b, 0xf0, 0x1d, 0x58, 0xaa, 0x27, 0x7a, 0xf6, 0x98, 0x54, 0x16, 0x79, + 0x13, 0x73, 0x92, 0xef, 0xc0, 0x2e, 0xb8, 0x5b, 0xff, 0xc1, 0x94, 0x41, 0xae, 0x53, 0x23, 0x79, + 0xd7, 0xca, 0x51, 0xbe, 0x03, 0xbf, 0x07, 0x77, 0xea, 0x89, 0x92, 0x10, 0x4a, 0xcb, 0x1c, 0xaf, + 0x3c, 0xbb, 0xf8, 0x0e, 0x7c, 0x0b, 0x16, 0xeb, 0x89, 0x96, 0xa8, 0x26, 0x54, 0x60, 0xde, 0xa4, + 0xdc, 0x97, 0xcd, 0x46, 0x62, 0xca, 0x32, 0xd7, 0x29, 0xa5, 0xbc, 0x6b, 0xe5, 0x31, 0xdf, 0x81, + 0xbf, 0x06, 0x33, 0xf5, 0x24, 0x03, 0x52, 0xcb, 0x23, 0x9a, 0x67, 0x63, 0xd9, 0xdc, 0x3d, 0x83, + 0x53, 0xcb, 0x8b, 0x9a, 0x67, 0xe3, 0x5a, 0xdf, 0x81, 0xbb, 0x60, 0xb6, 0x9e, 0xe4, 0x98, 0x6a, + 0x7b, 0x5e, 0xf3, 0xac, 0x90, 0x9b, 0x6f, 0x69, 0xce, 0x43, 0xd6, 0xb7, 0x36, 0xcf, 0x4e, 0xbc, + 0xbe, 0x03, 0x9b, 0x60, 0x21, 0x0b, 0xc2, 0xb7, 0x5c, 0xf9, 0xc3, 0x9b, 0x37, 0x01, 0x81, 0xf3, + 0x8e, 0x71, 0x90, 0xb5, 0xbe, 0xc2, 0x79, 0x76, 0x12, 0xf6, 0x1d, 0x78, 0x0c, 0xe6, 0xeb, 0x89, + 0x8c, 0xb3, 0x65, 0x4f, 0x72, 0x5e, 0x29, 0x18, 0xfb, 0x0e, 0x7c, 0x06, 0xaa, 0xf5, 0xe4, 0xa0, + 0x06, 0x0d, 0xef, 0x73, 0x9e, 0x89, 0x8d, 0xf3, 0x0e, 0xc8, 0xd0, 0x53, 0xf6, 0x58, 0xe7, 0x95, + 0x02, 0xb3, 0xef, 0xc0, 0x04, 0xdc, 0x67, 0xf9, 0xc7, 0x72, 0x61, 0x5c, 0xbf, 0x48, 0xf6, 0x7e, + 0xc6, 0x25, 0xe5, 0x3b, 0x10, 0x81, 0x95, 0x7a, 0x62, 0x68, 0xf0, 0x1a, 0x25, 0xbf, 0x77, 0x9d, + 0xcb, 0xd6, 0x77, 0xe0, 0xd7, 0x39, 0xfe, 0x43, 0xcb, 0x93, 0xa4, 0x67, 0x2b, 0x08, 0x7c, 0x07, + 0x7e, 0xa7, 0x14, 0x02, 0xb0, 0xec, 0x75, 0xd2, 0x2b, 0xad, 0x0f, 0x78, 0x47, 0x28, 0xa7, 0x5b, + 0x1e, 0x2a, 0x3d, 0x5b, 0x91, 0xa0, 0x76, 0x84, 0x46, 0x28, 0x7b, 0xb3, 0xf4, 0x4a, 0x6b, 0x06, + 0xdf, 0x81, 0xfb, 0x52, 0x99, 0x00, 0xed, 0xcf, 0x97, 0x5e, 0x49, 0xed, 0xe0, 0x3b, 0xb0, 0xa5, + 0x17, 0x0c, 0x70, 0xc2, 0x4b, 0xa6, 0x37, 0xa9, 0x94, 0xf0, 0x1d, 0xf8, 0x2d, 0x2f, 0x1d, 0xa0, + 0xed, 0x51, 0xd3, 0xb3, 0x56, 0x13, 0xbc, 0x53, 0xf2, 0xb1, 0x98, 0xf0, 0xbe, 0xe9, 0x4d, 0x2a, + 0x2f, 0x7c, 0x07, 0x9e, 0xa8, 0xe5, 0x04, 0x2c, 0x7d, 0xea, 0xf4, 0xca, 0xcb, 0x0c, 0x1e, 0xee, + 0x00, 0x93, 0x3a, 0x1e, 0xb7, 0xdb, 0xc7, 0x6a, 0x38, 0x2e, 0x36, 0x86, 0x93, 0xb4, 0x3c, 0xdc, + 0x1b, 0xb0, 0xc4, 0x08, 0x75, 0x48, 0x0f, 0xdb, 0xab, 0xa0, 0xdb, 0xba, 0x42, 0x23, 0x75, 0x87, + 0xd5, 0x5e, 0xb5, 0x8c, 0x3b, 0x8c, 0xc9, 0xb5, 0x1d, 0xc6, 0xee, 0xa4, 0xf8, 0x72, 0xa8, 0xee, + 0xb0, 0x5c, 0x6a, 0xdc, 0x61, 0x42, 0xc9, 0x63, 0x9d, 0x02, 0xf8, 0x36, 0x88, 0xd1, 0x7b, 0xbc, + 0x8f, 0x63, 0x12, 0x85, 0xe3, 0x74, 0x29, 0xc4, 0xa1, 0x2e, 0x2a, 0x8b, 0x87, 0xda, 0x64, 0xc3, + 0x1b, 0xc0, 0x60, 0xa5, 0x89, 0x7b, 0xfd, 0x98, 0xe0, 0x88, 0xa6, 0xd2, 0xef, 0xcf, 0x52, 0xbe, + 0x84, 0x5b, 0x52, 0xa2, 0x2d, 0xaa, 0xf3, 0x46, 0x3e, 0x99, 0x60, 0xc5, 0x9b, 0xf9, 0x3d, 0x58, + 0x62, 0xa3, 0x53, 0xda, 0x78, 0xa4, 0x5e, 0xe0, 0xa6, 0x06, 0xfc, 0x32, 0x13, 0x79, 0x96, 0x9a, + 0x78, 0x18, 0xa6, 0xb7, 0x01, 0x0f, 0xef, 0x4b, 0x9d, 0xd3, 0x95, 0xc5, 0x59, 0x32, 0xd9, 0xf0, + 0x06, 0x7e, 0x0b, 0x16, 0x1b, 0xe7, 0xe3, 0xb8, 0xdf, 0x41, 0x03, 0x7e, 0xdf, 0x49, 0xb8, 0xa7, + 0xa9, 0xf2, 0xe0, 0x8f, 0x4a, 0x2c, 0x78, 0xe8, 0x6f, 0x94, 0xea, 0x18, 0x1a, 0x9f, 0xee, 0x3d, + 0x73, 0xb5, 0xcc, 0x32, 0xd0, 0x92, 0xe4, 0xdd, 0x22, 0x11, 0x46, 0xc3, 0x9f, 0x19, 0xe3, 0x69, + 0x05, 0x9e, 0x64, 0xc5, 0x87, 0xdc, 0x91, 0x35, 0xc5, 0x3c, 0x45, 0x00, 0x9e, 0xce, 0x0c, 0x2a, + 0x29, 0x5c, 0x4b, 0xaf, 0x11, 0xe1, 0x84, 0x67, 0x6c, 0x6f, 0x52, 0xf5, 0xc8, 0x92, 0x7e, 0x95, + 0x56, 0x3c, 0xb0, 0xa4, 0x0c, 0xf2, 0x96, 0x35, 0xdd, 0x7e, 0x18, 0x60, 0xdf, 0xd9, 0xae, 0xc0, + 0x6f, 0xc1, 0x2c, 0xaf, 0xae, 0xa0, 0xab, 0x14, 0x69, 0xd7, 0xf2, 0x7f, 0x05, 0x66, 0x5a, 0x01, + 0x1a, 0xc5, 0xe7, 0x21, 0x45, 0x69, 0xd5, 0x28, 0x57, 0xd4, 0xce, 0x2f, 0x83, 0x0b, 0x7b, 0x88, + 0x0e, 0xb8, 0xd3, 0x46, 0x67, 0x03, 0x4c, 0x78, 0xa0, 0x2d, 0xcd, 0x54, 0x55, 0x8b, 0x23, 0x56, + 0x6e, 0x95, 0x4f, 0xd0, 0x76, 0xe5, 0x69, 0x85, 0xa6, 0x9e, 0xd6, 0x68, 0x40, 0xf1, 0xb5, 0x47, + 0x2f, 0x7f, 0x91, 0x7a, 0x24, 0x69, 0x31, 0xf5, 0x28, 0x4a, 0xe5, 0x72, 0xc3, 0xa8, 0x7b, 0x14, + 0x74, 0xf1, 0x07, 0xf9, 0x72, 0xcb, 0x65, 0x86, 0xcb, 0x4d, 0xa8, 0xe4, 0x1c, 0x7d, 0x92, 0x74, + 0x3a, 0x07, 0x98, 0xec, 0x8d, 0xeb, 0x78, 0x2c, 0xe5, 0x68, 0x59, 0x5c, 0xcc, 0xd1, 0xaa, 0x56, + 0x3e, 0x88, 0x5c, 0xd3, 0x22, 0x28, 0x22, 0xed, 0x58, 0x3a, 0x88, 0xba, 0xaa, 0x78, 0x10, 0x8b, + 0x16, 0x12, 0x21, 0xcf, 0x2b, 0x85, 0x2e, 0x5c, 0x2f, 0xfb, 0xa9, 0x81, 0xf7, 0xa0, 0xf4, 0x3f, + 0x0c, 0xb2, 0xf5, 0x38, 0x04, 0x0b, 0xfb, 0xfd, 0x78, 0x44, 0x2d, 0x4e, 0x1a, 0x8d, 0x36, 0x8a, + 0x29, 0x26, 0x0f, 0x47, 0xa3, 0x9d, 0x5c, 0x4a, 0x45, 0x02, 0x93, 0x8b, 0x1a, 0xde, 0xbb, 0x3d, + 0x30, 0x5f, 0x43, 0x41, 0x07, 0x0f, 0xf2, 0x38, 0xf7, 0x98, 0x75, 0x2a, 0x93, 0xa3, 0xac, 0x16, + 0xe4, 0x3c, 0x46, 0x1b, 0xdc, 0x7b, 0x1d, 0x13, 0x74, 0x36, 0xe8, 0xc7, 0xb4, 0x3b, 0xb5, 0x30, + 0x08, 0x70, 0x87, 0xa4, 0x94, 0x48, 0x9d, 0xcc, 0xca, 0x3c, 0x30, 0x64, 0x36, 0x27, 0x8d, 0xc6, + 0x3e, 0x22, 0xa8, 0x81, 0x3a, 0x17, 0x98, 0xb0, 0xd3, 0xfe, 0x05, 0x98, 0x3e, 0x8a, 0x5f, 0x0d, + 0xfa, 0x09, 0x86, 0xcb, 0xcc, 0x24, 0xfb, 0x4b, 0x94, 0xf8, 0x8a, 0x90, 0xf7, 0xe6, 0x10, 0xcc, + 0xa5, 0x39, 0x1d, 0xa3, 0x2e, 0x8e, 0xa4, 0xbd, 0x2a, 0x49, 0x8b, 0x7b, 0x55, 0x51, 0x66, 0x8f, + 0x10, 0x75, 0x70, 0xe7, 0x00, 0x93, 0x16, 0x09, 0x23, 0xdc, 0x42, 0xef, 0x71, 0xbb, 0x25, 0x6f, + 0x7c, 0x21, 0x35, 0x6c, 0x7c, 0x59, 0x99, 0x05, 0x6b, 0x83, 0x85, 0x03, 0x4c, 0x68, 0x92, 0xfe, + 0x11, 0xf5, 0xc9, 0x51, 0xf0, 0x3e, 0x94, 0x2a, 0x7f, 0x4d, 0x53, 0xac, 0xfc, 0x0b, 0x06, 0x59, + 0xd4, 0x6f, 0xc0, 0x34, 0x03, 0x8b, 0x0e, 0x81, 0x4a, 0xa9, 0x49, 0x25, 0x86, 0x1a, 0x30, 0x57, + 0x64, 0xde, 0x7f, 0x00, 0x50, 0x0a, 0x7c, 0xd8, 0x8f, 0x49, 0x18, 0x8d, 0xa5, 0xfb, 0xad, 0xa8, + 0x2c, 0xde, 0x6f, 0x26, 0x9b, 0x2c, 0x7c, 0x0b, 0x00, 0x12, 0x8d, 0x5f, 0x75, 0xbb, 0xd9, 0xbd, + 0xa6, 0xfe, 0x92, 0xa7, 0xcd, 0x55, 0xe2, 0x38, 0xd9, 0x2d, 0xa4, 0x1b, 0x7f, 0x9e, 0x44, 0xe3, + 0x13, 0x14, 0x5d, 0x64, 0x50, 0xfb, 0xb8, 0xe8, 0x25, 0xb4, 0xa2, 0xa6, 0x2f, 0x35, 0xe2, 0xd1, + 0x03, 0xb0, 0xcc, 0x77, 0xeb, 0x3e, 0xf3, 0x60, 0x87, 0xe2, 0x53, 0xcd, 0xdd, 0x60, 0x23, 0xca, + 0xab, 0x6b, 0x98, 0xf2, 0xf6, 0x7e, 0x07, 0x16, 0xdf, 0x60, 0xca, 0xd9, 0x4c, 0xd9, 0x40, 0x3d, + 0x1c, 0xc3, 0x27, 0x5a, 0x04, 0xdd, 0x40, 0x24, 0x48, 0xd5, 0x8e, 0x29, 0xc5, 0x01, 0xda, 0x7b, + 0xf2, 0xcf, 0x9f, 0x66, 0x2a, 0x7f, 0xfd, 0xb8, 0x51, 0xf9, 0xdb, 0xc7, 0x8d, 0xca, 0xbf, 0x3e, + 0x6e, 0x54, 0xfe, 0xfc, 0xef, 0x0d, 0x07, 0x2c, 0x86, 0x51, 0x8f, 0xa5, 0x98, 0x9d, 0x8b, 0x84, + 0xfd, 0x4a, 0xea, 0x6c, 0x8a, 0xfd, 0xf3, 0xf9, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x1b, 0x54, + 0xde, 0xc2, 0xc2, 0x25, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1468,6 +1469,7 @@ type TikvClient interface { Raft(ctx context.Context, opts ...grpc.CallOption) (Tikv_RaftClient, error) BatchRaft(ctx context.Context, opts ...grpc.CallOption) (Tikv_BatchRaftClient, error) Snapshot(ctx context.Context, opts ...grpc.CallOption) (Tikv_SnapshotClient, error) + TabletSnapshot(ctx context.Context, opts ...grpc.CallOption) (Tikv_TabletSnapshotClient, error) // Sent from PD or TiDB to a TiKV node. SplitRegion(ctx context.Context, in *kvrpcpb.SplitRegionRequest, opts ...grpc.CallOption) (*kvrpcpb.SplitRegionResponse, error) // Sent from TiFlash or TiKV to a TiKV node. @@ -2026,6 +2028,37 @@ func (x *tikvSnapshotClient) CloseAndRecv() (*raft_serverpb.Done, error) { return m, nil } +func (c *tikvClient) TabletSnapshot(ctx context.Context, opts ...grpc.CallOption) (Tikv_TabletSnapshotClient, error) { + stream, err := c.cc.NewStream(ctx, &_Tikv_serviceDesc.Streams[5], "/tikvpb.Tikv/TabletSnapshot", opts...) + if err != nil { + return nil, err + } + x := &tikvTabletSnapshotClient{stream} + return x, nil +} + +type Tikv_TabletSnapshotClient interface { + Send(*raft_serverpb.TabletSnapshotRequest) error + Recv() (*raft_serverpb.TabletSnapshotResponse, error) + grpc.ClientStream +} + +type tikvTabletSnapshotClient struct { + grpc.ClientStream +} + +func (x *tikvTabletSnapshotClient) Send(m *raft_serverpb.TabletSnapshotRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *tikvTabletSnapshotClient) Recv() (*raft_serverpb.TabletSnapshotResponse, error) { + m := new(raft_serverpb.TabletSnapshotResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + func (c *tikvClient) SplitRegion(ctx context.Context, in *kvrpcpb.SplitRegionRequest, opts ...grpc.CallOption) (*kvrpcpb.SplitRegionResponse, error) { out := new(kvrpcpb.SplitRegionResponse) err := c.cc.Invoke(ctx, "/tikvpb.Tikv/SplitRegion", in, out, opts...) @@ -2063,7 +2096,7 @@ func (c *tikvClient) MvccGetByStartTs(ctx context.Context, in *kvrpcpb.MvccGetBy } func (c *tikvClient) BatchCommands(ctx context.Context, opts ...grpc.CallOption) (Tikv_BatchCommandsClient, error) { - stream, err := c.cc.NewStream(ctx, &_Tikv_serviceDesc.Streams[5], "/tikvpb.Tikv/BatchCommands", opts...) + stream, err := c.cc.NewStream(ctx, &_Tikv_serviceDesc.Streams[6], "/tikvpb.Tikv/BatchCommands", opts...) if err != nil { return nil, err } @@ -2112,7 +2145,7 @@ func (c *tikvClient) CancelMPPTask(ctx context.Context, in *mpp.CancelTaskReques } func (c *tikvClient) EstablishMPPConnection(ctx context.Context, in *mpp.EstablishMPPConnectionRequest, opts ...grpc.CallOption) (Tikv_EstablishMPPConnectionClient, error) { - stream, err := c.cc.NewStream(ctx, &_Tikv_serviceDesc.Streams[6], "/tikvpb.Tikv/EstablishMPPConnection", opts...) + stream, err := c.cc.NewStream(ctx, &_Tikv_serviceDesc.Streams[7], "/tikvpb.Tikv/EstablishMPPConnection", opts...) if err != nil { return nil, err } @@ -2225,7 +2258,7 @@ func (c *tikvClient) EstablishDisaggTask(ctx context.Context, in *disaggregated. } func (c *tikvClient) FetchDisaggPages(ctx context.Context, in *disaggregated.FetchDisaggPagesRequest, opts ...grpc.CallOption) (Tikv_FetchDisaggPagesClient, error) { - stream, err := c.cc.NewStream(ctx, &_Tikv_serviceDesc.Streams[7], "/tikvpb.Tikv/FetchDisaggPages", opts...) + stream, err := c.cc.NewStream(ctx, &_Tikv_serviceDesc.Streams[8], "/tikvpb.Tikv/FetchDisaggPages", opts...) if err != nil { return nil, err } @@ -2310,6 +2343,7 @@ type TikvServer interface { Raft(Tikv_RaftServer) error BatchRaft(Tikv_BatchRaftServer) error Snapshot(Tikv_SnapshotServer) error + TabletSnapshot(Tikv_TabletSnapshotServer) error // Sent from PD or TiDB to a TiKV node. SplitRegion(context.Context, *kvrpcpb.SplitRegionRequest) (*kvrpcpb.SplitRegionResponse, error) // Sent from TiFlash or TiKV to a TiKV node. @@ -2485,6 +2519,9 @@ func (*UnimplementedTikvServer) BatchRaft(srv Tikv_BatchRaftServer) error { func (*UnimplementedTikvServer) Snapshot(srv Tikv_SnapshotServer) error { return status.Errorf(codes.Unimplemented, "method Snapshot not implemented") } +func (*UnimplementedTikvServer) TabletSnapshot(srv Tikv_TabletSnapshotServer) error { + return status.Errorf(codes.Unimplemented, "method TabletSnapshot not implemented") +} func (*UnimplementedTikvServer) SplitRegion(ctx context.Context, req *kvrpcpb.SplitRegionRequest) (*kvrpcpb.SplitRegionResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SplitRegion not implemented") } @@ -3348,6 +3385,32 @@ func (x *tikvSnapshotServer) Recv() (*raft_serverpb.SnapshotChunk, error) { return m, nil } +func _Tikv_TabletSnapshot_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(TikvServer).TabletSnapshot(&tikvTabletSnapshotServer{stream}) +} + +type Tikv_TabletSnapshotServer interface { + Send(*raft_serverpb.TabletSnapshotResponse) error + Recv() (*raft_serverpb.TabletSnapshotRequest, error) + grpc.ServerStream +} + +type tikvTabletSnapshotServer struct { + grpc.ServerStream +} + +func (x *tikvTabletSnapshotServer) Send(m *raft_serverpb.TabletSnapshotResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *tikvTabletSnapshotServer) Recv() (*raft_serverpb.TabletSnapshotRequest, error) { + m := new(raft_serverpb.TabletSnapshotRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + func _Tikv_SplitRegion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(kvrpcpb.SplitRegionRequest) if err := dec(in); err != nil { @@ -3929,6 +3992,12 @@ var _Tikv_serviceDesc = grpc.ServiceDesc{ Handler: _Tikv_Snapshot_Handler, ClientStreams: true, }, + { + StreamName: "TabletSnapshot", + Handler: _Tikv_TabletSnapshot_Handler, + ServerStreams: true, + ClientStreams: true, + }, { StreamName: "BatchCommands", Handler: _Tikv_BatchCommands_Handler, diff --git a/pkg/tracepb/tracepb.pb.go b/pkg/tracepb/tracepb.pb.go index 55cf091..e5b4919 100644 --- a/pkg/tracepb/tracepb.pb.go +++ b/pkg/tracepb/tracepb.pb.go @@ -68,7 +68,6 @@ var xxx_messageInfo_TraceRecordRequest proto.InternalMessageInfo type TraceRecord struct { // Types that are valid to be assigned to RecordOneof: - // // *TraceRecord_Report // *TraceRecord_NotifyCollect RecordOneof isTraceRecord_RecordOneof `protobuf_oneof:"record_oneof"` diff --git a/proto/raft_serverpb.proto b/proto/raft_serverpb.proto index 7499ab4..e63895f 100644 --- a/proto/raft_serverpb.proto +++ b/proto/raft_serverpb.proto @@ -60,6 +60,60 @@ message SnapshotChunk { message Done {} +message TabletSnapshotFileMeta { + uint64 file_size = 1; + string file_name = 2; + // Some block data. + bytes head_chunk = 3; + // trailing data including checksum. + bytes trailing_chunk = 4; +} + +// Snapshot preview for server to decide whether skip some files. +// Server should send back an `AcceptedSnapshotFile` to let client +// keep sending specified files. Only SST files can be skipped, all +// other files should always be sent. +message TabletSnapshotPreview { + repeated TabletSnapshotFileMeta metas = 1; + // There may be too many metas, use a flag to indicate all metas + // are sent. + bool end = 2; +} + +message TabletSnapshotFileChunk { + uint64 file_size = 1; + string file_name = 2; + bytes data = 3; +} + +message TabletSnapshotHead { + RaftMessage message = 1; + bool use_cache = 2; +} + +message TabletSnapshotEnd { + // Checksum of all data sent in `TabletSnapshotFileChunk.data` and + // `TabletSnapshotFileChunk.file_name`. + uint64 checksum = 1; +} + +message TabletSnapshotRequest { + oneof payload { + TabletSnapshotHead head = 1; + TabletSnapshotPreview preview = 2; + TabletSnapshotFileChunk chunk = 3; + TabletSnapshotEnd end = 4; + } +} + +message AcceptedSnapshotFiles { + repeated string file_name = 1; +} + +message TabletSnapshotResponse { + AcceptedSnapshotFiles files = 1; +} + message KeyValue { bytes key = 1; bytes value = 2; diff --git a/proto/tikvpb.proto b/proto/tikvpb.proto index f0305df..0bd2e14 100644 --- a/proto/tikvpb.proto +++ b/proto/tikvpb.proto @@ -76,6 +76,7 @@ service Tikv { rpc Raft(stream raft_serverpb.RaftMessage) returns (raft_serverpb.Done) {} rpc BatchRaft(stream BatchRaftMessage) returns (raft_serverpb.Done) {} rpc Snapshot(stream raft_serverpb.SnapshotChunk) returns (raft_serverpb.Done) {} + rpc TabletSnapshot(stream raft_serverpb.TabletSnapshotRequest) returns (stream raft_serverpb.TabletSnapshotResponse) {} // Sent from PD or TiDB to a TiKV node. rpc SplitRegion (kvrpcpb.SplitRegionRequest) returns (kvrpcpb.SplitRegionResponse) {} diff --git a/scripts/proto.lock b/scripts/proto.lock index e74e9eb..de51d81 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -15506,6 +15506,138 @@ { "name": "Done" }, + { + "name": "TabletSnapshotFileMeta", + "fields": [ + { + "id": 1, + "name": "file_size", + "type": "uint64" + }, + { + "id": 2, + "name": "file_name", + "type": "string" + }, + { + "id": 3, + "name": "head_chunk", + "type": "bytes" + }, + { + "id": 4, + "name": "trailing_chunk", + "type": "bytes" + } + ] + }, + { + "name": "TabletSnapshotPreview", + "fields": [ + { + "id": 1, + "name": "metas", + "type": "TabletSnapshotFileMeta", + "is_repeated": true + }, + { + "id": 2, + "name": "end", + "type": "bool" + } + ] + }, + { + "name": "TabletSnapshotFileChunk", + "fields": [ + { + "id": 1, + "name": "file_size", + "type": "uint64" + }, + { + "id": 2, + "name": "file_name", + "type": "string" + }, + { + "id": 3, + "name": "data", + "type": "bytes" + } + ] + }, + { + "name": "TabletSnapshotHead", + "fields": [ + { + "id": 1, + "name": "message", + "type": "RaftMessage" + }, + { + "id": 2, + "name": "use_cache", + "type": "bool" + } + ] + }, + { + "name": "TabletSnapshotEnd", + "fields": [ + { + "id": 1, + "name": "checksum", + "type": "uint64" + } + ] + }, + { + "name": "TabletSnapshotRequest", + "fields": [ + { + "id": 1, + "name": "head", + "type": "TabletSnapshotHead" + }, + { + "id": 2, + "name": "preview", + "type": "TabletSnapshotPreview" + }, + { + "id": 3, + "name": "chunk", + "type": "TabletSnapshotFileChunk" + }, + { + "id": 4, + "name": "end", + "type": "TabletSnapshotEnd" + } + ] + }, + { + "name": "AcceptedSnapshotFiles", + "fields": [ + { + "id": 1, + "name": "file_name", + "type": "string", + "is_repeated": true + } + ] + }, + { + "name": "TabletSnapshotResponse", + "fields": [ + { + "id": 1, + "name": "files", + "type": "AcceptedSnapshotFiles" + } + ] + }, { "name": "KeyValue", "fields": [ @@ -17523,6 +17655,13 @@ "out_type": "raft_serverpb.Done", "in_streamed": true }, + { + "name": "TabletSnapshot", + "in_type": "raft_serverpb.TabletSnapshotRequest", + "out_type": "raft_serverpb.TabletSnapshotResponse", + "in_streamed": true, + "out_streamed": true + }, { "name": "SplitRegion", "in_type": "kvrpcpb.SplitRegionRequest", -- Gitee From 145f0534a0eb7e953c78563c4b50e3877c120409 Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Thu, 9 Mar 2023 21:42:54 +0800 Subject: [PATCH 14/44] attach keyspace_id for manual compact request (#1074) --- pkg/kvrpcpb/kvrpcpb.pb.go | 791 ++++++++++++++++++++------------------ proto/kvrpcpb.proto | 3 + scripts/proto.lock | 5 + 3 files changed, 422 insertions(+), 377 deletions(-) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index 8e0cac8..887ed7e 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -9758,7 +9758,9 @@ type CompactRequest struct { // // TODO: this is information that TiKV doesn't need to know. // See https://github.com/pingcap/kvproto/issues/912 - LogicalTableId int64 `protobuf:"varint,3,opt,name=logical_table_id,json=logicalTableId,proto3" json:"logical_table_id,omitempty"` + LogicalTableId int64 `protobuf:"varint,3,opt,name=logical_table_id,json=logicalTableId,proto3" json:"logical_table_id,omitempty"` + // Keyspace of the table located in. + KeyspaceId uint32 `protobuf:"varint,8,opt,name=keyspace_id,json=keyspaceId,proto3" json:"keyspace_id,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -9818,6 +9820,13 @@ func (m *CompactRequest) GetLogicalTableId() int64 { return 0 } +func (m *CompactRequest) GetKeyspaceId() uint32 { + if m != nil { + return m.KeyspaceId + } + return 0 +} + type CompactResponse struct { Error *CompactError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` // The compaction is done incrementally. If there are more data to compact, this field @@ -10037,16 +10046,16 @@ func init() { func init() { proto.RegisterFile("kvrpcpb.proto", fileDescriptor_1afe832be69693c7) } var fileDescriptor_1afe832be69693c7 = []byte{ - // 6444 bytes of a gzipped FileDescriptorProto + // 6451 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x3c, 0x5b, 0x6c, 0x24, 0xd9, 0x55, 0x53, 0xfd, 0x70, 0x77, 0x9f, 0x6e, 0xb7, 0xcb, 0xd7, 0xaf, 0x1e, 0xcf, 0xcc, 0x8e, 0xa7, 0x36, 0xb3, 0x3b, 0x71, 0xb2, 0xde, 0xac, 0x77, 0x37, 0x0f, 0x12, 0x92, 0x9d, 0xb1, 0xe7, 0xe1, 0x1d, 0xcf, 0xd8, 0xaa, 0xee, 0x9d, 0x65, 0x05, 0x49, 0xe5, 0xba, 0xfa, 0xba, 0xbb, 0xe4, 0xea, - 0xaa, 0xda, 0xaa, 0xdb, 0xb6, 0x3b, 0x08, 0x89, 0x55, 0x00, 0x29, 0x12, 0x0a, 0x10, 0x45, 0x0a, - 0x12, 0x11, 0x12, 0x1f, 0x91, 0x08, 0x7f, 0x88, 0x1f, 0x1e, 0x1f, 0x08, 0x29, 0x1f, 0x01, 0x11, + 0xaa, 0xda, 0xaa, 0xdb, 0xb6, 0x3b, 0x08, 0x89, 0x15, 0x0f, 0x29, 0x12, 0x0a, 0x10, 0x45, 0x0a, + 0x12, 0x11, 0x12, 0x12, 0x91, 0x08, 0x7f, 0x88, 0x1f, 0x1e, 0x1f, 0x08, 0x29, 0x1f, 0x01, 0x11, 0x25, 0x12, 0x42, 0x41, 0xf0, 0x01, 0x2c, 0x12, 0xdf, 0xfc, 0x20, 0xe0, 0x03, 0x81, 0xee, 0xab, - 0x1e, 0xdd, 0x3d, 0x1e, 0x4f, 0x8f, 0x3d, 0x09, 0x7c, 0xd9, 0x75, 0xce, 0xb9, 0xf7, 0x9e, 0x73, - 0xee, 0xb9, 0xe7, 0x9e, 0x7b, 0xee, 0xb9, 0x0d, 0xd3, 0x07, 0x87, 0x61, 0x60, 0x07, 0x7b, 0x6b, + 0x1e, 0xdd, 0x3d, 0x1e, 0x4f, 0x8f, 0x3d, 0x09, 0x7c, 0xd9, 0x75, 0xce, 0xb9, 0xf7, 0x9e, 0x7b, + 0xee, 0x39, 0xe7, 0x9e, 0x7b, 0xee, 0xb9, 0x0d, 0xd3, 0x07, 0x87, 0x61, 0x60, 0x07, 0x7b, 0x6b, 0x41, 0xe8, 0x53, 0x1f, 0x95, 0xe4, 0xe7, 0x72, 0xad, 0x47, 0x28, 0x56, 0xe0, 0xe5, 0x69, 0x12, 0x86, 0x7e, 0x18, 0x7f, 0xce, 0x77, 0xfc, 0x8e, 0xcf, 0xff, 0x7d, 0x95, 0xfd, 0x27, 0xa1, 0x33, 0x61, 0x3f, 0xa2, 0xfc, 0x5f, 0x09, 0xa8, 0xb7, 0x09, 0x6e, 0xbb, 0xbe, 0x7d, 0xa0, 0x7a, 0xa1, @@ -10055,392 +10064,393 @@ var fileDescriptor_1afe832be69693c7 = []byte{ 0xac, 0x6d, 0x08, 0xb8, 0xa9, 0x08, 0x90, 0x0e, 0xf9, 0x03, 0x32, 0x68, 0xe4, 0x56, 0xb4, 0x1b, 0x35, 0x93, 0xfd, 0x8b, 0x1a, 0x50, 0x3a, 0x24, 0x61, 0xe4, 0xf8, 0x5e, 0x23, 0xbf, 0xa2, 0xdd, 0x28, 0x98, 0xea, 0xd3, 0xf8, 0x50, 0x83, 0x2a, 0x1f, 0x26, 0x0a, 0x7c, 0x2f, 0x22, 0xe8, 0x35, - 0xa8, 0x85, 0xa4, 0xe3, 0xf8, 0x9e, 0xc5, 0x65, 0x92, 0x83, 0xd5, 0xd7, 0x94, 0x84, 0xb7, 0xd9, - 0x5f, 0xb3, 0x2a, 0x68, 0xf8, 0x07, 0x7a, 0x19, 0x8a, 0x82, 0x36, 0xc7, 0x69, 0x67, 0x63, 0xc6, - 0xee, 0x93, 0x81, 0x20, 0x17, 0x78, 0x34, 0x0f, 0xc5, 0x43, 0xec, 0xf6, 0x09, 0xe7, 0xa1, 0x66, - 0x8a, 0x0f, 0x74, 0x09, 0x2a, 0x9e, 0x4f, 0xad, 0x7d, 0xbf, 0xef, 0xb5, 0x1b, 0x85, 0x15, 0xed, - 0x46, 0xd9, 0x2c, 0x7b, 0x3e, 0xbd, 0xc3, 0xbe, 0xd1, 0xe7, 0x61, 0x86, 0x1c, 0x13, 0xdb, 0x6a, - 0x13, 0x8a, 0x1d, 0x37, 0xb2, 0x0e, 0xd7, 0x1b, 0x53, 0x7c, 0x94, 0xc5, 0x78, 0x94, 0xdb, 0xc7, - 0xc4, 0xde, 0x14, 0xe8, 0x47, 0xeb, 0xe6, 0x34, 0x49, 0x7f, 0xbe, 0x5d, 0x28, 0x17, 0xf5, 0x29, - 0xe3, 0xdf, 0x35, 0xa8, 0x36, 0x6d, 0xec, 0x4d, 0xa2, 0xcc, 0x4b, 0x50, 0x89, 0x28, 0x0e, 0xa9, - 0x95, 0xa8, 0xb4, 0xcc, 0x01, 0xf7, 0xc9, 0x80, 0x49, 0xe4, 0x3a, 0x3d, 0x87, 0x72, 0x89, 0xa6, - 0x4d, 0xf1, 0x91, 0xd6, 0x76, 0x21, 0xa3, 0x6d, 0x74, 0x11, 0xca, 0x07, 0x64, 0x60, 0xf9, 0x9e, - 0x3b, 0x68, 0x14, 0xb9, 0xa8, 0xa5, 0x03, 0x32, 0xd8, 0xf1, 0x5c, 0x3e, 0x45, 0x21, 0x61, 0x74, - 0x84, 0x4b, 0x58, 0x36, 0xd5, 0x27, 0x5a, 0x82, 0x12, 0xf1, 0xda, 0x7c, 0xfc, 0x12, 0x1f, 0x7f, - 0x8a, 0x78, 0x6d, 0x36, 0xfa, 0x55, 0xa8, 0x46, 0xb8, 0x17, 0xb8, 0xc4, 0x8a, 0x28, 0x09, 0x1a, - 0x65, 0xce, 0x03, 0x08, 0x50, 0x93, 0x92, 0xc0, 0xf8, 0x2d, 0x0d, 0x6a, 0x42, 0xee, 0xc9, 0x67, - 0xf7, 0x3a, 0x14, 0x03, 0xec, 0x84, 0x51, 0x23, 0xb7, 0x92, 0xbf, 0x51, 0x5d, 0x9f, 0x49, 0x66, - 0xf7, 0x70, 0x17, 0x3b, 0xa1, 0x29, 0xb0, 0x89, 0x11, 0xe4, 0x4f, 0x36, 0x02, 0xe3, 0xbf, 0x8a, - 0x30, 0xb3, 0x1b, 0x92, 0xa3, 0xd0, 0xa1, 0x64, 0x92, 0xf9, 0x78, 0x15, 0x2a, 0xbd, 0x3e, 0xc5, - 0xd4, 0xf1, 0x3d, 0xc5, 0x53, 0x32, 0xd8, 0x03, 0x89, 0x31, 0x13, 0x1a, 0x74, 0x0d, 0x6a, 0x41, - 0xe8, 0xf4, 0x70, 0x38, 0xb0, 0xd8, 0x62, 0x93, 0xc6, 0x57, 0x95, 0xb0, 0x6d, 0xdf, 0x3e, 0x40, - 0x2f, 0xc2, 0xb4, 0x98, 0xe3, 0xec, 0xb4, 0xd5, 0x38, 0xf0, 0x51, 0x32, 0x77, 0xac, 0xbd, 0x45, - 0xa9, 0xcb, 0xe7, 0xae, 0x60, 0x96, 0xd8, 0x77, 0x8b, 0xba, 0x68, 0x1d, 0x16, 0xa2, 0x03, 0x27, - 0xb0, 0x6c, 0xdf, 0x8b, 0x68, 0x88, 0x1d, 0x8f, 0x5a, 0x76, 0x97, 0xd8, 0x07, 0x72, 0x26, 0xe7, - 0x18, 0x72, 0x23, 0xc6, 0x6d, 0x30, 0x14, 0xfa, 0x79, 0x98, 0x0b, 0x48, 0x14, 0x39, 0x3d, 0x27, - 0xa2, 0x8e, 0x6d, 0x61, 0x5b, 0x48, 0x54, 0x5a, 0xc9, 0xdf, 0xa8, 0xaf, 0xaf, 0xc6, 0x12, 0x0d, - 0xa9, 0x6a, 0x6d, 0x37, 0x69, 0x73, 0x93, 0x37, 0x31, 0x51, 0x30, 0x0c, 0x8a, 0x18, 0xaf, 0xf4, - 0xd8, 0xb3, 0x22, 0xe7, 0x2b, 0x84, 0x9b, 0x45, 0xc1, 0x2c, 0xd1, 0x63, 0xaf, 0xe9, 0x7c, 0x85, - 0x20, 0x03, 0xa6, 0xf7, 0xfd, 0xd0, 0xea, 0x07, 0x6d, 0x4c, 0x89, 0x45, 0xa3, 0x46, 0x85, 0xe3, - 0xab, 0xfb, 0x7e, 0xf8, 0x0e, 0x87, 0xb5, 0x22, 0x46, 0xd3, 0x73, 0x3c, 0xcb, 0xf6, 0x7b, 0x3d, - 0x87, 0x32, 0x1a, 0x10, 0x34, 0x3d, 0xc7, 0xdb, 0xe0, 0xb0, 0x56, 0x84, 0x6e, 0x80, 0xde, 0x8f, - 0x88, 0x85, 0xa3, 0x81, 0x67, 0x4b, 0xca, 0x46, 0x95, 0x8b, 0x5b, 0xef, 0x47, 0xe4, 0x26, 0x03, - 0x0b, 0x5a, 0xb4, 0x02, 0xd5, 0x88, 0xd8, 0xbe, 0xd7, 0xc6, 0xa1, 0x43, 0xa2, 0x46, 0x6d, 0x25, - 0xcf, 0xf4, 0x9f, 0x02, 0xa1, 0xcb, 0x00, 0x34, 0x64, 0xcb, 0x82, 0x58, 0x81, 0xdd, 0x98, 0x16, - 0x3e, 0x80, 0x86, 0x83, 0x1d, 0x8f, 0xec, 0xda, 0x9c, 0x1b, 0x7c, 0x9c, 0xe2, 0xa6, 0x2e, 0xb9, - 0xc1, 0xc7, 0x31, 0x37, 0x6f, 0xc1, 0x0c, 0x8e, 0x22, 0x12, 0x32, 0xf1, 0x2d, 0x97, 0x1c, 0x12, - 0xb7, 0x31, 0xb3, 0xa2, 0xdd, 0xa8, 0xaf, 0x2f, 0xc5, 0x9a, 0xbc, 0xa9, 0xf0, 0xdb, 0x0c, 0x6d, - 0xd6, 0x71, 0xe6, 0xdb, 0xd8, 0x83, 0xd9, 0x11, 0xdd, 0xa2, 0x65, 0x58, 0x6c, 0xde, 0xdf, 0xda, - 0xb5, 0x76, 0x6f, 0x37, 0x9b, 0x5b, 0x0f, 0xb6, 0x9a, 0xad, 0xad, 0x0d, 0x6b, 0xe3, 0xde, 0xed, - 0x8d, 0xfb, 0xfa, 0x05, 0xd4, 0x80, 0xf9, 0xcd, 0x9d, 0x31, 0x18, 0x0d, 0x2d, 0xc1, 0xdc, 0xe6, - 0x8e, 0xb5, 0xb1, 0xf3, 0xb0, 0xd9, 0x32, 0x6f, 0x6e, 0x3d, 0x6c, 0x49, 0x44, 0xce, 0xf8, 0x6f, - 0x0d, 0xf4, 0x64, 0x42, 0x27, 0x5f, 0x93, 0x1f, 0x85, 0x29, 0x8e, 0x1d, 0x5d, 0x00, 0xf1, 0x6a, - 0x93, 0x04, 0xa3, 0x53, 0x99, 0x1f, 0x9d, 0xca, 0x97, 0x41, 0x17, 0xaa, 0x4f, 0x91, 0x89, 0x15, - 0x30, 0xed, 0xb3, 0x19, 0x88, 0x09, 0xc7, 0x78, 0xe3, 0xe2, 0x53, 0x78, 0x63, 0xe3, 0x7b, 0x05, - 0x58, 0x4c, 0x29, 0x99, 0xad, 0xbd, 0xff, 0x2f, 0x2e, 0x60, 0x64, 0x59, 0x4d, 0x8d, 0x5d, 0x56, - 0x4e, 0x64, 0xed, 0x3b, 0x61, 0x44, 0x05, 0x1f, 0x25, 0x6e, 0xe9, 0x55, 0x27, 0xba, 0xc3, 0x60, - 0x9c, 0x8f, 0x6b, 0x50, 0x3b, 0xc2, 0x6c, 0x0a, 0x9c, 0x1e, 0xf1, 0xfb, 0x94, 0xaf, 0xde, 0xbc, - 0x59, 0x65, 0xb0, 0x96, 0x00, 0xa1, 0x06, 0x14, 0xf7, 0xfd, 0xd0, 0x26, 0x7c, 0xe5, 0x96, 0x6f, - 0xe5, 0x1a, 0x9a, 0x29, 0x00, 0x4c, 0x88, 0x90, 0xd0, 0x7e, 0xe8, 0x59, 0x7c, 0x6b, 0x15, 0xeb, - 0xb6, 0x6c, 0xd6, 0x04, 0xf0, 0x11, 0x87, 0x8d, 0x5a, 0x44, 0x75, 0x9c, 0x45, 0xcc, 0x70, 0x07, - 0x66, 0x91, 0x63, 0x27, 0xa2, 0xc4, 0xb3, 0x49, 0xa3, 0x26, 0xd6, 0x36, 0x07, 0xdf, 0x56, 0x50, - 0xf4, 0x0a, 0xcc, 0x71, 0x8d, 0xb0, 0x1d, 0xcd, 0x72, 0xf6, 0x05, 0x7d, 0x24, 0x97, 0xb0, 0xce, - 0x50, 0x6c, 0x73, 0xdb, 0xda, 0xe7, 0x2d, 0x22, 0xb4, 0xc9, 0xa4, 0x3b, 0x20, 0x56, 0x3f, 0xb0, - 0x7a, 0x7e, 0x9b, 0xf0, 0x95, 0x5c, 0x5f, 0x37, 0x12, 0x6f, 0x97, 0x35, 0x8e, 0x77, 0xf1, 0x01, - 0x79, 0x27, 0x78, 0xe0, 0xb7, 0x89, 0x09, 0x47, 0xf1, 0xff, 0xc6, 0xbf, 0x69, 0xd0, 0x18, 0xa2, - 0xbc, 0x4f, 0x06, 0x26, 0x89, 0xfa, 0x2e, 0x45, 0x9f, 0x81, 0x02, 0x1d, 0x04, 0x84, 0x5b, 0x51, - 0x7d, 0xfd, 0xfa, 0xe3, 0xba, 0x8e, 0x1b, 0xb4, 0x06, 0x01, 0x31, 0x79, 0x93, 0x24, 0x3e, 0xc9, - 0xa5, 0xe3, 0x93, 0xcb, 0x50, 0x49, 0xb4, 0x90, 0xe7, 0x82, 0x25, 0x00, 0xf4, 0x26, 0x2c, 0x31, - 0x29, 0x49, 0xdb, 0x3a, 0x72, 0x68, 0x97, 0xed, 0x00, 0xfb, 0xae, 0x63, 0xa7, 0x96, 0xd0, 0xbc, - 0x40, 0xbf, 0xeb, 0xd0, 0xee, 0x86, 0x44, 0xb6, 0x22, 0xb4, 0x06, 0x7c, 0x53, 0xb0, 0x42, 0x12, - 0xf9, 0xee, 0xa1, 0xe3, 0x75, 0x84, 0x41, 0x08, 0x07, 0x3a, 0xcb, 0x50, 0xa6, 0xc2, 0x30, 0x6e, - 0x8d, 0x7f, 0xcd, 0xc1, 0xd2, 0xc8, 0xca, 0x79, 0x2e, 0x0e, 0xe4, 0x2a, 0x54, 0x86, 0x9c, 0x07, - 0xb7, 0xb8, 0xb2, 0xad, 0x6c, 0xa5, 0xa1, 0xb4, 0xc6, 0xe4, 0xad, 0x09, 0x73, 0x14, 0x9a, 0x5b, - 0x84, 0x29, 0x69, 0x87, 0x45, 0xee, 0xf3, 0xe5, 0x17, 0xba, 0x02, 0x10, 0x47, 0x7c, 0x6c, 0xa1, - 0xe4, 0x99, 0x4a, 0x55, 0xc8, 0x37, 0xd6, 0xcb, 0x94, 0x9e, 0xc2, 0xcb, 0xa0, 0xcf, 0xb2, 0x48, - 0x8a, 0x4d, 0x6d, 0xd4, 0x28, 0x73, 0xe9, 0xae, 0x3d, 0xd1, 0x08, 0x4c, 0xd5, 0xc2, 0xf8, 0x8e, - 0x06, 0xcb, 0x29, 0x2a, 0xd3, 0x77, 0xdd, 0x3d, 0x3c, 0x99, 0x9b, 0x1a, 0x71, 0x29, 0xb9, 0x31, - 0x2e, 0x65, 0xc4, 0x6f, 0xe4, 0x47, 0xfd, 0x06, 0x82, 0xc2, 0x01, 0x19, 0x30, 0x83, 0x62, 0x5a, - 0xe4, 0xff, 0x1b, 0x7f, 0xa6, 0xc1, 0xa5, 0xb1, 0x7c, 0x3e, 0x17, 0xa3, 0x18, 0x33, 0x45, 0xf9, - 0xa7, 0xd9, 0x08, 0xfe, 0x50, 0x83, 0xb9, 0xd6, 0xb1, 0x77, 0x8f, 0xe0, 0x90, 0xde, 0x22, 0x78, - 0xa2, 0x53, 0xce, 0xb0, 0x53, 0xcf, 0x9d, 0xc2, 0xa9, 0xe7, 0xc7, 0xcc, 0xc0, 0x4b, 0x30, 0x83, - 0xdb, 0x87, 0x4e, 0x44, 0xac, 0xd8, 0xb7, 0xcb, 0xcd, 0x4f, 0x80, 0xb7, 0x85, 0x87, 0x37, 0x7e, - 0xa0, 0xc1, 0x7c, 0x96, 0xe7, 0xe7, 0x70, 0x64, 0x4a, 0xef, 0x38, 0xf9, 0xec, 0x8e, 0x33, 0x66, - 0x0e, 0x0a, 0x4f, 0x33, 0x07, 0xff, 0x9c, 0x83, 0x05, 0x1e, 0x8a, 0xb6, 0x8e, 0xbd, 0x26, 0xc5, - 0xb4, 0x1f, 0x4d, 0x32, 0x0b, 0x57, 0x41, 0x69, 0x3c, 0x75, 0x40, 0x02, 0x09, 0x62, 0x87, 0x94, - 0x25, 0x28, 0x09, 0x09, 0x94, 0x69, 0x4f, 0x71, 0x01, 0x22, 0xa6, 0x77, 0x1b, 0xbb, 0x2e, 0x09, - 0x2d, 0x31, 0x47, 0x49, 0xd0, 0x21, 0xc0, 0x4d, 0x06, 0x6d, 0x71, 0x6f, 0x61, 0xf7, 0xc3, 0x90, - 0x78, 0x9c, 0x44, 0x6c, 0xbb, 0x15, 0x09, 0x69, 0x45, 0xe8, 0x35, 0x58, 0x08, 0xa5, 0xf1, 0xb3, - 0x0d, 0x88, 0x39, 0x16, 0xee, 0x9d, 0x65, 0xec, 0x8d, 0x14, 0x72, 0x6b, 0xff, 0xa1, 0x4f, 0xf9, - 0x36, 0x84, 0x56, 0x61, 0x96, 0xef, 0x97, 0x56, 0x3a, 0x76, 0x15, 0x7b, 0xf1, 0x0c, 0x47, 0x34, - 0x93, 0xe0, 0xf5, 0x73, 0xb0, 0x9c, 0xf8, 0xe8, 0x74, 0xc0, 0xce, 0x6d, 0xae, 0xcc, 0x1b, 0x35, - 0x62, 0x8a, 0x21, 0xff, 0x62, 0xfc, 0x30, 0x07, 0x8b, 0xc3, 0x3a, 0xfe, 0xc9, 0x5a, 0xcd, 0x75, - 0xa8, 0x4b, 0x77, 0x9e, 0x0d, 0x74, 0xa6, 0x05, 0x54, 0x2d, 0x8a, 0x97, 0x61, 0x4a, 0x9c, 0x48, - 0xb8, 0xc2, 0xeb, 0xa9, 0x63, 0x9f, 0x3c, 0x75, 0x48, 0x34, 0x5a, 0x83, 0x0a, 0x1f, 0xca, 0xf1, - 0xf6, 0x7d, 0x79, 0x34, 0x4f, 0xf8, 0x62, 0x3a, 0xd8, 0xf2, 0xf6, 0x7d, 0x93, 0xb3, 0xc3, 0xfe, - 0x7b, 0x56, 0xe7, 0x6e, 0x7c, 0xa0, 0xc1, 0x32, 0xd7, 0x68, 0x53, 0x9e, 0x1f, 0xf8, 0x4a, 0x9f, - 0xc8, 0x74, 0x95, 0x5b, 0xcd, 0x25, 0x6e, 0xf5, 0x54, 0x1e, 0xc3, 0xf8, 0x1f, 0x0d, 0x2e, 0x8d, - 0xe5, 0xe1, 0x39, 0x4c, 0xed, 0xcb, 0x50, 0x64, 0xba, 0x64, 0x8b, 0x29, 0x3f, 0x5e, 0xd7, 0x02, - 0x8f, 0x2e, 0xa5, 0xf7, 0x6d, 0x31, 0xc7, 0xc9, 0x9e, 0xfd, 0xac, 0x81, 0xfc, 0x77, 0x35, 0x98, - 0x16, 0x0b, 0xe4, 0xdc, 0x36, 0x46, 0x35, 0x3b, 0xf9, 0xd4, 0xec, 0x9c, 0xce, 0x78, 0x45, 0xd2, - 0xc7, 0x9c, 0xda, 0x73, 0x3c, 0xd7, 0xef, 0x18, 0x7f, 0xa3, 0x41, 0x5d, 0xf1, 0xfa, 0x1c, 0x26, - 0x68, 0x94, 0xc7, 0xfc, 0xb8, 0x05, 0xf6, 0xac, 0xde, 0xbb, 0x03, 0xd3, 0x5b, 0xbd, 0xc0, 0x0f, - 0xe3, 0x09, 0xc8, 0x1c, 0x8a, 0xb4, 0x53, 0x1c, 0x8a, 0x46, 0x19, 0xcd, 0x8d, 0x61, 0xd4, 0x78, - 0x0f, 0xea, 0x6a, 0xa0, 0xc9, 0xb5, 0x37, 0x9f, 0xd6, 0x5e, 0x45, 0xa5, 0x82, 0xbe, 0xc1, 0x66, - 0xc6, 0x25, 0xd8, 0xeb, 0x07, 0x67, 0x93, 0xe6, 0x3c, 0xd5, 0x7e, 0x9f, 0xdd, 0x4f, 0x0a, 0x43, - 0xfb, 0x89, 0xf1, 0x4d, 0x0d, 0x66, 0x62, 0xa6, 0x7e, 0x6a, 0xec, 0xc5, 0x38, 0x80, 0x99, 0x5b, - 0x98, 0xda, 0xdd, 0x09, 0x53, 0xc2, 0xe3, 0x7c, 0xdd, 0xe3, 0x93, 0xc2, 0xff, 0xa0, 0x81, 0x9e, - 0x8c, 0x76, 0xee, 0xb9, 0xc3, 0x67, 0x5c, 0x0b, 0x89, 0xae, 0x8b, 0x27, 0xeb, 0xfa, 0xed, 0x42, - 0x39, 0xaf, 0x17, 0x8c, 0x5f, 0x84, 0x79, 0x2e, 0xdc, 0xb9, 0xc7, 0xf6, 0x63, 0x5c, 0x98, 0xf1, - 0x47, 0x1a, 0x2c, 0x0c, 0x8d, 0xfe, 0x1c, 0x8c, 0xec, 0x59, 0xe3, 0xf5, 0x3f, 0xd0, 0x60, 0xa6, - 0x69, 0x63, 0x6f, 0xd2, 0x8c, 0xcd, 0x55, 0xa8, 0xf6, 0xf0, 0xf1, 0x90, 0xb2, 0xa0, 0x87, 0x8f, - 0x95, 0xaa, 0x32, 0x59, 0xf6, 0xfc, 0xe3, 0xb2, 0xec, 0x85, 0x74, 0x96, 0x3d, 0x95, 0x16, 0x2f, - 0xa6, 0xd3, 0xe2, 0xc6, 0x8f, 0x35, 0xd0, 0x13, 0x66, 0x7f, 0x9a, 0xf6, 0xe4, 0x67, 0x75, 0xfa, - 0x3f, 0xd4, 0x00, 0x89, 0xbc, 0x00, 0x99, 0x74, 0x26, 0x4e, 0x65, 0xb8, 0xa7, 0xdc, 0xc3, 0x5e, - 0x81, 0x0a, 0x3d, 0xf6, 0x78, 0xe8, 0x27, 0x0e, 0xa7, 0xe9, 0x91, 0x5b, 0xc7, 0x9e, 0x08, 0xfd, - 0xa8, 0xf8, 0x27, 0x39, 0xc6, 0x16, 0x53, 0xcb, 0x81, 0x1d, 0x04, 0x33, 0x12, 0xfd, 0x1f, 0x58, - 0x0c, 0x8f, 0xa0, 0x72, 0x77, 0x63, 0x12, 0xdd, 0x5f, 0x01, 0x88, 0xf0, 0x3e, 0xb1, 0x02, 0xdf, - 0xf1, 0xa8, 0x54, 0x7c, 0x85, 0x41, 0x76, 0x19, 0xc0, 0xe8, 0x02, 0xb0, 0x7e, 0xcf, 0x5f, 0x03, - 0xc6, 0xb7, 0x34, 0x40, 0x9b, 0xc4, 0x25, 0x94, 0x98, 0xd8, 0xeb, 0x90, 0x33, 0xbf, 0x16, 0x4b, - 0x2d, 0xcd, 0xfc, 0xf0, 0x8d, 0x95, 0xe7, 0x53, 0x67, 0x5f, 0x5e, 0x81, 0x89, 0xdb, 0x3e, 0x10, - 0xa0, 0x1d, 0xcf, 0x1d, 0x18, 0x5f, 0x82, 0xb9, 0x0c, 0x63, 0x67, 0x1d, 0x72, 0xfc, 0x89, 0x06, - 0x2b, 0xbb, 0x21, 0x09, 0x70, 0x48, 0xee, 0xb8, 0x38, 0xea, 0x32, 0x0f, 0xdc, 0xf2, 0xa5, 0x41, - 0x3f, 0x3f, 0x3d, 0x5c, 0x84, 0xf2, 0xd0, 0xa1, 0xb7, 0x14, 0xc9, 0xe3, 0x6e, 0x6a, 0x57, 0x2e, - 0x66, 0x77, 0x65, 0x17, 0xae, 0x9d, 0xc0, 0xfa, 0x59, 0x6b, 0xea, 0x87, 0x1a, 0x5c, 0x3c, 0x1b, - 0x15, 0xa5, 0x24, 0xca, 0x65, 0xaf, 0x43, 0x4f, 0xf4, 0xfa, 0x29, 0xe5, 0x15, 0x1e, 0xab, 0xbc, - 0x62, 0x56, 0x79, 0x99, 0x43, 0xcf, 0x54, 0xf6, 0xd0, 0x63, 0x10, 0x58, 0x7e, 0x1e, 0x8a, 0xfb, - 0x22, 0x4c, 0x9b, 0xf8, 0xe8, 0xcc, 0xae, 0xee, 0xeb, 0x90, 0xb3, 0xf7, 0xb9, 0x72, 0x2a, 0x66, - 0xce, 0xde, 0x37, 0x7e, 0x5d, 0x83, 0xba, 0xea, 0xff, 0x8c, 0x59, 0x9f, 0xe0, 0x82, 0xde, 0x68, - 0x03, 0x32, 0xf1, 0xd1, 0x59, 0x87, 0xa6, 0xc3, 0x42, 0xfb, 0x30, 0x97, 0x19, 0xe5, 0xbc, 0x43, - 0x52, 0xe3, 0x77, 0x35, 0x3e, 0x8b, 0xbb, 0xfd, 0x33, 0x9a, 0xc5, 0xf1, 0x9a, 0x15, 0x62, 0x16, - 0x94, 0x98, 0xac, 0x5d, 0x72, 0xb5, 0xc4, 0xfe, 0x65, 0x8b, 0x60, 0xdf, 0x0f, 0x2d, 0x1b, 0x47, - 0x32, 0x9f, 0x35, 0xb5, 0xef, 0x87, 0x1b, 0x38, 0x62, 0xc7, 0x32, 0xc5, 0xdf, 0x59, 0x1b, 0xf0, - 0x9f, 0x6a, 0xc9, 0x9c, 0x4e, 0xa8, 0x80, 0x53, 0x06, 0xfe, 0x43, 0xd3, 0x8c, 0xe6, 0x85, 0xfc, - 0x85, 0xf8, 0x96, 0x61, 0x58, 0x07, 0xc5, 0xb4, 0x0e, 0x98, 0xe5, 0x50, 0xea, 0x8a, 0x1b, 0x84, - 0x82, 0xc9, 0xff, 0x67, 0x1b, 0x48, 0x86, 0xf7, 0xb3, 0x56, 0xce, 0x00, 0x74, 0x13, 0x1f, 0xc9, - 0x3d, 0xea, 0x3c, 0x16, 0x78, 0x5a, 0xdc, 0x42, 0x66, 0xca, 0x7f, 0x01, 0x66, 0x53, 0x43, 0x9f, - 0xb5, 0x60, 0xbf, 0xac, 0xc1, 0x82, 0xd2, 0xdc, 0xe4, 0xe2, 0x9d, 0x62, 0x31, 0x3f, 0x5e, 0x40, - 0x0c, 0x8b, 0xc3, 0x1c, 0x9c, 0xb5, 0x94, 0x3f, 0x10, 0xde, 0xf3, 0x39, 0x16, 0x03, 0xa5, 0x4b, - 0x7e, 0x0a, 0xd9, 0x92, 0x1f, 0xa1, 0x98, 0x62, 0xac, 0x98, 0xa7, 0x2f, 0x01, 0x32, 0x3a, 0x30, - 0x13, 0x8b, 0x33, 0xb9, 0xae, 0xae, 0x41, 0xfe, 0xe0, 0xf0, 0xb1, 0x8b, 0x95, 0xe1, 0x8c, 0xaf, - 0x09, 0xf3, 0xf8, 0x89, 0x44, 0x8d, 0x43, 0x6e, 0x52, 0xda, 0xc9, 0xb9, 0xc6, 0x89, 0x3f, 0xd2, - 0x12, 0x3f, 0x32, 0xa9, 0xb1, 0x7c, 0x14, 0xa6, 0x42, 0xc6, 0xdd, 0xd8, 0xfb, 0x34, 0xc1, 0xb7, - 0x24, 0x60, 0x27, 0x03, 0x82, 0xed, 0xae, 0x95, 0xb6, 0x9f, 0x0a, 0x83, 0x6c, 0x9f, 0x99, 0x0d, - 0x19, 0x2e, 0xcc, 0x67, 0x25, 0x3a, 0x57, 0x7b, 0xf9, 0x25, 0xb8, 0xf8, 0x8e, 0xc7, 0xce, 0x36, - 0x9b, 0x24, 0xa2, 0xa1, 0x3f, 0x78, 0xbe, 0x26, 0xc3, 0x62, 0xbd, 0x71, 0xc3, 0x9f, 0xb5, 0x99, - 0x7c, 0x19, 0x2e, 0x99, 0xa4, 0xe3, 0x44, 0x94, 0x84, 0xec, 0xf8, 0xba, 0xb3, 0x17, 0x91, 0xf0, - 0x90, 0x84, 0x93, 0xc8, 0xb9, 0x00, 0x53, 0x3d, 0x7c, 0xcc, 0xe2, 0x56, 0x11, 0x24, 0x17, 0x7b, - 0xf8, 0xb8, 0x15, 0x19, 0x6f, 0xc0, 0xe5, 0xf1, 0x23, 0x48, 0x51, 0x62, 0xbe, 0xb4, 0x6c, 0x0c, - 0xda, 0xe0, 0x17, 0x14, 0xe7, 0xc4, 0x54, 0x1f, 0x2e, 0x8e, 0xe9, 0xfe, 0x24, 0x8e, 0x98, 0x09, - 0x3b, 0x91, 0x65, 0xbb, 0x04, 0x8b, 0x53, 0x40, 0xd9, 0x2c, 0x39, 0x11, 0xcf, 0xb3, 0x9e, 0x3a, - 0x7d, 0x62, 0x7c, 0x09, 0x2e, 0x9a, 0xa4, 0xe7, 0x8b, 0x54, 0xc1, 0x39, 0x88, 0xb5, 0x0e, 0xcb, - 0xe3, 0xfa, 0x3f, 0x51, 0xd3, 0xbf, 0xa1, 0xc1, 0xd2, 0x6e, 0x77, 0x10, 0x39, 0x36, 0x76, 0x9f, - 0x25, 0x43, 0x36, 0x9e, 0xa5, 0x09, 0xf2, 0x62, 0xc6, 0x7b, 0xd0, 0x18, 0x65, 0xe8, 0xc4, 0xb9, - 0x89, 0x27, 0x20, 0xf7, 0x84, 0x09, 0xf8, 0xb6, 0x06, 0xa8, 0x19, 0xb8, 0x0e, 0x35, 0xf9, 0xca, - 0x98, 0x2c, 0x13, 0x58, 0x89, 0x58, 0x0f, 0xc9, 0x72, 0x16, 0xe5, 0x24, 0x1c, 0xc8, 0x84, 0xba, - 0x02, 0x10, 0x13, 0xa8, 0xd4, 0x69, 0x45, 0x61, 0x23, 0xb4, 0x0c, 0x15, 0x27, 0xb2, 0x42, 0x7c, - 0x64, 0x1d, 0x1c, 0x2a, 0x5f, 0xe8, 0x44, 0x26, 0x3e, 0xba, 0x7f, 0x68, 0x7c, 0x4f, 0x83, 0xb9, - 0x0c, 0x7b, 0x93, 0x2f, 0xf7, 0x97, 0xa0, 0xe0, 0x92, 0x7d, 0x2a, 0x33, 0x29, 0xf5, 0x35, 0x59, - 0xee, 0x2d, 0x3a, 0xe6, 0x1c, 0x73, 0x3c, 0xba, 0x01, 0xc5, 0xd0, 0xe9, 0x74, 0xa9, 0xcc, 0x20, - 0x8d, 0x23, 0x14, 0x04, 0xe8, 0x06, 0x73, 0xcc, 0x1d, 0x7e, 0x3b, 0x23, 0x52, 0x65, 0x43, 0xb4, - 0xa6, 0x42, 0x1b, 0xbf, 0xa2, 0x81, 0x6e, 0x12, 0xdc, 0xde, 0xf2, 0xda, 0xe4, 0x78, 0x12, 0x1d, - 0xa7, 0x0f, 0xc8, 0xb9, 0xec, 0x01, 0x39, 0xd9, 0x93, 0xf2, 0x4f, 0xd8, 0x93, 0x8c, 0xdf, 0xd4, - 0x60, 0x36, 0xc5, 0xc6, 0xe4, 0xba, 0xbc, 0x02, 0x10, 0x12, 0xdc, 0xb6, 0x1c, 0xd6, 0x91, 0x4a, - 0x7b, 0x85, 0xaa, 0x67, 0xc6, 0x92, 0x28, 0x91, 0x1a, 0x29, 0x1d, 0x8e, 0xcd, 0x4f, 0x12, 0x18, - 0x4d, 0x98, 0x7b, 0x70, 0x68, 0xdb, 0x77, 0x09, 0xbd, 0x35, 0xe0, 0xb5, 0x3b, 0x67, 0x10, 0x7f, - 0x1b, 0xbf, 0xa6, 0xc1, 0x7c, 0xb6, 0xd7, 0xb3, 0x3e, 0x56, 0x5f, 0x87, 0x02, 0xbf, 0x1e, 0x1f, - 0x96, 0x8f, 0x8d, 0xca, 0xe5, 0xe3, 0x68, 0xe3, 0xcb, 0xb0, 0x14, 0xf3, 0x21, 0x8b, 0x1f, 0xce, - 0x76, 0xf6, 0xd9, 0xfa, 0x6d, 0x8c, 0x0e, 0x71, 0xd6, 0xe2, 0x4a, 0x15, 0xe7, 0x93, 0x23, 0x8e, - 0x52, 0x40, 0xe1, 0x64, 0x05, 0x7c, 0x50, 0x81, 0xd2, 0x46, 0xb2, 0xed, 0x4b, 0x6e, 0x9c, 0x36, - 0x67, 0xa5, 0x60, 0x96, 0x05, 0x60, 0xab, 0x8d, 0x3e, 0x99, 0xb0, 0x1a, 0xf8, 0x76, 0x57, 0xae, - 0xd2, 0xb9, 0xec, 0x82, 0xba, 0xcd, 0x50, 0x31, 0xbf, 0xec, 0x03, 0xad, 0x40, 0x21, 0x20, 0x44, - 0xd5, 0xa8, 0xd7, 0x14, 0xfd, 0x2e, 0x21, 0xa1, 0xc9, 0x31, 0xfc, 0x48, 0x49, 0xc2, 0x9e, 0x3c, - 0x82, 0xf3, 0xff, 0xd1, 0xab, 0x50, 0x0e, 0x42, 0xc7, 0x0f, 0x1d, 0x3a, 0xe0, 0x31, 0x55, 0x7d, - 0x7d, 0x2e, 0xa5, 0xfd, 0x5e, 0x0f, 0x7b, 0xed, 0xdd, 0xd0, 0x31, 0x63, 0x22, 0xf4, 0x16, 0xcc, - 0x38, 0x91, 0xef, 0xe2, 0x54, 0x31, 0x72, 0x69, 0xa8, 0x18, 0x79, 0x4b, 0xe1, 0x65, 0x31, 0xb2, - 0x93, 0xf9, 0x46, 0x1f, 0x81, 0x3a, 0x4f, 0xb9, 0x38, 0xae, 0x6b, 0xd9, 0xd8, 0xee, 0x12, 0x59, - 0x69, 0x52, 0xf3, 0x7c, 0x7a, 0xc7, 0x71, 0xdd, 0x0d, 0x06, 0xe3, 0x33, 0x3d, 0xf0, 0x6c, 0xcb, - 0xf5, 0x3b, 0xa2, 0x16, 0xd4, 0x2c, 0xb1, 0xef, 0x6d, 0xbf, 0x83, 0x6e, 0x80, 0x1e, 0x12, 0xdb, - 0x0f, 0xdb, 0xbc, 0x90, 0xd4, 0x8a, 0x28, 0xa6, 0xb2, 0x18, 0xb4, 0x2e, 0xe0, 0x2d, 0xa7, 0x47, - 0x9a, 0x14, 0xd3, 0x14, 0x65, 0x64, 0x63, 0x4f, 0x50, 0x56, 0xd3, 0x94, 0x6c, 0x13, 0xe1, 0x94, - 0xd7, 0x98, 0xd6, 0x03, 0xd7, 0xb1, 0xb1, 0xc5, 0x56, 0xaf, 0xac, 0x08, 0xad, 0x4a, 0x18, 0x73, - 0x15, 0xe8, 0x3a, 0xd4, 0x45, 0x2d, 0x0c, 0x69, 0x5b, 0x62, 0x4b, 0x99, 0xe6, 0x67, 0xf3, 0x69, - 0x05, 0xe5, 0x85, 0x12, 0xe8, 0x33, 0x70, 0x91, 0x6d, 0x76, 0xe4, 0x98, 0xd8, 0x7d, 0xae, 0xa4, - 0x76, 0x3f, 0x14, 0xda, 0xea, 0xa9, 0xea, 0xee, 0xc5, 0x1e, 0x3e, 0xbe, 0xad, 0xf0, 0x9b, 0x12, - 0xfd, 0x80, 0x17, 0x68, 0xe0, 0x20, 0x70, 0x1d, 0xa2, 0xfc, 0xc9, 0x8c, 0xb8, 0xbf, 0x90, 0x40, - 0xe1, 0x52, 0x96, 0xa0, 0x44, 0x71, 0x74, 0xc0, 0x4c, 0x47, 0x17, 0x35, 0x47, 0xec, 0x73, 0xab, - 0xcd, 0x37, 0x17, 0x8a, 0x5d, 0x22, 0x04, 0x98, 0x15, 0xc5, 0x9c, 0x1c, 0xc2, 0xd9, 0xff, 0x38, - 0x20, 0xc6, 0x68, 0x3f, 0xb4, 0x89, 0xd5, 0x09, 0xfd, 0x7e, 0x60, 0x51, 0xdc, 0x69, 0x20, 0x6e, - 0xc8, 0xba, 0xc2, 0xdc, 0x65, 0x88, 0x16, 0xee, 0xa0, 0x4f, 0xc3, 0x74, 0xdb, 0x89, 0x0e, 0xac, - 0xfd, 0xbe, 0xeb, 0x5a, 0x7e, 0x40, 0x1b, 0x73, 0x7c, 0x92, 0xe7, 0xe3, 0x49, 0xde, 0x74, 0xa2, - 0x83, 0x3b, 0x7d, 0xd7, 0xdd, 0x09, 0xa8, 0x59, 0x6d, 0x27, 0x1f, 0x4c, 0xe7, 0x6c, 0x13, 0x23, - 0x34, 0x1c, 0x58, 0xa1, 0x58, 0xe2, 0x8d, 0x79, 0xa1, 0x73, 0x27, 0x32, 0x19, 0x58, 0x2d, 0xfc, - 0x37, 0xa0, 0x8a, 0x03, 0x27, 0xbe, 0x86, 0x59, 0x18, 0x32, 0xbf, 0x9b, 0xbb, 0x5b, 0x2a, 0x8f, - 0x09, 0x38, 0x70, 0x92, 0xea, 0x9d, 0x19, 0x91, 0xf5, 0xa4, 0xf1, 0x3c, 0x2c, 0xf2, 0x79, 0xa8, - 0xc7, 0x60, 0x31, 0x11, 0x3f, 0x03, 0xe2, 0xd1, 0x91, 0xa5, 0xbc, 0xcb, 0x12, 0x5f, 0x19, 0x0b, - 0x6b, 0xea, 0x29, 0x52, 0x8b, 0xfd, 0x55, 0x2e, 0xa6, 0x46, 0x53, 0x5f, 0x62, 0xae, 0x39, 0x97, - 0x96, 0x50, 0x4c, 0xa3, 0xc1, 0xbd, 0xc0, 0xb4, 0x84, 0x36, 0x39, 0x90, 0xa9, 0x9c, 0x3f, 0x45, - 0x10, 0x24, 0x17, 0x85, 0xf7, 0xa7, 0xc7, 0x9e, 0x44, 0xaf, 0xc1, 0xdc, 0x90, 0xca, 0x3d, 0xdc, - 0x23, 0x8d, 0x65, 0xde, 0xd5, 0x6c, 0x46, 0xe7, 0x0f, 0x71, 0x8f, 0xa0, 0x55, 0x98, 0xdd, 0xeb, - 0x47, 0x03, 0x8b, 0x76, 0x43, 0x12, 0x75, 0x7d, 0xb7, 0xcd, 0x4c, 0xe6, 0x12, 0x8f, 0x7f, 0x66, - 0x18, 0xa2, 0xa5, 0xe0, 0x0f, 0x22, 0x74, 0x15, 0xaa, 0x2c, 0x88, 0x08, 0x98, 0x80, 0x4e, 0xbb, - 0xb1, 0x22, 0xde, 0xc7, 0x28, 0xd0, 0x56, 0xfb, 0xed, 0x42, 0xb9, 0xa0, 0x17, 0x99, 0x05, 0xe3, - 0xb6, 0xf5, 0x7e, 0xdf, 0x0f, 0xfb, 0x3d, 0xe3, 0x1f, 0x73, 0x50, 0x56, 0xfb, 0xce, 0x48, 0x89, - 0xa1, 0x36, 0x5a, 0x62, 0x78, 0x0d, 0x6a, 0xbc, 0xfe, 0x29, 0x9b, 0xe1, 0xae, 0x32, 0x98, 0x9a, - 0x8d, 0x51, 0x7f, 0x98, 0xae, 0xcf, 0x2a, 0x64, 0xeb, 0xb3, 0xd2, 0x2f, 0x37, 0x8a, 0xd9, 0x97, - 0x1b, 0x37, 0x64, 0xa9, 0x15, 0x2f, 0x6f, 0x16, 0x8e, 0xa8, 0x1a, 0x5b, 0xc2, 0x4e, 0x20, 0x8a, - 0xac, 0x5a, 0x83, 0x80, 0xa0, 0x8f, 0x01, 0xe2, 0x94, 0xd9, 0xca, 0xd2, 0x12, 0xef, 0x6e, 0x86, - 0x61, 0xee, 0xa4, 0xaa, 0x4b, 0xc7, 0x3d, 0xe4, 0x28, 0x8f, 0x7d, 0xc8, 0x31, 0x52, 0x39, 0x5e, - 0x19, 0xad, 0x1c, 0x1f, 0x7a, 0xec, 0x01, 0x23, 0x8f, 0x3d, 0x8c, 0x6f, 0x15, 0xa0, 0xac, 0x2e, - 0xa4, 0x52, 0x9b, 0xbf, 0xf6, 0x84, 0xcd, 0x1f, 0x5d, 0x66, 0x3b, 0x02, 0x0d, 0x07, 0x78, 0xcf, - 0x25, 0x72, 0xc3, 0x49, 0x00, 0x6c, 0x2b, 0xc2, 0x7b, 0x7e, 0x48, 0x65, 0x9e, 0x49, 0x7c, 0xa0, - 0x75, 0x28, 0xab, 0x8a, 0xec, 0x91, 0x9b, 0xd6, 0x77, 0x43, 0x87, 0x12, 0x55, 0x92, 0x6d, 0xc6, - 0x74, 0x6c, 0x4d, 0x60, 0x97, 0x99, 0xc4, 0x40, 0x16, 0x12, 0x16, 0xe5, 0x9a, 0x88, 0x17, 0x9d, - 0xc0, 0xf2, 0x5a, 0x42, 0xb3, 0x86, 0x53, 0x5f, 0xe8, 0x15, 0x28, 0xab, 0x47, 0x7d, 0x23, 0xc5, - 0x70, 0x9b, 0x12, 0x61, 0xc6, 0x24, 0x68, 0x13, 0x66, 0x63, 0x65, 0x5a, 0xe4, 0x38, 0x70, 0x42, - 0xd2, 0x96, 0xe5, 0x70, 0x8d, 0xcc, 0x16, 0xc3, 0x54, 0x7b, 0x5b, 0xe0, 0xcd, 0x19, 0x3b, 0x0b, - 0x60, 0x7e, 0x88, 0x99, 0x4c, 0x92, 0xa3, 0x2f, 0xf3, 0x1e, 0xe6, 0xd3, 0x57, 0xb1, 0x0f, 0x65, - 0xbe, 0xde, 0xac, 0xd2, 0xe4, 0x03, 0xdd, 0x83, 0xb9, 0x64, 0x7c, 0xea, 0xfb, 0x96, 0x8b, 0xc3, - 0x8e, 0x78, 0x57, 0x50, 0x5d, 0xbf, 0x38, 0xc2, 0x41, 0xcb, 0xf7, 0xb7, 0x19, 0x81, 0xa9, 0xdb, - 0x43, 0x10, 0xb4, 0x01, 0x7a, 0xf2, 0xfe, 0x66, 0x1f, 0x3b, 0x2e, 0x69, 0xf3, 0xfd, 0x26, 0x2d, - 0x48, 0xfc, 0x00, 0xe7, 0x0e, 0xc7, 0x9b, 0xc9, 0x8b, 0x1d, 0x01, 0x30, 0xfe, 0x36, 0x07, 0xd3, - 0x99, 0x59, 0xc9, 0xc4, 0x32, 0x5a, 0x36, 0x92, 0xbd, 0x0a, 0xd5, 0x74, 0xb1, 0xbd, 0x2c, 0x29, - 0xb0, 0x93, 0x12, 0xfb, 0xd1, 0x65, 0xd7, 0x80, 0x92, 0x5c, 0xba, 0xf2, 0x46, 0x49, 0x7d, 0x32, - 0xc7, 0x1f, 0x77, 0x96, 0x98, 0xb7, 0x58, 0x7f, 0xba, 0xc2, 0xc4, 0x36, 0xfe, 0x26, 0x4c, 0x85, - 0x04, 0x47, 0xbe, 0x27, 0x57, 0xe1, 0x95, 0xf1, 0x36, 0xb5, 0x66, 0x72, 0x22, 0x53, 0x12, 0x1b, - 0x47, 0x30, 0x25, 0x20, 0xa8, 0x0a, 0xa5, 0x77, 0xbc, 0x03, 0xcf, 0x3f, 0xf2, 0xf4, 0x0b, 0xa8, - 0x0e, 0xb0, 0x13, 0x50, 0x59, 0x35, 0xaa, 0x6b, 0x68, 0x1e, 0xf4, 0x74, 0x61, 0x37, 0xb3, 0x70, - 0x3d, 0x87, 0x10, 0xd4, 0x9b, 0xc4, 0xdd, 0x37, 0x7d, 0xd7, 0x25, 0xed, 0x5b, 0xd8, 0x3e, 0xd0, - 0xf3, 0x68, 0x1a, 0x2a, 0xa6, 0x2d, 0xca, 0x4b, 0x23, 0xbd, 0x80, 0x96, 0x60, 0x6e, 0x1b, 0x7f, - 0x65, 0xf0, 0x8e, 0xe7, 0xbc, 0xdf, 0x27, 0x1e, 0x89, 0x22, 0x8e, 0xd2, 0x8b, 0xc6, 0x0a, 0xd4, - 0xd2, 0x36, 0xab, 0x34, 0xa3, 0x25, 0x31, 0xf0, 0xef, 0x69, 0x50, 0x56, 0xf6, 0x99, 0xae, 0xd8, - 0xd5, 0x32, 0x15, 0xbb, 0xca, 0x6d, 0x25, 0x01, 0x34, 0x27, 0x64, 0xa7, 0xb6, 0x55, 0x98, 0x55, - 0x56, 0xcd, 0xd0, 0x56, 0x17, 0x47, 0x5d, 0x59, 0x34, 0x30, 0xa3, 0x10, 0xf7, 0xc9, 0xe0, 0x1e, - 0x8e, 0xba, 0xe8, 0x4d, 0x00, 0xfe, 0xc4, 0xc5, 0xee, 0x62, 0xc7, 0x93, 0x87, 0xa1, 0xc5, 0xb5, - 0xf8, 0x31, 0xec, 0xbb, 0xd8, 0xa1, 0x77, 0xfc, 0xf0, 0xb6, 0xc7, 0xb6, 0xc1, 0x0a, 0xa3, 0xdc, - 0x60, 0x84, 0xc6, 0x37, 0x34, 0x98, 0x19, 0x5a, 0x0b, 0x27, 0xd9, 0xc7, 0x1a, 0xcc, 0x61, 0x4a, - 0x49, 0x2f, 0x60, 0x7b, 0x60, 0x32, 0xa7, 0xc2, 0x4e, 0x66, 0x63, 0x54, 0x3c, 0xa9, 0xa3, 0xe6, - 0x32, 0xe2, 0xee, 0x0a, 0x23, 0xee, 0xce, 0xd8, 0x82, 0x6a, 0x6a, 0x75, 0x3d, 0xc1, 0x5e, 0x4f, - 0x2c, 0x94, 0x36, 0x5e, 0x05, 0x7d, 0x78, 0xa1, 0x65, 0xef, 0x33, 0xb5, 0xa1, 0xfb, 0xcc, 0xbf, - 0xd2, 0x60, 0x66, 0x68, 0x4d, 0x9d, 0xc4, 0xc0, 0xe8, 0xcd, 0xc3, 0x27, 0xa0, 0x12, 0x2f, 0x41, - 0x2e, 0x78, 0x7d, 0x1d, 0x8d, 0xae, 0x56, 0x33, 0x21, 0x62, 0xd3, 0xcc, 0x7d, 0xa2, 0xe3, 0x75, - 0x86, 0xab, 0xb6, 0x67, 0x14, 0x42, 0xd5, 0x6d, 0x7f, 0x1c, 0x50, 0x4c, 0x3b, 0xb2, 0xa6, 0x14, - 0x26, 0x56, 0xe4, 0x5f, 0x6b, 0x00, 0x2c, 0x26, 0x15, 0x65, 0x16, 0xe8, 0xa3, 0x30, 0xcb, 0x6d, - 0xe4, 0x08, 0xbb, 0xae, 0x08, 0x61, 0x7b, 0x4a, 0xa0, 0x3a, 0x43, 0xbc, 0x8b, 0x5d, 0x97, 0x91, - 0x3f, 0x88, 0xd0, 0xab, 0x30, 0x1f, 0x84, 0xbe, 0x4d, 0xa2, 0x28, 0x4b, 0x2d, 0x67, 0x5a, 0xe2, - 0x52, 0x0d, 0xd6, 0x60, 0xfe, 0xe0, 0x90, 0x47, 0x80, 0xd9, 0x06, 0xc2, 0x5c, 0xf5, 0x83, 0x43, - 0x16, 0x0b, 0xa6, 0xe8, 0xd7, 0x61, 0x91, 0xfa, 0x14, 0xbb, 0x56, 0x18, 0xd8, 0xa9, 0x16, 0x9e, - 0x92, 0x1c, 0x71, 0xac, 0x19, 0xd8, 0xaa, 0xcd, 0xc3, 0xc8, 0xf8, 0x7a, 0x0e, 0x6a, 0x89, 0x38, - 0x8f, 0xd6, 0xc7, 0x08, 0xe4, 0x8d, 0x15, 0xe8, 0xe1, 0x63, 0x04, 0xf2, 0x1e, 0x27, 0xd0, 0xc3, - 0x08, 0x7d, 0x1e, 0x2e, 0xab, 0x06, 0x51, 0x3f, 0x0a, 0x88, 0xd7, 0xce, 0x36, 0x14, 0x82, 0x35, - 0x24, 0x4d, 0x53, 0x90, 0xa4, 0xda, 0x8f, 0x55, 0x48, 0x2c, 0xde, 0x90, 0x42, 0x1e, 0x9e, 0xa4, - 0x90, 0xe2, 0x63, 0x15, 0xf2, 0x45, 0x28, 0xb3, 0x83, 0x04, 0x0f, 0xab, 0xe6, 0xa1, 0xc8, 0x29, - 0xb8, 0xfc, 0x79, 0x53, 0x7c, 0xb0, 0xfd, 0x5d, 0x72, 0x48, 0xda, 0x5c, 0xd6, 0xbc, 0x99, 0x00, - 0xe2, 0x24, 0xc2, 0xde, 0x80, 0x12, 0x21, 0x51, 0x5e, 0x24, 0x11, 0x6e, 0x31, 0x80, 0xf1, 0x55, - 0x0d, 0x80, 0xf5, 0x2f, 0xcd, 0xe7, 0x65, 0x28, 0xf2, 0x47, 0x96, 0x23, 0x51, 0x85, 0xe2, 0xc1, - 0x14, 0x78, 0x76, 0x32, 0x8d, 0x1f, 0x8f, 0x8c, 0xa5, 0xe3, 0x68, 0x46, 0xd6, 0xc6, 0x14, 0x8f, - 0x9c, 0xe0, 0x13, 0x32, 0x86, 0x36, 0xfe, 0xa3, 0x28, 0xde, 0x5b, 0xc7, 0xb3, 0xfe, 0x0a, 0xa0, - 0x58, 0x04, 0x15, 0x22, 0xaa, 0x69, 0x9f, 0x8d, 0x31, 0x32, 0x50, 0x8c, 0xd0, 0x27, 0x61, 0x69, - 0x94, 0x3c, 0xfd, 0x8a, 0x77, 0x61, 0xa4, 0x0d, 0x8f, 0x0c, 0xaf, 0x43, 0x5d, 0x4c, 0x48, 0x3c, - 0x84, 0x2c, 0xe5, 0xe5, 0xd0, 0xb8, 0xfb, 0x2f, 0xc0, 0xe5, 0x90, 0x85, 0xfd, 0xed, 0x3d, 0xab, - 0xcd, 0x2f, 0x4f, 0xac, 0xe8, 0xc0, 0x09, 0x02, 0xee, 0x1f, 0xfb, 0x1e, 0x95, 0x76, 0x72, 0x51, - 0xd2, 0x88, 0xfb, 0x95, 0xa6, 0xa0, 0xd8, 0x60, 0x04, 0xec, 0xdc, 0xa6, 0x3a, 0x60, 0x4e, 0x3e, - 0xdb, 0x5a, 0x58, 0xcb, 0xa2, 0x24, 0xb8, 0x4f, 0x06, 0x99, 0xa6, 0x6f, 0xc1, 0x15, 0xd5, 0x74, - 0x8f, 0xef, 0x12, 0xfc, 0x58, 0x6b, 0x75, 0xd9, 0x3e, 0xc0, 0x9b, 0x17, 0x33, 0x83, 0xdf, 0x62, - 0x34, 0xfc, 0x94, 0x7b, 0xcf, 0xa1, 0xa2, 0x87, 0x4f, 0x41, 0x23, 0xdb, 0x03, 0xb7, 0x07, 0xd1, - 0x58, 0x94, 0x7a, 0x2c, 0xa4, 0x1b, 0x33, 0x9b, 0x15, 0x0d, 0xdf, 0x84, 0xa5, 0x31, 0x0d, 0x99, - 0x21, 0xc9, 0x90, 0x78, 0x7e, 0xb8, 0x1d, 0xb3, 0xa9, 0xc7, 0x8c, 0xe7, 0x61, 0xcf, 0x57, 0x81, - 0xef, 0xc8, 0x78, 0x0f, 0x19, 0x92, 0x39, 0xbe, 0x0e, 0xa1, 0x56, 0xe4, 0xe1, 0x20, 0xea, 0xfa, - 0x54, 0x36, 0x11, 0x4f, 0xa8, 0xf5, 0x0e, 0xa1, 0x4d, 0x89, 0x10, 0xd4, 0x4c, 0x31, 0x71, 0x76, - 0xcc, 0x0a, 0x42, 0x3f, 0xf0, 0x23, 0x62, 0x71, 0x5f, 0x21, 0x1a, 0x56, 0xa5, 0x62, 0x54, 0xc2, - 0x6c, 0x57, 0x90, 0xb0, 0x6d, 0x72, 0x5c, 0x0f, 0x2c, 0x5a, 0x71, 0xc2, 0x5e, 0xba, 0x87, 0xda, - 0x50, 0x0f, 0x1b, 0x82, 0x64, 0xb4, 0x87, 0xc0, 0xf7, 0x5d, 0x2b, 0xb2, 0xbb, 0xa4, 0xdd, 0x77, - 0x33, 0x3c, 0x4c, 0x27, 0x3d, 0xec, 0xfa, 0xbe, 0xdb, 0x94, 0x24, 0x71, 0x0f, 0xc6, 0xaf, 0x6a, - 0x50, 0x4d, 0x15, 0xcd, 0xb1, 0x73, 0x2b, 0xf7, 0x09, 0xa2, 0xc6, 0x4e, 0x2e, 0xc3, 0xe4, 0xdc, - 0x9a, 0xb8, 0x46, 0x13, 0x68, 0xe2, 0xf5, 0xdf, 0x80, 0x2a, 0x4f, 0x42, 0xc8, 0x56, 0xb9, 0xa1, - 0x56, 0xc9, 0xd2, 0x32, 0x21, 0x8a, 0xff, 0x17, 0x55, 0xbd, 0xe2, 0x2c, 0x67, 0xfc, 0xa7, 0x06, - 0xd3, 0x99, 0xe2, 0xbd, 0x09, 0x39, 0xf9, 0x2c, 0xd4, 0x53, 0x9c, 0x58, 0x87, 0xeb, 0x92, 0x99, - 0x85, 0x31, 0xcc, 0x3c, 0x5a, 0x37, 0x6b, 0x51, 0x7a, 0xd5, 0x7f, 0x0a, 0x6a, 0xdc, 0xbb, 0xa8, + 0xa8, 0x85, 0xa4, 0xe3, 0xf8, 0x9e, 0xc5, 0xe7, 0x24, 0x07, 0xab, 0xaf, 0xa9, 0x19, 0xde, 0x66, + 0x7f, 0xcd, 0xaa, 0xa0, 0xe1, 0x1f, 0xe8, 0x65, 0x28, 0x0a, 0xda, 0x1c, 0xa7, 0x9d, 0x8d, 0x19, + 0xbb, 0x4f, 0x06, 0x82, 0x5c, 0xe0, 0xd1, 0x3c, 0x14, 0x0f, 0xb1, 0xdb, 0x27, 0x9c, 0x87, 0x9a, + 0x29, 0x3e, 0xd0, 0x25, 0xa8, 0x78, 0x3e, 0xb5, 0xf6, 0xfd, 0xbe, 0xd7, 0x6e, 0x14, 0x56, 0xb4, + 0x1b, 0x65, 0xb3, 0xec, 0xf9, 0xf4, 0x0e, 0xfb, 0x46, 0x9f, 0x87, 0x19, 0x72, 0x4c, 0x6c, 0xab, + 0x4d, 0x28, 0x76, 0xdc, 0xc8, 0x3a, 0x5c, 0x6f, 0x4c, 0xf1, 0x51, 0x16, 0xe3, 0x51, 0x6e, 0x1f, + 0x13, 0x7b, 0x53, 0xa0, 0x1f, 0xad, 0x9b, 0xd3, 0x24, 0xfd, 0xf9, 0x76, 0xa1, 0x5c, 0xd4, 0xa7, + 0x8c, 0x7f, 0xd7, 0xa0, 0xda, 0xb4, 0xb1, 0x37, 0x89, 0x30, 0x2f, 0x41, 0x25, 0xa2, 0x38, 0xa4, + 0x56, 0x22, 0xd2, 0x32, 0x07, 0xdc, 0x27, 0x03, 0x36, 0x23, 0xd7, 0xe9, 0x39, 0x94, 0xcf, 0x68, + 0xda, 0x14, 0x1f, 0x69, 0x69, 0x17, 0x32, 0xd2, 0x46, 0x17, 0xa1, 0x7c, 0x40, 0x06, 0x96, 0xef, + 0xb9, 0x83, 0x46, 0x91, 0x4f, 0xb5, 0x74, 0x40, 0x06, 0x3b, 0x9e, 0xcb, 0x97, 0x28, 0x24, 0x8c, + 0x8e, 0xf0, 0x19, 0x96, 0x4d, 0xf5, 0x89, 0x96, 0xa0, 0x44, 0xbc, 0x36, 0x1f, 0xbf, 0xc4, 0xc7, + 0x9f, 0x22, 0x5e, 0x9b, 0x8d, 0x7e, 0x15, 0xaa, 0x11, 0xee, 0x05, 0x2e, 0xb1, 0x22, 0x4a, 0x82, + 0x46, 0x99, 0xf3, 0x00, 0x02, 0xd4, 0xa4, 0x24, 0x30, 0x7e, 0x53, 0x83, 0x9a, 0x98, 0xf7, 0xe4, + 0xab, 0x7b, 0x1d, 0x8a, 0x01, 0x76, 0xc2, 0xa8, 0x91, 0x5b, 0xc9, 0xdf, 0xa8, 0xae, 0xcf, 0x24, + 0xab, 0x7b, 0xb8, 0x8b, 0x9d, 0xd0, 0x14, 0xd8, 0x44, 0x09, 0xf2, 0x27, 0x2b, 0x81, 0xf1, 0x5f, + 0x45, 0x98, 0xd9, 0x0d, 0xc9, 0x51, 0xe8, 0x50, 0x32, 0xc9, 0x7a, 0xbc, 0x0a, 0x95, 0x5e, 0x9f, + 0x62, 0xea, 0xf8, 0x9e, 0xe2, 0x29, 0x19, 0xec, 0x81, 0xc4, 0x98, 0x09, 0x0d, 0xba, 0x06, 0xb5, + 0x20, 0x74, 0x7a, 0x38, 0x1c, 0x58, 0xcc, 0xd8, 0xa4, 0xf2, 0x55, 0x25, 0x6c, 0xdb, 0xb7, 0x0f, + 0xd0, 0x8b, 0x30, 0x2d, 0xd6, 0x38, 0xbb, 0x6c, 0x35, 0x0e, 0x7c, 0x94, 0xac, 0x1d, 0x6b, 0x6f, + 0x51, 0xea, 0xf2, 0xb5, 0x2b, 0x98, 0x25, 0xf6, 0xdd, 0xa2, 0x2e, 0x5a, 0x87, 0x85, 0xe8, 0xc0, + 0x09, 0x2c, 0xdb, 0xf7, 0x22, 0x1a, 0x62, 0xc7, 0xa3, 0x96, 0xdd, 0x25, 0xf6, 0x81, 0x5c, 0xc9, + 0x39, 0x86, 0xdc, 0x88, 0x71, 0x1b, 0x0c, 0x85, 0x7e, 0x16, 0xe6, 0x02, 0x12, 0x45, 0x4e, 0xcf, + 0x89, 0xa8, 0x63, 0x5b, 0xd8, 0x16, 0x33, 0x2a, 0xad, 0xe4, 0x6f, 0xd4, 0xd7, 0x57, 0xe3, 0x19, + 0x0d, 0x89, 0x6a, 0x6d, 0x37, 0x69, 0x73, 0x93, 0x37, 0x31, 0x51, 0x30, 0x0c, 0x8a, 0x18, 0xaf, + 0xf4, 0xd8, 0xb3, 0x22, 0xe7, 0x2b, 0x84, 0xab, 0x45, 0xc1, 0x2c, 0xd1, 0x63, 0xaf, 0xe9, 0x7c, + 0x85, 0x20, 0x03, 0xa6, 0xf7, 0xfd, 0xd0, 0xea, 0x07, 0x6d, 0x4c, 0x89, 0x45, 0xa3, 0x46, 0x85, + 0xe3, 0xab, 0xfb, 0x7e, 0xf8, 0x0e, 0x87, 0xb5, 0x22, 0x46, 0xd3, 0x73, 0x3c, 0xcb, 0xf6, 0x7b, + 0x3d, 0x87, 0x32, 0x1a, 0x10, 0x34, 0x3d, 0xc7, 0xdb, 0xe0, 0xb0, 0x56, 0x84, 0x6e, 0x80, 0xde, + 0x8f, 0x88, 0x85, 0xa3, 0x81, 0x67, 0x4b, 0xca, 0x46, 0x95, 0x4f, 0xb7, 0xde, 0x8f, 0xc8, 0x4d, + 0x06, 0x16, 0xb4, 0x68, 0x05, 0xaa, 0x11, 0xb1, 0x7d, 0xaf, 0x8d, 0x43, 0x87, 0x44, 0x8d, 0xda, + 0x4a, 0x9e, 0xc9, 0x3f, 0x05, 0x42, 0x97, 0x01, 0x68, 0xc8, 0xcc, 0x82, 0x58, 0x81, 0xdd, 0x98, + 0x16, 0x3e, 0x80, 0x86, 0x83, 0x1d, 0x8f, 0xec, 0xda, 0x9c, 0x1b, 0x7c, 0x9c, 0xe2, 0xa6, 0x2e, + 0xb9, 0xc1, 0xc7, 0x31, 0x37, 0x6f, 0xc1, 0x0c, 0x8e, 0x22, 0x12, 0xb2, 0xe9, 0x5b, 0x2e, 0x39, + 0x24, 0x6e, 0x63, 0x66, 0x45, 0xbb, 0x51, 0x5f, 0x5f, 0x8a, 0x25, 0x79, 0x53, 0xe1, 0xb7, 0x19, + 0xda, 0xac, 0xe3, 0xcc, 0xb7, 0xb1, 0x07, 0xb3, 0x23, 0xb2, 0x45, 0xcb, 0xb0, 0xd8, 0xbc, 0xbf, + 0xb5, 0x6b, 0xed, 0xde, 0x6e, 0x36, 0xb7, 0x1e, 0x6c, 0x35, 0x5b, 0x5b, 0x1b, 0xd6, 0xc6, 0xbd, + 0xdb, 0x1b, 0xf7, 0xf5, 0x0b, 0xa8, 0x01, 0xf3, 0x9b, 0x3b, 0x63, 0x30, 0x1a, 0x5a, 0x82, 0xb9, + 0xcd, 0x1d, 0x6b, 0x63, 0xe7, 0x61, 0xb3, 0x65, 0xde, 0xdc, 0x7a, 0xd8, 0x92, 0x88, 0x9c, 0xf1, + 0xdf, 0x1a, 0xe8, 0xc9, 0x82, 0x4e, 0x6e, 0x93, 0x1f, 0x85, 0x29, 0x8e, 0x1d, 0x35, 0x80, 0xd8, + 0xda, 0x24, 0xc1, 0xe8, 0x52, 0xe6, 0x47, 0x97, 0xf2, 0x65, 0xd0, 0x85, 0xe8, 0x53, 0x64, 0xc2, + 0x02, 0xa6, 0x7d, 0xb6, 0x02, 0x31, 0xe1, 0x18, 0x6f, 0x5c, 0x7c, 0x0a, 0x6f, 0x6c, 0x7c, 0xb7, + 0x00, 0x8b, 0x29, 0x21, 0x33, 0xdb, 0xfb, 0xff, 0xe2, 0x02, 0x46, 0xcc, 0x6a, 0x6a, 0xac, 0x59, + 0x39, 0x91, 0xb5, 0xef, 0x84, 0x11, 0x15, 0x7c, 0x94, 0xb8, 0xa6, 0x57, 0x9d, 0xe8, 0x0e, 0x83, + 0x71, 0x3e, 0xae, 0x41, 0xed, 0x08, 0xb3, 0x25, 0x70, 0x7a, 0xc4, 0xef, 0x53, 0x6e, 0xbd, 0x79, + 0xb3, 0xca, 0x60, 0x2d, 0x01, 0x42, 0x0d, 0x28, 0xee, 0xfb, 0xa1, 0x4d, 0xb8, 0xe5, 0x96, 0x6f, + 0xe5, 0x1a, 0x9a, 0x29, 0x00, 0x6c, 0x12, 0x21, 0xa1, 0xfd, 0xd0, 0xb3, 0xf8, 0xd6, 0x2a, 0xec, + 0xb6, 0x6c, 0xd6, 0x04, 0xf0, 0x11, 0x87, 0x8d, 0x6a, 0x44, 0x75, 0x9c, 0x46, 0xcc, 0x70, 0x07, + 0x66, 0x91, 0x63, 0x27, 0xa2, 0xc4, 0xb3, 0x49, 0xa3, 0x26, 0x6c, 0x9b, 0x83, 0x6f, 0x2b, 0x28, + 0x7a, 0x05, 0xe6, 0xb8, 0x44, 0xd8, 0x8e, 0x66, 0x39, 0xfb, 0x82, 0x3e, 0x92, 0x26, 0xac, 0x33, + 0x14, 0xdb, 0xdc, 0xb6, 0xf6, 0x79, 0x8b, 0x08, 0x6d, 0xb2, 0xd9, 0x1d, 0x10, 0xab, 0x1f, 0x58, + 0x3d, 0xbf, 0x4d, 0xb8, 0x25, 0xd7, 0xd7, 0x8d, 0xc4, 0xdb, 0x65, 0x95, 0xe3, 0x5d, 0x7c, 0x40, + 0xde, 0x09, 0x1e, 0xf8, 0x6d, 0x62, 0xc2, 0x51, 0xfc, 0xbf, 0xf1, 0x6f, 0x1a, 0x34, 0x86, 0x28, + 0xef, 0x93, 0x81, 0x49, 0xa2, 0xbe, 0x4b, 0xd1, 0x67, 0xa0, 0x40, 0x07, 0x01, 0xe1, 0x5a, 0x54, + 0x5f, 0xbf, 0xfe, 0xb8, 0xae, 0xe3, 0x06, 0xad, 0x41, 0x40, 0x4c, 0xde, 0x24, 0x89, 0x4f, 0x72, + 0xe9, 0xf8, 0xe4, 0x32, 0x54, 0x12, 0x29, 0xe4, 0xf9, 0xc4, 0x12, 0x00, 0x7a, 0x13, 0x96, 0xd8, + 0x2c, 0x49, 0xdb, 0x3a, 0x72, 0x68, 0x97, 0xed, 0x00, 0xfb, 0xae, 0x63, 0xa7, 0x4c, 0x68, 0x5e, + 0xa0, 0xdf, 0x75, 0x68, 0x77, 0x43, 0x22, 0x5b, 0x11, 0x5a, 0x03, 0xbe, 0x29, 0x58, 0x21, 0x89, + 0x7c, 0xf7, 0xd0, 0xf1, 0x3a, 0x42, 0x21, 0x84, 0x03, 0x9d, 0x65, 0x28, 0x53, 0x61, 0x18, 0xb7, + 0xc6, 0xbf, 0xe6, 0x60, 0x69, 0xc4, 0x72, 0x9e, 0x8b, 0x03, 0xb9, 0x0a, 0x95, 0x21, 0xe7, 0xc1, + 0x35, 0xae, 0x6c, 0x2b, 0x5d, 0x69, 0x28, 0xa9, 0xb1, 0xf9, 0xd6, 0x84, 0x3a, 0x0a, 0xc9, 0x2d, + 0xc2, 0x94, 0xd4, 0xc3, 0x22, 0xf7, 0xf9, 0xf2, 0x0b, 0x5d, 0x01, 0x88, 0x23, 0x3e, 0x66, 0x28, + 0x79, 0x26, 0x52, 0x15, 0xf2, 0x8d, 0xf5, 0x32, 0xa5, 0xa7, 0xf0, 0x32, 0xe8, 0xb3, 0x2c, 0x92, + 0x62, 0x4b, 0x1b, 0x35, 0xca, 0x7c, 0x76, 0xd7, 0x9e, 0xa8, 0x04, 0xa6, 0x6a, 0x61, 0x7c, 0x5b, + 0x83, 0xe5, 0x14, 0x95, 0xe9, 0xbb, 0xee, 0x1e, 0x9e, 0xcc, 0x4d, 0x8d, 0xb8, 0x94, 0xdc, 0x18, + 0x97, 0x32, 0xe2, 0x37, 0xf2, 0xa3, 0x7e, 0x03, 0x41, 0xe1, 0x80, 0x0c, 0x98, 0x42, 0x31, 0x29, + 0xf2, 0xff, 0x8d, 0x3f, 0xd3, 0xe0, 0xd2, 0x58, 0x3e, 0x9f, 0x8b, 0x52, 0x8c, 0x59, 0xa2, 0xfc, + 0xd3, 0x6c, 0x04, 0x7f, 0xa8, 0xc1, 0x5c, 0xeb, 0xd8, 0xbb, 0x47, 0x70, 0x48, 0x6f, 0x11, 0x3c, + 0xd1, 0x29, 0x67, 0xd8, 0xa9, 0xe7, 0x4e, 0xe1, 0xd4, 0xf3, 0x63, 0x56, 0xe0, 0x25, 0x98, 0xc1, + 0xed, 0x43, 0x27, 0x22, 0x56, 0xec, 0xdb, 0xe5, 0xe6, 0x27, 0xc0, 0xdb, 0xc2, 0xc3, 0x1b, 0xdf, + 0xd7, 0x60, 0x3e, 0xcb, 0xf3, 0x73, 0x38, 0x32, 0xa5, 0x77, 0x9c, 0x7c, 0x76, 0xc7, 0x19, 0xb3, + 0x06, 0x85, 0xa7, 0x59, 0x83, 0x7f, 0xce, 0xc1, 0x02, 0x0f, 0x45, 0x5b, 0xc7, 0x5e, 0x93, 0x62, + 0xda, 0x8f, 0x26, 0x59, 0x85, 0xab, 0xa0, 0x24, 0x9e, 0x3a, 0x20, 0x81, 0x04, 0xb1, 0x43, 0xca, + 0x12, 0x94, 0xc4, 0x0c, 0x94, 0x6a, 0x4f, 0xf1, 0x09, 0x44, 0x4c, 0xee, 0x36, 0x76, 0x5d, 0x12, + 0x5a, 0x62, 0x8d, 0x92, 0xa0, 0x43, 0x80, 0x9b, 0x0c, 0xda, 0xe2, 0xde, 0xc2, 0xee, 0x87, 0x21, + 0xf1, 0x38, 0x89, 0xd8, 0x76, 0x2b, 0x12, 0xd2, 0x8a, 0xd0, 0x6b, 0xb0, 0x10, 0x4a, 0xe5, 0x67, + 0x1b, 0x10, 0x73, 0x2c, 0xdc, 0x3b, 0xcb, 0xd8, 0x1b, 0x29, 0xe4, 0xd6, 0xfe, 0x43, 0x9f, 0xf2, + 0x6d, 0x08, 0xad, 0xc2, 0x2c, 0xdf, 0x2f, 0xad, 0x74, 0xec, 0x2a, 0xf6, 0xe2, 0x19, 0x8e, 0x68, + 0x26, 0xc1, 0xeb, 0xe7, 0x60, 0x39, 0xf1, 0xd1, 0xe9, 0x80, 0x9d, 0xeb, 0x5c, 0x99, 0x37, 0x6a, + 0xc4, 0x14, 0x43, 0xfe, 0xc5, 0xf8, 0x41, 0x0e, 0x16, 0x87, 0x65, 0xfc, 0xe3, 0xd5, 0x9a, 0xeb, + 0x50, 0x97, 0xee, 0x3c, 0x1b, 0xe8, 0x4c, 0x0b, 0xa8, 0x32, 0x8a, 0x97, 0x61, 0x4a, 0x9c, 0x48, + 0xb8, 0xc0, 0xeb, 0xa9, 0x63, 0x9f, 0x3c, 0x75, 0x48, 0x34, 0x5a, 0x83, 0x0a, 0x1f, 0xca, 0xf1, + 0xf6, 0x7d, 0x79, 0x34, 0x4f, 0xf8, 0x62, 0x32, 0xd8, 0xf2, 0xf6, 0x7d, 0x93, 0xb3, 0xc3, 0xfe, + 0x7b, 0x56, 0xe7, 0x6e, 0x7c, 0xa0, 0xc1, 0x32, 0x97, 0x68, 0x53, 0x9e, 0x1f, 0xb8, 0xa5, 0x4f, + 0xa4, 0xba, 0xca, 0xad, 0xe6, 0x12, 0xb7, 0x7a, 0x2a, 0x8f, 0x61, 0xfc, 0x8f, 0x06, 0x97, 0xc6, + 0xf2, 0xf0, 0x1c, 0x96, 0xf6, 0x65, 0x28, 0x32, 0x59, 0x32, 0x63, 0xca, 0x8f, 0x97, 0xb5, 0xc0, + 0xa3, 0x4b, 0xe9, 0x7d, 0x5b, 0xac, 0x71, 0xb2, 0x67, 0x3f, 0x6b, 0x20, 0xff, 0x1d, 0x0d, 0xa6, + 0x85, 0x81, 0x9c, 0xdb, 0xc6, 0xa8, 0x56, 0x27, 0x9f, 0x5a, 0x9d, 0xd3, 0x29, 0xaf, 0x48, 0xfa, + 0x98, 0x53, 0x7b, 0x8e, 0xe7, 0xfa, 0x1d, 0xe3, 0x6f, 0x34, 0xa8, 0x2b, 0x5e, 0x9f, 0xc3, 0x02, + 0x8d, 0xf2, 0x98, 0x1f, 0x67, 0x60, 0xcf, 0xea, 0xbd, 0x3b, 0x30, 0xbd, 0xd5, 0x0b, 0xfc, 0x30, + 0x5e, 0x80, 0xcc, 0xa1, 0x48, 0x3b, 0xc5, 0xa1, 0x68, 0x94, 0xd1, 0xdc, 0x18, 0x46, 0x8d, 0xf7, + 0xa0, 0xae, 0x06, 0x9a, 0x5c, 0x7a, 0xf3, 0x69, 0xe9, 0x55, 0x54, 0x2a, 0xe8, 0xeb, 0x6c, 0x65, + 0x5c, 0x82, 0xbd, 0x7e, 0x70, 0x36, 0x69, 0xce, 0x53, 0xed, 0xf7, 0xd9, 0xfd, 0xa4, 0x30, 0xb4, + 0x9f, 0x18, 0xdf, 0xd0, 0x60, 0x26, 0x66, 0xea, 0x27, 0x46, 0x5f, 0x8c, 0x03, 0x98, 0xb9, 0x85, + 0xa9, 0xdd, 0x9d, 0x30, 0x25, 0x3c, 0xce, 0xd7, 0x3d, 0x3e, 0x29, 0xfc, 0x0f, 0x1a, 0xe8, 0xc9, + 0x68, 0xe7, 0x9e, 0x3b, 0x7c, 0x46, 0x5b, 0x48, 0x64, 0x5d, 0x3c, 0x59, 0xd6, 0x6f, 0x17, 0xca, + 0x79, 0xbd, 0x60, 0xfc, 0x3c, 0xcc, 0xf3, 0xc9, 0x9d, 0x7b, 0x6c, 0x3f, 0xc6, 0x85, 0x19, 0x7f, + 0xa4, 0xc1, 0xc2, 0xd0, 0xe8, 0xcf, 0x41, 0xc9, 0x9e, 0x35, 0x5e, 0xff, 0x03, 0x0d, 0x66, 0x9a, + 0x36, 0xf6, 0x26, 0xcd, 0xd8, 0x5c, 0x85, 0x6a, 0x0f, 0x1f, 0x0f, 0x09, 0x0b, 0x7a, 0xf8, 0x58, + 0x89, 0x2a, 0x93, 0x65, 0xcf, 0x3f, 0x2e, 0xcb, 0x5e, 0x48, 0x67, 0xd9, 0x53, 0x69, 0xf1, 0x62, + 0x3a, 0x2d, 0x6e, 0xfc, 0x48, 0x03, 0x3d, 0x61, 0xf6, 0x27, 0x69, 0x4f, 0x7e, 0x56, 0xa7, 0xff, + 0x03, 0x0d, 0x90, 0xc8, 0x0b, 0x90, 0x49, 0x57, 0xe2, 0x54, 0x8a, 0x7b, 0xca, 0x3d, 0xec, 0x15, + 0xa8, 0xd0, 0x63, 0x8f, 0x87, 0x7e, 0xe2, 0x70, 0x9a, 0x1e, 0xb9, 0x75, 0xec, 0x89, 0xd0, 0x8f, + 0x8a, 0x7f, 0x92, 0x63, 0x6c, 0x31, 0x65, 0x0e, 0xec, 0x20, 0x98, 0x99, 0xd1, 0xff, 0x01, 0x63, + 0x78, 0x04, 0x95, 0xbb, 0x1b, 0x93, 0xc8, 0xfe, 0x0a, 0x40, 0x84, 0xf7, 0x89, 0x15, 0xf8, 0x8e, + 0x47, 0xa5, 0xe0, 0x2b, 0x0c, 0xb2, 0xcb, 0x00, 0x46, 0x17, 0x80, 0xf5, 0x7b, 0xfe, 0x12, 0x30, + 0xbe, 0xa9, 0x01, 0xda, 0x24, 0x2e, 0xa1, 0xc4, 0xc4, 0x5e, 0x87, 0x9c, 0xf9, 0xb5, 0x58, 0xca, + 0x34, 0xf3, 0xc3, 0x37, 0x56, 0x9e, 0x4f, 0x9d, 0x7d, 0x79, 0x05, 0x26, 0x6e, 0xfb, 0x40, 0x80, + 0x76, 0x3c, 0x77, 0x60, 0x7c, 0x09, 0xe6, 0x32, 0x8c, 0x9d, 0x75, 0xc8, 0xf1, 0x27, 0x1a, 0xac, + 0xec, 0x86, 0x24, 0xc0, 0x21, 0xb9, 0xe3, 0xe2, 0xa8, 0xcb, 0x3c, 0x70, 0xcb, 0x97, 0x0a, 0xfd, + 0xfc, 0xe4, 0x70, 0x11, 0xca, 0x43, 0x87, 0xde, 0x52, 0x24, 0x8f, 0xbb, 0xa9, 0x5d, 0xb9, 0x98, + 0xdd, 0x95, 0x5d, 0xb8, 0x76, 0x02, 0xeb, 0x67, 0x2d, 0xa9, 0x1f, 0x68, 0x70, 0xf1, 0x6c, 0x44, + 0x94, 0x9a, 0x51, 0x2e, 0x7b, 0x1d, 0x7a, 0xa2, 0xd7, 0x4f, 0x09, 0xaf, 0xf0, 0x58, 0xe1, 0x15, + 0xb3, 0xc2, 0xcb, 0x1c, 0x7a, 0xa6, 0xb2, 0x87, 0x1e, 0x83, 0xc0, 0xf2, 0xf3, 0x10, 0xdc, 0x17, + 0x61, 0xda, 0xc4, 0x47, 0x67, 0x76, 0x75, 0x5f, 0x87, 0x9c, 0xbd, 0xcf, 0x85, 0x53, 0x31, 0x73, + 0xf6, 0xbe, 0xf1, 0x6b, 0x1a, 0xd4, 0x55, 0xff, 0x67, 0xcc, 0xfa, 0x04, 0x17, 0xf4, 0x46, 0x1b, + 0x90, 0x89, 0x8f, 0xce, 0x3a, 0x34, 0x1d, 0x9e, 0xb4, 0x0f, 0x73, 0x99, 0x51, 0xce, 0x3b, 0x24, + 0x35, 0x7e, 0x47, 0xe3, 0xab, 0xb8, 0xdb, 0x3f, 0xa3, 0x55, 0x1c, 0x2f, 0x59, 0x31, 0xcd, 0x82, + 0x9a, 0x26, 0x6b, 0x97, 0x5c, 0x2d, 0xb1, 0x7f, 0x99, 0x11, 0xec, 0xfb, 0xa1, 0x65, 0xe3, 0x48, + 0xe6, 0xb3, 0xa6, 0xf6, 0xfd, 0x70, 0x03, 0x47, 0xec, 0x58, 0xa6, 0xf8, 0x3b, 0x6b, 0x05, 0xfe, + 0x53, 0x2d, 0x59, 0xd3, 0x09, 0x05, 0x70, 0xca, 0xc0, 0x7f, 0x68, 0x99, 0xd1, 0xbc, 0x98, 0x7f, + 0x21, 0xbe, 0x65, 0x18, 0x96, 0x41, 0x31, 0x2d, 0x03, 0xa6, 0x39, 0x94, 0xba, 0xe2, 0x06, 0xa1, + 0x60, 0xf2, 0xff, 0xd9, 0x06, 0x92, 0xe1, 0xfd, 0xac, 0x85, 0x33, 0x00, 0xdd, 0xc4, 0x47, 0x72, + 0x8f, 0x3a, 0x0f, 0x03, 0x4f, 0x4f, 0xb7, 0x90, 0x59, 0xf2, 0x9f, 0x83, 0xd9, 0xd4, 0xd0, 0x67, + 0x3d, 0xb1, 0x5f, 0xd4, 0x60, 0x41, 0x49, 0x6e, 0xf2, 0xe9, 0x9d, 0xc2, 0x98, 0x1f, 0x3f, 0x41, + 0x0c, 0x8b, 0xc3, 0x1c, 0x9c, 0xf5, 0x2c, 0xbf, 0x2f, 0xbc, 0xe7, 0x73, 0x2c, 0x06, 0x4a, 0x97, + 0xfc, 0x14, 0xb2, 0x25, 0x3f, 0x42, 0x30, 0xc5, 0x58, 0x30, 0x4f, 0x5f, 0x02, 0x64, 0x74, 0x60, + 0x26, 0x9e, 0xce, 0xe4, 0xb2, 0xba, 0x06, 0xf9, 0x83, 0xc3, 0xc7, 0x1a, 0x2b, 0xc3, 0x19, 0x5f, + 0x15, 0xea, 0xf1, 0x63, 0x89, 0x1a, 0x87, 0xdc, 0xa4, 0xd4, 0x93, 0x73, 0x8d, 0x13, 0x7f, 0xa8, + 0x25, 0x7e, 0x64, 0x52, 0x65, 0xf9, 0x28, 0x4c, 0x85, 0x8c, 0xbb, 0xb1, 0xf7, 0x69, 0x82, 0x6f, + 0x49, 0xc0, 0x4e, 0x06, 0x04, 0xdb, 0x5d, 0x2b, 0xad, 0x3f, 0x15, 0x06, 0xd9, 0x3e, 0x33, 0x1d, + 0x32, 0x5c, 0x98, 0xcf, 0xce, 0xe8, 0x5c, 0xf5, 0xe5, 0x17, 0xe0, 0xe2, 0x3b, 0x1e, 0x3b, 0xdb, + 0x6c, 0x92, 0x88, 0x86, 0xfe, 0xe0, 0xf9, 0xaa, 0x0c, 0x8b, 0xf5, 0xc6, 0x0d, 0x7f, 0xd6, 0x6a, + 0xf2, 0x65, 0xb8, 0x64, 0x92, 0x8e, 0x13, 0x51, 0x12, 0xb2, 0xe3, 0xeb, 0xce, 0x5e, 0x44, 0xc2, + 0x43, 0x12, 0x4e, 0x32, 0xcf, 0x05, 0x98, 0xea, 0xe1, 0x63, 0x16, 0xb7, 0x8a, 0x20, 0xb9, 0xd8, + 0xc3, 0xc7, 0xad, 0xc8, 0x78, 0x03, 0x2e, 0x8f, 0x1f, 0x41, 0x4e, 0x25, 0xe6, 0x4b, 0xcb, 0xc6, + 0xa0, 0x0d, 0x7e, 0x41, 0x71, 0x4e, 0x4c, 0xf5, 0xe1, 0xe2, 0x98, 0xee, 0x4f, 0xe2, 0x88, 0xa9, + 0xb0, 0x13, 0x59, 0xb6, 0x4b, 0xb0, 0x38, 0x05, 0x94, 0xcd, 0x92, 0x13, 0xf1, 0x3c, 0xeb, 0xa9, + 0xd3, 0x27, 0xc6, 0x97, 0xe0, 0xa2, 0x49, 0x7a, 0xbe, 0x48, 0x15, 0x9c, 0xc3, 0xb4, 0xd6, 0x61, + 0x79, 0x5c, 0xff, 0x27, 0x4a, 0xfa, 0xd7, 0x35, 0x58, 0xda, 0xed, 0x0e, 0x22, 0xc7, 0xc6, 0xee, + 0xb3, 0x64, 0xc8, 0xc6, 0xb3, 0x34, 0x41, 0x5e, 0xcc, 0x78, 0x0f, 0x1a, 0xa3, 0x0c, 0x9d, 0xb8, + 0x36, 0xf1, 0x02, 0xe4, 0x9e, 0xb0, 0x00, 0xdf, 0xd2, 0x00, 0x35, 0x03, 0xd7, 0xa1, 0x26, 0xb7, + 0x8c, 0xc9, 0x32, 0x81, 0x95, 0x88, 0xf5, 0x90, 0x98, 0xb3, 0x28, 0x27, 0xe1, 0x40, 0x36, 0xa9, + 0x2b, 0x00, 0x31, 0x81, 0x4a, 0x9d, 0x56, 0x14, 0x36, 0x42, 0xcb, 0x50, 0x71, 0x22, 0x2b, 0xc4, + 0x47, 0xd6, 0xc1, 0xa1, 0xf2, 0x85, 0x4e, 0x64, 0xe2, 0xa3, 0xfb, 0x87, 0xc6, 0x77, 0x35, 0x98, + 0xcb, 0xb0, 0x37, 0xb9, 0xb9, 0xbf, 0x04, 0x05, 0x97, 0xec, 0x53, 0x99, 0x49, 0xa9, 0xaf, 0xc9, + 0x72, 0x6f, 0xd1, 0x31, 0xe7, 0x98, 0xe3, 0xd1, 0x0d, 0x28, 0x86, 0x4e, 0xa7, 0x4b, 0x65, 0x06, + 0x69, 0x1c, 0xa1, 0x20, 0x40, 0x37, 0x98, 0x63, 0xee, 0xf0, 0xdb, 0x19, 0x91, 0x2a, 0x1b, 0xa2, + 0x35, 0x15, 0xda, 0xf8, 0x65, 0x0d, 0x74, 0x93, 0xe0, 0xf6, 0x96, 0xd7, 0x26, 0xc7, 0x93, 0xc8, + 0x38, 0x7d, 0x40, 0xce, 0x65, 0x0f, 0xc8, 0xc9, 0x9e, 0x94, 0x7f, 0xc2, 0x9e, 0x64, 0xfc, 0x86, + 0x06, 0xb3, 0x29, 0x36, 0x26, 0x97, 0xe5, 0x15, 0x80, 0x90, 0xe0, 0xb6, 0xe5, 0xb0, 0x8e, 0x54, + 0xda, 0x2b, 0x54, 0x3d, 0x33, 0x96, 0x44, 0x89, 0xd4, 0x48, 0xe9, 0x70, 0xac, 0x7e, 0x92, 0xc0, + 0x68, 0xc2, 0xdc, 0x83, 0x43, 0xdb, 0xbe, 0x4b, 0xe8, 0xad, 0x01, 0xaf, 0xdd, 0x39, 0x83, 0xf8, + 0xdb, 0xf8, 0x55, 0x0d, 0xe6, 0xb3, 0xbd, 0x9e, 0xf5, 0xb1, 0xfa, 0x3a, 0x14, 0xf8, 0xf5, 0xf8, + 0xf0, 0xfc, 0xd8, 0xa8, 0x7c, 0x7e, 0x1c, 0x6d, 0x7c, 0x19, 0x96, 0x62, 0x3e, 0x64, 0xf1, 0xc3, + 0xd9, 0xae, 0x3e, 0xb3, 0xdf, 0xc6, 0xe8, 0x10, 0x67, 0x3d, 0x5d, 0x29, 0xe2, 0x7c, 0x72, 0xc4, + 0x51, 0x02, 0x28, 0x9c, 0x2c, 0x80, 0x0f, 0x2a, 0x50, 0xda, 0x48, 0xb6, 0x7d, 0xc9, 0x8d, 0xd3, + 0xe6, 0xac, 0x14, 0xcc, 0xb2, 0x00, 0x6c, 0xb5, 0xd1, 0x27, 0x13, 0x56, 0x03, 0xdf, 0xee, 0x4a, + 0x2b, 0x9d, 0xcb, 0x1a, 0xd4, 0x6d, 0x86, 0x8a, 0xf9, 0x65, 0x1f, 0x68, 0x05, 0x0a, 0x01, 0x21, + 0xaa, 0x46, 0xbd, 0xa6, 0xe8, 0x77, 0x09, 0x09, 0x4d, 0x8e, 0xe1, 0x47, 0x4a, 0x12, 0xf6, 0xe4, + 0x11, 0x9c, 0xff, 0x8f, 0x5e, 0x85, 0x72, 0x10, 0x3a, 0x7e, 0xe8, 0xd0, 0x01, 0x8f, 0xa9, 0xea, + 0xeb, 0x73, 0x29, 0xe9, 0xf7, 0x7a, 0xd8, 0x6b, 0xef, 0x86, 0x8e, 0x19, 0x13, 0xa1, 0xb7, 0x60, + 0xc6, 0x89, 0x7c, 0x17, 0xa7, 0x8a, 0x91, 0x4b, 0x43, 0xc5, 0xc8, 0x5b, 0x0a, 0x2f, 0x8b, 0x91, + 0x9d, 0xcc, 0x37, 0xfa, 0x08, 0xd4, 0x79, 0xca, 0xc5, 0x71, 0x5d, 0xcb, 0xc6, 0x76, 0x97, 0xc8, + 0x4a, 0x93, 0x9a, 0xe7, 0xd3, 0x3b, 0x8e, 0xeb, 0x6e, 0x30, 0x18, 0x5f, 0xe9, 0x81, 0x67, 0x5b, + 0xae, 0xdf, 0x11, 0xb5, 0xa0, 0x66, 0x89, 0x7d, 0x6f, 0xfb, 0x1d, 0x74, 0x03, 0xf4, 0x90, 0xd8, + 0x7e, 0xd8, 0xe6, 0x85, 0xa4, 0x56, 0x44, 0x31, 0x95, 0xc5, 0xa0, 0x75, 0x01, 0x6f, 0x39, 0x3d, + 0xd2, 0xa4, 0x98, 0xa6, 0x28, 0x23, 0x1b, 0x7b, 0x82, 0xb2, 0x9a, 0xa6, 0x64, 0x9b, 0x08, 0xa7, + 0xbc, 0xc6, 0xa4, 0x1e, 0xb8, 0x8e, 0x8d, 0x2d, 0x66, 0xbd, 0xb2, 0x22, 0xb4, 0x2a, 0x61, 0xcc, + 0x55, 0xa0, 0xeb, 0x50, 0x17, 0xb5, 0x30, 0xa4, 0x6d, 0x89, 0x2d, 0x65, 0x9a, 0x9f, 0xcd, 0xa7, + 0x15, 0x94, 0x17, 0x4a, 0xa0, 0xcf, 0xc0, 0x45, 0xb6, 0xd9, 0x91, 0x63, 0x62, 0xf7, 0xb9, 0x90, + 0xda, 0xfd, 0x50, 0x48, 0xab, 0xa7, 0xaa, 0xbb, 0x17, 0x7b, 0xf8, 0xf8, 0xb6, 0xc2, 0x6f, 0x4a, + 0xf4, 0x03, 0x5e, 0xa0, 0x81, 0x83, 0xc0, 0x75, 0x88, 0xf2, 0x27, 0x33, 0xe2, 0xfe, 0x42, 0x02, + 0x85, 0x4b, 0x59, 0x82, 0x12, 0xc5, 0xd1, 0x01, 0x53, 0x1d, 0x5d, 0xd4, 0x1c, 0xb1, 0xcf, 0xad, + 0x36, 0xdf, 0x5c, 0x28, 0x76, 0x89, 0x98, 0xc0, 0xac, 0x28, 0xe6, 0xe4, 0x10, 0xce, 0xfe, 0xc7, + 0x01, 0x31, 0x46, 0xfb, 0xa1, 0x4d, 0xac, 0x4e, 0xe8, 0xf7, 0x03, 0x8b, 0xe2, 0x4e, 0x03, 0x71, + 0x45, 0xd6, 0x15, 0xe6, 0x2e, 0x43, 0xb4, 0x70, 0x07, 0x7d, 0x1a, 0xa6, 0xdb, 0x4e, 0x74, 0x60, + 0xed, 0xf7, 0x5d, 0xd7, 0xf2, 0x03, 0xda, 0x98, 0xe3, 0x8b, 0x3c, 0x1f, 0x2f, 0xf2, 0xa6, 0x13, + 0x1d, 0xdc, 0xe9, 0xbb, 0xee, 0x4e, 0x40, 0xcd, 0x6a, 0x3b, 0xf9, 0x60, 0x32, 0x67, 0x9b, 0x18, + 0xa1, 0xe1, 0xc0, 0x0a, 0x85, 0x89, 0x37, 0xe6, 0x85, 0xcc, 0x9d, 0xc8, 0x64, 0x60, 0x65, 0xf8, + 0x6f, 0x40, 0x15, 0x07, 0x4e, 0x7c, 0x0d, 0xb3, 0x30, 0xa4, 0x7e, 0x37, 0x77, 0xb7, 0x54, 0x1e, + 0x13, 0x70, 0xe0, 0x24, 0xd5, 0x3b, 0x33, 0x22, 0xeb, 0x49, 0xe3, 0x75, 0x58, 0xe4, 0xeb, 0x50, + 0x8f, 0xc1, 0x62, 0x21, 0x7e, 0x0a, 0xc4, 0xa3, 0x23, 0x4b, 0x79, 0x97, 0x25, 0x6e, 0x19, 0x0b, + 0x6b, 0xea, 0x29, 0x52, 0x8b, 0xfd, 0x55, 0x2e, 0xa6, 0x46, 0x53, 0x5f, 0x62, 0xad, 0x39, 0x97, + 0x96, 0x10, 0x4c, 0xa3, 0xc1, 0xbd, 0xc0, 0xb4, 0x84, 0x36, 0x39, 0x90, 0x89, 0x9c, 0x3f, 0x45, + 0x10, 0x24, 0x17, 0x85, 0xf7, 0xa7, 0xc7, 0x9e, 0x44, 0xaf, 0xc1, 0xdc, 0x90, 0xc8, 0x3d, 0xdc, + 0x23, 0x8d, 0x65, 0xde, 0xd5, 0x6c, 0x46, 0xe6, 0x0f, 0x71, 0x8f, 0xa0, 0x55, 0x98, 0xdd, 0xeb, + 0x47, 0x03, 0x8b, 0x76, 0x43, 0x12, 0x75, 0x7d, 0xb7, 0xcd, 0x54, 0xe6, 0x12, 0x8f, 0x7f, 0x66, + 0x18, 0xa2, 0xa5, 0xe0, 0x0f, 0x22, 0x74, 0x15, 0xaa, 0x2c, 0x88, 0x08, 0xd8, 0x04, 0x9d, 0x76, + 0x63, 0x45, 0xbc, 0x8f, 0x51, 0xa0, 0xad, 0xf6, 0xdb, 0x85, 0x72, 0x41, 0x2f, 0x32, 0x0d, 0xc6, + 0x6d, 0xeb, 0xfd, 0xbe, 0x1f, 0xf6, 0x7b, 0xc6, 0x3f, 0xe6, 0xa0, 0xac, 0xf6, 0x9d, 0x91, 0x12, + 0x43, 0x6d, 0xb4, 0xc4, 0xf0, 0x1a, 0xd4, 0x78, 0xfd, 0x53, 0x36, 0xc3, 0x5d, 0x65, 0x30, 0xb5, + 0x1a, 0xa3, 0xfe, 0x30, 0x5d, 0x9f, 0x55, 0xc8, 0xd6, 0x67, 0xa5, 0x5f, 0x6e, 0x14, 0xb3, 0x2f, + 0x37, 0x6e, 0xc8, 0x52, 0x2b, 0x5e, 0xde, 0x2c, 0x1c, 0x51, 0x35, 0xd6, 0x84, 0x9d, 0x40, 0x14, + 0x59, 0xb5, 0x06, 0x01, 0x41, 0x1f, 0x03, 0xc4, 0x29, 0xb3, 0x95, 0xa5, 0x25, 0xde, 0xdd, 0x0c, + 0xc3, 0xdc, 0x49, 0x55, 0x97, 0x8e, 0x7b, 0xc8, 0x51, 0x1e, 0xfb, 0x90, 0x63, 0xa4, 0x72, 0xbc, + 0x32, 0x5a, 0x39, 0x3e, 0xf4, 0xd8, 0x03, 0x46, 0x1e, 0x7b, 0x18, 0xdf, 0x2c, 0x40, 0x59, 0x5d, + 0x48, 0xa5, 0x36, 0x7f, 0xed, 0x09, 0x9b, 0x3f, 0xba, 0xcc, 0x76, 0x04, 0x1a, 0x0e, 0xf0, 0x9e, + 0x4b, 0xe4, 0x86, 0x93, 0x00, 0xd8, 0x56, 0x84, 0xf7, 0xfc, 0x90, 0xca, 0x3c, 0x93, 0xf8, 0x40, + 0xeb, 0x50, 0x56, 0x15, 0xd9, 0x23, 0x37, 0xad, 0xef, 0x86, 0x0e, 0x25, 0xaa, 0x24, 0xdb, 0x8c, + 0xe9, 0x98, 0x4d, 0x60, 0x97, 0xa9, 0xc4, 0x40, 0x16, 0x12, 0x16, 0xa5, 0x4d, 0xc4, 0x46, 0x27, + 0xb0, 0xbc, 0x96, 0xd0, 0xac, 0xe1, 0xd4, 0x17, 0x7a, 0x05, 0xca, 0xea, 0x51, 0xdf, 0x48, 0x31, + 0xdc, 0xa6, 0x44, 0x98, 0x31, 0x09, 0xda, 0x84, 0xd9, 0x58, 0x98, 0x16, 0x39, 0x0e, 0x9c, 0x90, + 0xb4, 0x65, 0x39, 0x5c, 0x23, 0xb3, 0xc5, 0x30, 0xd1, 0xde, 0x16, 0x78, 0x73, 0xc6, 0xce, 0x02, + 0x98, 0x1f, 0x62, 0x2a, 0x93, 0xe4, 0xe8, 0xcb, 0xbc, 0x87, 0xf9, 0xf4, 0x55, 0xec, 0x43, 0x99, + 0xaf, 0x37, 0xab, 0x34, 0xf9, 0x40, 0xf7, 0x60, 0x2e, 0x19, 0x9f, 0xfa, 0xbe, 0xe5, 0xe2, 0xb0, + 0x23, 0xde, 0x15, 0x54, 0xd7, 0x2f, 0x8e, 0x70, 0xd0, 0xf2, 0xfd, 0x6d, 0x46, 0x60, 0xea, 0xf6, + 0x10, 0x04, 0x6d, 0x80, 0x9e, 0xbc, 0xbf, 0xd9, 0xc7, 0x8e, 0x4b, 0xda, 0x7c, 0xbf, 0x49, 0x4f, + 0x24, 0x7e, 0x80, 0x73, 0x87, 0xe3, 0xcd, 0xe4, 0xc5, 0x8e, 0x00, 0x18, 0x7f, 0x9b, 0x83, 0xe9, + 0xcc, 0xaa, 0x64, 0x62, 0x19, 0x2d, 0x1b, 0xc9, 0x5e, 0x85, 0x6a, 0xba, 0xd8, 0x5e, 0x96, 0x14, + 0xd8, 0x49, 0x89, 0xfd, 0xa8, 0xd9, 0x35, 0xa0, 0x24, 0x4d, 0x57, 0xde, 0x28, 0xa9, 0x4f, 0xe6, + 0xf8, 0xe3, 0xce, 0x12, 0xf5, 0x16, 0xf6, 0xa7, 0x2b, 0x4c, 0xac, 0xe3, 0x6f, 0xc2, 0x54, 0x48, + 0x70, 0xe4, 0x7b, 0xd2, 0x0a, 0xaf, 0x8c, 0xd7, 0xa9, 0x35, 0x93, 0x13, 0x99, 0x92, 0xd8, 0x38, + 0x82, 0x29, 0x01, 0x41, 0x55, 0x28, 0xbd, 0xe3, 0x1d, 0x78, 0xfe, 0x91, 0xa7, 0x5f, 0x40, 0x75, + 0x80, 0x9d, 0x80, 0xca, 0xaa, 0x51, 0x5d, 0x43, 0xf3, 0xa0, 0xa7, 0x0b, 0xbb, 0x99, 0x86, 0xeb, + 0x39, 0x84, 0xa0, 0xde, 0x24, 0xee, 0xbe, 0xe9, 0xbb, 0x2e, 0x69, 0xdf, 0xc2, 0xf6, 0x81, 0x9e, + 0x47, 0xd3, 0x50, 0x31, 0x6d, 0x51, 0x5e, 0x1a, 0xe9, 0x05, 0xb4, 0x04, 0x73, 0xdb, 0xf8, 0x2b, + 0x83, 0x77, 0x3c, 0xe7, 0xfd, 0x3e, 0xf1, 0x48, 0x14, 0x71, 0x94, 0x5e, 0x34, 0x56, 0xa0, 0x96, + 0xd6, 0x59, 0x25, 0x19, 0x2d, 0x89, 0x81, 0x7f, 0x57, 0x83, 0xb2, 0xd2, 0xcf, 0x74, 0xc5, 0xae, + 0x96, 0xa9, 0xd8, 0x55, 0x6e, 0x2b, 0x09, 0xa0, 0x39, 0x21, 0x3b, 0xb5, 0xad, 0xc2, 0xac, 0xd2, + 0x6a, 0x86, 0xb6, 0xba, 0x38, 0xea, 0xca, 0xa2, 0x81, 0x19, 0x85, 0xb8, 0x4f, 0x06, 0xf7, 0x70, + 0xd4, 0x45, 0x6f, 0x02, 0xf0, 0x27, 0x2e, 0x76, 0x17, 0x3b, 0x9e, 0x3c, 0x0c, 0x2d, 0xae, 0xc5, + 0x8f, 0x61, 0xdf, 0xc5, 0x0e, 0xbd, 0xe3, 0x87, 0xb7, 0x3d, 0xb6, 0x0d, 0x56, 0x18, 0xe5, 0x06, + 0x23, 0x34, 0xbe, 0xae, 0xc1, 0xcc, 0x90, 0x2d, 0x9c, 0xa4, 0x1f, 0x6b, 0x30, 0x87, 0x29, 0x25, + 0xbd, 0x80, 0xed, 0x81, 0xc9, 0x9a, 0x0a, 0x3d, 0x99, 0x8d, 0x51, 0xf1, 0xa2, 0x8e, 0xaa, 0xcb, + 0x88, 0xbb, 0x2b, 0x8c, 0xb8, 0x3b, 0x63, 0x0b, 0xaa, 0x29, 0xeb, 0x7a, 0x82, 0xbe, 0x9e, 0x58, + 0x28, 0x6d, 0xbc, 0x0a, 0xfa, 0xb0, 0xa1, 0x65, 0xef, 0x33, 0xb5, 0xa1, 0xfb, 0xcc, 0xbf, 0xd2, + 0x60, 0x66, 0xc8, 0xa6, 0x4e, 0x62, 0x60, 0xf4, 0xe6, 0xe1, 0x13, 0x50, 0x89, 0x4d, 0x90, 0x4f, + 0xbc, 0xbe, 0x8e, 0x46, 0xad, 0xd5, 0x4c, 0x88, 0xd8, 0x32, 0x73, 0x9f, 0xe8, 0x78, 0x9d, 0xe1, + 0xaa, 0xed, 0x19, 0x85, 0x50, 0x75, 0xdb, 0x1f, 0x07, 0x14, 0xd3, 0x8e, 0xd8, 0x94, 0xc2, 0xc4, + 0x82, 0xfc, 0x6b, 0x0d, 0x80, 0xc5, 0xa4, 0xa2, 0xcc, 0x02, 0x7d, 0x14, 0x66, 0xb9, 0x8e, 0x1c, + 0x61, 0xd7, 0x15, 0x21, 0x6c, 0x4f, 0x4d, 0xa8, 0xce, 0x10, 0xef, 0x62, 0xd7, 0x65, 0xe4, 0x0f, + 0x22, 0xf4, 0x2a, 0xcc, 0x07, 0xa1, 0x6f, 0x93, 0x28, 0xca, 0x52, 0xcb, 0x95, 0x96, 0xb8, 0x54, + 0x83, 0x35, 0x98, 0x3f, 0x38, 0xe4, 0x11, 0x60, 0xb6, 0x81, 0x50, 0x57, 0xfd, 0xe0, 0x90, 0xc5, + 0x82, 0x29, 0xfa, 0x75, 0x58, 0xa4, 0x3e, 0xc5, 0xae, 0x15, 0x06, 0x76, 0xaa, 0x85, 0xa7, 0x66, + 0x8e, 0x38, 0xd6, 0x0c, 0x6c, 0xd5, 0xe6, 0x61, 0x64, 0x7c, 0x2d, 0x07, 0xb5, 0x64, 0x3a, 0x8f, + 0xd6, 0xc7, 0x4c, 0xc8, 0x1b, 0x3b, 0xa1, 0x87, 0x8f, 0x99, 0x90, 0xf7, 0xb8, 0x09, 0x3d, 0x8c, + 0xd0, 0xe7, 0xe1, 0xb2, 0x6a, 0x10, 0xf5, 0xa3, 0x80, 0x78, 0xed, 0x6c, 0x43, 0x31, 0xb1, 0x86, + 0xa4, 0x69, 0x0a, 0x92, 0x54, 0xfb, 0xb1, 0x02, 0x89, 0xa7, 0x37, 0x24, 0x90, 0x87, 0x27, 0x09, + 0xa4, 0xf8, 0x58, 0x81, 0x7c, 0x11, 0xca, 0xec, 0x20, 0xc1, 0xc3, 0xaa, 0x79, 0x28, 0x72, 0x0a, + 0x3e, 0xff, 0xbc, 0x29, 0x3e, 0xd8, 0xfe, 0x2e, 0x39, 0x24, 0x6d, 0x3e, 0xd7, 0xbc, 0x99, 0x00, + 0xe2, 0x24, 0xc2, 0xde, 0x80, 0x12, 0x31, 0xa3, 0xbc, 0x48, 0x22, 0xdc, 0x62, 0x00, 0xe3, 0x97, + 0x34, 0x00, 0xd6, 0xbf, 0x54, 0x9f, 0x97, 0xa1, 0xc8, 0x1f, 0x59, 0x8e, 0x44, 0x15, 0x8a, 0x07, + 0x53, 0xe0, 0xd9, 0xc9, 0x34, 0x7e, 0x3c, 0x32, 0x96, 0x8e, 0xa3, 0x19, 0x59, 0x1b, 0x53, 0x3c, + 0x72, 0x82, 0x4f, 0xc8, 0x18, 0xda, 0xf8, 0x8f, 0xa2, 0x78, 0x6f, 0x1d, 0xaf, 0xfa, 0x2b, 0x80, + 0xe2, 0x29, 0xa8, 0x10, 0x51, 0x2d, 0xfb, 0x6c, 0x8c, 0x91, 0x81, 0x62, 0x84, 0x3e, 0x09, 0x4b, + 0xa3, 0xe4, 0xe9, 0x57, 0xbc, 0x0b, 0x23, 0x6d, 0x78, 0x64, 0x78, 0x1d, 0xea, 0x62, 0x41, 0xe2, + 0x21, 0x64, 0x29, 0x2f, 0x87, 0xc6, 0xdd, 0x7f, 0x01, 0x2e, 0x87, 0x2c, 0xec, 0x6f, 0xef, 0x59, + 0x6d, 0x7e, 0x79, 0x62, 0x45, 0x07, 0x4e, 0x10, 0x70, 0xff, 0xd8, 0xf7, 0xa8, 0xd4, 0x93, 0x8b, + 0x92, 0x46, 0xdc, 0xaf, 0x34, 0x05, 0xc5, 0x06, 0x23, 0x60, 0xe7, 0x36, 0xd5, 0x01, 0x73, 0xf2, + 0xd9, 0xd6, 0x42, 0x5b, 0x16, 0x25, 0xc1, 0x7d, 0x32, 0xc8, 0x34, 0x7d, 0x0b, 0xae, 0xa8, 0xa6, + 0x7b, 0x7c, 0x97, 0xe0, 0xc7, 0x5a, 0xab, 0xcb, 0xf6, 0x01, 0xde, 0xbc, 0x98, 0x19, 0xfc, 0x16, + 0xa3, 0xe1, 0xa7, 0xdc, 0x7b, 0x0e, 0x15, 0x3d, 0x7c, 0x0a, 0x1a, 0xd9, 0x1e, 0xb8, 0x3e, 0x88, + 0xc6, 0xa2, 0xd4, 0x63, 0x21, 0xdd, 0x98, 0xe9, 0xac, 0x68, 0xf8, 0x26, 0x2c, 0x8d, 0x69, 0xc8, + 0x14, 0x49, 0x86, 0xc4, 0xf3, 0xc3, 0xed, 0x98, 0x4e, 0x3d, 0x66, 0x3c, 0x0f, 0x7b, 0xbe, 0x0a, + 0x7c, 0x47, 0xc6, 0x7b, 0xc8, 0x90, 0xcc, 0xf1, 0x75, 0x08, 0xb5, 0x22, 0x0f, 0x07, 0x51, 0xd7, + 0xa7, 0xb2, 0x89, 0x78, 0x42, 0xad, 0x77, 0x08, 0x6d, 0x4a, 0x84, 0xa0, 0x66, 0x82, 0x89, 0xb3, + 0x63, 0x56, 0x10, 0xfa, 0x81, 0x1f, 0x11, 0x8b, 0xfb, 0x0a, 0xd1, 0xb0, 0x2a, 0x05, 0xa3, 0x12, + 0x66, 0xbb, 0x82, 0x84, 0x6d, 0x93, 0xe3, 0x7a, 0x60, 0xd1, 0x8a, 0x13, 0xf6, 0xd2, 0x3d, 0xd4, + 0x86, 0x7a, 0xd8, 0x10, 0x24, 0xa3, 0x3d, 0x04, 0xbe, 0xef, 0x5a, 0x91, 0xdd, 0x25, 0xed, 0xbe, + 0x9b, 0xe1, 0x61, 0x3a, 0xe9, 0x61, 0xd7, 0xf7, 0xdd, 0xa6, 0x24, 0x89, 0x7b, 0x30, 0x7e, 0x45, + 0x83, 0x6a, 0xaa, 0x68, 0x8e, 0x9d, 0x5b, 0xb9, 0x4f, 0x10, 0x35, 0x76, 0xd2, 0x0c, 0x93, 0x73, + 0x6b, 0xe2, 0x1a, 0x4d, 0xa0, 0x89, 0xd7, 0x7f, 0x03, 0xaa, 0x3c, 0x09, 0x21, 0x5b, 0xe5, 0x86, + 0x5a, 0x25, 0xa6, 0x65, 0x42, 0x14, 0xff, 0x2f, 0xaa, 0x7a, 0xc5, 0x59, 0xce, 0xf8, 0x4f, 0x0d, + 0xa6, 0x33, 0xc5, 0x7b, 0x13, 0x72, 0xf2, 0x59, 0xa8, 0xa7, 0x38, 0xb1, 0x0e, 0xd7, 0x25, 0x33, + 0x0b, 0x63, 0x98, 0x79, 0xb4, 0x6e, 0xd6, 0xa2, 0xb4, 0xd5, 0x7f, 0x0a, 0x6a, 0xdc, 0xbb, 0xa8, 0x31, 0xf3, 0x43, 0xf1, 0x38, 0x8f, 0x12, 0xe5, 0xa0, 0xd5, 0xa3, 0xe4, 0x83, 0x8d, 0x9a, 0xe2, 0x35, 0x29, 0x0f, 0x5d, 0x18, 0xc3, 0x2e, 0x1b, 0x95, 0xa6, 0xbe, 0x8c, 0x0f, 0x4a, 0x50, 0x4d, - 0xf5, 0x8c, 0x5e, 0x87, 0xc5, 0x88, 0xfa, 0x21, 0xb1, 0xf6, 0x30, 0xb5, 0xbb, 0xe9, 0xd9, 0x14, - 0xfe, 0x67, 0x8e, 0x63, 0xf9, 0x7d, 0x60, 0x62, 0x09, 0x6f, 0x72, 0x0f, 0xc4, 0x4d, 0x30, 0x12, + 0xf5, 0x8c, 0x5e, 0x87, 0xc5, 0x88, 0xfa, 0x21, 0xb1, 0xf6, 0x30, 0xb5, 0xbb, 0xe9, 0xd5, 0x14, + 0xfe, 0x67, 0x8e, 0x63, 0xf9, 0x7d, 0x60, 0xa2, 0x09, 0x6f, 0x72, 0x0f, 0xc4, 0x55, 0x30, 0x12, 0xfb, 0x48, 0xdc, 0x4a, 0xb8, 0x94, 0x79, 0x89, 0x6e, 0xf2, 0x2d, 0x44, 0x35, 0x5b, 0x85, 0xd9, 0x80, 0x79, 0x19, 0xfe, 0xb0, 0xb9, 0x23, 0x1b, 0xc8, 0xf0, 0x4f, 0x22, 0xb6, 0xfd, 0x8e, 0xa0, - 0xdd, 0x80, 0xab, 0x21, 0xde, 0xa7, 0x56, 0x7b, 0xcf, 0x12, 0x5a, 0x72, 0x09, 0x6e, 0x93, 0x30, - 0x3d, 0x94, 0x70, 0x25, 0xcb, 0x8c, 0x6c, 0x73, 0x8f, 0xcb, 0xb4, 0xcd, 0x69, 0x92, 0x01, 0xd7, - 0x61, 0x51, 0x75, 0xa2, 0x52, 0x60, 0xb2, 0xad, 0xdc, 0x82, 0x44, 0xdb, 0xa6, 0x48, 0x87, 0x89, - 0x36, 0x9f, 0x87, 0xcb, 0xd9, 0x81, 0x7b, 0xa4, 0x47, 0xd9, 0xe1, 0x51, 0xb6, 0x14, 0x4e, 0xa4, - 0x91, 0x1a, 0xf5, 0x81, 0x24, 0x10, 0xed, 0x6f, 0x80, 0x3c, 0xf7, 0xa4, 0x46, 0x13, 0x0e, 0x44, - 0xa6, 0x55, 0xe2, 0x91, 0x5e, 0x87, 0x45, 0x1c, 0x04, 0xee, 0x60, 0x54, 0xf5, 0xc2, 0x8d, 0xcf, - 0x71, 0xec, 0x90, 0xea, 0x5f, 0x82, 0x19, 0xd1, 0x28, 0xe9, 0xbd, 0x22, 0xdf, 0x21, 0x32, 0xf0, - 0x68, 0xe7, 0xbd, 0x3e, 0x25, 0xc7, 0xe2, 0xd1, 0x62, 0xda, 0xc5, 0x88, 0xce, 0x1f, 0x30, 0x24, - 0x3b, 0x43, 0xc7, 0x2b, 0x5c, 0x34, 0x7a, 0x9c, 0xca, 0xa5, 0x97, 0xe1, 0x44, 0x63, 0x35, 0xfe, + 0xdd, 0x80, 0xab, 0x21, 0xde, 0xa7, 0x56, 0x7b, 0xcf, 0x12, 0x52, 0x72, 0x09, 0x6e, 0x93, 0x30, + 0x3d, 0x94, 0x70, 0x25, 0xcb, 0x8c, 0x6c, 0x73, 0x8f, 0xcf, 0x69, 0x9b, 0xd3, 0x24, 0x03, 0xae, + 0xc3, 0xa2, 0xea, 0x44, 0xa5, 0xc0, 0x64, 0x5b, 0xb9, 0x05, 0x89, 0xb6, 0x4d, 0x91, 0x0e, 0x13, + 0x6d, 0x3e, 0x0f, 0x97, 0xb3, 0x03, 0xf7, 0x48, 0x8f, 0xb2, 0xc3, 0xa3, 0x6c, 0x29, 0x9c, 0x48, + 0x23, 0x35, 0xea, 0x03, 0x49, 0x20, 0xda, 0xdf, 0x00, 0x79, 0xee, 0x49, 0x8d, 0x26, 0x1c, 0x88, + 0x4c, 0xab, 0xc4, 0x23, 0xbd, 0x0e, 0x8b, 0x38, 0x08, 0xdc, 0xc1, 0xa8, 0xe8, 0x85, 0x1b, 0x9f, + 0xe3, 0xd8, 0x21, 0xd1, 0xbf, 0x04, 0x33, 0xa2, 0x51, 0xd2, 0x7b, 0x45, 0xbe, 0x43, 0x64, 0xe0, + 0xd1, 0xce, 0x7b, 0x7d, 0x4a, 0x8e, 0xc5, 0xa3, 0xc5, 0xb4, 0x8b, 0x11, 0x9d, 0x3f, 0x60, 0x48, + 0x76, 0x86, 0x8e, 0x2d, 0x5c, 0x34, 0x7a, 0x9c, 0xc8, 0xa5, 0x97, 0xe1, 0x44, 0x63, 0x25, 0xfe, 0x1a, 0x2c, 0xa4, 0x7b, 0x38, 0xc2, 0x6e, 0xc6, 0xbb, 0xa0, 0xa4, 0xe5, 0xbb, 0xd8, 0x15, 0x4d, - 0x3e, 0x0b, 0xcb, 0xe9, 0x26, 0x43, 0xea, 0x16, 0x3e, 0x65, 0x29, 0x69, 0x37, 0xa2, 0x6d, 0x77, - 0x58, 0x7b, 0x22, 0x35, 0x58, 0x77, 0xb3, 0x8a, 0x7b, 0x11, 0xa6, 0x55, 0xf8, 0x23, 0xc8, 0x64, + 0x3e, 0x0b, 0xcb, 0xe9, 0x26, 0x43, 0xe2, 0x16, 0x3e, 0x65, 0x29, 0x69, 0x37, 0x22, 0x6d, 0x77, + 0x58, 0x7a, 0x22, 0x35, 0x58, 0x77, 0xb3, 0x82, 0x7b, 0x11, 0xa6, 0x55, 0xf8, 0x23, 0xc8, 0x64, 0x4a, 0x50, 0x02, 0x05, 0x11, 0xdb, 0x22, 0xbb, 0xa1, 0x4f, 0x69, 0x3c, 0xbe, 0x2e, 0xb7, 0x48, - 0x09, 0x15, 0x64, 0x3f, 0x0b, 0x97, 0x86, 0x1f, 0xf9, 0xa5, 0x19, 0x98, 0x95, 0x91, 0xd4, 0xf0, + 0x09, 0x15, 0x64, 0x3f, 0x0d, 0x97, 0x86, 0x1f, 0xf9, 0xa5, 0x19, 0x98, 0x95, 0x91, 0xd4, 0xf0, 0x33, 0x75, 0xe5, 0x06, 0xdf, 0x83, 0x29, 0x71, 0x09, 0x9e, 0xd4, 0xe2, 0x6a, 0x4f, 0xa8, 0x46, 0x3e, 0x65, 0xad, 0x98, 0xf1, 0x81, 0x06, 0x65, 0xf5, 0x8c, 0x07, 0x5d, 0x82, 0x9c, 0x1f, 0xc8, 0x27, 0xee, 0x99, 0x1c, 0x50, 0xce, 0x0f, 0x4e, 0x5d, 0x7d, 0x96, 0x09, 0xff, 0x0b, 0xa7, 0x08, - 0xff, 0x8d, 0x1f, 0xe7, 0xa0, 0xf2, 0xe0, 0xd0, 0xb6, 0xf9, 0x74, 0xa1, 0xab, 0x99, 0x97, 0xf6, + 0xff, 0x8d, 0x1f, 0xe5, 0xa0, 0xf2, 0xe0, 0xd0, 0xb6, 0xf9, 0x72, 0xa1, 0xab, 0x99, 0x97, 0xf6, 0x19, 0x36, 0xc4, 0x7b, 0xfa, 0x13, 0xee, 0xa1, 0x2e, 0x8d, 0xbc, 0x2a, 0x4f, 0xbd, 0x4e, 0xbb, 0x0a, 0xd5, 0xa8, 0xeb, 0x87, 0xd4, 0x4a, 0xbd, 0x2b, 0x37, 0x81, 0x83, 0xf8, 0x6f, 0x18, 0xb0, 0x38, 0xa9, 0x8b, 0x23, 0xcb, 0x3f, 0x24, 0xa1, 0x8b, 0x79, 0x08, 0xa2, 0x5e, 0x79, 0xca, 0x0a, 0xb1, 0x85, 0x2e, 0x8e, 0x76, 0x62, 0xac, 0x7a, 0x6a, 0x81, 0x56, 0xa0, 0xc6, 0xda, 0x75, 0x6c, 0x6b, 0x9f, 0xbf, 0xe6, 0x17, 0x15, 0x12, 0xd0, 0xc5, 0xd1, 0x5d, 0xfb, 0x0e, 0x7f, 0xce, 0x7f, - 0x11, 0xca, 0x31, 0x56, 0xac, 0xed, 0x52, 0x47, 0xa2, 0x3e, 0x02, 0x75, 0x17, 0x47, 0xfc, 0xd8, - 0xea, 0x75, 0x78, 0x42, 0x4d, 0x2c, 0xe6, 0x1a, 0x83, 0x6e, 0x70, 0x20, 0xcf, 0x0d, 0x2c, 0xc5, - 0x81, 0x1b, 0xf5, 0xad, 0x54, 0x0b, 0xb9, 0x9a, 0xe7, 0x15, 0xba, 0xe5, 0x6f, 0xc7, 0x0d, 0x8d, - 0xcf, 0x09, 0xc5, 0x0a, 0xf1, 0x4e, 0x38, 0xc4, 0x8d, 0xfd, 0x89, 0x02, 0xe3, 0xdb, 0x79, 0x28, - 0xb3, 0xe6, 0x3c, 0x23, 0xf9, 0x2c, 0xd3, 0x92, 0xca, 0x90, 0xe4, 0xb3, 0x19, 0x92, 0x27, 0xce, - 0xc9, 0x68, 0xed, 0xe2, 0x69, 0x7e, 0x12, 0x23, 0x9d, 0xee, 0x2c, 0x0d, 0xa7, 0x3b, 0x4f, 0x9b, - 0x97, 0x1c, 0xca, 0x39, 0x56, 0x46, 0x7f, 0x60, 0xe6, 0x2a, 0x54, 0xe3, 0x47, 0xc2, 0x54, 0x64, - 0x25, 0x0b, 0x26, 0x28, 0x50, 0x2b, 0x1a, 0x33, 0xb9, 0xd5, 0xa7, 0x9b, 0xdc, 0xda, 0x09, 0x93, - 0xfb, 0x35, 0x4d, 0x4c, 0x0f, 0x3f, 0xfc, 0xa8, 0x13, 0x87, 0x36, 0xe6, 0x2e, 0x8c, 0xdf, 0xd5, - 0x8b, 0x13, 0xc7, 0x2a, 0x4c, 0x71, 0xaf, 0xa9, 0x2e, 0xe5, 0x51, 0x86, 0x90, 0x2f, 0x40, 0x53, - 0x52, 0x30, 0x5a, 0xf9, 0x3b, 0x0b, 0xf9, 0x31, 0xb4, 0x7c, 0x7a, 0xd4, 0x6f, 0x2f, 0x18, 0xaf, - 0x43, 0x49, 0xbe, 0xcc, 0xe0, 0x33, 0x76, 0xec, 0x49, 0x0b, 0x63, 0xff, 0xa2, 0x45, 0x98, 0x8a, - 0xf8, 0x2b, 0x65, 0x69, 0x17, 0xf2, 0xcb, 0x78, 0x8b, 0x67, 0x6c, 0xf9, 0xf5, 0x70, 0xb6, 0x22, - 0x41, 0x7b, 0x7c, 0x3d, 0x4e, 0x2e, 0x53, 0x8f, 0xf3, 0x17, 0x1a, 0x80, 0xd8, 0x51, 0xf8, 0xd0, - 0x27, 0xde, 0xee, 0x2d, 0x41, 0x29, 0x20, 0x24, 0x64, 0x28, 0xc9, 0x06, 0xfb, 0xdc, 0x6a, 0xc7, - 0x97, 0x73, 0xf9, 0xd4, 0xe5, 0xdc, 0xf0, 0x55, 0x60, 0xe1, 0x94, 0x57, 0x81, 0xaf, 0xc9, 0xf3, - 0x24, 0x93, 0x90, 0xc8, 0x14, 0x6f, 0xa2, 0x37, 0x16, 0xcc, 0x37, 0x19, 0x46, 0x9c, 0x31, 0xf9, - 0xbf, 0xc6, 0x16, 0x54, 0x62, 0xf8, 0xe8, 0x3d, 0x94, 0x36, 0xfe, 0x1e, 0x8a, 0x3f, 0xf8, 0xa0, - 0x89, 0x42, 0xf1, 0x3e, 0x69, 0x45, 0x46, 0x13, 0x90, 0x28, 0xa0, 0xe1, 0x2a, 0x51, 0x97, 0x3d, - 0xaf, 0x24, 0x25, 0x02, 0xe2, 0x01, 0x67, 0x12, 0xa6, 0x26, 0xba, 0x8b, 0xeb, 0x04, 0x50, 0x1d, - 0x72, 0x71, 0xc7, 0x39, 0x1a, 0x19, 0x5f, 0x80, 0xb9, 0x4c, 0xa7, 0xf2, 0x5e, 0xb7, 0x91, 0xed, - 0xb5, 0xf0, 0xf8, 0x0e, 0x36, 0x01, 0x35, 0x59, 0x4c, 0xd8, 0x64, 0x4c, 0x36, 0x15, 0x57, 0x6b, - 0x50, 0x61, 0x87, 0x3d, 0x5e, 0x15, 0x30, 0x6e, 0x37, 0x13, 0x55, 0x03, 0xe5, 0x03, 0xf9, 0x9f, - 0xb1, 0x06, 0x73, 0x99, 0x5e, 0x24, 0x1b, 0x29, 0x5d, 0x68, 0x19, 0x5d, 0xd8, 0xbc, 0xd2, 0xee, - 0x2e, 0x61, 0x06, 0xd4, 0x6a, 0x6d, 0x9f, 0x4f, 0xd5, 0xfc, 0xd7, 0x35, 0x5e, 0xfd, 0x96, 0x1a, - 0xe5, 0x1c, 0x6e, 0xbd, 0x93, 0xe7, 0xf6, 0xdc, 0xff, 0x9d, 0x58, 0x37, 0xff, 0xf7, 0xa2, 0xc0, - 0x7c, 0xe3, 0x66, 0xf3, 0x3c, 0x0b, 0xcc, 0x3f, 0x0e, 0x28, 0x08, 0xc9, 0xa1, 0xe3, 0xf7, 0xa3, - 0xd4, 0x2f, 0x23, 0x08, 0x5e, 0x74, 0x85, 0x89, 0x7f, 0x17, 0xe1, 0x3a, 0xd4, 0x63, 0x6a, 0xd1, - 0x99, 0x78, 0x58, 0x37, 0xad, 0xa0, 0x8f, 0x52, 0x55, 0xeb, 0x53, 0xc3, 0x55, 0xeb, 0xa5, 0x58, - 0x72, 0xe3, 0xfb, 0xa2, 0xca, 0x96, 0x0b, 0x77, 0xd6, 0x7a, 0x6e, 0x40, 0x29, 0xea, 0xdb, 0x36, - 0x91, 0xf5, 0x22, 0x65, 0x53, 0x7d, 0x9e, 0x8b, 0xb0, 0xc6, 0x26, 0x2c, 0xde, 0x25, 0x54, 0x45, - 0x79, 0x7c, 0x01, 0x3e, 0xfd, 0x7c, 0x19, 0xdf, 0xd4, 0x60, 0x69, 0xa4, 0x9b, 0xb3, 0xd6, 0xcc, + 0x11, 0xca, 0x31, 0x56, 0xd8, 0x76, 0xa9, 0x23, 0x51, 0x1f, 0x81, 0xba, 0x8b, 0x23, 0x7e, 0x6c, + 0xf5, 0x3a, 0x3c, 0xa1, 0x26, 0x8c, 0xb9, 0xc6, 0xa0, 0x1b, 0x1c, 0xc8, 0x73, 0x03, 0x4b, 0x71, + 0xe0, 0x46, 0x7d, 0x2b, 0xd5, 0x42, 0x5a, 0xf3, 0xbc, 0x42, 0xb7, 0xfc, 0xed, 0xb8, 0xa1, 0xf1, + 0x39, 0x21, 0x58, 0x31, 0xbd, 0x13, 0x0e, 0x71, 0x63, 0x7f, 0xa2, 0xc0, 0xf8, 0x56, 0x1e, 0xca, + 0xac, 0x39, 0xcf, 0x48, 0x3e, 0xcb, 0xb2, 0xa4, 0x32, 0x24, 0xf9, 0x6c, 0x86, 0xe4, 0x89, 0x6b, + 0x32, 0x5a, 0xbb, 0x78, 0x9a, 0x9f, 0xc4, 0x48, 0xa7, 0x3b, 0x4b, 0xc3, 0xe9, 0xce, 0xd3, 0xe6, + 0x25, 0x87, 0x72, 0x8e, 0x95, 0xd1, 0x1f, 0x98, 0xb9, 0x0a, 0xd5, 0xf8, 0x91, 0x30, 0x15, 0x59, + 0xc9, 0x82, 0x09, 0x0a, 0xd4, 0x8a, 0xc6, 0x2c, 0x6e, 0xf5, 0xe9, 0x16, 0xb7, 0x76, 0xc2, 0xe2, + 0x7e, 0x55, 0x13, 0xcb, 0xc3, 0x0f, 0x3f, 0xea, 0xc4, 0xa1, 0x8d, 0xb9, 0x0b, 0xe3, 0x77, 0xf5, + 0xe2, 0xc4, 0xb1, 0x0a, 0x53, 0xdc, 0x6b, 0xaa, 0x4b, 0x79, 0x94, 0x21, 0xe4, 0x06, 0x68, 0x4a, + 0x0a, 0x46, 0x2b, 0x7f, 0x67, 0x21, 0x3f, 0x86, 0x96, 0x2f, 0x8f, 0xfa, 0xed, 0x05, 0xe3, 0x75, + 0x28, 0xc9, 0x97, 0x19, 0x7c, 0xc5, 0x8e, 0x3d, 0xa9, 0x61, 0xec, 0x5f, 0xb4, 0x08, 0x53, 0x11, + 0x7f, 0xa5, 0x2c, 0xf5, 0x42, 0x7e, 0x19, 0x6f, 0xf1, 0x8c, 0x2d, 0xbf, 0x1e, 0xce, 0x56, 0x24, + 0x68, 0x8f, 0xaf, 0xc7, 0xc9, 0x65, 0xea, 0x71, 0xfe, 0x42, 0x03, 0x10, 0x3b, 0x0a, 0x1f, 0xfa, + 0xc4, 0xdb, 0xbd, 0x25, 0x28, 0x05, 0x84, 0x84, 0x0c, 0x25, 0xd9, 0x60, 0x9f, 0x5b, 0xed, 0xf8, + 0x72, 0x2e, 0x9f, 0xba, 0x9c, 0x1b, 0xbe, 0x0a, 0x2c, 0x9c, 0xf2, 0x2a, 0xf0, 0x35, 0x79, 0x9e, + 0x64, 0x33, 0x24, 0x32, 0xc5, 0x9b, 0xc8, 0x8d, 0x05, 0xf3, 0x4d, 0x86, 0x11, 0x67, 0x4c, 0xfe, + 0xaf, 0xb1, 0x05, 0x95, 0x18, 0x3e, 0x7a, 0x0f, 0xa5, 0x8d, 0xbf, 0x87, 0xe2, 0x0f, 0x3e, 0x68, + 0x22, 0x50, 0xbc, 0x4f, 0x5a, 0x91, 0xd1, 0x04, 0x24, 0x0a, 0x68, 0xb8, 0x48, 0xd4, 0x65, 0xcf, + 0x2b, 0x49, 0x89, 0x80, 0x78, 0xc0, 0x99, 0x84, 0xa9, 0x89, 0xec, 0xe2, 0x3a, 0x01, 0x54, 0x87, + 0x5c, 0xdc, 0x71, 0x8e, 0x46, 0xc6, 0x17, 0x60, 0x2e, 0xd3, 0xa9, 0xbc, 0xd7, 0x6d, 0x64, 0x7b, + 0x2d, 0x3c, 0xbe, 0x83, 0x4d, 0x40, 0x4d, 0x16, 0x13, 0x36, 0x19, 0x93, 0x4d, 0xc5, 0xd5, 0x1a, + 0x54, 0xd8, 0x61, 0x8f, 0x57, 0x05, 0x8c, 0xdb, 0xcd, 0x44, 0xd5, 0x40, 0xf9, 0x40, 0xfe, 0x67, + 0xac, 0xc1, 0x5c, 0xa6, 0x17, 0xc9, 0x46, 0x4a, 0x16, 0x5a, 0x46, 0x16, 0x36, 0xaf, 0xb4, 0xbb, + 0x4b, 0x98, 0x02, 0xb5, 0x5a, 0xdb, 0xe7, 0x53, 0x35, 0xff, 0x35, 0x8d, 0x57, 0xbf, 0xa5, 0x46, + 0x39, 0x87, 0x5b, 0xef, 0xe4, 0xb9, 0x3d, 0xf7, 0x7f, 0x27, 0xd6, 0xcd, 0xff, 0xbd, 0x28, 0x30, + 0xdf, 0xb8, 0xd9, 0x3c, 0xcf, 0x02, 0xf3, 0x8f, 0x03, 0x0a, 0x42, 0x72, 0xe8, 0xf8, 0xfd, 0x28, + 0xf5, 0xcb, 0x08, 0x82, 0x17, 0x5d, 0x61, 0xe2, 0xdf, 0x45, 0xb8, 0x0e, 0xf5, 0x98, 0x5a, 0x74, + 0x26, 0x1e, 0xd6, 0x4d, 0x2b, 0xe8, 0xa3, 0x54, 0xd5, 0xfa, 0xd4, 0x70, 0xd5, 0x7a, 0x29, 0x9e, + 0xb9, 0xf1, 0x3d, 0x51, 0x65, 0xcb, 0x27, 0x77, 0xd6, 0x72, 0x6e, 0x40, 0x29, 0xea, 0xdb, 0x36, + 0x91, 0xf5, 0x22, 0x65, 0x53, 0x7d, 0x9e, 0xcb, 0x64, 0x8d, 0x4d, 0x58, 0xbc, 0x4b, 0xa8, 0x8a, + 0xf2, 0xb8, 0x01, 0x3e, 0xfd, 0x7a, 0x19, 0xdf, 0xd0, 0x60, 0x69, 0xa4, 0x9b, 0xb3, 0x96, 0xcc, 0x27, 0x98, 0xf3, 0xa5, 0x7c, 0x0b, 0xcc, 0x9f, 0x98, 0x54, 0x57, 0x64, 0xc6, 0x5d, 0xb8, 0x98, - 0xe2, 0xea, 0x9e, 0xc3, 0x4e, 0x84, 0x93, 0x54, 0xd5, 0x18, 0xdf, 0xd2, 0x60, 0x79, 0x5c, 0x4f, - 0x3f, 0x79, 0x11, 0xff, 0x52, 0xd4, 0x2d, 0x6f, 0xf8, 0xf2, 0x34, 0xe0, 0x87, 0x13, 0x16, 0xa1, - 0xda, 0x7e, 0x10, 0x8a, 0xbb, 0x69, 0xc1, 0x51, 0x99, 0x01, 0xf8, 0x95, 0x34, 0x3f, 0x17, 0x06, - 0xa1, 0x4a, 0xbe, 0x59, 0x21, 0x79, 0x5f, 0x7a, 0x9e, 0x3a, 0x83, 0x27, 0x2f, 0xa7, 0x52, 0xd5, - 0x57, 0x85, 0x27, 0x55, 0x04, 0x23, 0x99, 0x71, 0x14, 0x46, 0x29, 0xd2, 0x8b, 0x7d, 0x5e, 0xf7, - 0x9c, 0x11, 0xe5, 0xac, 0x15, 0x8c, 0x52, 0x89, 0x4e, 0x35, 0xec, 0x77, 0xc4, 0x7b, 0x10, 0xbe, - 0xb7, 0x44, 0xfd, 0xde, 0x24, 0xfa, 0xfb, 0x34, 0x54, 0xb0, 0xdb, 0xf1, 0x43, 0x87, 0x76, 0x7b, - 0x7c, 0xc0, 0xfa, 0xfa, 0x72, 0x42, 0x2d, 0x3b, 0xbe, 0xa9, 0x28, 0xcc, 0x84, 0xf8, 0x69, 0x0a, - 0xd6, 0xfe, 0x58, 0xd4, 0x6c, 0x27, 0x7c, 0x9e, 0xb5, 0x72, 0x96, 0xa1, 0x6c, 0xcb, 0xce, 0xe3, - 0x33, 0x8b, 0xfc, 0x66, 0x16, 0x22, 0x52, 0xb0, 0x07, 0x87, 0xf1, 0xcf, 0x6d, 0x70, 0xc0, 0xfd, - 0x43, 0x1e, 0x7e, 0x0a, 0xa4, 0xc8, 0x5e, 0x8b, 0x18, 0x19, 0x38, 0x48, 0xa4, 0xaf, 0xbf, 0x9b, - 0x87, 0xda, 0x86, 0xdf, 0x0b, 0xb0, 0x4d, 0x05, 0x03, 0xef, 0xc1, 0x02, 0x09, 0x43, 0xcb, 0xf1, - 0x0e, 0xb1, 0xeb, 0xb4, 0xad, 0x6c, 0xc4, 0x55, 0x5d, 0xff, 0x48, 0xfa, 0x6e, 0x36, 0x6e, 0xb5, - 0x25, 0xa8, 0x9b, 0x32, 0x1a, 0xbb, 0x77, 0xc1, 0x44, 0x24, 0x1c, 0x86, 0x22, 0x17, 0x2e, 0xb3, - 0xae, 0x03, 0x59, 0x23, 0x6a, 0xc9, 0x33, 0x79, 0xec, 0x30, 0x45, 0xa2, 0x6b, 0x75, 0xec, 0x08, - 0xaa, 0xb0, 0xb4, 0xc5, 0xcf, 0xe9, 0xd2, 0x95, 0xde, 0xbb, 0x60, 0x36, 0x48, 0x38, 0x1e, 0x87, - 0x2c, 0x58, 0x62, 0xa3, 0xd9, 0xa2, 0x13, 0xcb, 0xf1, 0xac, 0x20, 0xf4, 0x3b, 0x21, 0x89, 0x22, - 0x99, 0x16, 0x7b, 0x69, 0xec, 0x40, 0xf2, 0xff, 0x2d, 0x6f, 0x57, 0x52, 0xdf, 0xbb, 0x60, 0xce, - 0x93, 0x70, 0x14, 0x8e, 0xf6, 0x61, 0x99, 0x0d, 0x40, 0x7d, 0xdf, 0xea, 0x61, 0x6f, 0x60, 0x05, - 0xc4, 0x6b, 0x3b, 0x5e, 0xc7, 0xa2, 0x38, 0x3a, 0x88, 0x64, 0x38, 0x78, 0x63, 0xec, 0x18, 0x2d, - 0xdf, 0x7f, 0x80, 0xbd, 0xc1, 0xae, 0x68, 0xd0, 0x62, 0xf4, 0xf7, 0x2e, 0x98, 0x8b, 0x24, 0x1c, - 0x87, 0xb9, 0x55, 0x92, 0x26, 0x61, 0x5c, 0x81, 0x4b, 0x27, 0x28, 0xdd, 0x78, 0x11, 0xae, 0x3d, - 0x51, 0x63, 0xc6, 0x55, 0xb8, 0x72, 0xa2, 0xb4, 0xc6, 0x35, 0xb8, 0xfa, 0x04, 0x56, 0x8d, 0xaf, - 0x8a, 0xdf, 0x35, 0x61, 0x34, 0x6a, 0x49, 0x9e, 0x18, 0x9b, 0xaf, 0xc2, 0xec, 0xd0, 0x9c, 0x3b, - 0xea, 0x9e, 0x65, 0x26, 0x48, 0x73, 0xb9, 0xd5, 0xe6, 0xc9, 0x17, 0xbf, 0x93, 0x25, 0x15, 0x77, - 0x2e, 0x75, 0x09, 0x97, 0x94, 0xc6, 0x9f, 0x8b, 0x5b, 0x59, 0xc1, 0x85, 0x5c, 0x70, 0x1f, 0xcb, - 0xe6, 0x3e, 0x16, 0xc6, 0x6a, 0x5f, 0x2d, 0xaa, 0x17, 0x61, 0x9a, 0x9d, 0xc9, 0x43, 0xd2, 0xc3, - 0x8e, 0xe7, 0x78, 0x1d, 0x59, 0x1d, 0xce, 0x0e, 0xea, 0xa6, 0x82, 0xa1, 0x35, 0x5e, 0xa8, 0xc0, - 0xda, 0x92, 0xf4, 0x62, 0x10, 0x5e, 0x6a, 0x36, 0x46, 0x35, 0x53, 0xb2, 0x26, 0xf4, 0xd9, 0x57, - 0xa4, 0x33, 0x31, 0xe2, 0x36, 0x3f, 0x9a, 0xac, 0xbe, 0x0d, 0x17, 0x1f, 0xfb, 0xb3, 0x83, 0x68, - 0x1e, 0xf4, 0xe4, 0xeb, 0xa1, 0x1f, 0xf6, 0xb0, 0xab, 0x5f, 0x40, 0x4b, 0x30, 0x97, 0x40, 0xef, - 0xf8, 0xa1, 0xcd, 0x2b, 0xc6, 0x75, 0x6d, 0xd5, 0x85, 0xcb, 0x27, 0xfd, 0xce, 0x20, 0xeb, 0x4e, - 0xd6, 0x63, 0xf7, 0x5d, 0x1a, 0x77, 0xb7, 0x02, 0x97, 0x13, 0xe8, 0xf6, 0xc8, 0xcf, 0x05, 0x8a, - 0x9a, 0x80, 0x84, 0x42, 0x5c, 0xf5, 0xea, 0xb9, 0xd5, 0x97, 0x01, 0x92, 0x02, 0x30, 0x34, 0x05, - 0xb9, 0x47, 0xaf, 0xe9, 0x17, 0x50, 0x05, 0x8a, 0x8f, 0x5e, 0x6b, 0xb5, 0xb6, 0x75, 0x8d, 0x83, - 0xd6, 0xf5, 0xdc, 0xea, 0xc7, 0x00, 0x92, 0x42, 0x45, 0x04, 0x30, 0x15, 0x0f, 0x5d, 0x82, 0xfc, - 0xb6, 0x7f, 0xa4, 0x6b, 0xa8, 0x0c, 0x85, 0x7b, 0x4e, 0xa7, 0xab, 0xe7, 0x56, 0x5f, 0x85, 0x7a, - 0xb6, 0x3a, 0x91, 0x75, 0xd3, 0xdc, 0xd2, 0x2f, 0xb0, 0xbf, 0xe6, 0x86, 0xae, 0xf1, 0xba, 0x83, - 0x0d, 0x51, 0x77, 0xd0, 0xd4, 0x73, 0xab, 0x8f, 0xa0, 0x9a, 0xaa, 0x74, 0x63, 0xbc, 0x3e, 0xf4, - 0xe9, 0x4d, 0xd7, 0xf5, 0x8f, 0x48, 0x7b, 0xc7, 0x63, 0x60, 0xa1, 0xb2, 0x18, 0x74, 0xd3, 0xed, - 0xf9, 0x11, 0xe5, 0x08, 0x0d, 0x35, 0x60, 0x3e, 0x85, 0xe0, 0x55, 0x0a, 0x1c, 0x93, 0x5b, 0xb5, - 0x21, 0xb7, 0x13, 0x30, 0x0e, 0x77, 0xfb, 0x54, 0xb0, 0xba, 0x49, 0x5c, 0xc1, 0x2a, 0x57, 0x77, - 0x0e, 0xd5, 0xa0, 0xac, 0x72, 0x3b, 0x7a, 0x9e, 0xc9, 0xb5, 0xe5, 0x45, 0x24, 0xa4, 0x7a, 0x01, - 0xcd, 0xc1, 0xcc, 0xd0, 0x44, 0xe8, 0x45, 0x84, 0xa0, 0xce, 0xb9, 0x56, 0xcb, 0x30, 0xd2, 0xa7, - 0x56, 0xd7, 0xa0, 0x12, 0xa7, 0xba, 0x58, 0xcf, 0x0f, 0x7d, 0x8f, 0x08, 0x25, 0x72, 0x12, 0x5d, - 0x63, 0x83, 0xa8, 0x06, 0x42, 0x3b, 0xd9, 0x1f, 0x92, 0x65, 0x7c, 0xed, 0xec, 0xef, 0xeb, 0x17, - 0x58, 0xeb, 0x3b, 0x98, 0x37, 0x01, 0x98, 0x6a, 0xd2, 0x90, 0x4d, 0x5d, 0x6e, 0xf5, 0x77, 0x34, - 0x98, 0x92, 0xbf, 0x26, 0xcb, 0x7b, 0x12, 0xff, 0xeb, 0x17, 0xd0, 0x02, 0xcc, 0xb6, 0x5a, 0xdb, - 0xa2, 0x92, 0x21, 0x96, 0x82, 0xeb, 0x83, 0xa7, 0x6d, 0xe5, 0x90, 0x31, 0x26, 0xc7, 0x1a, 0x3c, - 0x88, 0x4b, 0x0f, 0x9a, 0xbb, 0xfd, 0xa8, 0x4b, 0xda, 0x7a, 0x9e, 0x59, 0x4f, 0xdc, 0xcf, 0x98, - 0x5f, 0x04, 0xd4, 0x0b, 0xe8, 0x22, 0x2c, 0xa4, 0xbb, 0xdc, 0xf4, 0x1f, 0xfa, 0xb4, 0xeb, 0x78, - 0x1d, 0xbd, 0xb8, 0x7a, 0x1d, 0x4a, 0xb7, 0x8f, 0x69, 0x88, 0x77, 0x02, 0x21, 0xbc, 0x1f, 0xe8, - 0x17, 0x90, 0x0e, 0x35, 0x76, 0xd0, 0xdd, 0x71, 0xdb, 0x3c, 0x06, 0xd6, 0xb5, 0x55, 0x03, 0x66, - 0x47, 0x76, 0x69, 0x66, 0x06, 0x1b, 0xa1, 0xfd, 0xc9, 0x37, 0xac, 0x9f, 0xf3, 0x43, 0xfd, 0xc2, - 0xad, 0x97, 0xfe, 0xee, 0xf7, 0xcb, 0xda, 0xf7, 0x3f, 0x7c, 0x41, 0xfb, 0xd1, 0x87, 0x2f, 0x68, - 0xff, 0xf4, 0xe1, 0x0b, 0xda, 0x6f, 0xff, 0xcb, 0x0b, 0x17, 0x40, 0xf7, 0xc3, 0xce, 0x1a, 0x75, - 0x0e, 0x0e, 0xd7, 0x0e, 0x0e, 0xf9, 0xef, 0x9a, 0xef, 0x4d, 0xf1, 0x3f, 0xaf, 0xff, 0x6f, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xc5, 0x41, 0x55, 0x5e, 0x5b, 0x5d, 0x00, 0x00, + 0xe2, 0xea, 0x9e, 0xc3, 0x4e, 0x84, 0x93, 0x54, 0xd5, 0x18, 0xdf, 0xd4, 0x60, 0x79, 0x5c, 0x4f, + 0x3f, 0xfe, 0x29, 0xfe, 0xa5, 0xa8, 0x5b, 0xde, 0xf0, 0xe5, 0x69, 0xc0, 0x0f, 0x27, 0x2c, 0x42, + 0xb5, 0xfd, 0x20, 0x14, 0x77, 0xd3, 0x82, 0xa3, 0x32, 0x03, 0xf0, 0x2b, 0x69, 0x7e, 0x2e, 0x0c, + 0x42, 0x95, 0x7c, 0xb3, 0x42, 0xf2, 0xbe, 0xf4, 0x3c, 0x75, 0x06, 0x4f, 0x5e, 0x4e, 0xa5, 0xaa, + 0xaf, 0x0a, 0x4f, 0xaa, 0x08, 0x46, 0x32, 0xe3, 0x28, 0x94, 0x52, 0xa4, 0x17, 0xfb, 0xbc, 0xee, + 0x39, 0x33, 0x95, 0xb3, 0x16, 0x30, 0x4a, 0x25, 0x3a, 0xd5, 0xb0, 0xdf, 0x16, 0xef, 0x41, 0xf8, + 0xde, 0x12, 0xf5, 0x7b, 0x93, 0xc8, 0xef, 0xd3, 0x50, 0xc1, 0x6e, 0xc7, 0x0f, 0x1d, 0xda, 0xed, + 0xf1, 0x01, 0xeb, 0xeb, 0xcb, 0x09, 0xb5, 0xec, 0xf8, 0xa6, 0xa2, 0x30, 0x13, 0xe2, 0xa7, 0x29, + 0x58, 0xfb, 0x63, 0x51, 0xb3, 0x9d, 0xf0, 0x79, 0xd6, 0xc2, 0x59, 0x86, 0xb2, 0x2d, 0x3b, 0x8f, + 0xcf, 0x2c, 0xf2, 0x9b, 0x69, 0x88, 0x48, 0xc1, 0x1e, 0x1c, 0xc6, 0x3f, 0xb7, 0xc1, 0x01, 0xf7, + 0x0f, 0x79, 0xf8, 0x29, 0x90, 0x22, 0x7b, 0x2d, 0x62, 0x64, 0xe0, 0x20, 0x91, 0xbe, 0xfe, 0x4e, + 0x1e, 0x6a, 0x1b, 0x7e, 0x2f, 0xc0, 0x36, 0x15, 0x0c, 0xbc, 0x07, 0x0b, 0x24, 0x0c, 0x2d, 0xc7, + 0x3b, 0xc4, 0xae, 0xd3, 0xb6, 0xb2, 0x11, 0x57, 0x75, 0xfd, 0x23, 0xe9, 0xbb, 0xd9, 0xb8, 0xd5, + 0x96, 0xa0, 0x6e, 0xca, 0x68, 0xec, 0xde, 0x05, 0x13, 0x91, 0x70, 0x18, 0x8a, 0x5c, 0xb8, 0xcc, + 0xba, 0x0e, 0x64, 0x8d, 0xa8, 0x25, 0xcf, 0xe4, 0xb1, 0xc3, 0x14, 0x89, 0xae, 0xd5, 0xb1, 0x23, + 0xa8, 0xc2, 0xd2, 0x16, 0x3f, 0xa7, 0x4b, 0x57, 0x7a, 0xef, 0x82, 0xd9, 0x20, 0xe1, 0x78, 0x1c, + 0xb2, 0x60, 0x89, 0x8d, 0x66, 0x8b, 0x4e, 0x2c, 0xc7, 0xb3, 0x82, 0xd0, 0xef, 0x84, 0x24, 0x8a, + 0x64, 0x5a, 0xec, 0xa5, 0xb1, 0x03, 0xc9, 0xff, 0xb7, 0xbc, 0x5d, 0x49, 0x7d, 0xef, 0x82, 0x39, + 0x4f, 0xc2, 0x51, 0x38, 0xda, 0x87, 0x65, 0x36, 0x00, 0xf5, 0x7d, 0xab, 0x87, 0xbd, 0x81, 0x15, + 0x10, 0xaf, 0xed, 0x78, 0x1d, 0x8b, 0xe2, 0xe8, 0x20, 0x92, 0xe1, 0xe0, 0x8d, 0xb1, 0x63, 0xb4, + 0x7c, 0xff, 0x01, 0xf6, 0x06, 0xbb, 0xa2, 0x41, 0x8b, 0xd1, 0xdf, 0xbb, 0x60, 0x2e, 0x92, 0x70, + 0x1c, 0xe6, 0x56, 0x49, 0xaa, 0x84, 0x71, 0x05, 0x2e, 0x9d, 0x20, 0x74, 0xe3, 0x45, 0xb8, 0xf6, + 0x44, 0x89, 0x19, 0x57, 0xe1, 0xca, 0x89, 0xb3, 0x35, 0xae, 0xc1, 0xd5, 0x27, 0xb0, 0x6a, 0xfc, + 0x9e, 0xf8, 0x5d, 0x13, 0x46, 0xa3, 0x4c, 0xf2, 0xc4, 0xd8, 0x7c, 0x15, 0x66, 0x87, 0xd6, 0xdc, + 0x51, 0xf7, 0x2c, 0x33, 0x41, 0x9a, 0xcb, 0xad, 0x36, 0x4f, 0xbe, 0xf8, 0x9d, 0x2c, 0xa9, 0xb8, + 0x73, 0xa9, 0x4b, 0xb8, 0xa2, 0x1c, 0xaa, 0xb1, 0x29, 0x0f, 0xd7, 0xd8, 0x18, 0x7f, 0x2e, 0xae, + 0x6d, 0x05, 0x9b, 0xd2, 0x22, 0x3f, 0x96, 0x4d, 0x8e, 0x2c, 0x8c, 0x5d, 0x1e, 0x65, 0x75, 0x2f, + 0xc2, 0x34, 0x3b, 0xb4, 0x87, 0xa4, 0x87, 0x1d, 0xcf, 0xf1, 0x3a, 0xb2, 0x7c, 0x9c, 0x9d, 0xe4, + 0x4d, 0x05, 0x43, 0x6b, 0xbc, 0x92, 0x81, 0xb5, 0x25, 0x69, 0x6b, 0x11, 0x6e, 0x6c, 0x36, 0x46, + 0x35, 0x53, 0xc2, 0x48, 0xe8, 0xb3, 0xcf, 0x4c, 0x67, 0x62, 0xc4, 0x6d, 0x7e, 0x76, 0x59, 0x7d, + 0x1b, 0x2e, 0x3e, 0xf6, 0x77, 0x09, 0xd1, 0x3c, 0xe8, 0xc9, 0xd7, 0x43, 0x3f, 0xec, 0x61, 0x57, + 0xbf, 0x80, 0x96, 0x60, 0x2e, 0x81, 0xde, 0xf1, 0x43, 0x9b, 0x97, 0x94, 0xeb, 0xda, 0xaa, 0x0b, + 0x97, 0x4f, 0xfa, 0x21, 0x42, 0xd6, 0x9d, 0x2c, 0xd8, 0xee, 0xbb, 0x34, 0xee, 0x6e, 0x05, 0x2e, + 0x27, 0xd0, 0xed, 0x91, 0xdf, 0x13, 0x14, 0x45, 0x03, 0x09, 0x85, 0xb8, 0x0b, 0xd6, 0x73, 0xab, + 0x2f, 0x03, 0x24, 0x15, 0x62, 0x68, 0x0a, 0x72, 0x8f, 0x5e, 0xd3, 0x2f, 0xa0, 0x0a, 0x14, 0x1f, + 0xbd, 0xd6, 0x6a, 0x6d, 0xeb, 0x1a, 0x07, 0xad, 0xeb, 0xb9, 0xd5, 0x8f, 0x01, 0x24, 0x95, 0x8c, + 0x08, 0x60, 0x2a, 0x1e, 0xba, 0x04, 0xf9, 0x6d, 0xff, 0x48, 0xd7, 0x50, 0x19, 0x0a, 0xf7, 0x9c, + 0x4e, 0x57, 0xcf, 0xad, 0xbe, 0x0a, 0xf5, 0x6c, 0xf9, 0x22, 0xeb, 0xa6, 0xb9, 0xa5, 0x5f, 0x60, + 0x7f, 0xcd, 0x0d, 0x5d, 0xe3, 0x85, 0x09, 0x1b, 0xa2, 0x30, 0xa1, 0xa9, 0xe7, 0x56, 0x1f, 0x41, + 0x35, 0x55, 0x0a, 0xc7, 0x78, 0x7d, 0xe8, 0xd3, 0x9b, 0xae, 0xeb, 0x1f, 0x91, 0xf6, 0x8e, 0xc7, + 0xc0, 0x42, 0x64, 0x31, 0xe8, 0xa6, 0xdb, 0xf3, 0x23, 0xca, 0x11, 0x1a, 0x6a, 0xc0, 0x7c, 0x0a, + 0xc1, 0xcb, 0x18, 0x38, 0x26, 0xb7, 0x6a, 0x43, 0x6e, 0x27, 0x60, 0x1c, 0xee, 0xf6, 0xa9, 0x60, + 0x75, 0x93, 0xb8, 0x82, 0x55, 0x2e, 0xee, 0x1c, 0xaa, 0x41, 0x59, 0x25, 0x7f, 0xf4, 0x3c, 0x9b, + 0xd7, 0x96, 0x17, 0x91, 0x90, 0xea, 0x05, 0x34, 0x07, 0x33, 0x43, 0x0b, 0xa1, 0x17, 0x11, 0x82, + 0x3a, 0xe7, 0x5a, 0xd9, 0x69, 0xa4, 0x4f, 0xad, 0xae, 0x41, 0x25, 0xce, 0x85, 0xb1, 0x9e, 0x1f, + 0xfa, 0x1e, 0x11, 0x42, 0xe4, 0x24, 0xba, 0xc6, 0x06, 0x51, 0x0d, 0x84, 0x74, 0xb2, 0xbf, 0x34, + 0xcb, 0xf8, 0xda, 0xd9, 0xdf, 0xd7, 0x2f, 0xb0, 0xd6, 0x77, 0x30, 0x6f, 0x02, 0x30, 0xd5, 0xa4, + 0x21, 0x5b, 0xba, 0xdc, 0xea, 0x6f, 0x6b, 0x30, 0x25, 0x7f, 0x6e, 0x96, 0xf7, 0x24, 0xfe, 0xd7, + 0x2f, 0xa0, 0x05, 0x98, 0x6d, 0xb5, 0xb6, 0x45, 0xa9, 0x43, 0x3c, 0x0b, 0x2e, 0x0f, 0x9e, 0xd7, + 0x95, 0x43, 0xc6, 0x98, 0x1c, 0x6b, 0xf0, 0x20, 0xae, 0x4d, 0x68, 0xee, 0xf6, 0xa3, 0x2e, 0x69, + 0xeb, 0x79, 0xa6, 0x3d, 0x71, 0x3f, 0x63, 0x7e, 0x32, 0x50, 0x2f, 0xa0, 0x8b, 0xb0, 0x90, 0xee, + 0x72, 0xd3, 0x7f, 0xe8, 0xd3, 0xae, 0xe3, 0x75, 0xf4, 0xe2, 0xea, 0x75, 0x28, 0xdd, 0x3e, 0xa6, + 0x21, 0xde, 0x09, 0xc4, 0xe4, 0xfd, 0x40, 0xbf, 0x80, 0x74, 0xa8, 0xb1, 0x93, 0xf0, 0x8e, 0xdb, + 0xe6, 0x41, 0xb2, 0xae, 0xad, 0x1a, 0x30, 0x3b, 0xb2, 0x8d, 0x33, 0x35, 0xd8, 0x08, 0xed, 0x4f, + 0xbe, 0x61, 0xfd, 0x8c, 0x1f, 0xea, 0x17, 0x6e, 0xbd, 0xf4, 0x77, 0xbf, 0x5f, 0xd6, 0xbe, 0xf7, + 0xe1, 0x0b, 0xda, 0x0f, 0x3f, 0x7c, 0x41, 0xfb, 0xa7, 0x0f, 0x5f, 0xd0, 0x7e, 0xeb, 0x5f, 0x5e, + 0xb8, 0x00, 0xba, 0x1f, 0x76, 0xd6, 0xa8, 0x73, 0x70, 0xb8, 0x76, 0x70, 0xc8, 0x7f, 0xf8, 0x7c, + 0x6f, 0x8a, 0xff, 0x79, 0xfd, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xcd, 0x39, 0x27, 0xe8, 0x7c, + 0x5d, 0x00, 0x00, } func (m *GetRequest) Marshal() (dAtA []byte, err error) { @@ -18216,6 +18226,11 @@ func (m *CompactRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.KeyspaceId != 0 { + i = encodeVarintKvrpcpb(dAtA, i, uint64(m.KeyspaceId)) + i-- + dAtA[i] = 0x40 + } if m.LogicalTableId != 0 { i = encodeVarintKvrpcpb(dAtA, i, uint64(m.LogicalTableId)) i-- @@ -21758,6 +21773,9 @@ func (m *CompactRequest) Size() (n int) { if m.LogicalTableId != 0 { n += 1 + sovKvrpcpb(uint64(m.LogicalTableId)) } + if m.KeyspaceId != 0 { + n += 1 + sovKvrpcpb(uint64(m.KeyspaceId)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -42680,6 +42698,25 @@ func (m *CompactRequest) Unmarshal(dAtA []byte) error { break } } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KeyspaceId", wireType) + } + m.KeyspaceId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.KeyspaceId |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipKvrpcpb(dAtA[iNdEx:]) diff --git a/proto/kvrpcpb.proto b/proto/kvrpcpb.proto index 0d23456..25c6d07 100644 --- a/proto/kvrpcpb.proto +++ b/proto/kvrpcpb.proto @@ -1447,6 +1447,9 @@ message CompactRequest { // TODO: this is information that TiKV doesn't need to know. // See https://github.com/pingcap/kvproto/issues/912 int64 logical_table_id = 3; + + // Keyspace of the table located in. + uint32 keyspace_id = 8; } message CompactResponse { diff --git a/scripts/proto.lock b/scripts/proto.lock index de51d81..93e8719 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -10262,6 +10262,11 @@ "id": 3, "name": "logical_table_id", "type": "int64" + }, + { + "id": 8, + "name": "keyspace_id", + "type": "uint32" } ] }, -- Gitee From accad85ea8c17dc67dc685628848904e2680840e Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Sun, 12 Mar 2023 11:37:54 +0800 Subject: [PATCH 15/44] add api_version for mpp task meta (#1075) --- pkg/mpp/mpp.pb.go | 160 ++++++++++++++++++++++++++++----------------- proto/mpp.proto | 2 + scripts/proto.lock | 8 +++ 3 files changed, 110 insertions(+), 60 deletions(-) diff --git a/pkg/mpp/mpp.pb.go b/pkg/mpp/mpp.pb.go index fdf5f66..305e339 100644 --- a/pkg/mpp/mpp.pb.go +++ b/pkg/mpp/mpp.pb.go @@ -12,6 +12,7 @@ import ( _ "github.com/gogo/protobuf/gogoproto" proto "github.com/golang/protobuf/proto" coprocessor "github.com/pingcap/kvproto/pkg/coprocessor" + kvrpcpb "github.com/pingcap/kvproto/pkg/kvrpcpb" metapb "github.com/pingcap/kvproto/pkg/metapb" ) @@ -28,19 +29,20 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // TaskMeta contains meta of a mpp plan, including query's ts and task address. type TaskMeta struct { - StartTs uint64 `protobuf:"varint,1,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"` - TaskId int64 `protobuf:"varint,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` - PartitionId int64 `protobuf:"varint,3,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"` - Address string `protobuf:"bytes,4,opt,name=address,proto3" json:"address,omitempty"` - GatherId uint64 `protobuf:"varint,5,opt,name=gather_id,json=gatherId,proto3" json:"gather_id,omitempty"` - QueryTs uint64 `protobuf:"varint,6,opt,name=query_ts,json=queryTs,proto3" json:"query_ts,omitempty"` - LocalQueryId uint64 `protobuf:"varint,7,opt,name=local_query_id,json=localQueryId,proto3" json:"local_query_id,omitempty"` - ServerId uint64 `protobuf:"varint,8,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` - MppVersion int64 `protobuf:"varint,9,opt,name=mpp_version,json=mppVersion,proto3" json:"mpp_version,omitempty"` - KeyspaceId uint32 `protobuf:"varint,10,opt,name=keyspace_id,json=keyspaceId,proto3" json:"keyspace_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + StartTs uint64 `protobuf:"varint,1,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"` + TaskId int64 `protobuf:"varint,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` + PartitionId int64 `protobuf:"varint,3,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"` + Address string `protobuf:"bytes,4,opt,name=address,proto3" json:"address,omitempty"` + GatherId uint64 `protobuf:"varint,5,opt,name=gather_id,json=gatherId,proto3" json:"gather_id,omitempty"` + QueryTs uint64 `protobuf:"varint,6,opt,name=query_ts,json=queryTs,proto3" json:"query_ts,omitempty"` + LocalQueryId uint64 `protobuf:"varint,7,opt,name=local_query_id,json=localQueryId,proto3" json:"local_query_id,omitempty"` + ServerId uint64 `protobuf:"varint,8,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` + MppVersion int64 `protobuf:"varint,9,opt,name=mpp_version,json=mppVersion,proto3" json:"mpp_version,omitempty"` + KeyspaceId uint32 `protobuf:"varint,10,opt,name=keyspace_id,json=keyspaceId,proto3" json:"keyspace_id,omitempty"` + ApiVersion kvrpcpb.APIVersion `protobuf:"varint,16,opt,name=api_version,json=apiVersion,proto3,enum=kvrpcpb.APIVersion" json:"api_version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *TaskMeta) Reset() { *m = TaskMeta{} } @@ -146,6 +148,13 @@ func (m *TaskMeta) GetKeyspaceId() uint32 { return 0 } +func (m *TaskMeta) GetApiVersion() kvrpcpb.APIVersion { + if m != nil { + return m.ApiVersion + } + return kvrpcpb.APIVersion_V1 +} + type IsAliveRequest struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -705,53 +714,55 @@ func init() { func init() { proto.RegisterFile("mpp.proto", fileDescriptor_819623c7fa76fc55) } var fileDescriptor_819623c7fa76fc55 = []byte{ - // 724 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xcd, 0x6e, 0xdb, 0x38, - 0x10, 0x5e, 0x59, 0xfe, 0xd3, 0x58, 0xce, 0x26, 0xdc, 0x60, 0xe3, 0x64, 0x37, 0x5e, 0x47, 0xd8, - 0x83, 0x4f, 0x5e, 0x6c, 0x02, 0xec, 0x71, 0x81, 0xdd, 0x24, 0x07, 0x1d, 0x52, 0xb8, 0x84, 0x11, - 0xf4, 0x26, 0x30, 0x22, 0x6b, 0x0b, 0x96, 0x44, 0x86, 0xa4, 0x0d, 0xe4, 0xdc, 0x43, 0xdf, 0xa0, - 0xe8, 0xa3, 0xf4, 0x11, 0x7a, 0xec, 0x23, 0x14, 0xe9, 0x8b, 0x14, 0x24, 0x25, 0x37, 0x31, 0x1a, - 0xb4, 0x3d, 0x89, 0xdf, 0x37, 0xc3, 0x99, 0x8f, 0xf3, 0x23, 0x08, 0x0a, 0x21, 0x26, 0x42, 0x72, - 0xcd, 0x91, 0x5f, 0x08, 0x71, 0xb4, 0x3f, 0xe7, 0x73, 0x6e, 0xf1, 0x5f, 0xe6, 0xe4, 0x4c, 0x47, - 0x7b, 0xa9, 0xe1, 0x52, 0xa6, 0x14, 0x97, 0x15, 0x15, 0x16, 0x4c, 0x13, 0x71, 0xe3, 0x50, 0xf4, - 0xae, 0x01, 0xdd, 0x19, 0x51, 0xcb, 0x2b, 0xa6, 0x09, 0x3a, 0x84, 0xae, 0xd2, 0x44, 0xea, 0x44, - 0xab, 0x81, 0x37, 0xf2, 0xc6, 0x4d, 0xdc, 0xb1, 0x78, 0xa6, 0xd0, 0x01, 0x74, 0x34, 0x51, 0xcb, - 0x24, 0xa3, 0x83, 0xc6, 0xc8, 0x1b, 0xfb, 0xb8, 0x6d, 0x60, 0x4c, 0xd1, 0x09, 0x84, 0x82, 0x48, - 0x9d, 0xe9, 0x8c, 0x97, 0xc6, 0xea, 0x5b, 0x6b, 0x6f, 0xc3, 0xc5, 0x14, 0x0d, 0xa0, 0x43, 0x28, - 0x95, 0x4c, 0xa9, 0x41, 0x73, 0xe4, 0x8d, 0x03, 0x5c, 0x43, 0xf4, 0x1b, 0x04, 0x73, 0xa2, 0x17, - 0x4c, 0x9a, 0x9b, 0x2d, 0x9b, 0xb1, 0xeb, 0x88, 0x98, 0x1a, 0x35, 0xb7, 0x2b, 0x26, 0xef, 0x8c, - 0x9a, 0xb6, 0x53, 0x63, 0xf1, 0x4c, 0xa1, 0x3f, 0x61, 0x27, 0xe7, 0x29, 0xc9, 0x13, 0xe7, 0x90, - 0xd1, 0x41, 0xc7, 0x3a, 0x84, 0x96, 0x7d, 0x6e, 0xc8, 0x98, 0x9a, 0xe8, 0x8a, 0xc9, 0xb5, 0x8b, - 0xde, 0x75, 0xd1, 0x1d, 0x11, 0x53, 0xf4, 0x07, 0xf4, 0x0a, 0x21, 0x92, 0x35, 0x93, 0x2a, 0xe3, - 0xe5, 0x20, 0xb0, 0xb2, 0xa1, 0x10, 0xe2, 0xda, 0x31, 0xc6, 0x61, 0xc9, 0xee, 0x94, 0x20, 0x29, - 0x33, 0xf7, 0x61, 0xe4, 0x8d, 0xfb, 0x18, 0x6a, 0x2a, 0xa6, 0xd1, 0x2e, 0xec, 0xc4, 0xea, 0xbf, - 0x3c, 0x5b, 0x33, 0xcc, 0x6e, 0x57, 0x4c, 0xe9, 0x68, 0x0a, 0x3f, 0x6f, 0x18, 0x25, 0x78, 0xa9, - 0x18, 0xfa, 0x1d, 0x02, 0xb2, 0x26, 0x59, 0x4e, 0x6e, 0x72, 0x66, 0x6b, 0xda, 0xc5, 0x5f, 0x88, - 0x6d, 0x11, 0x8d, 0x6d, 0x11, 0xd1, 0xeb, 0x06, 0xfc, 0x72, 0x91, 0x29, 0x41, 0x74, 0xba, 0x30, - 0x6d, 0xaa, 0x32, 0xa1, 0x13, 0x68, 0x9a, 0x36, 0xda, 0x88, 0xbd, 0xd3, 0xfe, 0xc4, 0x0c, 0x43, - 0xdd, 0x46, 0x6c, 0x4d, 0xa6, 0x31, 0xac, 0x4c, 0x39, 0x65, 0x34, 0x11, 0x39, 0x71, 0xc1, 0x43, - 0xdc, 0xab, 0xb8, 0x69, 0x4e, 0x4a, 0xd3, 0x18, 0x9d, 0x15, 0x8c, 0xaf, 0x74, 0xd5, 0xb6, 0x1a, - 0xa2, 0xbf, 0xa1, 0x23, 0xd9, 0x3c, 0xe3, 0xa5, 0x69, 0x99, 0x3f, 0xee, 0x9d, 0x1e, 0x4c, 0x1e, - 0x4e, 0x12, 0xb6, 0xb6, 0xb8, 0x7c, 0xc9, 0x71, 0xed, 0x87, 0x8e, 0x01, 0x54, 0xba, 0x60, 0x05, - 0x31, 0xcf, 0xb1, 0xcd, 0xf4, 0x71, 0xe0, 0x98, 0x6b, 0x26, 0xd1, 0xbf, 0xd0, 0xd7, 0xe6, 0xcd, - 0x49, 0x1d, 0xb7, 0x6d, 0xe3, 0x1e, 0x3e, 0x8a, 0x3b, 0x33, 0x1e, 0x2e, 0xb8, 0xc2, 0xa1, 0x7e, - 0x80, 0xa2, 0x02, 0xf6, 0x1f, 0x17, 0xa2, 0x2a, 0xf0, 0x08, 0x5a, 0x4c, 0x4a, 0x2e, 0xab, 0x52, - 0x80, 0x2d, 0xc5, 0xa5, 0x61, 0xb0, 0x33, 0xa0, 0x33, 0xe8, 0x4b, 0xa6, 0xe5, 0xdd, 0x26, 0x73, - 0xc3, 0x66, 0xde, 0x99, 0x54, 0x8b, 0xe0, 0x32, 0xe0, 0xd0, 0x3a, 0xd5, 0xe9, 0x5e, 0xc0, 0xde, - 0x39, 0x29, 0x53, 0x96, 0xff, 0x60, 0xd5, 0x37, 0x72, 0x1a, 0x4f, 0xc8, 0x89, 0xfe, 0x01, 0xf4, - 0x30, 0xf2, 0xf7, 0x3e, 0x23, 0x7a, 0xe5, 0xc1, 0xf1, 0xa5, 0x32, 0x35, 0xc9, 0xd4, 0xe2, 0x6a, - 0x3a, 0x3d, 0xe7, 0x65, 0xc9, 0x52, 0xb3, 0x62, 0xb5, 0xbc, 0x09, 0xf4, 0x14, 0x2b, 0x29, 0x93, - 0xc9, 0xd3, 0x2a, 0xc1, 0x79, 0xd8, 0x75, 0x3f, 0x35, 0x85, 0x49, 0x59, 0xb6, 0xae, 0x6f, 0x34, - 0xbe, 0x76, 0x23, 0xac, 0x7d, 0x0c, 0x8a, 0xde, 0x78, 0xd0, 0xbf, 0x9a, 0x4e, 0x2f, 0x88, 0x26, - 0x53, 0x92, 0x2e, 0x99, 0x46, 0x08, 0x9a, 0x94, 0x54, 0xe9, 0x42, 0x6c, 0xcf, 0xdf, 0xae, 0x02, - 0xfa, 0x15, 0xda, 0xe9, 0x62, 0x55, 0x2e, 0xd5, 0xc0, 0x1f, 0xf9, 0xe3, 0x10, 0x57, 0xc8, 0x4e, - 0x91, 0x96, 0x8c, 0x14, 0x49, 0x46, 0xdd, 0xec, 0x35, 0x71, 0xe0, 0x98, 0x98, 0x2a, 0x33, 0xb1, - 0xf5, 0xb2, 0xb8, 0x09, 0xab, 0x61, 0xf4, 0x0c, 0x5a, 0x36, 0x81, 0xd1, 0x63, 0x26, 0xdc, 0xea, - 0x69, 0x61, 0x7b, 0x46, 0xbb, 0xe0, 0x17, 0x6a, 0x6e, 0xd5, 0x04, 0xd8, 0x1c, 0xb7, 0x37, 0xcf, - 0xdf, 0xde, 0xbc, 0xff, 0xa3, 0xf7, 0xf7, 0x43, 0xef, 0xc3, 0xfd, 0xd0, 0xfb, 0x78, 0x3f, 0xf4, - 0xde, 0x7e, 0x1a, 0xfe, 0x04, 0xbb, 0x5c, 0xce, 0x27, 0x3a, 0x5b, 0xae, 0x27, 0xcb, 0xb5, 0xfd, - 0x79, 0xde, 0xb4, 0xed, 0xe7, 0xec, 0x73, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7c, 0xfd, 0x7e, 0xdc, - 0x8c, 0x05, 0x00, 0x00, + // 756 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4f, 0x8f, 0x1b, 0x35, + 0x14, 0x67, 0x32, 0xd9, 0x24, 0xf3, 0x32, 0x59, 0xb6, 0x6e, 0x45, 0xd3, 0x42, 0x97, 0x74, 0xc4, + 0x21, 0xa7, 0x41, 0xa4, 0x88, 0x23, 0x52, 0x69, 0x7b, 0x98, 0xc3, 0xa2, 0xc1, 0x8a, 0x2a, 0x6e, + 0x23, 0xef, 0xd8, 0x24, 0xd6, 0xfc, 0xb1, 0x6b, 0x3b, 0x23, 0xed, 0x99, 0x03, 0xdf, 0x00, 0xf1, + 0x91, 0x38, 0xf2, 0x11, 0xd0, 0x72, 0xe7, 0x33, 0x20, 0xdb, 0x33, 0x61, 0x1b, 0xb1, 0x02, 0x4e, + 0xf1, 0xef, 0xf7, 0x9e, 0x7f, 0xef, 0x37, 0xef, 0x3d, 0x07, 0xa2, 0x46, 0xca, 0x54, 0x2a, 0x61, + 0x04, 0x0a, 0x1b, 0x29, 0x9f, 0x3e, 0xda, 0x89, 0x9d, 0x70, 0xf8, 0x73, 0x7b, 0xf2, 0xa1, 0xa7, + 0x0f, 0x4a, 0xcb, 0x95, 0x4c, 0x6b, 0xa1, 0x7a, 0x2a, 0x6e, 0x98, 0x21, 0xf2, 0xba, 0x47, 0x8b, + 0xaa, 0x53, 0xb2, 0x1c, 0x60, 0xf2, 0xe7, 0x08, 0x66, 0x5b, 0xa2, 0xab, 0x2b, 0x66, 0x08, 0x7a, + 0x02, 0x33, 0x6d, 0x88, 0x32, 0x85, 0xd1, 0xcb, 0x60, 0x15, 0xac, 0xc7, 0x78, 0xea, 0xf0, 0x56, + 0xa3, 0xc7, 0x30, 0x35, 0x44, 0x57, 0x05, 0xa7, 0xcb, 0xd1, 0x2a, 0x58, 0x87, 0x78, 0x62, 0x61, + 0x46, 0xd1, 0x73, 0x88, 0x25, 0x51, 0x86, 0x1b, 0x2e, 0x5a, 0x1b, 0x0d, 0x5d, 0x74, 0x7e, 0xe4, + 0x32, 0x8a, 0x96, 0x30, 0x25, 0x94, 0x2a, 0xa6, 0xf5, 0x72, 0xbc, 0x0a, 0xd6, 0x11, 0x1e, 0x20, + 0xfa, 0x18, 0xa2, 0x1d, 0x31, 0x7b, 0xa6, 0xec, 0xcd, 0x33, 0x57, 0x71, 0xe6, 0x89, 0x8c, 0x5a, + 0x37, 0xef, 0x0e, 0x4c, 0xdd, 0x58, 0x37, 0x13, 0xef, 0xc6, 0xe1, 0xad, 0x46, 0x9f, 0xc1, 0x79, + 0x2d, 0x4a, 0x52, 0x17, 0x3e, 0x81, 0xd3, 0xe5, 0xd4, 0x25, 0xc4, 0x8e, 0xfd, 0xce, 0x92, 0x19, + 0xb5, 0xea, 0x9a, 0xa9, 0xce, 0xab, 0xcf, 0xbc, 0xba, 0x27, 0x32, 0x8a, 0x3e, 0x85, 0x79, 0x23, + 0x65, 0xd1, 0x31, 0xa5, 0xb9, 0x68, 0x97, 0x91, 0xb3, 0x0d, 0x8d, 0x94, 0x6f, 0x3d, 0x63, 0x13, + 0x2a, 0x76, 0xa3, 0x25, 0x29, 0x99, 0xbd, 0x0f, 0xab, 0x60, 0xbd, 0xc0, 0x30, 0x50, 0x19, 0x45, + 0x5f, 0xc2, 0x9c, 0x48, 0x7e, 0x54, 0xb8, 0x58, 0x05, 0xeb, 0xf3, 0xcd, 0xc3, 0x74, 0xe8, 0xef, + 0xcb, 0x3c, 0xeb, 0xa5, 0x30, 0x10, 0xc9, 0xfb, 0x73, 0x72, 0x01, 0xe7, 0x99, 0x7e, 0x59, 0xf3, + 0x8e, 0x61, 0xf6, 0xee, 0xc0, 0xb4, 0x49, 0x72, 0xf8, 0xf0, 0xc8, 0x68, 0x29, 0x5a, 0xcd, 0xd0, + 0x27, 0x10, 0x91, 0x8e, 0xf0, 0x9a, 0x5c, 0xd7, 0xcc, 0x4d, 0x62, 0x86, 0xff, 0x26, 0x4e, 0xad, + 0x8f, 0x4e, 0xad, 0x27, 0x3f, 0x8d, 0xe0, 0xe1, 0x6b, 0xae, 0x25, 0x31, 0xe5, 0xde, 0x0e, 0xb7, + 0xaf, 0x84, 0x9e, 0xc3, 0xd8, 0xee, 0x82, 0x53, 0x9c, 0x6f, 0x16, 0xa9, 0xdd, 0xa8, 0x61, 0xf8, + 0xd8, 0x85, 0xec, 0x38, 0x59, 0x5b, 0x0a, 0xca, 0x68, 0x21, 0x6b, 0xe2, 0xc5, 0x63, 0x3c, 0xef, + 0xb9, 0xbc, 0x26, 0xad, 0x1d, 0xa7, 0xe1, 0x0d, 0x13, 0x07, 0xd3, 0x0f, 0x7b, 0x80, 0xe8, 0x0b, + 0x98, 0x2a, 0xb6, 0xe3, 0xa2, 0xb5, 0x83, 0x0e, 0xd7, 0xf3, 0xcd, 0xe3, 0xf4, 0xee, 0x3a, 0x62, + 0x17, 0xcb, 0xda, 0x1f, 0x04, 0x1e, 0xf2, 0xd0, 0x33, 0x00, 0x5d, 0xee, 0x59, 0x43, 0xec, 0xe7, + 0xb8, 0x15, 0x08, 0x71, 0xe4, 0x99, 0xb7, 0x4c, 0xa1, 0xaf, 0x61, 0x61, 0xec, 0x37, 0x17, 0x83, + 0xee, 0xc4, 0xe9, 0x3e, 0x79, 0x4f, 0x77, 0x6b, 0x33, 0xbc, 0xb8, 0xc6, 0xb1, 0xb9, 0x83, 0x92, + 0x06, 0x1e, 0xbd, 0xdf, 0x88, 0xbe, 0xc1, 0x2b, 0x38, 0x63, 0x4a, 0x09, 0xd5, 0xb7, 0x02, 0x5c, + 0x2b, 0xde, 0x58, 0x06, 0xfb, 0x00, 0x7a, 0x01, 0x0b, 0xc5, 0x8c, 0xba, 0x39, 0x56, 0x1e, 0xb9, + 0xca, 0xe7, 0x69, 0xff, 0x9a, 0x7c, 0x05, 0x1c, 0xbb, 0xa4, 0xa1, 0xdc, 0xf7, 0xf0, 0xe0, 0x15, + 0x69, 0x4b, 0x56, 0xff, 0xcf, 0xae, 0x1f, 0xed, 0x8c, 0xee, 0xb1, 0x93, 0x7c, 0x05, 0xe8, 0xae, + 0xf2, 0x7f, 0xfd, 0x8c, 0xe4, 0xc7, 0x00, 0x9e, 0xbd, 0xd1, 0xb6, 0x27, 0x5c, 0xef, 0xaf, 0xf2, + 0xfc, 0x95, 0x68, 0x5b, 0x56, 0xda, 0x87, 0x39, 0xd8, 0x4b, 0x61, 0xae, 0x59, 0x4b, 0x99, 0x2a, + 0xee, 0x77, 0x09, 0x3e, 0xc3, 0xfd, 0x49, 0x6c, 0x6c, 0x63, 0x4a, 0xc6, 0xbb, 0xe1, 0xc6, 0xe8, + 0x9f, 0x6e, 0xc4, 0x43, 0x8e, 0x45, 0xc9, 0xcf, 0x01, 0x2c, 0xae, 0xf2, 0xfc, 0x35, 0x31, 0x24, + 0x27, 0x65, 0xc5, 0x0c, 0x42, 0x30, 0xa6, 0xa4, 0x2f, 0x17, 0x63, 0x77, 0xfe, 0xf7, 0x2e, 0xa0, + 0x8f, 0x60, 0x52, 0xee, 0x0f, 0x6d, 0xa5, 0x97, 0xe1, 0x2a, 0x5c, 0xc7, 0xb8, 0x47, 0x6e, 0x8b, + 0x8c, 0x62, 0xa4, 0x29, 0x38, 0xf5, 0xbb, 0x37, 0xc6, 0x91, 0x67, 0x32, 0xaa, 0xed, 0xc6, 0x0e, + 0x8f, 0xc5, 0x6f, 0xd8, 0x00, 0x93, 0x6f, 0xe1, 0xcc, 0x15, 0xb0, 0x7e, 0xec, 0x86, 0x3b, 0x3f, + 0x67, 0xd8, 0x9d, 0xd1, 0x05, 0x84, 0x8d, 0xde, 0x39, 0x37, 0x11, 0xb6, 0xc7, 0xd3, 0x97, 0x17, + 0x9e, 0xbe, 0xbc, 0x6f, 0x92, 0x5f, 0x6f, 0x2f, 0x83, 0xdf, 0x6e, 0x2f, 0x83, 0xdf, 0x6f, 0x2f, + 0x83, 0x5f, 0xfe, 0xb8, 0xfc, 0x00, 0x2e, 0x84, 0xda, 0xa5, 0x86, 0x57, 0x5d, 0x5a, 0x75, 0xee, + 0x2f, 0xf7, 0x7a, 0xe2, 0x7e, 0x5e, 0xfc, 0x15, 0x00, 0x00, 0xff, 0xff, 0xe1, 0x42, 0x9d, 0x16, + 0xd1, 0x05, 0x00, 0x00, } func (m *TaskMeta) Marshal() (dAtA []byte, err error) { @@ -778,6 +789,13 @@ func (m *TaskMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.ApiVersion != 0 { + i = encodeVarintMpp(dAtA, i, uint64(m.ApiVersion)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x80 + } if m.KeyspaceId != 0 { i = encodeVarintMpp(dAtA, i, uint64(m.KeyspaceId)) i-- @@ -1350,6 +1368,9 @@ func (m *TaskMeta) Size() (n int) { if m.KeyspaceId != 0 { n += 1 + sovMpp(uint64(m.KeyspaceId)) } + if m.ApiVersion != 0 { + n += 2 + sovMpp(uint64(m.ApiVersion)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -1798,6 +1819,25 @@ func (m *TaskMeta) Unmarshal(dAtA []byte) error { break } } + case 16: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ApiVersion", wireType) + } + m.ApiVersion = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMpp + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ApiVersion |= kvrpcpb.APIVersion(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipMpp(dAtA[iNdEx:]) diff --git a/proto/mpp.proto b/proto/mpp.proto index d14f694..ca5c8ad 100644 --- a/proto/mpp.proto +++ b/proto/mpp.proto @@ -4,6 +4,7 @@ package mpp; import "gogoproto/gogo.proto"; import "coprocessor.proto"; import "metapb.proto"; +import "kvrpcpb.proto"; option (gogoproto.marshaler_all) = true; option (gogoproto.sizer_all) = true; @@ -23,6 +24,7 @@ message TaskMeta { uint64 server_id = 8; // TiDB server id int64 mpp_version = 9; // mpp version uint32 keyspace_id = 10; // keyspace id of the request + kvrpcpb.APIVersion api_version = 16; // API version of the request } message IsAliveRequest { diff --git a/scripts/proto.lock b/scripts/proto.lock index 93e8719..5f0e5c5 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -11268,6 +11268,11 @@ "id": 10, "name": "keyspace_id", "type": "uint32" + }, + { + "id": 16, + "name": "api_version", + "type": "kvrpcpb.APIVersion" } ] }, @@ -11444,6 +11449,9 @@ }, { "path": "metapb.proto" + }, + { + "path": "kvrpcpb.proto" } ], "package": { -- Gitee From 01623096c924fffaee10c095a4d744941d2fd074 Mon Sep 17 00:00:00 2001 From: JaySon Date: Sun, 12 Mar 2023 22:24:49 +0800 Subject: [PATCH 16/44] Add api_version for CompactRequest (#1076) * Add api version for compact Signed-off-by: JaySon-Huang * Fix id Signed-off-by: JaySon-Huang * update go files Signed-off-by: JaySon-Huang --------- Signed-off-by: JaySon-Huang --- pkg/kvrpcpb/kvrpcpb.pb.go | 854 ++++++++++++++++++++------------------ pkg/tracepb/tracepb.pb.go | 1 + proto/kvrpcpb.proto | 2 + 3 files changed, 449 insertions(+), 408 deletions(-) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index 887ed7e..f2452aa 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -1888,9 +1888,10 @@ type CheckTxnStatusResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Error *KeyError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Three kinds of transaction status: - // locked: lock_ttl > 0 - // committed: commit_version > 0 - // rollbacked: lock_ttl = 0 && commit_version = 0 + // + // locked: lock_ttl > 0 + // committed: commit_version > 0 + // rollbacked: lock_ttl = 0 && commit_version = 0 LockTtl uint64 `protobuf:"varint,3,opt,name=lock_ttl,json=lockTtl,proto3" json:"lock_ttl,omitempty"` CommitVersion uint64 `protobuf:"varint,4,opt,name=commit_version,json=commitVersion,proto3" json:"commit_version,omitempty"` // The action performed by TiKV (and why if the action is to rollback). @@ -9473,6 +9474,7 @@ func (m *RawChecksumResponse) GetTotalBytes() uint64 { type CompactError struct { // Types that are valid to be assigned to Error: + // // *CompactError_ErrInvalidStartKey // *CompactError_ErrPhysicalTableNotExist // *CompactError_ErrCompactInProgress @@ -9759,6 +9761,8 @@ type CompactRequest struct { // TODO: this is information that TiKV doesn't need to know. // See https://github.com/pingcap/kvproto/issues/912 LogicalTableId int64 `protobuf:"varint,3,opt,name=logical_table_id,json=logicalTableId,proto3" json:"logical_table_id,omitempty"` + // API version of the request + ApiVersion APIVersion `protobuf:"varint,7,opt,name=api_version,json=apiVersion,proto3,enum=kvrpcpb.APIVersion" json:"api_version,omitempty"` // Keyspace of the table located in. KeyspaceId uint32 `protobuf:"varint,8,opt,name=keyspace_id,json=keyspaceId,proto3" json:"keyspace_id,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -9820,6 +9824,13 @@ func (m *CompactRequest) GetLogicalTableId() int64 { return 0 } +func (m *CompactRequest) GetApiVersion() APIVersion { + if m != nil { + return m.ApiVersion + } + return APIVersion_V1 +} + func (m *CompactRequest) GetKeyspaceId() uint32 { if m != nil { return m.KeyspaceId @@ -10046,411 +10057,411 @@ func init() { func init() { proto.RegisterFile("kvrpcpb.proto", fileDescriptor_1afe832be69693c7) } var fileDescriptor_1afe832be69693c7 = []byte{ - // 6451 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x3c, 0x5b, 0x6c, 0x24, 0xd9, - 0x55, 0x53, 0xfd, 0x70, 0x77, 0x9f, 0x6e, 0xb7, 0xcb, 0xd7, 0xaf, 0x1e, 0xcf, 0xcc, 0x8e, 0xa7, - 0x36, 0xb3, 0x3b, 0x71, 0xb2, 0xde, 0xac, 0x77, 0x37, 0x0f, 0x12, 0x92, 0x9d, 0xb1, 0xe7, 0xe1, - 0x1d, 0xcf, 0xd8, 0xaa, 0xee, 0x9d, 0x65, 0x05, 0x49, 0xe5, 0xba, 0xfa, 0xba, 0xbb, 0xe4, 0xea, - 0xaa, 0xda, 0xaa, 0xdb, 0xb6, 0x3b, 0x08, 0x89, 0x15, 0x0f, 0x29, 0x12, 0x0a, 0x10, 0x45, 0x0a, - 0x12, 0x11, 0x12, 0x12, 0x91, 0x08, 0x7f, 0x88, 0x1f, 0x1e, 0x1f, 0x08, 0x29, 0x1f, 0x01, 0x11, - 0x25, 0x12, 0x42, 0x41, 0xf0, 0x01, 0x2c, 0x12, 0xdf, 0xfc, 0x20, 0xe0, 0x03, 0x81, 0xee, 0xab, - 0x1e, 0xdd, 0x3d, 0x1e, 0x4f, 0x8f, 0x3d, 0x09, 0x7c, 0xd9, 0x75, 0xce, 0xb9, 0xf7, 0x9e, 0x7b, - 0xee, 0x39, 0xe7, 0x9e, 0x7b, 0xee, 0xb9, 0x0d, 0xd3, 0x07, 0x87, 0x61, 0x60, 0x07, 0x7b, 0x6b, - 0x41, 0xe8, 0x53, 0x1f, 0x95, 0xe4, 0xe7, 0x72, 0xad, 0x47, 0x28, 0x56, 0xe0, 0xe5, 0x69, 0x12, - 0x86, 0x7e, 0x18, 0x7f, 0xce, 0x77, 0xfc, 0x8e, 0xcf, 0xff, 0x7d, 0x95, 0xfd, 0x27, 0xa1, 0x33, - 0x61, 0x3f, 0xa2, 0xfc, 0x5f, 0x09, 0xa8, 0xb7, 0x09, 0x6e, 0xbb, 0xbe, 0x7d, 0xa0, 0x7a, 0xa1, - 0x21, 0xb6, 0x89, 0xea, 0xc5, 0x68, 0x03, 0xdc, 0x25, 0xd4, 0x24, 0xef, 0xf7, 0x49, 0x44, 0xd1, - 0x2a, 0x94, 0x6c, 0xdf, 0xa3, 0xe4, 0x98, 0x36, 0xb4, 0x15, 0xed, 0x46, 0x75, 0x5d, 0x5f, 0x53, - 0xac, 0x6d, 0x08, 0xb8, 0xa9, 0x08, 0x90, 0x0e, 0xf9, 0x03, 0x32, 0x68, 0xe4, 0x56, 0xb4, 0x1b, - 0x35, 0x93, 0xfd, 0x8b, 0x1a, 0x50, 0x3a, 0x24, 0x61, 0xe4, 0xf8, 0x5e, 0x23, 0xbf, 0xa2, 0xdd, - 0x28, 0x98, 0xea, 0xd3, 0xf8, 0x50, 0x83, 0x2a, 0x1f, 0x26, 0x0a, 0x7c, 0x2f, 0x22, 0xe8, 0x35, - 0xa8, 0x85, 0xa4, 0xe3, 0xf8, 0x9e, 0xc5, 0xe7, 0x24, 0x07, 0xab, 0xaf, 0xa9, 0x19, 0xde, 0x66, - 0x7f, 0xcd, 0xaa, 0xa0, 0xe1, 0x1f, 0xe8, 0x65, 0x28, 0x0a, 0xda, 0x1c, 0xa7, 0x9d, 0x8d, 0x19, - 0xbb, 0x4f, 0x06, 0x82, 0x5c, 0xe0, 0xd1, 0x3c, 0x14, 0x0f, 0xb1, 0xdb, 0x27, 0x9c, 0x87, 0x9a, - 0x29, 0x3e, 0xd0, 0x25, 0xa8, 0x78, 0x3e, 0xb5, 0xf6, 0xfd, 0xbe, 0xd7, 0x6e, 0x14, 0x56, 0xb4, - 0x1b, 0x65, 0xb3, 0xec, 0xf9, 0xf4, 0x0e, 0xfb, 0x46, 0x9f, 0x87, 0x19, 0x72, 0x4c, 0x6c, 0xab, - 0x4d, 0x28, 0x76, 0xdc, 0xc8, 0x3a, 0x5c, 0x6f, 0x4c, 0xf1, 0x51, 0x16, 0xe3, 0x51, 0x6e, 0x1f, - 0x13, 0x7b, 0x53, 0xa0, 0x1f, 0xad, 0x9b, 0xd3, 0x24, 0xfd, 0xf9, 0x76, 0xa1, 0x5c, 0xd4, 0xa7, - 0x8c, 0x7f, 0xd7, 0xa0, 0xda, 0xb4, 0xb1, 0x37, 0x89, 0x30, 0x2f, 0x41, 0x25, 0xa2, 0x38, 0xa4, - 0x56, 0x22, 0xd2, 0x32, 0x07, 0xdc, 0x27, 0x03, 0x36, 0x23, 0xd7, 0xe9, 0x39, 0x94, 0xcf, 0x68, - 0xda, 0x14, 0x1f, 0x69, 0x69, 0x17, 0x32, 0xd2, 0x46, 0x17, 0xa1, 0x7c, 0x40, 0x06, 0x96, 0xef, - 0xb9, 0x83, 0x46, 0x91, 0x4f, 0xb5, 0x74, 0x40, 0x06, 0x3b, 0x9e, 0xcb, 0x97, 0x28, 0x24, 0x8c, - 0x8e, 0xf0, 0x19, 0x96, 0x4d, 0xf5, 0x89, 0x96, 0xa0, 0x44, 0xbc, 0x36, 0x1f, 0xbf, 0xc4, 0xc7, - 0x9f, 0x22, 0x5e, 0x9b, 0x8d, 0x7e, 0x15, 0xaa, 0x11, 0xee, 0x05, 0x2e, 0xb1, 0x22, 0x4a, 0x82, - 0x46, 0x99, 0xf3, 0x00, 0x02, 0xd4, 0xa4, 0x24, 0x30, 0x7e, 0x53, 0x83, 0x9a, 0x98, 0xf7, 0xe4, - 0xab, 0x7b, 0x1d, 0x8a, 0x01, 0x76, 0xc2, 0xa8, 0x91, 0x5b, 0xc9, 0xdf, 0xa8, 0xae, 0xcf, 0x24, - 0xab, 0x7b, 0xb8, 0x8b, 0x9d, 0xd0, 0x14, 0xd8, 0x44, 0x09, 0xf2, 0x27, 0x2b, 0x81, 0xf1, 0x5f, - 0x45, 0x98, 0xd9, 0x0d, 0xc9, 0x51, 0xe8, 0x50, 0x32, 0xc9, 0x7a, 0xbc, 0x0a, 0x95, 0x5e, 0x9f, - 0x62, 0xea, 0xf8, 0x9e, 0xe2, 0x29, 0x19, 0xec, 0x81, 0xc4, 0x98, 0x09, 0x0d, 0xba, 0x06, 0xb5, - 0x20, 0x74, 0x7a, 0x38, 0x1c, 0x58, 0xcc, 0xd8, 0xa4, 0xf2, 0x55, 0x25, 0x6c, 0xdb, 0xb7, 0x0f, - 0xd0, 0x8b, 0x30, 0x2d, 0xd6, 0x38, 0xbb, 0x6c, 0x35, 0x0e, 0x7c, 0x94, 0xac, 0x1d, 0x6b, 0x6f, - 0x51, 0xea, 0xf2, 0xb5, 0x2b, 0x98, 0x25, 0xf6, 0xdd, 0xa2, 0x2e, 0x5a, 0x87, 0x85, 0xe8, 0xc0, - 0x09, 0x2c, 0xdb, 0xf7, 0x22, 0x1a, 0x62, 0xc7, 0xa3, 0x96, 0xdd, 0x25, 0xf6, 0x81, 0x5c, 0xc9, - 0x39, 0x86, 0xdc, 0x88, 0x71, 0x1b, 0x0c, 0x85, 0x7e, 0x16, 0xe6, 0x02, 0x12, 0x45, 0x4e, 0xcf, - 0x89, 0xa8, 0x63, 0x5b, 0xd8, 0x16, 0x33, 0x2a, 0xad, 0xe4, 0x6f, 0xd4, 0xd7, 0x57, 0xe3, 0x19, - 0x0d, 0x89, 0x6a, 0x6d, 0x37, 0x69, 0x73, 0x93, 0x37, 0x31, 0x51, 0x30, 0x0c, 0x8a, 0x18, 0xaf, - 0xf4, 0xd8, 0xb3, 0x22, 0xe7, 0x2b, 0x84, 0xab, 0x45, 0xc1, 0x2c, 0xd1, 0x63, 0xaf, 0xe9, 0x7c, - 0x85, 0x20, 0x03, 0xa6, 0xf7, 0xfd, 0xd0, 0xea, 0x07, 0x6d, 0x4c, 0x89, 0x45, 0xa3, 0x46, 0x85, - 0xe3, 0xab, 0xfb, 0x7e, 0xf8, 0x0e, 0x87, 0xb5, 0x22, 0x46, 0xd3, 0x73, 0x3c, 0xcb, 0xf6, 0x7b, - 0x3d, 0x87, 0x32, 0x1a, 0x10, 0x34, 0x3d, 0xc7, 0xdb, 0xe0, 0xb0, 0x56, 0x84, 0x6e, 0x80, 0xde, - 0x8f, 0x88, 0x85, 0xa3, 0x81, 0x67, 0x4b, 0xca, 0x46, 0x95, 0x4f, 0xb7, 0xde, 0x8f, 0xc8, 0x4d, - 0x06, 0x16, 0xb4, 0x68, 0x05, 0xaa, 0x11, 0xb1, 0x7d, 0xaf, 0x8d, 0x43, 0x87, 0x44, 0x8d, 0xda, - 0x4a, 0x9e, 0xc9, 0x3f, 0x05, 0x42, 0x97, 0x01, 0x68, 0xc8, 0xcc, 0x82, 0x58, 0x81, 0xdd, 0x98, - 0x16, 0x3e, 0x80, 0x86, 0x83, 0x1d, 0x8f, 0xec, 0xda, 0x9c, 0x1b, 0x7c, 0x9c, 0xe2, 0xa6, 0x2e, - 0xb9, 0xc1, 0xc7, 0x31, 0x37, 0x6f, 0xc1, 0x0c, 0x8e, 0x22, 0x12, 0xb2, 0xe9, 0x5b, 0x2e, 0x39, - 0x24, 0x6e, 0x63, 0x66, 0x45, 0xbb, 0x51, 0x5f, 0x5f, 0x8a, 0x25, 0x79, 0x53, 0xe1, 0xb7, 0x19, - 0xda, 0xac, 0xe3, 0xcc, 0xb7, 0xb1, 0x07, 0xb3, 0x23, 0xb2, 0x45, 0xcb, 0xb0, 0xd8, 0xbc, 0xbf, - 0xb5, 0x6b, 0xed, 0xde, 0x6e, 0x36, 0xb7, 0x1e, 0x6c, 0x35, 0x5b, 0x5b, 0x1b, 0xd6, 0xc6, 0xbd, - 0xdb, 0x1b, 0xf7, 0xf5, 0x0b, 0xa8, 0x01, 0xf3, 0x9b, 0x3b, 0x63, 0x30, 0x1a, 0x5a, 0x82, 0xb9, - 0xcd, 0x1d, 0x6b, 0x63, 0xe7, 0x61, 0xb3, 0x65, 0xde, 0xdc, 0x7a, 0xd8, 0x92, 0x88, 0x9c, 0xf1, - 0xdf, 0x1a, 0xe8, 0xc9, 0x82, 0x4e, 0x6e, 0x93, 0x1f, 0x85, 0x29, 0x8e, 0x1d, 0x35, 0x80, 0xd8, - 0xda, 0x24, 0xc1, 0xe8, 0x52, 0xe6, 0x47, 0x97, 0xf2, 0x65, 0xd0, 0x85, 0xe8, 0x53, 0x64, 0xc2, - 0x02, 0xa6, 0x7d, 0xb6, 0x02, 0x31, 0xe1, 0x18, 0x6f, 0x5c, 0x7c, 0x0a, 0x6f, 0x6c, 0x7c, 0xb7, - 0x00, 0x8b, 0x29, 0x21, 0x33, 0xdb, 0xfb, 0xff, 0xe2, 0x02, 0x46, 0xcc, 0x6a, 0x6a, 0xac, 0x59, - 0x39, 0x91, 0xb5, 0xef, 0x84, 0x11, 0x15, 0x7c, 0x94, 0xb8, 0xa6, 0x57, 0x9d, 0xe8, 0x0e, 0x83, - 0x71, 0x3e, 0xae, 0x41, 0xed, 0x08, 0xb3, 0x25, 0x70, 0x7a, 0xc4, 0xef, 0x53, 0x6e, 0xbd, 0x79, - 0xb3, 0xca, 0x60, 0x2d, 0x01, 0x42, 0x0d, 0x28, 0xee, 0xfb, 0xa1, 0x4d, 0xb8, 0xe5, 0x96, 0x6f, - 0xe5, 0x1a, 0x9a, 0x29, 0x00, 0x6c, 0x12, 0x21, 0xa1, 0xfd, 0xd0, 0xb3, 0xf8, 0xd6, 0x2a, 0xec, - 0xb6, 0x6c, 0xd6, 0x04, 0xf0, 0x11, 0x87, 0x8d, 0x6a, 0x44, 0x75, 0x9c, 0x46, 0xcc, 0x70, 0x07, - 0x66, 0x91, 0x63, 0x27, 0xa2, 0xc4, 0xb3, 0x49, 0xa3, 0x26, 0x6c, 0x9b, 0x83, 0x6f, 0x2b, 0x28, - 0x7a, 0x05, 0xe6, 0xb8, 0x44, 0xd8, 0x8e, 0x66, 0x39, 0xfb, 0x82, 0x3e, 0x92, 0x26, 0xac, 0x33, - 0x14, 0xdb, 0xdc, 0xb6, 0xf6, 0x79, 0x8b, 0x08, 0x6d, 0xb2, 0xd9, 0x1d, 0x10, 0xab, 0x1f, 0x58, - 0x3d, 0xbf, 0x4d, 0xb8, 0x25, 0xd7, 0xd7, 0x8d, 0xc4, 0xdb, 0x65, 0x95, 0xe3, 0x5d, 0x7c, 0x40, - 0xde, 0x09, 0x1e, 0xf8, 0x6d, 0x62, 0xc2, 0x51, 0xfc, 0xbf, 0xf1, 0x6f, 0x1a, 0x34, 0x86, 0x28, - 0xef, 0x93, 0x81, 0x49, 0xa2, 0xbe, 0x4b, 0xd1, 0x67, 0xa0, 0x40, 0x07, 0x01, 0xe1, 0x5a, 0x54, - 0x5f, 0xbf, 0xfe, 0xb8, 0xae, 0xe3, 0x06, 0xad, 0x41, 0x40, 0x4c, 0xde, 0x24, 0x89, 0x4f, 0x72, - 0xe9, 0xf8, 0xe4, 0x32, 0x54, 0x12, 0x29, 0xe4, 0xf9, 0xc4, 0x12, 0x00, 0x7a, 0x13, 0x96, 0xd8, - 0x2c, 0x49, 0xdb, 0x3a, 0x72, 0x68, 0x97, 0xed, 0x00, 0xfb, 0xae, 0x63, 0xa7, 0x4c, 0x68, 0x5e, - 0xa0, 0xdf, 0x75, 0x68, 0x77, 0x43, 0x22, 0x5b, 0x11, 0x5a, 0x03, 0xbe, 0x29, 0x58, 0x21, 0x89, - 0x7c, 0xf7, 0xd0, 0xf1, 0x3a, 0x42, 0x21, 0x84, 0x03, 0x9d, 0x65, 0x28, 0x53, 0x61, 0x18, 0xb7, - 0xc6, 0xbf, 0xe6, 0x60, 0x69, 0xc4, 0x72, 0x9e, 0x8b, 0x03, 0xb9, 0x0a, 0x95, 0x21, 0xe7, 0xc1, - 0x35, 0xae, 0x6c, 0x2b, 0x5d, 0x69, 0x28, 0xa9, 0xb1, 0xf9, 0xd6, 0x84, 0x3a, 0x0a, 0xc9, 0x2d, - 0xc2, 0x94, 0xd4, 0xc3, 0x22, 0xf7, 0xf9, 0xf2, 0x0b, 0x5d, 0x01, 0x88, 0x23, 0x3e, 0x66, 0x28, - 0x79, 0x26, 0x52, 0x15, 0xf2, 0x8d, 0xf5, 0x32, 0xa5, 0xa7, 0xf0, 0x32, 0xe8, 0xb3, 0x2c, 0x92, - 0x62, 0x4b, 0x1b, 0x35, 0xca, 0x7c, 0x76, 0xd7, 0x9e, 0xa8, 0x04, 0xa6, 0x6a, 0x61, 0x7c, 0x5b, - 0x83, 0xe5, 0x14, 0x95, 0xe9, 0xbb, 0xee, 0x1e, 0x9e, 0xcc, 0x4d, 0x8d, 0xb8, 0x94, 0xdc, 0x18, - 0x97, 0x32, 0xe2, 0x37, 0xf2, 0xa3, 0x7e, 0x03, 0x41, 0xe1, 0x80, 0x0c, 0x98, 0x42, 0x31, 0x29, - 0xf2, 0xff, 0x8d, 0x3f, 0xd3, 0xe0, 0xd2, 0x58, 0x3e, 0x9f, 0x8b, 0x52, 0x8c, 0x59, 0xa2, 0xfc, - 0xd3, 0x6c, 0x04, 0x7f, 0xa8, 0xc1, 0x5c, 0xeb, 0xd8, 0xbb, 0x47, 0x70, 0x48, 0x6f, 0x11, 0x3c, - 0xd1, 0x29, 0x67, 0xd8, 0xa9, 0xe7, 0x4e, 0xe1, 0xd4, 0xf3, 0x63, 0x56, 0xe0, 0x25, 0x98, 0xc1, - 0xed, 0x43, 0x27, 0x22, 0x56, 0xec, 0xdb, 0xe5, 0xe6, 0x27, 0xc0, 0xdb, 0xc2, 0xc3, 0x1b, 0xdf, - 0xd7, 0x60, 0x3e, 0xcb, 0xf3, 0x73, 0x38, 0x32, 0xa5, 0x77, 0x9c, 0x7c, 0x76, 0xc7, 0x19, 0xb3, - 0x06, 0x85, 0xa7, 0x59, 0x83, 0x7f, 0xce, 0xc1, 0x02, 0x0f, 0x45, 0x5b, 0xc7, 0x5e, 0x93, 0x62, - 0xda, 0x8f, 0x26, 0x59, 0x85, 0xab, 0xa0, 0x24, 0x9e, 0x3a, 0x20, 0x81, 0x04, 0xb1, 0x43, 0xca, - 0x12, 0x94, 0xc4, 0x0c, 0x94, 0x6a, 0x4f, 0xf1, 0x09, 0x44, 0x4c, 0xee, 0x36, 0x76, 0x5d, 0x12, - 0x5a, 0x62, 0x8d, 0x92, 0xa0, 0x43, 0x80, 0x9b, 0x0c, 0xda, 0xe2, 0xde, 0xc2, 0xee, 0x87, 0x21, - 0xf1, 0x38, 0x89, 0xd8, 0x76, 0x2b, 0x12, 0xd2, 0x8a, 0xd0, 0x6b, 0xb0, 0x10, 0x4a, 0xe5, 0x67, - 0x1b, 0x10, 0x73, 0x2c, 0xdc, 0x3b, 0xcb, 0xd8, 0x1b, 0x29, 0xe4, 0xd6, 0xfe, 0x43, 0x9f, 0xf2, - 0x6d, 0x08, 0xad, 0xc2, 0x2c, 0xdf, 0x2f, 0xad, 0x74, 0xec, 0x2a, 0xf6, 0xe2, 0x19, 0x8e, 0x68, - 0x26, 0xc1, 0xeb, 0xe7, 0x60, 0x39, 0xf1, 0xd1, 0xe9, 0x80, 0x9d, 0xeb, 0x5c, 0x99, 0x37, 0x6a, - 0xc4, 0x14, 0x43, 0xfe, 0xc5, 0xf8, 0x41, 0x0e, 0x16, 0x87, 0x65, 0xfc, 0xe3, 0xd5, 0x9a, 0xeb, - 0x50, 0x97, 0xee, 0x3c, 0x1b, 0xe8, 0x4c, 0x0b, 0xa8, 0x32, 0x8a, 0x97, 0x61, 0x4a, 0x9c, 0x48, - 0xb8, 0xc0, 0xeb, 0xa9, 0x63, 0x9f, 0x3c, 0x75, 0x48, 0x34, 0x5a, 0x83, 0x0a, 0x1f, 0xca, 0xf1, - 0xf6, 0x7d, 0x79, 0x34, 0x4f, 0xf8, 0x62, 0x32, 0xd8, 0xf2, 0xf6, 0x7d, 0x93, 0xb3, 0xc3, 0xfe, - 0x7b, 0x56, 0xe7, 0x6e, 0x7c, 0xa0, 0xc1, 0x32, 0x97, 0x68, 0x53, 0x9e, 0x1f, 0xb8, 0xa5, 0x4f, - 0xa4, 0xba, 0xca, 0xad, 0xe6, 0x12, 0xb7, 0x7a, 0x2a, 0x8f, 0x61, 0xfc, 0x8f, 0x06, 0x97, 0xc6, - 0xf2, 0xf0, 0x1c, 0x96, 0xf6, 0x65, 0x28, 0x32, 0x59, 0x32, 0x63, 0xca, 0x8f, 0x97, 0xb5, 0xc0, - 0xa3, 0x4b, 0xe9, 0x7d, 0x5b, 0xac, 0x71, 0xb2, 0x67, 0x3f, 0x6b, 0x20, 0xff, 0x1d, 0x0d, 0xa6, - 0x85, 0x81, 0x9c, 0xdb, 0xc6, 0xa8, 0x56, 0x27, 0x9f, 0x5a, 0x9d, 0xd3, 0x29, 0xaf, 0x48, 0xfa, - 0x98, 0x53, 0x7b, 0x8e, 0xe7, 0xfa, 0x1d, 0xe3, 0x6f, 0x34, 0xa8, 0x2b, 0x5e, 0x9f, 0xc3, 0x02, - 0x8d, 0xf2, 0x98, 0x1f, 0x67, 0x60, 0xcf, 0xea, 0xbd, 0x3b, 0x30, 0xbd, 0xd5, 0x0b, 0xfc, 0x30, - 0x5e, 0x80, 0xcc, 0xa1, 0x48, 0x3b, 0xc5, 0xa1, 0x68, 0x94, 0xd1, 0xdc, 0x18, 0x46, 0x8d, 0xf7, - 0xa0, 0xae, 0x06, 0x9a, 0x5c, 0x7a, 0xf3, 0x69, 0xe9, 0x55, 0x54, 0x2a, 0xe8, 0xeb, 0x6c, 0x65, - 0x5c, 0x82, 0xbd, 0x7e, 0x70, 0x36, 0x69, 0xce, 0x53, 0xed, 0xf7, 0xd9, 0xfd, 0xa4, 0x30, 0xb4, - 0x9f, 0x18, 0xdf, 0xd0, 0x60, 0x26, 0x66, 0xea, 0x27, 0x46, 0x5f, 0x8c, 0x03, 0x98, 0xb9, 0x85, - 0xa9, 0xdd, 0x9d, 0x30, 0x25, 0x3c, 0xce, 0xd7, 0x3d, 0x3e, 0x29, 0xfc, 0x0f, 0x1a, 0xe8, 0xc9, - 0x68, 0xe7, 0x9e, 0x3b, 0x7c, 0x46, 0x5b, 0x48, 0x64, 0x5d, 0x3c, 0x59, 0xd6, 0x6f, 0x17, 0xca, - 0x79, 0xbd, 0x60, 0xfc, 0x3c, 0xcc, 0xf3, 0xc9, 0x9d, 0x7b, 0x6c, 0x3f, 0xc6, 0x85, 0x19, 0x7f, - 0xa4, 0xc1, 0xc2, 0xd0, 0xe8, 0xcf, 0x41, 0xc9, 0x9e, 0x35, 0x5e, 0xff, 0x03, 0x0d, 0x66, 0x9a, - 0x36, 0xf6, 0x26, 0xcd, 0xd8, 0x5c, 0x85, 0x6a, 0x0f, 0x1f, 0x0f, 0x09, 0x0b, 0x7a, 0xf8, 0x58, - 0x89, 0x2a, 0x93, 0x65, 0xcf, 0x3f, 0x2e, 0xcb, 0x5e, 0x48, 0x67, 0xd9, 0x53, 0x69, 0xf1, 0x62, - 0x3a, 0x2d, 0x6e, 0xfc, 0x48, 0x03, 0x3d, 0x61, 0xf6, 0x27, 0x69, 0x4f, 0x7e, 0x56, 0xa7, 0xff, - 0x03, 0x0d, 0x90, 0xc8, 0x0b, 0x90, 0x49, 0x57, 0xe2, 0x54, 0x8a, 0x7b, 0xca, 0x3d, 0xec, 0x15, - 0xa8, 0xd0, 0x63, 0x8f, 0x87, 0x7e, 0xe2, 0x70, 0x9a, 0x1e, 0xb9, 0x75, 0xec, 0x89, 0xd0, 0x8f, - 0x8a, 0x7f, 0x92, 0x63, 0x6c, 0x31, 0x65, 0x0e, 0xec, 0x20, 0x98, 0x99, 0xd1, 0xff, 0x01, 0x63, - 0x78, 0x04, 0x95, 0xbb, 0x1b, 0x93, 0xc8, 0xfe, 0x0a, 0x40, 0x84, 0xf7, 0x89, 0x15, 0xf8, 0x8e, - 0x47, 0xa5, 0xe0, 0x2b, 0x0c, 0xb2, 0xcb, 0x00, 0x46, 0x17, 0x80, 0xf5, 0x7b, 0xfe, 0x12, 0x30, - 0xbe, 0xa9, 0x01, 0xda, 0x24, 0x2e, 0xa1, 0xc4, 0xc4, 0x5e, 0x87, 0x9c, 0xf9, 0xb5, 0x58, 0xca, - 0x34, 0xf3, 0xc3, 0x37, 0x56, 0x9e, 0x4f, 0x9d, 0x7d, 0x79, 0x05, 0x26, 0x6e, 0xfb, 0x40, 0x80, - 0x76, 0x3c, 0x77, 0x60, 0x7c, 0x09, 0xe6, 0x32, 0x8c, 0x9d, 0x75, 0xc8, 0xf1, 0x27, 0x1a, 0xac, - 0xec, 0x86, 0x24, 0xc0, 0x21, 0xb9, 0xe3, 0xe2, 0xa8, 0xcb, 0x3c, 0x70, 0xcb, 0x97, 0x0a, 0xfd, - 0xfc, 0xe4, 0x70, 0x11, 0xca, 0x43, 0x87, 0xde, 0x52, 0x24, 0x8f, 0xbb, 0xa9, 0x5d, 0xb9, 0x98, - 0xdd, 0x95, 0x5d, 0xb8, 0x76, 0x02, 0xeb, 0x67, 0x2d, 0xa9, 0x1f, 0x68, 0x70, 0xf1, 0x6c, 0x44, - 0x94, 0x9a, 0x51, 0x2e, 0x7b, 0x1d, 0x7a, 0xa2, 0xd7, 0x4f, 0x09, 0xaf, 0xf0, 0x58, 0xe1, 0x15, - 0xb3, 0xc2, 0xcb, 0x1c, 0x7a, 0xa6, 0xb2, 0x87, 0x1e, 0x83, 0xc0, 0xf2, 0xf3, 0x10, 0xdc, 0x17, - 0x61, 0xda, 0xc4, 0x47, 0x67, 0x76, 0x75, 0x5f, 0x87, 0x9c, 0xbd, 0xcf, 0x85, 0x53, 0x31, 0x73, - 0xf6, 0xbe, 0xf1, 0x6b, 0x1a, 0xd4, 0x55, 0xff, 0x67, 0xcc, 0xfa, 0x04, 0x17, 0xf4, 0x46, 0x1b, - 0x90, 0x89, 0x8f, 0xce, 0x3a, 0x34, 0x1d, 0x9e, 0xb4, 0x0f, 0x73, 0x99, 0x51, 0xce, 0x3b, 0x24, - 0x35, 0x7e, 0x47, 0xe3, 0xab, 0xb8, 0xdb, 0x3f, 0xa3, 0x55, 0x1c, 0x2f, 0x59, 0x31, 0xcd, 0x82, - 0x9a, 0x26, 0x6b, 0x97, 0x5c, 0x2d, 0xb1, 0x7f, 0x99, 0x11, 0xec, 0xfb, 0xa1, 0x65, 0xe3, 0x48, - 0xe6, 0xb3, 0xa6, 0xf6, 0xfd, 0x70, 0x03, 0x47, 0xec, 0x58, 0xa6, 0xf8, 0x3b, 0x6b, 0x05, 0xfe, - 0x53, 0x2d, 0x59, 0xd3, 0x09, 0x05, 0x70, 0xca, 0xc0, 0x7f, 0x68, 0x99, 0xd1, 0xbc, 0x98, 0x7f, - 0x21, 0xbe, 0x65, 0x18, 0x96, 0x41, 0x31, 0x2d, 0x03, 0xa6, 0x39, 0x94, 0xba, 0xe2, 0x06, 0xa1, - 0x60, 0xf2, 0xff, 0xd9, 0x06, 0x92, 0xe1, 0xfd, 0xac, 0x85, 0x33, 0x00, 0xdd, 0xc4, 0x47, 0x72, - 0x8f, 0x3a, 0x0f, 0x03, 0x4f, 0x4f, 0xb7, 0x90, 0x59, 0xf2, 0x9f, 0x83, 0xd9, 0xd4, 0xd0, 0x67, - 0x3d, 0xb1, 0x5f, 0xd4, 0x60, 0x41, 0x49, 0x6e, 0xf2, 0xe9, 0x9d, 0xc2, 0x98, 0x1f, 0x3f, 0x41, - 0x0c, 0x8b, 0xc3, 0x1c, 0x9c, 0xf5, 0x2c, 0xbf, 0x2f, 0xbc, 0xe7, 0x73, 0x2c, 0x06, 0x4a, 0x97, - 0xfc, 0x14, 0xb2, 0x25, 0x3f, 0x42, 0x30, 0xc5, 0x58, 0x30, 0x4f, 0x5f, 0x02, 0x64, 0x74, 0x60, - 0x26, 0x9e, 0xce, 0xe4, 0xb2, 0xba, 0x06, 0xf9, 0x83, 0xc3, 0xc7, 0x1a, 0x2b, 0xc3, 0x19, 0x5f, - 0x15, 0xea, 0xf1, 0x63, 0x89, 0x1a, 0x87, 0xdc, 0xa4, 0xd4, 0x93, 0x73, 0x8d, 0x13, 0x7f, 0xa8, - 0x25, 0x7e, 0x64, 0x52, 0x65, 0xf9, 0x28, 0x4c, 0x85, 0x8c, 0xbb, 0xb1, 0xf7, 0x69, 0x82, 0x6f, - 0x49, 0xc0, 0x4e, 0x06, 0x04, 0xdb, 0x5d, 0x2b, 0xad, 0x3f, 0x15, 0x06, 0xd9, 0x3e, 0x33, 0x1d, - 0x32, 0x5c, 0x98, 0xcf, 0xce, 0xe8, 0x5c, 0xf5, 0xe5, 0x17, 0xe0, 0xe2, 0x3b, 0x1e, 0x3b, 0xdb, - 0x6c, 0x92, 0x88, 0x86, 0xfe, 0xe0, 0xf9, 0xaa, 0x0c, 0x8b, 0xf5, 0xc6, 0x0d, 0x7f, 0xd6, 0x6a, - 0xf2, 0x65, 0xb8, 0x64, 0x92, 0x8e, 0x13, 0x51, 0x12, 0xb2, 0xe3, 0xeb, 0xce, 0x5e, 0x44, 0xc2, - 0x43, 0x12, 0x4e, 0x32, 0xcf, 0x05, 0x98, 0xea, 0xe1, 0x63, 0x16, 0xb7, 0x8a, 0x20, 0xb9, 0xd8, - 0xc3, 0xc7, 0xad, 0xc8, 0x78, 0x03, 0x2e, 0x8f, 0x1f, 0x41, 0x4e, 0x25, 0xe6, 0x4b, 0xcb, 0xc6, - 0xa0, 0x0d, 0x7e, 0x41, 0x71, 0x4e, 0x4c, 0xf5, 0xe1, 0xe2, 0x98, 0xee, 0x4f, 0xe2, 0x88, 0xa9, - 0xb0, 0x13, 0x59, 0xb6, 0x4b, 0xb0, 0x38, 0x05, 0x94, 0xcd, 0x92, 0x13, 0xf1, 0x3c, 0xeb, 0xa9, - 0xd3, 0x27, 0xc6, 0x97, 0xe0, 0xa2, 0x49, 0x7a, 0xbe, 0x48, 0x15, 0x9c, 0xc3, 0xb4, 0xd6, 0x61, - 0x79, 0x5c, 0xff, 0x27, 0x4a, 0xfa, 0xd7, 0x35, 0x58, 0xda, 0xed, 0x0e, 0x22, 0xc7, 0xc6, 0xee, - 0xb3, 0x64, 0xc8, 0xc6, 0xb3, 0x34, 0x41, 0x5e, 0xcc, 0x78, 0x0f, 0x1a, 0xa3, 0x0c, 0x9d, 0xb8, - 0x36, 0xf1, 0x02, 0xe4, 0x9e, 0xb0, 0x00, 0xdf, 0xd2, 0x00, 0x35, 0x03, 0xd7, 0xa1, 0x26, 0xb7, - 0x8c, 0xc9, 0x32, 0x81, 0x95, 0x88, 0xf5, 0x90, 0x98, 0xb3, 0x28, 0x27, 0xe1, 0x40, 0x36, 0xa9, - 0x2b, 0x00, 0x31, 0x81, 0x4a, 0x9d, 0x56, 0x14, 0x36, 0x42, 0xcb, 0x50, 0x71, 0x22, 0x2b, 0xc4, - 0x47, 0xd6, 0xc1, 0xa1, 0xf2, 0x85, 0x4e, 0x64, 0xe2, 0xa3, 0xfb, 0x87, 0xc6, 0x77, 0x35, 0x98, - 0xcb, 0xb0, 0x37, 0xb9, 0xb9, 0xbf, 0x04, 0x05, 0x97, 0xec, 0x53, 0x99, 0x49, 0xa9, 0xaf, 0xc9, - 0x72, 0x6f, 0xd1, 0x31, 0xe7, 0x98, 0xe3, 0xd1, 0x0d, 0x28, 0x86, 0x4e, 0xa7, 0x4b, 0x65, 0x06, - 0x69, 0x1c, 0xa1, 0x20, 0x40, 0x37, 0x98, 0x63, 0xee, 0xf0, 0xdb, 0x19, 0x91, 0x2a, 0x1b, 0xa2, - 0x35, 0x15, 0xda, 0xf8, 0x65, 0x0d, 0x74, 0x93, 0xe0, 0xf6, 0x96, 0xd7, 0x26, 0xc7, 0x93, 0xc8, - 0x38, 0x7d, 0x40, 0xce, 0x65, 0x0f, 0xc8, 0xc9, 0x9e, 0x94, 0x7f, 0xc2, 0x9e, 0x64, 0xfc, 0x86, - 0x06, 0xb3, 0x29, 0x36, 0x26, 0x97, 0xe5, 0x15, 0x80, 0x90, 0xe0, 0xb6, 0xe5, 0xb0, 0x8e, 0x54, - 0xda, 0x2b, 0x54, 0x3d, 0x33, 0x96, 0x44, 0x89, 0xd4, 0x48, 0xe9, 0x70, 0xac, 0x7e, 0x92, 0xc0, - 0x68, 0xc2, 0xdc, 0x83, 0x43, 0xdb, 0xbe, 0x4b, 0xe8, 0xad, 0x01, 0xaf, 0xdd, 0x39, 0x83, 0xf8, - 0xdb, 0xf8, 0x55, 0x0d, 0xe6, 0xb3, 0xbd, 0x9e, 0xf5, 0xb1, 0xfa, 0x3a, 0x14, 0xf8, 0xf5, 0xf8, - 0xf0, 0xfc, 0xd8, 0xa8, 0x7c, 0x7e, 0x1c, 0x6d, 0x7c, 0x19, 0x96, 0x62, 0x3e, 0x64, 0xf1, 0xc3, - 0xd9, 0xae, 0x3e, 0xb3, 0xdf, 0xc6, 0xe8, 0x10, 0x67, 0x3d, 0x5d, 0x29, 0xe2, 0x7c, 0x72, 0xc4, - 0x51, 0x02, 0x28, 0x9c, 0x2c, 0x80, 0x0f, 0x2a, 0x50, 0xda, 0x48, 0xb6, 0x7d, 0xc9, 0x8d, 0xd3, - 0xe6, 0xac, 0x14, 0xcc, 0xb2, 0x00, 0x6c, 0xb5, 0xd1, 0x27, 0x13, 0x56, 0x03, 0xdf, 0xee, 0x4a, - 0x2b, 0x9d, 0xcb, 0x1a, 0xd4, 0x6d, 0x86, 0x8a, 0xf9, 0x65, 0x1f, 0x68, 0x05, 0x0a, 0x01, 0x21, - 0xaa, 0x46, 0xbd, 0xa6, 0xe8, 0x77, 0x09, 0x09, 0x4d, 0x8e, 0xe1, 0x47, 0x4a, 0x12, 0xf6, 0xe4, - 0x11, 0x9c, 0xff, 0x8f, 0x5e, 0x85, 0x72, 0x10, 0x3a, 0x7e, 0xe8, 0xd0, 0x01, 0x8f, 0xa9, 0xea, - 0xeb, 0x73, 0x29, 0xe9, 0xf7, 0x7a, 0xd8, 0x6b, 0xef, 0x86, 0x8e, 0x19, 0x13, 0xa1, 0xb7, 0x60, - 0xc6, 0x89, 0x7c, 0x17, 0xa7, 0x8a, 0x91, 0x4b, 0x43, 0xc5, 0xc8, 0x5b, 0x0a, 0x2f, 0x8b, 0x91, - 0x9d, 0xcc, 0x37, 0xfa, 0x08, 0xd4, 0x79, 0xca, 0xc5, 0x71, 0x5d, 0xcb, 0xc6, 0x76, 0x97, 0xc8, - 0x4a, 0x93, 0x9a, 0xe7, 0xd3, 0x3b, 0x8e, 0xeb, 0x6e, 0x30, 0x18, 0x5f, 0xe9, 0x81, 0x67, 0x5b, - 0xae, 0xdf, 0x11, 0xb5, 0xa0, 0x66, 0x89, 0x7d, 0x6f, 0xfb, 0x1d, 0x74, 0x03, 0xf4, 0x90, 0xd8, - 0x7e, 0xd8, 0xe6, 0x85, 0xa4, 0x56, 0x44, 0x31, 0x95, 0xc5, 0xa0, 0x75, 0x01, 0x6f, 0x39, 0x3d, - 0xd2, 0xa4, 0x98, 0xa6, 0x28, 0x23, 0x1b, 0x7b, 0x82, 0xb2, 0x9a, 0xa6, 0x64, 0x9b, 0x08, 0xa7, - 0xbc, 0xc6, 0xa4, 0x1e, 0xb8, 0x8e, 0x8d, 0x2d, 0x66, 0xbd, 0xb2, 0x22, 0xb4, 0x2a, 0x61, 0xcc, - 0x55, 0xa0, 0xeb, 0x50, 0x17, 0xb5, 0x30, 0xa4, 0x6d, 0x89, 0x2d, 0x65, 0x9a, 0x9f, 0xcd, 0xa7, - 0x15, 0x94, 0x17, 0x4a, 0xa0, 0xcf, 0xc0, 0x45, 0xb6, 0xd9, 0x91, 0x63, 0x62, 0xf7, 0xb9, 0x90, - 0xda, 0xfd, 0x50, 0x48, 0xab, 0xa7, 0xaa, 0xbb, 0x17, 0x7b, 0xf8, 0xf8, 0xb6, 0xc2, 0x6f, 0x4a, - 0xf4, 0x03, 0x5e, 0xa0, 0x81, 0x83, 0xc0, 0x75, 0x88, 0xf2, 0x27, 0x33, 0xe2, 0xfe, 0x42, 0x02, - 0x85, 0x4b, 0x59, 0x82, 0x12, 0xc5, 0xd1, 0x01, 0x53, 0x1d, 0x5d, 0xd4, 0x1c, 0xb1, 0xcf, 0xad, - 0x36, 0xdf, 0x5c, 0x28, 0x76, 0x89, 0x98, 0xc0, 0xac, 0x28, 0xe6, 0xe4, 0x10, 0xce, 0xfe, 0xc7, - 0x01, 0x31, 0x46, 0xfb, 0xa1, 0x4d, 0xac, 0x4e, 0xe8, 0xf7, 0x03, 0x8b, 0xe2, 0x4e, 0x03, 0x71, - 0x45, 0xd6, 0x15, 0xe6, 0x2e, 0x43, 0xb4, 0x70, 0x07, 0x7d, 0x1a, 0xa6, 0xdb, 0x4e, 0x74, 0x60, - 0xed, 0xf7, 0x5d, 0xd7, 0xf2, 0x03, 0xda, 0x98, 0xe3, 0x8b, 0x3c, 0x1f, 0x2f, 0xf2, 0xa6, 0x13, - 0x1d, 0xdc, 0xe9, 0xbb, 0xee, 0x4e, 0x40, 0xcd, 0x6a, 0x3b, 0xf9, 0x60, 0x32, 0x67, 0x9b, 0x18, - 0xa1, 0xe1, 0xc0, 0x0a, 0x85, 0x89, 0x37, 0xe6, 0x85, 0xcc, 0x9d, 0xc8, 0x64, 0x60, 0x65, 0xf8, - 0x6f, 0x40, 0x15, 0x07, 0x4e, 0x7c, 0x0d, 0xb3, 0x30, 0xa4, 0x7e, 0x37, 0x77, 0xb7, 0x54, 0x1e, - 0x13, 0x70, 0xe0, 0x24, 0xd5, 0x3b, 0x33, 0x22, 0xeb, 0x49, 0xe3, 0x75, 0x58, 0xe4, 0xeb, 0x50, - 0x8f, 0xc1, 0x62, 0x21, 0x7e, 0x0a, 0xc4, 0xa3, 0x23, 0x4b, 0x79, 0x97, 0x25, 0x6e, 0x19, 0x0b, - 0x6b, 0xea, 0x29, 0x52, 0x8b, 0xfd, 0x55, 0x2e, 0xa6, 0x46, 0x53, 0x5f, 0x62, 0xad, 0x39, 0x97, - 0x96, 0x10, 0x4c, 0xa3, 0xc1, 0xbd, 0xc0, 0xb4, 0x84, 0x36, 0x39, 0x90, 0x89, 0x9c, 0x3f, 0x45, - 0x10, 0x24, 0x17, 0x85, 0xf7, 0xa7, 0xc7, 0x9e, 0x44, 0xaf, 0xc1, 0xdc, 0x90, 0xc8, 0x3d, 0xdc, - 0x23, 0x8d, 0x65, 0xde, 0xd5, 0x6c, 0x46, 0xe6, 0x0f, 0x71, 0x8f, 0xa0, 0x55, 0x98, 0xdd, 0xeb, - 0x47, 0x03, 0x8b, 0x76, 0x43, 0x12, 0x75, 0x7d, 0xb7, 0xcd, 0x54, 0xe6, 0x12, 0x8f, 0x7f, 0x66, - 0x18, 0xa2, 0xa5, 0xe0, 0x0f, 0x22, 0x74, 0x15, 0xaa, 0x2c, 0x88, 0x08, 0xd8, 0x04, 0x9d, 0x76, - 0x63, 0x45, 0xbc, 0x8f, 0x51, 0xa0, 0xad, 0xf6, 0xdb, 0x85, 0x72, 0x41, 0x2f, 0x32, 0x0d, 0xc6, - 0x6d, 0xeb, 0xfd, 0xbe, 0x1f, 0xf6, 0x7b, 0xc6, 0x3f, 0xe6, 0xa0, 0xac, 0xf6, 0x9d, 0x91, 0x12, - 0x43, 0x6d, 0xb4, 0xc4, 0xf0, 0x1a, 0xd4, 0x78, 0xfd, 0x53, 0x36, 0xc3, 0x5d, 0x65, 0x30, 0xb5, - 0x1a, 0xa3, 0xfe, 0x30, 0x5d, 0x9f, 0x55, 0xc8, 0xd6, 0x67, 0xa5, 0x5f, 0x6e, 0x14, 0xb3, 0x2f, - 0x37, 0x6e, 0xc8, 0x52, 0x2b, 0x5e, 0xde, 0x2c, 0x1c, 0x51, 0x35, 0xd6, 0x84, 0x9d, 0x40, 0x14, - 0x59, 0xb5, 0x06, 0x01, 0x41, 0x1f, 0x03, 0xc4, 0x29, 0xb3, 0x95, 0xa5, 0x25, 0xde, 0xdd, 0x0c, - 0xc3, 0xdc, 0x49, 0x55, 0x97, 0x8e, 0x7b, 0xc8, 0x51, 0x1e, 0xfb, 0x90, 0x63, 0xa4, 0x72, 0xbc, - 0x32, 0x5a, 0x39, 0x3e, 0xf4, 0xd8, 0x03, 0x46, 0x1e, 0x7b, 0x18, 0xdf, 0x2c, 0x40, 0x59, 0x5d, - 0x48, 0xa5, 0x36, 0x7f, 0xed, 0x09, 0x9b, 0x3f, 0xba, 0xcc, 0x76, 0x04, 0x1a, 0x0e, 0xf0, 0x9e, - 0x4b, 0xe4, 0x86, 0x93, 0x00, 0xd8, 0x56, 0x84, 0xf7, 0xfc, 0x90, 0xca, 0x3c, 0x93, 0xf8, 0x40, - 0xeb, 0x50, 0x56, 0x15, 0xd9, 0x23, 0x37, 0xad, 0xef, 0x86, 0x0e, 0x25, 0xaa, 0x24, 0xdb, 0x8c, - 0xe9, 0x98, 0x4d, 0x60, 0x97, 0xa9, 0xc4, 0x40, 0x16, 0x12, 0x16, 0xa5, 0x4d, 0xc4, 0x46, 0x27, - 0xb0, 0xbc, 0x96, 0xd0, 0xac, 0xe1, 0xd4, 0x17, 0x7a, 0x05, 0xca, 0xea, 0x51, 0xdf, 0x48, 0x31, - 0xdc, 0xa6, 0x44, 0x98, 0x31, 0x09, 0xda, 0x84, 0xd9, 0x58, 0x98, 0x16, 0x39, 0x0e, 0x9c, 0x90, - 0xb4, 0x65, 0x39, 0x5c, 0x23, 0xb3, 0xc5, 0x30, 0xd1, 0xde, 0x16, 0x78, 0x73, 0xc6, 0xce, 0x02, - 0x98, 0x1f, 0x62, 0x2a, 0x93, 0xe4, 0xe8, 0xcb, 0xbc, 0x87, 0xf9, 0xf4, 0x55, 0xec, 0x43, 0x99, - 0xaf, 0x37, 0xab, 0x34, 0xf9, 0x40, 0xf7, 0x60, 0x2e, 0x19, 0x9f, 0xfa, 0xbe, 0xe5, 0xe2, 0xb0, - 0x23, 0xde, 0x15, 0x54, 0xd7, 0x2f, 0x8e, 0x70, 0xd0, 0xf2, 0xfd, 0x6d, 0x46, 0x60, 0xea, 0xf6, - 0x10, 0x04, 0x6d, 0x80, 0x9e, 0xbc, 0xbf, 0xd9, 0xc7, 0x8e, 0x4b, 0xda, 0x7c, 0xbf, 0x49, 0x4f, - 0x24, 0x7e, 0x80, 0x73, 0x87, 0xe3, 0xcd, 0xe4, 0xc5, 0x8e, 0x00, 0x18, 0x7f, 0x9b, 0x83, 0xe9, - 0xcc, 0xaa, 0x64, 0x62, 0x19, 0x2d, 0x1b, 0xc9, 0x5e, 0x85, 0x6a, 0xba, 0xd8, 0x5e, 0x96, 0x14, - 0xd8, 0x49, 0x89, 0xfd, 0xa8, 0xd9, 0x35, 0xa0, 0x24, 0x4d, 0x57, 0xde, 0x28, 0xa9, 0x4f, 0xe6, - 0xf8, 0xe3, 0xce, 0x12, 0xf5, 0x16, 0xf6, 0xa7, 0x2b, 0x4c, 0xac, 0xe3, 0x6f, 0xc2, 0x54, 0x48, - 0x70, 0xe4, 0x7b, 0xd2, 0x0a, 0xaf, 0x8c, 0xd7, 0xa9, 0x35, 0x93, 0x13, 0x99, 0x92, 0xd8, 0x38, - 0x82, 0x29, 0x01, 0x41, 0x55, 0x28, 0xbd, 0xe3, 0x1d, 0x78, 0xfe, 0x91, 0xa7, 0x5f, 0x40, 0x75, - 0x80, 0x9d, 0x80, 0xca, 0xaa, 0x51, 0x5d, 0x43, 0xf3, 0xa0, 0xa7, 0x0b, 0xbb, 0x99, 0x86, 0xeb, - 0x39, 0x84, 0xa0, 0xde, 0x24, 0xee, 0xbe, 0xe9, 0xbb, 0x2e, 0x69, 0xdf, 0xc2, 0xf6, 0x81, 0x9e, - 0x47, 0xd3, 0x50, 0x31, 0x6d, 0x51, 0x5e, 0x1a, 0xe9, 0x05, 0xb4, 0x04, 0x73, 0xdb, 0xf8, 0x2b, - 0x83, 0x77, 0x3c, 0xe7, 0xfd, 0x3e, 0xf1, 0x48, 0x14, 0x71, 0x94, 0x5e, 0x34, 0x56, 0xa0, 0x96, - 0xd6, 0x59, 0x25, 0x19, 0x2d, 0x89, 0x81, 0x7f, 0x57, 0x83, 0xb2, 0xd2, 0xcf, 0x74, 0xc5, 0xae, - 0x96, 0xa9, 0xd8, 0x55, 0x6e, 0x2b, 0x09, 0xa0, 0x39, 0x21, 0x3b, 0xb5, 0xad, 0xc2, 0xac, 0xd2, - 0x6a, 0x86, 0xb6, 0xba, 0x38, 0xea, 0xca, 0xa2, 0x81, 0x19, 0x85, 0xb8, 0x4f, 0x06, 0xf7, 0x70, - 0xd4, 0x45, 0x6f, 0x02, 0xf0, 0x27, 0x2e, 0x76, 0x17, 0x3b, 0x9e, 0x3c, 0x0c, 0x2d, 0xae, 0xc5, - 0x8f, 0x61, 0xdf, 0xc5, 0x0e, 0xbd, 0xe3, 0x87, 0xb7, 0x3d, 0xb6, 0x0d, 0x56, 0x18, 0xe5, 0x06, - 0x23, 0x34, 0xbe, 0xae, 0xc1, 0xcc, 0x90, 0x2d, 0x9c, 0xa4, 0x1f, 0x6b, 0x30, 0x87, 0x29, 0x25, - 0xbd, 0x80, 0xed, 0x81, 0xc9, 0x9a, 0x0a, 0x3d, 0x99, 0x8d, 0x51, 0xf1, 0xa2, 0x8e, 0xaa, 0xcb, - 0x88, 0xbb, 0x2b, 0x8c, 0xb8, 0x3b, 0x63, 0x0b, 0xaa, 0x29, 0xeb, 0x7a, 0x82, 0xbe, 0x9e, 0x58, - 0x28, 0x6d, 0xbc, 0x0a, 0xfa, 0xb0, 0xa1, 0x65, 0xef, 0x33, 0xb5, 0xa1, 0xfb, 0xcc, 0xbf, 0xd2, - 0x60, 0x66, 0xc8, 0xa6, 0x4e, 0x62, 0x60, 0xf4, 0xe6, 0xe1, 0x13, 0x50, 0x89, 0x4d, 0x90, 0x4f, - 0xbc, 0xbe, 0x8e, 0x46, 0xad, 0xd5, 0x4c, 0x88, 0xd8, 0x32, 0x73, 0x9f, 0xe8, 0x78, 0x9d, 0xe1, - 0xaa, 0xed, 0x19, 0x85, 0x50, 0x75, 0xdb, 0x1f, 0x07, 0x14, 0xd3, 0x8e, 0xd8, 0x94, 0xc2, 0xc4, - 0x82, 0xfc, 0x6b, 0x0d, 0x80, 0xc5, 0xa4, 0xa2, 0xcc, 0x02, 0x7d, 0x14, 0x66, 0xb9, 0x8e, 0x1c, - 0x61, 0xd7, 0x15, 0x21, 0x6c, 0x4f, 0x4d, 0xa8, 0xce, 0x10, 0xef, 0x62, 0xd7, 0x65, 0xe4, 0x0f, - 0x22, 0xf4, 0x2a, 0xcc, 0x07, 0xa1, 0x6f, 0x93, 0x28, 0xca, 0x52, 0xcb, 0x95, 0x96, 0xb8, 0x54, - 0x83, 0x35, 0x98, 0x3f, 0x38, 0xe4, 0x11, 0x60, 0xb6, 0x81, 0x50, 0x57, 0xfd, 0xe0, 0x90, 0xc5, - 0x82, 0x29, 0xfa, 0x75, 0x58, 0xa4, 0x3e, 0xc5, 0xae, 0x15, 0x06, 0x76, 0xaa, 0x85, 0xa7, 0x66, - 0x8e, 0x38, 0xd6, 0x0c, 0x6c, 0xd5, 0xe6, 0x61, 0x64, 0x7c, 0x2d, 0x07, 0xb5, 0x64, 0x3a, 0x8f, - 0xd6, 0xc7, 0x4c, 0xc8, 0x1b, 0x3b, 0xa1, 0x87, 0x8f, 0x99, 0x90, 0xf7, 0xb8, 0x09, 0x3d, 0x8c, - 0xd0, 0xe7, 0xe1, 0xb2, 0x6a, 0x10, 0xf5, 0xa3, 0x80, 0x78, 0xed, 0x6c, 0x43, 0x31, 0xb1, 0x86, - 0xa4, 0x69, 0x0a, 0x92, 0x54, 0xfb, 0xb1, 0x02, 0x89, 0xa7, 0x37, 0x24, 0x90, 0x87, 0x27, 0x09, - 0xa4, 0xf8, 0x58, 0x81, 0x7c, 0x11, 0xca, 0xec, 0x20, 0xc1, 0xc3, 0xaa, 0x79, 0x28, 0x72, 0x0a, - 0x3e, 0xff, 0xbc, 0x29, 0x3e, 0xd8, 0xfe, 0x2e, 0x39, 0x24, 0x6d, 0x3e, 0xd7, 0xbc, 0x99, 0x00, - 0xe2, 0x24, 0xc2, 0xde, 0x80, 0x12, 0x31, 0xa3, 0xbc, 0x48, 0x22, 0xdc, 0x62, 0x00, 0xe3, 0x97, - 0x34, 0x00, 0xd6, 0xbf, 0x54, 0x9f, 0x97, 0xa1, 0xc8, 0x1f, 0x59, 0x8e, 0x44, 0x15, 0x8a, 0x07, - 0x53, 0xe0, 0xd9, 0xc9, 0x34, 0x7e, 0x3c, 0x32, 0x96, 0x8e, 0xa3, 0x19, 0x59, 0x1b, 0x53, 0x3c, - 0x72, 0x82, 0x4f, 0xc8, 0x18, 0xda, 0xf8, 0x8f, 0xa2, 0x78, 0x6f, 0x1d, 0xaf, 0xfa, 0x2b, 0x80, - 0xe2, 0x29, 0xa8, 0x10, 0x51, 0x2d, 0xfb, 0x6c, 0x8c, 0x91, 0x81, 0x62, 0x84, 0x3e, 0x09, 0x4b, - 0xa3, 0xe4, 0xe9, 0x57, 0xbc, 0x0b, 0x23, 0x6d, 0x78, 0x64, 0x78, 0x1d, 0xea, 0x62, 0x41, 0xe2, - 0x21, 0x64, 0x29, 0x2f, 0x87, 0xc6, 0xdd, 0x7f, 0x01, 0x2e, 0x87, 0x2c, 0xec, 0x6f, 0xef, 0x59, - 0x6d, 0x7e, 0x79, 0x62, 0x45, 0x07, 0x4e, 0x10, 0x70, 0xff, 0xd8, 0xf7, 0xa8, 0xd4, 0x93, 0x8b, - 0x92, 0x46, 0xdc, 0xaf, 0x34, 0x05, 0xc5, 0x06, 0x23, 0x60, 0xe7, 0x36, 0xd5, 0x01, 0x73, 0xf2, - 0xd9, 0xd6, 0x42, 0x5b, 0x16, 0x25, 0xc1, 0x7d, 0x32, 0xc8, 0x34, 0x7d, 0x0b, 0xae, 0xa8, 0xa6, - 0x7b, 0x7c, 0x97, 0xe0, 0xc7, 0x5a, 0xab, 0xcb, 0xf6, 0x01, 0xde, 0xbc, 0x98, 0x19, 0xfc, 0x16, - 0xa3, 0xe1, 0xa7, 0xdc, 0x7b, 0x0e, 0x15, 0x3d, 0x7c, 0x0a, 0x1a, 0xd9, 0x1e, 0xb8, 0x3e, 0x88, - 0xc6, 0xa2, 0xd4, 0x63, 0x21, 0xdd, 0x98, 0xe9, 0xac, 0x68, 0xf8, 0x26, 0x2c, 0x8d, 0x69, 0xc8, - 0x14, 0x49, 0x86, 0xc4, 0xf3, 0xc3, 0xed, 0x98, 0x4e, 0x3d, 0x66, 0x3c, 0x0f, 0x7b, 0xbe, 0x0a, - 0x7c, 0x47, 0xc6, 0x7b, 0xc8, 0x90, 0xcc, 0xf1, 0x75, 0x08, 0xb5, 0x22, 0x0f, 0x07, 0x51, 0xd7, - 0xa7, 0xb2, 0x89, 0x78, 0x42, 0xad, 0x77, 0x08, 0x6d, 0x4a, 0x84, 0xa0, 0x66, 0x82, 0x89, 0xb3, - 0x63, 0x56, 0x10, 0xfa, 0x81, 0x1f, 0x11, 0x8b, 0xfb, 0x0a, 0xd1, 0xb0, 0x2a, 0x05, 0xa3, 0x12, - 0x66, 0xbb, 0x82, 0x84, 0x6d, 0x93, 0xe3, 0x7a, 0x60, 0xd1, 0x8a, 0x13, 0xf6, 0xd2, 0x3d, 0xd4, - 0x86, 0x7a, 0xd8, 0x10, 0x24, 0xa3, 0x3d, 0x04, 0xbe, 0xef, 0x5a, 0x91, 0xdd, 0x25, 0xed, 0xbe, - 0x9b, 0xe1, 0x61, 0x3a, 0xe9, 0x61, 0xd7, 0xf7, 0xdd, 0xa6, 0x24, 0x89, 0x7b, 0x30, 0x7e, 0x45, - 0x83, 0x6a, 0xaa, 0x68, 0x8e, 0x9d, 0x5b, 0xb9, 0x4f, 0x10, 0x35, 0x76, 0xd2, 0x0c, 0x93, 0x73, - 0x6b, 0xe2, 0x1a, 0x4d, 0xa0, 0x89, 0xd7, 0x7f, 0x03, 0xaa, 0x3c, 0x09, 0x21, 0x5b, 0xe5, 0x86, - 0x5a, 0x25, 0xa6, 0x65, 0x42, 0x14, 0xff, 0x2f, 0xaa, 0x7a, 0xc5, 0x59, 0xce, 0xf8, 0x4f, 0x0d, - 0xa6, 0x33, 0xc5, 0x7b, 0x13, 0x72, 0xf2, 0x59, 0xa8, 0xa7, 0x38, 0xb1, 0x0e, 0xd7, 0x25, 0x33, - 0x0b, 0x63, 0x98, 0x79, 0xb4, 0x6e, 0xd6, 0xa2, 0xb4, 0xd5, 0x7f, 0x0a, 0x6a, 0xdc, 0xbb, 0xa8, - 0x31, 0xf3, 0x43, 0xf1, 0x38, 0x8f, 0x12, 0xe5, 0xa0, 0xd5, 0xa3, 0xe4, 0x83, 0x8d, 0x9a, 0xe2, - 0x35, 0x29, 0x0f, 0x5d, 0x18, 0xc3, 0x2e, 0x1b, 0x95, 0xa6, 0xbe, 0x8c, 0x0f, 0x4a, 0x50, 0x4d, - 0xf5, 0x8c, 0x5e, 0x87, 0xc5, 0x88, 0xfa, 0x21, 0xb1, 0xf6, 0x30, 0xb5, 0xbb, 0xe9, 0xd5, 0x14, - 0xfe, 0x67, 0x8e, 0x63, 0xf9, 0x7d, 0x60, 0xa2, 0x09, 0x6f, 0x72, 0x0f, 0xc4, 0x55, 0x30, 0x12, - 0xfb, 0x48, 0xdc, 0x4a, 0xb8, 0x94, 0x79, 0x89, 0x6e, 0xf2, 0x2d, 0x44, 0x35, 0x5b, 0x85, 0xd9, - 0x80, 0x79, 0x19, 0xfe, 0xb0, 0xb9, 0x23, 0x1b, 0xc8, 0xf0, 0x4f, 0x22, 0xb6, 0xfd, 0x8e, 0xa0, - 0xdd, 0x80, 0xab, 0x21, 0xde, 0xa7, 0x56, 0x7b, 0xcf, 0x12, 0x52, 0x72, 0x09, 0x6e, 0x93, 0x30, - 0x3d, 0x94, 0x70, 0x25, 0xcb, 0x8c, 0x6c, 0x73, 0x8f, 0xcf, 0x69, 0x9b, 0xd3, 0x24, 0x03, 0xae, - 0xc3, 0xa2, 0xea, 0x44, 0xa5, 0xc0, 0x64, 0x5b, 0xb9, 0x05, 0x89, 0xb6, 0x4d, 0x91, 0x0e, 0x13, - 0x6d, 0x3e, 0x0f, 0x97, 0xb3, 0x03, 0xf7, 0x48, 0x8f, 0xb2, 0xc3, 0xa3, 0x6c, 0x29, 0x9c, 0x48, - 0x23, 0x35, 0xea, 0x03, 0x49, 0x20, 0xda, 0xdf, 0x00, 0x79, 0xee, 0x49, 0x8d, 0x26, 0x1c, 0x88, - 0x4c, 0xab, 0xc4, 0x23, 0xbd, 0x0e, 0x8b, 0x38, 0x08, 0xdc, 0xc1, 0xa8, 0xe8, 0x85, 0x1b, 0x9f, - 0xe3, 0xd8, 0x21, 0xd1, 0xbf, 0x04, 0x33, 0xa2, 0x51, 0xd2, 0x7b, 0x45, 0xbe, 0x43, 0x64, 0xe0, - 0xd1, 0xce, 0x7b, 0x7d, 0x4a, 0x8e, 0xc5, 0xa3, 0xc5, 0xb4, 0x8b, 0x11, 0x9d, 0x3f, 0x60, 0x48, - 0x76, 0x86, 0x8e, 0x2d, 0x5c, 0x34, 0x7a, 0x9c, 0xc8, 0xa5, 0x97, 0xe1, 0x44, 0x63, 0x25, 0xfe, - 0x1a, 0x2c, 0xa4, 0x7b, 0x38, 0xc2, 0x6e, 0xc6, 0xbb, 0xa0, 0xa4, 0xe5, 0xbb, 0xd8, 0x15, 0x4d, - 0x3e, 0x0b, 0xcb, 0xe9, 0x26, 0x43, 0xe2, 0x16, 0x3e, 0x65, 0x29, 0x69, 0x37, 0x22, 0x6d, 0x77, - 0x58, 0x7a, 0x22, 0x35, 0x58, 0x77, 0xb3, 0x82, 0x7b, 0x11, 0xa6, 0x55, 0xf8, 0x23, 0xc8, 0x64, - 0x4a, 0x50, 0x02, 0x05, 0x11, 0xdb, 0x22, 0xbb, 0xa1, 0x4f, 0x69, 0x3c, 0xbe, 0x2e, 0xb7, 0x48, - 0x09, 0x15, 0x64, 0x3f, 0x0d, 0x97, 0x86, 0x1f, 0xf9, 0xa5, 0x19, 0x98, 0x95, 0x91, 0xd4, 0xf0, - 0x33, 0x75, 0xe5, 0x06, 0xdf, 0x83, 0x29, 0x71, 0x09, 0x9e, 0xd4, 0xe2, 0x6a, 0x4f, 0xa8, 0x46, - 0x3e, 0x65, 0xad, 0x98, 0xf1, 0x81, 0x06, 0x65, 0xf5, 0x8c, 0x07, 0x5d, 0x82, 0x9c, 0x1f, 0xc8, - 0x27, 0xee, 0x99, 0x1c, 0x50, 0xce, 0x0f, 0x4e, 0x5d, 0x7d, 0x96, 0x09, 0xff, 0x0b, 0xa7, 0x08, - 0xff, 0x8d, 0x1f, 0xe5, 0xa0, 0xf2, 0xe0, 0xd0, 0xb6, 0xf9, 0x72, 0xa1, 0xab, 0x99, 0x97, 0xf6, - 0x19, 0x36, 0xc4, 0x7b, 0xfa, 0x13, 0xee, 0xa1, 0x2e, 0x8d, 0xbc, 0x2a, 0x4f, 0xbd, 0x4e, 0xbb, - 0x0a, 0xd5, 0xa8, 0xeb, 0x87, 0xd4, 0x4a, 0xbd, 0x2b, 0x37, 0x81, 0x83, 0xf8, 0x6f, 0x18, 0xb0, - 0x38, 0xa9, 0x8b, 0x23, 0xcb, 0x3f, 0x24, 0xa1, 0x8b, 0x79, 0x08, 0xa2, 0x5e, 0x79, 0xca, 0x0a, - 0xb1, 0x85, 0x2e, 0x8e, 0x76, 0x62, 0xac, 0x7a, 0x6a, 0x81, 0x56, 0xa0, 0xc6, 0xda, 0x75, 0x6c, - 0x6b, 0x9f, 0xbf, 0xe6, 0x17, 0x15, 0x12, 0xd0, 0xc5, 0xd1, 0x5d, 0xfb, 0x0e, 0x7f, 0xce, 0x7f, - 0x11, 0xca, 0x31, 0x56, 0xd8, 0x76, 0xa9, 0x23, 0x51, 0x1f, 0x81, 0xba, 0x8b, 0x23, 0x7e, 0x6c, - 0xf5, 0x3a, 0x3c, 0xa1, 0x26, 0x8c, 0xb9, 0xc6, 0xa0, 0x1b, 0x1c, 0xc8, 0x73, 0x03, 0x4b, 0x71, - 0xe0, 0x46, 0x7d, 0x2b, 0xd5, 0x42, 0x5a, 0xf3, 0xbc, 0x42, 0xb7, 0xfc, 0xed, 0xb8, 0xa1, 0xf1, - 0x39, 0x21, 0x58, 0x31, 0xbd, 0x13, 0x0e, 0x71, 0x63, 0x7f, 0xa2, 0xc0, 0xf8, 0x56, 0x1e, 0xca, - 0xac, 0x39, 0xcf, 0x48, 0x3e, 0xcb, 0xb2, 0xa4, 0x32, 0x24, 0xf9, 0x6c, 0x86, 0xe4, 0x89, 0x6b, - 0x32, 0x5a, 0xbb, 0x78, 0x9a, 0x9f, 0xc4, 0x48, 0xa7, 0x3b, 0x4b, 0xc3, 0xe9, 0xce, 0xd3, 0xe6, - 0x25, 0x87, 0x72, 0x8e, 0x95, 0xd1, 0x1f, 0x98, 0xb9, 0x0a, 0xd5, 0xf8, 0x91, 0x30, 0x15, 0x59, - 0xc9, 0x82, 0x09, 0x0a, 0xd4, 0x8a, 0xc6, 0x2c, 0x6e, 0xf5, 0xe9, 0x16, 0xb7, 0x76, 0xc2, 0xe2, - 0x7e, 0x55, 0x13, 0xcb, 0xc3, 0x0f, 0x3f, 0xea, 0xc4, 0xa1, 0x8d, 0xb9, 0x0b, 0xe3, 0x77, 0xf5, - 0xe2, 0xc4, 0xb1, 0x0a, 0x53, 0xdc, 0x6b, 0xaa, 0x4b, 0x79, 0x94, 0x21, 0xe4, 0x06, 0x68, 0x4a, - 0x0a, 0x46, 0x2b, 0x7f, 0x67, 0x21, 0x3f, 0x86, 0x96, 0x2f, 0x8f, 0xfa, 0xed, 0x05, 0xe3, 0x75, - 0x28, 0xc9, 0x97, 0x19, 0x7c, 0xc5, 0x8e, 0x3d, 0xa9, 0x61, 0xec, 0x5f, 0xb4, 0x08, 0x53, 0x11, - 0x7f, 0xa5, 0x2c, 0xf5, 0x42, 0x7e, 0x19, 0x6f, 0xf1, 0x8c, 0x2d, 0xbf, 0x1e, 0xce, 0x56, 0x24, - 0x68, 0x8f, 0xaf, 0xc7, 0xc9, 0x65, 0xea, 0x71, 0xfe, 0x42, 0x03, 0x10, 0x3b, 0x0a, 0x1f, 0xfa, - 0xc4, 0xdb, 0xbd, 0x25, 0x28, 0x05, 0x84, 0x84, 0x0c, 0x25, 0xd9, 0x60, 0x9f, 0x5b, 0xed, 0xf8, - 0x72, 0x2e, 0x9f, 0xba, 0x9c, 0x1b, 0xbe, 0x0a, 0x2c, 0x9c, 0xf2, 0x2a, 0xf0, 0x35, 0x79, 0x9e, - 0x64, 0x33, 0x24, 0x32, 0xc5, 0x9b, 0xc8, 0x8d, 0x05, 0xf3, 0x4d, 0x86, 0x11, 0x67, 0x4c, 0xfe, - 0xaf, 0xb1, 0x05, 0x95, 0x18, 0x3e, 0x7a, 0x0f, 0xa5, 0x8d, 0xbf, 0x87, 0xe2, 0x0f, 0x3e, 0x68, - 0x22, 0x50, 0xbc, 0x4f, 0x5a, 0x91, 0xd1, 0x04, 0x24, 0x0a, 0x68, 0xb8, 0x48, 0xd4, 0x65, 0xcf, - 0x2b, 0x49, 0x89, 0x80, 0x78, 0xc0, 0x99, 0x84, 0xa9, 0x89, 0xec, 0xe2, 0x3a, 0x01, 0x54, 0x87, - 0x5c, 0xdc, 0x71, 0x8e, 0x46, 0xc6, 0x17, 0x60, 0x2e, 0xd3, 0xa9, 0xbc, 0xd7, 0x6d, 0x64, 0x7b, - 0x2d, 0x3c, 0xbe, 0x83, 0x4d, 0x40, 0x4d, 0x16, 0x13, 0x36, 0x19, 0x93, 0x4d, 0xc5, 0xd5, 0x1a, - 0x54, 0xd8, 0x61, 0x8f, 0x57, 0x05, 0x8c, 0xdb, 0xcd, 0x44, 0xd5, 0x40, 0xf9, 0x40, 0xfe, 0x67, - 0xac, 0xc1, 0x5c, 0xa6, 0x17, 0xc9, 0x46, 0x4a, 0x16, 0x5a, 0x46, 0x16, 0x36, 0xaf, 0xb4, 0xbb, - 0x4b, 0x98, 0x02, 0xb5, 0x5a, 0xdb, 0xe7, 0x53, 0x35, 0xff, 0x35, 0x8d, 0x57, 0xbf, 0xa5, 0x46, - 0x39, 0x87, 0x5b, 0xef, 0xe4, 0xb9, 0x3d, 0xf7, 0x7f, 0x27, 0xd6, 0xcd, 0xff, 0xbd, 0x28, 0x30, - 0xdf, 0xb8, 0xd9, 0x3c, 0xcf, 0x02, 0xf3, 0x8f, 0x03, 0x0a, 0x42, 0x72, 0xe8, 0xf8, 0xfd, 0x28, - 0xf5, 0xcb, 0x08, 0x82, 0x17, 0x5d, 0x61, 0xe2, 0xdf, 0x45, 0xb8, 0x0e, 0xf5, 0x98, 0x5a, 0x74, - 0x26, 0x1e, 0xd6, 0x4d, 0x2b, 0xe8, 0xa3, 0x54, 0xd5, 0xfa, 0xd4, 0x70, 0xd5, 0x7a, 0x29, 0x9e, - 0xb9, 0xf1, 0x3d, 0x51, 0x65, 0xcb, 0x27, 0x77, 0xd6, 0x72, 0x6e, 0x40, 0x29, 0xea, 0xdb, 0x36, - 0x91, 0xf5, 0x22, 0x65, 0x53, 0x7d, 0x9e, 0xcb, 0x64, 0x8d, 0x4d, 0x58, 0xbc, 0x4b, 0xa8, 0x8a, - 0xf2, 0xb8, 0x01, 0x3e, 0xfd, 0x7a, 0x19, 0xdf, 0xd0, 0x60, 0x69, 0xa4, 0x9b, 0xb3, 0x96, 0xcc, - 0x27, 0x98, 0xf3, 0xa5, 0x7c, 0x0b, 0xcc, 0x9f, 0x98, 0x54, 0x57, 0x64, 0xc6, 0x5d, 0xb8, 0x98, - 0xe2, 0xea, 0x9e, 0xc3, 0x4e, 0x84, 0x93, 0x54, 0xd5, 0x18, 0xdf, 0xd4, 0x60, 0x79, 0x5c, 0x4f, - 0x3f, 0xfe, 0x29, 0xfe, 0xa5, 0xa8, 0x5b, 0xde, 0xf0, 0xe5, 0x69, 0xc0, 0x0f, 0x27, 0x2c, 0x42, - 0xb5, 0xfd, 0x20, 0x14, 0x77, 0xd3, 0x82, 0xa3, 0x32, 0x03, 0xf0, 0x2b, 0x69, 0x7e, 0x2e, 0x0c, - 0x42, 0x95, 0x7c, 0xb3, 0x42, 0xf2, 0xbe, 0xf4, 0x3c, 0x75, 0x06, 0x4f, 0x5e, 0x4e, 0xa5, 0xaa, - 0xaf, 0x0a, 0x4f, 0xaa, 0x08, 0x46, 0x32, 0xe3, 0x28, 0x94, 0x52, 0xa4, 0x17, 0xfb, 0xbc, 0xee, - 0x39, 0x33, 0x95, 0xb3, 0x16, 0x30, 0x4a, 0x25, 0x3a, 0xd5, 0xb0, 0xdf, 0x16, 0xef, 0x41, 0xf8, - 0xde, 0x12, 0xf5, 0x7b, 0x93, 0xc8, 0xef, 0xd3, 0x50, 0xc1, 0x6e, 0xc7, 0x0f, 0x1d, 0xda, 0xed, - 0xf1, 0x01, 0xeb, 0xeb, 0xcb, 0x09, 0xb5, 0xec, 0xf8, 0xa6, 0xa2, 0x30, 0x13, 0xe2, 0xa7, 0x29, - 0x58, 0xfb, 0x63, 0x51, 0xb3, 0x9d, 0xf0, 0x79, 0xd6, 0xc2, 0x59, 0x86, 0xb2, 0x2d, 0x3b, 0x8f, - 0xcf, 0x2c, 0xf2, 0x9b, 0x69, 0x88, 0x48, 0xc1, 0x1e, 0x1c, 0xc6, 0x3f, 0xb7, 0xc1, 0x01, 0xf7, - 0x0f, 0x79, 0xf8, 0x29, 0x90, 0x22, 0x7b, 0x2d, 0x62, 0x64, 0xe0, 0x20, 0x91, 0xbe, 0xfe, 0x4e, - 0x1e, 0x6a, 0x1b, 0x7e, 0x2f, 0xc0, 0x36, 0x15, 0x0c, 0xbc, 0x07, 0x0b, 0x24, 0x0c, 0x2d, 0xc7, - 0x3b, 0xc4, 0xae, 0xd3, 0xb6, 0xb2, 0x11, 0x57, 0x75, 0xfd, 0x23, 0xe9, 0xbb, 0xd9, 0xb8, 0xd5, - 0x96, 0xa0, 0x6e, 0xca, 0x68, 0xec, 0xde, 0x05, 0x13, 0x91, 0x70, 0x18, 0x8a, 0x5c, 0xb8, 0xcc, - 0xba, 0x0e, 0x64, 0x8d, 0xa8, 0x25, 0xcf, 0xe4, 0xb1, 0xc3, 0x14, 0x89, 0xae, 0xd5, 0xb1, 0x23, - 0xa8, 0xc2, 0xd2, 0x16, 0x3f, 0xa7, 0x4b, 0x57, 0x7a, 0xef, 0x82, 0xd9, 0x20, 0xe1, 0x78, 0x1c, - 0xb2, 0x60, 0x89, 0x8d, 0x66, 0x8b, 0x4e, 0x2c, 0xc7, 0xb3, 0x82, 0xd0, 0xef, 0x84, 0x24, 0x8a, - 0x64, 0x5a, 0xec, 0xa5, 0xb1, 0x03, 0xc9, 0xff, 0xb7, 0xbc, 0x5d, 0x49, 0x7d, 0xef, 0x82, 0x39, - 0x4f, 0xc2, 0x51, 0x38, 0xda, 0x87, 0x65, 0x36, 0x00, 0xf5, 0x7d, 0xab, 0x87, 0xbd, 0x81, 0x15, - 0x10, 0xaf, 0xed, 0x78, 0x1d, 0x8b, 0xe2, 0xe8, 0x20, 0x92, 0xe1, 0xe0, 0x8d, 0xb1, 0x63, 0xb4, - 0x7c, 0xff, 0x01, 0xf6, 0x06, 0xbb, 0xa2, 0x41, 0x8b, 0xd1, 0xdf, 0xbb, 0x60, 0x2e, 0x92, 0x70, - 0x1c, 0xe6, 0x56, 0x49, 0xaa, 0x84, 0x71, 0x05, 0x2e, 0x9d, 0x20, 0x74, 0xe3, 0x45, 0xb8, 0xf6, - 0x44, 0x89, 0x19, 0x57, 0xe1, 0xca, 0x89, 0xb3, 0x35, 0xae, 0xc1, 0xd5, 0x27, 0xb0, 0x6a, 0xfc, - 0x9e, 0xf8, 0x5d, 0x13, 0x46, 0xa3, 0x4c, 0xf2, 0xc4, 0xd8, 0x7c, 0x15, 0x66, 0x87, 0xd6, 0xdc, - 0x51, 0xf7, 0x2c, 0x33, 0x41, 0x9a, 0xcb, 0xad, 0x36, 0x4f, 0xbe, 0xf8, 0x9d, 0x2c, 0xa9, 0xb8, - 0x73, 0xa9, 0x4b, 0xb8, 0xa2, 0x1c, 0xaa, 0xb1, 0x29, 0x0f, 0xd7, 0xd8, 0x18, 0x7f, 0x2e, 0xae, - 0x6d, 0x05, 0x9b, 0xd2, 0x22, 0x3f, 0x96, 0x4d, 0x8e, 0x2c, 0x8c, 0x5d, 0x1e, 0x65, 0x75, 0x2f, - 0xc2, 0x34, 0x3b, 0xb4, 0x87, 0xa4, 0x87, 0x1d, 0xcf, 0xf1, 0x3a, 0xb2, 0x7c, 0x9c, 0x9d, 0xe4, - 0x4d, 0x05, 0x43, 0x6b, 0xbc, 0x92, 0x81, 0xb5, 0x25, 0x69, 0x6b, 0x11, 0x6e, 0x6c, 0x36, 0x46, - 0x35, 0x53, 0xc2, 0x48, 0xe8, 0xb3, 0xcf, 0x4c, 0x67, 0x62, 0xc4, 0x6d, 0x7e, 0x76, 0x59, 0x7d, - 0x1b, 0x2e, 0x3e, 0xf6, 0x77, 0x09, 0xd1, 0x3c, 0xe8, 0xc9, 0xd7, 0x43, 0x3f, 0xec, 0x61, 0x57, - 0xbf, 0x80, 0x96, 0x60, 0x2e, 0x81, 0xde, 0xf1, 0x43, 0x9b, 0x97, 0x94, 0xeb, 0xda, 0xaa, 0x0b, - 0x97, 0x4f, 0xfa, 0x21, 0x42, 0xd6, 0x9d, 0x2c, 0xd8, 0xee, 0xbb, 0x34, 0xee, 0x6e, 0x05, 0x2e, - 0x27, 0xd0, 0xed, 0x91, 0xdf, 0x13, 0x14, 0x45, 0x03, 0x09, 0x85, 0xb8, 0x0b, 0xd6, 0x73, 0xab, - 0x2f, 0x03, 0x24, 0x15, 0x62, 0x68, 0x0a, 0x72, 0x8f, 0x5e, 0xd3, 0x2f, 0xa0, 0x0a, 0x14, 0x1f, - 0xbd, 0xd6, 0x6a, 0x6d, 0xeb, 0x1a, 0x07, 0xad, 0xeb, 0xb9, 0xd5, 0x8f, 0x01, 0x24, 0x95, 0x8c, - 0x08, 0x60, 0x2a, 0x1e, 0xba, 0x04, 0xf9, 0x6d, 0xff, 0x48, 0xd7, 0x50, 0x19, 0x0a, 0xf7, 0x9c, - 0x4e, 0x57, 0xcf, 0xad, 0xbe, 0x0a, 0xf5, 0x6c, 0xf9, 0x22, 0xeb, 0xa6, 0xb9, 0xa5, 0x5f, 0x60, - 0x7f, 0xcd, 0x0d, 0x5d, 0xe3, 0x85, 0x09, 0x1b, 0xa2, 0x30, 0xa1, 0xa9, 0xe7, 0x56, 0x1f, 0x41, - 0x35, 0x55, 0x0a, 0xc7, 0x78, 0x7d, 0xe8, 0xd3, 0x9b, 0xae, 0xeb, 0x1f, 0x91, 0xf6, 0x8e, 0xc7, - 0xc0, 0x42, 0x64, 0x31, 0xe8, 0xa6, 0xdb, 0xf3, 0x23, 0xca, 0x11, 0x1a, 0x6a, 0xc0, 0x7c, 0x0a, - 0xc1, 0xcb, 0x18, 0x38, 0x26, 0xb7, 0x6a, 0x43, 0x6e, 0x27, 0x60, 0x1c, 0xee, 0xf6, 0xa9, 0x60, - 0x75, 0x93, 0xb8, 0x82, 0x55, 0x2e, 0xee, 0x1c, 0xaa, 0x41, 0x59, 0x25, 0x7f, 0xf4, 0x3c, 0x9b, - 0xd7, 0x96, 0x17, 0x91, 0x90, 0xea, 0x05, 0x34, 0x07, 0x33, 0x43, 0x0b, 0xa1, 0x17, 0x11, 0x82, - 0x3a, 0xe7, 0x5a, 0xd9, 0x69, 0xa4, 0x4f, 0xad, 0xae, 0x41, 0x25, 0xce, 0x85, 0xb1, 0x9e, 0x1f, - 0xfa, 0x1e, 0x11, 0x42, 0xe4, 0x24, 0xba, 0xc6, 0x06, 0x51, 0x0d, 0x84, 0x74, 0xb2, 0xbf, 0x34, - 0xcb, 0xf8, 0xda, 0xd9, 0xdf, 0xd7, 0x2f, 0xb0, 0xd6, 0x77, 0x30, 0x6f, 0x02, 0x30, 0xd5, 0xa4, - 0x21, 0x5b, 0xba, 0xdc, 0xea, 0x6f, 0x6b, 0x30, 0x25, 0x7f, 0x6e, 0x96, 0xf7, 0x24, 0xfe, 0xd7, - 0x2f, 0xa0, 0x05, 0x98, 0x6d, 0xb5, 0xb6, 0x45, 0xa9, 0x43, 0x3c, 0x0b, 0x2e, 0x0f, 0x9e, 0xd7, - 0x95, 0x43, 0xc6, 0x98, 0x1c, 0x6b, 0xf0, 0x20, 0xae, 0x4d, 0x68, 0xee, 0xf6, 0xa3, 0x2e, 0x69, - 0xeb, 0x79, 0xa6, 0x3d, 0x71, 0x3f, 0x63, 0x7e, 0x32, 0x50, 0x2f, 0xa0, 0x8b, 0xb0, 0x90, 0xee, - 0x72, 0xd3, 0x7f, 0xe8, 0xd3, 0xae, 0xe3, 0x75, 0xf4, 0xe2, 0xea, 0x75, 0x28, 0xdd, 0x3e, 0xa6, - 0x21, 0xde, 0x09, 0xc4, 0xe4, 0xfd, 0x40, 0xbf, 0x80, 0x74, 0xa8, 0xb1, 0x93, 0xf0, 0x8e, 0xdb, - 0xe6, 0x41, 0xb2, 0xae, 0xad, 0x1a, 0x30, 0x3b, 0xb2, 0x8d, 0x33, 0x35, 0xd8, 0x08, 0xed, 0x4f, - 0xbe, 0x61, 0xfd, 0x8c, 0x1f, 0xea, 0x17, 0x6e, 0xbd, 0xf4, 0x77, 0xbf, 0x5f, 0xd6, 0xbe, 0xf7, - 0xe1, 0x0b, 0xda, 0x0f, 0x3f, 0x7c, 0x41, 0xfb, 0xa7, 0x0f, 0x5f, 0xd0, 0x7e, 0xeb, 0x5f, 0x5e, - 0xb8, 0x00, 0xba, 0x1f, 0x76, 0xd6, 0xa8, 0x73, 0x70, 0xb8, 0x76, 0x70, 0xc8, 0x7f, 0xf8, 0x7c, - 0x6f, 0x8a, 0xff, 0x79, 0xfd, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xcd, 0x39, 0x27, 0xe8, 0x7c, - 0x5d, 0x00, 0x00, + // 6458 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0x5d, 0x6c, 0x1c, 0xc9, + 0x71, 0xb0, 0x66, 0x7f, 0xb8, 0xbb, 0xb5, 0xcb, 0xe5, 0xb0, 0xf9, 0xb7, 0xa2, 0xa4, 0x13, 0x35, + 0x67, 0xdd, 0xc9, 0xb4, 0x8f, 0xe7, 0xe3, 0xdd, 0xf9, 0xe7, 0xb3, 0x3f, 0xfb, 0x24, 0x52, 0x3f, + 0x3c, 0x51, 0x22, 0x31, 0xbb, 0xa7, 0xcb, 0x21, 0xb1, 0xc7, 0xcd, 0xd9, 0xe6, 0xee, 0x80, 0xb3, + 0x33, 0x73, 0x33, 0xbd, 0x24, 0xd7, 0x41, 0x80, 0x1c, 0xf2, 0x03, 0x18, 0x08, 0x9c, 0xc4, 0x30, + 0xe0, 0x00, 0x31, 0x02, 0xe4, 0xc1, 0x40, 0x9c, 0xb7, 0x20, 0x2f, 0xf9, 0x79, 0x08, 0x02, 0xf8, + 0xc1, 0x09, 0x62, 0xd8, 0x40, 0x10, 0x38, 0x48, 0x1e, 0x92, 0x5c, 0x80, 0x3c, 0xe7, 0x25, 0x48, + 0xf2, 0x10, 0x24, 0xe8, 0xbf, 0xf9, 0xd9, 0x5d, 0x51, 0xd4, 0x8a, 0xd4, 0x39, 0x79, 0xe2, 0x4e, + 0x55, 0x75, 0x77, 0x75, 0x55, 0x75, 0x75, 0x75, 0x75, 0x35, 0x61, 0xfa, 0xe0, 0x30, 0x0c, 0xec, + 0x60, 0x6f, 0x2d, 0x08, 0x7d, 0xea, 0xa3, 0x92, 0xfc, 0x5c, 0xae, 0xf5, 0x08, 0xc5, 0x0a, 0xbc, + 0x3c, 0x4d, 0xc2, 0xd0, 0x0f, 0xe3, 0xcf, 0xf9, 0x8e, 0xdf, 0xf1, 0xf9, 0xcf, 0x57, 0xd9, 0x2f, + 0x09, 0x9d, 0x09, 0xfb, 0x11, 0xe5, 0x3f, 0x25, 0xa0, 0xde, 0x26, 0xb8, 0xed, 0xfa, 0xf6, 0x81, + 0xea, 0x85, 0x86, 0xd8, 0x26, 0xaa, 0x17, 0xa3, 0x0d, 0x70, 0x97, 0x50, 0x93, 0xbc, 0xdf, 0x27, + 0x11, 0x45, 0xab, 0x50, 0xb2, 0x7d, 0x8f, 0x92, 0x63, 0xda, 0xd0, 0x56, 0xb4, 0x1b, 0xd5, 0x75, + 0x7d, 0x4d, 0xb1, 0xb6, 0x21, 0xe0, 0xa6, 0x22, 0x40, 0x3a, 0xe4, 0x0f, 0xc8, 0xa0, 0x91, 0x5b, + 0xd1, 0x6e, 0xd4, 0x4c, 0xf6, 0x13, 0x35, 0xa0, 0x74, 0x48, 0xc2, 0xc8, 0xf1, 0xbd, 0x46, 0x7e, + 0x45, 0xbb, 0x51, 0x30, 0xd5, 0xa7, 0xf1, 0xa1, 0x06, 0x55, 0x3e, 0x4c, 0x14, 0xf8, 0x5e, 0x44, + 0xd0, 0x6b, 0x50, 0x0b, 0x49, 0xc7, 0xf1, 0x3d, 0x8b, 0xcf, 0x49, 0x0e, 0x56, 0x5f, 0x53, 0x33, + 0xbc, 0xcd, 0xfe, 0x9a, 0x55, 0x41, 0xc3, 0x3f, 0xd0, 0xcb, 0x50, 0x14, 0xb4, 0x39, 0x4e, 0x3b, + 0x1b, 0x33, 0x76, 0x9f, 0x0c, 0x04, 0xb9, 0xc0, 0xa3, 0x79, 0x28, 0x1e, 0x62, 0xb7, 0x4f, 0x38, + 0x0f, 0x35, 0x53, 0x7c, 0xa0, 0x4b, 0x50, 0xf1, 0x7c, 0x6a, 0xed, 0xfb, 0x7d, 0xaf, 0xdd, 0x28, + 0xac, 0x68, 0x37, 0xca, 0x66, 0xd9, 0xf3, 0xe9, 0x1d, 0xf6, 0x8d, 0xbe, 0x08, 0x33, 0xe4, 0x98, + 0xd8, 0x56, 0x9b, 0x50, 0xec, 0xb8, 0x91, 0x75, 0xb8, 0xde, 0x98, 0xe2, 0xa3, 0x2c, 0xc6, 0xa3, + 0xdc, 0x3e, 0x26, 0xf6, 0xa6, 0x40, 0x3f, 0x5a, 0x37, 0xa7, 0x49, 0xfa, 0xf3, 0xed, 0x42, 0xb9, + 0xa8, 0x4f, 0x19, 0xff, 0xa6, 0x41, 0xb5, 0x69, 0x63, 0x6f, 0x12, 0x61, 0x5e, 0x82, 0x4a, 0x44, + 0x71, 0x48, 0xad, 0x44, 0xa4, 0x65, 0x0e, 0xb8, 0x4f, 0x06, 0x6c, 0x46, 0xae, 0xd3, 0x73, 0x28, + 0x9f, 0xd1, 0xb4, 0x29, 0x3e, 0xd2, 0xd2, 0x2e, 0x64, 0xa4, 0x8d, 0x2e, 0x42, 0xf9, 0x80, 0x0c, + 0x2c, 0xdf, 0x73, 0x07, 0x8d, 0x22, 0x9f, 0x6a, 0xe9, 0x80, 0x0c, 0x76, 0x3c, 0x97, 0xab, 0x28, + 0x24, 0x8c, 0x8e, 0xf0, 0x19, 0x96, 0x4d, 0xf5, 0x89, 0x96, 0xa0, 0x44, 0xbc, 0x36, 0x1f, 0xbf, + 0xc4, 0xc7, 0x9f, 0x22, 0x5e, 0x9b, 0x8d, 0x7e, 0x15, 0xaa, 0x11, 0xee, 0x05, 0x2e, 0xb1, 0x22, + 0x4a, 0x82, 0x46, 0x99, 0xf3, 0x00, 0x02, 0xd4, 0xa4, 0x24, 0x30, 0x7e, 0x53, 0x83, 0x9a, 0x98, + 0xf7, 0xe4, 0xda, 0xbd, 0x0e, 0xc5, 0x00, 0x3b, 0x61, 0xd4, 0xc8, 0xad, 0xe4, 0x6f, 0x54, 0xd7, + 0x67, 0x12, 0xed, 0x1e, 0xee, 0x62, 0x27, 0x34, 0x05, 0x36, 0x31, 0x82, 0xfc, 0xc9, 0x46, 0x60, + 0xfc, 0x67, 0x11, 0x66, 0x76, 0x43, 0x72, 0x14, 0x3a, 0x94, 0x4c, 0xa2, 0x8f, 0x57, 0xa1, 0xd2, + 0xeb, 0x53, 0x4c, 0x1d, 0xdf, 0x53, 0x3c, 0x25, 0x83, 0x3d, 0x90, 0x18, 0x33, 0xa1, 0x41, 0xd7, + 0xa0, 0x16, 0x84, 0x4e, 0x0f, 0x87, 0x03, 0x8b, 0x2d, 0x36, 0x69, 0x7c, 0x55, 0x09, 0xdb, 0xf6, + 0xed, 0x03, 0xf4, 0x22, 0x4c, 0x0b, 0x1d, 0x67, 0xd5, 0x56, 0xe3, 0xc0, 0x47, 0x89, 0xee, 0x58, + 0x7b, 0x8b, 0x52, 0x97, 0xeb, 0xae, 0x60, 0x96, 0xd8, 0x77, 0x8b, 0xba, 0x68, 0x1d, 0x16, 0xa2, + 0x03, 0x27, 0xb0, 0x6c, 0xdf, 0x8b, 0x68, 0x88, 0x1d, 0x8f, 0x5a, 0x76, 0x97, 0xd8, 0x07, 0x52, + 0x93, 0x73, 0x0c, 0xb9, 0x11, 0xe3, 0x36, 0x18, 0x0a, 0xfd, 0x2c, 0xcc, 0x05, 0x24, 0x8a, 0x9c, + 0x9e, 0x13, 0x51, 0xc7, 0xb6, 0xb0, 0x2d, 0x66, 0x54, 0x5a, 0xc9, 0xdf, 0xa8, 0xaf, 0xaf, 0xc6, + 0x33, 0x1a, 0x12, 0xd5, 0xda, 0x6e, 0xd2, 0xe6, 0x26, 0x6f, 0x62, 0xa2, 0x60, 0x18, 0x14, 0x31, + 0x5e, 0xe9, 0xb1, 0x67, 0x45, 0xce, 0xd7, 0x08, 0x37, 0x8b, 0x82, 0x59, 0xa2, 0xc7, 0x5e, 0xd3, + 0xf9, 0x1a, 0x41, 0x06, 0x4c, 0xef, 0xfb, 0xa1, 0xd5, 0x0f, 0xda, 0x98, 0x12, 0x8b, 0x46, 0x8d, + 0x0a, 0xc7, 0x57, 0xf7, 0xfd, 0xf0, 0x1d, 0x0e, 0x6b, 0x45, 0x8c, 0xa6, 0xe7, 0x78, 0x96, 0xed, + 0xf7, 0x7a, 0x0e, 0x65, 0x34, 0x20, 0x68, 0x7a, 0x8e, 0xb7, 0xc1, 0x61, 0xad, 0x08, 0xdd, 0x00, + 0xbd, 0x1f, 0x11, 0x0b, 0x47, 0x03, 0xcf, 0x96, 0x94, 0x8d, 0x2a, 0x9f, 0x6e, 0xbd, 0x1f, 0x91, + 0x9b, 0x0c, 0x2c, 0x68, 0xd1, 0x0a, 0x54, 0x23, 0x62, 0xfb, 0x5e, 0x1b, 0x87, 0x0e, 0x89, 0x1a, + 0xb5, 0x95, 0x3c, 0x93, 0x7f, 0x0a, 0x84, 0x2e, 0x03, 0xd0, 0x90, 0x2d, 0x0b, 0x62, 0x05, 0x76, + 0x63, 0x5a, 0xf8, 0x00, 0x1a, 0x0e, 0x76, 0x3c, 0xb2, 0x6b, 0x73, 0x6e, 0xf0, 0x71, 0x8a, 0x9b, + 0xba, 0xe4, 0x06, 0x1f, 0xc7, 0xdc, 0xbc, 0x05, 0x33, 0x38, 0x8a, 0x48, 0xc8, 0xa6, 0x6f, 0xb9, + 0xe4, 0x90, 0xb8, 0x8d, 0x99, 0x15, 0xed, 0x46, 0x7d, 0x7d, 0x29, 0x96, 0xe4, 0x4d, 0x85, 0xdf, + 0x66, 0x68, 0xb3, 0x8e, 0x33, 0xdf, 0xc6, 0x1e, 0xcc, 0x8e, 0xc8, 0x16, 0x2d, 0xc3, 0x62, 0xf3, + 0xfe, 0xd6, 0xae, 0xb5, 0x7b, 0xbb, 0xd9, 0xdc, 0x7a, 0xb0, 0xd5, 0x6c, 0x6d, 0x6d, 0x58, 0x1b, + 0xf7, 0x6e, 0x6f, 0xdc, 0xd7, 0x2f, 0xa0, 0x06, 0xcc, 0x6f, 0xee, 0x8c, 0xc1, 0x68, 0x68, 0x09, + 0xe6, 0x36, 0x77, 0xac, 0x8d, 0x9d, 0x87, 0xcd, 0x96, 0x79, 0x73, 0xeb, 0x61, 0x4b, 0x22, 0x72, + 0xc6, 0x7f, 0x69, 0xa0, 0x27, 0x0a, 0x9d, 0x7c, 0x4d, 0x7e, 0x1c, 0xa6, 0x38, 0x76, 0x74, 0x01, + 0xc4, 0xab, 0x4d, 0x12, 0x8c, 0xaa, 0x32, 0x3f, 0xaa, 0xca, 0x97, 0x41, 0x17, 0xa2, 0x4f, 0x91, + 0x89, 0x15, 0x30, 0xed, 0x33, 0x0d, 0xc4, 0x84, 0x63, 0xbc, 0x71, 0xf1, 0x29, 0xbc, 0xb1, 0xf1, + 0xfd, 0x02, 0x2c, 0xa6, 0x84, 0xcc, 0xd6, 0xde, 0xff, 0x15, 0x17, 0x30, 0xb2, 0xac, 0xa6, 0xc6, + 0x2e, 0x2b, 0x27, 0xb2, 0xf6, 0x9d, 0x30, 0xa2, 0x82, 0x8f, 0x12, 0xb7, 0xf4, 0xaa, 0x13, 0xdd, + 0x61, 0x30, 0xce, 0xc7, 0x35, 0xa8, 0x1d, 0x61, 0xa6, 0x02, 0xa7, 0x47, 0xfc, 0x3e, 0xe5, 0xab, + 0x37, 0x6f, 0x56, 0x19, 0xac, 0x25, 0x40, 0xa8, 0x01, 0xc5, 0x7d, 0x3f, 0xb4, 0x09, 0x5f, 0xb9, + 0xe5, 0x5b, 0xb9, 0x86, 0x66, 0x0a, 0x00, 0x9b, 0x44, 0x48, 0x68, 0x3f, 0xf4, 0x2c, 0xbe, 0xb5, + 0x8a, 0x75, 0x5b, 0x36, 0x6b, 0x02, 0xf8, 0x88, 0xc3, 0x46, 0x2d, 0xa2, 0x3a, 0xce, 0x22, 0x66, + 0xb8, 0x03, 0xb3, 0xc8, 0xb1, 0x13, 0x51, 0xe2, 0xd9, 0xa4, 0x51, 0x13, 0x6b, 0x9b, 0x83, 0x6f, + 0x2b, 0x28, 0x7a, 0x05, 0xe6, 0xb8, 0x44, 0xd8, 0x8e, 0x66, 0x39, 0xfb, 0x82, 0x3e, 0x92, 0x4b, + 0x58, 0x67, 0x28, 0xb6, 0xb9, 0x6d, 0xed, 0xf3, 0x16, 0x11, 0xda, 0x64, 0xb3, 0x3b, 0x20, 0x56, + 0x3f, 0xb0, 0x7a, 0x7e, 0x9b, 0xf0, 0x95, 0x5c, 0x5f, 0x37, 0x12, 0x6f, 0x97, 0x35, 0x8e, 0x77, + 0xf1, 0x01, 0x79, 0x27, 0x78, 0xe0, 0xb7, 0x89, 0x09, 0x47, 0xf1, 0x6f, 0xe3, 0x5f, 0x35, 0x68, + 0x0c, 0x51, 0xde, 0x27, 0x03, 0x93, 0x44, 0x7d, 0x97, 0xa2, 0xcf, 0x41, 0x81, 0x0e, 0x02, 0xc2, + 0xad, 0xa8, 0xbe, 0x7e, 0xfd, 0x71, 0x5d, 0xc7, 0x0d, 0x5a, 0x83, 0x80, 0x98, 0xbc, 0x49, 0x12, + 0x9f, 0xe4, 0xd2, 0xf1, 0xc9, 0x65, 0xa8, 0x24, 0x52, 0xc8, 0xf3, 0x89, 0x25, 0x00, 0xf4, 0x26, + 0x2c, 0xb1, 0x59, 0x92, 0xb6, 0x75, 0xe4, 0xd0, 0x2e, 0xdb, 0x01, 0xf6, 0x5d, 0xc7, 0x4e, 0x2d, + 0xa1, 0x79, 0x81, 0x7e, 0xd7, 0xa1, 0xdd, 0x0d, 0x89, 0x6c, 0x45, 0x68, 0x0d, 0xf8, 0xa6, 0x60, + 0x85, 0x24, 0xf2, 0xdd, 0x43, 0xc7, 0xeb, 0x08, 0x83, 0x10, 0x0e, 0x74, 0x96, 0xa1, 0x4c, 0x85, + 0x61, 0xdc, 0x1a, 0xff, 0x92, 0x83, 0xa5, 0x91, 0x95, 0xf3, 0x5c, 0x1c, 0xc8, 0x55, 0xa8, 0x0c, + 0x39, 0x0f, 0x6e, 0x71, 0x65, 0x5b, 0xd9, 0x4a, 0x43, 0x49, 0x8d, 0xcd, 0xb7, 0x26, 0xcc, 0x51, + 0x48, 0x6e, 0x11, 0xa6, 0xa4, 0x1d, 0x16, 0xb9, 0xcf, 0x97, 0x5f, 0xe8, 0x0a, 0x40, 0x1c, 0xf1, + 0xb1, 0x85, 0x92, 0x67, 0x22, 0x55, 0x21, 0xdf, 0x58, 0x2f, 0x53, 0x7a, 0x0a, 0x2f, 0x83, 0x3e, + 0xcf, 0x22, 0x29, 0xa6, 0xda, 0xa8, 0x51, 0xe6, 0xb3, 0xbb, 0xf6, 0x44, 0x23, 0x30, 0x55, 0x0b, + 0xe3, 0xbb, 0x1a, 0x2c, 0xa7, 0xa8, 0x4c, 0xdf, 0x75, 0xf7, 0xf0, 0x64, 0x6e, 0x6a, 0xc4, 0xa5, + 0xe4, 0xc6, 0xb8, 0x94, 0x11, 0xbf, 0x91, 0x1f, 0xf5, 0x1b, 0x08, 0x0a, 0x07, 0x64, 0xc0, 0x0c, + 0x8a, 0x49, 0x91, 0xff, 0x36, 0xfe, 0x54, 0x83, 0x4b, 0x63, 0xf9, 0x7c, 0x2e, 0x46, 0x31, 0x46, + 0x45, 0xf9, 0xa7, 0xd9, 0x08, 0xfe, 0x40, 0x83, 0xb9, 0xd6, 0xb1, 0x77, 0x8f, 0xe0, 0x90, 0xde, + 0x22, 0x78, 0xa2, 0x53, 0xce, 0xb0, 0x53, 0xcf, 0x9d, 0xc2, 0xa9, 0xe7, 0xc7, 0x68, 0xe0, 0x25, + 0x98, 0xc1, 0xed, 0x43, 0x27, 0x22, 0x56, 0xec, 0xdb, 0xe5, 0xe6, 0x27, 0xc0, 0xdb, 0xc2, 0xc3, + 0x1b, 0x3f, 0xd4, 0x60, 0x3e, 0xcb, 0xf3, 0x73, 0x38, 0x32, 0xa5, 0x77, 0x9c, 0x7c, 0x76, 0xc7, + 0x19, 0xa3, 0x83, 0xc2, 0xd3, 0xe8, 0xe0, 0x9f, 0x72, 0xb0, 0xc0, 0x43, 0xd1, 0xd6, 0xb1, 0xd7, + 0xa4, 0x98, 0xf6, 0xa3, 0x49, 0xb4, 0x70, 0x15, 0x94, 0xc4, 0x53, 0x07, 0x24, 0x90, 0x20, 0x76, + 0x48, 0x59, 0x82, 0x92, 0x98, 0x81, 0x32, 0xed, 0x29, 0x3e, 0x81, 0x88, 0xc9, 0xdd, 0xc6, 0xae, + 0x4b, 0x42, 0x4b, 0xe8, 0x28, 0x09, 0x3a, 0x04, 0xb8, 0xc9, 0xa0, 0x2d, 0xee, 0x2d, 0xec, 0x7e, + 0x18, 0x12, 0x8f, 0x93, 0x88, 0x6d, 0xb7, 0x22, 0x21, 0xad, 0x08, 0xbd, 0x06, 0x0b, 0xa1, 0x34, + 0x7e, 0xb6, 0x01, 0x31, 0xc7, 0xc2, 0xbd, 0xb3, 0x8c, 0xbd, 0x91, 0x42, 0x6e, 0xed, 0x3f, 0xf4, + 0x29, 0xdf, 0x86, 0xd0, 0x2a, 0xcc, 0xf2, 0xfd, 0xd2, 0x4a, 0xc7, 0xae, 0x62, 0x2f, 0x9e, 0xe1, + 0x88, 0x66, 0x12, 0xbc, 0x7e, 0x01, 0x96, 0x13, 0x1f, 0x9d, 0x0e, 0xd8, 0xb9, 0xcd, 0x95, 0x79, + 0xa3, 0x46, 0x4c, 0x31, 0xe4, 0x5f, 0x8c, 0x1f, 0xe5, 0x60, 0x71, 0x58, 0xc6, 0x1f, 0xad, 0xd5, + 0x5c, 0x87, 0xba, 0x74, 0xe7, 0xd9, 0x40, 0x67, 0x5a, 0x40, 0xd5, 0xa2, 0x78, 0x19, 0xa6, 0xc4, + 0x89, 0x84, 0x0b, 0xbc, 0x9e, 0x3a, 0xf6, 0xc9, 0x53, 0x87, 0x44, 0xa3, 0x35, 0xa8, 0xf0, 0xa1, + 0x1c, 0x6f, 0xdf, 0x97, 0x47, 0xf3, 0x84, 0x2f, 0x26, 0x83, 0x2d, 0x6f, 0xdf, 0x37, 0x39, 0x3b, + 0xec, 0xd7, 0xb3, 0x3a, 0x77, 0xe3, 0x03, 0x0d, 0x96, 0xb9, 0x44, 0x9b, 0xf2, 0xfc, 0xc0, 0x57, + 0xfa, 0x44, 0xa6, 0xab, 0xdc, 0x6a, 0x2e, 0x71, 0xab, 0xa7, 0xf2, 0x18, 0xc6, 0x7f, 0x6b, 0x70, + 0x69, 0x2c, 0x0f, 0xcf, 0x41, 0xb5, 0x2f, 0x43, 0x91, 0xc9, 0x92, 0x2d, 0xa6, 0xfc, 0x78, 0x59, + 0x0b, 0x3c, 0xba, 0x94, 0xde, 0xb7, 0x85, 0x8e, 0x93, 0x3d, 0xfb, 0x59, 0x03, 0xf9, 0xef, 0x69, + 0x30, 0x2d, 0x16, 0xc8, 0xb9, 0x6d, 0x8c, 0x4a, 0x3b, 0xf9, 0x94, 0x76, 0x4e, 0x67, 0xbc, 0x22, + 0xe9, 0x63, 0x4e, 0xed, 0x39, 0x9e, 0xeb, 0x77, 0x8c, 0xbf, 0xd6, 0xa0, 0xae, 0x78, 0x7d, 0x0e, + 0x0a, 0x1a, 0xe5, 0x31, 0x3f, 0x6e, 0x81, 0x3d, 0xab, 0xf7, 0xee, 0xc0, 0xf4, 0x56, 0x2f, 0xf0, + 0xc3, 0x58, 0x01, 0x99, 0x43, 0x91, 0x76, 0x8a, 0x43, 0xd1, 0x28, 0xa3, 0xb9, 0x31, 0x8c, 0x1a, + 0xef, 0x41, 0x5d, 0x0d, 0x34, 0xb9, 0xf4, 0xe6, 0xd3, 0xd2, 0xab, 0xa8, 0x54, 0xd0, 0x37, 0x99, + 0x66, 0x5c, 0x82, 0xbd, 0x7e, 0x70, 0x36, 0x69, 0xce, 0x53, 0xed, 0xf7, 0xd9, 0xfd, 0xa4, 0x30, + 0xb4, 0x9f, 0x18, 0xdf, 0xd2, 0x60, 0x26, 0x66, 0xea, 0xa7, 0xc6, 0x5e, 0x8c, 0x03, 0x98, 0xb9, + 0x85, 0xa9, 0xdd, 0x9d, 0x30, 0x25, 0x3c, 0xce, 0xd7, 0x3d, 0x3e, 0x29, 0xfc, 0xf7, 0x1a, 0xe8, + 0xc9, 0x68, 0xe7, 0x9e, 0x3b, 0x7c, 0xc6, 0xb5, 0x90, 0xc8, 0xba, 0x78, 0xb2, 0xac, 0xdf, 0x2e, + 0x94, 0xf3, 0x7a, 0xc1, 0xf8, 0x79, 0x98, 0xe7, 0x93, 0x3b, 0xf7, 0xd8, 0x7e, 0x8c, 0x0b, 0x33, + 0xfe, 0x50, 0x83, 0x85, 0xa1, 0xd1, 0x9f, 0x83, 0x91, 0x3d, 0x6b, 0xbc, 0xfe, 0xfb, 0x1a, 0xcc, + 0x34, 0x6d, 0xec, 0x4d, 0x9a, 0xb1, 0xb9, 0x0a, 0xd5, 0x1e, 0x3e, 0x1e, 0x12, 0x16, 0xf4, 0xf0, + 0xb1, 0x12, 0x55, 0x26, 0xcb, 0x9e, 0x7f, 0x5c, 0x96, 0xbd, 0x90, 0xce, 0xb2, 0xa7, 0xd2, 0xe2, + 0xc5, 0x74, 0x5a, 0xdc, 0xf8, 0x89, 0x06, 0x7a, 0xc2, 0xec, 0x4f, 0xd3, 0x9e, 0xfc, 0xac, 0x4e, + 0xff, 0x47, 0x1a, 0x20, 0x91, 0x17, 0x20, 0x93, 0x6a, 0xe2, 0x54, 0x86, 0x7b, 0xca, 0x3d, 0xec, + 0x15, 0xa8, 0xd0, 0x63, 0x8f, 0x87, 0x7e, 0xe2, 0x70, 0x9a, 0x1e, 0xb9, 0x75, 0xec, 0x89, 0xd0, + 0x8f, 0x8a, 0x1f, 0xc9, 0x31, 0xb6, 0x98, 0x5a, 0x0e, 0xec, 0x20, 0x98, 0x99, 0xd1, 0xff, 0x82, + 0xc5, 0xf0, 0x08, 0x2a, 0x77, 0x37, 0x26, 0x91, 0xfd, 0x15, 0x80, 0x08, 0xef, 0x13, 0x2b, 0xf0, + 0x1d, 0x8f, 0x4a, 0xc1, 0x57, 0x18, 0x64, 0x97, 0x01, 0x8c, 0x2e, 0x00, 0xeb, 0xf7, 0xfc, 0x25, + 0x60, 0x7c, 0x5b, 0x03, 0xb4, 0x49, 0x5c, 0x42, 0x89, 0x89, 0xbd, 0x0e, 0x39, 0xf3, 0x6b, 0xb1, + 0xd4, 0xd2, 0xcc, 0x0f, 0xdf, 0x58, 0x79, 0x3e, 0x75, 0xf6, 0xe5, 0x15, 0x98, 0xb8, 0xed, 0x03, + 0x01, 0xda, 0xf1, 0xdc, 0x81, 0xf1, 0x15, 0x98, 0xcb, 0x30, 0x76, 0xd6, 0x21, 0xc7, 0x1f, 0x6b, + 0xb0, 0xb2, 0x1b, 0x92, 0x00, 0x87, 0xe4, 0x8e, 0x8b, 0xa3, 0x2e, 0xf3, 0xc0, 0x2d, 0x5f, 0x1a, + 0xf4, 0xf3, 0x93, 0xc3, 0x45, 0x28, 0x0f, 0x1d, 0x7a, 0x4b, 0x91, 0x3c, 0xee, 0xa6, 0x76, 0xe5, + 0x62, 0x76, 0x57, 0x76, 0xe1, 0xda, 0x09, 0xac, 0x9f, 0xb5, 0xa4, 0x7e, 0xa4, 0xc1, 0xc5, 0xb3, + 0x11, 0x51, 0x6a, 0x46, 0xb9, 0xec, 0x75, 0xe8, 0x89, 0x5e, 0x3f, 0x25, 0xbc, 0xc2, 0x63, 0x85, + 0x57, 0xcc, 0x0a, 0x2f, 0x73, 0xe8, 0x99, 0xca, 0x1e, 0x7a, 0x0c, 0x02, 0xcb, 0xcf, 0x43, 0x70, + 0x5f, 0x86, 0x69, 0x13, 0x1f, 0x9d, 0xd9, 0xd5, 0x7d, 0x1d, 0x72, 0xf6, 0x3e, 0x17, 0x4e, 0xc5, + 0xcc, 0xd9, 0xfb, 0xc6, 0xaf, 0x69, 0x50, 0x57, 0xfd, 0x9f, 0x31, 0xeb, 0x13, 0x5c, 0xd0, 0x1b, + 0x6d, 0x40, 0x26, 0x3e, 0x3a, 0xeb, 0xd0, 0x74, 0x78, 0xd2, 0x3e, 0xcc, 0x65, 0x46, 0x39, 0xef, + 0x90, 0xd4, 0xf8, 0x1d, 0x8d, 0x6b, 0x71, 0xb7, 0x7f, 0x46, 0x5a, 0x1c, 0x2f, 0x59, 0x31, 0xcd, + 0x82, 0x9a, 0x26, 0x6b, 0x97, 0x5c, 0x2d, 0xb1, 0x9f, 0x6c, 0x11, 0xec, 0xfb, 0xa1, 0x65, 0xe3, + 0x48, 0xe6, 0xb3, 0xa6, 0xf6, 0xfd, 0x70, 0x03, 0x47, 0xec, 0x58, 0xa6, 0xf8, 0x3b, 0x6b, 0x03, + 0xfe, 0x13, 0x2d, 0xd1, 0xe9, 0x84, 0x02, 0x38, 0x65, 0xe0, 0x3f, 0xa4, 0x66, 0x34, 0x2f, 0xe6, + 0x5f, 0x88, 0x6f, 0x19, 0x86, 0x65, 0x50, 0x4c, 0xcb, 0x80, 0x59, 0x0e, 0xa5, 0xae, 0xb8, 0x41, + 0x28, 0x98, 0xfc, 0x37, 0xdb, 0x40, 0x32, 0xbc, 0x9f, 0xb5, 0x70, 0x06, 0xa0, 0x9b, 0xf8, 0x48, + 0xee, 0x51, 0xe7, 0xb1, 0xc0, 0xd3, 0xd3, 0x2d, 0x64, 0x54, 0xfe, 0x73, 0x30, 0x9b, 0x1a, 0xfa, + 0xac, 0x27, 0xf6, 0x8b, 0x1a, 0x2c, 0x28, 0xc9, 0x4d, 0x3e, 0xbd, 0x53, 0x2c, 0xe6, 0xc7, 0x4f, + 0x10, 0xc3, 0xe2, 0x30, 0x07, 0x67, 0x3d, 0xcb, 0x1f, 0x0a, 0xef, 0xf9, 0x1c, 0x8b, 0x81, 0xd2, + 0x25, 0x3f, 0x85, 0x6c, 0xc9, 0x8f, 0x10, 0x4c, 0x31, 0x16, 0xcc, 0xd3, 0x97, 0x00, 0x19, 0x1d, + 0x98, 0x89, 0xa7, 0x33, 0xb9, 0xac, 0xae, 0x41, 0xfe, 0xe0, 0xf0, 0xb1, 0x8b, 0x95, 0xe1, 0x8c, + 0xaf, 0x0b, 0xf3, 0xf8, 0x48, 0xa2, 0xc6, 0x21, 0x37, 0x29, 0xed, 0xe4, 0x5c, 0xe3, 0xc4, 0x1f, + 0x6b, 0x89, 0x1f, 0x99, 0xd4, 0x58, 0x3e, 0x0e, 0x53, 0x21, 0xe3, 0x6e, 0xec, 0x7d, 0x9a, 0xe0, + 0x5b, 0x12, 0xb0, 0x93, 0x01, 0xc1, 0x76, 0xd7, 0x4a, 0xdb, 0x4f, 0x85, 0x41, 0xb6, 0xcf, 0xcc, + 0x86, 0x0c, 0x17, 0xe6, 0xb3, 0x33, 0x3a, 0x57, 0x7b, 0xf9, 0x05, 0xb8, 0xf8, 0x8e, 0xc7, 0xce, + 0x36, 0x9b, 0x24, 0xa2, 0xa1, 0x3f, 0x78, 0xbe, 0x26, 0xc3, 0x62, 0xbd, 0x71, 0xc3, 0x9f, 0xb5, + 0x99, 0x7c, 0x15, 0x2e, 0x99, 0xa4, 0xe3, 0x44, 0x94, 0x84, 0xec, 0xf8, 0xba, 0xb3, 0x17, 0x91, + 0xf0, 0x90, 0x84, 0x93, 0xcc, 0x73, 0x01, 0xa6, 0x7a, 0xf8, 0x98, 0xc5, 0xad, 0x22, 0x48, 0x2e, + 0xf6, 0xf0, 0x71, 0x2b, 0x32, 0xde, 0x80, 0xcb, 0xe3, 0x47, 0x90, 0x53, 0x89, 0xf9, 0xd2, 0xb2, + 0x31, 0x68, 0x83, 0x5f, 0x50, 0x9c, 0x13, 0x53, 0x7d, 0xb8, 0x38, 0xa6, 0xfb, 0x93, 0x38, 0x62, + 0x26, 0xec, 0x44, 0x96, 0xed, 0x12, 0x2c, 0x4e, 0x01, 0x65, 0xb3, 0xe4, 0x44, 0x3c, 0xcf, 0x7a, + 0xea, 0xf4, 0x89, 0xf1, 0x15, 0xb8, 0x68, 0x92, 0x9e, 0x2f, 0x52, 0x05, 0xe7, 0x30, 0xad, 0x75, + 0x58, 0x1e, 0xd7, 0xff, 0x89, 0x92, 0xfe, 0x75, 0x0d, 0x96, 0x76, 0xbb, 0x83, 0xc8, 0xb1, 0xb1, + 0xfb, 0x2c, 0x19, 0xb2, 0xf1, 0x2c, 0x4d, 0x90, 0x17, 0x33, 0xde, 0x83, 0xc6, 0x28, 0x43, 0x27, + 0xea, 0x26, 0x56, 0x40, 0xee, 0x09, 0x0a, 0xf8, 0x8e, 0x06, 0xa8, 0x19, 0xb8, 0x0e, 0x35, 0xf9, + 0xca, 0x98, 0x2c, 0x13, 0x58, 0x89, 0x58, 0x0f, 0xc9, 0x72, 0x16, 0xe5, 0x24, 0x1c, 0xc8, 0x26, + 0x75, 0x05, 0x20, 0x26, 0x50, 0xa9, 0xd3, 0x8a, 0xc2, 0x46, 0x68, 0x19, 0x2a, 0x4e, 0x64, 0x85, + 0xf8, 0xc8, 0x3a, 0x38, 0x54, 0xbe, 0xd0, 0x89, 0x4c, 0x7c, 0x74, 0xff, 0xd0, 0xf8, 0xbe, 0x06, + 0x73, 0x19, 0xf6, 0x26, 0x5f, 0xee, 0x2f, 0x41, 0xc1, 0x25, 0xfb, 0x54, 0x66, 0x52, 0xea, 0x6b, + 0xb2, 0xdc, 0x5b, 0x74, 0xcc, 0x39, 0xe6, 0x78, 0x74, 0x03, 0x8a, 0xa1, 0xd3, 0xe9, 0x52, 0x99, + 0x41, 0x1a, 0x47, 0x28, 0x08, 0xd0, 0x0d, 0xe6, 0x98, 0x3b, 0xfc, 0x76, 0x46, 0xa4, 0xca, 0x86, + 0x68, 0x4d, 0x85, 0x36, 0x7e, 0x59, 0x03, 0xdd, 0x24, 0xb8, 0xbd, 0xe5, 0xb5, 0xc9, 0xf1, 0x24, + 0x32, 0x4e, 0x1f, 0x90, 0x73, 0xd9, 0x03, 0x72, 0xb2, 0x27, 0xe5, 0x9f, 0xb0, 0x27, 0x19, 0xbf, + 0xa1, 0xc1, 0x6c, 0x8a, 0x8d, 0xc9, 0x65, 0x79, 0x05, 0x20, 0x24, 0xb8, 0x6d, 0x39, 0xac, 0x23, + 0x95, 0xf6, 0x0a, 0x55, 0xcf, 0x8c, 0x25, 0x51, 0x22, 0x35, 0x52, 0x3a, 0x1c, 0x9b, 0x9f, 0x24, + 0x30, 0x9a, 0x30, 0xf7, 0xe0, 0xd0, 0xb6, 0xef, 0x12, 0x7a, 0x6b, 0xc0, 0x6b, 0x77, 0xce, 0x20, + 0xfe, 0x36, 0x7e, 0x55, 0x83, 0xf9, 0x6c, 0xaf, 0x67, 0x7d, 0xac, 0xbe, 0x0e, 0x05, 0x7e, 0x3d, + 0x3e, 0x3c, 0x3f, 0x36, 0x2a, 0x9f, 0x1f, 0x47, 0x1b, 0x5f, 0x85, 0xa5, 0x98, 0x0f, 0x59, 0xfc, + 0x70, 0xb6, 0xda, 0x67, 0xeb, 0xb7, 0x31, 0x3a, 0xc4, 0x59, 0x4f, 0x57, 0x8a, 0x38, 0x9f, 0x1c, + 0x71, 0x94, 0x00, 0x0a, 0x27, 0x0b, 0xe0, 0x83, 0x0a, 0x94, 0x36, 0x92, 0x6d, 0x5f, 0x72, 0xe3, + 0xb4, 0x39, 0x2b, 0x05, 0xb3, 0x2c, 0x00, 0x5b, 0x6d, 0xf4, 0xe9, 0x84, 0xd5, 0xc0, 0xb7, 0xbb, + 0x72, 0x95, 0xce, 0x65, 0x17, 0xd4, 0x6d, 0x86, 0x8a, 0xf9, 0x65, 0x1f, 0x68, 0x05, 0x0a, 0x01, + 0x21, 0xaa, 0x46, 0xbd, 0xa6, 0xe8, 0x77, 0x09, 0x09, 0x4d, 0x8e, 0xe1, 0x47, 0x4a, 0x12, 0xf6, + 0xe4, 0x11, 0x9c, 0xff, 0x46, 0xaf, 0x42, 0x39, 0x08, 0x1d, 0x3f, 0x74, 0xe8, 0x80, 0xc7, 0x54, + 0xf5, 0xf5, 0xb9, 0x94, 0xf4, 0x7b, 0x3d, 0xec, 0xb5, 0x77, 0x43, 0xc7, 0x8c, 0x89, 0xd0, 0x5b, + 0x30, 0xe3, 0x44, 0xbe, 0x8b, 0x53, 0xc5, 0xc8, 0xa5, 0xa1, 0x62, 0xe4, 0x2d, 0x85, 0x97, 0xc5, + 0xc8, 0x4e, 0xe6, 0x1b, 0x7d, 0x0c, 0xea, 0x3c, 0xe5, 0xe2, 0xb8, 0xae, 0x65, 0x63, 0xbb, 0x4b, + 0x64, 0xa5, 0x49, 0xcd, 0xf3, 0xe9, 0x1d, 0xc7, 0x75, 0x37, 0x18, 0x8c, 0x6b, 0x7a, 0xe0, 0xd9, + 0x96, 0xeb, 0x77, 0x44, 0x2d, 0xa8, 0x59, 0x62, 0xdf, 0xdb, 0x7e, 0x07, 0xdd, 0x00, 0x3d, 0x24, + 0xb6, 0x1f, 0xb6, 0x79, 0x21, 0xa9, 0x15, 0x51, 0x4c, 0x65, 0x31, 0x68, 0x5d, 0xc0, 0x5b, 0x4e, + 0x8f, 0x34, 0x29, 0xa6, 0x29, 0xca, 0xc8, 0xc6, 0x9e, 0xa0, 0xac, 0xa6, 0x29, 0xd9, 0x26, 0xc2, + 0x29, 0xaf, 0x31, 0xa9, 0x07, 0xae, 0x63, 0x63, 0x8b, 0xad, 0x5e, 0x59, 0x11, 0x5a, 0x95, 0x30, + 0xe6, 0x2a, 0xd0, 0x75, 0xa8, 0x8b, 0x5a, 0x18, 0xd2, 0xb6, 0xc4, 0x96, 0x32, 0xcd, 0xcf, 0xe6, + 0xd3, 0x0a, 0xca, 0x0b, 0x25, 0xd0, 0xe7, 0xe0, 0x22, 0xdb, 0xec, 0xc8, 0x31, 0xb1, 0xfb, 0x5c, + 0x48, 0xed, 0x7e, 0x28, 0xa4, 0xd5, 0x53, 0xd5, 0xdd, 0x8b, 0x3d, 0x7c, 0x7c, 0x5b, 0xe1, 0x37, + 0x25, 0xfa, 0x01, 0x2f, 0xd0, 0xc0, 0x41, 0xe0, 0x3a, 0x44, 0xf9, 0x93, 0x19, 0x71, 0x7f, 0x21, + 0x81, 0xc2, 0xa5, 0x2c, 0x41, 0x89, 0xe2, 0xe8, 0x80, 0x99, 0x8e, 0x2e, 0x6a, 0x8e, 0xd8, 0xe7, + 0x56, 0x9b, 0x6f, 0x2e, 0x14, 0xbb, 0x44, 0x4c, 0x60, 0x56, 0x14, 0x73, 0x72, 0x08, 0x67, 0xff, + 0x93, 0x80, 0x18, 0xa3, 0xfd, 0xd0, 0x26, 0x56, 0x27, 0xf4, 0xfb, 0x81, 0x45, 0x71, 0xa7, 0x81, + 0xb8, 0x21, 0xeb, 0x0a, 0x73, 0x97, 0x21, 0x5a, 0xb8, 0x83, 0x3e, 0x0b, 0xd3, 0x6d, 0x27, 0x3a, + 0xb0, 0xf6, 0xfb, 0xae, 0x6b, 0xf9, 0x01, 0x6d, 0xcc, 0x71, 0x25, 0xcf, 0xc7, 0x4a, 0xde, 0x74, + 0xa2, 0x83, 0x3b, 0x7d, 0xd7, 0xdd, 0x09, 0xa8, 0x59, 0x6d, 0x27, 0x1f, 0x4c, 0xe6, 0x6c, 0x13, + 0x23, 0x34, 0x1c, 0x58, 0xa1, 0x58, 0xe2, 0x8d, 0x79, 0x21, 0x73, 0x27, 0x32, 0x19, 0x58, 0x2d, + 0xfc, 0x37, 0xa0, 0x8a, 0x03, 0x27, 0xbe, 0x86, 0x59, 0x18, 0x32, 0xbf, 0x9b, 0xbb, 0x5b, 0x2a, + 0x8f, 0x09, 0x38, 0x70, 0x92, 0xea, 0x9d, 0x19, 0x91, 0xf5, 0xa4, 0xb1, 0x1e, 0x16, 0xb9, 0x1e, + 0xea, 0x31, 0x58, 0x28, 0xe2, 0xff, 0x81, 0x78, 0x74, 0x64, 0x29, 0xef, 0xb2, 0xc4, 0x57, 0xc6, + 0xc2, 0x9a, 0x7a, 0x8a, 0xd4, 0x62, 0x7f, 0x95, 0x8b, 0xa9, 0xd1, 0xd4, 0x97, 0xd0, 0x35, 0xe7, + 0xd2, 0x12, 0x82, 0x69, 0x34, 0xb8, 0x17, 0x98, 0x96, 0xd0, 0x26, 0x07, 0x32, 0x91, 0xf3, 0xa7, + 0x08, 0x82, 0xe4, 0xa2, 0xf0, 0xfe, 0xf4, 0xd8, 0x93, 0xe8, 0x35, 0x98, 0x1b, 0x12, 0xb9, 0x87, + 0x7b, 0xa4, 0xb1, 0xcc, 0xbb, 0x9a, 0xcd, 0xc8, 0xfc, 0x21, 0xee, 0x11, 0xb4, 0x0a, 0xb3, 0x7b, + 0xfd, 0x68, 0x60, 0xd1, 0x6e, 0x48, 0xa2, 0xae, 0xef, 0xb6, 0x99, 0xc9, 0x5c, 0xe2, 0xf1, 0xcf, + 0x0c, 0x43, 0xb4, 0x14, 0xfc, 0x41, 0x84, 0xae, 0x42, 0x95, 0x05, 0x11, 0x01, 0x9b, 0xa0, 0xd3, + 0x6e, 0xac, 0x88, 0xf7, 0x31, 0x0a, 0xb4, 0xd5, 0x7e, 0xbb, 0x50, 0x2e, 0xe8, 0x45, 0x66, 0xc1, + 0xb8, 0x6d, 0xbd, 0xdf, 0xf7, 0xc3, 0x7e, 0xcf, 0xf8, 0x87, 0x1c, 0x94, 0xd5, 0xbe, 0x33, 0x52, + 0x62, 0xa8, 0x8d, 0x96, 0x18, 0x5e, 0x83, 0x1a, 0xaf, 0x7f, 0xca, 0x66, 0xb8, 0xab, 0x0c, 0xa6, + 0xb4, 0x31, 0xea, 0x0f, 0xd3, 0xf5, 0x59, 0x85, 0x6c, 0x7d, 0x56, 0xfa, 0xe5, 0x46, 0x31, 0xfb, + 0x72, 0xe3, 0x86, 0x2c, 0xb5, 0xe2, 0xe5, 0xcd, 0xc2, 0x11, 0x55, 0x63, 0x4b, 0xd8, 0x09, 0x44, + 0x91, 0x55, 0x6b, 0x10, 0x10, 0xf4, 0x09, 0x40, 0x9c, 0x32, 0x5b, 0x59, 0x5a, 0xe2, 0xdd, 0xcd, + 0x30, 0xcc, 0x9d, 0x54, 0x75, 0xe9, 0xb8, 0x87, 0x1c, 0xe5, 0xb1, 0x0f, 0x39, 0x46, 0x2a, 0xc7, + 0x2b, 0xa3, 0x95, 0xe3, 0x43, 0x8f, 0x3d, 0x60, 0xe4, 0xb1, 0x87, 0xf1, 0xed, 0x02, 0x94, 0xd5, + 0x85, 0x54, 0x6a, 0xf3, 0xd7, 0x9e, 0xb0, 0xf9, 0xa3, 0xcb, 0x6c, 0x47, 0xa0, 0xe1, 0x00, 0xef, + 0xb9, 0x44, 0x6e, 0x38, 0x09, 0x80, 0x6d, 0x45, 0x78, 0xcf, 0x0f, 0xa9, 0xcc, 0x33, 0x89, 0x0f, + 0xb4, 0x0e, 0x65, 0x55, 0x91, 0x3d, 0x72, 0xd3, 0xfa, 0x6e, 0xe8, 0x50, 0xa2, 0x4a, 0xb2, 0xcd, + 0x98, 0x8e, 0xad, 0x09, 0xec, 0x32, 0x93, 0x18, 0xc8, 0x42, 0xc2, 0xa2, 0x5c, 0x13, 0xf1, 0xa2, + 0x13, 0x58, 0x5e, 0x4b, 0x68, 0xd6, 0x70, 0xea, 0x0b, 0xbd, 0x02, 0x65, 0xf5, 0xa8, 0x6f, 0xa4, + 0x18, 0x6e, 0x53, 0x22, 0xcc, 0x98, 0x04, 0x6d, 0xc2, 0x6c, 0x2c, 0x4c, 0x8b, 0x1c, 0x07, 0x4e, + 0x48, 0xda, 0xb2, 0x1c, 0xae, 0x91, 0xd9, 0x62, 0x98, 0x68, 0x6f, 0x0b, 0xbc, 0x39, 0x63, 0x67, + 0x01, 0xcc, 0x0f, 0x31, 0x93, 0x49, 0x72, 0xf4, 0x65, 0xde, 0xc3, 0x7c, 0xfa, 0x2a, 0xf6, 0xa1, + 0xcc, 0xd7, 0x9b, 0x55, 0x9a, 0x7c, 0xa0, 0x7b, 0x30, 0x97, 0x8c, 0x4f, 0x7d, 0xdf, 0x72, 0x71, + 0xd8, 0x11, 0xef, 0x0a, 0xaa, 0xeb, 0x17, 0x47, 0x38, 0x68, 0xf9, 0xfe, 0x36, 0x23, 0x30, 0x75, + 0x7b, 0x08, 0x82, 0x36, 0x40, 0x4f, 0xde, 0xdf, 0xec, 0x63, 0xc7, 0x25, 0x6d, 0xbe, 0xdf, 0xa4, + 0x27, 0x12, 0x3f, 0xc0, 0xb9, 0xc3, 0xf1, 0x66, 0xf2, 0x62, 0x47, 0x00, 0x8c, 0xbf, 0xc9, 0xc1, + 0x74, 0x46, 0x2b, 0x99, 0x58, 0x46, 0xcb, 0x46, 0xb2, 0x57, 0xa1, 0x9a, 0x2e, 0xb6, 0x97, 0x25, + 0x05, 0x76, 0x52, 0x62, 0x3f, 0xba, 0xec, 0x1a, 0x50, 0x92, 0x4b, 0x57, 0xde, 0x28, 0xa9, 0x4f, + 0xe6, 0xf8, 0xe3, 0xce, 0x12, 0xf3, 0x16, 0xeb, 0x4f, 0x57, 0x98, 0xd8, 0xc6, 0xdf, 0x84, 0xa9, + 0x90, 0xe0, 0xc8, 0xf7, 0xe4, 0x2a, 0xbc, 0x32, 0xde, 0xa6, 0xd6, 0x4c, 0x4e, 0x64, 0x4a, 0x62, + 0xe3, 0x08, 0xa6, 0x04, 0x04, 0x55, 0xa1, 0xf4, 0x8e, 0x77, 0xe0, 0xf9, 0x47, 0x9e, 0x7e, 0x01, + 0xd5, 0x01, 0x76, 0x02, 0x2a, 0xab, 0x46, 0x75, 0x0d, 0xcd, 0x83, 0x9e, 0x2e, 0xec, 0x66, 0x16, + 0xae, 0xe7, 0x10, 0x82, 0x7a, 0x93, 0xb8, 0xfb, 0xa6, 0xef, 0xba, 0xa4, 0x7d, 0x0b, 0xdb, 0x07, + 0x7a, 0x1e, 0x4d, 0x43, 0xc5, 0xb4, 0x45, 0x79, 0x69, 0xa4, 0x17, 0xd0, 0x12, 0xcc, 0x6d, 0xe3, + 0xaf, 0x0d, 0xde, 0xf1, 0x9c, 0xf7, 0xfb, 0xc4, 0x23, 0x51, 0xc4, 0x51, 0x7a, 0xd1, 0x58, 0x81, + 0x5a, 0xda, 0x66, 0x95, 0x64, 0xb4, 0x24, 0x06, 0xfe, 0x5d, 0x0d, 0xca, 0xca, 0x3e, 0xd3, 0x15, + 0xbb, 0x5a, 0xa6, 0x62, 0x57, 0xb9, 0xad, 0x24, 0x80, 0xe6, 0x84, 0xec, 0xd4, 0xb6, 0x0a, 0xb3, + 0xca, 0xaa, 0x19, 0xda, 0xea, 0xe2, 0xa8, 0x2b, 0x8b, 0x06, 0x66, 0x14, 0xe2, 0x3e, 0x19, 0xdc, + 0xc3, 0x51, 0x17, 0xbd, 0x09, 0xc0, 0x9f, 0xb8, 0xd8, 0x5d, 0xec, 0x78, 0xf2, 0x30, 0xb4, 0xb8, + 0x16, 0x3f, 0x86, 0x7d, 0x17, 0x3b, 0xf4, 0x8e, 0x1f, 0xde, 0xf6, 0xd8, 0x36, 0x58, 0x61, 0x94, + 0x1b, 0x8c, 0xd0, 0xf8, 0xa6, 0x06, 0x33, 0x43, 0x6b, 0xe1, 0x24, 0xfb, 0x58, 0x83, 0x39, 0x4c, + 0x29, 0xe9, 0x05, 0x6c, 0x0f, 0x4c, 0x74, 0x2a, 0xec, 0x64, 0x36, 0x46, 0xc5, 0x4a, 0x1d, 0x35, + 0x97, 0x11, 0x77, 0x57, 0x18, 0x71, 0x77, 0xc6, 0x16, 0x54, 0x53, 0xab, 0xeb, 0x09, 0xf6, 0x7a, + 0x62, 0xa1, 0xb4, 0xf1, 0x2a, 0xe8, 0xc3, 0x0b, 0x2d, 0x7b, 0x9f, 0xa9, 0x0d, 0xdd, 0x67, 0xfe, + 0xa5, 0x06, 0x33, 0x43, 0x6b, 0xea, 0x24, 0x06, 0x46, 0x6f, 0x1e, 0x3e, 0x05, 0x95, 0x78, 0x09, + 0xf2, 0x89, 0xd7, 0xd7, 0xd1, 0xe8, 0x6a, 0x35, 0x13, 0x22, 0xa6, 0x66, 0xee, 0x13, 0x1d, 0xaf, + 0x33, 0x5c, 0xb5, 0x3d, 0xa3, 0x10, 0xaa, 0x6e, 0xfb, 0x93, 0x80, 0x62, 0xda, 0x91, 0x35, 0xa5, + 0x30, 0xb1, 0x20, 0xff, 0x4a, 0x03, 0x60, 0x31, 0xa9, 0x28, 0xb3, 0x40, 0x1f, 0x87, 0x59, 0x6e, + 0x23, 0x47, 0xd8, 0x75, 0x45, 0x08, 0xdb, 0x53, 0x13, 0xaa, 0x33, 0xc4, 0xbb, 0xd8, 0x75, 0x19, + 0xf9, 0x83, 0x08, 0xbd, 0x0a, 0xf3, 0x41, 0xe8, 0xdb, 0x24, 0x8a, 0xb2, 0xd4, 0x52, 0xd3, 0x12, + 0x97, 0x6a, 0xb0, 0x06, 0xf3, 0x07, 0x87, 0x3c, 0x02, 0xcc, 0x36, 0x10, 0xe6, 0xaa, 0x1f, 0x1c, + 0xb2, 0x58, 0x30, 0x45, 0xbf, 0x0e, 0x8b, 0xd4, 0xa7, 0xd8, 0xb5, 0xc2, 0xc0, 0x4e, 0xb5, 0xf0, + 0xd4, 0xcc, 0x11, 0xc7, 0x9a, 0x81, 0xad, 0xda, 0x3c, 0x8c, 0x8c, 0x6f, 0xe4, 0xa0, 0x96, 0x4c, + 0xe7, 0xd1, 0xfa, 0x98, 0x09, 0x79, 0x63, 0x27, 0xf4, 0xf0, 0x31, 0x13, 0xf2, 0x1e, 0x37, 0xa1, + 0x87, 0x11, 0xfa, 0x22, 0x5c, 0x56, 0x0d, 0xa2, 0x7e, 0x14, 0x10, 0xaf, 0x9d, 0x6d, 0x28, 0x26, + 0xd6, 0x90, 0x34, 0x4d, 0x41, 0x92, 0x6a, 0x3f, 0x56, 0x20, 0xf1, 0xf4, 0x86, 0x04, 0xf2, 0xf0, + 0x24, 0x81, 0x14, 0x1f, 0x2b, 0x90, 0x2f, 0x43, 0x99, 0x1d, 0x24, 0x78, 0x58, 0x35, 0x0f, 0x45, + 0x4e, 0xc1, 0xe7, 0x9f, 0x37, 0xc5, 0x07, 0xdb, 0xdf, 0x25, 0x87, 0xa4, 0xcd, 0xe7, 0x9a, 0x37, + 0x13, 0x40, 0x9c, 0x44, 0xd8, 0x1b, 0x50, 0x22, 0x66, 0x94, 0x17, 0x49, 0x84, 0x5b, 0x0c, 0x60, + 0xfc, 0x92, 0x06, 0xc0, 0xfa, 0x97, 0xe6, 0xf3, 0x32, 0x14, 0xf9, 0x23, 0xcb, 0x91, 0xa8, 0x42, + 0xf1, 0x60, 0x0a, 0x3c, 0x3b, 0x99, 0xc6, 0x8f, 0x47, 0xc6, 0xd2, 0x71, 0x34, 0x23, 0x6b, 0x63, + 0x8a, 0x47, 0x4e, 0xf0, 0x09, 0x19, 0x43, 0x1b, 0xff, 0x5e, 0x14, 0xef, 0xad, 0x63, 0xad, 0xbf, + 0x02, 0x28, 0x9e, 0x82, 0x0a, 0x11, 0x95, 0xda, 0x67, 0x63, 0x8c, 0x0c, 0x14, 0x23, 0xf4, 0x69, + 0x58, 0x1a, 0x25, 0x4f, 0xbf, 0xe2, 0x5d, 0x18, 0x69, 0xc3, 0x23, 0xc3, 0xeb, 0x50, 0x17, 0x0a, + 0x89, 0x87, 0x90, 0xa5, 0xbc, 0x1c, 0x1a, 0x77, 0xff, 0x25, 0xb8, 0x1c, 0xb2, 0xb0, 0xbf, 0xbd, + 0x67, 0xb5, 0xf9, 0xe5, 0x89, 0x15, 0x1d, 0x38, 0x41, 0xc0, 0xfd, 0x63, 0xdf, 0xa3, 0xd2, 0x4e, + 0x2e, 0x4a, 0x1a, 0x71, 0xbf, 0xd2, 0x14, 0x14, 0x1b, 0x8c, 0x80, 0x9d, 0xdb, 0x54, 0x07, 0xcc, + 0xc9, 0x67, 0x5b, 0x0b, 0x6b, 0x59, 0x94, 0x04, 0xf7, 0xc9, 0x20, 0xd3, 0xf4, 0x2d, 0xb8, 0xa2, + 0x9a, 0xee, 0xf1, 0x5d, 0x82, 0x1f, 0x6b, 0xad, 0x2e, 0xdb, 0x07, 0x78, 0xf3, 0x62, 0x66, 0xf0, + 0x5b, 0x8c, 0x86, 0x9f, 0x72, 0xef, 0x39, 0x54, 0xf4, 0xf0, 0x19, 0x68, 0x64, 0x7b, 0xe0, 0xf6, + 0x20, 0x1a, 0x8b, 0x52, 0x8f, 0x85, 0x74, 0x63, 0x66, 0xb3, 0xa2, 0xe1, 0x9b, 0xb0, 0x34, 0xa6, + 0x21, 0x33, 0x24, 0x19, 0x12, 0xcf, 0x0f, 0xb7, 0x63, 0x36, 0xf5, 0x98, 0xf1, 0x3c, 0xec, 0xf9, + 0x2a, 0xf0, 0x1d, 0x19, 0xef, 0x21, 0x43, 0x32, 0xc7, 0xd7, 0x21, 0xd4, 0x8a, 0x3c, 0x1c, 0x44, + 0x5d, 0x9f, 0xca, 0x26, 0xe2, 0x09, 0xb5, 0xde, 0x21, 0xb4, 0x29, 0x11, 0x82, 0x9a, 0x09, 0x26, + 0xce, 0x8e, 0x59, 0x41, 0xe8, 0x07, 0x7e, 0x44, 0x2c, 0xee, 0x2b, 0x44, 0xc3, 0xaa, 0x14, 0x8c, + 0x4a, 0x98, 0xed, 0x0a, 0x12, 0xb6, 0x4d, 0x8e, 0xeb, 0x81, 0x45, 0x2b, 0x4e, 0xd8, 0x4b, 0xf7, + 0x50, 0x1b, 0xea, 0x61, 0x43, 0x90, 0x8c, 0xf6, 0x10, 0xf8, 0xbe, 0x6b, 0x45, 0x76, 0x97, 0xb4, + 0xfb, 0x6e, 0x86, 0x87, 0xe9, 0xa4, 0x87, 0x5d, 0xdf, 0x77, 0x9b, 0x92, 0x24, 0xee, 0xc1, 0xf8, + 0x15, 0x0d, 0xaa, 0xa9, 0xa2, 0x39, 0x76, 0x6e, 0xe5, 0x3e, 0x41, 0xd4, 0xd8, 0xc9, 0x65, 0x98, + 0x9c, 0x5b, 0x13, 0xd7, 0x68, 0x02, 0x4d, 0xbc, 0xfe, 0x1b, 0x50, 0xe5, 0x49, 0x08, 0xd9, 0x2a, + 0x37, 0xd4, 0x2a, 0x59, 0x5a, 0x26, 0x44, 0xf1, 0x6f, 0x51, 0xd5, 0x2b, 0xce, 0x72, 0xc6, 0x7f, + 0x68, 0x30, 0x9d, 0x29, 0xde, 0x9b, 0x90, 0x93, 0xcf, 0x43, 0x3d, 0xc5, 0x89, 0x75, 0xb8, 0x2e, + 0x99, 0x59, 0x18, 0xc3, 0xcc, 0xa3, 0x75, 0xb3, 0x16, 0xa5, 0x57, 0xfd, 0x67, 0xa0, 0xc6, 0xbd, + 0x8b, 0x1a, 0x33, 0x3f, 0x14, 0x8f, 0xf3, 0x28, 0x51, 0x0e, 0x5a, 0x3d, 0x4a, 0x3e, 0xd8, 0xa8, + 0x29, 0x5e, 0x93, 0xf2, 0xd0, 0x85, 0x31, 0xec, 0xb2, 0x51, 0x69, 0xea, 0xcb, 0xf8, 0xa0, 0x04, + 0xd5, 0x54, 0xcf, 0xe8, 0x75, 0x58, 0x8c, 0xa8, 0x1f, 0x12, 0x6b, 0x0f, 0x53, 0xbb, 0x9b, 0xd6, + 0xa6, 0xf0, 0x3f, 0x73, 0x1c, 0xcb, 0xef, 0x03, 0x13, 0x4b, 0x78, 0x93, 0x7b, 0x20, 0x6e, 0x82, + 0x91, 0xd8, 0x47, 0xe2, 0x56, 0xc2, 0xa5, 0xcc, 0x4b, 0x74, 0x93, 0x6f, 0x21, 0xaa, 0xd9, 0x2a, + 0xcc, 0x06, 0xcc, 0xcb, 0xf0, 0x87, 0xcd, 0x1d, 0xd9, 0x40, 0x86, 0x7f, 0x12, 0xb1, 0xed, 0x77, + 0x04, 0xed, 0x06, 0x5c, 0x0d, 0xf1, 0x3e, 0xb5, 0xda, 0x7b, 0x96, 0x90, 0x92, 0x4b, 0x70, 0x9b, + 0x84, 0xe9, 0xa1, 0x84, 0x2b, 0x59, 0x66, 0x64, 0x9b, 0x7b, 0x7c, 0x4e, 0xdb, 0x9c, 0x26, 0x19, + 0x70, 0x1d, 0x16, 0x55, 0x27, 0x2a, 0x05, 0x26, 0xdb, 0xca, 0x2d, 0x48, 0xb4, 0x6d, 0x8a, 0x74, + 0x98, 0x68, 0xf3, 0x45, 0xb8, 0x9c, 0x1d, 0xb8, 0x47, 0x7a, 0x94, 0x1d, 0x1e, 0x65, 0x4b, 0xe1, + 0x44, 0x1a, 0xa9, 0x51, 0x1f, 0x48, 0x02, 0xd1, 0xfe, 0x06, 0xc8, 0x73, 0x4f, 0x6a, 0x34, 0xe1, + 0x40, 0x64, 0x5a, 0x25, 0x1e, 0xe9, 0x75, 0x58, 0xc4, 0x41, 0xe0, 0x0e, 0x46, 0x45, 0x2f, 0xdc, + 0xf8, 0x1c, 0xc7, 0x0e, 0x89, 0xfe, 0x25, 0x98, 0x11, 0x8d, 0x92, 0xde, 0x2b, 0xf2, 0x1d, 0x22, + 0x03, 0x8f, 0x76, 0xde, 0xeb, 0x53, 0x72, 0x2c, 0x1e, 0x2d, 0xa6, 0x5d, 0x8c, 0xe8, 0xfc, 0x01, + 0x43, 0xb2, 0x33, 0x74, 0xbc, 0xc2, 0x45, 0xa3, 0xc7, 0x89, 0x5c, 0x7a, 0x19, 0x4e, 0x34, 0x56, + 0xe2, 0xaf, 0xc1, 0x42, 0xba, 0x87, 0x23, 0xec, 0x66, 0xbc, 0x0b, 0x4a, 0x5a, 0xbe, 0x8b, 0x5d, + 0xd1, 0xe4, 0xf3, 0xb0, 0x9c, 0x6e, 0x32, 0x24, 0x6e, 0xe1, 0x53, 0x96, 0x92, 0x76, 0x23, 0xd2, + 0x76, 0x87, 0xa5, 0x27, 0x52, 0x83, 0x75, 0x37, 0x2b, 0xb8, 0x17, 0x61, 0x5a, 0x85, 0x3f, 0x82, + 0x4c, 0xa6, 0x04, 0x25, 0x50, 0x10, 0xb1, 0x2d, 0xb2, 0x1b, 0xfa, 0x94, 0xc6, 0xe3, 0xeb, 0x72, + 0x8b, 0x94, 0x50, 0x41, 0xf6, 0xff, 0xe1, 0xd2, 0xf0, 0x23, 0xbf, 0x34, 0x03, 0xb3, 0x32, 0x92, + 0x1a, 0x7e, 0xa6, 0xae, 0xdc, 0xe0, 0x7b, 0x30, 0x25, 0x2e, 0xc1, 0x93, 0x5a, 0x5c, 0xed, 0x09, + 0xd5, 0xc8, 0xa7, 0xac, 0x15, 0x33, 0x3e, 0xd0, 0xa0, 0xac, 0x9e, 0xf1, 0xa0, 0x4b, 0x90, 0xf3, + 0x03, 0xf9, 0xc4, 0x3d, 0x93, 0x03, 0xca, 0xf9, 0xc1, 0xa9, 0xab, 0xcf, 0x32, 0xe1, 0x7f, 0xe1, + 0x14, 0xe1, 0xbf, 0xf1, 0x93, 0x1c, 0x54, 0x1e, 0x1c, 0xda, 0x36, 0x57, 0x17, 0xba, 0x9a, 0x79, + 0x69, 0x9f, 0x61, 0x43, 0xbc, 0xa7, 0x3f, 0xe1, 0x1e, 0xea, 0xd2, 0xc8, 0xab, 0xf2, 0xd4, 0xeb, + 0xb4, 0xab, 0x50, 0x8d, 0xba, 0x7e, 0x48, 0xad, 0xd4, 0xbb, 0x72, 0x13, 0x38, 0x88, 0xff, 0x0f, + 0x03, 0x16, 0x27, 0x75, 0x71, 0x64, 0xf9, 0x87, 0x24, 0x74, 0x31, 0x0f, 0x41, 0xd4, 0x2b, 0x4f, + 0x59, 0x21, 0xb6, 0xd0, 0xc5, 0xd1, 0x4e, 0x8c, 0x55, 0x4f, 0x2d, 0xd0, 0x0a, 0xd4, 0x58, 0xbb, + 0x8e, 0x6d, 0xed, 0xf3, 0xd7, 0xfc, 0xa2, 0x42, 0x02, 0xba, 0x38, 0xba, 0x6b, 0xdf, 0xe1, 0xcf, + 0xf9, 0x2f, 0x42, 0x39, 0xc6, 0x8a, 0xb5, 0x5d, 0xea, 0x48, 0xd4, 0xc7, 0xa0, 0xee, 0xe2, 0x88, + 0x1f, 0x5b, 0xbd, 0x0e, 0x4f, 0xa8, 0x89, 0xc5, 0x5c, 0x63, 0xd0, 0x0d, 0x0e, 0xe4, 0xb9, 0x81, + 0xa5, 0x38, 0x70, 0xa3, 0xbe, 0x95, 0x6a, 0x21, 0x57, 0xf3, 0xbc, 0x42, 0xb7, 0xfc, 0xed, 0xb8, + 0xa1, 0xf1, 0x05, 0x21, 0x58, 0x31, 0xbd, 0x13, 0x0e, 0x71, 0x63, 0xff, 0x45, 0x81, 0xf1, 0x9d, + 0x3c, 0x94, 0x59, 0x73, 0x9e, 0x91, 0x7c, 0x16, 0xb5, 0xa4, 0x32, 0x24, 0xf9, 0x6c, 0x86, 0xe4, + 0x89, 0x3a, 0x19, 0xad, 0x5d, 0x3c, 0xcd, 0xbf, 0xc4, 0x48, 0xa7, 0x3b, 0x4b, 0xc3, 0xe9, 0xce, + 0xd3, 0xe6, 0x25, 0x87, 0x72, 0x8e, 0x95, 0xd1, 0x7f, 0x30, 0x73, 0x15, 0xaa, 0xf1, 0x23, 0x61, + 0x2a, 0xb2, 0x92, 0x05, 0x13, 0x14, 0xa8, 0x15, 0x8d, 0x51, 0x6e, 0xf5, 0xe9, 0x94, 0x5b, 0x3b, + 0x41, 0xb9, 0x5f, 0xd7, 0x84, 0x7a, 0xf8, 0xe1, 0x47, 0x9d, 0x38, 0xb4, 0x31, 0x77, 0x61, 0xfc, + 0xae, 0x5e, 0x9c, 0x38, 0x56, 0x61, 0x8a, 0x7b, 0x4d, 0x75, 0x29, 0x8f, 0x32, 0x84, 0x7c, 0x01, + 0x9a, 0x92, 0x82, 0xd1, 0xca, 0xff, 0xb3, 0x90, 0x1f, 0x43, 0xcb, 0xd5, 0xa3, 0xfe, 0xf7, 0x82, + 0xf1, 0x3a, 0x94, 0xe4, 0xcb, 0x0c, 0xae, 0xb1, 0x63, 0x4f, 0x5a, 0x18, 0xfb, 0x89, 0x16, 0x61, + 0x2a, 0xe2, 0xaf, 0x94, 0xa5, 0x5d, 0xc8, 0x2f, 0xe3, 0x2d, 0x9e, 0xb1, 0xe5, 0xd7, 0xc3, 0xd9, + 0x8a, 0x04, 0xed, 0xf1, 0xf5, 0x38, 0xb9, 0x4c, 0x3d, 0xce, 0x9f, 0x6b, 0x00, 0x62, 0x47, 0xe1, + 0x43, 0x9f, 0x78, 0xbb, 0xb7, 0x04, 0xa5, 0x80, 0x90, 0x90, 0xa1, 0x24, 0x1b, 0xec, 0x73, 0xab, + 0x1d, 0x5f, 0xce, 0xe5, 0x53, 0x97, 0x73, 0xc3, 0x57, 0x81, 0x85, 0x53, 0x5e, 0x05, 0xbe, 0x26, + 0xcf, 0x93, 0x6c, 0x86, 0x44, 0xa6, 0x78, 0x13, 0xb9, 0xb1, 0x60, 0xbe, 0xc9, 0x30, 0xe2, 0x8c, + 0xc9, 0x7f, 0x1a, 0x5b, 0x50, 0x89, 0xe1, 0xa3, 0xf7, 0x50, 0xda, 0xf8, 0x7b, 0x28, 0xfe, 0xe0, + 0x83, 0x26, 0x02, 0xc5, 0xfb, 0xa4, 0x15, 0x19, 0x4d, 0x40, 0xa2, 0x80, 0x86, 0x8b, 0x44, 0x5d, + 0xf6, 0xbc, 0x92, 0x94, 0x08, 0x88, 0x07, 0x9c, 0x49, 0x98, 0x9a, 0xc8, 0x2e, 0xae, 0x13, 0x40, + 0x75, 0xc8, 0xc5, 0x1d, 0xe7, 0x68, 0x64, 0x7c, 0x09, 0xe6, 0x32, 0x9d, 0xca, 0x7b, 0xdd, 0x46, + 0xb6, 0xd7, 0xc2, 0xe3, 0x3b, 0xd8, 0x04, 0xd4, 0x64, 0x31, 0x61, 0x93, 0x31, 0xd9, 0x54, 0x5c, + 0xad, 0x41, 0x85, 0x1d, 0xf6, 0x78, 0x55, 0xc0, 0xb8, 0xdd, 0x4c, 0x54, 0x0d, 0x94, 0x0f, 0xe4, + 0x2f, 0x63, 0x0d, 0xe6, 0x32, 0xbd, 0x48, 0x36, 0x52, 0xb2, 0xd0, 0x32, 0xb2, 0xb0, 0x79, 0xa5, + 0xdd, 0x5d, 0xc2, 0x0c, 0xa8, 0xd5, 0xda, 0x3e, 0x9f, 0xaa, 0xf9, 0x6f, 0x68, 0xbc, 0xfa, 0x2d, + 0x35, 0xca, 0x39, 0xdc, 0x7a, 0x27, 0xcf, 0xed, 0xb9, 0xff, 0x3b, 0xb1, 0x6e, 0xfe, 0xef, 0x44, + 0x81, 0xf9, 0xc6, 0xcd, 0xe6, 0x79, 0x16, 0x98, 0x7f, 0x12, 0x50, 0x10, 0x92, 0x43, 0xc7, 0xef, + 0x47, 0xa9, 0xff, 0x8c, 0x20, 0x78, 0xd1, 0x15, 0x26, 0xfe, 0xbf, 0x08, 0xd7, 0xa1, 0x1e, 0x53, + 0x8b, 0xce, 0xc4, 0xc3, 0xba, 0x69, 0x05, 0x7d, 0x94, 0xaa, 0x5a, 0x9f, 0x1a, 0xae, 0x5a, 0x2f, + 0xc5, 0x33, 0x37, 0x7e, 0x20, 0xaa, 0x6c, 0xf9, 0xe4, 0xce, 0x5a, 0xce, 0x0d, 0x28, 0x45, 0x7d, + 0xdb, 0x26, 0xb2, 0x5e, 0xa4, 0x6c, 0xaa, 0xcf, 0x73, 0x99, 0xac, 0xb1, 0x09, 0x8b, 0x77, 0x09, + 0x55, 0x51, 0x1e, 0x5f, 0x80, 0x4f, 0xaf, 0x2f, 0xe3, 0x5b, 0x1a, 0x2c, 0x8d, 0x74, 0x73, 0xd6, + 0x92, 0xf9, 0x14, 0x73, 0xbe, 0x94, 0x6f, 0x81, 0xf9, 0x13, 0x93, 0xea, 0x8a, 0xcc, 0xb8, 0x0b, + 0x17, 0x53, 0x5c, 0xdd, 0x73, 0xd8, 0x89, 0x70, 0x92, 0xaa, 0x1a, 0xe3, 0xdb, 0x1a, 0x2c, 0x8f, + 0xeb, 0xe9, 0xa3, 0x9f, 0xe2, 0x5f, 0x88, 0xba, 0xe5, 0x0d, 0x5f, 0x9e, 0x06, 0xfc, 0x70, 0xc2, + 0x22, 0x54, 0xdb, 0x0f, 0x42, 0x71, 0x37, 0x2d, 0x38, 0x2a, 0x33, 0x00, 0xbf, 0x92, 0xe6, 0xe7, + 0xc2, 0x20, 0x54, 0xc9, 0x37, 0x2b, 0x24, 0xef, 0x4b, 0xcf, 0x53, 0x67, 0xf0, 0xe4, 0xe5, 0x54, + 0xaa, 0xfa, 0xaa, 0xf0, 0xa4, 0x8a, 0x60, 0x24, 0x33, 0x8e, 0xc2, 0x28, 0x45, 0x7a, 0xb1, 0xcf, + 0xeb, 0x9e, 0x33, 0x53, 0x39, 0x6b, 0x01, 0xa3, 0x54, 0xa2, 0x53, 0x0d, 0xfb, 0x5d, 0xf1, 0x1e, + 0x84, 0xef, 0x2d, 0x51, 0xbf, 0x37, 0x89, 0xfc, 0x3e, 0x0b, 0x15, 0xec, 0x76, 0xfc, 0xd0, 0xa1, + 0xdd, 0x1e, 0x1f, 0xb0, 0xbe, 0xbe, 0x9c, 0x50, 0xcb, 0x8e, 0x6f, 0x2a, 0x0a, 0x33, 0x21, 0x7e, + 0x9a, 0x82, 0xb5, 0x3f, 0x12, 0x35, 0xdb, 0x09, 0x9f, 0x67, 0x2d, 0x9c, 0x65, 0x28, 0xdb, 0xb2, + 0xf3, 0xf8, 0xcc, 0x22, 0xbf, 0x99, 0x85, 0x88, 0x14, 0xec, 0xc1, 0x61, 0xfc, 0xef, 0x36, 0x38, + 0xe0, 0xfe, 0x21, 0x0f, 0x3f, 0x05, 0x52, 0x64, 0xaf, 0x45, 0x8c, 0x0c, 0x1c, 0x24, 0xd2, 0xd7, + 0xdf, 0xcb, 0x43, 0x6d, 0xc3, 0xef, 0x05, 0xd8, 0xa6, 0x82, 0x81, 0xf7, 0x60, 0x81, 0x84, 0xa1, + 0xe5, 0x78, 0x87, 0xd8, 0x75, 0xda, 0x56, 0x36, 0xe2, 0xaa, 0xae, 0x7f, 0x2c, 0x7d, 0x37, 0x1b, + 0xb7, 0xda, 0x12, 0xd4, 0x4d, 0x19, 0x8d, 0xdd, 0xbb, 0x60, 0x22, 0x12, 0x0e, 0x43, 0x91, 0x0b, + 0x97, 0x59, 0xd7, 0x81, 0xac, 0x11, 0xb5, 0xe4, 0x99, 0x3c, 0x76, 0x98, 0x22, 0xd1, 0xb5, 0x3a, + 0x76, 0x04, 0x55, 0x58, 0xda, 0xe2, 0xe7, 0x74, 0xe9, 0x4a, 0xef, 0x5d, 0x30, 0x1b, 0x24, 0x1c, + 0x8f, 0x43, 0x16, 0x2c, 0xb1, 0xd1, 0x6c, 0xd1, 0x89, 0xe5, 0x78, 0x56, 0x10, 0xfa, 0x9d, 0x90, + 0x44, 0x91, 0x4c, 0x8b, 0xbd, 0x34, 0x76, 0x20, 0xf9, 0x7b, 0xcb, 0xdb, 0x95, 0xd4, 0xf7, 0x2e, + 0x98, 0xf3, 0x24, 0x1c, 0x85, 0xa3, 0x7d, 0x58, 0x66, 0x03, 0x50, 0xdf, 0xb7, 0x7a, 0xd8, 0x1b, + 0x58, 0x01, 0xf1, 0xda, 0x8e, 0xd7, 0xb1, 0x28, 0x8e, 0x0e, 0x22, 0x19, 0x0e, 0xde, 0x18, 0x3b, + 0x46, 0xcb, 0xf7, 0x1f, 0x60, 0x6f, 0xb0, 0x2b, 0x1a, 0xb4, 0x18, 0xfd, 0xbd, 0x0b, 0xe6, 0x22, + 0x09, 0xc7, 0x61, 0x6e, 0x95, 0xa4, 0x49, 0x18, 0x57, 0xe0, 0xd2, 0x09, 0x42, 0x37, 0x5e, 0x84, + 0x6b, 0x4f, 0x94, 0x98, 0x71, 0x15, 0xae, 0x9c, 0x38, 0x5b, 0xe3, 0x1a, 0x5c, 0x7d, 0x02, 0xab, + 0x2c, 0x82, 0xa8, 0x4b, 0x1a, 0xb5, 0x24, 0x4f, 0x8c, 0xcd, 0x57, 0x61, 0x76, 0x48, 0xe7, 0x8e, + 0xba, 0x67, 0x99, 0x09, 0xd2, 0x5c, 0x6e, 0xb5, 0x79, 0xf2, 0xc5, 0xef, 0x64, 0x49, 0xc5, 0x9d, + 0x4b, 0x5d, 0xc2, 0x15, 0xe5, 0x50, 0x81, 0x52, 0xe9, 0x74, 0x05, 0x4a, 0x43, 0x95, 0x39, 0xe5, + 0xe1, 0xca, 0x1c, 0xe3, 0xcf, 0xc4, 0x65, 0xaf, 0x98, 0x9c, 0x5c, 0xc7, 0x9f, 0xc8, 0xa6, 0x54, + 0x16, 0xc6, 0x2a, 0x55, 0xad, 0xd5, 0x17, 0x61, 0x9a, 0x1d, 0xf5, 0x43, 0xd2, 0xc3, 0x8e, 0xe7, + 0x78, 0x1d, 0x59, 0x74, 0xce, 0xce, 0xff, 0xa6, 0x82, 0xa1, 0x35, 0x5e, 0xff, 0xc0, 0xda, 0x92, + 0xf4, 0x1a, 0x13, 0xce, 0x6f, 0x36, 0x46, 0x35, 0x53, 0x22, 0x4c, 0xe8, 0xb3, 0x8f, 0x53, 0x67, + 0x62, 0xc4, 0x6d, 0x7e, 0xe2, 0x59, 0x7d, 0x1b, 0x2e, 0x3e, 0xf6, 0xbf, 0x19, 0xa2, 0x79, 0xd0, + 0x93, 0xaf, 0x87, 0x7e, 0xd8, 0xc3, 0xae, 0x7e, 0x01, 0x2d, 0xc1, 0x5c, 0x02, 0xbd, 0xe3, 0x87, + 0x36, 0x2f, 0x44, 0xd7, 0xb5, 0x55, 0x17, 0x2e, 0x9f, 0xf4, 0xef, 0x0b, 0x59, 0x77, 0xb2, 0xcc, + 0xbb, 0xef, 0xd2, 0xb8, 0xbb, 0x15, 0xb8, 0x9c, 0x40, 0xb7, 0x47, 0xfe, 0x0b, 0xa1, 0x28, 0x35, + 0x48, 0x28, 0xc4, 0x0d, 0xb2, 0x9e, 0x5b, 0x7d, 0x19, 0x20, 0x51, 0x1b, 0x9a, 0x82, 0xdc, 0xa3, + 0xd7, 0xf4, 0x0b, 0xa8, 0x02, 0xc5, 0x47, 0xaf, 0xb5, 0x5a, 0xdb, 0xba, 0xc6, 0x41, 0xeb, 0x7a, + 0x6e, 0xf5, 0x13, 0x00, 0x49, 0xfd, 0x23, 0x02, 0x98, 0x8a, 0x87, 0x2e, 0x41, 0x7e, 0xdb, 0x3f, + 0xd2, 0x35, 0x54, 0x86, 0xc2, 0x3d, 0xa7, 0xd3, 0xd5, 0x73, 0xab, 0xaf, 0x42, 0x3d, 0x5b, 0xf4, + 0xc8, 0xba, 0x69, 0x6e, 0xe9, 0x17, 0xd8, 0x5f, 0x73, 0x43, 0xd7, 0x78, 0x39, 0xc3, 0x86, 0x28, + 0x67, 0x68, 0xea, 0xb9, 0xd5, 0x47, 0x50, 0x4d, 0x15, 0xd0, 0x31, 0x5e, 0x1f, 0xfa, 0xf4, 0xa6, + 0xeb, 0xfa, 0x47, 0xa4, 0xbd, 0xe3, 0x31, 0xb0, 0x10, 0x59, 0x0c, 0xba, 0xe9, 0xf6, 0xfc, 0x88, + 0x72, 0x84, 0x86, 0x1a, 0x30, 0x9f, 0x42, 0xf0, 0xe2, 0x07, 0x8e, 0xc9, 0xad, 0xda, 0x90, 0xdb, + 0x09, 0x18, 0x87, 0xbb, 0x7d, 0x2a, 0x58, 0xdd, 0x24, 0xae, 0x60, 0x95, 0x8b, 0x3b, 0x87, 0x6a, + 0x50, 0x56, 0x29, 0x23, 0x3d, 0xcf, 0xe6, 0xb5, 0xe5, 0x45, 0x24, 0xa4, 0x7a, 0x01, 0xcd, 0xc1, + 0xcc, 0x90, 0x22, 0xf4, 0x22, 0x42, 0x50, 0xe7, 0x5c, 0xab, 0xd5, 0x1d, 0xe9, 0x53, 0xab, 0x6b, + 0x50, 0x89, 0x33, 0x68, 0xac, 0xe7, 0x87, 0xbe, 0x47, 0x84, 0x10, 0x39, 0x89, 0xae, 0xb1, 0x41, + 0x54, 0x03, 0x21, 0x9d, 0xec, 0xff, 0xa7, 0x65, 0x7c, 0xed, 0xec, 0xef, 0xeb, 0x17, 0x58, 0xeb, + 0x3b, 0x98, 0x37, 0x01, 0x98, 0x6a, 0xd2, 0x90, 0xa9, 0x2e, 0xb7, 0xfa, 0xdb, 0x1a, 0x4c, 0xc9, + 0x7f, 0x52, 0xcb, 0x7b, 0x12, 0xbf, 0xf5, 0x0b, 0x68, 0x01, 0x66, 0x5b, 0xad, 0x6d, 0x51, 0x20, + 0x11, 0xcf, 0x82, 0xcb, 0x83, 0x67, 0x83, 0xe5, 0x90, 0x31, 0x26, 0xc7, 0x1a, 0x3c, 0x88, 0x2b, + 0x1a, 0x9a, 0xbb, 0xfd, 0xa8, 0x4b, 0xda, 0x7a, 0x9e, 0x59, 0x4f, 0xdc, 0xcf, 0x98, 0x7f, 0x34, + 0xa8, 0x17, 0xd0, 0x45, 0x58, 0x48, 0x77, 0xb9, 0xe9, 0x3f, 0xf4, 0x69, 0xd7, 0xf1, 0x3a, 0x7a, + 0x71, 0xf5, 0x3a, 0x94, 0x6e, 0x1f, 0xd3, 0x10, 0xef, 0x04, 0x62, 0xf2, 0x7e, 0xa0, 0x5f, 0x40, + 0x3a, 0xd4, 0xd8, 0xf9, 0x79, 0xc7, 0x6d, 0xf3, 0xd0, 0x5a, 0xd7, 0x56, 0x0d, 0x98, 0x1d, 0xd9, + 0xfc, 0x99, 0x19, 0x6c, 0x84, 0xf6, 0xa7, 0xdf, 0xb0, 0x7e, 0xc6, 0x0f, 0xf5, 0x0b, 0xb7, 0x5e, + 0xfa, 0xdb, 0xdf, 0x2b, 0x6b, 0x3f, 0xf8, 0xf0, 0x05, 0xed, 0xc7, 0x1f, 0xbe, 0xa0, 0xfd, 0xe3, + 0x87, 0x2f, 0x68, 0xbf, 0xf5, 0xcf, 0x2f, 0x5c, 0x00, 0xdd, 0x0f, 0x3b, 0x6b, 0xd4, 0x39, 0x38, + 0x5c, 0x3b, 0x38, 0xe4, 0xff, 0x2e, 0x7d, 0x6f, 0x8a, 0xff, 0x79, 0xfd, 0x7f, 0x02, 0x00, 0x00, + 0xff, 0xff, 0x2f, 0x19, 0xfd, 0x7a, 0xb2, 0x5d, 0x00, 0x00, } func (m *GetRequest) Marshal() (dAtA []byte, err error) { @@ -18231,6 +18242,11 @@ func (m *CompactRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x40 } + if m.ApiVersion != 0 { + i = encodeVarintKvrpcpb(dAtA, i, uint64(m.ApiVersion)) + i-- + dAtA[i] = 0x38 + } if m.LogicalTableId != 0 { i = encodeVarintKvrpcpb(dAtA, i, uint64(m.LogicalTableId)) i-- @@ -21773,6 +21789,9 @@ func (m *CompactRequest) Size() (n int) { if m.LogicalTableId != 0 { n += 1 + sovKvrpcpb(uint64(m.LogicalTableId)) } + if m.ApiVersion != 0 { + n += 1 + sovKvrpcpb(uint64(m.ApiVersion)) + } if m.KeyspaceId != 0 { n += 1 + sovKvrpcpb(uint64(m.KeyspaceId)) } @@ -42698,6 +42717,25 @@ func (m *CompactRequest) Unmarshal(dAtA []byte) error { break } } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ApiVersion", wireType) + } + m.ApiVersion = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ApiVersion |= APIVersion(b&0x7F) << shift + if b < 0x80 { + break + } + } case 8: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field KeyspaceId", wireType) diff --git a/pkg/tracepb/tracepb.pb.go b/pkg/tracepb/tracepb.pb.go index e5b4919..55cf091 100644 --- a/pkg/tracepb/tracepb.pb.go +++ b/pkg/tracepb/tracepb.pb.go @@ -68,6 +68,7 @@ var xxx_messageInfo_TraceRecordRequest proto.InternalMessageInfo type TraceRecord struct { // Types that are valid to be assigned to RecordOneof: + // // *TraceRecord_Report // *TraceRecord_NotifyCollect RecordOneof isTraceRecord_RecordOneof `protobuf_oneof:"record_oneof"` diff --git a/proto/kvrpcpb.proto b/proto/kvrpcpb.proto index 25c6d07..5366252 100644 --- a/proto/kvrpcpb.proto +++ b/proto/kvrpcpb.proto @@ -1448,6 +1448,8 @@ message CompactRequest { // See https://github.com/pingcap/kvproto/issues/912 int64 logical_table_id = 3; + // API version of the request + APIVersion api_version = 7; // Keyspace of the table located in. uint32 keyspace_id = 8; } -- Gitee From 1809bf94c64dbdb3a638314a579a6f130569a998 Mon Sep 17 00:00:00 2001 From: Hu# Date: Tue, 14 Mar 2023 17:24:01 +0800 Subject: [PATCH 17/44] add force update (#1058) * add force update Signed-off-by: husharp --- scripts/check.sh | 8 ++++++-- scripts/proto.lock | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/scripts/check.sh b/scripts/check.sh index 918bac9..e7faaf4 100755 --- a/scripts/check.sh +++ b/scripts/check.sh @@ -26,10 +26,14 @@ check-protos-compatible() { if protolock status -lockdir=scripts -protoroot=proto; then protolock commit -lockdir=scripts -protoroot=proto - return 0 else - return 1 + echo "Meet break compatibility problem, please check the code." + # In order not to block local branch development, when meet break compatibility will force to update `proto.lock`. + protolock commit --force -lockdir=scripts -protoroot=proto fi + # If the output message is encountered, please add proto.lock to git as well. + git diff scripts/proto.lock | cat + git diff --quiet scripts/proto.lock } if ! check_protoc_version || ! check-protos-compatible; then diff --git a/scripts/proto.lock b/scripts/proto.lock index 5f0e5c5..ade178e 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -10263,6 +10263,11 @@ "name": "logical_table_id", "type": "int64" }, + { + "id": 7, + "name": "api_version", + "type": "APIVersion" + }, { "id": 8, "name": "keyspace_id", -- Gitee From a626a05e1c1f68e3c2f10bc3133f949150d54734 Mon Sep 17 00:00:00 2001 From: Connor Date: Thu, 16 Mar 2023 15:06:03 +0800 Subject: [PATCH 18/44] Add priority field for resource group (#1079) * add priority for resource group Signed-off-by: Connor1996 --- pkg/resource_manager/resource_manager.pb.go | 219 ++++++++++++-------- proto/resource_manager.proto | 2 + scripts/proto.lock | 5 + 3 files changed, 135 insertions(+), 91 deletions(-) diff --git a/pkg/resource_manager/resource_manager.pb.go b/pkg/resource_manager/resource_manager.pb.go index 4edb5dc..5bc977e 100644 --- a/pkg/resource_manager/resource_manager.pb.go +++ b/pkg/resource_manager/resource_manager.pb.go @@ -1235,10 +1235,12 @@ type ResourceGroup struct { // Used in RU mode, group settings with WRU/RRU etc resource abstract unit. RUSettings *GroupRequestUnitSettings `protobuf:"bytes,3,opt,name=r_u_settings,json=rUSettings,proto3" json:"r_u_settings,omitempty"` // Used in Raw mode, group settings with CPU/IO etc resource unit. - RawResourceSettings *GroupRawResourceSettings `protobuf:"bytes,4,opt,name=raw_resource_settings,json=rawResourceSettings,proto3" json:"raw_resource_settings,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + RawResourceSettings *GroupRawResourceSettings `protobuf:"bytes,4,opt,name=raw_resource_settings,json=rawResourceSettings,proto3" json:"raw_resource_settings,omitempty"` + // The task scheduling priority + Priority uint32 `protobuf:"varint,5,opt,name=priority,proto3" json:"priority,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ResourceGroup) Reset() { *m = ResourceGroup{} } @@ -1302,6 +1304,13 @@ func (m *ResourceGroup) GetRawResourceSettings() *GroupRawResourceSettings { return nil } +func (m *ResourceGroup) GetPriority() uint32 { + if m != nil { + return m.Priority + } + return 0 +} + type GroupRequestUnitSettings struct { RU *TokenBucket `protobuf:"bytes,1,opt,name=r_u,json=rU,proto3" json:"r_u,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1612,93 +1621,94 @@ func init() { func init() { proto.RegisterFile("resource_manager.proto", fileDescriptor_7048dd9233ee965d) } var fileDescriptor_7048dd9233ee965d = []byte{ - // 1374 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x4f, 0x6f, 0xdb, 0xc6, - 0x12, 0x17, 0xf5, 0x5f, 0xa3, 0x17, 0x5b, 0x5e, 0xdb, 0xb1, 0x22, 0x23, 0x4e, 0x42, 0xbc, 0x17, - 0x38, 0xce, 0x8b, 0x9d, 0xe7, 0x87, 0x34, 0x05, 0x7a, 0x49, 0xec, 0xb4, 0x89, 0x5b, 0x3b, 0x31, - 0xd6, 0x11, 0x7a, 0x6a, 0x58, 0x5a, 0xdc, 0x08, 0xac, 0x28, 0x2e, 0xb5, 0x5c, 0x5a, 0xf1, 0xad, - 0x68, 0x7b, 0xea, 0x27, 0xe8, 0x07, 0xe8, 0xa1, 0xe8, 0xa9, 0xe7, 0x16, 0xbd, 0xf5, 0xd0, 0x63, - 0x8f, 0x3d, 0x16, 0xe9, 0x17, 0x29, 0x76, 0x97, 0xa4, 0xc8, 0x50, 0xb2, 0x64, 0x23, 0x68, 0x6f, - 0xab, 0x99, 0xdf, 0xfc, 0xe6, 0xcf, 0xce, 0x2c, 0x77, 0x05, 0x97, 0x19, 0xf1, 0x69, 0xc0, 0x3a, - 0xc4, 0xe8, 0x9b, 0xae, 0xd9, 0x25, 0x6c, 0xd3, 0x63, 0x94, 0x53, 0xd4, 0x78, 0x53, 0xde, 0x5a, - 0xea, 0xd2, 0x2e, 0x95, 0xca, 0x2d, 0xb1, 0x52, 0xb8, 0xd6, 0x3c, 0x0b, 0x7c, 0x2e, 0x97, 0x4a, - 0xa0, 0xaf, 0xc2, 0x95, 0x7d, 0xdb, 0xe7, 0x38, 0x34, 0x7f, 0xcc, 0x68, 0xe0, 0xf9, 0x98, 0x0c, - 0x02, 0xe2, 0x73, 0xfd, 0x2b, 0x0d, 0x5a, 0xe3, 0xb4, 0xbe, 0x47, 0x5d, 0x9f, 0xa0, 0x3b, 0x50, - 0x22, 0x8c, 0x51, 0xd6, 0xd4, 0xae, 0x6b, 0xeb, 0xf5, 0xed, 0x95, 0xcd, 0x4c, 0x70, 0xef, 0x0b, - 0x35, 0x56, 0x28, 0x74, 0x1f, 0xca, 0x5d, 0x49, 0xd0, 0xcc, 0x5f, 0x2f, 0xac, 0xd7, 0xb7, 0xaf, - 0x65, 0xf1, 0x29, 0x47, 0x38, 0x84, 0xeb, 0x7b, 0xb0, 0xf2, 0x98, 0xa4, 0x83, 0x08, 0x23, 0x44, - 0x9b, 0xb0, 0x18, 0x93, 0x48, 0xb4, 0xe1, 0x9a, 0x7d, 0x22, 0x03, 0xaa, 0xe1, 0x05, 0x96, 0x34, - 0x79, 0x6a, 0xf6, 0x89, 0xfe, 0xb9, 0x06, 0xcd, 0x2c, 0xd7, 0xc5, 0xf2, 0xb9, 0x07, 0x25, 0xe9, - 0xb2, 0x99, 0x97, 0xf0, 0xa9, 0xe9, 0x28, 0xb4, 0xbe, 0x0f, 0xad, 0x47, 0xc4, 0x21, 0x9c, 0xbc, - 0x95, 0x84, 0x3e, 0x85, 0xd5, 0xb1, 0x6c, 0x17, 0x4b, 0x09, 0x41, 0xf1, 0x98, 0x5a, 0xa7, 0x32, - 0xa3, 0x1a, 0x96, 0x6b, 0xfd, 0x10, 0x56, 0x0e, 0x83, 0xf1, 0xd5, 0x8f, 0x2b, 0xa0, 0x9d, 0xab, - 0x02, 0x9f, 0x40, 0x33, 0xcb, 0xf8, 0xf6, 0x02, 0xfe, 0x51, 0x83, 0xc5, 0xe7, 0xb4, 0x47, 0xdc, - 0x9d, 0xa0, 0xd3, 0x23, 0x3c, 0xea, 0x66, 0xf4, 0x00, 0xaa, 0x4c, 0x2d, 0xfd, 0xa6, 0x26, 0x3b, - 0xf0, 0xdf, 0x59, 0xf6, 0x84, 0x61, 0x68, 0x87, 0x63, 0x2b, 0x74, 0x1f, 0x9a, 0xdc, 0x64, 0x5d, - 0xc2, 0x8d, 0x50, 0x64, 0x78, 0x84, 0xd9, 0xd4, 0x32, 0xfa, 0xbe, 0x8c, 0xa0, 0x88, 0x97, 0x95, - 0x3e, 0x34, 0x3d, 0x94, 0xda, 0x03, 0x1f, 0xad, 0x43, 0xa3, 0xe3, 0xd8, 0xc4, 0xe5, 0x46, 0xe0, - 0xda, 0x83, 0x80, 0x18, 0xb6, 0xd5, 0x2c, 0x48, 0x83, 0x39, 0x25, 0x6f, 0x4b, 0xf1, 0x9e, 0xa5, - 0x7f, 0x5b, 0x04, 0x94, 0x8d, 0xe1, 0xbc, 0x6d, 0x81, 0x3e, 0x82, 0x2a, 0x0b, 0x0c, 0x9b, 0x93, - 0x30, 0xb2, 0xfa, 0xf6, 0xe6, 0x2c, 0xb9, 0x6e, 0x46, 0x39, 0xb7, 0x9f, 0xe4, 0x70, 0x85, 0x05, - 0x7b, 0x82, 0x00, 0x75, 0x01, 0x31, 0x73, 0x68, 0xc4, 0xf6, 0x8a, 0xb6, 0x20, 0x69, 0xef, 0x9f, - 0x8b, 0xd6, 0x1c, 0x46, 0xbb, 0xfe, 0x24, 0x87, 0x1b, 0x6c, 0xf4, 0x53, 0x39, 0x3a, 0x86, 0xb5, - 0x0e, 0x75, 0xfd, 0xa0, 0xef, 0x71, 0x9b, 0xba, 0x86, 0x6f, 0xbb, 0x1d, 0x62, 0x38, 0xa6, 0x1f, - 0xd7, 0xbb, 0x59, 0x94, 0x4e, 0xaf, 0x66, 0x9d, 0xee, 0x8e, 0xec, 0xf0, 0x6a, 0x82, 0xe4, 0x48, - 0x70, 0xec, 0x9b, 0x7e, 0x14, 0x4a, 0xeb, 0x29, 0xd4, 0xe2, 0x24, 0xd1, 0x43, 0xa8, 0x47, 0x3b, - 0xc9, 0x8c, 0x20, 0xec, 0x8a, 0x1b, 0xe3, 0xda, 0x58, 0x82, 0xda, 0xae, 0xcd, 0x45, 0xa4, 0xb8, - 0xc6, 0x22, 0x8a, 0x96, 0x0d, 0x28, 0x9b, 0x1d, 0x3a, 0x82, 0xa5, 0x98, 0x38, 0x51, 0xba, 0x33, - 0x3c, 0xa4, 0x6b, 0x81, 0x11, 0xcb, 0x90, 0xee, 0xd4, 0xa0, 0x12, 0x4a, 0xf5, 0xaf, 0x35, 0x58, - 0x4a, 0xf7, 0xf8, 0xc5, 0xe6, 0x67, 0x17, 0x6a, 0x2c, 0x34, 0x8d, 0x8e, 0xe5, 0xff, 0x4c, 0xd9, - 0x51, 0x85, 0xc6, 0x23, 0x3b, 0xfd, 0xcb, 0x7c, 0x6a, 0xe0, 0xe2, 0x58, 0xce, 0xdb, 0xb4, 0x47, - 0x80, 0xba, 0xcc, 0x74, 0x39, 0xb1, 0xc4, 0x6e, 0x18, 0x5c, 0x50, 0x46, 0x51, 0xdd, 0xcc, 0x46, - 0xf5, 0x58, 0x61, 0x71, 0x3b, 0xe9, 0x7b, 0xbe, 0x9b, 0x92, 0x8a, 0xe6, 0x5d, 0x89, 0x49, 0x23, - 0x86, 0x90, 0xb9, 0x20, 0x99, 0xb7, 0x26, 0x33, 0x8f, 0x6a, 0x9f, 0x74, 0xb1, 0x1c, 0xb9, 0x48, - 0xea, 0x7c, 0xfd, 0x27, 0x0d, 0x96, 0xc6, 0x85, 0x84, 0xee, 0x41, 0x91, 0x9f, 0x7a, 0x2a, 0xef, - 0xb9, 0x29, 0xdd, 0xf5, 0xfc, 0xd4, 0x23, 0x58, 0xc2, 0xd1, 0x23, 0x98, 0x8b, 0x02, 0x8f, 0x2b, - 0x31, 0xa1, 0xf9, 0x93, 0xd1, 0x5d, 0x0a, 0x8d, 0xc2, 0xf4, 0x6f, 0xc2, 0x3c, 0x67, 0x76, 0xa7, - 0xe7, 0x10, 0x83, 0xdb, 0x7d, 0x62, 0x84, 0x83, 0x5b, 0xc0, 0x97, 0x42, 0xf1, 0x73, 0xbb, 0x4f, - 0x0e, 0x7c, 0xfd, 0x17, 0x0d, 0xae, 0x9e, 0x99, 0xf6, 0x0c, 0x69, 0x24, 0xec, 0xfe, 0xa9, 0x34, - 0xbe, 0xcf, 0x43, 0x3d, 0x71, 0x14, 0x20, 0x04, 0x25, 0x16, 0x8e, 0xb6, 0xb6, 0xae, 0xe1, 0x02, - 0xc3, 0x6d, 0x21, 0x1b, 0x4a, 0x59, 0x5e, 0xc9, 0x86, 0xb8, 0x8d, 0xae, 0x02, 0x30, 0x62, 0x5a, - 0xc6, 0xf1, 0x29, 0x27, 0x8a, 0x5a, 0x13, 0x1d, 0x6e, 0x5a, 0x3b, 0x42, 0x80, 0xae, 0x41, 0x7d, - 0xc8, 0x6c, 0x4e, 0x42, 0x7d, 0x51, 0xea, 0x41, 0x8a, 0x14, 0xe0, 0x16, 0x2c, 0x70, 0xca, 0x4d, - 0xc7, 0xe8, 0x78, 0x41, 0x1c, 0x61, 0x49, 0xc2, 0xe6, 0xa4, 0x62, 0xd7, 0x0b, 0x54, 0x88, 0xe8, - 0x2e, 0x2c, 0xfb, 0x03, 0xc7, 0x70, 0xcc, 0x53, 0xc2, 0x52, 0xf0, 0xb2, 0x84, 0x2f, 0xf8, 0x03, - 0x67, 0x5f, 0xe8, 0x46, 0x16, 0xb7, 0x60, 0xa1, 0x77, 0x62, 0xc8, 0xf8, 0x98, 0xd7, 0x31, 0x3a, - 0x34, 0x70, 0x79, 0xb3, 0xa2, 0xc8, 0x7b, 0x27, 0x98, 0x98, 0x16, 0xf6, 0x3a, 0xbb, 0x42, 0x8a, - 0x6e, 0x03, 0xea, 0x9d, 0x18, 0x2a, 0xd6, 0x11, 0xb6, 0x2a, 0xb1, 0xf3, 0xbd, 0x93, 0x8f, 0x85, - 0x22, 0x02, 0xeb, 0x2f, 0x60, 0xfe, 0x8d, 0x83, 0xed, 0xa2, 0xbd, 0xba, 0x04, 0xa5, 0x13, 0xd3, - 0x09, 0x48, 0x58, 0x52, 0xf5, 0x43, 0xf2, 0xa7, 0x8f, 0xb5, 0x8b, 0x36, 0xd1, 0x78, 0xfe, 0x2f, - 0xf2, 0x70, 0x29, 0x75, 0x8b, 0x10, 0xd7, 0x81, 0xc4, 0x11, 0x23, 0xd7, 0x68, 0x0b, 0x8a, 0x7d, - 0x6a, 0x29, 0xd3, 0xb9, 0xed, 0xd5, 0x71, 0xd3, 0x4e, 0x03, 0xef, 0x80, 0x5a, 0x04, 0x4b, 0x20, - 0xda, 0x87, 0x7f, 0x89, 0xe3, 0xc7, 0x27, 0x9c, 0xdb, 0x6e, 0x37, 0xfa, 0xd0, 0x6d, 0x4c, 0x30, - 0x4c, 0x14, 0xe4, 0x28, 0xb4, 0xc0, 0xc0, 0xda, 0xd1, 0x1a, 0xbd, 0x80, 0xe5, 0xd4, 0xc7, 0x33, - 0xa6, 0x2d, 0x9e, 0x4d, 0x3b, 0xaa, 0x43, 0x4c, 0xbb, 0xc8, 0xb2, 0x42, 0xfd, 0x43, 0x68, 0x4e, - 0x8a, 0x03, 0x6d, 0x42, 0x21, 0xea, 0xfd, 0xa9, 0x03, 0x97, 0x67, 0x6d, 0xfd, 0x67, 0x2d, 0x22, - 0xcb, 0x3a, 0x42, 0x5b, 0x50, 0xe8, 0x78, 0x33, 0x92, 0x09, 0x24, 0x7a, 0x07, 0x2a, 0x36, 0x95, - 0x6d, 0x3b, 0xdb, 0xc8, 0x97, 0x6d, 0x2a, 0x7a, 0x19, 0xbd, 0x0b, 0x55, 0x9b, 0xaa, 0x1e, 0x0e, - 0x6b, 0x3f, 0xc5, 0xb0, 0x62, 0x53, 0xd9, 0xd8, 0x7a, 0x17, 0xea, 0xc9, 0x13, 0xeb, 0x01, 0x54, - 0xe3, 0x6a, 0xab, 0xb0, 0x27, 0x5d, 0xf8, 0xf6, 0xed, 0x7e, 0x62, 0xfb, 0x62, 0x2b, 0x74, 0x19, - 0xca, 0x89, 0x43, 0x4b, 0xc3, 0xe1, 0x2f, 0x7d, 0x10, 0x5e, 0xd2, 0x52, 0x76, 0x68, 0x15, 0x6a, - 0x2f, 0x6d, 0xc7, 0x31, 0x98, 0xc9, 0x55, 0x0b, 0x16, 0x71, 0x55, 0x08, 0xb0, 0xc9, 0x89, 0x38, - 0x42, 0x8e, 0x03, 0xe6, 0x73, 0xc3, 0x11, 0x36, 0x92, 0xaf, 0x80, 0x41, 0x8a, 0x24, 0x8b, 0x38, - 0x82, 0xfa, 0xe6, 0xab, 0xd1, 0xb7, 0x49, 0x1e, 0x41, 0x7d, 0xf3, 0x55, 0xf8, 0x79, 0xb9, 0x01, - 0x25, 0xf9, 0xe5, 0x46, 0x4d, 0xa8, 0xf4, 0x89, 0xef, 0x9b, 0xdd, 0xa8, 0xcd, 0xa3, 0x9f, 0x1b, - 0x57, 0x52, 0xf3, 0x2c, 0xc6, 0x07, 0x95, 0x21, 0x8f, 0xdb, 0x8d, 0xdc, 0xc6, 0x7b, 0xa9, 0x51, - 0x94, 0xaa, 0x0a, 0x14, 0x76, 0x0f, 0xdb, 0x8d, 0x1c, 0x9a, 0x03, 0xd8, 0x7b, 0x26, 0x2a, 0xff, - 0x81, 0x43, 0x87, 0x0d, 0x0d, 0xcd, 0x43, 0x7d, 0xef, 0x99, 0x2c, 0xa8, 0x14, 0xe4, 0x37, 0xfe, - 0x07, 0xb5, 0x78, 0x46, 0x50, 0x1d, 0x2a, 0x6d, 0xb7, 0xe7, 0xd2, 0xa1, 0xdb, 0xc8, 0x21, 0x80, - 0x32, 0x6e, 0x0b, 0x71, 0x43, 0x13, 0x0a, 0x6c, 0x0e, 0xe5, 0x8f, 0xfc, 0xf6, 0x0f, 0x25, 0x11, - 0x8b, 0xf2, 0x76, 0xa0, 0x2a, 0x8d, 0x06, 0x80, 0xb2, 0x8f, 0x49, 0x74, 0x3b, 0xbb, 0x25, 0x13, - 0x1f, 0xa4, 0xad, 0xff, 0xce, 0x06, 0x56, 0xf7, 0x0f, 0x3d, 0x87, 0x7a, 0xd0, 0x78, 0xf3, 0xb5, - 0x87, 0x6e, 0x8d, 0x99, 0xb8, 0xf1, 0xaf, 0xcb, 0xd6, 0xc6, 0x2c, 0xd0, 0xa4, 0xb3, 0x87, 0x96, - 0x35, 0xd5, 0xd9, 0x84, 0xc7, 0xd4, 0x38, 0x67, 0x93, 0x5e, 0x49, 0x7a, 0x0e, 0xb9, 0xb0, 0x78, - 0x40, 0x2d, 0xfb, 0xe5, 0xe9, 0xdf, 0xe4, 0x8f, 0xc3, 0xe2, 0x98, 0x77, 0x26, 0x1a, 0xb3, 0x21, - 0x93, 0x1f, 0xb7, 0xad, 0x3b, 0x33, 0xa2, 0x63, 0xaf, 0x9f, 0xc1, 0xe2, 0xc3, 0xce, 0x20, 0xb0, - 0x59, 0xf2, 0x26, 0xe2, 0xa3, 0xb3, 0xaf, 0xa8, 0x71, 0xb7, 0xdc, 0x9c, 0x06, 0x8b, 0xfc, 0xac, - 0x6b, 0x77, 0xb5, 0x9d, 0xa5, 0xdf, 0xbf, 0xab, 0x6a, 0xbf, 0xbe, 0x5e, 0xd3, 0x7e, 0x7b, 0xbd, - 0xa6, 0xfd, 0xf1, 0x7a, 0x4d, 0xfb, 0xe6, 0xcf, 0xb5, 0xdc, 0x71, 0x59, 0xfe, 0x4d, 0xf2, 0xff, - 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x38, 0xec, 0x5e, 0x79, 0x11, 0x00, 0x00, + // 1387 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcf, 0x73, 0xdb, 0xc4, + 0x17, 0xb7, 0xfc, 0xdb, 0xcf, 0xdf, 0x24, 0xce, 0x26, 0x69, 0x5c, 0x67, 0x9a, 0xb6, 0x9a, 0x2f, + 0x9d, 0x34, 0xa5, 0x49, 0x09, 0x53, 0xca, 0x0c, 0x97, 0x36, 0x29, 0xb4, 0x81, 0xa4, 0xcd, 0x6c, + 0xea, 0xe1, 0x44, 0x85, 0x62, 0x6f, 0x3d, 0xc2, 0xb6, 0x56, 0x5e, 0xad, 0xe2, 0xfa, 0xc6, 0x0c, + 0x9c, 0xf8, 0x0b, 0x38, 0x71, 0xe2, 0xc0, 0x70, 0xe2, 0x0c, 0xc3, 0x8d, 0x03, 0x47, 0x8e, 0x1c, + 0x99, 0xf2, 0x8f, 0x30, 0xbb, 0x2b, 0xc9, 0x52, 0x25, 0xc7, 0x4e, 0xa6, 0x03, 0x37, 0xed, 0xfb, + 0xf1, 0x79, 0x9f, 0xf7, 0xf6, 0xbd, 0xf5, 0xae, 0xe1, 0x12, 0x23, 0x2e, 0xf5, 0x58, 0x8b, 0x18, + 0x7d, 0xd3, 0x36, 0x3b, 0x84, 0x6d, 0x39, 0x8c, 0x72, 0x8a, 0x6a, 0xaf, 0xcb, 0x1b, 0xcb, 0x1d, + 0xda, 0xa1, 0x52, 0xb9, 0x2d, 0xbe, 0x94, 0x5d, 0x63, 0x81, 0x79, 0x2e, 0x97, 0x9f, 0x4a, 0xa0, + 0xaf, 0xc1, 0xe5, 0x03, 0xcb, 0xe5, 0xd8, 0x77, 0x7f, 0xc4, 0xa8, 0xe7, 0xb8, 0x98, 0x0c, 0x3c, + 0xe2, 0x72, 0xfd, 0x6b, 0x0d, 0x1a, 0x69, 0x5a, 0xd7, 0xa1, 0xb6, 0x4b, 0xd0, 0x6d, 0x28, 0x10, + 0xc6, 0x28, 0xab, 0x6b, 0xd7, 0xb4, 0x8d, 0xea, 0xce, 0xea, 0x56, 0x82, 0xdc, 0x87, 0x42, 0x8d, + 0x95, 0x15, 0xba, 0x07, 0xc5, 0x8e, 0x04, 0xa8, 0x67, 0xaf, 0xe5, 0x36, 0xaa, 0x3b, 0x57, 0x93, + 0xf6, 0xb1, 0x40, 0xd8, 0x37, 0xd7, 0xf7, 0x61, 0xf5, 0x11, 0x89, 0x93, 0xf0, 0x19, 0xa2, 0x2d, + 0x58, 0x0a, 0x41, 0xa4, 0xb5, 0x61, 0x9b, 0x7d, 0x22, 0x09, 0x55, 0xf0, 0x22, 0x8b, 0xba, 0x3c, + 0x31, 0xfb, 0x44, 0xff, 0x52, 0x83, 0x7a, 0x12, 0xeb, 0x62, 0xf9, 0xdc, 0x85, 0x82, 0x0c, 0x59, + 0xcf, 0x4a, 0xf3, 0xa9, 0xe9, 0x28, 0x6b, 0xfd, 0x00, 0x1a, 0x0f, 0x49, 0x8f, 0x70, 0xf2, 0x46, + 0x12, 0xfa, 0x1c, 0xd6, 0x52, 0xd1, 0x2e, 0x96, 0x12, 0x82, 0xfc, 0x09, 0x6d, 0x8f, 0x64, 0x46, + 0x15, 0x2c, 0xbf, 0xf5, 0x23, 0x58, 0x3d, 0xf2, 0xd2, 0xab, 0x1f, 0x56, 0x40, 0x3b, 0x57, 0x05, + 0x3e, 0x83, 0x7a, 0x12, 0xf1, 0xcd, 0x11, 0xfe, 0x59, 0x83, 0xa5, 0x67, 0xb4, 0x4b, 0xec, 0x5d, + 0xaf, 0xd5, 0x25, 0x3c, 0xe8, 0x66, 0x74, 0x1f, 0xca, 0x4c, 0x7d, 0xba, 0x75, 0x4d, 0x76, 0xe0, + 0xff, 0x93, 0xe8, 0x11, 0x47, 0xdf, 0x0f, 0x87, 0x5e, 0xe8, 0x1e, 0xd4, 0xb9, 0xc9, 0x3a, 0x84, + 0x1b, 0xbe, 0xc8, 0x70, 0x08, 0xb3, 0x68, 0xdb, 0xe8, 0xbb, 0x92, 0x41, 0x1e, 0xaf, 0x28, 0xbd, + 0xef, 0x7a, 0x24, 0xb5, 0x87, 0x2e, 0xda, 0x80, 0x5a, 0xab, 0x67, 0x11, 0x9b, 0x1b, 0x9e, 0x6d, + 0x0d, 0x3c, 0x62, 0x58, 0xed, 0x7a, 0x4e, 0x3a, 0xcc, 0x2b, 0x79, 0x53, 0x8a, 0xf7, 0xdb, 0xfa, + 0xf7, 0x79, 0x40, 0x49, 0x0e, 0xe7, 0x6d, 0x0b, 0xf4, 0x09, 0x94, 0x99, 0x67, 0x58, 0x9c, 0xf8, + 0xcc, 0xaa, 0x3b, 0x5b, 0xb3, 0xe4, 0xba, 0x15, 0xe4, 0xdc, 0x7c, 0x9c, 0xc1, 0x25, 0xe6, 0xed, + 0x0b, 0x00, 0xd4, 0x01, 0xc4, 0xcc, 0xa1, 0x11, 0xfa, 0x2b, 0xd8, 0x9c, 0x84, 0xbd, 0x77, 0x2e, + 0x58, 0x73, 0x18, 0xec, 0xfa, 0xe3, 0x0c, 0xae, 0xb1, 0xf1, 0x52, 0x05, 0x3a, 0x81, 0xf5, 0x16, + 0xb5, 0x5d, 0xaf, 0xef, 0x70, 0x8b, 0xda, 0x86, 0x6b, 0xd9, 0x2d, 0x62, 0xf4, 0x4c, 0x37, 0xac, + 0x77, 0x3d, 0x2f, 0x83, 0x5e, 0x49, 0x06, 0xdd, 0x1b, 0xfb, 0xe1, 0xb5, 0x08, 0xc8, 0xb1, 0xc0, + 0x38, 0x30, 0xdd, 0x80, 0x4a, 0xe3, 0x09, 0x54, 0xc2, 0x24, 0xd1, 0x03, 0xa8, 0x06, 0x3b, 0xc9, + 0x0c, 0xcf, 0xef, 0x8a, 0xeb, 0x69, 0x6d, 0x2c, 0x8d, 0x9a, 0xb6, 0xc5, 0x05, 0x53, 0x5c, 0x61, + 0x01, 0x44, 0xc3, 0x02, 0x94, 0xcc, 0x0e, 0x1d, 0xc3, 0x72, 0x08, 0x1c, 0x29, 0xdd, 0x19, 0x11, + 0xe2, 0xb5, 0xc0, 0x88, 0x25, 0x40, 0x77, 0x2b, 0x50, 0xf2, 0xa5, 0xfa, 0x37, 0x1a, 0x2c, 0xc7, + 0x7b, 0xfc, 0x62, 0xf3, 0xb3, 0x07, 0x15, 0xe6, 0xbb, 0x06, 0xc7, 0xf2, 0x5b, 0x53, 0x76, 0x54, + 0x59, 0xe3, 0xb1, 0x9f, 0xfe, 0x55, 0x36, 0x36, 0x70, 0x21, 0x97, 0xf3, 0x36, 0xed, 0x31, 0xa0, + 0x0e, 0x33, 0x6d, 0x4e, 0xda, 0x62, 0x37, 0x0c, 0x2e, 0x20, 0x03, 0x56, 0x37, 0x92, 0xac, 0x1e, + 0x29, 0x5b, 0xdc, 0x8c, 0xc6, 0x5e, 0xe8, 0xc4, 0xa4, 0xa2, 0x79, 0x57, 0x43, 0xd0, 0x00, 0xc1, + 0x47, 0xce, 0x49, 0xe4, 0xed, 0xc9, 0xc8, 0xe3, 0xda, 0x47, 0x43, 0xac, 0x04, 0x21, 0xa2, 0x3a, + 0x57, 0xff, 0x45, 0x83, 0xe5, 0x34, 0x4a, 0xe8, 0x2e, 0xe4, 0xf9, 0xc8, 0x51, 0x79, 0xcf, 0x4f, + 0xe9, 0xae, 0x67, 0x23, 0x87, 0x60, 0x69, 0x8e, 0x1e, 0xc2, 0x7c, 0x40, 0x3c, 0xac, 0xc4, 0x84, + 0xe6, 0x8f, 0xb2, 0x9b, 0xf3, 0x9d, 0xfc, 0xf4, 0x6f, 0xc0, 0x02, 0x67, 0x56, 0xab, 0xdb, 0x23, + 0x06, 0xb7, 0xfa, 0xc4, 0xf0, 0x07, 0x37, 0x87, 0xe7, 0x7c, 0xf1, 0x33, 0xab, 0x4f, 0x0e, 0x5d, + 0xfd, 0x37, 0x0d, 0xae, 0x9c, 0x99, 0xf6, 0x0c, 0x69, 0x44, 0xfc, 0xfe, 0xab, 0x34, 0x7e, 0xcc, + 0x42, 0x35, 0x72, 0x14, 0x20, 0x04, 0x05, 0xe6, 0x8f, 0xb6, 0xb6, 0xa1, 0xe1, 0x1c, 0xc3, 0x4d, + 0x21, 0x1b, 0x4a, 0x59, 0x56, 0xc9, 0x86, 0xb8, 0x89, 0xae, 0x00, 0x30, 0x62, 0xb6, 0x8d, 0x93, + 0x11, 0x27, 0x0a, 0x5a, 0x13, 0x1d, 0x6e, 0xb6, 0x77, 0x85, 0x00, 0x5d, 0x85, 0xea, 0x90, 0x59, + 0x9c, 0xf8, 0xfa, 0xbc, 0xd4, 0x83, 0x14, 0x29, 0x83, 0x9b, 0xb0, 0xc8, 0x29, 0x37, 0x7b, 0x46, + 0xcb, 0xf1, 0x42, 0x86, 0x05, 0x69, 0x36, 0x2f, 0x15, 0x7b, 0x8e, 0xa7, 0x28, 0xa2, 0x3b, 0xb0, + 0xe2, 0x0e, 0x7a, 0x46, 0xcf, 0x1c, 0x11, 0x16, 0x33, 0x2f, 0x4a, 0xf3, 0x45, 0x77, 0xd0, 0x3b, + 0x10, 0xba, 0xb1, 0xc7, 0x4d, 0x58, 0xec, 0x9e, 0x1a, 0x92, 0x1f, 0x73, 0x5a, 0x46, 0x8b, 0x7a, + 0x36, 0xaf, 0x97, 0x14, 0x78, 0xf7, 0x14, 0x13, 0xb3, 0x8d, 0x9d, 0xd6, 0x9e, 0x90, 0xa2, 0x5b, + 0x80, 0xba, 0xa7, 0x86, 0xe2, 0x3a, 0xb6, 0x2d, 0x4b, 0xdb, 0x85, 0xee, 0xe9, 0xa7, 0x42, 0x11, + 0x18, 0xeb, 0xcf, 0x61, 0xe1, 0xb5, 0x83, 0xed, 0xa2, 0xbd, 0xba, 0x0c, 0x85, 0x53, 0xb3, 0xe7, + 0x11, 0xbf, 0xa4, 0x6a, 0x21, 0xf1, 0xe3, 0xc7, 0xda, 0x45, 0x9b, 0x28, 0x1d, 0xff, 0xbb, 0x2c, + 0xcc, 0xc5, 0x6e, 0x11, 0xe2, 0x3a, 0x10, 0x39, 0x62, 0xe4, 0x37, 0xda, 0x86, 0x7c, 0x9f, 0xb6, + 0x95, 0xeb, 0xfc, 0xce, 0x5a, 0xda, 0xb4, 0x53, 0xcf, 0x39, 0xa4, 0x6d, 0x82, 0xa5, 0x21, 0x3a, + 0x80, 0xff, 0x89, 0xe3, 0xc7, 0x25, 0x9c, 0x5b, 0x76, 0x27, 0xf8, 0xa1, 0xdb, 0x9c, 0xe0, 0x18, + 0x29, 0xc8, 0xb1, 0xef, 0x81, 0x81, 0x35, 0x83, 0x6f, 0xf4, 0x1c, 0x56, 0x62, 0x3f, 0x9e, 0x21, + 0x6c, 0xfe, 0x6c, 0xd8, 0x71, 0x1d, 0x42, 0xd8, 0x25, 0x96, 0x14, 0xa2, 0x06, 0x94, 0x1d, 0x66, + 0x51, 0x66, 0xf1, 0x91, 0x6c, 0xb8, 0x39, 0x1c, 0xae, 0xf5, 0x8f, 0xa1, 0x3e, 0x89, 0x23, 0xda, + 0x82, 0x5c, 0x30, 0x17, 0x53, 0x87, 0x31, 0xcb, 0x9a, 0xfa, 0xaf, 0x5a, 0x00, 0x96, 0x42, 0x62, + 0x1b, 0x72, 0x2d, 0x67, 0x46, 0x30, 0x61, 0x89, 0xde, 0x83, 0x92, 0x45, 0x65, 0x4b, 0xcf, 0x76, + 0x1c, 0x14, 0x2d, 0x2a, 0xfa, 0x1c, 0xbd, 0x0f, 0x65, 0x8b, 0xaa, 0xfe, 0xf6, 0xf7, 0x65, 0x8a, + 0x63, 0xc9, 0xa2, 0xb2, 0xe9, 0xf5, 0x0e, 0x54, 0xa3, 0xa7, 0xd9, 0x7d, 0x28, 0x87, 0x3b, 0xa1, + 0x68, 0x4f, 0xba, 0x0c, 0x1e, 0x58, 0xfd, 0xc8, 0xd6, 0x86, 0x5e, 0xe8, 0x12, 0x14, 0x23, 0x07, + 0x9a, 0x86, 0xfd, 0x95, 0x3e, 0xf0, 0x2f, 0x70, 0x31, 0x3f, 0xb4, 0x06, 0x95, 0x17, 0x56, 0xaf, + 0x67, 0x30, 0x93, 0xab, 0xf6, 0xcc, 0xe3, 0xb2, 0x10, 0x60, 0x93, 0x13, 0x71, 0xbc, 0x9c, 0x78, + 0xcc, 0xe5, 0x46, 0x4f, 0xf8, 0x48, 0xbc, 0x1c, 0x06, 0x29, 0x92, 0x28, 0xe2, 0x78, 0xea, 0x9b, + 0x2f, 0xc7, 0xbf, 0x5b, 0xf2, 0x78, 0xea, 0x9b, 0x2f, 0xfd, 0x9f, 0x9e, 0xeb, 0x50, 0x90, 0xbf, + 0xea, 0xa8, 0x0e, 0xa5, 0x3e, 0x71, 0x5d, 0xb3, 0x13, 0x8c, 0x40, 0xb0, 0xdc, 0xbc, 0x1c, 0x9b, + 0x75, 0x31, 0x5a, 0xa8, 0x08, 0x59, 0xdc, 0xac, 0x65, 0x36, 0x3f, 0x88, 0x8d, 0xa9, 0x54, 0x95, + 0x20, 0xb7, 0x77, 0xd4, 0xac, 0x65, 0xd0, 0x3c, 0xc0, 0xfe, 0x53, 0x51, 0xf9, 0x8f, 0x7a, 0x74, + 0x58, 0xd3, 0xd0, 0x02, 0x54, 0xf7, 0x9f, 0xca, 0x82, 0x4a, 0x41, 0x76, 0xf3, 0x1d, 0xa8, 0x84, + 0xf3, 0x83, 0xaa, 0x50, 0x6a, 0xda, 0x5d, 0x9b, 0x0e, 0xed, 0x5a, 0x06, 0x01, 0x14, 0x71, 0x53, + 0x88, 0x6b, 0x9a, 0x50, 0x60, 0x73, 0x28, 0x17, 0xd9, 0x9d, 0x9f, 0x0a, 0x82, 0x8b, 0x8a, 0x76, + 0xa8, 0x2a, 0x8d, 0x06, 0x80, 0x92, 0x0f, 0x4d, 0x74, 0x2b, 0xb9, 0x25, 0x13, 0x1f, 0xab, 0x8d, + 0xb7, 0x67, 0x33, 0x56, 0x77, 0x13, 0x3d, 0x83, 0xba, 0x50, 0x7b, 0xfd, 0x25, 0x88, 0x6e, 0xa6, + 0x4c, 0x63, 0xfa, 0xcb, 0xb3, 0xb1, 0x39, 0x8b, 0x69, 0x34, 0xd8, 0x83, 0x76, 0x7b, 0x6a, 0xb0, + 0x09, 0x0f, 0xad, 0xb4, 0x60, 0x93, 0x5e, 0x50, 0x7a, 0x06, 0xd9, 0xb0, 0x74, 0x48, 0xdb, 0xd6, + 0x8b, 0xd1, 0xbf, 0x14, 0x8f, 0xc3, 0x52, 0xca, 0x1b, 0x14, 0xa5, 0x6c, 0xc8, 0xe4, 0x87, 0x6f, + 0xe3, 0xf6, 0x8c, 0xd6, 0x61, 0xd4, 0x2f, 0x60, 0xe9, 0x41, 0x6b, 0xe0, 0x59, 0x2c, 0x7a, 0x4b, + 0x71, 0xd1, 0xd9, 0xd7, 0xd7, 0xb0, 0x5b, 0x6e, 0x4c, 0x33, 0x0b, 0xe2, 0x6c, 0x68, 0x77, 0xb4, + 0xdd, 0xe5, 0x3f, 0x7f, 0x28, 0x6b, 0xbf, 0xbf, 0x5a, 0xd7, 0xfe, 0x78, 0xb5, 0xae, 0xfd, 0xf5, + 0x6a, 0x5d, 0xfb, 0xf6, 0xef, 0xf5, 0xcc, 0x49, 0x51, 0xfe, 0x85, 0xf2, 0xee, 0x3f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x26, 0xf4, 0xa4, 0xf3, 0x95, 0x11, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2942,6 +2952,11 @@ func (m *ResourceGroup) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.Priority != 0 { + i = encodeVarintResourceManager(dAtA, i, uint64(m.Priority)) + i-- + dAtA[i] = 0x28 + } if m.RawResourceSettings != nil { { size, err := m.RawResourceSettings.MarshalToSizedBuffer(dAtA[:i]) @@ -3652,6 +3667,9 @@ func (m *ResourceGroup) Size() (n int) { l = m.RawResourceSettings.Size() n += 1 + l + sovResourceManager(uint64(l)) } + if m.Priority != 0 { + n += 1 + sovResourceManager(uint64(m.Priority)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -6003,6 +6021,25 @@ func (m *ResourceGroup) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Priority", wireType) + } + m.Priority = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowResourceManager + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Priority |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipResourceManager(dAtA[iNdEx:]) diff --git a/proto/resource_manager.proto b/proto/resource_manager.proto index 6659f93..20613a7 100644 --- a/proto/resource_manager.proto +++ b/proto/resource_manager.proto @@ -152,6 +152,8 @@ message ResourceGroup { GroupRequestUnitSettings r_u_settings = 3; // Used in Raw mode, group settings with CPU/IO etc resource unit. GroupRawResourceSettings raw_resource_settings = 4; + // The task scheduling priority + uint32 priority = 5; } message GroupRequestUnitSettings { diff --git a/scripts/proto.lock b/scripts/proto.lock index ade178e..cf1e326 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -16759,6 +16759,11 @@ "id": 4, "name": "raw_resource_settings", "type": "GroupRawResourceSettings" + }, + { + "id": 5, + "name": "priority", + "type": "uint32" } ] }, -- Gitee From b47a4830141f7c8d2719db0f0184652e692eb672 Mon Sep 17 00:00:00 2001 From: Bin Shi <39923490+binshi-bing@users.noreply.github.com> Date: Thu, 16 Mar 2023 18:05:44 -0700 Subject: [PATCH 19/44] support service mode switching for tso (#1077) * Add GetClusterInfo() rpc to PD protobuf to get service working modes. Signed-off-by: Bin Shi * Define TSO.Participant Signed-off-by: Bin Shi --------- Signed-off-by: Bin Shi --- pkg/pdpb/pdpb.pb.go | 1596 +++++++++++++++++++++++++++-------------- pkg/tsopb/tsopb.pb.go | 344 ++++++++- proto/pdpb.proto | 20 + proto/tsopb.proto | 10 + scripts/proto.lock | 68 ++ 5 files changed, 1486 insertions(+), 552 deletions(-) diff --git a/pkg/pdpb/pdpb.pb.go b/pkg/pdpb/pdpb.pb.go index c6aa058..ec3fad7 100644 --- a/pkg/pdpb/pdpb.pb.go +++ b/pkg/pdpb/pdpb.pb.go @@ -114,6 +114,34 @@ func (ErrorType) EnumDescriptor() ([]byte, []int) { return fileDescriptor_78b27e6f04f44c6e, []int{1} } +type ServiceMode int32 + +const ( + ServiceMode_UNKNOWN_SVC_MODE ServiceMode = 0 + ServiceMode_PD_SVC_MODE ServiceMode = 1 + ServiceMode_API_SVC_MODE ServiceMode = 2 +) + +var ServiceMode_name = map[int32]string{ + 0: "UNKNOWN_SVC_MODE", + 1: "PD_SVC_MODE", + 2: "API_SVC_MODE", +} + +var ServiceMode_value = map[string]int32{ + "UNKNOWN_SVC_MODE": 0, + "PD_SVC_MODE": 1, + "API_SVC_MODE": 2, +} + +func (x ServiceMode) String() string { + return proto.EnumName(ServiceMode_name, int32(x)) +} + +func (ServiceMode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_78b27e6f04f44c6e, []int{2} +} + type CheckPolicy int32 const ( @@ -139,7 +167,7 @@ func (x CheckPolicy) String() string { } func (CheckPolicy) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{2} + return fileDescriptor_78b27e6f04f44c6e, []int{3} } type OperatorStatus int32 @@ -173,7 +201,7 @@ func (x OperatorStatus) String() string { } func (OperatorStatus) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{3} + return fileDescriptor_78b27e6f04f44c6e, []int{4} } type QueryKind int32 @@ -228,7 +256,7 @@ func (x QueryKind) String() string { } func (QueryKind) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{4} + return fileDescriptor_78b27e6f04f44c6e, []int{5} } type WatchGlobalConfigRequest struct { @@ -2643,6 +2671,108 @@ func (m *GetMembersResponse) GetTsoAllocatorLeaders() map[string]*Member { return nil } +type GetClusterInfoRequest struct { + Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetClusterInfoRequest) Reset() { *m = GetClusterInfoRequest{} } +func (m *GetClusterInfoRequest) String() string { return proto.CompactTextString(m) } +func (*GetClusterInfoRequest) ProtoMessage() {} +func (*GetClusterInfoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_78b27e6f04f44c6e, []int{40} +} +func (m *GetClusterInfoRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GetClusterInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GetClusterInfoRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GetClusterInfoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetClusterInfoRequest.Merge(m, src) +} +func (m *GetClusterInfoRequest) XXX_Size() int { + return m.Size() +} +func (m *GetClusterInfoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetClusterInfoRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetClusterInfoRequest proto.InternalMessageInfo + +func (m *GetClusterInfoRequest) GetHeader() *ResponseHeader { + if m != nil { + return m.Header + } + return nil +} + +type GetClusterInfoResponse struct { + Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + ServiceModes []ServiceMode `protobuf:"varint,2,rep,packed,name=serviceModes,proto3,enum=pdpb.ServiceMode" json:"serviceModes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetClusterInfoResponse) Reset() { *m = GetClusterInfoResponse{} } +func (m *GetClusterInfoResponse) String() string { return proto.CompactTextString(m) } +func (*GetClusterInfoResponse) ProtoMessage() {} +func (*GetClusterInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_78b27e6f04f44c6e, []int{41} +} +func (m *GetClusterInfoResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GetClusterInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GetClusterInfoResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GetClusterInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetClusterInfoResponse.Merge(m, src) +} +func (m *GetClusterInfoResponse) XXX_Size() int { + return m.Size() +} +func (m *GetClusterInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetClusterInfoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetClusterInfoResponse proto.InternalMessageInfo + +func (m *GetClusterInfoResponse) GetHeader() *ResponseHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *GetClusterInfoResponse) GetServiceModes() []ServiceMode { + if m != nil { + return m.ServiceModes + } + return nil +} + type PeerStats struct { Peer *metapb.Peer `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"` DownSeconds uint64 `protobuf:"varint,2,opt,name=down_seconds,json=downSeconds,proto3" json:"down_seconds,omitempty"` @@ -2655,7 +2785,7 @@ func (m *PeerStats) Reset() { *m = PeerStats{} } func (m *PeerStats) String() string { return proto.CompactTextString(m) } func (*PeerStats) ProtoMessage() {} func (*PeerStats) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{40} + return fileDescriptor_78b27e6f04f44c6e, []int{42} } func (m *PeerStats) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2740,7 +2870,7 @@ func (m *RegionHeartbeatRequest) Reset() { *m = RegionHeartbeatRequest{} func (m *RegionHeartbeatRequest) String() string { return proto.CompactTextString(m) } func (*RegionHeartbeatRequest) ProtoMessage() {} func (*RegionHeartbeatRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{41} + return fileDescriptor_78b27e6f04f44c6e, []int{43} } func (m *RegionHeartbeatRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2900,7 +3030,7 @@ func (m *ChangePeer) Reset() { *m = ChangePeer{} } func (m *ChangePeer) String() string { return proto.CompactTextString(m) } func (*ChangePeer) ProtoMessage() {} func (*ChangePeer) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{42} + return fileDescriptor_78b27e6f04f44c6e, []int{44} } func (m *ChangePeer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2955,7 +3085,7 @@ func (m *ChangePeerV2) Reset() { *m = ChangePeerV2{} } func (m *ChangePeerV2) String() string { return proto.CompactTextString(m) } func (*ChangePeerV2) ProtoMessage() {} func (*ChangePeerV2) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{43} + return fileDescriptor_78b27e6f04f44c6e, []int{45} } func (m *ChangePeerV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3003,7 +3133,7 @@ func (m *TransferLeader) Reset() { *m = TransferLeader{} } func (m *TransferLeader) String() string { return proto.CompactTextString(m) } func (*TransferLeader) ProtoMessage() {} func (*TransferLeader) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{44} + return fileDescriptor_78b27e6f04f44c6e, []int{46} } func (m *TransferLeader) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3057,7 +3187,7 @@ func (m *Merge) Reset() { *m = Merge{} } func (m *Merge) String() string { return proto.CompactTextString(m) } func (*Merge) ProtoMessage() {} func (*Merge) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{45} + return fileDescriptor_78b27e6f04f44c6e, []int{47} } func (m *Merge) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3105,7 +3235,7 @@ func (m *SplitRegion) Reset() { *m = SplitRegion{} } func (m *SplitRegion) String() string { return proto.CompactTextString(m) } func (*SplitRegion) ProtoMessage() {} func (*SplitRegion) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{46} + return fileDescriptor_78b27e6f04f44c6e, []int{48} } func (m *SplitRegion) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3160,7 +3290,7 @@ func (m *SwitchWitness) Reset() { *m = SwitchWitness{} } func (m *SwitchWitness) String() string { return proto.CompactTextString(m) } func (*SwitchWitness) ProtoMessage() {} func (*SwitchWitness) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{47} + return fileDescriptor_78b27e6f04f44c6e, []int{49} } func (m *SwitchWitness) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3214,7 +3344,7 @@ func (m *BatchSwitchWitness) Reset() { *m = BatchSwitchWitness{} } func (m *BatchSwitchWitness) String() string { return proto.CompactTextString(m) } func (*BatchSwitchWitness) ProtoMessage() {} func (*BatchSwitchWitness) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{48} + return fileDescriptor_78b27e6f04f44c6e, []int{50} } func (m *BatchSwitchWitness) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3294,7 +3424,7 @@ func (m *RegionHeartbeatResponse) Reset() { *m = RegionHeartbeatResponse func (m *RegionHeartbeatResponse) String() string { return proto.CompactTextString(m) } func (*RegionHeartbeatResponse) ProtoMessage() {} func (*RegionHeartbeatResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{49} + return fileDescriptor_78b27e6f04f44c6e, []int{51} } func (m *RegionHeartbeatResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3405,7 +3535,7 @@ func (m *AskSplitRequest) Reset() { *m = AskSplitRequest{} } func (m *AskSplitRequest) String() string { return proto.CompactTextString(m) } func (*AskSplitRequest) ProtoMessage() {} func (*AskSplitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{50} + return fileDescriptor_78b27e6f04f44c6e, []int{52} } func (m *AskSplitRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3465,7 +3595,7 @@ func (m *AskSplitResponse) Reset() { *m = AskSplitResponse{} } func (m *AskSplitResponse) String() string { return proto.CompactTextString(m) } func (*AskSplitResponse) ProtoMessage() {} func (*AskSplitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{51} + return fileDescriptor_78b27e6f04f44c6e, []int{53} } func (m *AskSplitResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3528,7 +3658,7 @@ func (m *ReportSplitRequest) Reset() { *m = ReportSplitRequest{} } func (m *ReportSplitRequest) String() string { return proto.CompactTextString(m) } func (*ReportSplitRequest) ProtoMessage() {} func (*ReportSplitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{52} + return fileDescriptor_78b27e6f04f44c6e, []int{54} } func (m *ReportSplitRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3589,7 +3719,7 @@ func (m *ReportSplitResponse) Reset() { *m = ReportSplitResponse{} } func (m *ReportSplitResponse) String() string { return proto.CompactTextString(m) } func (*ReportSplitResponse) ProtoMessage() {} func (*ReportSplitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{53} + return fileDescriptor_78b27e6f04f44c6e, []int{55} } func (m *ReportSplitResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3638,7 +3768,7 @@ func (m *AskBatchSplitRequest) Reset() { *m = AskBatchSplitRequest{} } func (m *AskBatchSplitRequest) String() string { return proto.CompactTextString(m) } func (*AskBatchSplitRequest) ProtoMessage() {} func (*AskBatchSplitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{54} + return fileDescriptor_78b27e6f04f44c6e, []int{56} } func (m *AskBatchSplitRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3700,7 +3830,7 @@ func (m *SplitID) Reset() { *m = SplitID{} } func (m *SplitID) String() string { return proto.CompactTextString(m) } func (*SplitID) ProtoMessage() {} func (*SplitID) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{55} + return fileDescriptor_78b27e6f04f44c6e, []int{57} } func (m *SplitID) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3755,7 +3885,7 @@ func (m *AskBatchSplitResponse) Reset() { *m = AskBatchSplitResponse{} } func (m *AskBatchSplitResponse) String() string { return proto.CompactTextString(m) } func (*AskBatchSplitResponse) ProtoMessage() {} func (*AskBatchSplitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{56} + return fileDescriptor_78b27e6f04f44c6e, []int{58} } func (m *AskBatchSplitResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3810,7 +3940,7 @@ func (m *ReportBatchSplitRequest) Reset() { *m = ReportBatchSplitRequest func (m *ReportBatchSplitRequest) String() string { return proto.CompactTextString(m) } func (*ReportBatchSplitRequest) ProtoMessage() {} func (*ReportBatchSplitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{57} + return fileDescriptor_78b27e6f04f44c6e, []int{59} } func (m *ReportBatchSplitRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3864,7 +3994,7 @@ func (m *ReportBatchSplitResponse) Reset() { *m = ReportBatchSplitRespon func (m *ReportBatchSplitResponse) String() string { return proto.CompactTextString(m) } func (*ReportBatchSplitResponse) ProtoMessage() {} func (*ReportBatchSplitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{58} + return fileDescriptor_78b27e6f04f44c6e, []int{60} } func (m *ReportBatchSplitResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3914,7 +4044,7 @@ func (m *TimeInterval) Reset() { *m = TimeInterval{} } func (m *TimeInterval) String() string { return proto.CompactTextString(m) } func (*TimeInterval) ProtoMessage() {} func (*TimeInterval) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{59} + return fileDescriptor_78b27e6f04f44c6e, []int{61} } func (m *TimeInterval) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3969,7 +4099,7 @@ func (m *RecordPair) Reset() { *m = RecordPair{} } func (m *RecordPair) String() string { return proto.CompactTextString(m) } func (*RecordPair) ProtoMessage() {} func (*RecordPair) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{60} + return fileDescriptor_78b27e6f04f44c6e, []int{62} } func (m *RecordPair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4028,7 +4158,7 @@ func (m *PeerStat) Reset() { *m = PeerStat{} } func (m *PeerStat) String() string { return proto.CompactTextString(m) } func (*PeerStat) ProtoMessage() {} func (*PeerStat) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{61} + return fileDescriptor_78b27e6f04f44c6e, []int{63} } func (m *PeerStat) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4159,7 +4289,7 @@ func (m *StoreStats) Reset() { *m = StoreStats{} } func (m *StoreStats) String() string { return proto.CompactTextString(m) } func (*StoreStats) ProtoMessage() {} func (*StoreStats) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{62} + return fileDescriptor_78b27e6f04f44c6e, []int{64} } func (m *StoreStats) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4384,7 +4514,7 @@ func (m *SlowTrend) Reset() { *m = SlowTrend{} } func (m *SlowTrend) String() string { return proto.CompactTextString(m) } func (*SlowTrend) ProtoMessage() {} func (*SlowTrend) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{63} + return fileDescriptor_78b27e6f04f44c6e, []int{65} } func (m *SlowTrend) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4462,7 +4592,7 @@ func (m *SnapshotStat) Reset() { *m = SnapshotStat{} } func (m *SnapshotStat) String() string { return proto.CompactTextString(m) } func (*SnapshotStat) ProtoMessage() {} func (*SnapshotStat) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{64} + return fileDescriptor_78b27e6f04f44c6e, []int{66} } func (m *SnapshotStat) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4541,7 +4671,7 @@ func (m *PeerReport) Reset() { *m = PeerReport{} } func (m *PeerReport) String() string { return proto.CompactTextString(m) } func (*PeerReport) ProtoMessage() {} func (*PeerReport) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{65} + return fileDescriptor_78b27e6f04f44c6e, []int{67} } func (m *PeerReport) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4610,7 +4740,7 @@ func (m *StoreReport) Reset() { *m = StoreReport{} } func (m *StoreReport) String() string { return proto.CompactTextString(m) } func (*StoreReport) ProtoMessage() {} func (*StoreReport) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{66} + return fileDescriptor_78b27e6f04f44c6e, []int{68} } func (m *StoreReport) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4668,7 +4798,7 @@ func (m *StoreHeartbeatRequest) Reset() { *m = StoreHeartbeatRequest{} } func (m *StoreHeartbeatRequest) String() string { return proto.CompactTextString(m) } func (*StoreHeartbeatRequest) ProtoMessage() {} func (*StoreHeartbeatRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{67} + return fileDescriptor_78b27e6f04f44c6e, []int{69} } func (m *StoreHeartbeatRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4737,7 +4867,7 @@ func (m *DemoteFailedVoters) Reset() { *m = DemoteFailedVoters{} } func (m *DemoteFailedVoters) String() string { return proto.CompactTextString(m) } func (*DemoteFailedVoters) ProtoMessage() {} func (*DemoteFailedVoters) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{68} + return fileDescriptor_78b27e6f04f44c6e, []int{70} } func (m *DemoteFailedVoters) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4794,7 +4924,7 @@ func (m *ForceLeader) Reset() { *m = ForceLeader{} } func (m *ForceLeader) String() string { return proto.CompactTextString(m) } func (*ForceLeader) ProtoMessage() {} func (*ForceLeader) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{69} + return fileDescriptor_78b27e6f04f44c6e, []int{71} } func (m *ForceLeader) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4860,7 +4990,7 @@ func (m *RecoveryPlan) Reset() { *m = RecoveryPlan{} } func (m *RecoveryPlan) String() string { return proto.CompactTextString(m) } func (*RecoveryPlan) ProtoMessage() {} func (*RecoveryPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{70} + return fileDescriptor_78b27e6f04f44c6e, []int{72} } func (m *RecoveryPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4944,7 +5074,7 @@ func (m *AwakenRegions) Reset() { *m = AwakenRegions{} } func (m *AwakenRegions) String() string { return proto.CompactTextString(m) } func (*AwakenRegions) ProtoMessage() {} func (*AwakenRegions) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{71} + return fileDescriptor_78b27e6f04f44c6e, []int{73} } func (m *AwakenRegions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5002,7 +5132,7 @@ func (m *StoreHeartbeatResponse) Reset() { *m = StoreHeartbeatResponse{} func (m *StoreHeartbeatResponse) String() string { return proto.CompactTextString(m) } func (*StoreHeartbeatResponse) ProtoMessage() {} func (*StoreHeartbeatResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{72} + return fileDescriptor_78b27e6f04f44c6e, []int{74} } func (m *StoreHeartbeatResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5096,7 +5226,7 @@ func (m *ScatterRegionRequest) Reset() { *m = ScatterRegionRequest{} } func (m *ScatterRegionRequest) String() string { return proto.CompactTextString(m) } func (*ScatterRegionRequest) ProtoMessage() {} func (*ScatterRegionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{73} + return fileDescriptor_78b27e6f04f44c6e, []int{75} } func (m *ScatterRegionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5187,7 +5317,7 @@ func (m *ScatterRegionResponse) Reset() { *m = ScatterRegionResponse{} } func (m *ScatterRegionResponse) String() string { return proto.CompactTextString(m) } func (*ScatterRegionResponse) ProtoMessage() {} func (*ScatterRegionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{74} + return fileDescriptor_78b27e6f04f44c6e, []int{76} } func (m *ScatterRegionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5241,7 +5371,7 @@ func (m *GetGCSafePointRequest) Reset() { *m = GetGCSafePointRequest{} } func (m *GetGCSafePointRequest) String() string { return proto.CompactTextString(m) } func (*GetGCSafePointRequest) ProtoMessage() {} func (*GetGCSafePointRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{75} + return fileDescriptor_78b27e6f04f44c6e, []int{77} } func (m *GetGCSafePointRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5289,7 +5419,7 @@ func (m *GetGCSafePointResponse) Reset() { *m = GetGCSafePointResponse{} func (m *GetGCSafePointResponse) String() string { return proto.CompactTextString(m) } func (*GetGCSafePointResponse) ProtoMessage() {} func (*GetGCSafePointResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{76} + return fileDescriptor_78b27e6f04f44c6e, []int{78} } func (m *GetGCSafePointResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5344,7 +5474,7 @@ func (m *UpdateGCSafePointRequest) Reset() { *m = UpdateGCSafePointReque func (m *UpdateGCSafePointRequest) String() string { return proto.CompactTextString(m) } func (*UpdateGCSafePointRequest) ProtoMessage() {} func (*UpdateGCSafePointRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{77} + return fileDescriptor_78b27e6f04f44c6e, []int{79} } func (m *UpdateGCSafePointRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5399,7 +5529,7 @@ func (m *UpdateGCSafePointResponse) Reset() { *m = UpdateGCSafePointResp func (m *UpdateGCSafePointResponse) String() string { return proto.CompactTextString(m) } func (*UpdateGCSafePointResponse) ProtoMessage() {} func (*UpdateGCSafePointResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{78} + return fileDescriptor_78b27e6f04f44c6e, []int{80} } func (m *UpdateGCSafePointResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5456,7 +5586,7 @@ func (m *UpdateServiceGCSafePointRequest) Reset() { *m = UpdateServiceGC func (m *UpdateServiceGCSafePointRequest) String() string { return proto.CompactTextString(m) } func (*UpdateServiceGCSafePointRequest) ProtoMessage() {} func (*UpdateServiceGCSafePointRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{79} + return fileDescriptor_78b27e6f04f44c6e, []int{81} } func (m *UpdateServiceGCSafePointRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5527,7 +5657,7 @@ func (m *UpdateServiceGCSafePointResponse) Reset() { *m = UpdateServiceG func (m *UpdateServiceGCSafePointResponse) String() string { return proto.CompactTextString(m) } func (*UpdateServiceGCSafePointResponse) ProtoMessage() {} func (*UpdateServiceGCSafePointResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{80} + return fileDescriptor_78b27e6f04f44c6e, []int{82} } func (m *UpdateServiceGCSafePointResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5600,7 +5730,7 @@ func (m *RegionStat) Reset() { *m = RegionStat{} } func (m *RegionStat) String() string { return proto.CompactTextString(m) } func (*RegionStat) ProtoMessage() {} func (*RegionStat) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{81} + return fileDescriptor_78b27e6f04f44c6e, []int{83} } func (m *RegionStat) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5672,7 +5802,7 @@ func (m *SyncRegionRequest) Reset() { *m = SyncRegionRequest{} } func (m *SyncRegionRequest) String() string { return proto.CompactTextString(m) } func (*SyncRegionRequest) ProtoMessage() {} func (*SyncRegionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{82} + return fileDescriptor_78b27e6f04f44c6e, []int{84} } func (m *SyncRegionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5741,7 +5871,7 @@ func (m *SyncRegionResponse) Reset() { *m = SyncRegionResponse{} } func (m *SyncRegionResponse) String() string { return proto.CompactTextString(m) } func (*SyncRegionResponse) ProtoMessage() {} func (*SyncRegionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{83} + return fileDescriptor_78b27e6f04f44c6e, []int{85} } func (m *SyncRegionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5824,7 +5954,7 @@ func (m *GetOperatorRequest) Reset() { *m = GetOperatorRequest{} } func (m *GetOperatorRequest) String() string { return proto.CompactTextString(m) } func (*GetOperatorRequest) ProtoMessage() {} func (*GetOperatorRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{84} + return fileDescriptor_78b27e6f04f44c6e, []int{86} } func (m *GetOperatorRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5882,7 +6012,7 @@ func (m *GetOperatorResponse) Reset() { *m = GetOperatorResponse{} } func (m *GetOperatorResponse) String() string { return proto.CompactTextString(m) } func (*GetOperatorResponse) ProtoMessage() {} func (*GetOperatorResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{85} + return fileDescriptor_78b27e6f04f44c6e, []int{87} } func (m *GetOperatorResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5960,7 +6090,7 @@ func (m *SyncMaxTSRequest) Reset() { *m = SyncMaxTSRequest{} } func (m *SyncMaxTSRequest) String() string { return proto.CompactTextString(m) } func (*SyncMaxTSRequest) ProtoMessage() {} func (*SyncMaxTSRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{86} + return fileDescriptor_78b27e6f04f44c6e, []int{88} } func (m *SyncMaxTSRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6023,7 +6153,7 @@ func (m *SyncMaxTSResponse) Reset() { *m = SyncMaxTSResponse{} } func (m *SyncMaxTSResponse) String() string { return proto.CompactTextString(m) } func (*SyncMaxTSResponse) ProtoMessage() {} func (*SyncMaxTSResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{87} + return fileDescriptor_78b27e6f04f44c6e, []int{89} } func (m *SyncMaxTSResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6086,7 +6216,7 @@ func (m *SplitRegionsRequest) Reset() { *m = SplitRegionsRequest{} } func (m *SplitRegionsRequest) String() string { return proto.CompactTextString(m) } func (*SplitRegionsRequest) ProtoMessage() {} func (*SplitRegionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{88} + return fileDescriptor_78b27e6f04f44c6e, []int{90} } func (m *SplitRegionsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6149,7 +6279,7 @@ func (m *SplitRegionsResponse) Reset() { *m = SplitRegionsResponse{} } func (m *SplitRegionsResponse) String() string { return proto.CompactTextString(m) } func (*SplitRegionsResponse) ProtoMessage() {} func (*SplitRegionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{89} + return fileDescriptor_78b27e6f04f44c6e, []int{91} } func (m *SplitRegionsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6213,7 +6343,7 @@ func (m *SplitAndScatterRegionsRequest) Reset() { *m = SplitAndScatterRe func (m *SplitAndScatterRegionsRequest) String() string { return proto.CompactTextString(m) } func (*SplitAndScatterRegionsRequest) ProtoMessage() {} func (*SplitAndScatterRegionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{90} + return fileDescriptor_78b27e6f04f44c6e, []int{92} } func (m *SplitAndScatterRegionsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6284,7 +6414,7 @@ func (m *SplitAndScatterRegionsResponse) Reset() { *m = SplitAndScatterR func (m *SplitAndScatterRegionsResponse) String() string { return proto.CompactTextString(m) } func (*SplitAndScatterRegionsResponse) ProtoMessage() {} func (*SplitAndScatterRegionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{91} + return fileDescriptor_78b27e6f04f44c6e, []int{93} } func (m *SplitAndScatterRegionsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6353,7 +6483,7 @@ func (m *GetDCLocationInfoRequest) Reset() { *m = GetDCLocationInfoReque func (m *GetDCLocationInfoRequest) String() string { return proto.CompactTextString(m) } func (*GetDCLocationInfoRequest) ProtoMessage() {} func (*GetDCLocationInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{92} + return fileDescriptor_78b27e6f04f44c6e, []int{94} } func (m *GetDCLocationInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6412,7 +6542,7 @@ func (m *GetDCLocationInfoResponse) Reset() { *m = GetDCLocationInfoResp func (m *GetDCLocationInfoResponse) String() string { return proto.CompactTextString(m) } func (*GetDCLocationInfoResponse) ProtoMessage() {} func (*GetDCLocationInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{93} + return fileDescriptor_78b27e6f04f44c6e, []int{95} } func (m *GetDCLocationInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6483,7 +6613,7 @@ func (m *QueryStats) Reset() { *m = QueryStats{} } func (m *QueryStats) String() string { return proto.CompactTextString(m) } func (*QueryStats) ProtoMessage() {} func (*QueryStats) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{94} + return fileDescriptor_78b27e6f04f44c6e, []int{96} } func (m *QueryStats) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6602,7 +6732,7 @@ func (m *ReportBucketsRequest) Reset() { *m = ReportBucketsRequest{} } func (m *ReportBucketsRequest) String() string { return proto.CompactTextString(m) } func (*ReportBucketsRequest) ProtoMessage() {} func (*ReportBucketsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{95} + return fileDescriptor_78b27e6f04f44c6e, []int{97} } func (m *ReportBucketsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6663,7 +6793,7 @@ func (m *ReportBucketsResponse) Reset() { *m = ReportBucketsResponse{} } func (m *ReportBucketsResponse) String() string { return proto.CompactTextString(m) } func (*ReportBucketsResponse) ProtoMessage() {} func (*ReportBucketsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{96} + return fileDescriptor_78b27e6f04f44c6e, []int{98} } func (m *ReportBucketsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6712,7 +6842,7 @@ func (m *ReportMinResolvedTsRequest) Reset() { *m = ReportMinResolvedTsR func (m *ReportMinResolvedTsRequest) String() string { return proto.CompactTextString(m) } func (*ReportMinResolvedTsRequest) ProtoMessage() {} func (*ReportMinResolvedTsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{97} + return fileDescriptor_78b27e6f04f44c6e, []int{99} } func (m *ReportMinResolvedTsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6773,7 +6903,7 @@ func (m *ReportMinResolvedTsResponse) Reset() { *m = ReportMinResolvedTs func (m *ReportMinResolvedTsResponse) String() string { return proto.CompactTextString(m) } func (*ReportMinResolvedTsResponse) ProtoMessage() {} func (*ReportMinResolvedTsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{98} + return fileDescriptor_78b27e6f04f44c6e, []int{100} } func (m *ReportMinResolvedTsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6821,7 +6951,7 @@ func (m *SetExternalTimestampRequest) Reset() { *m = SetExternalTimestam func (m *SetExternalTimestampRequest) String() string { return proto.CompactTextString(m) } func (*SetExternalTimestampRequest) ProtoMessage() {} func (*SetExternalTimestampRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{99} + return fileDescriptor_78b27e6f04f44c6e, []int{101} } func (m *SetExternalTimestampRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6875,7 +7005,7 @@ func (m *SetExternalTimestampResponse) Reset() { *m = SetExternalTimesta func (m *SetExternalTimestampResponse) String() string { return proto.CompactTextString(m) } func (*SetExternalTimestampResponse) ProtoMessage() {} func (*SetExternalTimestampResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{100} + return fileDescriptor_78b27e6f04f44c6e, []int{102} } func (m *SetExternalTimestampResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6922,7 +7052,7 @@ func (m *GetExternalTimestampRequest) Reset() { *m = GetExternalTimestam func (m *GetExternalTimestampRequest) String() string { return proto.CompactTextString(m) } func (*GetExternalTimestampRequest) ProtoMessage() {} func (*GetExternalTimestampRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{101} + return fileDescriptor_78b27e6f04f44c6e, []int{103} } func (m *GetExternalTimestampRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6970,7 +7100,7 @@ func (m *GetExternalTimestampResponse) Reset() { *m = GetExternalTimesta func (m *GetExternalTimestampResponse) String() string { return proto.CompactTextString(m) } func (*GetExternalTimestampResponse) ProtoMessage() {} func (*GetExternalTimestampResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{102} + return fileDescriptor_78b27e6f04f44c6e, []int{104} } func (m *GetExternalTimestampResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7016,6 +7146,7 @@ func (m *GetExternalTimestampResponse) GetTimestamp() uint64 { func init() { proto.RegisterEnum("pdpb.EventType", EventType_name, EventType_value) proto.RegisterEnum("pdpb.ErrorType", ErrorType_name, ErrorType_value) + proto.RegisterEnum("pdpb.ServiceMode", ServiceMode_name, ServiceMode_value) proto.RegisterEnum("pdpb.CheckPolicy", CheckPolicy_name, CheckPolicy_value) proto.RegisterEnum("pdpb.OperatorStatus", OperatorStatus_name, OperatorStatus_value) proto.RegisterEnum("pdpb.QueryKind", QueryKind_name, QueryKind_value) @@ -7060,6 +7191,8 @@ func init() { proto.RegisterType((*GetMembersRequest)(nil), "pdpb.GetMembersRequest") proto.RegisterType((*GetMembersResponse)(nil), "pdpb.GetMembersResponse") proto.RegisterMapType((map[string]*Member)(nil), "pdpb.GetMembersResponse.TsoAllocatorLeadersEntry") + proto.RegisterType((*GetClusterInfoRequest)(nil), "pdpb.GetClusterInfoRequest") + proto.RegisterType((*GetClusterInfoResponse)(nil), "pdpb.GetClusterInfoResponse") proto.RegisterType((*PeerStats)(nil), "pdpb.PeerStats") proto.RegisterType((*RegionHeartbeatRequest)(nil), "pdpb.RegionHeartbeatRequest") proto.RegisterType((*ChangePeer)(nil), "pdpb.ChangePeer") @@ -7128,351 +7261,358 @@ func init() { func init() { proto.RegisterFile("pdpb.proto", fileDescriptor_78b27e6f04f44c6e) } var fileDescriptor_78b27e6f04f44c6e = []byte{ - // 5504 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3c, 0x4d, 0x6f, 0x23, 0x47, - 0x76, 0x6a, 0x8a, 0xa4, 0xc8, 0xc7, 0x0f, 0x51, 0x25, 0x69, 0xc4, 0xe1, 0x7c, 0xc9, 0x3d, 0xb6, - 0x33, 0x9e, 0xf5, 0xca, 0xf6, 0xac, 0xb1, 0x71, 0x9c, 0xac, 0x11, 0x4a, 0xe4, 0xd0, 0xf4, 0x68, - 0x24, 0xa6, 0x49, 0x8d, 0xd7, 0xc1, 0x22, 0x8d, 0x56, 0x77, 0x49, 0xea, 0x15, 0xd9, 0x4d, 0x77, - 0x35, 0xa5, 0xe1, 0x22, 0x87, 0x7c, 0x2c, 0x92, 0x0d, 0xb2, 0x8b, 0x04, 0xc8, 0xe7, 0x21, 0xd8, - 0xc3, 0x26, 0x48, 0x72, 0x09, 0x72, 0x0b, 0x92, 0x3f, 0x10, 0xe4, 0x98, 0x63, 0x4e, 0xc1, 0xc2, - 0x39, 0xe5, 0x0f, 0xec, 0x25, 0x39, 0x04, 0xf5, 0xd5, 0xec, 0x6e, 0x36, 0x25, 0xb9, 0x6d, 0x07, - 0x7b, 0x12, 0xfb, 0xbd, 0x57, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xea, 0xbd, 0x57, 0x55, 0x02, 0x18, - 0x5b, 0xe3, 0xe3, 0x9d, 0xb1, 0xe7, 0xfa, 0x2e, 0xca, 0xd2, 0xdf, 0x8d, 0xf2, 0x08, 0xfb, 0x86, - 0x84, 0x35, 0x2a, 0xd8, 0x33, 0x4e, 0xfc, 0xe0, 0x73, 0x9d, 0x7e, 0xe9, 0x04, 0x7b, 0x17, 0xd8, - 0x0b, 0x80, 0x75, 0x0f, 0x8f, 0x87, 0xb6, 0x69, 0xf8, 0xb6, 0xeb, 0xe8, 0x23, 0xd7, 0xc2, 0x01, - 0x66, 0xe3, 0xd4, 0x3d, 0x75, 0xd9, 0xcf, 0xb7, 0xe8, 0x2f, 0x01, 0x5d, 0xf5, 0x26, 0xc4, 0x67, - 0x3f, 0x39, 0x40, 0xfd, 0x18, 0xea, 0x1f, 0x1b, 0xbe, 0x79, 0xd6, 0x19, 0xba, 0xc7, 0xc6, 0x70, - 0xcf, 0x75, 0x4e, 0xec, 0x53, 0x0d, 0x7f, 0x3a, 0xc1, 0xc4, 0x47, 0x0f, 0xa0, 0x64, 0x32, 0x80, - 0x3e, 0x36, 0xfc, 0xb3, 0xba, 0xb2, 0xad, 0x3c, 0x2a, 0x6a, 0xc0, 0x41, 0x3d, 0xc3, 0x3f, 0x43, - 0x0d, 0x28, 0x78, 0xf8, 0xc2, 0x26, 0xb6, 0xeb, 0xd4, 0x33, 0xdb, 0xca, 0xa3, 0x65, 0x2d, 0xf8, - 0x56, 0xff, 0x42, 0x81, 0xdb, 0x09, 0x9c, 0xc9, 0xd8, 0x75, 0x08, 0x46, 0x6f, 0xc3, 0x8a, 0x79, - 0x66, 0x38, 0xa7, 0x98, 0xd4, 0x95, 0xed, 0xe5, 0x47, 0xa5, 0x27, 0xb7, 0x76, 0x98, 0x36, 0xc2, - 0xc4, 0x5d, 0x1f, 0x8f, 0x34, 0x49, 0x76, 0x55, 0x5f, 0xe8, 0x4d, 0xc8, 0x9f, 0x61, 0xc3, 0xc2, - 0x5e, 0x7d, 0x79, 0x5b, 0x79, 0x54, 0x7a, 0xb2, 0xc1, 0x99, 0xc9, 0xde, 0x3e, 0x64, 0x38, 0x4d, - 0xd0, 0xa8, 0x23, 0xa8, 0xf7, 0x7d, 0xd7, 0xc3, 0x49, 0x43, 0xfe, 0xfc, 0x72, 0xc5, 0x94, 0x94, - 0x89, 0x2b, 0x49, 0xfd, 0x00, 0x6e, 0x27, 0x74, 0x27, 0xf4, 0xf0, 0x0a, 0xe4, 0xb0, 0xe7, 0xb9, - 0x1e, 0x53, 0x6e, 0xe9, 0x49, 0x89, 0xf7, 0xd6, 0xa6, 0x20, 0x8d, 0x63, 0xd4, 0x1e, 0x6c, 0xed, - 0xbb, 0x86, 0x95, 0x24, 0xed, 0x06, 0xe4, 0x1c, 0x63, 0x24, 0x64, 0x2d, 0x6a, 0xfc, 0xe3, 0x7a, - 0x89, 0x2c, 0xa8, 0xcf, 0x73, 0x14, 0x02, 0xbd, 0x09, 0x39, 0xdb, 0xc7, 0xa3, 0xeb, 0x86, 0xcf, - 0x89, 0xae, 0x34, 0x80, 0x1f, 0x2b, 0x50, 0x8b, 0xb7, 0x43, 0x08, 0xb2, 0x54, 0x48, 0x61, 0x4b, - 0xec, 0x37, 0x1d, 0xc5, 0x85, 0x31, 0x9c, 0x60, 0x21, 0x29, 0xff, 0x98, 0x69, 0x66, 0x79, 0x91, - 0x66, 0xd0, 0x43, 0xc8, 0x9e, 0xdb, 0x8e, 0x55, 0xcf, 0x6e, 0x2b, 0x8f, 0xaa, 0x4f, 0x56, 0x05, - 0xc5, 0x05, 0x76, 0xfc, 0xc1, 0x74, 0x8c, 0x35, 0x86, 0x44, 0x75, 0x58, 0x19, 0x1b, 0xd3, 0xa1, - 0x6b, 0x58, 0xf5, 0xdc, 0xb6, 0xf2, 0xa8, 0xac, 0xc9, 0x4f, 0xf5, 0x19, 0x54, 0x84, 0x22, 0xb9, - 0x81, 0xa0, 0x7b, 0x00, 0xe6, 0x70, 0x42, 0x7c, 0xec, 0xe9, 0xb6, 0xc5, 0x44, 0xcc, 0x6a, 0x45, - 0x01, 0xe9, 0x5a, 0xe8, 0x0e, 0x14, 0x09, 0x76, 0x2c, 0x8e, 0xcd, 0x30, 0x6c, 0x81, 0x03, 0xba, - 0x96, 0xaa, 0x41, 0x35, 0x6a, 0x6e, 0xd7, 0x71, 0x0b, 0xc6, 0x97, 0x59, 0x38, 0xf3, 0x4f, 0x21, - 0xd7, 0x96, 0x03, 0xf5, 0xa7, 0x63, 0xae, 0xb5, 0xd9, 0x40, 0x29, 0x8a, 0x0f, 0x94, 0x22, 0xe9, - 0x40, 0x47, 0x98, 0x10, 0xe3, 0x54, 0x2a, 0x52, 0x7e, 0xaa, 0x63, 0x80, 0x01, 0x71, 0xa5, 0xd1, - 0x7c, 0x2d, 0x58, 0x2c, 0xdc, 0xe6, 0xd6, 0xe5, 0x62, 0x09, 0xa9, 0x42, 0xae, 0x15, 0x3a, 0x37, - 0xa6, 0x3b, 0x71, 0x7c, 0xc6, 0xb2, 0xa2, 0xf1, 0x0f, 0x6a, 0x61, 0x96, 0xa9, 0x0f, 0x5d, 0xee, - 0x77, 0xd8, 0x0c, 0x15, 0x35, 0xb0, 0xcc, 0x7d, 0x01, 0x51, 0x8f, 0xa1, 0x38, 0xb0, 0x47, 0x98, - 0xf8, 0xc6, 0x68, 0x4c, 0x8d, 0x64, 0x7c, 0x36, 0x25, 0xb6, 0x69, 0x0c, 0x59, 0x97, 0xcb, 0x5a, - 0xf0, 0x4d, 0x85, 0x1e, 0xba, 0xa7, 0x0c, 0xc5, 0xed, 0x47, 0x7e, 0xd2, 0x3e, 0xc8, 0xe4, 0xe4, - 0xc4, 0x7e, 0xa9, 0x1f, 0xdb, 0x3e, 0x61, 0x7d, 0x54, 0x34, 0xe0, 0xa0, 0x5d, 0xdb, 0x27, 0xea, - 0x6f, 0x29, 0x50, 0x62, 0xc3, 0x0a, 0x2c, 0x37, 0x3a, 0xae, 0x2b, 0x9d, 0xc0, 0x82, 0x81, 0x7d, - 0x1d, 0x8a, 0xbe, 0x94, 0x5b, 0x18, 0x9e, 0xd0, 0x76, 0x30, 0x1c, 0x6d, 0x46, 0xa1, 0xfe, 0x50, - 0x81, 0xda, 0xae, 0xeb, 0xfa, 0xc4, 0xf7, 0x8c, 0x71, 0x2a, 0xfd, 0x3e, 0x84, 0x1c, 0xa1, 0xce, - 0x41, 0x58, 0x41, 0x65, 0x47, 0xec, 0x00, 0xcc, 0x63, 0x68, 0x1c, 0x87, 0x5e, 0x87, 0xbc, 0x87, - 0x4f, 0xa5, 0xa6, 0x4b, 0x4f, 0xaa, 0x92, 0x4a, 0x63, 0x50, 0x4d, 0x60, 0xa9, 0xcb, 0x5d, 0x0b, - 0x89, 0x93, 0x4a, 0x2f, 0x03, 0x40, 0xe1, 0x2d, 0x85, 0xf8, 0x86, 0x3f, 0x21, 0x42, 0xba, 0xd7, - 0x76, 0x12, 0x76, 0x1b, 0x6d, 0x06, 0xea, 0x33, 0x62, 0x6d, 0xcd, 0x8b, 0x83, 0xd4, 0x16, 0x6c, - 0x76, 0x49, 0x20, 0xda, 0x18, 0x5b, 0x69, 0x94, 0xa5, 0x7e, 0x17, 0x6e, 0xc5, 0xb9, 0xa4, 0x1a, - 0xa3, 0x0a, 0xe5, 0xe3, 0x10, 0x17, 0x36, 0xba, 0x82, 0x16, 0x81, 0xa9, 0xdf, 0x82, 0x6a, 0x73, - 0x38, 0x74, 0xcd, 0x6e, 0x2b, 0x95, 0xa8, 0x87, 0xb0, 0x1a, 0x34, 0x4f, 0x25, 0x63, 0x15, 0x32, - 0x81, 0x97, 0xc9, 0xd8, 0x96, 0xfa, 0x11, 0xdc, 0xe9, 0x92, 0xbe, 0x63, 0x8c, 0xc9, 0x99, 0xeb, - 0x6b, 0xd8, 0x74, 0x2f, 0xb0, 0x67, 0x3b, 0xa7, 0xa9, 0x84, 0xb3, 0xe0, 0x6e, 0x32, 0xaf, 0x54, - 0x92, 0xde, 0x82, 0xfc, 0xc8, 0xf0, 0xce, 0x03, 0x3d, 0x8a, 0x2f, 0xf5, 0x13, 0x58, 0xed, 0x60, - 0x9f, 0x1b, 0x72, 0x9a, 0xa5, 0x71, 0x1b, 0x0a, 0xcc, 0xfc, 0x67, 0xde, 0x76, 0x85, 0x7d, 0x77, - 0x2d, 0xf5, 0x47, 0x74, 0x6b, 0x09, 0x78, 0xa7, 0x92, 0xfa, 0x86, 0x0b, 0x2f, 0x47, 0x17, 0x00, - 0x11, 0xeb, 0xae, 0xc6, 0x39, 0x32, 0x12, 0x6a, 0xd8, 0x44, 0xe3, 0x68, 0xd5, 0x84, 0xd5, 0xde, - 0xe4, 0x0b, 0x0c, 0xf5, 0x26, 0xc2, 0xa8, 0x7f, 0xae, 0x40, 0x6d, 0xd6, 0xcb, 0xcf, 0xd1, 0xe2, - 0xfe, 0x4d, 0x58, 0xef, 0x60, 0xbf, 0x39, 0x1c, 0x32, 0xd1, 0x48, 0x2a, 0x0d, 0xbc, 0x07, 0x75, - 0xfc, 0xd2, 0x1c, 0x4e, 0x2c, 0xac, 0xfb, 0xee, 0xe8, 0x98, 0xf8, 0xae, 0x83, 0x75, 0x36, 0x6e, - 0x22, 0xcc, 0xea, 0x96, 0xc0, 0x0f, 0x24, 0x9a, 0xf7, 0xa6, 0x9e, 0xc3, 0x46, 0xb4, 0xf7, 0x54, - 0x9a, 0x79, 0x0d, 0xf2, 0x41, 0x6f, 0xcb, 0xf3, 0x53, 0x20, 0x90, 0xea, 0x6f, 0x73, 0xc3, 0x13, - 0x7e, 0x37, 0xcd, 0x40, 0xef, 0x01, 0x70, 0x6f, 0xad, 0x9f, 0xe3, 0x29, 0x1b, 0x5a, 0x59, 0x2b, - 0x72, 0xc8, 0x33, 0x3c, 0x45, 0xaf, 0x40, 0xd9, 0xc1, 0xd8, 0xd2, 0x8f, 0x27, 0xe6, 0x39, 0x16, - 0x86, 0x57, 0xd0, 0x4a, 0x14, 0xb6, 0xcb, 0x41, 0xea, 0x5f, 0x67, 0x60, 0x2d, 0x24, 0x43, 0xaa, - 0xe1, 0xce, 0x76, 0x94, 0xcc, 0x55, 0x3b, 0x0a, 0x7a, 0x15, 0xf2, 0xc3, 0x70, 0x60, 0x5d, 0x96, - 0x74, 0x3d, 0x4c, 0xb9, 0x71, 0x1c, 0xda, 0x01, 0xb0, 0xdc, 0x4b, 0x47, 0x1f, 0x63, 0xec, 0x91, - 0x7a, 0x8e, 0x29, 0x50, 0x6c, 0x9b, 0x94, 0x8e, 0x2f, 0x95, 0x22, 0x25, 0xa1, 0x9f, 0x04, 0xbd, - 0x03, 0x95, 0x31, 0x76, 0x2c, 0xdb, 0x39, 0x15, 0x4d, 0xf2, 0xac, 0x49, 0x94, 0x79, 0x59, 0x90, - 0xf0, 0x26, 0x6f, 0xc0, 0x8a, 0x54, 0xc9, 0x8a, 0xd8, 0x96, 0x05, 0xb1, 0x50, 0x8b, 0x26, 0xf1, - 0x1f, 0x65, 0x0b, 0xd9, 0x5a, 0x4e, 0xfd, 0x5d, 0x85, 0xd9, 0x05, 0x1f, 0xcf, 0xee, 0x34, 0x9d, - 0x1b, 0xa7, 0x21, 0x9f, 0x98, 0xad, 0x59, 0xc8, 0xc7, 0x01, 0x2c, 0x82, 0xbb, 0x76, 0xae, 0x7e, - 0xa4, 0x00, 0xea, 0x9b, 0x86, 0xc3, 0xc5, 0x20, 0x69, 0x65, 0x20, 0xbe, 0xe1, 0xf9, 0x21, 0x83, - 0x29, 0x30, 0x00, 0xb5, 0x97, 0x0d, 0xc8, 0x0d, 0xed, 0x91, 0xed, 0xb3, 0xce, 0x73, 0x1a, 0xff, - 0x40, 0x5b, 0xb0, 0x82, 0x1d, 0x8b, 0x35, 0xc8, 0xb2, 0x06, 0x79, 0xec, 0x58, 0xcf, 0xf0, 0x54, - 0xfd, 0x17, 0x05, 0xf2, 0x5c, 0x96, 0x90, 0x09, 0x28, 0x37, 0x34, 0x81, 0xcc, 0x8d, 0x4d, 0x60, - 0xf9, 0xf3, 0x9b, 0x40, 0xf6, 0x3a, 0x13, 0x50, 0xff, 0x55, 0x81, 0xf5, 0x88, 0x2e, 0x53, 0x59, - 0xfe, 0x3b, 0x50, 0x16, 0x33, 0x4a, 0x7b, 0x92, 0xcb, 0x3d, 0x3e, 0xf8, 0x12, 0xa7, 0x79, 0x4e, - 0x49, 0xd0, 0xeb, 0xb0, 0xc2, 0x47, 0x29, 0x07, 0x16, 0x95, 0x52, 0x22, 0x29, 0x1d, 0x6f, 0x36, - 0x1b, 0x8d, 0x90, 0x84, 0xf1, 0x94, 0x48, 0xf5, 0x29, 0x6c, 0x75, 0xb0, 0xbf, 0xc7, 0x33, 0x81, - 0x68, 0x42, 0xf7, 0xb9, 0xb6, 0x71, 0x02, 0xf5, 0x79, 0x3e, 0xa9, 0x94, 0xf2, 0x06, 0xac, 0x88, - 0xc4, 0x44, 0x4c, 0x72, 0xb0, 0xba, 0x04, 0x77, 0x4d, 0xe2, 0xd5, 0x4f, 0x61, 0xab, 0x37, 0xf9, - 0xe2, 0xc2, 0x7f, 0x9e, 0x2e, 0x3f, 0x84, 0xfa, 0x7c, 0x97, 0x69, 0xc6, 0xa9, 0xfe, 0x4d, 0x06, - 0xf2, 0xcf, 0xf1, 0xe8, 0x18, 0x7b, 0x89, 0x89, 0xe8, 0x1d, 0x28, 0x8e, 0x18, 0x36, 0xb4, 0xda, - 0x39, 0x80, 0x67, 0x7f, 0xd4, 0x52, 0xf5, 0x89, 0x37, 0xe4, 0x76, 0x50, 0xd4, 0x0a, 0x14, 0x70, - 0xe4, 0x0d, 0x79, 0xca, 0x3d, 0xb4, 0xb1, 0xe3, 0x73, 0x74, 0x96, 0xa1, 0x81, 0x83, 0x18, 0xc1, - 0x2f, 0xc0, 0x2a, 0x37, 0x13, 0x7d, 0xec, 0xd9, 0xae, 0x67, 0xfb, 0x53, 0x96, 0x8d, 0xe6, 0xb4, - 0x2a, 0x07, 0xf7, 0x04, 0x94, 0xa5, 0x56, 0x78, 0x3c, 0x74, 0xa7, 0x3c, 0x79, 0xcf, 0x8b, 0xd4, - 0x8a, 0x81, 0x58, 0xcd, 0xe5, 0x35, 0xa8, 0x1e, 0xdb, 0x8e, 0xe1, 0x4d, 0xf5, 0x0b, 0xec, 0xb1, - 0xc4, 0x7b, 0x85, 0xd1, 0x54, 0x38, 0xf4, 0x05, 0x07, 0xd2, 0xe8, 0xe9, 0xd4, 0xf6, 0xf5, 0x33, - 0x83, 0x9c, 0xd5, 0x0b, 0x3c, 0x1d, 0x3c, 0xb5, 0xfd, 0x0f, 0x0d, 0x72, 0x16, 0xcf, 0xde, 0x8a, - 0x73, 0xd9, 0xdb, 0xaf, 0xb2, 0x0d, 0x86, 0x2b, 0x2a, 0x95, 0xcf, 0x52, 0xff, 0x37, 0x03, 0x28, - 0xcc, 0x22, 0xe5, 0x26, 0xb5, 0xc2, 0xb5, 0x2f, 0x57, 0xa9, 0x58, 0x4f, 0x9c, 0xab, 0x26, 0x91, - 0x09, 0x9b, 0x54, 0x98, 0x4c, 0x7a, 0xa8, 0xaf, 0x43, 0x09, 0xfb, 0xa6, 0xa5, 0x0b, 0xd2, 0x6c, - 0x02, 0x29, 0x50, 0x82, 0x7d, 0x4e, 0x8e, 0x61, 0xd3, 0x27, 0xae, 0x6e, 0x0c, 0x99, 0x9e, 0x5c, - 0x4f, 0x97, 0x2e, 0x80, 0x6f, 0x6f, 0xef, 0x88, 0xba, 0xc8, 0xdc, 0x18, 0x77, 0x06, 0xc4, 0x6d, - 0xca, 0x46, 0x9c, 0x17, 0x69, 0x3b, 0xbe, 0x37, 0xd5, 0xd6, 0xfd, 0x79, 0x4c, 0x63, 0x00, 0xf5, - 0x45, 0x0d, 0x50, 0x0d, 0x96, 0xa9, 0x07, 0xe7, 0x16, 0x4a, 0x7f, 0x22, 0x35, 0x5c, 0x29, 0x89, - 0x4b, 0xcf, 0x51, 0xef, 0x67, 0xde, 0x53, 0xd4, 0x1e, 0x14, 0x03, 0xaf, 0x8b, 0xb6, 0x21, 0x4b, - 0xed, 0x54, 0xa8, 0x3c, 0xea, 0xbb, 0x18, 0x86, 0x6e, 0x64, 0xcc, 0x79, 0x13, 0x6c, 0xba, 0x8e, - 0x45, 0x84, 0xe9, 0x97, 0x28, 0xac, 0xcf, 0x41, 0xea, 0xcf, 0x72, 0x70, 0x8b, 0xfb, 0xb1, 0x0f, - 0xb1, 0xe1, 0xf9, 0xc7, 0xd8, 0xf0, 0x53, 0x2d, 0xfb, 0xaf, 0x32, 0xf0, 0xc8, 0x7e, 0xfe, 0x5d, - 0x27, 0x77, 0x6d, 0xe0, 0xf1, 0x10, 0x2a, 0xc7, 0x53, 0x1f, 0x13, 0xfd, 0xd2, 0xb3, 0x7d, 0x1f, - 0x3b, 0x6c, 0x45, 0x66, 0xb5, 0x32, 0x03, 0x7e, 0xcc, 0x61, 0x34, 0xa8, 0xe3, 0x44, 0x1e, 0x36, - 0x2c, 0xb6, 0x1e, 0xb3, 0x5a, 0x91, 0x41, 0x34, 0x6c, 0xb0, 0x40, 0xe1, 0x1c, 0x4f, 0x67, 0x2c, - 0x0a, 0x5c, 0xbf, 0x14, 0x26, 0x39, 0xdc, 0x81, 0x22, 0x23, 0x61, 0x0c, 0x8a, 0xdc, 0xf5, 0x50, - 0x00, 0x6b, 0xff, 0x06, 0xd4, 0x8c, 0xf1, 0xd8, 0x73, 0x5f, 0xda, 0x23, 0xc3, 0xc7, 0x3a, 0xb1, - 0xbf, 0x87, 0xeb, 0xc0, 0x68, 0x56, 0x43, 0xf0, 0xbe, 0xfd, 0x3d, 0x8c, 0x76, 0xa0, 0x60, 0x3b, - 0x3e, 0xf6, 0x2e, 0x8c, 0x61, 0xbd, 0xcc, 0x34, 0x87, 0x66, 0xf5, 0x8b, 0xae, 0xc0, 0x68, 0x01, - 0x4d, 0x9c, 0x35, 0xed, 0xb2, 0x5e, 0x99, 0x63, 0xfd, 0x0c, 0x4f, 0x09, 0xf5, 0x98, 0x3e, 0xf6, - 0x46, 0xf5, 0x2a, 0x43, 0xb3, 0xdf, 0xe8, 0xd7, 0x13, 0x13, 0x8a, 0x55, 0xd6, 0xf1, 0xd7, 0x92, - 0x13, 0x0a, 0x1e, 0xb5, 0x5e, 0x9f, 0x56, 0xa0, 0x77, 0xa0, 0xf4, 0xe9, 0x04, 0x7b, 0x53, 0x9d, - 0xa7, 0x60, 0xb5, 0x70, 0x0a, 0xf6, 0x6b, 0x14, 0xc1, 0xa7, 0x17, 0x3e, 0x0d, 0x7e, 0x53, 0x2d, - 0x9a, 0xe3, 0x89, 0x3e, 0x61, 0x45, 0xb0, 0x35, 0xae, 0x45, 0x73, 0x3c, 0x39, 0xa2, 0xdf, 0x68, - 0x07, 0xd6, 0x23, 0x43, 0xbd, 0xe0, 0x8a, 0x44, 0x8c, 0x6c, 0x2d, 0x3c, 0xda, 0x0b, 0xaa, 0xca, - 0x8f, 0xb2, 0x85, 0x52, 0xad, 0xac, 0x9e, 0x01, 0xec, 0xb1, 0x4a, 0x2f, 0x35, 0x87, 0x1b, 0xac, - 0xa5, 0xf7, 0xa0, 0xc4, 0x2b, 0xc3, 0x3a, 0xab, 0xd8, 0x65, 0x58, 0xc5, 0x6e, 0x6b, 0x47, 0x96, - 0xf2, 0xe9, 0xf6, 0xc5, 0xf9, 0xb1, 0xca, 0x1d, 0x98, 0xc1, 0x6f, 0xf5, 0x7d, 0x28, 0xcf, 0x7a, - 0x7a, 0xf1, 0x04, 0x3d, 0x8e, 0x97, 0xa2, 0xc5, 0xd8, 0x67, 0x44, 0x41, 0x11, 0x5a, 0x7d, 0x01, - 0xd5, 0x81, 0x67, 0x38, 0xe4, 0x04, 0x0b, 0x17, 0x72, 0x03, 0x49, 0x55, 0xc8, 0xf1, 0x45, 0x90, - 0x49, 0x58, 0x04, 0x1c, 0xa5, 0xbe, 0x05, 0xb9, 0xe7, 0xd8, 0x3b, 0x65, 0x25, 0x28, 0xdf, 0xf0, - 0x4e, 0xb1, 0xbf, 0x28, 0x5a, 0xe4, 0x58, 0x75, 0x1f, 0x4a, 0xfd, 0xf1, 0xd0, 0x16, 0x71, 0x37, - 0x7a, 0x03, 0xf2, 0x63, 0x77, 0x68, 0x9b, 0x53, 0x51, 0xba, 0x5c, 0x93, 0x43, 0xc0, 0xe6, 0x79, - 0x8f, 0x21, 0x34, 0x41, 0x40, 0xcd, 0x8b, 0x59, 0x1f, 0x95, 0xa6, 0xac, 0xb1, 0xdf, 0x6a, 0x07, - 0x2a, 0xfd, 0x4b, 0xdb, 0x37, 0xcf, 0x3e, 0xb6, 0x7d, 0x07, 0x13, 0x42, 0x03, 0x5b, 0xb6, 0x09, - 0x07, 0x05, 0xd5, 0x3c, 0xfd, 0xec, 0x5a, 0x74, 0x05, 0xda, 0x44, 0xbf, 0xe4, 0x64, 0x22, 0x63, - 0x2c, 0xda, 0x44, 0xb4, 0x53, 0x07, 0x80, 0x76, 0x0d, 0xdf, 0x3c, 0x8b, 0x72, 0xfb, 0x00, 0x6a, - 0x84, 0x01, 0x64, 0xc3, 0x40, 0xd5, 0xc2, 0x87, 0x45, 0xc8, 0xb5, 0x55, 0x12, 0xfe, 0xc4, 0x44, - 0xfd, 0xb3, 0x2c, 0x6c, 0xcd, 0x39, 0xc5, 0x94, 0x51, 0xa9, 0xb4, 0x1a, 0x36, 0x69, 0x99, 0xb0, - 0xad, 0x87, 0xe6, 0x5b, 0x98, 0x0b, 0x33, 0xc5, 0x6f, 0xc1, 0xaa, 0x2f, 0xa6, 0x5c, 0x1f, 0x26, - 0x1c, 0x7e, 0x44, 0xed, 0x41, 0xab, 0xfa, 0x51, 0xfb, 0x88, 0x64, 0x36, 0xd9, 0x58, 0x66, 0xf3, - 0xcd, 0x20, 0x48, 0xc6, 0x63, 0xd7, 0x3c, 0x63, 0xa1, 0x0a, 0x55, 0x4a, 0x64, 0xce, 0xdb, 0x14, - 0x25, 0x23, 0x65, 0xf6, 0x41, 0xf7, 0x58, 0x6e, 0x07, 0x7c, 0x18, 0xf9, 0x04, 0xdb, 0x03, 0x4e, - 0xd0, 0xe3, 0xfb, 0x4e, 0x6e, 0x44, 0xad, 0x4b, 0xa4, 0x74, 0x25, 0xb9, 0x9d, 0x79, 0xa7, 0x58, - 0xe3, 0x18, 0xf4, 0x2e, 0x94, 0x09, 0xb5, 0x27, 0x5d, 0xec, 0x1a, 0x05, 0x46, 0x29, 0xcc, 0x28, - 0x64, 0x69, 0x5a, 0x89, 0x84, 0xcc, 0xee, 0x3d, 0xa8, 0x86, 0xd4, 0xa9, 0x5f, 0x3c, 0x61, 0x2e, - 0x35, 0xf0, 0x85, 0xe1, 0x65, 0xa6, 0x95, 0xcd, 0xf0, 0xa2, 0xdb, 0x4b, 0x30, 0x09, 0x60, 0x6d, - 0xeb, 0xbc, 0xed, 0xbc, 0x19, 0xcd, 0xdb, 0xc5, 0x09, 0xac, 0x36, 0xc9, 0xb9, 0x90, 0xee, 0xab, - 0xdb, 0x24, 0xd5, 0xdf, 0x53, 0xa0, 0x36, 0xeb, 0x28, 0x65, 0x29, 0xb4, 0xe2, 0xe0, 0x4b, 0x3d, - 0x9e, 0xe4, 0x96, 0x1c, 0x7c, 0xa9, 0x49, 0x6b, 0xd8, 0xa6, 0x79, 0xee, 0xa5, 0x2e, 0x16, 0x1e, - 0x0f, 0x7e, 0xb3, 0x1a, 0x38, 0xf8, 0xb2, 0xc7, 0x16, 0x1f, 0x51, 0xff, 0x50, 0x01, 0xa4, 0xe1, - 0xb1, 0xeb, 0xf9, 0xe9, 0x07, 0xad, 0x42, 0x76, 0x88, 0x4f, 0xfc, 0x05, 0x43, 0x66, 0x38, 0xf4, - 0x2a, 0xe4, 0x3c, 0xfb, 0xf4, 0xcc, 0x5f, 0x50, 0x07, 0xe7, 0x48, 0x75, 0x0f, 0xd6, 0x23, 0xc2, - 0xa4, 0x4a, 0x15, 0x7e, 0xa8, 0xc0, 0x46, 0x93, 0x9c, 0xf3, 0xe9, 0xfe, 0xaa, 0x67, 0x92, 0x1d, - 0x76, 0x30, 0x33, 0xe7, 0x67, 0x12, 0xf2, 0xb0, 0x83, 0x82, 0xf6, 0x28, 0x44, 0x3d, 0x84, 0x15, - 0x26, 0x45, 0xb7, 0x35, 0x3f, 0x65, 0xca, 0xf5, 0x53, 0x96, 0x99, 0x9b, 0xb2, 0x13, 0xd8, 0x8c, - 0x0d, 0x2f, 0x95, 0xfd, 0x3c, 0x80, 0x65, 0xc9, 0xbf, 0xf4, 0xa4, 0x12, 0x5a, 0x96, 0xdd, 0x96, - 0x46, 0x31, 0xea, 0x98, 0xba, 0x48, 0x3a, 0x19, 0x5f, 0x50, 0x93, 0x8f, 0x66, 0xc9, 0x75, 0x72, - 0xca, 0x1e, 0xa4, 0xd7, 0x1f, 0x42, 0x7d, 0xbe, 0xc7, 0x54, 0x36, 0xf0, 0x1d, 0x28, 0x87, 0xc3, - 0x26, 0x9a, 0xc4, 0xf1, 0x4a, 0xcc, 0xec, 0x8c, 0x88, 0xeb, 0xbe, 0xca, 0xc0, 0xb3, 0x13, 0xaf, - 0x87, 0x50, 0xc1, 0x8e, 0x15, 0x22, 0xe3, 0xab, 0xaa, 0x8c, 0x1d, 0x2b, 0x20, 0x52, 0xdf, 0x05, - 0xd0, 0xb0, 0xe9, 0x7a, 0x56, 0xcf, 0xb0, 0xbd, 0x84, 0x60, 0x3f, 0x72, 0x2c, 0x9a, 0x15, 0xe1, - 0xbd, 0xfa, 0x9f, 0x0a, 0x14, 0x64, 0x6c, 0x1b, 0x75, 0xe2, 0x4a, 0xcc, 0x89, 0x33, 0xa4, 0x61, - 0xe9, 0x62, 0x57, 0x15, 0x48, 0xc3, 0x62, 0xc1, 0x1c, 0x2b, 0x43, 0x1a, 0x96, 0xce, 0x82, 0x54, - 0x66, 0x6f, 0x59, 0x8d, 0x91, 0xef, 0x52, 0x40, 0x3c, 0xf6, 0xca, 0xde, 0x20, 0xf6, 0x7a, 0x05, - 0xca, 0x22, 0xbe, 0xe5, 0x3d, 0xe6, 0xb8, 0x55, 0x0a, 0x18, 0xeb, 0xf4, 0x21, 0x54, 0x24, 0x09, - 0xef, 0x57, 0xc4, 0xd2, 0x02, 0xc8, 0xba, 0x56, 0xff, 0xb1, 0x00, 0x30, 0xab, 0xb0, 0x47, 0x4e, - 0x01, 0x94, 0xc8, 0x29, 0x00, 0x6a, 0x40, 0xc1, 0x34, 0xc6, 0x86, 0x49, 0x93, 0x69, 0x31, 0x3e, - 0xf9, 0x8d, 0xee, 0x42, 0xd1, 0xb8, 0x30, 0xec, 0xa1, 0x71, 0x3c, 0xc4, 0x72, 0x78, 0x01, 0x80, - 0xca, 0x2a, 0xf4, 0xc6, 0xd7, 0x5b, 0x96, 0xad, 0x37, 0xb1, 0x95, 0xb1, 0x05, 0x87, 0xde, 0x04, - 0x44, 0x44, 0xaa, 0x40, 0x1c, 0x63, 0x2c, 0x08, 0x73, 0x8c, 0xb0, 0x26, 0x30, 0x7d, 0xc7, 0x18, - 0x73, 0xea, 0xb7, 0x61, 0xc3, 0xc3, 0x26, 0xb6, 0x2f, 0x62, 0xf4, 0x79, 0x46, 0x8f, 0x02, 0xdc, - 0xac, 0xc5, 0x3d, 0x80, 0x99, 0x2d, 0xb1, 0x0d, 0xb0, 0xa2, 0x15, 0x03, 0x33, 0x12, 0xc1, 0xea, - 0x70, 0x1a, 0xe3, 0x57, 0x60, 0x74, 0x6b, 0x12, 0x35, 0x63, 0xb7, 0x05, 0x2b, 0x36, 0xd1, 0x8f, - 0x27, 0x64, 0xca, 0xb6, 0xba, 0x82, 0x96, 0xb7, 0xc9, 0xee, 0x84, 0x4c, 0xa9, 0x15, 0x4c, 0x08, - 0xb6, 0xc2, 0x49, 0x43, 0x81, 0x02, 0x58, 0xb6, 0x30, 0x97, 0xdc, 0x94, 0x12, 0x92, 0x9b, 0x78, - 0xf6, 0x52, 0x9e, 0xcf, 0x5e, 0xa2, 0xf9, 0x4f, 0x25, 0x9e, 0xff, 0x44, 0x92, 0x9b, 0x6a, 0x2c, - 0xb9, 0x09, 0x67, 0x2c, 0xab, 0x37, 0xc8, 0x58, 0xde, 0x02, 0x08, 0x62, 0x7c, 0x9a, 0x15, 0x84, - 0x22, 0xe3, 0xd9, 0x72, 0xd2, 0x8a, 0x32, 0xec, 0x27, 0xe8, 0x5d, 0xa8, 0x30, 0x53, 0xb7, 0x5d, - 0xdd, 0x33, 0xa8, 0xd5, 0xad, 0x2d, 0x68, 0x53, 0xa2, 0x64, 0x5d, 0x57, 0xa3, 0x44, 0xe8, 0x9b, - 0x50, 0xa5, 0x03, 0xc6, 0xb3, 0x66, 0x68, 0x41, 0x33, 0x66, 0xbe, 0x58, 0xb6, 0xfb, 0x06, 0x94, - 0xdd, 0xb1, 0x3e, 0x34, 0x7c, 0xec, 0x98, 0x36, 0x26, 0xf5, 0xf5, 0x45, 0x9d, 0xb9, 0xe3, 0x7d, - 0x49, 0x84, 0xbe, 0x0e, 0xc0, 0x5c, 0x35, 0x5f, 0x6d, 0x1b, 0xc2, 0xbf, 0x45, 0xf2, 0x58, 0x8d, - 0x55, 0x9f, 0xf8, 0x9a, 0x88, 0xad, 0xce, 0xcd, 0x1b, 0xac, 0x4e, 0x6a, 0x6e, 0x43, 0xf7, 0x52, - 0x27, 0xa6, 0xeb, 0xe1, 0xfa, 0x2d, 0x3e, 0x43, 0x14, 0xd2, 0xa7, 0x00, 0x6a, 0xed, 0x96, 0x31, - 0x32, 0x4e, 0xb1, 0x25, 0xf6, 0x15, 0x42, 0xd7, 0xdb, 0x16, 0xdb, 0x35, 0x6a, 0x02, 0x23, 0xea, - 0xae, 0x5d, 0x8b, 0xee, 0x40, 0x36, 0xd1, 0x99, 0x11, 0x72, 0x93, 0xab, 0xf3, 0xca, 0xb7, 0x4d, - 0x9a, 0x14, 0xc6, 0xec, 0xee, 0x97, 0xa0, 0x4a, 0xc4, 0x09, 0xa3, 0x10, 0xf3, 0x36, 0x1b, 0x96, - 0x98, 0x5c, 0x79, 0xfa, 0xc8, 0x86, 0x56, 0x21, 0xa1, 0x2f, 0x42, 0xb3, 0x7a, 0x26, 0xab, 0xef, - 0x61, 0xc7, 0xaa, 0x37, 0xc2, 0xa7, 0xf0, 0xfd, 0xa1, 0x7b, 0x39, 0xa0, 0x60, 0x2e, 0x3c, 0xfb, - 0xa9, 0xfe, 0x91, 0x02, 0xc5, 0x00, 0xc1, 0x4a, 0x71, 0xc6, 0x84, 0x60, 0x9d, 0x3b, 0x4f, 0xea, - 0x33, 0x14, 0x0d, 0x18, 0xe8, 0x05, 0xbb, 0x58, 0x72, 0x0f, 0xf8, 0x17, 0x9b, 0x56, 0xe6, 0x38, - 0x14, 0xad, 0xc8, 0x20, 0x74, 0x06, 0xb9, 0x6f, 0x20, 0x93, 0xa1, 0x2f, 0x18, 0x2c, 0x33, 0x82, - 0x12, 0x87, 0x71, 0x0e, 0x0f, 0x40, 0x7c, 0x72, 0x16, 0x59, 0xde, 0x05, 0x07, 0x51, 0x1e, 0xea, - 0x4f, 0x15, 0x28, 0x87, 0x47, 0x78, 0xb5, 0xa3, 0x7e, 0x02, 0x9b, 0xa7, 0xd8, 0xc1, 0x94, 0x97, - 0x6e, 0x4d, 0x3c, 0x91, 0x4a, 0x63, 0x53, 0x38, 0xb5, 0x75, 0x89, 0x6c, 0x09, 0x5c, 0x1f, 0x9b, - 0xe8, 0x31, 0xac, 0x51, 0x27, 0x14, 0xa5, 0xe7, 0x7e, 0x6e, 0x95, 0x22, 0xc2, 0xb4, 0x6f, 0x02, - 0xf2, 0x5d, 0xdf, 0x18, 0x46, 0x89, 0x79, 0xcc, 0x5f, 0x63, 0x98, 0x30, 0xf5, 0x6b, 0xc0, 0x53, - 0x05, 0xba, 0x83, 0x72, 0xaf, 0xc1, 0x3d, 0x79, 0x25, 0x80, 0x52, 0xd7, 0x41, 0x87, 0x08, 0x2c, - 0xa0, 0x67, 0x5b, 0x2d, 0xfa, 0x15, 0x00, 0x7e, 0x3d, 0xcd, 0xa7, 0x1a, 0xe1, 0x9b, 0xeb, 0xbd, - 0x9d, 0xe8, 0x8d, 0x35, 0xcd, 0x38, 0xf1, 0xf7, 0x5d, 0xd3, 0x18, 0x52, 0x95, 0x60, 0xad, 0x48, - 0xb1, 0xec, 0x27, 0xda, 0x0d, 0xfc, 0x31, 0x6f, 0xcf, 0x83, 0xa5, 0x07, 0xf1, 0xf6, 0x8c, 0x24, - 0xc4, 0x41, 0x38, 0x6c, 0xce, 0xe3, 0x75, 0x58, 0xb5, 0x89, 0x7e, 0xe2, 0x7a, 0x26, 0x0e, 0xe7, - 0x43, 0x05, 0xad, 0x62, 0x93, 0xa7, 0x14, 0xba, 0x2f, 0x03, 0x89, 0xda, 0x99, 0x41, 0x74, 0xd3, - 0x1d, 0x8d, 0x6c, 0x5f, 0xe7, 0xf9, 0x47, 0x96, 0x11, 0x56, 0xcf, 0x0c, 0xb2, 0xc7, 0xc0, 0x2c, - 0x05, 0x51, 0x5f, 0x40, 0x49, 0x1c, 0xb6, 0xb2, 0x21, 0x7e, 0x03, 0xca, 0x6c, 0x91, 0x7a, 0xec, - 0x33, 0x96, 0x94, 0xcf, 0x54, 0xa1, 0x95, 0xc6, 0xc1, 0x6f, 0x56, 0x34, 0x21, 0x3e, 0x96, 0x01, - 0x00, 0xfb, 0xad, 0xfe, 0x8f, 0x02, 0x9b, 0x8c, 0xf1, 0x17, 0x2d, 0xa5, 0x89, 0xc3, 0xe9, 0xcc, - 0x95, 0x87, 0xd3, 0x2c, 0x85, 0x62, 0x3b, 0x28, 0x17, 0x5c, 0xc4, 0xce, 0x6b, 0x21, 0x72, 0x29, - 0x38, 0x09, 0x8d, 0xf6, 0x63, 0x40, 0x96, 0xa7, 0x1b, 0x13, 0xdf, 0x25, 0x53, 0xc7, 0x94, 0x95, - 0x1d, 0x1e, 0x08, 0xbc, 0x91, 0x54, 0xd9, 0x61, 0x9c, 0x5a, 0x5a, 0x73, 0xe2, 0xbb, 0xfd, 0xa9, - 0x63, 0x8a, 0xba, 0x4e, 0xcd, 0xf2, 0x9a, 0x82, 0x87, 0x38, 0x2d, 0xb6, 0x00, 0xb5, 0xf0, 0xc8, - 0xf5, 0xf1, 0x53, 0xc3, 0x1e, 0x62, 0xeb, 0x85, 0xeb, 0x63, 0x8f, 0x5c, 0xbd, 0x40, 0xde, 0x81, - 0xca, 0x09, 0x23, 0xd6, 0x2f, 0x18, 0x75, 0x62, 0xc5, 0xa2, 0x7c, 0x12, 0xe2, 0xa7, 0x1e, 0x43, - 0x29, 0x3c, 0xe9, 0x0f, 0x03, 0x0e, 0xe2, 0x94, 0x57, 0x61, 0xae, 0x4d, 0xb4, 0xe1, 0x27, 0xc7, - 0x74, 0xcf, 0xc5, 0x74, 0x97, 0x89, 0x18, 0x91, 0x8c, 0x9d, 0xd7, 0x18, 0x2a, 0xc4, 0x93, 0xa8, - 0xdf, 0xcf, 0x40, 0x59, 0xdc, 0x9e, 0x98, 0xf6, 0x86, 0x86, 0x43, 0x63, 0x54, 0xd3, 0xc3, 0x6c, - 0xb3, 0x50, 0x92, 0x63, 0x54, 0x81, 0x46, 0x6f, 0xc2, 0xca, 0x64, 0x6c, 0x31, 0xca, 0xc4, 0x68, - 0x76, 0x37, 0x53, 0x57, 0x34, 0x49, 0x82, 0xee, 0x03, 0x04, 0x87, 0xe2, 0x41, 0xfa, 0x35, 0x83, - 0xa0, 0x27, 0xb0, 0x62, 0x31, 0x95, 0xca, 0x1a, 0xa8, 0xc8, 0x55, 0xe7, 0xf5, 0xac, 0x49, 0x42, - 0x6a, 0x15, 0x91, 0xb5, 0x92, 0x0b, 0x5b, 0x45, 0x68, 0x98, 0x5a, 0xe9, 0x24, 0xa4, 0x47, 0x69, - 0xce, 0xf9, 0x90, 0x39, 0xbf, 0x07, 0x95, 0xe6, 0xa5, 0x71, 0x8e, 0xe5, 0xc1, 0x1c, 0x0d, 0x93, - 0x8d, 0x63, 0xc7, 0xf5, 0x46, 0xc6, 0x30, 0xaa, 0xee, 0xaa, 0x04, 0x8b, 0xa3, 0xfb, 0x9f, 0x65, - 0xe0, 0x56, 0x7c, 0x21, 0xfc, 0xfc, 0xdc, 0x6b, 0xa0, 0xe3, 0x90, 0x17, 0xf8, 0xe4, 0x51, 0x0b, - 0xbf, 0xe9, 0x56, 0x15, 0x60, 0x79, 0xd6, 0xf2, 0x3e, 0x6c, 0x79, 0xf8, 0xd3, 0x89, 0xed, 0x61, - 0xdd, 0xc2, 0x3e, 0xb7, 0x33, 0xb1, 0xd8, 0x98, 0x67, 0x61, 0xb3, 0xb9, 0x29, 0x48, 0x5a, 0x82, - 0x42, 0xac, 0xb3, 0x5f, 0xa4, 0xd1, 0x09, 0xb7, 0x21, 0x7d, 0x3c, 0x34, 0x1c, 0x31, 0x11, 0x68, - 0x16, 0x30, 0x48, 0xf3, 0xd2, 0xca, 0x5e, 0xd8, 0xd8, 0xde, 0x87, 0xaa, 0xc1, 0xd4, 0x2e, 0x77, - 0x6c, 0x51, 0x6e, 0x11, 0x3e, 0x23, 0x32, 0x25, 0x5a, 0xc5, 0x08, 0x7f, 0xaa, 0x3f, 0xc8, 0xc0, - 0x46, 0xdf, 0x34, 0x7c, 0x9f, 0x3a, 0xaa, 0xd4, 0x57, 0x19, 0x1e, 0xcc, 0x1d, 0x8e, 0xb3, 0x81, - 0xce, 0xd6, 0xed, 0x0d, 0xef, 0xad, 0x85, 0x8a, 0xfd, 0xd9, 0x2b, 0x8a, 0xfd, 0x1b, 0x90, 0x3b, - 0xf5, 0xdc, 0xc9, 0x98, 0x69, 0xa8, 0xa8, 0xf1, 0x8f, 0xd9, 0x7d, 0x0a, 0x16, 0xb1, 0xe4, 0x99, - 0x9d, 0x09, 0xb1, 0x68, 0xa8, 0xc2, 0xb6, 0x6a, 0xdf, 0x9b, 0xea, 0xfc, 0x94, 0x9c, 0x97, 0xe6, - 0x81, 0x81, 0xf6, 0x29, 0x44, 0xbd, 0x80, 0xcd, 0x98, 0x26, 0x52, 0x59, 0xe0, 0x5b, 0xb0, 0x7e, - 0x62, 0x3b, 0x36, 0x39, 0xc3, 0x96, 0x3e, 0xc6, 0x9e, 0x89, 0x1d, 0x5f, 0x5e, 0xc4, 0xcc, 0x6a, - 0x48, 0xa2, 0x7a, 0x01, 0x46, 0x6d, 0xc1, 0x66, 0x07, 0xfb, 0x9d, 0xbd, 0xbe, 0x71, 0x82, 0x7b, - 0xae, 0xed, 0xa4, 0xda, 0x03, 0x54, 0x0c, 0xb7, 0xe2, 0x5c, 0x52, 0x89, 0x4f, 0xc3, 0x43, 0xe3, - 0x04, 0xeb, 0x63, 0xca, 0x43, 0x48, 0x5d, 0x24, 0x92, 0xa9, 0x7a, 0x02, 0xf5, 0x23, 0xe6, 0x8b, - 0xbe, 0xa0, 0xbc, 0xd7, 0xf5, 0xe3, 0xc2, 0xed, 0x84, 0x7e, 0x52, 0x8d, 0xe8, 0x55, 0xa8, 0x3a, - 0xf8, 0x52, 0x9f, 0xeb, 0xad, 0xec, 0xe0, 0xcb, 0x80, 0xb7, 0xfa, 0x63, 0x05, 0x1e, 0xf0, 0x1e, - 0xfb, 0xd8, 0xbb, 0xb0, 0xcd, 0x2f, 0x65, 0x80, 0x9c, 0x93, 0x5c, 0x14, 0x65, 0xad, 0x28, 0x20, - 0x5d, 0x8b, 0x66, 0xf9, 0x83, 0xc1, 0x3e, 0x5b, 0x0e, 0xcb, 0x1a, 0xfd, 0x19, 0xd3, 0x48, 0x36, - 0xae, 0x91, 0xbf, 0x53, 0x60, 0x7b, 0xb1, 0x80, 0xa9, 0xe7, 0xfa, 0x73, 0x89, 0xf8, 0x2a, 0x54, - 0x47, 0xb6, 0xa3, 0xcf, 0x89, 0x59, 0x1e, 0xd9, 0xce, 0x4c, 0x95, 0x7f, 0xac, 0x00, 0x68, 0x41, - 0x3c, 0x36, 0x9f, 0x5a, 0x2a, 0xd7, 0x9e, 0x9b, 0x65, 0xae, 0x3b, 0x37, 0x5b, 0xbe, 0xe6, 0xdc, - 0x2c, 0x1b, 0x4d, 0x2d, 0xd5, 0xdf, 0x57, 0x60, 0x8d, 0xc6, 0x22, 0x5f, 0xc0, 0xc7, 0xbd, 0x0a, - 0x79, 0x7e, 0xcc, 0x9c, 0x78, 0xe4, 0x2a, 0x70, 0xac, 0x7c, 0xc7, 0x92, 0x79, 0xdb, 0xb1, 0xf0, - 0x4b, 0x21, 0x27, 0xcf, 0xef, 0xbb, 0x14, 0xa2, 0xfe, 0x24, 0x03, 0x28, 0x2c, 0x49, 0xaa, 0x89, - 0xbb, 0x71, 0x09, 0xec, 0x5a, 0x79, 0x68, 0x2c, 0x1b, 0x0a, 0xb8, 0x65, 0xd8, 0x50, 0x0b, 0xdf, - 0x57, 0x61, 0x99, 0x59, 0x28, 0xc2, 0xa6, 0xa9, 0x6d, 0x55, 0x34, 0x8a, 0x9e, 0x85, 0x47, 0xdd, - 0x75, 0x85, 0xd3, 0x88, 0x20, 0x29, 0x7c, 0x71, 0x2b, 0x2f, 0xce, 0x67, 0x17, 0x5c, 0xdc, 0x52, - 0x7f, 0x83, 0xdd, 0x19, 0x38, 0x1c, 0xd3, 0x64, 0xc7, 0xf5, 0xbe, 0xf4, 0xfb, 0x5a, 0xea, 0x3f, - 0x29, 0xec, 0xa2, 0xe2, 0xac, 0x83, 0x54, 0xb3, 0x70, 0xe5, 0x95, 0x30, 0x04, 0x59, 0x0b, 0x13, - 0x9e, 0x89, 0x95, 0x35, 0xf6, 0x9b, 0xb2, 0x0f, 0x45, 0xcf, 0x55, 0xc9, 0x5e, 0x8a, 0x21, 0xe2, - 0x0f, 0x41, 0xc3, 0x8e, 0xc1, 0x6c, 0x47, 0xbe, 0x55, 0x60, 0xbf, 0x59, 0x9d, 0x9f, 0x5a, 0xcf, - 0x73, 0xe3, 0xe5, 0xa0, 0x9f, 0xb6, 0x0e, 0x3d, 0x32, 0x5e, 0xea, 0x41, 0xb2, 0x30, 0x77, 0xa9, - 0x3d, 0x37, 0x32, 0x5e, 0x0e, 0x78, 0x99, 0xe0, 0xdc, 0x1e, 0xeb, 0xe6, 0x19, 0x36, 0xcf, 0x45, - 0xfe, 0x54, 0xa4, 0x10, 0x76, 0x62, 0xa7, 0xfe, 0x89, 0x58, 0x50, 0x42, 0x90, 0xb4, 0x17, 0xb0, - 0xa8, 0x28, 0x43, 0x9a, 0xc6, 0x5d, 0x21, 0x10, 0x8c, 0x8c, 0x97, 0x2c, 0xd5, 0x13, 0x52, 0x4d, - 0x1d, 0x13, 0x5b, 0xba, 0x65, 0xca, 0xbb, 0x37, 0x45, 0x0e, 0x69, 0x99, 0x44, 0xfd, 0x1d, 0x05, - 0xd6, 0x43, 0x47, 0x41, 0x24, 0xb5, 0xe3, 0x66, 0x15, 0xf8, 0xd0, 0x21, 0x64, 0x91, 0x41, 0x58, - 0xe9, 0x32, 0x16, 0x47, 0x2c, 0xcf, 0xc5, 0x11, 0x7f, 0xaa, 0xc0, 0x46, 0x54, 0x88, 0xff, 0x97, - 0x38, 0x22, 0x16, 0xff, 0x2c, 0xc7, 0xe2, 0x1f, 0xf5, 0x27, 0x0a, 0xdc, 0x63, 0x62, 0x35, 0x1d, - 0x2b, 0x12, 0xe7, 0x7c, 0x25, 0x5a, 0x0a, 0x42, 0xb4, 0xe5, 0x70, 0x88, 0x16, 0xd3, 0x5d, 0x76, - 0x4e, 0x77, 0xff, 0xad, 0xc0, 0xfd, 0x45, 0x42, 0xa6, 0xd2, 0xe2, 0xfb, 0x70, 0x9b, 0x8b, 0xb9, - 0x58, 0x97, 0x5b, 0x8c, 0xe0, 0xe9, 0xbc, 0x42, 0x3f, 0x80, 0x3b, 0x84, 0xcb, 0x90, 0xd8, 0x9a, - 0xcf, 0xfc, 0x6d, 0x41, 0xf2, 0xf4, 0xba, 0x09, 0xc9, 0xc6, 0x27, 0xe4, 0x8c, 0x5d, 0xda, 0x6b, - 0xed, 0xc9, 0xcb, 0x56, 0x5d, 0xe7, 0xc4, 0x4d, 0x19, 0x7d, 0x47, 0x6e, 0x71, 0x65, 0xe6, 0x6e, - 0x71, 0xfd, 0x81, 0x02, 0xb7, 0x13, 0xba, 0x4a, 0x7b, 0xc7, 0x9f, 0xbf, 0xbc, 0x61, 0xfd, 0xe4, - 0x34, 0xf1, 0x15, 0xf2, 0x2b, 0xcb, 0x57, 0xf9, 0x15, 0xf5, 0x9f, 0x33, 0x00, 0xb3, 0xca, 0x24, - 0xaa, 0x42, 0xa6, 0xb3, 0x27, 0x22, 0x82, 0x4c, 0x67, 0x8f, 0xc6, 0x1c, 0x1d, 0x2c, 0x23, 0x34, - 0xfa, 0x93, 0xba, 0xc1, 0xbe, 0x69, 0xc8, 0x2d, 0x9f, 0xfd, 0x46, 0xdb, 0x50, 0xda, 0x73, 0xc7, - 0x9e, 0x6b, 0x62, 0x42, 0x5c, 0x4f, 0xd8, 0x51, 0x18, 0x44, 0xc5, 0x6c, 0xe1, 0x21, 0xf6, 0x65, - 0xcd, 0x4a, 0x7c, 0xd1, 0x96, 0xfc, 0x97, 0x66, 0x38, 0xa7, 0x58, 0x64, 0xaf, 0x61, 0x10, 0x95, - 0xa0, 0x37, 0x91, 0xf9, 0x01, 0xfd, 0x89, 0x1a, 0x50, 0xe8, 0x79, 0x98, 0xd5, 0x76, 0xc5, 0x85, - 0x9d, 0xe0, 0x1b, 0x7d, 0x13, 0x6e, 0x35, 0x4d, 0x96, 0xcd, 0xf5, 0x30, 0x21, 0xf6, 0xc8, 0x26, - 0xbe, 0x4d, 0x15, 0x7f, 0x2e, 0xae, 0xee, 0x2c, 0xc0, 0x52, 0xf9, 0x78, 0x81, 0x49, 0x54, 0xe2, - 0xc5, 0x17, 0xed, 0x4b, 0x73, 0x87, 0xc3, 0x63, 0xc3, 0x3c, 0x17, 0x25, 0xf8, 0xe0, 0x5b, 0xfd, - 0x5b, 0x05, 0x36, 0xc4, 0x79, 0x96, 0xd8, 0x30, 0xd3, 0x58, 0x4b, 0xfc, 0x44, 0x3f, 0x73, 0xc3, - 0x13, 0xfd, 0xd0, 0xf6, 0xbd, 0x7c, 0xf5, 0xbd, 0x6b, 0xb5, 0x0d, 0x9b, 0x31, 0x39, 0xd3, 0x1e, - 0xbc, 0x36, 0x38, 0x9f, 0xe7, 0x36, 0x8d, 0x94, 0xdc, 0xe1, 0x05, 0xb6, 0x06, 0xe4, 0x4b, 0x7e, - 0x42, 0x82, 0x5e, 0x87, 0x55, 0x1a, 0xd4, 0x7a, 0xa2, 0x03, 0x69, 0xc2, 0x59, 0xad, 0x32, 0x0a, - 0x77, 0xab, 0x3e, 0x83, 0x3b, 0x89, 0xd2, 0xa4, 0x1a, 0xdb, 0x19, 0xdc, 0xe9, 0x63, 0xbf, 0xfd, - 0xd2, 0xc7, 0x9e, 0x63, 0x0c, 0x67, 0xab, 0x24, 0xcd, 0xd8, 0xee, 0x86, 0x9f, 0xaa, 0x89, 0xd0, - 0x79, 0xf6, 0x32, 0x6d, 0x1f, 0xee, 0x26, 0xf7, 0x94, 0x4a, 0xee, 0x8f, 0xe0, 0x4e, 0xe7, 0x4b, - 0x92, 0x5b, 0xfd, 0x2e, 0xdc, 0xed, 0x7c, 0x69, 0x92, 0x5d, 0xad, 0x85, 0xc7, 0xdb, 0x50, 0x0c, - 0x9e, 0x83, 0xa2, 0x15, 0x58, 0xee, 0x1d, 0x0d, 0x6a, 0x4b, 0x08, 0x20, 0xdf, 0x6a, 0xef, 0xb7, - 0x07, 0xed, 0x9a, 0xf2, 0xf8, 0xfb, 0x19, 0x28, 0x06, 0x0f, 0x29, 0x51, 0x1e, 0x32, 0x87, 0xcf, - 0x6a, 0x4b, 0xa8, 0x04, 0x2b, 0x47, 0x07, 0xcf, 0x0e, 0x0e, 0x3f, 0x3e, 0xa8, 0x29, 0x68, 0x03, - 0x6a, 0x07, 0x87, 0x03, 0x7d, 0xf7, 0xf0, 0x70, 0xd0, 0x1f, 0x68, 0xcd, 0x5e, 0xaf, 0xdd, 0xaa, - 0x65, 0xd0, 0x3a, 0xac, 0xf6, 0x07, 0x87, 0x5a, 0x5b, 0x1f, 0x1c, 0x3e, 0xdf, 0xed, 0x0f, 0x0e, - 0x0f, 0xda, 0xb5, 0x65, 0x54, 0x87, 0x8d, 0xe6, 0xbe, 0xd6, 0x6e, 0xb6, 0x3e, 0x89, 0x92, 0x67, - 0x29, 0xa6, 0x7b, 0xb0, 0x77, 0xf8, 0xbc, 0xd7, 0x1c, 0x74, 0x77, 0xf7, 0xdb, 0xfa, 0x8b, 0xb6, - 0xd6, 0xef, 0x1e, 0x1e, 0xd4, 0x72, 0x94, 0xbd, 0xd6, 0xee, 0x74, 0x0f, 0x0f, 0x74, 0xda, 0xcb, - 0xd3, 0xc3, 0xa3, 0x83, 0x56, 0x2d, 0x8f, 0xee, 0xc0, 0x56, 0x67, 0xff, 0x70, 0xb7, 0xb9, 0xaf, - 0xef, 0x1d, 0x1e, 0x3c, 0xed, 0x76, 0x42, 0xc8, 0x15, 0xda, 0xa4, 0x75, 0xd4, 0xdb, 0xef, 0xee, - 0x35, 0x07, 0xed, 0x96, 0xde, 0x3e, 0x18, 0x68, 0x9f, 0xd4, 0x0a, 0x54, 0x22, 0xf6, 0x33, 0x44, - 0x5a, 0x44, 0x6b, 0x50, 0xe9, 0x1e, 0xbc, 0x68, 0xee, 0x77, 0x5b, 0xfa, 0x8b, 0xe6, 0xfe, 0x51, - 0xbb, 0x06, 0x08, 0x41, 0xb5, 0xd5, 0x1c, 0x34, 0x75, 0x26, 0xcd, 0xde, 0xa0, 0xdd, 0xaa, 0x95, - 0x1e, 0xbf, 0x0b, 0xa5, 0xd0, 0x9d, 0x2c, 0x54, 0x80, 0x6c, 0x7f, 0xaf, 0x79, 0x50, 0x5b, 0x42, - 0xab, 0x50, 0x6a, 0xf6, 0x7a, 0xda, 0xe1, 0xb7, 0xbb, 0xcf, 0x9b, 0x54, 0x61, 0x54, 0x79, 0x47, - 0xfd, 0xf6, 0xb3, 0xf6, 0x27, 0xb5, 0xcc, 0xe3, 0x1e, 0x54, 0xa3, 0x51, 0x2c, 0x55, 0x5c, 0xff, - 0x68, 0x6f, 0xaf, 0xdd, 0xef, 0x73, 0x2d, 0x0e, 0xba, 0xcf, 0xdb, 0x87, 0x47, 0x03, 0xde, 0x6e, - 0xaf, 0x79, 0xb0, 0xd7, 0xde, 0xaf, 0x65, 0x28, 0x42, 0x6b, 0xf7, 0xf6, 0x9b, 0x7b, 0x54, 0x67, - 0xf4, 0xe3, 0xe8, 0xe0, 0xa0, 0x7b, 0xd0, 0xa9, 0x65, 0x1f, 0xff, 0x83, 0x02, 0x45, 0xb6, 0x4f, - 0x3c, 0xb3, 0x1d, 0x8b, 0xb6, 0x39, 0xf4, 0xcf, 0xb0, 0x47, 0x6a, 0x4b, 0x74, 0x6a, 0x3a, 0x7b, - 0x35, 0x85, 0xce, 0x62, 0x07, 0xfb, 0xb5, 0x0c, 0x93, 0xd1, 0x34, 0x9c, 0xda, 0x32, 0x95, 0x31, - 0xb4, 0x09, 0xd4, 0xb2, 0x6c, 0x82, 0x99, 0x6f, 0xaf, 0xe5, 0x28, 0x32, 0xe4, 0xe7, 0x6b, 0x79, - 0x66, 0x06, 0x13, 0xbf, 0xb6, 0x82, 0xca, 0x33, 0x07, 0x5f, 0x2b, 0xa0, 0xc6, 0x22, 0x97, 0x5e, - 0x2b, 0x32, 0xd9, 0x99, 0xa3, 0xae, 0x01, 0x6d, 0x25, 0x5d, 0x73, 0xad, 0xf4, 0xe4, 0xaf, 0xb6, - 0x20, 0xd3, 0x6b, 0xa1, 0x26, 0xc0, 0xec, 0x26, 0x30, 0xda, 0x9a, 0xbf, 0x1b, 0xcc, 0x16, 0x42, - 0xa3, 0xbe, 0xe8, 0xd2, 0xb0, 0xba, 0x84, 0xde, 0x86, 0xe5, 0x01, 0x71, 0x91, 0x48, 0xc1, 0x66, - 0xcf, 0x75, 0x1b, 0x6b, 0x21, 0x88, 0xa4, 0x7e, 0xa4, 0xbc, 0xad, 0xa0, 0x0f, 0xa0, 0x18, 0xbc, - 0x85, 0x44, 0xe2, 0x9d, 0x76, 0xfc, 0x31, 0x6a, 0x63, 0x6b, 0x0e, 0x1e, 0xf4, 0xf8, 0x1c, 0xaa, - 0xd1, 0xd7, 0x94, 0xe8, 0x0e, 0x27, 0x4e, 0x7c, 0xa9, 0xd9, 0xb8, 0x9b, 0x8c, 0x0c, 0xd8, 0xbd, - 0x07, 0x2b, 0xe2, 0xc5, 0x23, 0x12, 0x4b, 0x36, 0xfa, 0x7e, 0xb2, 0xb1, 0x19, 0x83, 0x06, 0x2d, - 0x75, 0xd8, 0x48, 0x7a, 0x8e, 0x88, 0x5e, 0x91, 0x3d, 0x2e, 0x7c, 0xf6, 0xd8, 0x50, 0xaf, 0x22, - 0x09, 0x3a, 0xf8, 0x65, 0x28, 0xc8, 0xd7, 0x82, 0x68, 0x33, 0x98, 0x83, 0xf0, 0x73, 0xbd, 0xc6, - 0xad, 0x38, 0x38, 0xdc, 0x58, 0xbe, 0xba, 0x93, 0x8d, 0x63, 0x6f, 0xfd, 0x64, 0xe3, 0xf8, 0xe3, - 0x3c, 0x75, 0x09, 0x75, 0xa0, 0x1c, 0x7e, 0x9c, 0x86, 0x6e, 0x07, 0xdd, 0xc4, 0x9f, 0xcb, 0x35, - 0x1a, 0x49, 0xa8, 0xf0, 0x64, 0x45, 0x2b, 0xe5, 0x72, 0xb2, 0x12, 0x0f, 0x92, 0xe4, 0x64, 0x25, - 0x17, 0xd7, 0xd5, 0x25, 0x34, 0x80, 0xd5, 0xd8, 0xc5, 0x45, 0x74, 0x37, 0x9c, 0xfc, 0xcf, 0x31, - 0xbc, 0xb7, 0x00, 0x1b, 0xb7, 0xc8, 0xe0, 0xc9, 0x15, 0x9a, 0x69, 0x34, 0x52, 0x7e, 0x69, 0x6c, - 0xcd, 0xc1, 0x03, 0xa9, 0x76, 0xa1, 0xd2, 0xc1, 0x7e, 0xcf, 0xc3, 0x17, 0xe9, 0x79, 0x3c, 0x65, - 0x3c, 0x66, 0xcf, 0xbe, 0x50, 0x23, 0x46, 0x1b, 0x7a, 0x0b, 0x76, 0x15, 0x9f, 0x16, 0x94, 0x42, - 0x8f, 0x8d, 0x90, 0x58, 0xba, 0xf3, 0x6f, 0xb9, 0x1a, 0xb7, 0x13, 0x30, 0x01, 0x97, 0x0f, 0xa0, - 0x20, 0x2f, 0xe8, 0x49, 0xe3, 0x89, 0xdd, 0x0c, 0x94, 0xc6, 0x13, 0xbf, 0xc7, 0xa7, 0x2e, 0xff, - 0x20, 0xa3, 0xa0, 0x0e, 0x94, 0x42, 0x57, 0xd9, 0xa4, 0x14, 0xf3, 0x57, 0xed, 0xa4, 0x14, 0x09, - 0xf7, 0xde, 0x38, 0xa3, 0x8f, 0xa0, 0x12, 0xb9, 0xee, 0x25, 0xd5, 0x92, 0x74, 0xc5, 0xad, 0x71, - 0x27, 0x11, 0x17, 0x0c, 0xaa, 0x0f, 0xb5, 0xf8, 0x05, 0x2b, 0x74, 0x2f, 0xdc, 0xff, 0x3c, 0xc7, - 0xfb, 0x8b, 0xd0, 0x61, 0xa6, 0xf1, 0xc7, 0x4c, 0x92, 0xe9, 0x82, 0xc7, 0x52, 0x92, 0xe9, 0xa2, - 0x37, 0x50, 0x9c, 0x69, 0xfc, 0xe5, 0x90, 0x64, 0xba, 0xe0, 0x11, 0x93, 0x64, 0xba, 0xe8, 0xc1, - 0x91, 0xba, 0x44, 0x55, 0x19, 0x49, 0x52, 0xa5, 0x2a, 0x93, 0x0e, 0x54, 0xa4, 0x2a, 0x13, 0x8f, - 0x18, 0xf8, 0xb2, 0x8e, 0xd6, 0xef, 0xe5, 0xb2, 0x4e, 0x3c, 0x1b, 0x90, 0xcb, 0x3a, 0xb9, 0xe4, - 0xaf, 0x2e, 0xa1, 0x17, 0xb0, 0x36, 0x57, 0x3f, 0x47, 0x62, 0x44, 0x8b, 0x0a, 0xf8, 0x8d, 0x07, - 0x0b, 0xf1, 0x01, 0xdf, 0x73, 0x59, 0xff, 0x9f, 0x2f, 0x42, 0xa3, 0xd7, 0xc2, 0xcd, 0x17, 0x56, - 0xd1, 0x1b, 0xaf, 0x5f, 0x47, 0x16, 0x5a, 0xc1, 0xa5, 0x59, 0xa9, 0x34, 0xd8, 0x4d, 0xe7, 0xea, - 0xb8, 0x72, 0x37, 0x9d, 0x2f, 0xab, 0x0a, 0x6f, 0xd4, 0x82, 0x52, 0xa8, 0xda, 0x87, 0x66, 0x9b, - 0x6f, 0xac, 0xc2, 0xd8, 0xb8, 0x9d, 0x80, 0x09, 0xad, 0xe0, 0x62, 0x50, 0xf1, 0x92, 0xfe, 0x28, - 0x5e, 0x8b, 0x6b, 0x6c, 0xcd, 0xc1, 0xc3, 0x3b, 0x40, 0xb8, 0x2c, 0x24, 0x77, 0x80, 0x84, 0x7a, - 0x95, 0xdc, 0x01, 0x92, 0xaa, 0x48, 0xea, 0x12, 0xc2, 0x70, 0x2b, 0xb9, 0x46, 0x82, 0x1e, 0x86, - 0xda, 0x2d, 0x2a, 0xf3, 0x34, 0x5e, 0xbd, 0x9a, 0x28, 0x6c, 0x42, 0x73, 0x45, 0x03, 0x34, 0x5b, - 0x69, 0x89, 0x85, 0x0b, 0x69, 0x42, 0x0b, 0xab, 0x0d, 0x9c, 0xef, 0xdc, 0x7f, 0xc1, 0x91, 0x7c, - 0x17, 0xfd, 0x37, 0x1e, 0xc9, 0x77, 0xe1, 0xbf, 0xcf, 0xe1, 0x4b, 0x3c, 0xfe, 0xbf, 0x6c, 0xe4, - 0x12, 0x5f, 0xf0, 0x5f, 0x73, 0xe4, 0x12, 0x5f, 0xf4, 0x2f, 0x70, 0xd4, 0x25, 0xf4, 0x6d, 0x58, - 0x9b, 0xfb, 0xd7, 0x45, 0x52, 0xd8, 0x45, 0xff, 0x2d, 0x49, 0x0a, 0xbb, 0xf0, 0x7f, 0x1e, 0xa9, - 0x4b, 0x6f, 0x2b, 0x68, 0x1f, 0x2a, 0x91, 0x24, 0x59, 0x3a, 0x8f, 0xa4, 0x0c, 0x5f, 0x3a, 0x8f, - 0xc4, 0xac, 0x9a, 0x1a, 0x39, 0xfa, 0x8e, 0xbc, 0xe9, 0x1c, 0x4e, 0x4e, 0xfb, 0x68, 0x3b, 0xdc, - 0x2e, 0x29, 0x8b, 0x6e, 0xbc, 0x72, 0x05, 0x45, 0x38, 0x2e, 0x4b, 0xca, 0x21, 0x65, 0x5c, 0x76, - 0x45, 0x26, 0x2b, 0xe3, 0xb2, 0xab, 0x52, 0x50, 0xde, 0x41, 0xe7, 0x8a, 0x0e, 0x3a, 0xd7, 0x77, - 0xd0, 0xb9, 0xb2, 0x83, 0xdd, 0xd7, 0xff, 0xe3, 0xef, 0x0b, 0xca, 0xbf, 0x7d, 0x76, 0x5f, 0xf9, - 0xf7, 0xcf, 0xee, 0x2b, 0x3f, 0xfd, 0xec, 0xbe, 0xf2, 0x97, 0xff, 0x75, 0x7f, 0x09, 0x6a, 0xae, - 0x77, 0xba, 0xe3, 0xdb, 0xe7, 0x17, 0x3b, 0xe7, 0x17, 0xec, 0x9f, 0x60, 0x1d, 0xe7, 0xd9, 0x9f, - 0x6f, 0xfc, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc1, 0x56, 0xed, 0x66, 0x92, 0x4b, 0x00, 0x00, + // 5603 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3c, 0x4d, 0x8f, 0x23, 0x49, + 0x56, 0x95, 0x2e, 0xdb, 0x65, 0x3f, 0x7f, 0x54, 0x56, 0x74, 0x75, 0x97, 0xdb, 0xfd, 0x39, 0xd9, + 0x33, 0x43, 0x4f, 0xef, 0x6c, 0xcf, 0x4c, 0xef, 0xb0, 0x0c, 0x03, 0x3b, 0xc2, 0x65, 0xbb, 0x6b, + 0x3c, 0x5d, 0x1f, 0x26, 0xed, 0xee, 0xd9, 0x41, 0x2b, 0x52, 0x59, 0x99, 0x51, 0x55, 0xb9, 0x65, + 0x67, 0x7a, 0x32, 0xd2, 0x55, 0xed, 0x15, 0x48, 0x7c, 0xac, 0x60, 0x11, 0xbb, 0x02, 0x89, 0xcf, + 0xd3, 0x1e, 0x16, 0x04, 0x5c, 0x10, 0x37, 0x04, 0x7f, 0x00, 0x71, 0xe4, 0xc8, 0x09, 0xad, 0x96, + 0x13, 0xe2, 0xbe, 0x17, 0x38, 0xa0, 0xf8, 0x4a, 0x67, 0xa6, 0xd3, 0x55, 0xdd, 0xd9, 0x33, 0x68, + 0x4f, 0xce, 0x78, 0xef, 0xc5, 0x8b, 0x17, 0x2f, 0x5e, 0x44, 0xbc, 0xf7, 0x22, 0xc2, 0x00, 0x13, + 0x7b, 0x72, 0xf8, 0x70, 0xe2, 0x7b, 0x81, 0x87, 0xf2, 0xf4, 0xbb, 0x59, 0x1d, 0xe3, 0xc0, 0x94, + 0xb0, 0x66, 0x0d, 0xfb, 0xe6, 0x51, 0x10, 0x16, 0xaf, 0xd0, 0x92, 0x41, 0xb0, 0x7f, 0x86, 0xfd, + 0x10, 0xd8, 0xf0, 0xf1, 0x64, 0xe4, 0x58, 0x66, 0xe0, 0x78, 0xae, 0x31, 0xf6, 0x6c, 0x1c, 0x62, + 0x36, 0x8f, 0xbd, 0x63, 0x8f, 0x7d, 0xbe, 0x43, 0xbf, 0x04, 0x74, 0xdd, 0x9f, 0x92, 0x80, 0x7d, + 0x72, 0x80, 0xf6, 0x29, 0x34, 0x3e, 0x35, 0x03, 0xeb, 0x64, 0x67, 0xe4, 0x1d, 0x9a, 0xa3, 0xb6, + 0xe7, 0x1e, 0x39, 0xc7, 0x3a, 0xfe, 0x7c, 0x8a, 0x49, 0x80, 0xee, 0x40, 0xc5, 0x62, 0x00, 0x63, + 0x62, 0x06, 0x27, 0x0d, 0xe5, 0xae, 0x72, 0xbf, 0xac, 0x03, 0x07, 0xf5, 0xcd, 0xe0, 0x04, 0x35, + 0xa1, 0xe4, 0xe3, 0x33, 0x87, 0x38, 0x9e, 0xdb, 0xc8, 0xdd, 0x55, 0xee, 0xaf, 0xea, 0x61, 0x59, + 0xfb, 0x0b, 0x05, 0xae, 0xa7, 0x70, 0x26, 0x13, 0xcf, 0x25, 0x18, 0xbd, 0x0b, 0x6b, 0xd6, 0x89, + 0xe9, 0x1e, 0x63, 0xd2, 0x50, 0xee, 0xae, 0xde, 0xaf, 0x3c, 0xba, 0xf6, 0x90, 0x69, 0x23, 0x4a, + 0xdc, 0x0b, 0xf0, 0x58, 0x97, 0x64, 0x17, 0xb5, 0x85, 0xde, 0x86, 0xe2, 0x09, 0x36, 0x6d, 0xec, + 0x37, 0x56, 0xef, 0x2a, 0xf7, 0x2b, 0x8f, 0x36, 0x39, 0x33, 0xd9, 0xda, 0xc7, 0x0c, 0xa7, 0x0b, + 0x1a, 0x6d, 0x0c, 0x8d, 0x41, 0xe0, 0xf9, 0x38, 0xad, 0xcb, 0x2f, 0x2f, 0x57, 0x42, 0x49, 0xb9, + 0xa4, 0x92, 0xb4, 0x8f, 0xe0, 0x7a, 0x4a, 0x73, 0x42, 0x0f, 0xaf, 0x41, 0x01, 0xfb, 0xbe, 0xe7, + 0x33, 0xe5, 0x56, 0x1e, 0x55, 0x78, 0x6b, 0x5d, 0x0a, 0xd2, 0x39, 0x46, 0xeb, 0xc3, 0xd6, 0xae, + 0x67, 0xda, 0x69, 0xd2, 0x6e, 0x42, 0xc1, 0x35, 0xc7, 0x42, 0xd6, 0xb2, 0xce, 0x0b, 0x97, 0x4b, + 0x64, 0x43, 0x63, 0x91, 0xa3, 0x10, 0xe8, 0x6d, 0x28, 0x38, 0x01, 0x1e, 0x5f, 0xd6, 0x7d, 0x4e, + 0x74, 0xa1, 0x01, 0xfc, 0x50, 0x01, 0x35, 0x59, 0x0f, 0x21, 0xc8, 0x53, 0x21, 0x85, 0x2d, 0xb1, + 0x6f, 0xda, 0x8b, 0x33, 0x73, 0x34, 0xc5, 0x42, 0x52, 0x5e, 0x98, 0x6b, 0x66, 0x75, 0x99, 0x66, + 0xd0, 0x3d, 0xc8, 0x9f, 0x3a, 0xae, 0xdd, 0xc8, 0xdf, 0x55, 0xee, 0xd7, 0x1f, 0xad, 0x0b, 0x8a, + 0x33, 0xec, 0x06, 0xc3, 0xd9, 0x04, 0xeb, 0x0c, 0x89, 0x1a, 0xb0, 0x36, 0x31, 0x67, 0x23, 0xcf, + 0xb4, 0x1b, 0x85, 0xbb, 0xca, 0xfd, 0xaa, 0x2e, 0x8b, 0xda, 0x13, 0xa8, 0x09, 0x45, 0x72, 0x03, + 0x41, 0xb7, 0x00, 0xac, 0xd1, 0x94, 0x04, 0xd8, 0x37, 0x1c, 0x9b, 0x89, 0x98, 0xd7, 0xcb, 0x02, + 0xd2, 0xb3, 0xd1, 0x0d, 0x28, 0x13, 0xec, 0xda, 0x1c, 0x9b, 0x63, 0xd8, 0x12, 0x07, 0xf4, 0x6c, + 0x4d, 0x87, 0x7a, 0xdc, 0xdc, 0x2e, 0xe3, 0x16, 0xf6, 0x2f, 0xb7, 0x74, 0xe4, 0x1f, 0x43, 0xa1, + 0x2b, 0x3b, 0x1a, 0xcc, 0x26, 0x5c, 0x6b, 0xf3, 0x8e, 0x52, 0x14, 0xef, 0x28, 0x45, 0xd2, 0x8e, + 0x8e, 0x31, 0x21, 0xe6, 0xb1, 0x54, 0xa4, 0x2c, 0x6a, 0x13, 0x80, 0x21, 0xf1, 0xa4, 0xd1, 0x7c, + 0x25, 0x9c, 0x2c, 0xdc, 0xe6, 0xae, 0xc8, 0xc9, 0x12, 0x51, 0x85, 0x9c, 0x2b, 0x74, 0x6c, 0x2c, + 0x6f, 0xea, 0x06, 0x8c, 0x65, 0x4d, 0xe7, 0x05, 0x6a, 0x61, 0xb6, 0x65, 0x8c, 0x3c, 0xbe, 0xee, + 0xb0, 0x11, 0x2a, 0xeb, 0x60, 0x5b, 0xbb, 0x02, 0xa2, 0x1d, 0x42, 0x79, 0xe8, 0x8c, 0x31, 0x09, + 0xcc, 0xf1, 0x84, 0x1a, 0xc9, 0xe4, 0x64, 0x46, 0x1c, 0xcb, 0x1c, 0xb1, 0x26, 0x57, 0xf5, 0xb0, + 0x4c, 0x85, 0x1e, 0x79, 0xc7, 0x0c, 0xc5, 0xed, 0x47, 0x16, 0x69, 0x1b, 0x64, 0x7a, 0x74, 0xe4, + 0x3c, 0x37, 0x0e, 0x9d, 0x80, 0xb0, 0x36, 0x6a, 0x3a, 0x70, 0xd0, 0xb6, 0x13, 0x10, 0xed, 0xb7, + 0x14, 0xa8, 0xb0, 0x6e, 0x85, 0x96, 0x1b, 0xef, 0xd7, 0x85, 0x8b, 0xc0, 0x92, 0x8e, 0x7d, 0x15, + 0xca, 0x81, 0x94, 0x5b, 0x18, 0x9e, 0xd0, 0x76, 0xd8, 0x1d, 0x7d, 0x4e, 0xa1, 0x7d, 0x5f, 0x01, + 0x75, 0xdb, 0xf3, 0x02, 0x12, 0xf8, 0xe6, 0x24, 0x93, 0x7e, 0xef, 0x41, 0x81, 0xd0, 0xc5, 0x41, + 0x58, 0x41, 0xed, 0xa1, 0xd8, 0x01, 0xd8, 0x8a, 0xa1, 0x73, 0x1c, 0x7a, 0x13, 0x8a, 0x3e, 0x3e, + 0x96, 0x9a, 0xae, 0x3c, 0xaa, 0x4b, 0x2a, 0x9d, 0x41, 0x75, 0x81, 0xa5, 0x4b, 0xee, 0x46, 0x44, + 0x9c, 0x4c, 0x7a, 0x19, 0x02, 0x8a, 0x6e, 0x29, 0x24, 0x30, 0x83, 0x29, 0x11, 0xd2, 0xbd, 0xf1, + 0x30, 0x65, 0xb7, 0xd1, 0xe7, 0xa0, 0x01, 0x23, 0xd6, 0x37, 0xfc, 0x24, 0x48, 0xeb, 0xc0, 0xd5, + 0x1e, 0x09, 0x45, 0x9b, 0x60, 0x3b, 0x8b, 0xb2, 0xb4, 0x6f, 0xc3, 0xb5, 0x24, 0x97, 0x4c, 0x7d, + 0xd4, 0xa0, 0x7a, 0x18, 0xe1, 0xc2, 0x7a, 0x57, 0xd2, 0x63, 0x30, 0xed, 0x1b, 0x50, 0x6f, 0x8d, + 0x46, 0x9e, 0xd5, 0xeb, 0x64, 0x12, 0xf5, 0x00, 0xd6, 0xc3, 0xea, 0x99, 0x64, 0xac, 0x43, 0x2e, + 0x5c, 0x65, 0x72, 0x8e, 0xad, 0x7d, 0x02, 0x37, 0x7a, 0x64, 0xe0, 0x9a, 0x13, 0x72, 0xe2, 0x05, + 0x3a, 0xb6, 0xbc, 0x33, 0xec, 0x3b, 0xee, 0x71, 0x26, 0xe1, 0x6c, 0xb8, 0x99, 0xce, 0x2b, 0x93, + 0xa4, 0xd7, 0xa0, 0x38, 0x36, 0xfd, 0xd3, 0x50, 0x8f, 0xa2, 0xa4, 0x7d, 0x06, 0xeb, 0x3b, 0x38, + 0xe0, 0x86, 0x9c, 0x65, 0x6a, 0x5c, 0x87, 0x12, 0x33, 0xff, 0xf9, 0x6a, 0xbb, 0xc6, 0xca, 0x3d, + 0x5b, 0xfb, 0x01, 0xdd, 0x5a, 0x42, 0xde, 0x99, 0xa4, 0x7e, 0xc1, 0x89, 0x57, 0xa0, 0x13, 0x80, + 0x88, 0x79, 0xa7, 0x72, 0x8e, 0x8c, 0x84, 0x1a, 0x36, 0xd1, 0x39, 0x5a, 0xb3, 0x60, 0xbd, 0x3f, + 0x7d, 0x85, 0xae, 0xbe, 0x88, 0x30, 0xda, 0x9f, 0x2b, 0xa0, 0xce, 0x5b, 0xf9, 0x19, 0x9a, 0xdc, + 0xbf, 0x01, 0x57, 0x76, 0x70, 0xd0, 0x1a, 0x8d, 0x98, 0x68, 0x24, 0x93, 0x06, 0x3e, 0x80, 0x06, + 0x7e, 0x6e, 0x8d, 0xa6, 0x36, 0x36, 0x02, 0x6f, 0x7c, 0x48, 0x02, 0xcf, 0xc5, 0x06, 0xeb, 0x37, + 0x11, 0x66, 0x75, 0x4d, 0xe0, 0x87, 0x12, 0xcd, 0x5b, 0xd3, 0x4e, 0x61, 0x33, 0xde, 0x7a, 0x26, + 0xcd, 0xbc, 0x01, 0xc5, 0xb0, 0xb5, 0xd5, 0xc5, 0x21, 0x10, 0x48, 0xed, 0xb7, 0xb9, 0xe1, 0x89, + 0x75, 0x37, 0x4b, 0x47, 0x6f, 0x01, 0xf0, 0xd5, 0xda, 0x38, 0xc5, 0x33, 0xd6, 0xb5, 0xaa, 0x5e, + 0xe6, 0x90, 0x27, 0x78, 0x86, 0x5e, 0x83, 0xaa, 0x8b, 0xb1, 0x6d, 0x1c, 0x4e, 0xad, 0x53, 0x2c, + 0x0c, 0xaf, 0xa4, 0x57, 0x28, 0x6c, 0x9b, 0x83, 0xb4, 0xbf, 0xca, 0xc1, 0x46, 0x44, 0x86, 0x4c, + 0xdd, 0x9d, 0xef, 0x28, 0xb9, 0x8b, 0x76, 0x14, 0xf4, 0x3a, 0x14, 0x47, 0x51, 0xc7, 0xba, 0x2a, + 0xe9, 0xfa, 0x98, 0x72, 0xe3, 0x38, 0xf4, 0x10, 0xc0, 0xf6, 0xce, 0x5d, 0x63, 0x82, 0xb1, 0x4f, + 0x1a, 0x05, 0xa6, 0x40, 0xb1, 0x6d, 0x52, 0x3a, 0x3e, 0x55, 0xca, 0x94, 0x84, 0x16, 0x09, 0x7a, + 0x0f, 0x6a, 0x13, 0xec, 0xda, 0x8e, 0x7b, 0x2c, 0xaa, 0x14, 0x59, 0x95, 0x38, 0xf3, 0xaa, 0x20, + 0xe1, 0x55, 0xde, 0x82, 0x35, 0xa9, 0x92, 0x35, 0xb1, 0x2d, 0x0b, 0x62, 0xa1, 0x16, 0x5d, 0xe2, + 0x3f, 0xc9, 0x97, 0xf2, 0x6a, 0x41, 0xfb, 0x5d, 0x85, 0xd9, 0x05, 0xef, 0xcf, 0xf6, 0x2c, 0xdb, + 0x32, 0x4e, 0x5d, 0x3e, 0x31, 0x5a, 0x73, 0x97, 0x8f, 0x03, 0x98, 0x07, 0x77, 0xe9, 0x58, 0xfd, + 0x40, 0x01, 0x34, 0xb0, 0x4c, 0x97, 0x8b, 0x41, 0xb2, 0xca, 0x40, 0x02, 0xd3, 0x0f, 0x22, 0x06, + 0x53, 0x62, 0x00, 0x6a, 0x2f, 0x9b, 0x50, 0x18, 0x39, 0x63, 0x27, 0x60, 0x8d, 0x17, 0x74, 0x5e, + 0x40, 0x5b, 0xb0, 0x86, 0x5d, 0x9b, 0x55, 0xc8, 0xb3, 0x0a, 0x45, 0xec, 0xda, 0x4f, 0xf0, 0x4c, + 0xfb, 0x67, 0x05, 0x8a, 0x5c, 0x96, 0x88, 0x09, 0x28, 0x2f, 0x68, 0x02, 0xb9, 0x17, 0x36, 0x81, + 0xd5, 0x97, 0x37, 0x81, 0xfc, 0x65, 0x26, 0xa0, 0xfd, 0x8b, 0x02, 0x57, 0x62, 0xba, 0xcc, 0x64, + 0xf9, 0xef, 0x41, 0x55, 0x8c, 0x28, 0x6d, 0x49, 0x4e, 0xf7, 0x64, 0xe7, 0x2b, 0x9c, 0x66, 0x8f, + 0x92, 0xa0, 0x37, 0x61, 0x8d, 0xf7, 0x52, 0x76, 0x2c, 0x2e, 0xa5, 0x44, 0x52, 0x3a, 0x5e, 0x6d, + 0xde, 0x1b, 0x21, 0x09, 0xe3, 0x29, 0x91, 0xda, 0x63, 0xd8, 0xda, 0xc1, 0x41, 0x9b, 0x47, 0x02, + 0xf1, 0x80, 0xee, 0xa5, 0xb6, 0x71, 0x02, 0x8d, 0x45, 0x3e, 0x99, 0x94, 0xf2, 0x16, 0xac, 0x89, + 0xc0, 0x44, 0x0c, 0x72, 0x38, 0xbb, 0x04, 0x77, 0x5d, 0xe2, 0xb5, 0xcf, 0x61, 0xab, 0x3f, 0x7d, + 0x75, 0xe1, 0x5f, 0xa6, 0xc9, 0x8f, 0xa1, 0xb1, 0xd8, 0x64, 0x96, 0x7e, 0x6a, 0x7f, 0x9d, 0x83, + 0xe2, 0x1e, 0x1e, 0x1f, 0x62, 0x3f, 0x35, 0x10, 0xbd, 0x01, 0xe5, 0x31, 0xc3, 0x46, 0x66, 0x3b, + 0x07, 0xf0, 0xe8, 0x8f, 0x5a, 0xaa, 0x31, 0xf5, 0x47, 0xdc, 0x0e, 0xca, 0x7a, 0x89, 0x02, 0x9e, + 0xfa, 0x23, 0x1e, 0x72, 0x8f, 0x1c, 0xec, 0x06, 0x1c, 0x9d, 0x67, 0x68, 0xe0, 0x20, 0x46, 0xf0, + 0x73, 0xb0, 0xce, 0xcd, 0xc4, 0x98, 0xf8, 0x8e, 0xe7, 0x3b, 0xc1, 0x8c, 0x45, 0xa3, 0x05, 0xbd, + 0xce, 0xc1, 0x7d, 0x01, 0x65, 0xa1, 0x15, 0x9e, 0x8c, 0xbc, 0x19, 0x0f, 0xde, 0x8b, 0x22, 0xb4, + 0x62, 0x20, 0x96, 0x73, 0x79, 0x03, 0xea, 0x87, 0x8e, 0x6b, 0xfa, 0x33, 0xe3, 0x0c, 0xfb, 0x2c, + 0xf0, 0x5e, 0x63, 0x34, 0x35, 0x0e, 0x7d, 0xc6, 0x81, 0xd4, 0x7b, 0x3a, 0x76, 0x02, 0xe3, 0xc4, + 0x24, 0x27, 0x8d, 0x12, 0x0f, 0x07, 0x8f, 0x9d, 0xe0, 0x63, 0x93, 0x9c, 0x24, 0xa3, 0xb7, 0xf2, + 0x42, 0xf4, 0xf6, 0x2b, 0x6c, 0x83, 0xe1, 0x8a, 0xca, 0xb4, 0x66, 0x69, 0xff, 0x9b, 0x03, 0x14, + 0x65, 0x91, 0x71, 0x93, 0x5a, 0xe3, 0xda, 0x97, 0xb3, 0x54, 0xcc, 0x27, 0xce, 0x55, 0x97, 0xc8, + 0x94, 0x4d, 0x2a, 0x4a, 0x26, 0x57, 0xa8, 0xaf, 0x42, 0x05, 0x07, 0x96, 0x6d, 0x08, 0xd2, 0x7c, + 0x0a, 0x29, 0x50, 0x82, 0x5d, 0x4e, 0x8e, 0xe1, 0x6a, 0x40, 0x3c, 0xc3, 0x1c, 0x31, 0x3d, 0x79, + 0xbe, 0x21, 0x97, 0x00, 0xbe, 0xbd, 0xbd, 0x27, 0xf2, 0x22, 0x0b, 0x7d, 0x7c, 0x38, 0x24, 0x5e, + 0x4b, 0x56, 0xe2, 0xbc, 0x48, 0xd7, 0x0d, 0xfc, 0x99, 0x7e, 0x25, 0x58, 0xc4, 0x34, 0x87, 0xd0, + 0x58, 0x56, 0x01, 0xa9, 0xb0, 0x4a, 0x57, 0x70, 0x6e, 0xa1, 0xf4, 0x13, 0x69, 0xd1, 0x4c, 0x49, + 0x52, 0x7a, 0x8e, 0xfa, 0x30, 0xf7, 0x81, 0xa2, 0x75, 0xe1, 0xea, 0x7c, 0x65, 0xe8, 0xb9, 0x47, + 0x61, 0xec, 0xff, 0x72, 0xd3, 0xe5, 0x37, 0xe1, 0x5a, 0x92, 0x4d, 0xa6, 0x81, 0xfc, 0x79, 0xa8, + 0x12, 0xec, 0x9f, 0x39, 0x16, 0xde, 0xf3, 0x6c, 0xe1, 0x62, 0xd5, 0x1f, 0x6d, 0x08, 0x6f, 0x7a, + 0x8e, 0xd1, 0x63, 0x64, 0x5a, 0x1f, 0xca, 0xe1, 0xde, 0x81, 0xee, 0x42, 0x9e, 0xce, 0x36, 0xd1, + 0x5e, 0x7c, 0x05, 0x66, 0x18, 0xba, 0x1d, 0xb3, 0x2d, 0x88, 0x60, 0xcb, 0x73, 0x6d, 0x22, 0x26, + 0x70, 0x85, 0xc2, 0x06, 0x1c, 0xa4, 0xfd, 0xb4, 0x00, 0xd7, 0xf8, 0x6a, 0xfc, 0x31, 0x36, 0xfd, + 0xe0, 0x10, 0x9b, 0x41, 0xa6, 0xc5, 0xeb, 0xcb, 0x74, 0x9f, 0xf2, 0x2f, 0xbf, 0x77, 0x16, 0x2e, + 0x75, 0x9f, 0xee, 0x41, 0xed, 0x70, 0x16, 0x60, 0x62, 0x9c, 0xfb, 0x4e, 0x10, 0x60, 0x97, 0xad, + 0x2b, 0x79, 0xbd, 0xca, 0x80, 0x9f, 0x72, 0x18, 0x75, 0x4d, 0x39, 0x91, 0x8f, 0x4d, 0x9b, 0xad, + 0x2a, 0x79, 0xbd, 0xcc, 0x20, 0x3a, 0x36, 0x99, 0xbb, 0x73, 0x8a, 0x67, 0x73, 0x16, 0x25, 0xae, + 0x5f, 0x0a, 0x93, 0x1c, 0x6e, 0x40, 0x99, 0x91, 0x30, 0x06, 0x65, 0xbe, 0x80, 0x52, 0x00, 0xab, + 0xff, 0x16, 0xa8, 0xe6, 0x64, 0xe2, 0x7b, 0xcf, 0x9d, 0xb1, 0x19, 0x60, 0x83, 0x38, 0xdf, 0xc1, + 0x0d, 0x60, 0x34, 0xeb, 0x11, 0xf8, 0xc0, 0xf9, 0x0e, 0x46, 0x0f, 0xa1, 0xe4, 0xb8, 0x01, 0xf6, + 0xcf, 0xcc, 0x51, 0xa3, 0xca, 0x34, 0x87, 0xe6, 0x59, 0x98, 0x9e, 0xc0, 0xe8, 0x21, 0x4d, 0x92, + 0x35, 0x6d, 0xb2, 0x51, 0x5b, 0x60, 0xfd, 0x04, 0xcf, 0x08, 0x5d, 0xf7, 0x03, 0xec, 0x8f, 0x1b, + 0x75, 0x86, 0x66, 0xdf, 0xe8, 0xd7, 0x52, 0xc3, 0xa2, 0x75, 0xd6, 0xf0, 0x57, 0xd2, 0xc3, 0x22, + 0xee, 0x7b, 0x5f, 0x1e, 0x1c, 0xa1, 0xf7, 0xa0, 0xf2, 0xf9, 0x14, 0xfb, 0x33, 0x83, 0x07, 0x92, + 0x6a, 0x34, 0x90, 0xfc, 0x55, 0x8a, 0xe0, 0xc3, 0x0b, 0x9f, 0x87, 0xdf, 0x54, 0x8b, 0xd6, 0x64, + 0x6a, 0x4c, 0x59, 0x2a, 0x6f, 0x83, 0x6b, 0xd1, 0x9a, 0x4c, 0x9f, 0xd2, 0x32, 0x7a, 0x08, 0x57, + 0x62, 0x5d, 0x3d, 0xe3, 0x8a, 0x44, 0x8c, 0x6c, 0x23, 0xda, 0xdb, 0x33, 0xaa, 0xca, 0x4f, 0xf2, + 0xa5, 0x8a, 0x5a, 0xd5, 0x4e, 0x00, 0xda, 0x2c, 0x5f, 0x4d, 0xcd, 0xe1, 0x05, 0xe6, 0xd2, 0x07, + 0x50, 0xe1, 0xf9, 0x6d, 0x83, 0xe5, 0x1d, 0x73, 0x2c, 0xef, 0xb8, 0xf5, 0x50, 0x1e, 0x48, 0xd0, + 0x4d, 0x98, 0xf3, 0x63, 0xf9, 0x47, 0xb0, 0xc2, 0x6f, 0xed, 0x43, 0xa8, 0xce, 0x5b, 0x7a, 0xf6, + 0x08, 0x3d, 0x48, 0x26, 0xd4, 0x45, 0xdf, 0xe7, 0x44, 0x61, 0x2a, 0x5d, 0x7b, 0x06, 0xf5, 0xa1, + 0x6f, 0xba, 0xe4, 0x08, 0x8b, 0x85, 0xf0, 0x05, 0x24, 0xd5, 0xa0, 0xc0, 0x27, 0x41, 0x2e, 0x65, + 0x12, 0x70, 0x94, 0xf6, 0x0e, 0x14, 0xf6, 0xb0, 0x7f, 0xcc, 0x12, 0x69, 0x81, 0xe9, 0x1f, 0xe3, + 0x60, 0x99, 0xcf, 0xcb, 0xb1, 0xda, 0x2e, 0x54, 0x06, 0x93, 0x91, 0x23, 0xa2, 0x07, 0xf4, 0x16, + 0x14, 0x27, 0xde, 0xc8, 0xb1, 0x66, 0x22, 0x01, 0xbb, 0x21, 0xbb, 0x80, 0xad, 0xd3, 0x3e, 0x43, + 0xe8, 0x82, 0x80, 0x9a, 0x17, 0xb3, 0x3e, 0x2a, 0x4d, 0x55, 0x67, 0xdf, 0xda, 0x0e, 0xd4, 0x06, + 0xe7, 0x4e, 0x60, 0x9d, 0x7c, 0xea, 0x04, 0x2e, 0x26, 0x84, 0xba, 0xe7, 0xcc, 0x95, 0x08, 0xd3, + 0xc2, 0x45, 0x5a, 0xec, 0xd9, 0x74, 0x06, 0x3a, 0xc4, 0x38, 0xe7, 0x64, 0x22, 0xee, 0x2d, 0x3b, + 0x44, 0xd4, 0xd3, 0x86, 0x80, 0xb6, 0xcd, 0xc0, 0x3a, 0x89, 0x73, 0xfb, 0x08, 0x54, 0xc2, 0x00, + 0xb2, 0x62, 0xa8, 0x6a, 0xb1, 0x86, 0xc5, 0xc8, 0xf5, 0x75, 0x12, 0x2d, 0x62, 0xa2, 0xfd, 0x59, + 0x1e, 0xb6, 0x16, 0x16, 0xc5, 0x8c, 0xbe, 0xb5, 0xb4, 0x1a, 0x36, 0x68, 0xb9, 0xa8, 0xad, 0x47, + 0xc6, 0x5b, 0x98, 0x0b, 0x33, 0xc5, 0x6f, 0xc0, 0x7a, 0x20, 0x86, 0xdc, 0x18, 0xa5, 0x1c, 0xe1, + 0xc4, 0xed, 0x41, 0xaf, 0x07, 0x71, 0xfb, 0x88, 0xc5, 0x67, 0xf9, 0x44, 0x7c, 0xf6, 0xf5, 0xd0, + 0xd5, 0xc7, 0x13, 0xcf, 0x3a, 0x61, 0x0e, 0x17, 0x55, 0x4a, 0x6c, 0xcc, 0xbb, 0x14, 0x25, 0xfd, + 0x7d, 0x56, 0xa0, 0x9e, 0x02, 0xb7, 0x03, 0xde, 0x8d, 0x62, 0x8a, 0xed, 0x01, 0x27, 0xe8, 0xf3, + 0x7d, 0xa7, 0x30, 0xa6, 0xd6, 0x25, 0x02, 0xd3, 0x8a, 0xdc, 0x94, 0xfd, 0x63, 0xac, 0x73, 0x0c, + 0x7a, 0x1f, 0xaa, 0x84, 0xda, 0x93, 0x21, 0x76, 0x8d, 0x12, 0xa3, 0x94, 0x1b, 0xe0, 0xdc, 0xd2, + 0xf4, 0x0a, 0x89, 0x98, 0xdd, 0x07, 0x50, 0x8f, 0xa8, 0xd3, 0x38, 0x7b, 0xc4, 0x96, 0xd4, 0x70, + 0x2d, 0x8c, 0x4e, 0x33, 0xbd, 0x6a, 0x45, 0x27, 0x5d, 0x3b, 0xc5, 0x24, 0x80, 0xd5, 0x6d, 0xf0, + 0xba, 0x8b, 0x66, 0xb4, 0x68, 0x17, 0x47, 0xb0, 0xde, 0x22, 0xa7, 0x42, 0xba, 0x2f, 0x6f, 0x93, + 0xd4, 0x7e, 0x4f, 0x01, 0x75, 0xde, 0x50, 0xc6, 0x84, 0x6e, 0xcd, 0xc5, 0xe7, 0x46, 0x32, 0x54, + 0xaf, 0xb8, 0xf8, 0x5c, 0x97, 0xd6, 0x70, 0x97, 0x46, 0xeb, 0xe7, 0x86, 0x98, 0x78, 0xdc, 0x85, + 0xcf, 0xeb, 0xe0, 0xe2, 0xf3, 0x3e, 0x9b, 0x7c, 0x44, 0xfb, 0x43, 0x05, 0x90, 0x8e, 0x27, 0x9e, + 0x1f, 0x64, 0xef, 0xb4, 0x06, 0xf9, 0x11, 0x3e, 0x0a, 0x96, 0x74, 0x99, 0xe1, 0xd0, 0xeb, 0x50, + 0xf0, 0x9d, 0xe3, 0x93, 0x60, 0x49, 0x36, 0x9f, 0x23, 0xb5, 0x36, 0x5c, 0x89, 0x09, 0x93, 0x29, + 0xe0, 0xf9, 0xbe, 0x02, 0x9b, 0x2d, 0x72, 0xca, 0x87, 0xfb, 0xcb, 0x1e, 0x49, 0x76, 0x64, 0xc3, + 0xcc, 0x9c, 0x9f, 0xac, 0xc8, 0x23, 0x1b, 0x0a, 0x6a, 0x53, 0x88, 0x76, 0x00, 0x6b, 0x4c, 0x8a, + 0x5e, 0x67, 0x71, 0xc8, 0x94, 0xcb, 0x87, 0x2c, 0xb7, 0x30, 0x64, 0x47, 0x70, 0x35, 0xd1, 0xbd, + 0x4c, 0xf6, 0x73, 0x07, 0x56, 0x25, 0xff, 0xca, 0xa3, 0x5a, 0x64, 0x5a, 0xf6, 0x3a, 0x3a, 0xc5, + 0x68, 0x13, 0xba, 0x44, 0xd2, 0xc1, 0x78, 0x45, 0x4d, 0xde, 0x9f, 0xa7, 0x08, 0xd2, 0x13, 0x0f, + 0x61, 0x92, 0xe0, 0x63, 0x68, 0x2c, 0xb6, 0x98, 0xc9, 0x06, 0xbe, 0x05, 0xd5, 0xa8, 0xdb, 0x44, + 0x43, 0x51, 0x9e, 0x4f, 0x9a, 0x9f, 0x74, 0x71, 0xdd, 0xd7, 0x19, 0x78, 0x7e, 0x6e, 0x77, 0x0f, + 0x6a, 0xd8, 0xb5, 0x23, 0x64, 0x7c, 0x56, 0x55, 0xb1, 0x6b, 0x87, 0x44, 0xda, 0xfb, 0x00, 0x3a, + 0xb6, 0x3c, 0xdf, 0xee, 0x9b, 0x8e, 0x9f, 0x12, 0xb2, 0xc4, 0x0e, 0x77, 0xf3, 0x22, 0x48, 0xd1, + 0xfe, 0x43, 0x81, 0x92, 0xf4, 0x6d, 0xe3, 0x8b, 0xb8, 0x92, 0x58, 0xc4, 0x19, 0xd2, 0xb4, 0x0d, + 0xb1, 0xab, 0x0a, 0xa4, 0x69, 0x33, 0x67, 0x8e, 0x25, 0x53, 0x4d, 0xdb, 0x60, 0x4e, 0x2a, 0xb3, + 0xb7, 0xbc, 0xce, 0xc8, 0xb7, 0x29, 0x20, 0xe9, 0x7b, 0xe5, 0x5f, 0xc0, 0xf7, 0x7a, 0x0d, 0xaa, + 0xc2, 0xbf, 0xe5, 0x2d, 0x16, 0xb8, 0x55, 0x0a, 0x18, 0x6b, 0xf4, 0x1e, 0xd4, 0x24, 0x09, 0x6f, + 0x57, 0xf8, 0xd2, 0x02, 0xc8, 0x9a, 0xd6, 0xfe, 0xa1, 0x04, 0x30, 0x3f, 0x27, 0x88, 0x9d, 0x65, + 0x28, 0xb1, 0xb3, 0x0c, 0xd4, 0x84, 0x92, 0x65, 0x4e, 0x4c, 0xcb, 0x09, 0x66, 0xb2, 0x7f, 0xb2, + 0x8c, 0x6e, 0x42, 0xd9, 0x3c, 0x33, 0x9d, 0x91, 0x79, 0x38, 0xc2, 0xb2, 0x7b, 0x21, 0x80, 0xca, + 0x2a, 0xf4, 0xc6, 0xe7, 0x5b, 0x9e, 0xcd, 0x37, 0xb1, 0x95, 0xb1, 0x09, 0x87, 0xde, 0x06, 0x44, + 0x44, 0xa8, 0x40, 0x5c, 0x73, 0x22, 0x08, 0x0b, 0x8c, 0x50, 0x15, 0x98, 0x81, 0x6b, 0x4e, 0x38, + 0xf5, 0xbb, 0xb0, 0xe9, 0x63, 0x0b, 0x3b, 0x67, 0x09, 0xfa, 0x22, 0xa3, 0x47, 0x21, 0x6e, 0x5e, + 0xe3, 0x16, 0xc0, 0xdc, 0x96, 0xd8, 0x06, 0x58, 0xd3, 0xcb, 0xa1, 0x19, 0x09, 0x67, 0x75, 0x34, + 0x4b, 0xf0, 0x2b, 0x31, 0xba, 0x0d, 0x89, 0x9a, 0xb3, 0xdb, 0x82, 0x35, 0x87, 0x18, 0x87, 0x53, + 0x32, 0x63, 0x5b, 0x5d, 0x49, 0x2f, 0x3a, 0x64, 0x7b, 0x4a, 0x66, 0xd4, 0x0a, 0xa6, 0x04, 0xdb, + 0xd1, 0xa0, 0xa1, 0x44, 0x01, 0x2c, 0x5a, 0x58, 0x08, 0x6e, 0x2a, 0x29, 0xc1, 0x4d, 0x32, 0x7a, + 0xa9, 0x2e, 0x46, 0x2f, 0xf1, 0xf8, 0xa7, 0x96, 0x8c, 0x7f, 0x62, 0xc1, 0x4d, 0x3d, 0x11, 0xdc, + 0x44, 0x23, 0x96, 0xf5, 0x17, 0x88, 0x58, 0xde, 0x01, 0x08, 0x7d, 0x7c, 0x1a, 0x15, 0x44, 0x3c, + 0xe3, 0xf9, 0x74, 0xd2, 0xcb, 0xd2, 0xed, 0x27, 0xe8, 0x7d, 0xa8, 0x31, 0x53, 0x77, 0x3c, 0xc3, + 0x37, 0xa9, 0xd5, 0x6d, 0x2c, 0xa9, 0x53, 0xa1, 0x64, 0x3d, 0x4f, 0xa7, 0x44, 0xe8, 0xeb, 0x50, + 0xa7, 0x1d, 0xc6, 0xf3, 0x6a, 0x68, 0x49, 0x35, 0x66, 0xbe, 0x58, 0xd6, 0xfb, 0x1a, 0x54, 0xbd, + 0x89, 0x31, 0x32, 0x03, 0xec, 0x5a, 0x0e, 0x26, 0x8d, 0x2b, 0xcb, 0x1a, 0xf3, 0x26, 0xbb, 0x92, + 0x08, 0x7d, 0x15, 0x80, 0x2d, 0xd5, 0x7c, 0xb6, 0x6d, 0x8a, 0xf5, 0x2d, 0x16, 0xc7, 0xea, 0x2c, + 0x87, 0xc6, 0xe7, 0x44, 0x62, 0x76, 0x5e, 0x7d, 0x81, 0xd9, 0x49, 0xcd, 0x6d, 0xe4, 0x9d, 0x1b, + 0xc4, 0xf2, 0x7c, 0xdc, 0xb8, 0xc6, 0x47, 0x88, 0x42, 0x06, 0x14, 0x40, 0xad, 0xdd, 0x36, 0xc7, + 0xe6, 0x31, 0xb6, 0xc5, 0xbe, 0x42, 0xe8, 0x7c, 0xdb, 0x62, 0xbb, 0x86, 0x2a, 0x30, 0x22, 0x7b, + 0xdc, 0xb3, 0xe9, 0x0e, 0xe4, 0x10, 0x83, 0x19, 0x21, 0x37, 0xb9, 0x06, 0xcf, 0xdf, 0x3b, 0xa4, + 0x45, 0x61, 0xcc, 0xee, 0x7e, 0x11, 0xea, 0x44, 0x9c, 0x93, 0x0a, 0x31, 0xaf, 0xb3, 0x6e, 0x89, + 0xc1, 0x95, 0x67, 0xa8, 0xac, 0x6b, 0x35, 0x12, 0x29, 0x11, 0x1a, 0xd5, 0x33, 0x59, 0x03, 0x1f, + 0xbb, 0x76, 0xa3, 0x19, 0xbd, 0x4b, 0x30, 0x18, 0x79, 0xe7, 0x43, 0x0a, 0xe6, 0xc2, 0xb3, 0x4f, + 0xed, 0x8f, 0x14, 0x28, 0x87, 0x08, 0x96, 0x50, 0x34, 0xa7, 0x04, 0x1b, 0x7c, 0xf1, 0xa4, 0x6b, + 0x86, 0xa2, 0x03, 0x03, 0x3d, 0x63, 0xd7, 0x63, 0x6e, 0x01, 0x2f, 0xb1, 0x61, 0x65, 0x0b, 0x87, + 0xa2, 0x97, 0x19, 0x84, 0x8e, 0x20, 0x5f, 0x1b, 0xc8, 0x74, 0x14, 0x08, 0x06, 0xab, 0x8c, 0xa0, + 0xc2, 0x61, 0x9c, 0xc3, 0x1d, 0x10, 0x45, 0xce, 0x22, 0xcf, 0x9b, 0xe0, 0x20, 0xca, 0x43, 0xfb, + 0xb1, 0x02, 0xd5, 0x68, 0x0f, 0x2f, 0x5e, 0xa8, 0x1f, 0xc1, 0xd5, 0x63, 0xec, 0x62, 0xca, 0xcb, + 0xb0, 0xa7, 0xbe, 0x08, 0xa5, 0xb1, 0x25, 0x16, 0xb5, 0x2b, 0x12, 0xd9, 0x11, 0xb8, 0x01, 0xb6, + 0xd0, 0x03, 0xd8, 0xa0, 0x8b, 0x50, 0x9c, 0x9e, 0xaf, 0x73, 0xeb, 0x14, 0x11, 0xa5, 0x7d, 0x1b, + 0x50, 0xe0, 0x05, 0xe6, 0x28, 0x4e, 0xcc, 0x7d, 0x7e, 0x95, 0x61, 0xa2, 0xd4, 0x6f, 0x00, 0x0f, + 0x15, 0xe8, 0x0e, 0xca, 0x57, 0x0d, 0xbe, 0x92, 0xd7, 0x42, 0x28, 0x5d, 0x3a, 0x68, 0x17, 0x81, + 0x39, 0xf4, 0x6c, 0xab, 0x45, 0xbf, 0x0c, 0xc0, 0x2f, 0xd9, 0x05, 0x54, 0x23, 0x7c, 0x73, 0xbd, + 0xf5, 0x30, 0x7e, 0xef, 0x4e, 0x37, 0x8f, 0x82, 0x5d, 0xcf, 0x32, 0x47, 0x54, 0x25, 0x58, 0x2f, + 0x53, 0x2c, 0xfb, 0x44, 0xdb, 0xe1, 0x7a, 0xcc, 0xeb, 0x73, 0x67, 0xe9, 0x4e, 0xb2, 0x3e, 0x23, + 0x89, 0x70, 0x10, 0x0b, 0x36, 0xe7, 0xf1, 0x26, 0xac, 0x3b, 0xc4, 0x38, 0xf2, 0x7c, 0x0b, 0x47, + 0xe3, 0xa1, 0x92, 0x5e, 0x73, 0xc8, 0x63, 0x0a, 0xdd, 0x95, 0x8e, 0x84, 0x7a, 0x62, 0x12, 0xc3, + 0xf2, 0xc6, 0x63, 0x27, 0x30, 0x78, 0xfc, 0x91, 0x67, 0x84, 0xf5, 0x13, 0x93, 0xb4, 0x19, 0x98, + 0x85, 0x20, 0xda, 0x33, 0xa8, 0x88, 0x23, 0x63, 0xd6, 0xc5, 0xaf, 0x41, 0x95, 0x4d, 0x52, 0x9f, + 0x15, 0x13, 0x41, 0xf9, 0x5c, 0x15, 0x7a, 0x65, 0x12, 0x7e, 0xb3, 0xa4, 0x09, 0x09, 0xb0, 0x74, + 0x00, 0xd8, 0xb7, 0xf6, 0x3f, 0x0a, 0x5c, 0x65, 0x8c, 0x5f, 0x35, 0x95, 0x26, 0x8e, 0xd8, 0x73, + 0x17, 0x1e, 0xb1, 0xb3, 0x10, 0x8a, 0xed, 0xa0, 0x5c, 0x70, 0xe1, 0x3b, 0x6f, 0x44, 0xc8, 0xa5, + 0xe0, 0x24, 0xd2, 0xdb, 0x4f, 0x01, 0xd9, 0xbe, 0x61, 0x4e, 0x03, 0x8f, 0xcc, 0x5c, 0x4b, 0x66, + 0x76, 0xb8, 0x23, 0xf0, 0x56, 0x5a, 0x66, 0x87, 0x71, 0xea, 0xe8, 0xad, 0x69, 0xe0, 0x0d, 0x66, + 0xae, 0x25, 0xf2, 0x3a, 0xaa, 0xed, 0xb7, 0x04, 0x0f, 0x71, 0xe6, 0x6d, 0x03, 0xea, 0xe0, 0xb1, + 0x17, 0xe0, 0xc7, 0xa6, 0x33, 0xc2, 0xf6, 0x33, 0x2f, 0xc0, 0x3e, 0xb9, 0x78, 0x82, 0xbc, 0x07, + 0xb5, 0x23, 0x46, 0x6c, 0x9c, 0x31, 0xea, 0xd4, 0x8c, 0x45, 0xf5, 0x28, 0xc2, 0x4f, 0x3b, 0x84, + 0x4a, 0x74, 0xd0, 0xef, 0x85, 0x1c, 0xc4, 0x59, 0xb5, 0xc2, 0x96, 0x36, 0x51, 0x87, 0x9f, 0x7f, + 0xd3, 0x3d, 0x17, 0xd3, 0x5d, 0x26, 0x66, 0x44, 0xd2, 0x77, 0xde, 0x60, 0xa8, 0x08, 0x4f, 0xa2, + 0x7d, 0x37, 0x07, 0x55, 0x71, 0x07, 0x64, 0xd6, 0x1f, 0x99, 0x2e, 0xf5, 0x51, 0x2d, 0x1f, 0xb3, + 0xcd, 0x42, 0x49, 0xf7, 0x51, 0x05, 0x1a, 0xbd, 0x0d, 0x6b, 0xd3, 0x89, 0xcd, 0x28, 0x53, 0xbd, + 0xd9, 0xed, 0x5c, 0x43, 0xd1, 0x25, 0x09, 0xba, 0x0d, 0x10, 0x1e, 0xed, 0x87, 0xe1, 0xd7, 0x1c, + 0x82, 0x1e, 0xc1, 0x9a, 0xcd, 0x54, 0x2a, 0x73, 0xa0, 0x22, 0x56, 0x5d, 0xd4, 0xb3, 0x2e, 0x09, + 0xa9, 0x55, 0xc4, 0xe6, 0x4a, 0x21, 0x6a, 0x15, 0x91, 0x6e, 0xea, 0x95, 0xa3, 0x88, 0x1e, 0xa5, + 0x39, 0x17, 0x23, 0xe6, 0xfc, 0x01, 0xd4, 0x5a, 0xe7, 0xe6, 0x29, 0x96, 0xc7, 0x8b, 0xd4, 0x4d, + 0x36, 0x0f, 0x5d, 0xcf, 0x1f, 0x9b, 0xa3, 0xb8, 0xba, 0xeb, 0x12, 0x2c, 0x2e, 0x20, 0xfc, 0x34, + 0x07, 0xd7, 0x92, 0x13, 0xe1, 0x67, 0xe7, 0x76, 0x06, 0xed, 0x87, 0xbc, 0x86, 0x28, 0x0f, 0x8c, + 0xf8, 0x7d, 0xbd, 0xba, 0x00, 0xcb, 0x13, 0xa3, 0x0f, 0x61, 0xcb, 0xc7, 0x9f, 0x4f, 0x1d, 0x1f, + 0x1b, 0x36, 0x0e, 0xb8, 0x9d, 0x89, 0xc9, 0xc6, 0x56, 0x16, 0x36, 0x9a, 0x57, 0x05, 0x49, 0x47, + 0x50, 0x88, 0x79, 0xf6, 0x0b, 0xd4, 0x3b, 0xe1, 0x36, 0x64, 0x4c, 0x46, 0xa6, 0x2b, 0x06, 0x02, + 0xcd, 0x1d, 0x06, 0x69, 0x5e, 0x7a, 0xd5, 0x8f, 0x1a, 0xdb, 0x87, 0x50, 0x37, 0x99, 0xda, 0xe5, + 0x8e, 0x2d, 0xd2, 0x2d, 0x62, 0xcd, 0x88, 0x0d, 0x89, 0x5e, 0x33, 0xa3, 0x45, 0xed, 0x7b, 0x39, + 0xd8, 0x1c, 0x58, 0x66, 0x10, 0xd0, 0x85, 0x2a, 0xf3, 0x85, 0x8c, 0x3b, 0x0b, 0x47, 0xfc, 0xac, + 0xa3, 0xf3, 0x79, 0xfb, 0x82, 0xb7, 0xef, 0x22, 0xc9, 0xfe, 0xfc, 0x05, 0xc9, 0xfe, 0x4d, 0x28, + 0x1c, 0xfb, 0xde, 0x74, 0xc2, 0x34, 0x54, 0xd6, 0x79, 0x61, 0x7e, 0x2b, 0x84, 0x79, 0x2c, 0x45, + 0x66, 0x67, 0x42, 0x2c, 0xea, 0xaa, 0xb0, 0xad, 0x3a, 0xf0, 0x67, 0x06, 0x3f, 0xeb, 0xe7, 0xa9, + 0x79, 0x60, 0xa0, 0x5d, 0x0a, 0xd1, 0xce, 0xe0, 0x6a, 0x42, 0x13, 0x99, 0x2c, 0xf0, 0x1d, 0xb8, + 0x72, 0xe4, 0xb8, 0x0e, 0x39, 0xc1, 0xb6, 0x31, 0xc1, 0xbe, 0x85, 0xdd, 0x40, 0x5e, 0x27, 0xcd, + 0xeb, 0x48, 0xa2, 0xfa, 0x21, 0x46, 0xeb, 0xb0, 0x83, 0xa6, 0x9d, 0xf6, 0xc0, 0x3c, 0xc2, 0x7d, + 0xcf, 0x71, 0x33, 0xed, 0x01, 0x1a, 0x66, 0xe7, 0x4c, 0x31, 0x2e, 0x99, 0xc4, 0xa7, 0xee, 0xa1, + 0x79, 0x84, 0x8d, 0x09, 0xe5, 0x21, 0xa4, 0x2e, 0x13, 0xc9, 0x54, 0x3b, 0x82, 0xc6, 0x53, 0xb6, + 0x16, 0xbd, 0xa2, 0xbc, 0x97, 0xb5, 0xe3, 0xc1, 0xf5, 0x94, 0x76, 0x32, 0xf5, 0xe8, 0x75, 0xa8, + 0xbb, 0xf8, 0xdc, 0x58, 0x68, 0xad, 0xea, 0xe2, 0xf3, 0x90, 0xb7, 0xf6, 0x43, 0x05, 0xee, 0xf0, + 0x16, 0xc5, 0x61, 0xda, 0x17, 0xd1, 0x41, 0xce, 0x49, 0x4e, 0x8a, 0xaa, 0x5e, 0x16, 0x90, 0x9e, + 0x4d, 0xa3, 0xfc, 0xe1, 0x70, 0x97, 0x4d, 0x87, 0x55, 0x9d, 0x7e, 0x26, 0x34, 0x92, 0x4f, 0x6a, + 0xe4, 0x6f, 0x15, 0xb8, 0xbb, 0x5c, 0xc0, 0xcc, 0x63, 0xfd, 0x52, 0x22, 0xbe, 0x0e, 0xf5, 0xb1, + 0xe3, 0x1a, 0x0b, 0x62, 0x56, 0xc7, 0x8e, 0x3b, 0x57, 0xe5, 0x1f, 0x2b, 0x00, 0x7a, 0xe8, 0x8f, + 0x2d, 0x86, 0x96, 0xca, 0xa5, 0xe7, 0x66, 0xb9, 0xcb, 0xce, 0xcd, 0x56, 0x2f, 0x39, 0x37, 0xcb, + 0xc7, 0x43, 0x4b, 0xed, 0xf7, 0x15, 0xd8, 0xa0, 0xbe, 0xc8, 0x2b, 0xac, 0x71, 0xaf, 0x43, 0x91, + 0x1f, 0x96, 0xa7, 0x1e, 0x1c, 0x0b, 0x1c, 0x4b, 0xdf, 0xb1, 0x60, 0xde, 0x71, 0x6d, 0xfc, 0x5c, + 0xc8, 0xc9, 0xe3, 0xfb, 0x1e, 0x85, 0x68, 0x3f, 0xca, 0x01, 0x8a, 0x4a, 0x92, 0x69, 0xe0, 0x5e, + 0x38, 0x05, 0x76, 0xa9, 0x3c, 0xd4, 0x97, 0x8d, 0x38, 0xdc, 0xd2, 0x6d, 0x50, 0xa3, 0xb7, 0x6e, + 0x58, 0x64, 0x16, 0xf1, 0xb0, 0x69, 0x68, 0x5b, 0x17, 0x95, 0xe2, 0x27, 0xfa, 0xf1, 0xe5, 0xba, + 0xc6, 0x69, 0x84, 0x93, 0x14, 0xbd, 0x7e, 0x56, 0x14, 0xe7, 0xb3, 0x4b, 0xae, 0x9f, 0x69, 0xbf, + 0xce, 0x6e, 0x3e, 0x1c, 0x4c, 0x68, 0xb0, 0xe3, 0xf9, 0x5f, 0xf8, 0xad, 0x33, 0xed, 0x1f, 0x15, + 0x76, 0xdd, 0x72, 0xde, 0x40, 0xa6, 0x51, 0xb8, 0xf0, 0x62, 0x1b, 0x82, 0xbc, 0x8d, 0x09, 0x8f, + 0xc4, 0xaa, 0x3a, 0xfb, 0xa6, 0xec, 0x23, 0xde, 0x73, 0x5d, 0xb2, 0x97, 0x62, 0x08, 0xff, 0x43, + 0xd0, 0xb0, 0x63, 0x30, 0xc7, 0x95, 0x2f, 0x2e, 0xd8, 0x37, 0xcb, 0xf3, 0x53, 0xeb, 0xd9, 0x33, + 0x9f, 0x0f, 0x07, 0x59, 0xf3, 0xd0, 0x63, 0xf3, 0xb9, 0x11, 0x06, 0x0b, 0x0b, 0x57, 0xf3, 0x0b, + 0x63, 0xf3, 0xf9, 0x90, 0xa7, 0x09, 0x4e, 0x9d, 0x89, 0x61, 0x9d, 0x60, 0xeb, 0x54, 0xc4, 0x4f, + 0x65, 0x0a, 0x61, 0x27, 0x76, 0xda, 0x9f, 0x88, 0x09, 0x25, 0x04, 0xc9, 0x7a, 0x8d, 0x8c, 0x8a, + 0x32, 0xa2, 0x61, 0xdc, 0x05, 0x02, 0xc1, 0xd8, 0x7c, 0xce, 0x42, 0x3d, 0x21, 0xd5, 0xcc, 0xb5, + 0xb0, 0x6d, 0xd8, 0x96, 0xbc, 0x41, 0x54, 0xe6, 0x90, 0x8e, 0x45, 0xb4, 0xdf, 0x51, 0xe0, 0x4a, + 0xe4, 0x28, 0x88, 0x64, 0x5e, 0xb8, 0x59, 0x06, 0x3e, 0x72, 0x08, 0x59, 0x66, 0x10, 0x96, 0xba, + 0x4c, 0xf8, 0x11, 0xab, 0x0b, 0x7e, 0xc4, 0x9f, 0x2a, 0xb0, 0x19, 0x17, 0xe2, 0xff, 0xc5, 0x8f, + 0x48, 0xf8, 0x3f, 0xab, 0x09, 0xff, 0x47, 0xfb, 0x91, 0x02, 0xb7, 0x98, 0x58, 0x2d, 0xd7, 0x8e, + 0xf9, 0x39, 0x5f, 0x8a, 0x96, 0x42, 0x17, 0x6d, 0x35, 0xea, 0xa2, 0x25, 0x74, 0x97, 0x5f, 0xd0, + 0xdd, 0x7f, 0x29, 0x70, 0x7b, 0x99, 0x90, 0x99, 0xb4, 0xf8, 0x21, 0x5c, 0xe7, 0x62, 0x2e, 0xd7, + 0xe5, 0x16, 0x23, 0x78, 0xbc, 0xa8, 0xd0, 0x8f, 0xe0, 0x06, 0xe1, 0x32, 0xa4, 0xd6, 0xe6, 0x23, + 0x7f, 0x5d, 0x90, 0x3c, 0xbe, 0x6c, 0x40, 0xf2, 0xc9, 0x01, 0x39, 0x61, 0x57, 0x0f, 0x3b, 0x6d, + 0x79, 0x65, 0x2c, 0x7a, 0xc7, 0xe8, 0x25, 0xbd, 0xef, 0xd8, 0x5d, 0xb4, 0xdc, 0xc2, 0x5d, 0xb4, + 0x3f, 0x50, 0xe0, 0x7a, 0x4a, 0x53, 0x59, 0x5f, 0x2a, 0xf0, 0xf7, 0x43, 0xac, 0x9d, 0x82, 0x2e, + 0x4a, 0x91, 0x75, 0x65, 0xf5, 0xa2, 0x75, 0x45, 0xfb, 0xa7, 0x1c, 0xc0, 0x3c, 0x33, 0x89, 0xea, + 0x90, 0xdb, 0x69, 0x0b, 0x8f, 0x20, 0xb7, 0xd3, 0xa6, 0x3e, 0xc7, 0x0e, 0x96, 0x1e, 0x1a, 0xfd, + 0xa4, 0xcb, 0xe0, 0xc0, 0x32, 0xe5, 0x96, 0xcf, 0xbe, 0xd1, 0x5d, 0xa8, 0xb4, 0xbd, 0x89, 0xef, + 0x59, 0x98, 0x10, 0xcf, 0x17, 0x76, 0x14, 0x05, 0x51, 0x31, 0x3b, 0x78, 0x84, 0x03, 0x99, 0xb3, + 0x12, 0x25, 0x5a, 0x93, 0x7f, 0xe9, 0xa6, 0x7b, 0x8c, 0x45, 0xf4, 0x1a, 0x05, 0x51, 0x09, 0xfa, + 0x53, 0x19, 0x1f, 0xd0, 0x4f, 0xd4, 0x84, 0x52, 0xdf, 0xc7, 0x2c, 0xb7, 0x2b, 0x2e, 0xec, 0x84, + 0x65, 0xf4, 0x75, 0xb8, 0xd6, 0xb2, 0x58, 0x34, 0xd7, 0xc7, 0x84, 0x38, 0x63, 0x87, 0x04, 0x0e, + 0x55, 0xfc, 0xa9, 0xb8, 0xba, 0xb3, 0x04, 0x4b, 0xe5, 0xe3, 0x09, 0x26, 0x91, 0x89, 0x17, 0x25, + 0xda, 0x96, 0xee, 0x8d, 0x46, 0x87, 0xa6, 0x75, 0x2a, 0x52, 0xf0, 0x61, 0x59, 0xfb, 0x1b, 0x05, + 0x36, 0xc5, 0x79, 0x96, 0xd8, 0x30, 0xb3, 0x58, 0x4b, 0xf2, 0x44, 0x3f, 0xf7, 0x82, 0x27, 0xfa, + 0x91, 0xed, 0x7b, 0xf5, 0xe2, 0xdb, 0xe3, 0x5a, 0x17, 0xae, 0x26, 0xe4, 0xcc, 0x7a, 0xf0, 0xda, + 0xe4, 0x7c, 0xf6, 0x1c, 0xea, 0x29, 0x79, 0xa3, 0x33, 0x6c, 0x0f, 0xc9, 0x17, 0xfc, 0x10, 0x06, + 0xbd, 0x09, 0xeb, 0xd4, 0xa9, 0xf5, 0x45, 0x03, 0xd2, 0x84, 0xf3, 0x7a, 0x6d, 0x1c, 0x6d, 0x56, + 0x7b, 0x02, 0x37, 0x52, 0xa5, 0xc9, 0xd4, 0xb7, 0x13, 0xb8, 0x31, 0xc0, 0x41, 0xf7, 0x79, 0x80, + 0x7d, 0xd7, 0x1c, 0xcd, 0x67, 0x49, 0x96, 0xbe, 0xdd, 0x8c, 0x3e, 0xb8, 0x13, 0xae, 0xf3, 0xfc, + 0x7d, 0xdd, 0x2e, 0xdc, 0x4c, 0x6f, 0x29, 0x93, 0xdc, 0x9f, 0xc0, 0x8d, 0x9d, 0x2f, 0x48, 0x6e, + 0xed, 0xdb, 0x70, 0x73, 0xe7, 0x0b, 0x93, 0xec, 0x62, 0x2d, 0x3c, 0xb8, 0x0b, 0xe5, 0xf0, 0x51, + 0x2b, 0x5a, 0x83, 0xd5, 0xfe, 0xd3, 0xa1, 0xba, 0x82, 0x00, 0x8a, 0x9d, 0xee, 0x6e, 0x77, 0xd8, + 0x55, 0x95, 0x07, 0xdf, 0xcd, 0x41, 0x39, 0x7c, 0x0e, 0x8a, 0x8a, 0x90, 0x3b, 0x78, 0xa2, 0xae, + 0xa0, 0x0a, 0xac, 0x3d, 0xdd, 0x7f, 0xb2, 0x7f, 0xf0, 0xe9, 0xbe, 0xaa, 0xa0, 0x4d, 0x50, 0xf7, + 0x0f, 0x86, 0xc6, 0xf6, 0xc1, 0xc1, 0x70, 0x30, 0xd4, 0x5b, 0xfd, 0x7e, 0xb7, 0xa3, 0xe6, 0xd0, + 0x15, 0x58, 0x1f, 0x0c, 0x0f, 0xf4, 0xae, 0x31, 0x3c, 0xd8, 0xdb, 0x1e, 0x0c, 0x0f, 0xf6, 0xbb, + 0xea, 0x2a, 0x6a, 0xc0, 0x66, 0x6b, 0x57, 0xef, 0xb6, 0x3a, 0x9f, 0xc5, 0xc9, 0xf3, 0x14, 0xd3, + 0xdb, 0x6f, 0x1f, 0xec, 0xf5, 0x5b, 0xc3, 0xde, 0xf6, 0x6e, 0xd7, 0x78, 0xd6, 0xd5, 0x07, 0xbd, + 0x83, 0x7d, 0xb5, 0x40, 0xd9, 0xeb, 0xdd, 0x9d, 0xde, 0xc1, 0xbe, 0x41, 0x5b, 0x79, 0x7c, 0xf0, + 0x74, 0xbf, 0xa3, 0x16, 0xd1, 0x0d, 0xd8, 0xda, 0xd9, 0x3d, 0xd8, 0x6e, 0xed, 0x1a, 0xed, 0x83, + 0xfd, 0xc7, 0xbd, 0x9d, 0x08, 0x72, 0x8d, 0x56, 0xe9, 0x3c, 0xed, 0xef, 0xf6, 0xda, 0xad, 0x61, + 0xb7, 0x63, 0x74, 0xf7, 0x87, 0xfa, 0x67, 0x6a, 0x89, 0x4a, 0xc4, 0x3e, 0x23, 0xa4, 0x65, 0xb4, + 0x01, 0xb5, 0xde, 0xfe, 0xb3, 0xd6, 0x6e, 0xaf, 0x63, 0x3c, 0x6b, 0xed, 0x3e, 0xed, 0xaa, 0x80, + 0x10, 0xd4, 0x3b, 0xad, 0x61, 0xcb, 0x60, 0xd2, 0xb4, 0x87, 0xdd, 0x8e, 0x5a, 0x79, 0xf0, 0x18, + 0x2a, 0x91, 0xdb, 0xa4, 0xb4, 0x01, 0xd1, 0x7f, 0x63, 0xf0, 0xac, 0x6d, 0xec, 0x1d, 0x74, 0xba, + 0xea, 0x0a, 0x5a, 0x87, 0x4a, 0xbf, 0x33, 0x07, 0x28, 0x48, 0x85, 0x6a, 0xab, 0xdf, 0x9b, 0x43, + 0x72, 0x0f, 0xde, 0x87, 0x4a, 0xe4, 0x6e, 0x17, 0x2a, 0x41, 0x7e, 0xd0, 0x6e, 0xed, 0xf3, 0xba, + 0xad, 0x7e, 0x5f, 0x3f, 0xf8, 0x66, 0x6f, 0xaf, 0x45, 0x15, 0x4f, 0x07, 0xe1, 0xe9, 0xa0, 0xfb, + 0xa4, 0xfb, 0x99, 0x9a, 0x7b, 0xd0, 0x87, 0x7a, 0xdc, 0x1b, 0xa6, 0x03, 0x30, 0x78, 0xda, 0x6e, + 0x77, 0x07, 0x03, 0x3e, 0x1a, 0xc3, 0xde, 0x5e, 0xf7, 0xe0, 0xe9, 0x90, 0xd7, 0x6b, 0xb7, 0xf6, + 0xdb, 0xdd, 0x5d, 0x35, 0x47, 0x11, 0x7a, 0xb7, 0xbf, 0xdb, 0x6a, 0x53, 0xdd, 0xd3, 0xc2, 0xd3, + 0xfd, 0xfd, 0xde, 0xfe, 0x8e, 0x9a, 0x7f, 0xf0, 0xf7, 0x0a, 0x94, 0xd9, 0x7e, 0xf3, 0xc4, 0x71, + 0x6d, 0x5a, 0xe7, 0x20, 0x38, 0xc1, 0x3e, 0x51, 0x57, 0xe8, 0x10, 0xef, 0xb4, 0x55, 0x85, 0x5a, + 0xc3, 0x0e, 0x0e, 0xd4, 0x1c, 0x93, 0xd1, 0x32, 0x5d, 0x75, 0x95, 0xca, 0x18, 0xd9, 0x4c, 0xd4, + 0x3c, 0x33, 0x14, 0xb6, 0x47, 0xa8, 0x05, 0x8a, 0x8c, 0xec, 0x17, 0x6a, 0x91, 0x99, 0xd3, 0x34, + 0x50, 0xd7, 0x50, 0x75, 0xbe, 0x51, 0xa8, 0x25, 0xd4, 0x5c, 0xb6, 0x35, 0xa8, 0x65, 0x26, 0x3b, + 0x5b, 0xf0, 0x55, 0xa0, 0xb5, 0xe4, 0x12, 0xaf, 0x56, 0x1e, 0xfd, 0xf7, 0x16, 0xe4, 0xfa, 0x1d, + 0xb4, 0x07, 0xf5, 0xf8, 0xb5, 0x61, 0x74, 0x23, 0xbc, 0x2d, 0xbd, 0x78, 0x27, 0xb9, 0x79, 0x33, + 0x1d, 0xc9, 0x27, 0x8a, 0xb6, 0x82, 0x5a, 0x00, 0xf3, 0x6b, 0xd6, 0x68, 0x6b, 0xf1, 0xe2, 0x35, + 0x67, 0xd3, 0x58, 0x76, 0x23, 0x5b, 0x5b, 0x41, 0xef, 0xc2, 0xea, 0x90, 0x78, 0x48, 0x44, 0x86, + 0xf3, 0xb7, 0xd0, 0xcd, 0x8d, 0x08, 0x44, 0x52, 0xdf, 0x57, 0xde, 0x55, 0xd0, 0x47, 0x50, 0x0e, + 0x1f, 0x9a, 0x22, 0xf1, 0x08, 0x3e, 0xf9, 0xd2, 0xb7, 0xb9, 0xb5, 0x00, 0x0f, 0x5b, 0xdc, 0x83, + 0x7a, 0xfc, 0xa9, 0xaa, 0xd4, 0x41, 0xea, 0x33, 0x58, 0xa9, 0x83, 0xf4, 0xd7, 0xad, 0xda, 0x0a, + 0xfa, 0x00, 0xd6, 0xc4, 0x73, 0x52, 0x24, 0x56, 0x92, 0xf8, 0xe3, 0xd4, 0xe6, 0xd5, 0x04, 0x34, + 0xac, 0x69, 0xc0, 0x66, 0xda, 0x5b, 0x4f, 0xf4, 0x9a, 0x6c, 0x71, 0xe9, 0x9b, 0xd2, 0xa6, 0x76, + 0x11, 0x49, 0xd8, 0xc0, 0x2f, 0x41, 0x49, 0x3e, 0xc5, 0x44, 0x57, 0xc3, 0x31, 0x88, 0xbe, 0x85, + 0x6c, 0x5e, 0x4b, 0x82, 0xa3, 0x95, 0xe5, 0x93, 0x46, 0x59, 0x39, 0xf1, 0x90, 0x52, 0x56, 0x4e, + 0xbe, 0x7c, 0xd4, 0x56, 0xd0, 0x0e, 0x54, 0xa3, 0x2f, 0xff, 0xd0, 0xf5, 0xb0, 0x99, 0xe4, 0x5b, + 0xc4, 0x66, 0x33, 0x0d, 0x15, 0x1d, 0xac, 0x78, 0x02, 0x5f, 0x0e, 0x56, 0xea, 0xf9, 0x96, 0x1c, + 0xac, 0xf4, 0x9c, 0xbf, 0xb6, 0x82, 0x86, 0xb0, 0x9e, 0xb8, 0x4f, 0x89, 0x6e, 0x46, 0x73, 0x12, + 0x0b, 0x0c, 0x6f, 0x2d, 0xc1, 0x26, 0x2d, 0x32, 0x7c, 0xcf, 0x86, 0xe6, 0x1a, 0x8d, 0x65, 0x85, + 0x9a, 0x5b, 0x0b, 0xf0, 0x50, 0xaa, 0x6d, 0xa8, 0xed, 0xe0, 0xa0, 0xef, 0xe3, 0xb3, 0xec, 0x3c, + 0x1e, 0x33, 0x1e, 0xf3, 0x37, 0x75, 0xa8, 0x99, 0xa0, 0x8d, 0x3c, 0xb4, 0xbb, 0x88, 0x4f, 0x07, + 0x2a, 0x91, 0x97, 0x5c, 0x48, 0x4c, 0xdd, 0xc5, 0x87, 0x72, 0xcd, 0xeb, 0x29, 0x98, 0x90, 0xcb, + 0x47, 0x50, 0x92, 0xf7, 0x06, 0xa5, 0xf1, 0x24, 0x2e, 0x2c, 0x4a, 0xe3, 0x49, 0x5e, 0x2f, 0xd4, + 0x56, 0xbf, 0x97, 0x53, 0xd0, 0x0e, 0x54, 0x22, 0x37, 0xec, 0xa4, 0x14, 0x8b, 0x37, 0x00, 0xa5, + 0x14, 0x29, 0xd7, 0xf1, 0x38, 0xa3, 0x4f, 0xa0, 0x16, 0xbb, 0x85, 0x26, 0xd5, 0x92, 0x76, 0xf3, + 0xae, 0x79, 0x23, 0x15, 0x17, 0x76, 0x6a, 0x00, 0x6a, 0xf2, 0xde, 0x17, 0xba, 0x15, 0x6d, 0x7f, + 0x91, 0xe3, 0xed, 0x65, 0xe8, 0x28, 0xd3, 0xe4, 0x4b, 0x31, 0xc9, 0x74, 0xc9, 0x4b, 0x34, 0xc9, + 0x74, 0xd9, 0x03, 0x33, 0xce, 0x34, 0xf9, 0x2c, 0x4b, 0x32, 0x5d, 0xf2, 0x42, 0x4c, 0x32, 0x5d, + 0xf6, 0x9a, 0x4b, 0x5b, 0xa1, 0xaa, 0x8c, 0xc5, 0xce, 0x52, 0x95, 0x69, 0xe7, 0x3c, 0x52, 0x95, + 0xa9, 0x27, 0x1f, 0x7c, 0x5a, 0xc7, 0x8f, 0x15, 0x22, 0xfb, 0xd0, 0x62, 0x86, 0x3c, 0xb2, 0x0f, + 0xa5, 0x64, 0xa7, 0xb5, 0x15, 0xf4, 0x0c, 0x36, 0x16, 0xd2, 0xfa, 0x48, 0xf4, 0x68, 0xd9, 0xb9, + 0x42, 0xf3, 0xce, 0x52, 0x7c, 0xc8, 0xf7, 0x54, 0x1e, 0x4b, 0x2c, 0xe6, 0xc6, 0xd1, 0x1b, 0xd1, + 0xea, 0x4b, 0x93, 0xfb, 0xcd, 0x37, 0x2f, 0x23, 0x8b, 0xcc, 0xe0, 0xca, 0x3c, 0x83, 0x1b, 0xee, + 0xa6, 0x0b, 0xe9, 0x65, 0xb9, 0x9b, 0x2e, 0x66, 0x7b, 0xc5, 0x6a, 0xd4, 0x81, 0x4a, 0x24, 0x09, + 0x89, 0xe6, 0x9b, 0x6f, 0x22, 0xf1, 0xd9, 0xbc, 0x9e, 0x82, 0x89, 0xcc, 0xe0, 0x72, 0x98, 0x88, + 0x93, 0xeb, 0x51, 0x32, 0x45, 0xd8, 0xdc, 0x5a, 0x80, 0x47, 0x77, 0x80, 0x68, 0xb6, 0x4a, 0xee, + 0x00, 0x29, 0x69, 0x34, 0xb9, 0x03, 0xa4, 0x25, 0xb7, 0xb4, 0x15, 0x84, 0xe1, 0x5a, 0x7a, 0xea, + 0x06, 0xdd, 0x8b, 0xd4, 0x5b, 0x96, 0x7d, 0x6a, 0xbe, 0x7e, 0x31, 0x51, 0xd4, 0x84, 0x16, 0x72, + 0x19, 0x68, 0x3e, 0xd3, 0x52, 0xf3, 0x29, 0xd2, 0x84, 0x96, 0x26, 0x41, 0x38, 0xdf, 0x85, 0xbf, + 0x18, 0x92, 0x7c, 0x97, 0xfd, 0xd5, 0x91, 0xe4, 0xbb, 0xf4, 0xbf, 0x89, 0xf8, 0x14, 0x4f, 0xfe, + 0x51, 0x90, 0x9c, 0xe2, 0x4b, 0xfe, 0x92, 0x48, 0x4e, 0xf1, 0x65, 0xff, 0x2f, 0xa4, 0xad, 0xa0, + 0x6f, 0xc2, 0xc6, 0xc2, 0xff, 0x42, 0x49, 0x61, 0x97, 0xfd, 0x15, 0x95, 0x14, 0x76, 0xe9, 0x1f, + 0x4a, 0x69, 0x2b, 0xef, 0x2a, 0x68, 0x17, 0x6a, 0xb1, 0xd8, 0x5d, 0x2e, 0x1e, 0x69, 0x89, 0x07, + 0xb9, 0x78, 0xa4, 0x06, 0xfb, 0xd4, 0xc8, 0xd1, 0xb7, 0xe4, 0x05, 0xec, 0x68, 0xcc, 0x3c, 0x40, + 0x77, 0xa3, 0xf5, 0xd2, 0x82, 0xfb, 0xe6, 0x6b, 0x17, 0x50, 0x44, 0xfd, 0xb2, 0xb4, 0xd0, 0x56, + 0xfa, 0x65, 0x17, 0x04, 0xd8, 0xd2, 0x2f, 0xbb, 0x28, 0x32, 0xe6, 0x0d, 0xec, 0x5c, 0xd0, 0xc0, + 0xce, 0xe5, 0x0d, 0xec, 0x5c, 0xd8, 0xc0, 0xf6, 0x9b, 0xff, 0xfe, 0x77, 0x25, 0xe5, 0x5f, 0x7f, + 0x72, 0x5b, 0xf9, 0xb7, 0x9f, 0xdc, 0x56, 0x7e, 0xfc, 0x93, 0xdb, 0xca, 0x5f, 0xfe, 0xe7, 0xed, + 0x15, 0x50, 0x3d, 0xff, 0xf8, 0x61, 0xe0, 0x9c, 0x9e, 0x3d, 0x3c, 0x3d, 0x63, 0xff, 0x30, 0x76, + 0x58, 0x64, 0x3f, 0x5f, 0xfb, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x42, 0x88, 0xe9, 0xef, + 0x4c, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -7487,6 +7627,9 @@ const _ = grpc.SupportPackageIsVersion4 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type PDClient interface { + // GetClusterInfo get the information of this cluster. It does not require + // the cluster_id in request matchs the id of this cluster. + GetClusterInfo(ctx context.Context, in *GetClusterInfoRequest, opts ...grpc.CallOption) (*GetClusterInfoResponse, error) // GetMembers get the member list of this cluster. It does not require // the cluster_id in request matchs the id of this cluster. GetMembers(ctx context.Context, in *GetMembersRequest, opts ...grpc.CallOption) (*GetMembersResponse, error) @@ -7537,6 +7680,15 @@ func NewPDClient(cc *grpc.ClientConn) PDClient { return &pDClient{cc} } +func (c *pDClient) GetClusterInfo(ctx context.Context, in *GetClusterInfoRequest, opts ...grpc.CallOption) (*GetClusterInfoResponse, error) { + out := new(GetClusterInfoResponse) + err := c.cc.Invoke(ctx, "/pdpb.PD/GetClusterInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *pDClient) GetMembers(ctx context.Context, in *GetMembersRequest, opts ...grpc.CallOption) (*GetMembersResponse, error) { out := new(GetMembersResponse) err := c.cc.Invoke(ctx, "/pdpb.PD/GetMembers", in, out, opts...) @@ -7997,6 +8149,9 @@ func (c *pDClient) GetExternalTimestamp(ctx context.Context, in *GetExternalTime // PDServer is the server API for PD service. type PDServer interface { + // GetClusterInfo get the information of this cluster. It does not require + // the cluster_id in request matchs the id of this cluster. + GetClusterInfo(context.Context, *GetClusterInfoRequest) (*GetClusterInfoResponse, error) // GetMembers get the member list of this cluster. It does not require // the cluster_id in request matchs the id of this cluster. GetMembers(context.Context, *GetMembersRequest) (*GetMembersResponse, error) @@ -8043,6 +8198,9 @@ type PDServer interface { type UnimplementedPDServer struct { } +func (*UnimplementedPDServer) GetClusterInfo(ctx context.Context, req *GetClusterInfoRequest) (*GetClusterInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetClusterInfo not implemented") +} func (*UnimplementedPDServer) GetMembers(ctx context.Context, req *GetMembersRequest) (*GetMembersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMembers not implemented") } @@ -8162,6 +8320,24 @@ func RegisterPDServer(s *grpc.Server, srv PDServer) { s.RegisterService(&_PD_serviceDesc, srv) } +func _PD_GetClusterInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetClusterInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PDServer).GetClusterInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pdpb.PD/GetClusterInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PDServer).GetClusterInfo(ctx, req.(*GetClusterInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _PD_GetMembers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetMembersRequest) if err := dec(in); err != nil { @@ -8885,6 +9061,10 @@ var _PD_serviceDesc = grpc.ServiceDesc{ ServiceName: "pdpb.PD", HandlerType: (*PDServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "GetClusterInfo", + Handler: _PD_GetClusterInfo_Handler, + }, { MethodName: "GetMembers", Handler: _PD_GetMembers_Handler, @@ -11185,7 +11365,7 @@ func (m *GetMembersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *PeerStats) Marshal() (dAtA []byte, err error) { +func (m *GetClusterInfoRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -11195,12 +11375,12 @@ func (m *PeerStats) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *PeerStats) MarshalTo(dAtA []byte) (int, error) { +func (m *GetClusterInfoRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *PeerStats) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *GetClusterInfoRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -11209,14 +11389,9 @@ func (m *PeerStats) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.DownSeconds != 0 { - i = encodeVarintPdpb(dAtA, i, uint64(m.DownSeconds)) - i-- - dAtA[i] = 0x10 - } - if m.Peer != nil { + if m.Header != nil { { - size, err := m.Peer.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -11229,7 +11404,7 @@ func (m *PeerStats) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *RegionHeartbeatRequest) Marshal() (dAtA []byte, err error) { +func (m *GetClusterInfoResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -11239,12 +11414,12 @@ func (m *RegionHeartbeatRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RegionHeartbeatRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *GetClusterInfoResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *RegionHeartbeatRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *GetClusterInfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -11253,11 +11428,112 @@ func (m *RegionHeartbeatRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.ApproximateKvSize != 0 { - i = encodeVarintPdpb(dAtA, i, uint64(m.ApproximateKvSize)) - i-- - dAtA[i] = 0x1 - i-- + if len(m.ServiceModes) > 0 { + dAtA52 := make([]byte, len(m.ServiceModes)*10) + var j51 int + for _, num := range m.ServiceModes { + for num >= 1<<7 { + dAtA52[j51] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j51++ + } + dAtA52[j51] = uint8(num) + j51++ + } + i -= j51 + copy(dAtA[i:], dAtA52[:j51]) + i = encodeVarintPdpb(dAtA, i, uint64(j51)) + i-- + dAtA[i] = 0x12 + } + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PeerStats) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PeerStats) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PeerStats) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.DownSeconds != 0 { + i = encodeVarintPdpb(dAtA, i, uint64(m.DownSeconds)) + i-- + dAtA[i] = 0x10 + } + if m.Peer != nil { + { + size, err := m.Peer.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RegionHeartbeatRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RegionHeartbeatRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RegionHeartbeatRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.ApproximateKvSize != 0 { + i = encodeVarintPdpb(dAtA, i, uint64(m.ApproximateKvSize)) + i-- + dAtA[i] = 0x1 + i-- dAtA[i] = 0x90 } if m.CpuUsage != 0 { @@ -11924,20 +12200,20 @@ func (m *AskSplitResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.XXX_unrecognized) } if len(m.NewPeerIds) > 0 { - dAtA72 := make([]byte, len(m.NewPeerIds)*10) - var j71 int + dAtA76 := make([]byte, len(m.NewPeerIds)*10) + var j75 int for _, num := range m.NewPeerIds { for num >= 1<<7 { - dAtA72[j71] = uint8(uint64(num)&0x7f | 0x80) + dAtA76[j75] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j71++ + j75++ } - dAtA72[j71] = uint8(num) - j71++ + dAtA76[j75] = uint8(num) + j75++ } - i -= j71 - copy(dAtA[i:], dAtA72[:j71]) - i = encodeVarintPdpb(dAtA, i, uint64(j71)) + i -= j75 + copy(dAtA[i:], dAtA76[:j75]) + i = encodeVarintPdpb(dAtA, i, uint64(j75)) i-- dAtA[i] = 0x1a } @@ -12144,20 +12420,20 @@ func (m *SplitID) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.XXX_unrecognized) } if len(m.NewPeerIds) > 0 { - dAtA81 := make([]byte, len(m.NewPeerIds)*10) - var j80 int + dAtA85 := make([]byte, len(m.NewPeerIds)*10) + var j84 int for _, num := range m.NewPeerIds { for num >= 1<<7 { - dAtA81[j80] = uint8(uint64(num)&0x7f | 0x80) + dAtA85[j84] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j80++ + j84++ } - dAtA81[j80] = uint8(num) - j80++ + dAtA85[j84] = uint8(num) + j84++ } - i -= j80 - copy(dAtA[i:], dAtA81[:j80]) - i = encodeVarintPdpb(dAtA, i, uint64(j80)) + i -= j84 + copy(dAtA[i:], dAtA85[:j84]) + i = encodeVarintPdpb(dAtA, i, uint64(j84)) i-- dAtA[i] = 0x12 } @@ -12521,20 +12797,20 @@ func (m *StoreStats) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0xc0 } if len(m.DamagedRegionsId) > 0 { - dAtA88 := make([]byte, len(m.DamagedRegionsId)*10) - var j87 int + dAtA92 := make([]byte, len(m.DamagedRegionsId)*10) + var j91 int for _, num := range m.DamagedRegionsId { for num >= 1<<7 { - dAtA88[j87] = uint8(uint64(num)&0x7f | 0x80) + dAtA92[j91] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j87++ + j91++ } - dAtA88[j87] = uint8(num) - j87++ + dAtA92[j91] = uint8(num) + j91++ } - i -= j87 - copy(dAtA[i:], dAtA88[:j87]) - i = encodeVarintPdpb(dAtA, i, uint64(j87)) + i -= j91 + copy(dAtA[i:], dAtA92[:j91]) + i = encodeVarintPdpb(dAtA, i, uint64(j91)) i-- dAtA[i] = 0x1 i-- @@ -13097,38 +13373,38 @@ func (m *ForceLeader) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.XXX_unrecognized) } if len(m.EnterForceLeaders) > 0 { - dAtA98 := make([]byte, len(m.EnterForceLeaders)*10) - var j97 int + dAtA102 := make([]byte, len(m.EnterForceLeaders)*10) + var j101 int for _, num := range m.EnterForceLeaders { for num >= 1<<7 { - dAtA98[j97] = uint8(uint64(num)&0x7f | 0x80) + dAtA102[j101] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j97++ + j101++ } - dAtA98[j97] = uint8(num) - j97++ + dAtA102[j101] = uint8(num) + j101++ } - i -= j97 - copy(dAtA[i:], dAtA98[:j97]) - i = encodeVarintPdpb(dAtA, i, uint64(j97)) + i -= j101 + copy(dAtA[i:], dAtA102[:j101]) + i = encodeVarintPdpb(dAtA, i, uint64(j101)) i-- dAtA[i] = 0x12 } if len(m.FailedStores) > 0 { - dAtA100 := make([]byte, len(m.FailedStores)*10) - var j99 int + dAtA104 := make([]byte, len(m.FailedStores)*10) + var j103 int for _, num := range m.FailedStores { for num >= 1<<7 { - dAtA100[j99] = uint8(uint64(num)&0x7f | 0x80) + dAtA104[j103] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j99++ + j103++ } - dAtA100[j99] = uint8(num) - j99++ + dAtA104[j103] = uint8(num) + j103++ } - i -= j99 - copy(dAtA[i:], dAtA100[:j99]) - i = encodeVarintPdpb(dAtA, i, uint64(j99)) + i -= j103 + copy(dAtA[i:], dAtA104[:j103]) + i = encodeVarintPdpb(dAtA, i, uint64(j103)) i-- dAtA[i] = 0xa } @@ -13191,20 +13467,20 @@ func (m *RecoveryPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } if len(m.Tombstones) > 0 { - dAtA103 := make([]byte, len(m.Tombstones)*10) - var j102 int + dAtA107 := make([]byte, len(m.Tombstones)*10) + var j106 int for _, num := range m.Tombstones { for num >= 1<<7 { - dAtA103[j102] = uint8(uint64(num)&0x7f | 0x80) + dAtA107[j106] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j102++ + j106++ } - dAtA103[j102] = uint8(num) - j102++ + dAtA107[j106] = uint8(num) + j106++ } - i -= j102 - copy(dAtA[i:], dAtA103[:j102]) - i = encodeVarintPdpb(dAtA, i, uint64(j102)) + i -= j106 + copy(dAtA[i:], dAtA107[:j106]) + i = encodeVarintPdpb(dAtA, i, uint64(j106)) i-- dAtA[i] = 0x1a } @@ -13264,20 +13540,20 @@ func (m *AwakenRegions) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.XXX_unrecognized) } if len(m.AbnormalStores) > 0 { - dAtA105 := make([]byte, len(m.AbnormalStores)*10) - var j104 int + dAtA109 := make([]byte, len(m.AbnormalStores)*10) + var j108 int for _, num := range m.AbnormalStores { for num >= 1<<7 { - dAtA105[j104] = uint8(uint64(num)&0x7f | 0x80) + dAtA109[j108] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j104++ + j108++ } - dAtA105[j104] = uint8(num) - j104++ + dAtA109[j108] = uint8(num) + j108++ } - i -= j104 - copy(dAtA[i:], dAtA105[:j104]) - i = encodeVarintPdpb(dAtA, i, uint64(j104)) + i -= j108 + copy(dAtA[i:], dAtA109[:j108]) + i = encodeVarintPdpb(dAtA, i, uint64(j108)) i-- dAtA[i] = 0xa } @@ -13406,20 +13682,20 @@ func (m *ScatterRegionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x38 } if len(m.RegionsId) > 0 { - dAtA111 := make([]byte, len(m.RegionsId)*10) - var j110 int + dAtA115 := make([]byte, len(m.RegionsId)*10) + var j114 int for _, num := range m.RegionsId { for num >= 1<<7 { - dAtA111[j110] = uint8(uint64(num)&0x7f | 0x80) + dAtA115[j114] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j110++ + j114++ } - dAtA111[j110] = uint8(num) - j110++ + dAtA115[j114] = uint8(num) + j114++ } - i -= j110 - copy(dAtA[i:], dAtA111[:j110]) - i = encodeVarintPdpb(dAtA, i, uint64(j110)) + i -= j114 + copy(dAtA[i:], dAtA115[:j114]) + i = encodeVarintPdpb(dAtA, i, uint64(j114)) i-- dAtA[i] = 0x32 } @@ -14310,20 +14586,20 @@ func (m *SplitRegionsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.XXX_unrecognized) } if len(m.RegionsId) > 0 { - dAtA133 := make([]byte, len(m.RegionsId)*10) - var j132 int + dAtA137 := make([]byte, len(m.RegionsId)*10) + var j136 int for _, num := range m.RegionsId { for num >= 1<<7 { - dAtA133[j132] = uint8(uint64(num)&0x7f | 0x80) + dAtA137[j136] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j132++ + j136++ } - dAtA133[j132] = uint8(num) - j132++ + dAtA137[j136] = uint8(num) + j136++ } - i -= j132 - copy(dAtA[i:], dAtA133[:j132]) - i = encodeVarintPdpb(dAtA, i, uint64(j132)) + i -= j136 + copy(dAtA[i:], dAtA137[:j136]) + i = encodeVarintPdpb(dAtA, i, uint64(j136)) i-- dAtA[i] = 0x1a } @@ -14432,20 +14708,20 @@ func (m *SplitAndScatterRegionsResponse) MarshalToSizedBuffer(dAtA []byte) (int, copy(dAtA[i:], m.XXX_unrecognized) } if len(m.RegionsId) > 0 { - dAtA137 := make([]byte, len(m.RegionsId)*10) - var j136 int + dAtA141 := make([]byte, len(m.RegionsId)*10) + var j140 int for _, num := range m.RegionsId { for num >= 1<<7 { - dAtA137[j136] = uint8(uint64(num)&0x7f | 0x80) + dAtA141[j140] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j136++ + j140++ } - dAtA137[j136] = uint8(num) - j136++ + dAtA141[j140] = uint8(num) + j140++ } - i -= j136 - copy(dAtA[i:], dAtA137[:j136]) - i = encodeVarintPdpb(dAtA, i, uint64(j136)) + i -= j140 + copy(dAtA[i:], dAtA141[:j140]) + i = encodeVarintPdpb(dAtA, i, uint64(j140)) i-- dAtA[i] = 0x22 } @@ -15936,6 +16212,45 @@ func (m *GetMembersResponse) Size() (n int) { return n } +func (m *GetClusterInfoRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovPdpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *GetClusterInfoResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovPdpb(uint64(l)) + } + if len(m.ServiceModes) > 0 { + l = 0 + for _, e := range m.ServiceModes { + l += sovPdpb(uint64(e)) + } + n += 1 + sovPdpb(uint64(l)) + l + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *PeerStats) Size() (n int) { if m == nil { return 0 @@ -22964,6 +23279,249 @@ func (m *GetMembersResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *GetClusterInfoRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetClusterInfoRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetClusterInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &ResponseHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPdpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPdpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetClusterInfoResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetClusterInfoResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetClusterInfoResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &ResponseHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType == 0 { + var v ServiceMode + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= ServiceMode(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ServiceModes = append(m.ServiceModes, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + if elementCount != 0 && len(m.ServiceModes) == 0 { + m.ServiceModes = make([]ServiceMode, 0, elementCount) + } + for iNdEx < postIndex { + var v ServiceMode + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= ServiceMode(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ServiceModes = append(m.ServiceModes, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field ServiceModes", wireType) + } + default: + iNdEx = preIndex + skippy, err := skipPdpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPdpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *PeerStats) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pkg/tsopb/tsopb.pb.go b/pkg/tsopb/tsopb.pb.go index 1439911..be38b28 100644 --- a/pkg/tsopb/tsopb.pb.go +++ b/pkg/tsopb/tsopb.pb.go @@ -393,6 +393,73 @@ func (m *TsoResponse) GetTimestamp() *pdpb.Timestamp { return nil } +type Participant struct { + // name is the unique name of the TSO participant. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // id is the unique id of the TSO participant. + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + // listen_urls is the serivce endpoint list in the url format. + // listen_urls[0] is primary service endpoint. + ListenUrls []string `protobuf:"bytes,3,rep,name=listen_urls,json=listenUrls,proto3" json:"listen_urls,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Participant) Reset() { *m = Participant{} } +func (m *Participant) String() string { return proto.CompactTextString(m) } +func (*Participant) ProtoMessage() {} +func (*Participant) Descriptor() ([]byte, []int) { + return fileDescriptor_ad96434e4f0d3c2b, []int{5} +} +func (m *Participant) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Participant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Participant.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Participant) XXX_Merge(src proto.Message) { + xxx_messageInfo_Participant.Merge(m, src) +} +func (m *Participant) XXX_Size() int { + return m.Size() +} +func (m *Participant) XXX_DiscardUnknown() { + xxx_messageInfo_Participant.DiscardUnknown(m) +} + +var xxx_messageInfo_Participant proto.InternalMessageInfo + +func (m *Participant) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Participant) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +func (m *Participant) GetListenUrls() []string { + if m != nil { + return m.ListenUrls + } + return nil +} + func init() { proto.RegisterEnum("tsopb.ErrorType", ErrorType_name, ErrorType_value) proto.RegisterType((*RequestHeader)(nil), "tsopb.RequestHeader") @@ -400,44 +467,48 @@ func init() { proto.RegisterType((*Error)(nil), "tsopb.Error") proto.RegisterType((*TsoRequest)(nil), "tsopb.TsoRequest") proto.RegisterType((*TsoResponse)(nil), "tsopb.TsoResponse") + proto.RegisterType((*Participant)(nil), "tsopb.Participant") } func init() { proto.RegisterFile("tsopb.proto", fileDescriptor_ad96434e4f0d3c2b) } var fileDescriptor_ad96434e4f0d3c2b = []byte{ - // 509 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0xcd, 0x6e, 0xd3, 0x4c, - 0x14, 0x86, 0x33, 0xf9, 0x6b, 0x7d, 0xfc, 0xa5, 0x71, 0x46, 0xf9, 0xa4, 0x28, 0x88, 0x50, 0x59, - 0x08, 0x45, 0x15, 0x0d, 0xc8, 0xac, 0x58, 0xba, 0x4a, 0x54, 0xac, 0x46, 0x76, 0x35, 0x75, 0x8b, - 0x58, 0x45, 0xae, 0x67, 0x64, 0xa2, 0x34, 0x19, 0xd7, 0x33, 0xae, 0x94, 0x25, 0x77, 0xd1, 0x25, - 0x4b, 0x2e, 0x85, 0x25, 0x4b, 0x96, 0x28, 0xdc, 0x08, 0xf2, 0xd8, 0x4e, 0x53, 0x36, 0xb0, 0x60, - 0x95, 0x39, 0xcf, 0x7b, 0x74, 0xde, 0xf3, 0x13, 0x83, 0x2e, 0x05, 0x8f, 0xaf, 0x47, 0x71, 0xc2, - 0x25, 0xc7, 0x0d, 0x15, 0xf4, 0x21, 0xa6, 0x25, 0xea, 0x77, 0x23, 0x1e, 0x71, 0xf5, 0x7c, 0x95, - 0xbd, 0x0a, 0xda, 0x4e, 0x52, 0x21, 0xd5, 0x33, 0x07, 0xe6, 0x3d, 0x82, 0x16, 0x61, 0xb7, 0x29, - 0x13, 0xf2, 0x1d, 0x0b, 0x28, 0x4b, 0xf0, 0x53, 0x80, 0xf0, 0x26, 0x15, 0x92, 0x25, 0xb3, 0x39, - 0xed, 0xa1, 0x43, 0x34, 0xac, 0x13, 0xad, 0x20, 0x0e, 0xc5, 0x4f, 0x40, 0x13, 0x6c, 0x45, 0x73, - 0xb5, 0xaa, 0xd4, 0xfd, 0x1c, 0x38, 0x14, 0x3f, 0x03, 0x7d, 0xc1, 0xd6, 0x22, 0x0e, 0x42, 0x96, - 0xc9, 0xb5, 0x43, 0x34, 0x6c, 0x11, 0x28, 0x91, 0x43, 0xf1, 0x11, 0x74, 0xb6, 0x09, 0x51, 0xc2, - 0xd3, 0x38, 0x4b, 0xab, 0xab, 0xb4, 0x76, 0x29, 0x9c, 0x66, 0xdc, 0xa1, 0xe6, 0x67, 0x04, 0x07, - 0x84, 0x89, 0x98, 0xaf, 0x04, 0xfb, 0xbb, 0xde, 0x4c, 0x68, 0xb0, 0x24, 0xe1, 0x89, 0xea, 0x4b, - 0xb7, 0xfe, 0x1b, 0xe5, 0x3b, 0x9a, 0x64, 0x8c, 0xe4, 0xd2, 0xbf, 0x6d, 0xf1, 0x14, 0x1a, 0xaa, - 0x38, 0x7e, 0x0e, 0x75, 0xb9, 0x8e, 0x99, 0x6a, 0xe9, 0xc0, 0x32, 0x76, 0x8d, 0xfd, 0x75, 0xcc, - 0x88, 0x52, 0x71, 0x0f, 0xf6, 0x96, 0x4c, 0x88, 0x20, 0x62, 0xaa, 0x43, 0x8d, 0x94, 0xa1, 0x79, - 0x0b, 0xe0, 0x0b, 0x5e, 0x1c, 0x02, 0xbf, 0x84, 0xe6, 0x47, 0x35, 0xb0, 0xaa, 0xa7, 0x5b, 0xdd, - 0xa2, 0xde, 0xa3, 0x43, 0x91, 0x22, 0x07, 0x77, 0xa1, 0x11, 0xf2, 0x74, 0x25, 0x55, 0xcd, 0x16, - 0xc9, 0x83, 0x6c, 0x4e, 0x1a, 0xce, 0x6e, 0x78, 0x18, 0xc8, 0x39, 0x5f, 0xa9, 0x39, 0x35, 0x02, - 0x34, 0x9c, 0x16, 0xc4, 0xfc, 0x84, 0x40, 0x57, 0x9e, 0xf9, 0x86, 0xf1, 0xf1, 0x6f, 0xa6, 0xff, - 0x6f, 0x4d, 0x77, 0x4f, 0xf0, 0x07, 0xd7, 0x63, 0xd0, 0xe4, 0x7c, 0xc9, 0x84, 0x0c, 0x96, 0xb1, - 0xf2, 0xd4, 0xad, 0xf6, 0x48, 0xfd, 0x2b, 0xfd, 0x12, 0x93, 0x87, 0x8c, 0xa3, 0x10, 0xb4, 0xed, - 0x8e, 0x70, 0x13, 0xaa, 0xde, 0x99, 0x51, 0xc1, 0x3a, 0xec, 0x5d, 0xba, 0x67, 0xae, 0xf7, 0xde, - 0x35, 0x10, 0xee, 0x82, 0xe1, 0x7a, 0xfe, 0xec, 0xc4, 0xf3, 0xfc, 0x0b, 0x9f, 0xd8, 0xe7, 0xe7, - 0x93, 0xb1, 0x51, 0xc5, 0x3d, 0xe8, 0xda, 0x53, 0x32, 0xb1, 0xc7, 0x1f, 0x1e, 0x2b, 0x35, 0xdc, - 0x81, 0x96, 0xe3, 0x5e, 0xd9, 0x53, 0x67, 0x3c, 0xbb, 0xb2, 0xa7, 0x97, 0x13, 0xa3, 0x6e, 0xbd, - 0x85, 0x9a, 0x7f, 0xe1, 0x61, 0x0b, 0x6a, 0xbe, 0xe0, 0xb8, 0x53, 0x8c, 0xf5, 0xb0, 0xee, 0x3e, - 0xde, 0x45, 0xf9, 0xb0, 0x66, 0x65, 0x88, 0x5e, 0xa3, 0x93, 0x17, 0xdf, 0xbf, 0xec, 0xa3, 0xaf, - 0x9b, 0x01, 0xfa, 0xb6, 0x19, 0xa0, 0x1f, 0x9b, 0x01, 0xba, 0xff, 0x39, 0xa8, 0x80, 0xc1, 0x93, - 0x68, 0x24, 0xe7, 0x8b, 0xbb, 0xd1, 0xe2, 0x4e, 0x7d, 0x45, 0xd7, 0x4d, 0xf5, 0xf3, 0xe6, 0x57, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x7c, 0x52, 0x03, 0x9b, 0x95, 0x03, 0x00, 0x00, + // 556 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0x3f, 0x6f, 0xda, 0x4e, + 0x18, 0xc7, 0x73, 0x18, 0x92, 0xf8, 0xf1, 0x8f, 0x60, 0x4e, 0xfc, 0x24, 0x44, 0x55, 0x8a, 0xac, + 0xaa, 0x42, 0x51, 0x43, 0x2b, 0x77, 0xea, 0x48, 0x04, 0x4a, 0xad, 0x20, 0x8c, 0x2e, 0x26, 0x55, + 0x27, 0xe4, 0xd8, 0x27, 0x6a, 0x01, 0x3e, 0xe7, 0xee, 0x1c, 0x89, 0xb1, 0xef, 0x22, 0x63, 0xc7, + 0xbe, 0x94, 0x8e, 0x1d, 0x3b, 0x56, 0xf4, 0x8d, 0x54, 0x3e, 0x1b, 0x42, 0xba, 0xb4, 0x43, 0x27, + 0x3f, 0xf7, 0xf9, 0x3e, 0x7a, 0xfe, 0x1b, 0x0c, 0x29, 0x58, 0x72, 0xd3, 0x4b, 0x38, 0x93, 0x0c, + 0x57, 0xd4, 0xa3, 0x05, 0x49, 0xb8, 0x45, 0xad, 0xc6, 0x9c, 0xcd, 0x99, 0x32, 0x5f, 0x65, 0x56, + 0x41, 0x6b, 0x3c, 0x15, 0x52, 0x99, 0x39, 0xb0, 0xee, 0x11, 0x54, 0x09, 0xbd, 0x4d, 0xa9, 0x90, + 0xef, 0xa8, 0x1f, 0x52, 0x8e, 0x9f, 0x02, 0x04, 0xcb, 0x54, 0x48, 0xca, 0x67, 0x51, 0xd8, 0x44, + 0x1d, 0xd4, 0x2d, 0x13, 0xbd, 0x20, 0x4e, 0x88, 0x9f, 0x80, 0x2e, 0x68, 0x1c, 0xe6, 0x6a, 0x49, + 0xa9, 0xc7, 0x39, 0x70, 0x42, 0xfc, 0x0c, 0x8c, 0x05, 0x5d, 0x8b, 0xc4, 0x0f, 0x68, 0x26, 0x6b, + 0x1d, 0xd4, 0xad, 0x12, 0xd8, 0x22, 0x27, 0xc4, 0xa7, 0x50, 0xdf, 0x39, 0xcc, 0x39, 0x4b, 0x93, + 0xcc, 0xad, 0xac, 0xdc, 0x6a, 0x5b, 0xe1, 0x22, 0xe3, 0x4e, 0x68, 0x7d, 0x46, 0x70, 0x42, 0xa8, + 0x48, 0x58, 0x2c, 0xe8, 0xdf, 0xd5, 0x66, 0x41, 0x85, 0x72, 0xce, 0xb8, 0xaa, 0xcb, 0xb0, 0xff, + 0xeb, 0xe5, 0x33, 0x1a, 0x66, 0x8c, 0xe4, 0xd2, 0xbf, 0x2d, 0xf1, 0x02, 0x2a, 0x2a, 0x38, 0x7e, + 0x0e, 0x65, 0xb9, 0x4e, 0xa8, 0x2a, 0xe9, 0xc4, 0x36, 0xf7, 0x13, 0x7b, 0xeb, 0x84, 0x12, 0xa5, + 0xe2, 0x26, 0x1c, 0xad, 0xa8, 0x10, 0xfe, 0x9c, 0xaa, 0x0a, 0x75, 0xb2, 0x7d, 0x5a, 0xb7, 0x00, + 0x9e, 0x60, 0xc5, 0x22, 0xf0, 0x4b, 0x38, 0xfc, 0xa8, 0x1a, 0x56, 0xf1, 0x0c, 0xbb, 0x51, 0xc4, + 0x7b, 0xb4, 0x28, 0x52, 0xf8, 0xe0, 0x06, 0x54, 0x02, 0x96, 0xc6, 0x52, 0xc5, 0xac, 0x92, 0xfc, + 0x91, 0xf5, 0x19, 0x06, 0xb3, 0x25, 0x0b, 0x7c, 0x19, 0xb1, 0x58, 0xf5, 0xa9, 0x13, 0x08, 0x83, + 0x51, 0x41, 0xac, 0x4f, 0x08, 0x0c, 0x95, 0x33, 0x9f, 0x30, 0x3e, 0xfb, 0x2d, 0xe9, 0xff, 0xbb, + 0xa4, 0xfb, 0x2b, 0xf8, 0x43, 0xd6, 0x33, 0xd0, 0x65, 0xb4, 0xa2, 0x42, 0xfa, 0xab, 0x44, 0xe5, + 0x34, 0xec, 0x5a, 0x4f, 0x5d, 0xa5, 0xb7, 0xc5, 0xe4, 0xc1, 0xc3, 0x22, 0x60, 0x4c, 0x7c, 0x2e, + 0xa3, 0x20, 0x4a, 0xfc, 0x58, 0x62, 0x0c, 0xe5, 0xd8, 0x5f, 0xe5, 0x53, 0xd4, 0x89, 0xb2, 0xf1, + 0x09, 0x94, 0x76, 0x87, 0x56, 0x8a, 0xd4, 0x89, 0x2d, 0x23, 0x21, 0x69, 0x3c, 0x4b, 0xf9, 0x52, + 0x34, 0xb5, 0x8e, 0x96, 0xf5, 0x95, 0xa3, 0x29, 0x5f, 0x8a, 0xd3, 0x00, 0xf4, 0xdd, 0xdc, 0xf1, + 0x21, 0x94, 0xdc, 0x4b, 0xf3, 0x00, 0x1b, 0x70, 0x34, 0x1d, 0x5f, 0x8e, 0xdd, 0xf7, 0x63, 0x13, + 0xe1, 0x06, 0x98, 0x63, 0xd7, 0x9b, 0x9d, 0xbb, 0xae, 0x77, 0xe5, 0x91, 0xfe, 0x64, 0x32, 0x1c, + 0x98, 0x25, 0xdc, 0x84, 0x46, 0x7f, 0x44, 0x86, 0xfd, 0xc1, 0x87, 0xc7, 0x8a, 0x86, 0xeb, 0x50, + 0x75, 0xc6, 0xd7, 0xfd, 0x91, 0x33, 0x98, 0x5d, 0xf7, 0x47, 0xd3, 0xa1, 0x59, 0xb6, 0xdf, 0x82, + 0xe6, 0x5d, 0xb9, 0xd8, 0x06, 0xcd, 0x13, 0x0c, 0xd7, 0x8b, 0x51, 0x3d, 0xac, 0xb0, 0x85, 0xf7, + 0x51, 0x3e, 0x40, 0xeb, 0xa0, 0x8b, 0x5e, 0xa3, 0xf3, 0x17, 0xdf, 0xbf, 0x1c, 0xa3, 0xaf, 0x9b, + 0x36, 0xfa, 0xb6, 0x69, 0xa3, 0x1f, 0x9b, 0x36, 0xba, 0xff, 0xd9, 0x3e, 0x00, 0x93, 0xf1, 0x79, + 0x4f, 0x46, 0x8b, 0xbb, 0xde, 0xe2, 0x4e, 0xfd, 0x99, 0x37, 0x87, 0xea, 0xf3, 0xe6, 0x57, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xe8, 0xbd, 0x91, 0x64, 0xe9, 0x03, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -799,6 +870,54 @@ func (m *TsoResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *Participant) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Participant) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Participant) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.ListenUrls) > 0 { + for iNdEx := len(m.ListenUrls) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ListenUrls[iNdEx]) + copy(dAtA[i:], m.ListenUrls[iNdEx]) + i = encodeVarintTsopb(dAtA, i, uint64(len(m.ListenUrls[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if m.Id != 0 { + i = encodeVarintTsopb(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x10 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintTsopb(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintTsopb(dAtA []byte, offset int, v uint64) int { offset -= sovTsopb(v) base := offset @@ -924,6 +1043,31 @@ func (m *TsoResponse) Size() (n int) { return n } +func (m *Participant) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovTsopb(uint64(l)) + } + if m.Id != 0 { + n += 1 + sovTsopb(uint64(m.Id)) + } + if len(m.ListenUrls) > 0 { + for _, s := range m.ListenUrls { + l = len(s) + n += 1 + l + sovTsopb(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func sovTsopb(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -1583,6 +1727,140 @@ func (m *TsoResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *Participant) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Participant: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Participant: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTsopb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTsopb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListenUrls", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTsopb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTsopb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTsopb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ListenUrls = append(m.ListenUrls, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTsopb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTsopb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipTsopb(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/proto/pdpb.proto b/proto/pdpb.proto index b977594..56ede1e 100644 --- a/proto/pdpb.proto +++ b/proto/pdpb.proto @@ -17,6 +17,10 @@ option (rustproto.lite_runtime_all) = true; option java_package = "org.tikv.kvproto"; service PD { + // GetClusterInfo get the information of this cluster. It does not require + // the cluster_id in request matchs the id of this cluster. + rpc GetClusterInfo(GetClusterInfoRequest) returns (GetClusterInfoResponse) {} + // GetMembers get the member list of this cluster. It does not require // the cluster_id in request matchs the id of this cluster. rpc GetMembers(GetMembersRequest) returns (GetMembersResponse) {} @@ -389,6 +393,22 @@ message GetMembersResponse { map tso_allocator_leaders = 5; } +message GetClusterInfoRequest { + ResponseHeader header = 1; +} + +enum ServiceMode { + UNKNOWN_SVC_MODE = 0; + PD_SVC_MODE = 1; + API_SVC_MODE = 2; +} + +message GetClusterInfoResponse { + ResponseHeader header = 1; + + repeated ServiceMode serviceModes = 2; +} + message PeerStats { metapb.Peer peer = 1; uint64 down_seconds = 2; diff --git a/proto/tsopb.proto b/proto/tsopb.proto index af62d25..a0533e0 100644 --- a/proto/tsopb.proto +++ b/proto/tsopb.proto @@ -66,3 +66,13 @@ message TsoResponse { uint32 count = 2; pdpb.Timestamp timestamp = 3; } + +message Participant { + // name is the unique name of the TSO participant. + string name = 1; + // id is the unique id of the TSO participant. + uint64 id = 2; + // listen_urls is the serivce endpoint list in the url format. + // listen_urls[0] is primary service endpoint. + repeated string listen_urls = 3; +} diff --git a/scripts/proto.lock b/scripts/proto.lock index cf1e326..77d4736 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -11550,6 +11550,22 @@ } ] }, + { + "name": "ServiceMode", + "enum_fields": [ + { + "name": "UNKNOWN_SVC_MODE" + }, + { + "name": "PD_SVC_MODE", + "integer": 1 + }, + { + "name": "API_SVC_MODE", + "integer": 2 + } + ] + }, { "name": "CheckPolicy", "enum_fields": [ @@ -12387,6 +12403,32 @@ } ] }, + { + "name": "GetClusterInfoRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + } + ] + }, + { + "name": "GetClusterInfoResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "serviceModes", + "type": "ServiceMode", + "is_repeated": true + } + ] + }, { "name": "PeerStats", "fields": [ @@ -13889,6 +13931,11 @@ { "name": "PD", "rpcs": [ + { + "name": "GetClusterInfo", + "in_type": "GetClusterInfoRequest", + "out_type": "GetClusterInfoResponse" + }, { "name": "GetMembers", "in_type": "GetMembersRequest", @@ -18122,6 +18169,27 @@ "type": "pdpb.Timestamp" } ] + }, + { + "name": "Participant", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "id", + "type": "uint64" + }, + { + "id": 3, + "name": "listen_urls", + "type": "string", + "is_repeated": true + } + ] } ], "services": [ -- Gitee From df1ae63d0cfe2f5e01d2016a1839a7e88ef2da38 Mon Sep 17 00:00:00 2001 From: Xinye Tao Date: Mon, 20 Mar 2023 16:16:54 +0800 Subject: [PATCH 20/44] add source state to commit merge request (#1080) Signed-off-by: tabokie --- pkg/kvrpcpb/kvrpcpb.pb.go | 8 +- pkg/raft_cmdpb/raft_cmdpb.pb.go | 433 ++++++++++++++++++-------------- pkg/tracepb/tracepb.pb.go | 1 - proto/raft_cmdpb.proto | 3 + scripts/proto.lock | 8 + 5 files changed, 263 insertions(+), 190 deletions(-) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index f2452aa..de4d128 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -1888,10 +1888,9 @@ type CheckTxnStatusResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Error *KeyError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Three kinds of transaction status: - // - // locked: lock_ttl > 0 - // committed: commit_version > 0 - // rollbacked: lock_ttl = 0 && commit_version = 0 + // locked: lock_ttl > 0 + // committed: commit_version > 0 + // rollbacked: lock_ttl = 0 && commit_version = 0 LockTtl uint64 `protobuf:"varint,3,opt,name=lock_ttl,json=lockTtl,proto3" json:"lock_ttl,omitempty"` CommitVersion uint64 `protobuf:"varint,4,opt,name=commit_version,json=commitVersion,proto3" json:"commit_version,omitempty"` // The action performed by TiKV (and why if the action is to rollback). @@ -9474,7 +9473,6 @@ func (m *RawChecksumResponse) GetTotalBytes() uint64 { type CompactError struct { // Types that are valid to be assigned to Error: - // // *CompactError_ErrInvalidStartKey // *CompactError_ErrPhysicalTableNotExist // *CompactError_ErrCompactInProgress diff --git a/pkg/raft_cmdpb/raft_cmdpb.pb.go b/pkg/raft_cmdpb/raft_cmdpb.pb.go index 3f83b62..bfa52a3 100644 --- a/pkg/raft_cmdpb/raft_cmdpb.pb.go +++ b/pkg/raft_cmdpb/raft_cmdpb.pb.go @@ -15,6 +15,7 @@ import ( import_sstpb "github.com/pingcap/kvproto/pkg/import_sstpb" kvrpcpb "github.com/pingcap/kvproto/pkg/kvrpcpb" metapb "github.com/pingcap/kvproto/pkg/metapb" + raft_serverpb "github.com/pingcap/kvproto/pkg/raft_serverpb" ) // Reference imports to suppress errors if they are not otherwise used. @@ -2229,12 +2230,14 @@ func (m *FinishFlashbackResponse) XXX_DiscardUnknown() { var xxx_messageInfo_FinishFlashbackResponse proto.InternalMessageInfo type CommitMergeRequest struct { - Source *metapb.Region `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` - Commit uint64 `protobuf:"varint,2,opt,name=commit,proto3" json:"commit,omitempty"` - Entries []*eraftpb.Entry `protobuf:"bytes,3,rep,name=entries,proto3" json:"entries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Source *metapb.Region `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + Commit uint64 `protobuf:"varint,2,opt,name=commit,proto3" json:"commit,omitempty"` + Entries []*eraftpb.Entry `protobuf:"bytes,3,rep,name=entries,proto3" json:"entries,omitempty"` + // Used in v2. When it's present, `source` and `commit` will not be set. + SourceState *raft_serverpb.RegionLocalState `protobuf:"bytes,4,opt,name=source_state,json=sourceState,proto3" json:"source_state,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *CommitMergeRequest) Reset() { *m = CommitMergeRequest{} } @@ -2291,6 +2294,13 @@ func (m *CommitMergeRequest) GetEntries() []*eraftpb.Entry { return nil } +func (m *CommitMergeRequest) GetSourceState() *raft_serverpb.RegionLocalState { + if m != nil { + return m.SourceState + } + return nil +} + type CommitMergeResponse struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -3662,176 +3672,179 @@ func init() { func init() { proto.RegisterFile("raft_cmdpb.proto", fileDescriptor_661741b5e7485333) } var fileDescriptor_661741b5e7485333 = []byte{ - // 2702 bytes of a gzipped FileDescriptorProto + // 2740 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x59, 0x4b, 0x73, 0xdc, 0xc6, - 0x11, 0xd6, 0x3e, 0xb8, 0x8f, 0xde, 0x07, 0xc1, 0xe1, 0x8a, 0x5c, 0x49, 0x36, 0x45, 0x41, 0xb2, - 0x42, 0x3b, 0x29, 0x26, 0xa6, 0x6d, 0xd9, 0x55, 0x56, 0xfc, 0x90, 0x48, 0xc9, 0x8a, 0x2c, 0x85, - 0x1e, 0x32, 0x76, 0x25, 0x55, 0x2e, 0x14, 0x0c, 0xcc, 0x92, 0x28, 0xee, 0x02, 0xf0, 0x00, 0x4b, - 0x7a, 0xcb, 0x55, 0x39, 0xe5, 0x0f, 0xe4, 0xe6, 0x9f, 0x90, 0x6b, 0xfe, 0x45, 0x2a, 0xa7, 0x24, - 0xe5, 0x43, 0x8e, 0x29, 0xfb, 0x96, 0x7f, 0x90, 0x5b, 0x6a, 0x5e, 0xc0, 0x0c, 0x80, 0xd5, 0xc3, - 0xa7, 0xc5, 0xf4, 0xf4, 0x7c, 0xd3, 0xd3, 0x3d, 0xf3, 0x75, 0xcf, 0x2c, 0x58, 0xd4, 0x9d, 0xa4, - 0x8e, 0x37, 0xf3, 0xe3, 0xaf, 0x76, 0x63, 0x1a, 0xa5, 0x11, 0x82, 0x5c, 0x72, 0xb5, 0x3f, 0x23, - 0xa9, 0xab, 0x7a, 0xae, 0x0e, 0x08, 0xa5, 0x11, 0xd5, 0x9b, 0xee, 0x24, 0xcd, 0x9b, 0x67, 0xe7, - 0x34, 0xf6, 0xb2, 0x26, 0x0a, 0x66, 0x71, 0x44, 0x53, 0x27, 0x49, 0x72, 0x95, 0x55, 0x3a, 0x4f, - 0x52, 0xfe, 0x29, 0x04, 0xf6, 0x2e, 0xc0, 0x43, 0x92, 0x62, 0xf2, 0xf5, 0x9c, 0x24, 0x29, 0x1a, - 0x42, 0xdd, 0x9b, 0x8c, 0x6b, 0xdb, 0xb5, 0x9d, 0x2e, 0xae, 0x7b, 0x13, 0x64, 0x41, 0xe3, 0x8c, - 0x2c, 0xc6, 0xf5, 0xed, 0xda, 0x4e, 0x1f, 0xb3, 0x4f, 0xfb, 0x26, 0xf4, 0xb8, 0x7e, 0x12, 0x47, - 0x61, 0x42, 0xd0, 0x08, 0x56, 0xce, 0xdd, 0xe9, 0x9c, 0xf0, 0x31, 0x7d, 0x2c, 0x1a, 0xf6, 0x3e, - 0xc0, 0xe1, 0xfc, 0xc5, 0x41, 0x73, 0x94, 0x86, 0x8e, 0x32, 0x80, 0x1e, 0x47, 0x11, 0x53, 0xd9, - 0x6f, 0xc2, 0x60, 0x9f, 0x4c, 0x49, 0x4a, 0x5e, 0xdc, 0x58, 0x0b, 0x86, 0x6a, 0x88, 0x04, 0xf9, - 0x16, 0x90, 0x94, 0xb8, 0xe1, 0xc9, 0x52, 0xa4, 0x6b, 0xd0, 0x4d, 0x52, 0x97, 0xa6, 0x4e, 0x8e, - 0xd7, 0xe1, 0x82, 0xc7, 0x64, 0x81, 0x36, 0xa1, 0x4d, 0x42, 0x9f, 0x77, 0x09, 0x73, 0x5b, 0x24, - 0xf4, 0x59, 0xc7, 0x75, 0xe8, 0x85, 0x51, 0x1a, 0x4c, 0x16, 0x4e, 0x14, 0x4e, 0x17, 0xe3, 0xe6, - 0x76, 0x6d, 0xa7, 0x83, 0x41, 0x88, 0x7e, 0x1b, 0x4e, 0x17, 0xf6, 0x65, 0x58, 0x37, 0x26, 0x97, - 0x36, 0x0d, 0xa0, 0x77, 0x14, 0xba, 0xb1, 0x34, 0xc6, 0xbe, 0x03, 0x7d, 0xd1, 0x94, 0x2e, 0xbe, - 0x0d, 0x2d, 0x4a, 0x4e, 0x82, 0x28, 0xe4, 0x06, 0xf6, 0xf6, 0x86, 0xbb, 0x72, 0x4b, 0x60, 0x2e, - 0xc5, 0xb2, 0xd7, 0x7e, 0x02, 0xab, 0x87, 0x94, 0x5c, 0xd0, 0x20, 0xf7, 0x90, 0xf4, 0x48, 0xad, - 0xc2, 0xd3, 0x75, 0xcd, 0xd3, 0x08, 0x41, 0x73, 0x1a, 0x79, 0x67, 0x72, 0x3d, 0xfc, 0xdb, 0x46, - 0x60, 0xe5, 0x70, 0xd2, 0xd2, 0xf7, 0xc1, 0x7a, 0x14, 0x9e, 0x90, 0x24, 0x3d, 0x3a, 0x3a, 0x56, - 0x73, 0xfc, 0x0c, 0x1a, 0x49, 0x92, 0x4a, 0xdb, 0x2e, 0xef, 0x1a, 0x7b, 0xee, 0xe8, 0xe8, 0xf8, - 0x09, 0x49, 0x5d, 0xcc, 0x34, 0xec, 0x75, 0x58, 0xd3, 0x06, 0x4b, 0x44, 0x07, 0x2c, 0x4c, 0x5c, - 0xff, 0x51, 0xe8, 0x93, 0x6f, 0x14, 0xe2, 0x15, 0x10, 0xce, 0x76, 0xd2, 0x84, 0xc3, 0x36, 0x71, - 0x9b, 0xb7, 0x8f, 0x13, 0xf4, 0x2b, 0x80, 0x33, 0xb2, 0x70, 0x28, 0xf3, 0x5f, 0x32, 0xae, 0x6f, - 0x37, 0x76, 0x7a, 0x7b, 0x6b, 0xbb, 0x6a, 0xdb, 0x3f, 0x26, 0x0b, 0xe1, 0xd9, 0xee, 0x99, 0xfc, - 0x4a, 0xec, 0x2f, 0x61, 0x4d, 0x9b, 0x40, 0xba, 0xf4, 0x55, 0x00, 0x4a, 0x5c, 0xdf, 0x09, 0x98, - 0x54, 0xce, 0xd1, 0xa5, 0x4a, 0x0d, 0xbd, 0x0e, 0x2d, 0xe6, 0x02, 0xe2, 0x73, 0x2f, 0xe9, 0x33, - 0x7c, 0x1a, 0x79, 0x67, 0x8f, 0xc2, 0x49, 0x84, 0xa5, 0x82, 0xfd, 0x63, 0x03, 0xda, 0xca, 0xee, - 0x5d, 0xe8, 0x78, 0x33, 0xdf, 0x49, 0x17, 0xb1, 0x38, 0x0e, 0xc3, 0xbd, 0xf5, 0x5d, 0xed, 0x6c, - 0xdf, 0x9f, 0xf9, 0xc7, 0x8b, 0x98, 0xe0, 0xb6, 0x27, 0x3e, 0xd0, 0x0e, 0x34, 0x4e, 0x48, 0x2a, - 0xe7, 0xd8, 0xd0, 0x55, 0xf3, 0x13, 0x89, 0x99, 0x0a, 0xd3, 0x8c, 0xe7, 0x29, 0xdf, 0x51, 0x05, - 0xcd, 0xfc, 0x98, 0x61, 0xa6, 0x82, 0xde, 0x84, 0x96, 0xcf, 0xb7, 0xd8, 0x78, 0x85, 0x2b, 0x5f, - 0xd1, 0x95, 0x8d, 0xe3, 0x83, 0xa5, 0x22, 0xfa, 0x39, 0x34, 0x93, 0xd0, 0x8d, 0xc7, 0x2d, 0x3e, - 0x60, 0x53, 0x1f, 0xa0, 0x6d, 0x4b, 0xcc, 0x95, 0xd0, 0xbb, 0xd0, 0x89, 0xe5, 0xae, 0x18, 0xb7, - 0xf9, 0x80, 0x6b, 0x86, 0x39, 0xe6, 0x06, 0xc4, 0x99, 0x32, 0xfa, 0x18, 0xfa, 0x62, 0x3e, 0x11, - 0xbc, 0x71, 0x87, 0x0f, 0xde, 0xaa, 0x30, 0x4f, 0x3b, 0x98, 0xb8, 0xe7, 0xe7, 0x32, 0xf4, 0x3e, - 0x40, 0xc0, 0x37, 0x10, 0xdb, 0x5d, 0xe3, 0x2e, 0x07, 0x78, 0x45, 0x07, 0x28, 0xee, 0x4d, 0xdc, - 0x15, 0xfa, 0x47, 0x49, 0xca, 0x06, 0x6b, 0x21, 0x87, 0xf2, 0xe0, 0xe2, 0x36, 0xd4, 0x36, 0x84, - 0xfd, 0xdf, 0x06, 0x74, 0xb2, 0xcd, 0xf3, 0xb2, 0x61, 0x7e, 0x5d, 0x0f, 0xf3, 0x66, 0x29, 0xcc, - 0x02, 0x55, 0xc4, 0xf9, 0x75, 0x3d, 0xce, 0x9b, 0xa5, 0x38, 0x2b, 0x55, 0x16, 0xe8, 0xbd, 0x42, - 0xa0, 0xaf, 0x56, 0x05, 0x5a, 0x0e, 0x50, 0x91, 0xfe, 0x85, 0x11, 0xe9, 0x71, 0x39, 0xd2, 0x52, - 0x5f, 0x84, 0xfa, 0xbd, 0x52, 0xa8, 0x5f, 0xa9, 0x0e, 0xb5, 0x1c, 0x95, 0xc7, 0xfa, 0x23, 0x60, - 0x71, 0x2b, 0x84, 0xfa, 0xfa, 0xd2, 0x50, 0xcb, 0xf1, 0xc0, 0xc7, 0x88, 0x50, 0xdf, 0xad, 0x08, - 0xf5, 0xab, 0x4b, 0x42, 0x2d, 0x87, 0x6b, 0xb1, 0xbe, 0x5b, 0x11, 0xeb, 0x57, 0x97, 0xc4, 0x5a, - 0x8d, 0xce, 0x83, 0x1d, 0xc1, 0xda, 0xfd, 0x53, 0x66, 0xc5, 0x21, 0x21, 0x54, 0x9d, 0xed, 0xf7, - 0xa0, 0xe7, 0x71, 0xa1, 0x1e, 0xf7, 0xcd, 0x5d, 0x95, 0x7f, 0xef, 0x47, 0xe1, 0x44, 0x0c, 0xe2, - 0xb1, 0x07, 0x2f, 0xfb, 0x46, 0xdb, 0xd0, 0x8c, 0x09, 0xa1, 0x32, 0xfe, 0x7d, 0x45, 0xde, 0x1c, - 0x9c, 0xf7, 0xd8, 0x77, 0x01, 0xe9, 0x13, 0xbe, 0x24, 0xed, 0x3f, 0x85, 0xf5, 0x7c, 0xf4, 0xe7, - 0x7b, 0xca, 0xe0, 0x77, 0xa1, 0x2d, 0x8c, 0x60, 0x1c, 0xda, 0x28, 0x3a, 0xa0, 0xb4, 0x40, 0xac, - 0xb4, 0xed, 0x0f, 0x60, 0x64, 0xe2, 0xbd, 0xa4, 0x3d, 0xdf, 0xd5, 0xa0, 0x7f, 0x14, 0x4f, 0x83, - 0x2c, 0xfd, 0xb3, 0x64, 0xca, 0xda, 0x4e, 0x9e, 0x8a, 0x3a, 0x5c, 0xc0, 0x72, 0xa6, 0x0d, 0x83, - 0x90, 0x5c, 0x38, 0x62, 0xac, 0x13, 0x08, 0xc6, 0x6d, 0xe2, 0x5e, 0x48, 0x2e, 0x04, 0xee, 0x23, - 0x1f, 0x6d, 0x43, 0x9f, 0xe9, 0x30, 0x5f, 0x39, 0x81, 0x9f, 0x8c, 0x1b, 0xdb, 0x8d, 0x9d, 0x26, - 0x86, 0x90, 0x5c, 0x30, 0x13, 0x1f, 0xf9, 0x09, 0x7a, 0x0d, 0xfa, 0x34, 0x38, 0x39, 0x4d, 0x1d, - 0x9f, 0xd0, 0xe0, 0x9c, 0x88, 0xd4, 0x7b, 0xaf, 0x3e, 0xae, 0xe1, 0x1e, 0x97, 0xef, 0x73, 0xb1, - 0xfd, 0x7b, 0x18, 0x48, 0xcb, 0xe4, 0x9a, 0x6c, 0x68, 0x4e, 0xc9, 0x24, 0x5d, 0xb2, 0x22, 0xde, - 0x87, 0x6e, 0xc1, 0x0a, 0xc7, 0x90, 0x01, 0x2c, 0x2a, 0x89, 0x4e, 0x7b, 0x0a, 0x6b, 0xf7, 0xdc, - 0xd4, 0x3b, 0x35, 0x56, 0xfe, 0x36, 0x74, 0xa8, 0xf8, 0x54, 0x41, 0x30, 0xcf, 0x9c, 0xa6, 0x8b, - 0x33, 0x4d, 0x74, 0xa3, 0xb0, 0x98, 0x3a, 0xaf, 0x23, 0x8c, 0x85, 0x7c, 0x00, 0x48, 0x9f, 0x4d, - 0xae, 0x66, 0x07, 0xda, 0xc2, 0x8f, 0x6a, 0xb6, 0xa2, 0xad, 0xaa, 0xdb, 0xfe, 0x73, 0x0d, 0xd6, - 0xee, 0x47, 0xb3, 0xd8, 0xf5, 0xd2, 0x4f, 0xa3, 0x13, 0x65, 0xee, 0x4d, 0x18, 0x78, 0x42, 0x68, - 0x24, 0xc6, 0xbe, 0x14, 0x8a, 0xdc, 0x78, 0x03, 0x54, 0xdb, 0x49, 0x09, 0x9d, 0xa9, 0x78, 0x49, - 0xd9, 0x31, 0xa1, 0x33, 0xf4, 0x36, 0x6c, 0x9c, 0x47, 0x29, 0xa1, 0x0e, 0x25, 0xf1, 0x34, 0xf0, - 0xdc, 0x94, 0xa8, 0xa3, 0xd8, 0xe0, 0xca, 0x23, 0xde, 0x8b, 0xb3, 0x4e, 0x71, 0xec, 0x46, 0x80, - 0x74, 0x93, 0x64, 0x7d, 0xf0, 0x25, 0x5c, 0x3e, 0xa6, 0x6e, 0x98, 0x4c, 0x08, 0xfd, 0x94, 0xb8, - 0x7e, 0x7e, 0x20, 0xd5, 0xb1, 0xaa, 0x2d, 0x3b, 0x56, 0xc8, 0x86, 0x15, 0xf6, 0xab, 0xca, 0x04, - 0x53, 0x45, 0x74, 0xd9, 0x63, 0xd8, 0x28, 0xc2, 0xcb, 0x89, 0x77, 0x85, 0x39, 0xf3, 0x94, 0x7c, - 0xe2, 0x26, 0xa7, 0x6a, 0xd6, 0x31, 0xb4, 0xbd, 0x28, 0x4c, 0xc9, 0x37, 0xa9, 0xdc, 0xc9, 0xaa, - 0x69, 0x7f, 0x01, 0x6b, 0x9f, 0x13, 0x1a, 0x4c, 0x16, 0xba, 0xfa, 0x08, 0x56, 0x74, 0x4f, 0x8a, - 0x06, 0xab, 0xb6, 0x4e, 0xdd, 0xe4, 0x54, 0x96, 0x60, 0xfc, 0x5b, 0x07, 0x6e, 0x98, 0xc0, 0x23, - 0x40, 0x3a, 0xb0, 0x34, 0xef, 0x0f, 0xb0, 0x7e, 0x48, 0x49, 0xec, 0x52, 0xf2, 0x84, 0xd0, 0xbc, - 0x90, 0xbd, 0x06, 0xdd, 0x59, 0x10, 0x1a, 0xe1, 0xeb, 0xcc, 0x82, 0x50, 0x84, 0xee, 0x36, 0xb4, - 0x52, 0x97, 0xe6, 0xb9, 0xa8, 0x74, 0x82, 0x45, 0xaf, 0xbd, 0x01, 0x23, 0x13, 0x5b, 0xce, 0xf9, - 0x36, 0x6c, 0x4a, 0xf9, 0x83, 0xa9, 0x9b, 0x9c, 0x7e, 0xe5, 0x7a, 0x67, 0xcf, 0x2f, 0xd9, 0xec, - 0xab, 0x30, 0x2e, 0x8f, 0x92, 0x88, 0x63, 0xd8, 0x78, 0x10, 0x84, 0x41, 0x72, 0x5a, 0x04, 0xb4, - 0xaf, 0xc0, 0x66, 0xa9, 0x47, 0x0e, 0xfa, 0x23, 0x8f, 0xcc, 0x2c, 0x48, 0x8d, 0x95, 0xdf, 0x86, - 0x56, 0x12, 0xcd, 0xa9, 0x47, 0x96, 0xd1, 0x93, 0xe8, 0x45, 0x1b, 0xd0, 0xf2, 0xf8, 0x68, 0xb9, - 0x73, 0x65, 0x8b, 0x1d, 0x1e, 0x12, 0xa6, 0x34, 0x20, 0x82, 0x5f, 0x18, 0x80, 0x22, 0xf7, 0x83, - 0x30, 0xa5, 0x0b, 0xac, 0xba, 0x59, 0x15, 0x6f, 0xcc, 0x9f, 0x6d, 0x98, 0x11, 0x8e, 0xa6, 0x53, - 0x66, 0xaa, 0x61, 0x58, 0x3e, 0x61, 0x4d, 0x9f, 0xd0, 0xde, 0x84, 0xcb, 0x05, 0x7d, 0x09, 0xf4, - 0x14, 0x46, 0x47, 0x17, 0x41, 0xea, 0x9d, 0x7e, 0x11, 0xa4, 0x21, 0x49, 0x12, 0x05, 0xb4, 0x09, - 0x6d, 0x49, 0x81, 0x0a, 0x29, 0xe6, 0xf4, 0xc7, 0xaa, 0xd9, 0x20, 0x71, 0x2e, 0x84, 0xb6, 0xa4, - 0x8b, 0x6e, 0x90, 0xc8, 0xe1, 0xf6, 0x29, 0x5c, 0x11, 0x64, 0x51, 0x05, 0xfa, 0x18, 0xac, 0x84, - 0xcb, 0xd5, 0xf8, 0x2c, 0x5f, 0x6c, 0x1b, 0x54, 0x55, 0x31, 0x16, 0xaf, 0x26, 0xba, 0x94, 0x24, - 0xf6, 0x2b, 0x70, 0xb5, 0x6a, 0xa6, 0xcc, 0x41, 0xeb, 0xbf, 0x8b, 0x7d, 0x37, 0x25, 0x0f, 0x3d, - 0x3d, 0xb3, 0x1a, 0xcb, 0x6a, 0xe4, 0xcb, 0xb2, 0xff, 0xd5, 0x81, 0xfe, 0xc7, 0xfe, 0x2c, 0x08, - 0x95, 0xe6, 0x5b, 0xa5, 0xc2, 0xcb, 0xa0, 0x53, 0xae, 0x5b, 0xaa, 0xbe, 0x3e, 0xc8, 0x12, 0xb7, - 0x96, 0x85, 0x9f, 0x93, 0x0b, 0x65, 0xfa, 0x66, 0x22, 0xb4, 0x07, 0x2b, 0x3c, 0x59, 0xf1, 0x63, - 0xf9, 0x0c, 0x02, 0xe7, 0xd9, 0x46, 0xa8, 0xf2, 0x39, 0x25, 0x47, 0x4e, 0xa3, 0x13, 0x59, 0xce, - 0x99, 0x73, 0x16, 0xc9, 0x17, 0x83, 0x97, 0x89, 0xd0, 0x6f, 0x60, 0x35, 0x95, 0xac, 0xe4, 0x4c, - 0x39, 0x2d, 0xc9, 0x22, 0xef, 0x86, 0x8e, 0x51, 0xc9, 0x8b, 0x78, 0x98, 0x1a, 0x62, 0x66, 0xcb, - 0x39, 0xa7, 0x0f, 0x87, 0x73, 0x4e, 0xab, 0x6c, 0x4b, 0x89, 0xb6, 0x30, 0x9c, 0x67, 0x22, 0xb4, - 0x0f, 0x83, 0x58, 0x1c, 0x5f, 0x67, 0xc6, 0xb6, 0xa9, 0x2c, 0x05, 0xaf, 0x17, 0x4a, 0xc1, 0x22, - 0x13, 0xe1, 0x7e, 0xac, 0x09, 0x59, 0xf5, 0x2f, 0xb6, 0xbd, 0x04, 0xa9, 0xa8, 0xfe, 0xcb, 0x67, - 0x9a, 0x67, 0x15, 0x25, 0x43, 0x0f, 0x61, 0x48, 0xe5, 0x79, 0x91, 0x20, 0xa2, 0x2c, 0x34, 0xf6, - 0x69, 0xd5, 0x09, 0xc4, 0x03, 0xaa, 0x4b, 0xd1, 0x3b, 0xd0, 0xe2, 0x61, 0x4a, 0xaa, 0x2a, 0xc3, - 0x52, 0x12, 0xc7, 0x52, 0x19, 0x1d, 0xc0, 0x50, 0xdb, 0x48, 0xce, 0xf9, 0xde, 0xb8, 0x57, 0xf6, - 0x44, 0x45, 0x25, 0x86, 0xfb, 0x9e, 0x26, 0x94, 0x9e, 0x60, 0x79, 0x45, 0x04, 0xa4, 0x5f, 0xe9, - 0x89, 0x42, 0xde, 0x11, 0xf9, 0x55, 0xca, 0xd0, 0x21, 0xac, 0xa9, 0x90, 0x4c, 0x14, 0x3b, 0x8e, - 0x07, 0x1c, 0xe7, 0x66, 0x45, 0x58, 0x8a, 0xdc, 0x8a, 0xad, 0xb8, 0xd0, 0x81, 0x9e, 0x80, 0x35, - 0xe1, 0x6c, 0xab, 0x01, 0x0e, 0x39, 0xa0, 0xad, 0x03, 0x56, 0x73, 0x35, 0x5e, 0x9d, 0x98, 0x72, - 0x74, 0x58, 0x41, 0x2a, 0xab, 0x1c, 0xee, 0xb5, 0xb2, 0xaf, 0x5f, 0x84, 0x59, 0xd0, 0x43, 0x58, - 0x9d, 0x73, 0xee, 0x70, 0x4e, 0x3c, 0x47, 0x64, 0x75, 0xab, 0xec, 0xfd, 0x0a, 0x7a, 0xc1, 0x83, - 0xb9, 0x26, 0x4c, 0xec, 0xef, 0xdb, 0x30, 0x90, 0xa4, 0x22, 0xab, 0xa6, 0x9f, 0xc4, 0x2a, 0x1f, - 0x56, 0xb1, 0xca, 0xd6, 0x32, 0x56, 0x51, 0x17, 0x1c, 0x8d, 0x56, 0xde, 0x32, 0x69, 0xe5, 0x4a, - 0x05, 0xad, 0x88, 0x51, 0x3a, 0xaf, 0x7c, 0x58, 0xc5, 0x2b, 0x5b, 0xcb, 0x78, 0x25, 0x9b, 0x35, - 0x27, 0x96, 0xc7, 0xcb, 0x88, 0xc5, 0x7e, 0x16, 0xb1, 0x48, 0xa0, 0x22, 0xb3, 0x7c, 0x58, 0xc5, - 0x2c, 0x5b, 0xcb, 0x98, 0x45, 0x59, 0xa3, 0x51, 0xcb, 0x41, 0x35, 0xb5, 0x6c, 0x2f, 0xa7, 0x16, - 0x09, 0x62, 0x72, 0xcb, 0xbd, 0x4a, 0x6e, 0xb9, 0xbe, 0x94, 0x5b, 0x24, 0x88, 0x41, 0x2e, 0x9f, - 0x2c, 0x21, 0x97, 0x1b, 0xcf, 0x20, 0x17, 0x89, 0x53, 0x60, 0x97, 0x3b, 0x05, 0x76, 0xd9, 0x5a, - 0xc6, 0x2e, 0xea, 0x6e, 0x2e, 0xe9, 0xe5, 0xc1, 0x12, 0x7a, 0xd9, 0x5e, 0x4e, 0x2f, 0xca, 0x1b, - 0x06, 0xbf, 0x7c, 0x56, 0x45, 0x0e, 0x82, 0x64, 0x6e, 0x3d, 0x9b, 0x1c, 0x24, 0x5c, 0x99, 0x1d, - 0x9e, 0x56, 0xb0, 0x43, 0x05, 0xdd, 0x2c, 0xa9, 0xd7, 0xca, 0xf4, 0xf0, 0x59, 0x05, 0x3d, 0x08, - 0xb6, 0xb9, 0xfd, 0x3c, 0x7a, 0x50, 0x90, 0xc5, 0xca, 0xe3, 0x32, 0xac, 0x8b, 0x3a, 0xcf, 0x48, - 0x86, 0xf6, 0x5d, 0x18, 0x99, 0x62, 0x79, 0xe6, 0x6f, 0x41, 0x4b, 0x6e, 0xff, 0xaa, 0xeb, 0x83, - 0xec, 0xcb, 0x41, 0xf7, 0x49, 0xea, 0x06, 0x53, 0x05, 0xea, 0x2b, 0x50, 0x25, 0x7e, 0xb9, 0x0b, - 0xb2, 0x36, 0x79, 0xfd, 0x19, 0x93, 0xff, 0xb3, 0x06, 0x83, 0xa3, 0xd4, 0x4d, 0xe7, 0x89, 0x76, - 0x9b, 0x2c, 0x10, 0x95, 0xc9, 0x1a, 0x5c, 0xb9, 0xc4, 0x54, 0xfb, 0x30, 0x90, 0x97, 0x6b, 0x63, - 0xd2, 0xeb, 0xe6, 0x73, 0x48, 0xc9, 0x75, 0xb8, 0x4f, 0x35, 0xa1, 0x86, 0xe2, 0xf3, 0x45, 0x4b, - 0xda, 0xaa, 0x40, 0x31, 0x7c, 0xa5, 0x50, 0x84, 0xd0, 0xfe, 0xbe, 0x06, 0x43, 0xb5, 0x26, 0xe9, - 0xb4, 0x9f, 0xb6, 0xa8, 0x83, 0xea, 0x45, 0x6d, 0x2f, 0x5f, 0x94, 0x3a, 0x2b, 0xc6, 0xaa, 0x0e, - 0xaa, 0x57, 0xb5, 0xbd, 0x7c, 0x55, 0x26, 0x8c, 0x5c, 0xd6, 0xdf, 0x1b, 0xb0, 0x86, 0xdd, 0x89, - 0xaa, 0x18, 0x3e, 0x11, 0xe0, 0xd7, 0xa0, 0x9b, 0xbf, 0x6a, 0xc8, 0xab, 0x18, 0xcd, 0x9f, 0x34, - 0x9e, 0xf3, 0x28, 0x84, 0xae, 0x43, 0x8f, 0xbf, 0x61, 0x7d, 0x3d, 0x8f, 0xe8, 0x7c, 0xc6, 0x2d, - 0xeb, 0x60, 0xfe, 0xac, 0xf5, 0x19, 0x97, 0xb0, 0x5b, 0xe4, 0x7c, 0x1e, 0xf8, 0x3c, 0x0b, 0xf4, - 0x31, 0xff, 0x46, 0x77, 0x40, 0x5a, 0xe6, 0x90, 0x38, 0xf2, 0x4e, 0x25, 0xb9, 0xaf, 0x9b, 0x1b, - 0xf1, 0x80, 0x75, 0xe1, 0x1e, 0xcd, 0x1b, 0x0c, 0x8b, 0x5f, 0xe6, 0x5b, 0xdc, 0x4c, 0xfe, 0xcd, - 0xaf, 0x74, 0x8b, 0xd0, 0xe3, 0x99, 0xa6, 0xcd, 0x67, 0x6f, 0xb3, 0x36, 0x4b, 0x23, 0x37, 0xd8, - 0x34, 0xfc, 0xf6, 0xee, 0x30, 0x83, 0x38, 0xe3, 0x76, 0x18, 0x22, 0x97, 0x61, 0xe2, 0xfa, 0xe8, - 0x26, 0x0c, 0xdc, 0x38, 0x9e, 0x06, 0xd9, 0xd5, 0xbf, 0x2b, 0xde, 0x12, 0xa4, 0x50, 0x5c, 0x48, - 0x47, 0xb0, 0x32, 0x99, 0xba, 0x27, 0x82, 0x2a, 0x9b, 0x58, 0x34, 0x98, 0xe3, 0xd8, 0x87, 0xe3, - 0xbb, 0xa9, 0xcb, 0x49, 0xb0, 0x8f, 0x3b, 0x4c, 0xb0, 0xef, 0xa6, 0x2e, 0xfa, 0x25, 0x74, 0x62, - 0x1a, 0x44, 0x34, 0x48, 0x17, 0x9c, 0xd5, 0x86, 0x7b, 0xeb, 0xd9, 0xe3, 0x3c, 0x63, 0x79, 0x37, - 0xf4, 0x0f, 0x69, 0x80, 0x33, 0x25, 0xb4, 0x0b, 0xeb, 0x94, 0x88, 0xbb, 0x9f, 0x73, 0x42, 0xa3, - 0x79, 0xec, 0x84, 0xee, 0x8c, 0x70, 0xfe, 0xea, 0xe2, 0x35, 0xd5, 0xf5, 0x90, 0xf5, 0x3c, 0x75, - 0x67, 0xc4, 0xfe, 0x1a, 0x90, 0x88, 0xa5, 0x08, 0xb5, 0x0c, 0xe6, 0x2d, 0x58, 0xe1, 0xff, 0xbc, - 0x65, 0x47, 0x5b, 0xfd, 0x0f, 0x77, 0xc0, 0x7e, 0xb1, 0xe8, 0xcc, 0x42, 0x52, 0xd7, 0x42, 0x72, - 0x03, 0xfa, 0xde, 0x9c, 0x52, 0x12, 0xca, 0xf7, 0x92, 0x86, 0x7c, 0x2f, 0x11, 0xb2, 0x63, 0x42, - 0x67, 0xf6, 0xff, 0x6a, 0x30, 0x64, 0x73, 0xde, 0x9f, 0xf9, 0xea, 0xac, 0xbf, 0x03, 0xad, 0x53, - 0x9d, 0xa0, 0xcc, 0xd7, 0xcb, 0xe2, 0x5e, 0xc3, 0x52, 0x99, 0x79, 0x27, 0x7b, 0x70, 0x12, 0xaf, - 0x1e, 0xeb, 0xe6, 0x5e, 0x2e, 0xbe, 0x35, 0xfd, 0x1a, 0x06, 0x2e, 0x2b, 0x70, 0x1c, 0x29, 0xa9, - 0xba, 0xe5, 0xe8, 0x77, 0x30, 0xdc, 0x77, 0xf5, 0x1b, 0xd9, 0x47, 0x30, 0x4c, 0xf8, 0x09, 0xcd, - 0xc6, 0x37, 0x2b, 0xca, 0x19, 0x9d, 0xc5, 0xf0, 0x20, 0xd1, 0x9b, 0xf6, 0x9f, 0xea, 0xb0, 0x9a, - 0xad, 0x5d, 0x72, 0xc2, 0x9d, 0xc2, 0xe2, 0xb7, 0xca, 0x8b, 0xd7, 0x83, 0x93, 0xad, 0x7e, 0x8f, - 0x9d, 0x38, 0xd1, 0xa3, 0x96, 0x3f, 0x32, 0x97, 0x9f, 0x3f, 0xf6, 0x4a, 0x35, 0xb6, 0x02, 0xe5, - 0x00, 0x21, 0xaa, 0x2a, 0xc8, 0x8c, 0x82, 0x11, 0x0f, 0x5c, 0xa3, 0x7e, 0xbc, 0x0f, 0xab, 0x99, - 0x0f, 0x24, 0x44, 0xb3, 0xfc, 0x22, 0x6f, 0xd2, 0x1e, 0x1e, 0x26, 0x46, 0xfb, 0x8d, 0x6f, 0xa1, - 0x2d, 0x49, 0x0e, 0xf5, 0xa0, 0xfd, 0x28, 0x3c, 0x77, 0xa7, 0x81, 0x6f, 0x5d, 0x42, 0x6d, 0x68, - 0x3c, 0x24, 0xa9, 0x55, 0x63, 0x1f, 0x87, 0xf3, 0xd4, 0x6a, 0x20, 0x80, 0x96, 0x78, 0x3c, 0xb7, - 0x9a, 0xa8, 0x03, 0xcd, 0xa3, 0xd0, 0x8d, 0xad, 0x15, 0xd4, 0x87, 0x8e, 0x7a, 0x8f, 0xb7, 0x5a, - 0x68, 0x15, 0x7a, 0xda, 0x03, 0xbb, 0xd5, 0x46, 0x03, 0xe8, 0x66, 0x0f, 0xe6, 0x56, 0x87, 0x35, - 0xb3, 0x17, 0x70, 0xab, 0xfb, 0xc6, 0x5f, 0xeb, 0xf2, 0xa2, 0xad, 0x4c, 0xb0, 0xa0, 0x2f, 0x4d, - 0xe0, 0x62, 0xeb, 0x12, 0x1a, 0x02, 0xe4, 0xb5, 0x87, 0x55, 0x43, 0x03, 0x58, 0xe1, 0x65, 0x8c, - 0x55, 0xbf, 0x5a, 0xef, 0xd4, 0x78, 0x77, 0x56, 0x65, 0x5a, 0x0d, 0x84, 0x60, 0x68, 0x16, 0x91, - 0x56, 0x93, 0x19, 0xa5, 0x5d, 0x6c, 0xac, 0x15, 0x36, 0x28, 0x2f, 0x10, 0xad, 0x16, 0x9b, 0x55, - 0xaf, 0xf6, 0xac, 0xb6, 0x1c, 0xa2, 0x8a, 0x34, 0xab, 0x83, 0xd6, 0x60, 0x60, 0x14, 0x61, 0x56, - 0x97, 0xa1, 0xe4, 0x55, 0x95, 0x05, 0x0c, 0x45, 0xaf, 0x92, 0xac, 0x1e, 0x1a, 0xf1, 0x3f, 0x32, - 0x8d, 0x92, 0xc6, 0xea, 0xa3, 0x75, 0x58, 0x2d, 0x14, 0x2c, 0xd6, 0x00, 0x6d, 0xa8, 0x77, 0x55, - 0xbd, 0xbc, 0xb0, 0x86, 0x0c, 0x54, 0xbf, 0x5b, 0x58, 0xab, 0x6f, 0x3c, 0x50, 0xd9, 0x59, 0xf9, - 0x6c, 0x0d, 0x06, 0xd2, 0x67, 0x42, 0x6e, 0x5d, 0x62, 0xa3, 0xf4, 0x24, 0x64, 0xd5, 0x72, 0x89, - 0xc8, 0x1c, 0x56, 0xfd, 0xde, 0xed, 0x7f, 0xff, 0xa5, 0x53, 0xfb, 0xdb, 0x0f, 0x5b, 0xb5, 0x7f, - 0xfc, 0xb0, 0x55, 0xfb, 0xcf, 0x0f, 0x5b, 0xb5, 0xef, 0x7e, 0xdc, 0xba, 0x04, 0x56, 0x44, 0x4f, - 0x76, 0xd3, 0xe0, 0xec, 0x7c, 0xf7, 0xec, 0x9c, 0xff, 0x4d, 0xff, 0x55, 0x8b, 0xff, 0xbc, 0xf5, - 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa7, 0x62, 0x93, 0x2b, 0x2d, 0x20, 0x00, 0x00, + 0x11, 0xd6, 0x3e, 0xb8, 0x8f, 0xde, 0x07, 0xc1, 0xd9, 0x15, 0xb9, 0x92, 0x6c, 0x8a, 0x82, 0x64, + 0x85, 0x76, 0x52, 0x4c, 0x4c, 0xdb, 0xb2, 0xab, 0xac, 0xf8, 0x21, 0x91, 0x92, 0x15, 0x3d, 0x42, + 0x0f, 0x19, 0xbb, 0x92, 0x2a, 0x17, 0x0a, 0x06, 0x66, 0xb9, 0x28, 0xee, 0x02, 0xf0, 0x60, 0x96, + 0xf4, 0x96, 0xaf, 0xf9, 0x03, 0xb9, 0xf9, 0x27, 0xe4, 0x9a, 0xbf, 0x90, 0x53, 0x2a, 0xa7, 0x24, + 0xe5, 0x43, 0x8e, 0x29, 0xfb, 0x96, 0x7f, 0x90, 0x5b, 0x6a, 0x5e, 0xc0, 0x00, 0x8b, 0x95, 0x2c, + 0x9f, 0x16, 0xd3, 0xd3, 0xf3, 0x4d, 0x4f, 0xf7, 0xcc, 0xd7, 0x3d, 0xb3, 0x60, 0x51, 0x77, 0xcc, + 0x1c, 0x6f, 0xe6, 0xc7, 0x5f, 0xee, 0xc5, 0x34, 0x62, 0x11, 0x82, 0x4c, 0x72, 0xb5, 0x3b, 0x23, + 0xcc, 0xd5, 0x3d, 0x57, 0x7b, 0x84, 0xd2, 0x88, 0x9a, 0x4d, 0x77, 0xcc, 0xb2, 0xe6, 0xd9, 0x39, + 0x8d, 0xbd, 0xb4, 0x89, 0x82, 0x59, 0x1c, 0x51, 0xe6, 0x24, 0x49, 0xa6, 0x32, 0x10, 0xd0, 0x09, + 0xa1, 0xe7, 0x24, 0x83, 0x59, 0xa7, 0xf3, 0x84, 0x89, 0x4f, 0x29, 0xb0, 0xf7, 0x00, 0x1e, 0x12, + 0x86, 0xc9, 0x57, 0x73, 0x92, 0x30, 0xd4, 0x87, 0xaa, 0x37, 0x1e, 0x55, 0x76, 0x2a, 0xbb, 0x6d, + 0x5c, 0xf5, 0xc6, 0xc8, 0x82, 0xda, 0x19, 0x59, 0x8c, 0xaa, 0x3b, 0x95, 0xdd, 0x2e, 0xe6, 0x9f, + 0xf6, 0x4d, 0xe8, 0x08, 0xfd, 0x24, 0x8e, 0xc2, 0x84, 0xa0, 0x21, 0xac, 0x9d, 0xbb, 0xd3, 0x39, + 0x11, 0x63, 0xba, 0x58, 0x36, 0xec, 0x03, 0x80, 0xa3, 0xf9, 0x8f, 0x07, 0xcd, 0x50, 0x6a, 0x26, + 0x4a, 0x0f, 0x3a, 0x02, 0x45, 0x4e, 0x65, 0xbf, 0x09, 0xbd, 0x03, 0x32, 0x25, 0x8c, 0xfc, 0x78, + 0x63, 0x2d, 0xe8, 0xeb, 0x21, 0x0a, 0xe4, 0x1b, 0x40, 0x4a, 0xe2, 0x86, 0xa7, 0x2b, 0x91, 0xae, + 0x41, 0x3b, 0x61, 0x2e, 0x65, 0x4e, 0x86, 0xd7, 0x12, 0x82, 0xc7, 0x64, 0x81, 0xb6, 0xa0, 0x49, + 0x42, 0x5f, 0x74, 0x49, 0x73, 0x1b, 0x24, 0xf4, 0x79, 0xc7, 0x75, 0xe8, 0x84, 0x11, 0x0b, 0xc6, + 0x0b, 0x27, 0x0a, 0xa7, 0x8b, 0x51, 0x7d, 0xa7, 0xb2, 0xdb, 0xc2, 0x20, 0x45, 0xbf, 0x0d, 0xa7, + 0x0b, 0xfb, 0x32, 0x0c, 0x72, 0x93, 0x2b, 0x9b, 0x7a, 0xd0, 0x39, 0x0e, 0xdd, 0x58, 0x19, 0x63, + 0xdf, 0x81, 0xae, 0x6c, 0x2a, 0x17, 0xdf, 0x86, 0x06, 0x25, 0xa7, 0x41, 0x14, 0x0a, 0x03, 0x3b, + 0xfb, 0xfd, 0x3d, 0xb5, 0x4f, 0xb0, 0x90, 0x62, 0xd5, 0x6b, 0x3f, 0x85, 0xf5, 0x23, 0x4a, 0x2e, + 0x68, 0x90, 0x79, 0x48, 0x79, 0xa4, 0x52, 0xe2, 0xe9, 0xaa, 0xe1, 0x69, 0x84, 0xa0, 0x3e, 0x8d, + 0xbc, 0x33, 0xb5, 0x1e, 0xf1, 0x6d, 0x23, 0xb0, 0x32, 0x38, 0x65, 0xe9, 0xfb, 0x60, 0x3d, 0x0a, + 0x4f, 0x49, 0xc2, 0x8e, 0x8f, 0x4f, 0xf4, 0x1c, 0x3f, 0x83, 0x5a, 0x92, 0x30, 0x65, 0xdb, 0xe5, + 0xbd, 0xdc, 0x46, 0x3c, 0x3e, 0x3e, 0x79, 0x4a, 0x98, 0x8b, 0xb9, 0x86, 0x3d, 0x80, 0x0d, 0x63, + 0xb0, 0x42, 0x74, 0xc0, 0xc2, 0xc4, 0xf5, 0x1f, 0x85, 0x3e, 0xf9, 0x5a, 0x23, 0x5e, 0x01, 0xe9, + 0x6c, 0x87, 0x25, 0x02, 0xb6, 0x8e, 0x9b, 0xa2, 0x7d, 0x92, 0xa0, 0x5f, 0x01, 0x9c, 0x91, 0x85, + 0x43, 0xb9, 0xff, 0x92, 0x51, 0x75, 0xa7, 0xb6, 0xdb, 0xd9, 0xdf, 0xd8, 0xd3, 0x67, 0xe1, 0x31, + 0x59, 0x48, 0xcf, 0xb6, 0xcf, 0xd4, 0x57, 0x62, 0x7f, 0x01, 0x1b, 0xc6, 0x04, 0xca, 0xa5, 0xaf, + 0x02, 0x50, 0xe2, 0xfa, 0x4e, 0xc0, 0xa5, 0x6a, 0x8e, 0x36, 0xd5, 0x6a, 0xe8, 0x75, 0x68, 0x70, + 0x17, 0x10, 0x5f, 0x78, 0xc9, 0x9c, 0xe1, 0x49, 0xe4, 0x9d, 0x3d, 0x0a, 0xc7, 0x11, 0x56, 0x0a, + 0xf6, 0x0f, 0x35, 0x68, 0x6a, 0xbb, 0xf7, 0xa0, 0xe5, 0xcd, 0x7c, 0x87, 0x2d, 0x62, 0x79, 0x1c, + 0xfa, 0xfb, 0x83, 0x3d, 0xe3, 0xc0, 0xdf, 0x9f, 0xf9, 0x27, 0x8b, 0x98, 0xe0, 0xa6, 0x27, 0x3f, + 0xd0, 0x2e, 0xd4, 0x4e, 0x09, 0x53, 0x73, 0x6c, 0x9a, 0xaa, 0xd9, 0x89, 0xc4, 0x5c, 0x85, 0x6b, + 0xc6, 0x73, 0x26, 0x76, 0x54, 0x41, 0x33, 0x3b, 0x66, 0x98, 0xab, 0xa0, 0x37, 0xa1, 0xe1, 0x8b, + 0x2d, 0x36, 0x5a, 0x13, 0xca, 0x57, 0x4c, 0xe5, 0xdc, 0xf1, 0xc1, 0x4a, 0x11, 0xfd, 0x1c, 0xea, + 0x49, 0xe8, 0xc6, 0xa3, 0x86, 0x18, 0xb0, 0x65, 0x0e, 0x30, 0xb6, 0x25, 0x16, 0x4a, 0xe8, 0x5d, + 0x68, 0xc5, 0x6a, 0x57, 0x8c, 0x9a, 0x62, 0xc0, 0xb5, 0x9c, 0x39, 0xf9, 0x0d, 0x88, 0x53, 0x65, + 0xf4, 0x31, 0x74, 0xe5, 0x7c, 0x32, 0x78, 0xa3, 0x96, 0x18, 0xbc, 0x5d, 0x62, 0x9e, 0x71, 0x30, + 0x71, 0xc7, 0xcf, 0x64, 0xe8, 0x7d, 0x80, 0x40, 0x6c, 0x20, 0xbe, 0xbb, 0x46, 0x6d, 0x01, 0xf0, + 0x8a, 0x09, 0x50, 0xdc, 0x9b, 0xb8, 0x2d, 0xf5, 0x8f, 0x13, 0xc6, 0x07, 0x1b, 0x21, 0x87, 0xe5, + 0xc1, 0xc5, 0x6d, 0x68, 0x6c, 0x08, 0xfb, 0xbf, 0x35, 0x68, 0xa5, 0x9b, 0xe7, 0x65, 0xc3, 0xfc, + 0xba, 0x19, 0xe6, 0xad, 0xa5, 0x30, 0x4b, 0x54, 0x19, 0xe7, 0xd7, 0xcd, 0x38, 0x6f, 0x2d, 0xc5, + 0x59, 0xab, 0xf2, 0x40, 0xef, 0x17, 0x02, 0x7d, 0xb5, 0x2c, 0xd0, 0x6a, 0x80, 0x8e, 0xf4, 0x2f, + 0x72, 0x91, 0x1e, 0x2d, 0x47, 0x5a, 0xe9, 0xcb, 0x50, 0xbf, 0xb7, 0x14, 0xea, 0x57, 0xca, 0x43, + 0xad, 0x46, 0x65, 0xb1, 0xfe, 0x08, 0x78, 0xdc, 0x0a, 0xa1, 0xbe, 0xbe, 0x32, 0xd4, 0x6a, 0x3c, + 0x88, 0x31, 0x32, 0xd4, 0x77, 0x4b, 0x42, 0xfd, 0xea, 0x8a, 0x50, 0xab, 0xe1, 0x46, 0xac, 0xef, + 0x96, 0xc4, 0xfa, 0xd5, 0x15, 0xb1, 0xd6, 0xa3, 0xb3, 0x60, 0x47, 0xb0, 0x71, 0x7f, 0xc2, 0xad, + 0x38, 0x22, 0x84, 0xea, 0xb3, 0xfd, 0x1e, 0x74, 0x3c, 0x21, 0x34, 0xe3, 0xbe, 0xb5, 0xa7, 0x93, + 0xf2, 0xfd, 0x28, 0x1c, 0xcb, 0x41, 0x22, 0xf6, 0xe0, 0xa5, 0xdf, 0x68, 0x07, 0xea, 0x31, 0x21, + 0x54, 0xc5, 0xbf, 0xab, 0xc9, 0x5b, 0x80, 0x8b, 0x1e, 0xfb, 0x2e, 0x20, 0x73, 0xc2, 0x97, 0xa4, + 0xfd, 0x67, 0x30, 0xc8, 0x46, 0x7f, 0xb6, 0xaf, 0x0d, 0x7e, 0x17, 0x9a, 0xd2, 0x08, 0xce, 0xa1, + 0xb5, 0xa2, 0x03, 0x96, 0x16, 0x88, 0xb5, 0xb6, 0xfd, 0x01, 0x0c, 0xf3, 0x78, 0x2f, 0x69, 0xcf, + 0xb7, 0x15, 0xe8, 0x1e, 0xc7, 0xd3, 0x20, 0x4d, 0xff, 0x3c, 0x99, 0xf2, 0xb6, 0x93, 0xa5, 0xa2, + 0x96, 0x10, 0xf0, 0x9c, 0x69, 0x43, 0x2f, 0x24, 0x17, 0x8e, 0x1c, 0xeb, 0x04, 0x92, 0x71, 0xeb, + 0xb8, 0x13, 0x92, 0x0b, 0x89, 0xfb, 0xc8, 0x47, 0x3b, 0xd0, 0xe5, 0x3a, 0xdc, 0x57, 0x4e, 0xe0, + 0x27, 0xa3, 0xda, 0x4e, 0x6d, 0xb7, 0x8e, 0x21, 0x24, 0x17, 0xdc, 0xc4, 0x47, 0x7e, 0x82, 0x5e, + 0x83, 0x2e, 0x0d, 0x4e, 0x27, 0xcc, 0xf1, 0x09, 0x0d, 0xce, 0x89, 0x4c, 0xbd, 0xf7, 0xaa, 0xa3, + 0x0a, 0xee, 0x08, 0xf9, 0x81, 0x10, 0xdb, 0xbf, 0x87, 0x9e, 0xb2, 0x4c, 0xad, 0xc9, 0x86, 0xfa, + 0x94, 0x8c, 0xd9, 0x8a, 0x15, 0x89, 0x3e, 0x74, 0x0b, 0xd6, 0x04, 0x86, 0x0a, 0x60, 0x51, 0x49, + 0x76, 0xda, 0x53, 0xd8, 0xb8, 0xe7, 0x32, 0x6f, 0x92, 0x5b, 0xf9, 0xdb, 0xd0, 0xa2, 0xf2, 0x53, + 0x07, 0x21, 0x7f, 0xe6, 0x0c, 0x5d, 0x9c, 0x6a, 0xa2, 0x1b, 0x85, 0xc5, 0x54, 0x45, 0x1d, 0x91, + 0x5b, 0xc8, 0x07, 0x80, 0xcc, 0xd9, 0xd4, 0x6a, 0x76, 0xa1, 0x29, 0xfd, 0xa8, 0x67, 0x2b, 0xda, + 0xaa, 0xbb, 0xed, 0x3f, 0x55, 0x60, 0xe3, 0x7e, 0x34, 0x8b, 0x5d, 0x8f, 0x3d, 0x89, 0x4e, 0xb5, + 0xb9, 0x37, 0xa1, 0xe7, 0x49, 0x61, 0x2e, 0x31, 0x76, 0x95, 0x50, 0xe6, 0xc6, 0x1b, 0xa0, 0xdb, + 0x0e, 0x23, 0x74, 0xa6, 0xe3, 0xa5, 0x64, 0x27, 0x84, 0xce, 0xd0, 0xdb, 0xb0, 0x79, 0x1e, 0x31, + 0x42, 0x1d, 0x4a, 0xe2, 0x69, 0xe0, 0xb9, 0x8c, 0xe8, 0xa3, 0x58, 0x13, 0xca, 0x43, 0xd1, 0x8b, + 0xd3, 0x4e, 0x79, 0xec, 0x86, 0x80, 0x4c, 0x93, 0x54, 0x7d, 0xf0, 0x05, 0x5c, 0x3e, 0xa1, 0x6e, + 0x98, 0x8c, 0x09, 0x7d, 0x42, 0x5c, 0x3f, 0x3b, 0x90, 0xfa, 0x58, 0x55, 0x56, 0x1d, 0x2b, 0x64, + 0xc3, 0x1a, 0xff, 0xd5, 0x65, 0x42, 0x5e, 0x45, 0x76, 0xd9, 0x23, 0xd8, 0x2c, 0xc2, 0xab, 0x89, + 0xf7, 0xa4, 0x39, 0x73, 0x46, 0x3e, 0x71, 0x93, 0x89, 0x9e, 0x75, 0x04, 0x4d, 0x2f, 0x0a, 0x19, + 0xf9, 0x9a, 0xa9, 0x9d, 0xac, 0x9b, 0xf6, 0xe7, 0xb0, 0xf1, 0x19, 0xa1, 0xc1, 0x78, 0x61, 0xaa, + 0x0f, 0x61, 0xcd, 0xf4, 0xa4, 0x6c, 0xf0, 0x6a, 0x6b, 0xe2, 0x26, 0x13, 0x55, 0x82, 0x89, 0x6f, + 0x13, 0xb8, 0x96, 0x07, 0x1e, 0x02, 0x32, 0x81, 0x95, 0x79, 0x7f, 0x80, 0xc1, 0x11, 0x25, 0xb1, + 0x4b, 0xc9, 0x53, 0x42, 0xb3, 0x42, 0xf6, 0x1a, 0xb4, 0x67, 0x41, 0x98, 0x0b, 0x5f, 0x6b, 0x16, + 0x84, 0x32, 0x74, 0xb7, 0xa1, 0xc1, 0x5c, 0x9a, 0xe5, 0xa2, 0xa5, 0x13, 0x2c, 0x7b, 0xed, 0x4d, + 0x18, 0xe6, 0xb1, 0xd5, 0x9c, 0x6f, 0xc3, 0x96, 0x92, 0x3f, 0x98, 0xba, 0xc9, 0xe4, 0x4b, 0xd7, + 0x3b, 0x7b, 0x71, 0xc9, 0x66, 0x5f, 0x85, 0xd1, 0xf2, 0x28, 0x85, 0x38, 0x82, 0xcd, 0x07, 0x41, + 0x18, 0x24, 0x93, 0x22, 0xa0, 0x7d, 0x05, 0xb6, 0x96, 0x7a, 0xd4, 0xa0, 0xbf, 0x56, 0x44, 0x68, + 0x66, 0x01, 0xcb, 0x2d, 0xfd, 0x36, 0x34, 0x92, 0x68, 0x4e, 0x3d, 0xb2, 0x8a, 0x9f, 0x64, 0x2f, + 0xda, 0x84, 0x86, 0x27, 0x46, 0xab, 0xad, 0xab, 0x5a, 0xfc, 0xf4, 0x90, 0x90, 0xd1, 0x80, 0x48, + 0x82, 0xe1, 0x00, 0x9a, 0xdd, 0x0f, 0x43, 0x46, 0x17, 0x58, 0x77, 0xa3, 0x7b, 0xd0, 0x95, 0x58, + 0x4e, 0xc2, 0x5c, 0x46, 0x54, 0xba, 0x56, 0xf9, 0x2d, 0xbd, 0x6f, 0xc9, 0x69, 0x9f, 0x44, 0x9e, + 0x3b, 0x3d, 0xe6, 0x6a, 0xb8, 0x23, 0x07, 0x89, 0x06, 0xbf, 0x0a, 0xe4, 0xd6, 0x90, 0xee, 0xba, + 0x21, 0x8e, 0xa6, 0x53, 0xbe, 0xde, 0xdc, 0xe2, 0x32, 0xa3, 0x2b, 0xa6, 0xd1, 0xf6, 0x16, 0x5c, + 0x2e, 0xe8, 0x2b, 0xa0, 0x67, 0x30, 0x3c, 0xbe, 0x08, 0x98, 0x37, 0xf9, 0x3c, 0x60, 0x21, 0x49, + 0x12, 0x0d, 0xb4, 0x05, 0x4d, 0xc5, 0xa3, 0x1a, 0x29, 0x16, 0x1c, 0xca, 0x4b, 0xe2, 0x20, 0x71, + 0x2e, 0xa4, 0xb6, 0xe2, 0x9c, 0x76, 0x90, 0xa8, 0xe1, 0xf6, 0x04, 0xae, 0x48, 0xc6, 0x29, 0x03, + 0x7d, 0x0c, 0x56, 0x22, 0xe4, 0x7a, 0x7c, 0x9a, 0x74, 0x76, 0x72, 0x7c, 0x57, 0x32, 0x16, 0xaf, + 0x27, 0xa6, 0x94, 0x24, 0xf6, 0x2b, 0x70, 0xb5, 0x6c, 0xa6, 0xd4, 0x41, 0x83, 0xdf, 0xc5, 0xbe, + 0xcb, 0xc8, 0x43, 0xcf, 0x4c, 0xcf, 0xb9, 0x65, 0xd5, 0xb2, 0x65, 0xd9, 0xff, 0x6a, 0x41, 0xf7, + 0x63, 0x7f, 0x16, 0x84, 0x5a, 0xf3, 0xad, 0xa5, 0xea, 0x2d, 0xc7, 0xc9, 0x42, 0x77, 0xa9, 0x84, + 0xfb, 0x20, 0xcd, 0xfe, 0x46, 0x2a, 0x7f, 0x41, 0x42, 0x55, 0x35, 0x00, 0x17, 0xa1, 0x7d, 0x58, + 0x13, 0x19, 0x4f, 0x9c, 0xed, 0xe7, 0x64, 0x01, 0x91, 0xb2, 0xa4, 0xaa, 0x98, 0x53, 0x11, 0xed, + 0x34, 0x3a, 0x55, 0x9b, 0x2c, 0x3f, 0x67, 0x91, 0xc1, 0x31, 0x78, 0xa9, 0x08, 0xfd, 0x06, 0xd6, + 0x99, 0xa2, 0x36, 0x67, 0x2a, 0xb8, 0x4d, 0x55, 0x8a, 0x37, 0x4c, 0x8c, 0x52, 0x72, 0xc5, 0x7d, + 0x96, 0x13, 0x73, 0x5b, 0xce, 0x05, 0x07, 0x39, 0x82, 0xb8, 0x1a, 0xcb, 0xb6, 0x2c, 0x71, 0x1f, + 0x86, 0xf3, 0x54, 0x84, 0x0e, 0xa0, 0x17, 0x4b, 0x0e, 0x70, 0x66, 0x7c, 0x9b, 0xaa, 0x7a, 0xf2, + 0x7a, 0xa1, 0x9e, 0x2c, 0xd2, 0x19, 0xee, 0xc6, 0x86, 0x90, 0x5f, 0x21, 0xe4, 0xb6, 0x57, 0x20, + 0x25, 0x57, 0x88, 0x65, 0x5e, 0x10, 0xa9, 0x49, 0xcb, 0xd0, 0x43, 0xe8, 0x53, 0x75, 0x5e, 0x14, + 0x88, 0xac, 0x2d, 0x73, 0xfb, 0xb4, 0xec, 0x04, 0xe2, 0x1e, 0x35, 0xa5, 0xe8, 0x1d, 0x68, 0x88, + 0x30, 0x25, 0x65, 0xe5, 0xe5, 0x52, 0x25, 0x80, 0x95, 0x32, 0x3a, 0x84, 0xbe, 0xb1, 0x91, 0x9c, + 0xf3, 0xfd, 0x51, 0x67, 0xd9, 0x13, 0x25, 0xe5, 0x1c, 0xee, 0x7a, 0x86, 0x50, 0x79, 0x82, 0x27, + 0x27, 0x19, 0x90, 0x6e, 0xa9, 0x27, 0x0a, 0xc9, 0x4b, 0x26, 0x69, 0x25, 0x43, 0x47, 0xb0, 0xa1, + 0x43, 0x32, 0xd6, 0x14, 0x3b, 0xea, 0x09, 0x9c, 0x9b, 0x25, 0x61, 0x29, 0x12, 0x34, 0xb6, 0xe2, + 0x42, 0x07, 0x7a, 0x0a, 0xd6, 0x58, 0x50, 0xb6, 0x01, 0xd8, 0x17, 0x80, 0xb6, 0x09, 0x58, 0x4e, + 0xf8, 0x78, 0x7d, 0x9c, 0x97, 0xa3, 0xa3, 0x12, 0x52, 0x59, 0x17, 0x70, 0xaf, 0x2d, 0xfb, 0xfa, + 0xc7, 0x30, 0x0b, 0x7a, 0x08, 0xeb, 0x73, 0xc1, 0x1d, 0xce, 0xa9, 0xe7, 0xc8, 0xd2, 0xc0, 0x5a, + 0xf6, 0x7e, 0x09, 0xbd, 0xe0, 0xde, 0xdc, 0x10, 0x26, 0xf6, 0x77, 0x4d, 0xe8, 0x29, 0x52, 0x51, + 0xa5, 0xd7, 0x4f, 0x62, 0x95, 0x0f, 0xcb, 0x58, 0x65, 0x7b, 0x15, 0xab, 0xe8, 0x5b, 0x92, 0x41, + 0x2b, 0x6f, 0xe5, 0x69, 0xe5, 0x4a, 0x09, 0xad, 0xc8, 0x51, 0x26, 0xaf, 0x7c, 0x58, 0xc6, 0x2b, + 0xdb, 0xab, 0x78, 0x25, 0x9d, 0x35, 0x23, 0x96, 0xc7, 0xab, 0x88, 0xc5, 0x7e, 0x1e, 0xb1, 0x28, + 0xa0, 0x22, 0xb3, 0x7c, 0x58, 0xc6, 0x2c, 0xdb, 0xab, 0x98, 0x45, 0x5b, 0x63, 0x50, 0xcb, 0x61, + 0x39, 0xb5, 0xec, 0xac, 0xa6, 0x16, 0x05, 0x92, 0xe7, 0x96, 0x7b, 0xa5, 0xdc, 0x72, 0x7d, 0x25, + 0xb7, 0x28, 0x90, 0x1c, 0xb9, 0x7c, 0xb2, 0x82, 0x5c, 0x6e, 0x3c, 0x87, 0x5c, 0x14, 0x4e, 0x81, + 0x5d, 0xee, 0x14, 0xd8, 0x65, 0x7b, 0x15, 0xbb, 0xe8, 0x0b, 0xbe, 0xa2, 0x97, 0x07, 0x2b, 0xe8, + 0x65, 0x67, 0x35, 0xbd, 0x68, 0x6f, 0xe4, 0xf8, 0xe5, 0xd3, 0x32, 0x72, 0x90, 0x24, 0x73, 0xeb, + 0xf9, 0xe4, 0xa0, 0xe0, 0x96, 0xd9, 0xe1, 0x59, 0x09, 0x3b, 0x94, 0xd0, 0xcd, 0x8a, 0xa2, 0x6f, + 0x99, 0x1e, 0x3e, 0x2d, 0xa1, 0x07, 0xc9, 0x36, 0xb7, 0x5f, 0x44, 0x0f, 0x1a, 0xb2, 0x58, 0x79, + 0x5c, 0x86, 0x81, 0x2a, 0xda, 0xcc, 0x64, 0x68, 0xdf, 0x85, 0x61, 0x5e, 0xac, 0xce, 0xfc, 0x2d, + 0x68, 0xa8, 0xed, 0x5f, 0x76, 0x07, 0x51, 0x7d, 0x19, 0xe8, 0x01, 0x61, 0x6e, 0x30, 0xd5, 0xa0, + 0xbe, 0x06, 0xd5, 0xe2, 0x97, 0xbb, 0x65, 0x1b, 0x93, 0x57, 0x9f, 0x33, 0xf9, 0x3f, 0x2b, 0xd0, + 0xe3, 0xf5, 0xe6, 0x3c, 0x31, 0xae, 0xa4, 0x05, 0xa2, 0xca, 0xb3, 0x86, 0x50, 0x5e, 0x62, 0xaa, + 0x03, 0xe8, 0xa9, 0x1b, 0x7a, 0x6e, 0xd2, 0xeb, 0xf9, 0x37, 0x95, 0x25, 0xd7, 0xe1, 0x2e, 0x35, + 0x84, 0x06, 0x8a, 0x2f, 0x16, 0xad, 0x68, 0xab, 0x04, 0x25, 0xe7, 0x2b, 0x8d, 0x22, 0x85, 0xf6, + 0x77, 0x15, 0xe8, 0xeb, 0x35, 0x29, 0xa7, 0xfd, 0xb4, 0x45, 0x1d, 0x96, 0x2f, 0x6a, 0x67, 0xf5, + 0xa2, 0xf4, 0x59, 0xc9, 0xad, 0xea, 0xb0, 0x7c, 0x55, 0x3b, 0xab, 0x57, 0x95, 0x87, 0x51, 0xcb, + 0xfa, 0x7b, 0x0d, 0x36, 0xb0, 0x3b, 0xd6, 0x15, 0xc3, 0x27, 0x12, 0xfc, 0x1a, 0xb4, 0xb3, 0xa7, + 0x11, 0x75, 0x9f, 0xa3, 0xd9, 0xbb, 0xc8, 0x0b, 0x5e, 0x96, 0xd0, 0x75, 0xe8, 0x88, 0x87, 0xb0, + 0xaf, 0xe6, 0x11, 0x9d, 0xcf, 0x84, 0x65, 0x2d, 0x2c, 0xde, 0xc6, 0x3e, 0x15, 0x12, 0x7e, 0x15, + 0x9d, 0xcf, 0x03, 0x5f, 0x64, 0x81, 0x2e, 0x16, 0xdf, 0xe8, 0x0e, 0x28, 0xcb, 0x1c, 0x12, 0x47, + 0xde, 0x44, 0x91, 0xfb, 0x20, 0xbf, 0x11, 0x0f, 0x79, 0x17, 0xee, 0xd0, 0xac, 0xc1, 0xb1, 0xc4, + 0x8b, 0x40, 0x43, 0x98, 0x29, 0xbe, 0xc5, 0xbd, 0x70, 0x11, 0x7a, 0x22, 0xd3, 0x34, 0xc5, 0xec, + 0x4d, 0xde, 0xe6, 0x69, 0xe4, 0x06, 0x9f, 0x46, 0x3c, 0x01, 0x38, 0xdc, 0x20, 0xc1, 0xb8, 0x2d, + 0x8e, 0x28, 0x64, 0x98, 0xb8, 0x3e, 0xba, 0x09, 0x3d, 0x37, 0x8e, 0xa7, 0x41, 0xfa, 0x7e, 0xd0, + 0x96, 0x0f, 0x12, 0x4a, 0x28, 0x6f, 0xb5, 0x43, 0x58, 0x1b, 0x4f, 0xdd, 0x53, 0x49, 0x95, 0x75, + 0x2c, 0x1b, 0xdc, 0x71, 0xfc, 0xc3, 0xf1, 0x5d, 0xe6, 0x0a, 0x12, 0xec, 0xe2, 0x16, 0x17, 0x1c, + 0xb8, 0xcc, 0x45, 0xbf, 0x84, 0x56, 0x4c, 0x83, 0x88, 0x06, 0x6c, 0x21, 0x58, 0xad, 0xbf, 0x3f, + 0x48, 0x5f, 0xf8, 0x39, 0xcb, 0xbb, 0xa1, 0x7f, 0x44, 0x03, 0x9c, 0x2a, 0xa1, 0x3d, 0x18, 0x50, + 0xa2, 0xee, 0x7c, 0xa7, 0x34, 0x9a, 0xc7, 0x4e, 0xe8, 0xce, 0x88, 0xe0, 0xaf, 0x36, 0xde, 0xd0, + 0x5d, 0x0f, 0x79, 0xcf, 0x33, 0x77, 0x46, 0xec, 0xaf, 0x00, 0xc9, 0x58, 0xca, 0x50, 0xab, 0x60, + 0xde, 0x82, 0x35, 0xf1, 0x9f, 0x5e, 0x7a, 0xb4, 0xf5, 0x3f, 0x7c, 0x87, 0xfc, 0x17, 0xcb, 0xce, + 0x34, 0x24, 0x55, 0x23, 0x24, 0x37, 0xa0, 0xeb, 0xcd, 0x29, 0x25, 0xa1, 0x7a, 0x74, 0xa9, 0xa9, + 0x47, 0x17, 0x29, 0x3b, 0x21, 0x74, 0x66, 0xff, 0xaf, 0x02, 0x7d, 0x3e, 0xe7, 0xfd, 0x99, 0xaf, + 0xcf, 0xfa, 0x3b, 0xd0, 0x98, 0x98, 0x04, 0x95, 0x7f, 0x02, 0x2d, 0xee, 0x35, 0xac, 0x94, 0xb9, + 0x77, 0xd2, 0x57, 0x2b, 0xf9, 0x74, 0x32, 0xc8, 0xef, 0xe5, 0xe2, 0x83, 0xd5, 0xaf, 0xa1, 0xe7, + 0xf2, 0x02, 0xc7, 0x51, 0x92, 0xb2, 0x5b, 0x8e, 0x79, 0x07, 0xc3, 0x5d, 0xd7, 0xbc, 0x91, 0x7d, + 0x04, 0xfd, 0x44, 0x9c, 0xd0, 0x74, 0x7c, 0xbd, 0xa4, 0x9c, 0x31, 0x59, 0x0c, 0xf7, 0x12, 0xb3, + 0x69, 0xff, 0xb1, 0x0a, 0xeb, 0xe9, 0xda, 0x15, 0x27, 0xdc, 0x29, 0x2c, 0x7e, 0x7b, 0x79, 0xf1, + 0x66, 0x70, 0xd2, 0xd5, 0xef, 0xf3, 0x13, 0x27, 0x7b, 0xf4, 0xf2, 0x87, 0xf9, 0xe5, 0x67, 0x2f, + 0xc6, 0x4a, 0x8d, 0xaf, 0x40, 0x3b, 0x40, 0x8a, 0xca, 0x0a, 0xb2, 0x5c, 0xc1, 0x88, 0x7b, 0x6e, + 0xae, 0x7e, 0xbc, 0x0f, 0xeb, 0xa9, 0x0f, 0x14, 0x44, 0x7d, 0xf9, 0x59, 0x3f, 0x4f, 0x7b, 0xb8, + 0x9f, 0xe4, 0xda, 0x6f, 0x7c, 0x03, 0x4d, 0x45, 0x72, 0xa8, 0x03, 0xcd, 0x47, 0xe1, 0xb9, 0x3b, + 0x0d, 0x7c, 0xeb, 0x12, 0x6a, 0x42, 0xed, 0x21, 0x61, 0x56, 0x85, 0x7f, 0x1c, 0xcd, 0x99, 0x55, + 0x43, 0x00, 0x0d, 0xf9, 0x02, 0x6f, 0xd5, 0x51, 0x0b, 0xea, 0xc7, 0xa1, 0x1b, 0x5b, 0x6b, 0xa8, + 0x0b, 0x2d, 0xfd, 0xa8, 0x6f, 0x35, 0xd0, 0x3a, 0x74, 0x8c, 0x57, 0x7a, 0xab, 0x89, 0x7a, 0xd0, + 0x4e, 0x5f, 0xdd, 0xad, 0x16, 0x6f, 0xa6, 0xcf, 0xe8, 0x56, 0xfb, 0x8d, 0xbf, 0x54, 0xd5, 0x45, + 0x5b, 0x9b, 0x60, 0x41, 0x57, 0x99, 0x20, 0xc4, 0xd6, 0x25, 0xd4, 0x07, 0xc8, 0x6a, 0x0f, 0xab, + 0x82, 0x7a, 0xb0, 0x26, 0xca, 0x18, 0xab, 0x7a, 0xb5, 0xda, 0xaa, 0x88, 0xee, 0xb4, 0xca, 0xb4, + 0x6a, 0x08, 0x41, 0x3f, 0x5f, 0x44, 0x5a, 0x75, 0x6e, 0x94, 0x71, 0xb1, 0xb1, 0xd6, 0xf8, 0xa0, + 0xac, 0x40, 0xb4, 0x1a, 0x7c, 0x56, 0xb3, 0xda, 0xb3, 0x9a, 0x6a, 0x88, 0x2e, 0xd2, 0xac, 0x16, + 0xda, 0x80, 0x5e, 0xae, 0x08, 0xb3, 0xda, 0x1c, 0x25, 0xab, 0xaa, 0x2c, 0xe0, 0x28, 0x66, 0x95, + 0x64, 0x75, 0xd0, 0x50, 0xfc, 0x1b, 0x9a, 0x2b, 0x69, 0xac, 0x2e, 0x1a, 0xc0, 0x7a, 0xa1, 0x60, + 0xb1, 0x7a, 0x68, 0x53, 0x3f, 0xce, 0x9a, 0xe5, 0x85, 0xd5, 0xe7, 0xa0, 0xe6, 0xdd, 0xc2, 0x5a, + 0x7f, 0xe3, 0x81, 0xce, 0xce, 0xda, 0x67, 0x1b, 0xd0, 0x53, 0x3e, 0x93, 0x72, 0xeb, 0x12, 0x1f, + 0x65, 0x26, 0x21, 0xab, 0x92, 0x49, 0x64, 0xe6, 0xb0, 0xaa, 0xf7, 0x6e, 0xff, 0xfb, 0xcf, 0xad, + 0xca, 0xdf, 0xbe, 0xdf, 0xae, 0xfc, 0xe3, 0xfb, 0xed, 0xca, 0x7f, 0xbe, 0xdf, 0xae, 0x7c, 0xfb, + 0xc3, 0xf6, 0x25, 0xb0, 0x22, 0x7a, 0xba, 0xc7, 0x82, 0xb3, 0xf3, 0xbd, 0xb3, 0x73, 0xf1, 0x5f, + 0xff, 0x97, 0x0d, 0xf1, 0xf3, 0xd6, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x57, 0x3c, 0x7b, + 0x87, 0x20, 0x00, 0x00, } func (m *GetRequest) Marshal() (dAtA []byte, err error) { @@ -5527,6 +5540,18 @@ func (m *CommitMergeRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.SourceState != nil { + { + size, err := m.SourceState.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftCmdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } if len(m.Entries) > 0 { for iNdEx := len(m.Entries) - 1; iNdEx >= 0; iNdEx-- { { @@ -5782,20 +5807,20 @@ func (m *UpdateGcPeerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.XXX_unrecognized) } if len(m.PeerId) > 0 { - dAtA31 := make([]byte, len(m.PeerId)*10) - var j30 int + dAtA32 := make([]byte, len(m.PeerId)*10) + var j31 int for _, num := range m.PeerId { for num >= 1<<7 { - dAtA31[j30] = uint8(uint64(num)&0x7f | 0x80) + dAtA32[j31] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j30++ + j31++ } - dAtA31[j30] = uint8(num) - j30++ + dAtA32[j31] = uint8(num) + j31++ } - i -= j30 - copy(dAtA[i:], dAtA31[:j30]) - i = encodeVarintRaftCmdpb(dAtA, i, uint64(j30)) + i -= j31 + copy(dAtA[i:], dAtA32[:j31]) + i = encodeVarintRaftCmdpb(dAtA, i, uint64(j31)) i-- dAtA[i] = 0xa } @@ -7548,6 +7573,10 @@ func (m *CommitMergeRequest) Size() (n int) { n += 1 + l + sovRaftCmdpb(uint64(l)) } } + if m.SourceState != nil { + l = m.SourceState.Size() + n += 1 + l + sovRaftCmdpb(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -12234,6 +12263,42 @@ func (m *CommitMergeRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SourceState", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftCmdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRaftCmdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftCmdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SourceState == nil { + m.SourceState = &raft_serverpb.RegionLocalState{} + } + if err := m.SourceState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipRaftCmdpb(dAtA[iNdEx:]) diff --git a/pkg/tracepb/tracepb.pb.go b/pkg/tracepb/tracepb.pb.go index 55cf091..e5b4919 100644 --- a/pkg/tracepb/tracepb.pb.go +++ b/pkg/tracepb/tracepb.pb.go @@ -68,7 +68,6 @@ var xxx_messageInfo_TraceRecordRequest proto.InternalMessageInfo type TraceRecord struct { // Types that are valid to be assigned to RecordOneof: - // // *TraceRecord_Report // *TraceRecord_NotifyCollect RecordOneof isTraceRecord_RecordOneof `protobuf_oneof:"record_oneof"` diff --git a/proto/raft_cmdpb.proto b/proto/raft_cmdpb.proto index 1c38399..15794d0 100644 --- a/proto/raft_cmdpb.proto +++ b/proto/raft_cmdpb.proto @@ -6,6 +6,7 @@ import "errorpb.proto"; import "eraftpb.proto"; import "kvrpcpb.proto"; import "import_sstpb.proto"; +import "raft_serverpb.proto"; import "rustproto.proto"; option (rustproto.lite_runtime_all) = true; @@ -213,6 +214,8 @@ message CommitMergeRequest { metapb.Region source = 1; uint64 commit = 2; repeated eraftpb.Entry entries = 3; + // Used in v2. When it's present, `source` and `commit` will not be set. + raft_serverpb.RegionLocalState source_state = 4; } message CommitMergeResponse {} diff --git a/scripts/proto.lock b/scripts/proto.lock index 77d4736..eb926ca 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -14856,6 +14856,11 @@ "name": "entries", "type": "eraftpb.Entry", "is_repeated": true + }, + { + "id": 4, + "name": "source_state", + "type": "raft_serverpb.RegionLocalState" } ] }, @@ -15317,6 +15322,9 @@ { "path": "import_sstpb.proto" }, + { + "path": "raft_serverpb.proto" + }, { "path": "rustproto.proto" } -- Gitee From 1319c217eb47c105940b6ae803b0e3efb388d81c Mon Sep 17 00:00:00 2001 From: disksing Date: Tue, 21 Mar 2023 11:19:22 +0800 Subject: [PATCH 21/44] use go module to manage tools version (#1083) Signed-off-by: disksing --- Makefile | 3 +++ go.mod | 5 +++++ go.sum | 8 ++++++++ pkg/configpb/configpb.pb.gw.go | 22 ++++++++++++++++++++-- pkg/kvrpcpb/kvrpcpb.pb.go | 8 +++++--- pkg/tracepb/tracepb.pb.go | 1 + scripts/generate_go.sh | 6 +++--- tools.go | 10 ++++++++++ 8 files changed, 55 insertions(+), 8 deletions(-) create mode 100644 tools.go diff --git a/Makefile b/Makefile index db675c4..b793541 100644 --- a/Makefile +++ b/Makefile @@ -2,14 +2,17 @@ CURDIR := $(shell pwd) +export GOBIN=$(CURDIR)/bin export PATH := $(CURDIR)/bin/:$(PATH) all: go rust c++ init: mkdir -p $(CURDIR)/bin + check: init $(CURDIR)/scripts/check.sh + go: check # Standalone GOPATH $(CURDIR)/scripts/generate_go.sh diff --git a/go.mod b/go.mod index b8ed4e8..4fa0d21 100644 --- a/go.mod +++ b/go.mod @@ -4,15 +4,20 @@ require ( github.com/gogo/protobuf v1.3.2 github.com/golang/protobuf v1.5.2 github.com/grpc-ecosystem/grpc-gateway v1.16.0 + golang.org/x/tools v0.1.12 google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd google.golang.org/grpc v1.51.0 ) require ( + github.com/ghodss/yaml v1.0.0 // indirect + github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect + golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/net v0.2.0 // indirect golang.org/x/sys v0.2.0 // indirect golang.org/x/text v0.4.0 // indirect google.golang.org/protobuf v1.28.1 // indirect + gopkg.in/yaml.v2 v2.2.3 // indirect ) go 1.18 diff --git a/go.sum b/go.sum index e3d59c3..3141179 100644 --- a/go.sum +++ b/go.sum @@ -9,9 +9,11 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -42,6 +44,8 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -81,6 +85,8 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -104,7 +110,9 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.3 h1:fvjTMHxHEw/mxHbtzPi3JCcKXQRAnQTBRo6YCJSVHKI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/configpb/configpb.pb.gw.go b/pkg/configpb/configpb.pb.gw.go index c0385b0..9b4675b 100644 --- a/pkg/configpb/configpb.pb.gw.go +++ b/pkg/configpb/configpb.pb.gw.go @@ -20,6 +20,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -30,6 +31,7 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage +var _ = metadata.Join var ( filter_Config_Get_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} @@ -55,7 +57,10 @@ func local_request_Config_Get_0(ctx context.Context, marshaler runtime.Marshaler var protoReq GetRequest var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Get_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_Get_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -122,7 +127,10 @@ func local_request_Config_Delete_0(ctx context.Context, marshaler runtime.Marsha var protoReq DeleteRequest var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Delete_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_Delete_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -134,11 +142,14 @@ func local_request_Config_Delete_0(ctx context.Context, marshaler runtime.Marsha // RegisterConfigHandlerServer registers the http handlers for service Config to "mux". // UnaryRPC :call ConfigServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterConfigHandlerFromEndpoint instead. func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ConfigServer) error { mux.Handle("GET", pattern_Config_Get_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -146,6 +157,7 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Get_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -159,6 +171,8 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser mux.Handle("POST", pattern_Config_Update_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -166,6 +180,7 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Update_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -179,6 +194,8 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser mux.Handle("DELETE", pattern_Config_Delete_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -186,6 +203,7 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Delete_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index de4d128..f2452aa 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -1888,9 +1888,10 @@ type CheckTxnStatusResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Error *KeyError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Three kinds of transaction status: - // locked: lock_ttl > 0 - // committed: commit_version > 0 - // rollbacked: lock_ttl = 0 && commit_version = 0 + // + // locked: lock_ttl > 0 + // committed: commit_version > 0 + // rollbacked: lock_ttl = 0 && commit_version = 0 LockTtl uint64 `protobuf:"varint,3,opt,name=lock_ttl,json=lockTtl,proto3" json:"lock_ttl,omitempty"` CommitVersion uint64 `protobuf:"varint,4,opt,name=commit_version,json=commitVersion,proto3" json:"commit_version,omitempty"` // The action performed by TiKV (and why if the action is to rollback). @@ -9473,6 +9474,7 @@ func (m *RawChecksumResponse) GetTotalBytes() uint64 { type CompactError struct { // Types that are valid to be assigned to Error: + // // *CompactError_ErrInvalidStartKey // *CompactError_ErrPhysicalTableNotExist // *CompactError_ErrCompactInProgress diff --git a/pkg/tracepb/tracepb.pb.go b/pkg/tracepb/tracepb.pb.go index e5b4919..55cf091 100644 --- a/pkg/tracepb/tracepb.pb.go +++ b/pkg/tracepb/tracepb.pb.go @@ -68,6 +68,7 @@ var xxx_messageInfo_TraceRecordRequest proto.InternalMessageInfo type TraceRecord struct { // Types that are valid to be assigned to RecordOneof: + // // *TraceRecord_Report // *TraceRecord_NotifyCollect RecordOneof isTraceRecord_RecordOneof `protobuf_oneof:"record_oneof"` diff --git a/scripts/generate_go.sh b/scripts/generate_go.sh index f4d44b3..b8968f6 100755 --- a/scripts/generate_go.sh +++ b/scripts/generate_go.sh @@ -18,9 +18,9 @@ fi GO_PREFIX_PATH=github.com/pingcap/kvproto/pkg export PATH=$KVPROTO_ROOT/_tools/bin:$GOPATH/bin:$PATH -echo "install tools..." -GO111MODULE=off go get github.com/twitchtv/retool -GO111MODULE=off retool sync || exit 1 +go install github.com/gogo/protobuf/protoc-gen-gofast +go install github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway +go install golang.org/x/tools/cmd/goimports function collect() { file=$(basename $1) diff --git a/tools.go b/tools.go new file mode 100644 index 0000000..a56bd6a --- /dev/null +++ b/tools.go @@ -0,0 +1,10 @@ +//go:build tools +// +build tools + +package tools + +import ( + _ "github.com/gogo/protobuf/protoc-gen-gofast" + _ "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway" + _ "golang.org/x/tools/cmd/goimports" +) -- Gitee From 8df1a4c831d9449aff95110c0dde372a26dfecb9 Mon Sep 17 00:00:00 2001 From: JaySon Date: Tue, 21 Mar 2023 11:53:33 +0800 Subject: [PATCH 22/44] Add GetDisaggConfig for tiflash (#1081) * update go files Signed-off-by: JaySon-Huang --------- Signed-off-by: JaySon-Huang --- pkg/disaggregated/disaggregated.pb.go | 750 +++++++++++++++++++++++--- pkg/tikvpb/tikvpb.pb.go | 347 ++++++------ proto/disaggregated.proto | 13 + proto/tikvpb.proto | 2 + scripts/proto.lock | 38 ++ 5 files changed, 925 insertions(+), 225 deletions(-) diff --git a/pkg/disaggregated/disaggregated.pb.go b/pkg/disaggregated/disaggregated.pb.go index 26be2e8..50a6ad1 100644 --- a/pkg/disaggregated/disaggregated.pb.go +++ b/pkg/disaggregated/disaggregated.pb.go @@ -463,6 +463,155 @@ func (m *TryMarkDeleteResponse) GetResult() *S3LockResult { return nil } +type GetDisaggConfigRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetDisaggConfigRequest) Reset() { *m = GetDisaggConfigRequest{} } +func (m *GetDisaggConfigRequest) String() string { return proto.CompactTextString(m) } +func (*GetDisaggConfigRequest) ProtoMessage() {} +func (*GetDisaggConfigRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{8} +} +func (m *GetDisaggConfigRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GetDisaggConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GetDisaggConfigRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GetDisaggConfigRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetDisaggConfigRequest.Merge(m, src) +} +func (m *GetDisaggConfigRequest) XXX_Size() int { + return m.Size() +} +func (m *GetDisaggConfigRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetDisaggConfigRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetDisaggConfigRequest proto.InternalMessageInfo + +type DisaggS3Config struct { + Bucket string `protobuf:"bytes,1,opt,name=bucket,proto3" json:"bucket,omitempty"` + Root string `protobuf:"bytes,2,opt,name=root,proto3" json:"root,omitempty"` + Endpoint string `protobuf:"bytes,3,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DisaggS3Config) Reset() { *m = DisaggS3Config{} } +func (m *DisaggS3Config) String() string { return proto.CompactTextString(m) } +func (*DisaggS3Config) ProtoMessage() {} +func (*DisaggS3Config) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{9} +} +func (m *DisaggS3Config) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DisaggS3Config) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DisaggS3Config.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DisaggS3Config) XXX_Merge(src proto.Message) { + xxx_messageInfo_DisaggS3Config.Merge(m, src) +} +func (m *DisaggS3Config) XXX_Size() int { + return m.Size() +} +func (m *DisaggS3Config) XXX_DiscardUnknown() { + xxx_messageInfo_DisaggS3Config.DiscardUnknown(m) +} + +var xxx_messageInfo_DisaggS3Config proto.InternalMessageInfo + +func (m *DisaggS3Config) GetBucket() string { + if m != nil { + return m.Bucket + } + return "" +} + +func (m *DisaggS3Config) GetRoot() string { + if m != nil { + return m.Root + } + return "" +} + +func (m *DisaggS3Config) GetEndpoint() string { + if m != nil { + return m.Endpoint + } + return "" +} + +type GetDisaggConfigResponse struct { + S3Config *DisaggS3Config `protobuf:"bytes,1,opt,name=s3_config,json=s3Config,proto3" json:"s3_config,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetDisaggConfigResponse) Reset() { *m = GetDisaggConfigResponse{} } +func (m *GetDisaggConfigResponse) String() string { return proto.CompactTextString(m) } +func (*GetDisaggConfigResponse) ProtoMessage() {} +func (*GetDisaggConfigResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{10} +} +func (m *GetDisaggConfigResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GetDisaggConfigResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GetDisaggConfigResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GetDisaggConfigResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetDisaggConfigResponse.Merge(m, src) +} +func (m *GetDisaggConfigResponse) XXX_Size() int { + return m.Size() +} +func (m *GetDisaggConfigResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetDisaggConfigResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetDisaggConfigResponse proto.InternalMessageInfo + +func (m *GetDisaggConfigResponse) GetS3Config() *DisaggS3Config { + if m != nil { + return m.S3Config + } + return nil +} + type DisaggTaskMeta struct { StartTs uint64 `protobuf:"varint,1,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"` // query_ts + server_id + local_query_id to represent a global unique query. @@ -480,7 +629,7 @@ func (m *DisaggTaskMeta) Reset() { *m = DisaggTaskMeta{} } func (m *DisaggTaskMeta) String() string { return proto.CompactTextString(m) } func (*DisaggTaskMeta) ProtoMessage() {} func (*DisaggTaskMeta) Descriptor() ([]byte, []int) { - return fileDescriptor_1026192e39a9f8dc, []int{8} + return fileDescriptor_1026192e39a9f8dc, []int{11} } func (m *DisaggTaskMeta) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -563,7 +712,7 @@ func (m *DisaggReadError) Reset() { *m = DisaggReadError{} } func (m *DisaggReadError) String() string { return proto.CompactTextString(m) } func (*DisaggReadError) ProtoMessage() {} func (*DisaggReadError) Descriptor() ([]byte, []int) { - return fileDescriptor_1026192e39a9f8dc, []int{9} + return fileDescriptor_1026192e39a9f8dc, []int{12} } func (m *DisaggReadError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -629,7 +778,7 @@ func (m *EstablishDisaggTaskRequest) Reset() { *m = EstablishDisaggTaskR func (m *EstablishDisaggTaskRequest) String() string { return proto.CompactTextString(m) } func (*EstablishDisaggTaskRequest) ProtoMessage() {} func (*EstablishDisaggTaskRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1026192e39a9f8dc, []int{10} + return fileDescriptor_1026192e39a9f8dc, []int{13} } func (m *EstablishDisaggTaskRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -729,7 +878,7 @@ func (m *EstablishDisaggTaskResponse) Reset() { *m = EstablishDisaggTask func (m *EstablishDisaggTaskResponse) String() string { return proto.CompactTextString(m) } func (*EstablishDisaggTaskResponse) ProtoMessage() {} func (*EstablishDisaggTaskResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1026192e39a9f8dc, []int{11} + return fileDescriptor_1026192e39a9f8dc, []int{14} } func (m *EstablishDisaggTaskResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -810,7 +959,7 @@ func (m *FetchDisaggPagesRequest) Reset() { *m = FetchDisaggPagesRequest func (m *FetchDisaggPagesRequest) String() string { return proto.CompactTextString(m) } func (*FetchDisaggPagesRequest) ProtoMessage() {} func (*FetchDisaggPagesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1026192e39a9f8dc, []int{12} + return fileDescriptor_1026192e39a9f8dc, []int{15} } func (m *FetchDisaggPagesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -886,7 +1035,7 @@ func (m *PagesPacket) Reset() { *m = PagesPacket{} } func (m *PagesPacket) String() string { return proto.CompactTextString(m) } func (*PagesPacket) ProtoMessage() {} func (*PagesPacket) Descriptor() ([]byte, []int) { - return fileDescriptor_1026192e39a9f8dc, []int{13} + return fileDescriptor_1026192e39a9f8dc, []int{16} } func (m *PagesPacket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -952,6 +1101,9 @@ func init() { proto.RegisterType((*TryAddLockResponse)(nil), "disaggregated.TryAddLockResponse") proto.RegisterType((*TryMarkDeleteRequest)(nil), "disaggregated.TryMarkDeleteRequest") proto.RegisterType((*TryMarkDeleteResponse)(nil), "disaggregated.TryMarkDeleteResponse") + proto.RegisterType((*GetDisaggConfigRequest)(nil), "disaggregated.GetDisaggConfigRequest") + proto.RegisterType((*DisaggS3Config)(nil), "disaggregated.DisaggS3Config") + proto.RegisterType((*GetDisaggConfigResponse)(nil), "disaggregated.GetDisaggConfigResponse") proto.RegisterType((*DisaggTaskMeta)(nil), "disaggregated.DisaggTaskMeta") proto.RegisterType((*DisaggReadError)(nil), "disaggregated.DisaggReadError") proto.RegisterType((*EstablishDisaggTaskRequest)(nil), "disaggregated.EstablishDisaggTaskRequest") @@ -963,62 +1115,67 @@ func init() { func init() { proto.RegisterFile("disaggregated.proto", fileDescriptor_1026192e39a9f8dc) } var fileDescriptor_1026192e39a9f8dc = []byte{ - // 872 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcd, 0x6e, 0x23, 0x45, - 0x10, 0xce, 0xc4, 0x3f, 0x63, 0x97, 0x27, 0x61, 0xb7, 0x59, 0x36, 0x4e, 0xc2, 0x1a, 0x33, 0xe2, - 0x90, 0x93, 0xa5, 0xdd, 0xf0, 0x23, 0x71, 0x58, 0x89, 0x65, 0x77, 0xb5, 0x23, 0x76, 0x21, 0x74, - 0x2c, 0xae, 0xa3, 0xce, 0x74, 0x65, 0x32, 0x9a, 0xf1, 0xb4, 0xd3, 0xdd, 0x36, 0xf8, 0x29, 0xb8, - 0xf2, 0x14, 0x3c, 0x00, 0x1c, 0xb9, 0x70, 0xe4, 0x11, 0x50, 0x78, 0x0c, 0x2e, 0xa8, 0x7f, 0x66, - 0x13, 0x5b, 0x91, 0x50, 0xe0, 0xe4, 0xae, 0xaf, 0xea, 0xeb, 0xae, 0xfa, 0xaa, 0x6a, 0x0c, 0xef, - 0xf2, 0x42, 0xb1, 0x3c, 0x97, 0x98, 0x33, 0x8d, 0x7c, 0x32, 0x97, 0x42, 0x0b, 0xb2, 0xb3, 0x06, - 0x1e, 0xdc, 0xcf, 0xc4, 0x5c, 0x8a, 0x0c, 0x95, 0x12, 0xd2, 0x45, 0x1c, 0x44, 0x33, 0xd4, 0x6c, - 0x7e, 0xe6, 0xac, 0xf8, 0x97, 0x00, 0xa2, 0xd3, 0xe3, 0xd7, 0x22, 0x2b, 0x29, 0xaa, 0x45, 0xa5, - 0xc9, 0x13, 0x08, 0xd5, 0x22, 0x33, 0x8c, 0x61, 0x30, 0x0e, 0x8e, 0x06, 0x4f, 0x1e, 0x4e, 0xd6, - 0xdf, 0x39, 0x75, 0xde, 0x57, 0x5b, 0xb4, 0x09, 0x24, 0x9f, 0x42, 0xbf, 0x16, 0x3a, 0x15, 0xdf, - 0xd7, 0x28, 0x87, 0xdb, 0x96, 0xb5, 0xb7, 0xc1, 0xfa, 0x5a, 0xe8, 0x6f, 0x8c, 0xfb, 0xd5, 0x16, - 0xed, 0xd5, 0xfe, 0x4c, 0x3e, 0x81, 0x5e, 0x26, 0xea, 0xf3, 0xaa, 0xc8, 0xf4, 0xb0, 0x75, 0x2b, - 0xed, 0x4b, 0xef, 0x36, 0xb4, 0x26, 0xf4, 0x59, 0x08, 0x1d, 0x94, 0x52, 0xc8, 0xb8, 0x0f, 0xa1, - 0xcf, 0x26, 0x06, 0xe8, 0x35, 0x4f, 0xc4, 0x31, 0xf4, 0x1a, 0x1e, 0x79, 0x08, 0x5d, 0x89, 0x4c, - 0x89, 0xda, 0x56, 0xd3, 0xa7, 0xde, 0x8a, 0x97, 0x70, 0x7f, 0x2a, 0x57, 0x5f, 0x70, 0xee, 0x4a, - 0xbf, 0x5c, 0xa0, 0xd2, 0x24, 0x86, 0x1d, 0xce, 0x34, 0x4b, 0xcf, 0x8b, 0x0a, 0xd3, 0x12, 0x57, - 0x9e, 0x33, 0x30, 0xe0, 0xcb, 0xa2, 0xc2, 0xaf, 0x70, 0x65, 0x62, 0x2a, 0x91, 0x95, 0xa9, 0xd2, - 0x42, 0x62, 0x5a, 0x70, 0x9b, 0x78, 0x9b, 0x0e, 0x0c, 0x78, 0x6a, 0xb0, 0x84, 0x93, 0x7d, 0xe8, - 0xb9, 0x18, 0xbc, 0x1c, 0xb6, 0xad, 0x3b, 0xb4, 0x6e, 0xbc, 0x8c, 0x13, 0x20, 0x37, 0xdf, 0x55, - 0x73, 0x51, 0x2b, 0x24, 0xc7, 0x26, 0x4b, 0x23, 0xbf, 0xd7, 0xfc, 0x70, 0x53, 0xf3, 0x1b, 0x1d, - 0xa2, 0x3e, 0x34, 0xfe, 0x1c, 0x1e, 0x4c, 0xe5, 0xea, 0x0d, 0x93, 0xe5, 0x73, 0xac, 0x50, 0xe3, - 0x1d, 0xaa, 0x88, 0x5f, 0xc3, 0x7b, 0x1b, 0xdc, 0xff, 0x93, 0xc9, 0x6f, 0x01, 0xec, 0x3e, 0xb7, - 0x61, 0x53, 0xa6, 0xca, 0x37, 0xa8, 0x99, 0x91, 0x40, 0x69, 0x26, 0x75, 0xaa, 0xdd, 0x1c, 0xb5, - 0x69, 0x68, 0xed, 0xa9, 0x32, 0xae, 0xcb, 0x05, 0xca, 0x95, 0x71, 0x6d, 0x3b, 0x97, 0xb5, 0xa7, - 0x8a, 0x1c, 0x42, 0x5f, 0xa1, 0x5c, 0xa2, 0xbc, 0x16, 0xb6, 0xe7, 0x80, 0x84, 0x93, 0x8f, 0x60, - 0xb7, 0x12, 0x19, 0xab, 0x52, 0xc7, 0x2e, 0xb8, 0xd7, 0x36, 0xb2, 0xe8, 0xb7, 0x06, 0x4c, 0x38, - 0xd9, 0x83, 0x50, 0x33, 0x55, 0x1a, 0x77, 0x67, 0x1c, 0x1c, 0xb5, 0x68, 0xd7, 0x98, 0x09, 0x27, - 0x1f, 0xc0, 0x00, 0x7f, 0xc0, 0x6c, 0xa1, 0x85, 0xbd, 0xbd, 0x6b, 0x45, 0x81, 0x06, 0x4a, 0x78, - 0xfc, 0x19, 0xbc, 0xe3, 0x8a, 0xa0, 0xc8, 0xf8, 0x0b, 0x33, 0x60, 0x84, 0x40, 0x3b, 0x13, 0x1c, - 0x6d, 0x05, 0x1d, 0x6a, 0xcf, 0xe4, 0x1e, 0xb4, 0x66, 0x2a, 0xb7, 0x99, 0xf7, 0xa9, 0x39, 0xc6, - 0xbf, 0x6e, 0xc3, 0xc1, 0x0b, 0xa5, 0xd9, 0x59, 0x55, 0xa8, 0x8b, 0x6b, 0x1d, 0x9a, 0x7e, 0x3c, - 0x86, 0xb6, 0x59, 0x39, 0x2f, 0xe8, 0xa3, 0x0d, 0x41, 0xd7, 0x75, 0xa3, 0x36, 0x94, 0x0c, 0x21, - 0x64, 0x9c, 0x4b, 0xb3, 0x84, 0xee, 0x9d, 0xc6, 0x34, 0x0a, 0xe9, 0x62, 0x86, 0x62, 0xa1, 0x53, - 0x65, 0x15, 0x6a, 0xd1, 0x9e, 0x07, 0x4e, 0xc9, 0x63, 0x08, 0x25, 0xe6, 0x85, 0xa8, 0xd5, 0xb0, - 0x3d, 0x6e, 0xd9, 0x75, 0xba, 0xb9, 0xff, 0xd4, 0xfa, 0x92, 0xfa, 0x5c, 0xd0, 0x26, 0x8e, 0x3c, - 0x02, 0x50, 0xd9, 0x05, 0xce, 0x58, 0xba, 0x44, 0xe9, 0x15, 0xeb, 0x3b, 0xe4, 0x3b, 0x94, 0xe4, - 0x29, 0xec, 0x98, 0xba, 0x30, 0x6d, 0xee, 0xed, 0xda, 0x7b, 0xf7, 0xd7, 0xee, 0x9d, 0x9a, 0x08, - 0x77, 0xb9, 0xa2, 0x91, 0xbe, 0x61, 0x91, 0x0f, 0x21, 0xc2, 0xda, 0xc8, 0xc6, 0xd3, 0x79, 0xc5, - 0xea, 0x61, 0x38, 0x0e, 0x8e, 0x22, 0x3a, 0xf0, 0xd8, 0x49, 0xc5, 0xea, 0xf8, 0xef, 0x00, 0x0e, - 0x6f, 0x55, 0xcf, 0x4f, 0xe4, 0xc7, 0x7e, 0xdb, 0xbd, 0x7e, 0xa3, 0x5b, 0xf5, 0x7b, 0xdb, 0x32, - 0xea, 0x82, 0xc9, 0x31, 0xec, 0x48, 0xd4, 0x72, 0xf5, 0x36, 0xf1, 0x6d, 0x9b, 0xf8, 0xee, 0xc4, - 0x7f, 0xfd, 0x5c, 0x82, 0x34, 0xb2, 0x41, 0x4d, 0xb6, 0x76, 0x68, 0xd7, 0xd6, 0x3a, 0x54, 0x7e, - 0xa5, 0x9f, 0xc2, 0x40, 0xd5, 0x6c, 0xae, 0x2e, 0x84, 0x6e, 0x26, 0xef, 0x5f, 0x7b, 0x09, 0x0d, - 0x23, 0xe1, 0xe6, 0x3b, 0x64, 0x85, 0x51, 0xc3, 0xce, 0xb8, 0x75, 0x14, 0x51, 0x6f, 0xc5, 0x3f, - 0x07, 0xb0, 0xf7, 0x12, 0x75, 0xe6, 0x2b, 0x3f, 0x61, 0x39, 0xaa, 0x66, 0x70, 0x36, 0xde, 0x0c, - 0xee, 0xfa, 0xe6, 0x3e, 0xf4, 0x5c, 0xf3, 0x0a, 0x6e, 0xc7, 0xa8, 0x45, 0x43, 0x6b, 0x27, 0xdc, - 0xb6, 0x1d, 0xf3, 0x19, 0xd6, 0xfa, 0xba, 0xd6, 0xbe, 0x47, 0x1c, 0x73, 0xce, 0x72, 0x43, 0x74, - 0x93, 0xd4, 0xa6, 0xa1, 0xb1, 0x13, 0xae, 0xe2, 0x1f, 0x03, 0x18, 0xd8, 0x2c, 0x4f, 0x58, 0x56, - 0xa2, 0xfe, 0x8f, 0xed, 0x79, 0x00, 0x1d, 0x73, 0xa1, 0x6b, 0x4b, 0x44, 0x9d, 0x61, 0x44, 0xca, - 0x2e, 0x16, 0x75, 0x69, 0x26, 0xdb, 0x8a, 0xe4, 0x2c, 0xf2, 0x3e, 0xf4, 0xd5, 0x62, 0x36, 0x63, - 0xb2, 0x40, 0x97, 0x4f, 0x44, 0xaf, 0x81, 0x67, 0xf1, 0xef, 0x57, 0xa3, 0xe0, 0x8f, 0xab, 0x51, - 0xf0, 0xe7, 0xd5, 0x28, 0xf8, 0xe9, 0xaf, 0xd1, 0x16, 0xdc, 0x13, 0x32, 0x9f, 0xe8, 0xa2, 0x5c, - 0x4e, 0xca, 0xa5, 0xfd, 0x9b, 0x3b, 0xeb, 0xda, 0x9f, 0xe3, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, - 0x75, 0x05, 0x68, 0x9e, 0x34, 0x07, 0x00, 0x00, + // 948 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcd, 0x72, 0xdc, 0x44, + 0x10, 0xb6, 0xbc, 0x6b, 0x4b, 0xea, 0x95, 0x4d, 0x32, 0x04, 0x7b, 0x6d, 0x13, 0x63, 0x54, 0x1c, + 0x7c, 0x72, 0x55, 0xb2, 0xfc, 0x54, 0xe5, 0x90, 0x2a, 0x42, 0x12, 0xa2, 0x22, 0x01, 0x33, 0x5e, + 0x28, 0x6e, 0xaa, 0xb1, 0xa6, 0x2d, 0xab, 0xa4, 0xd5, 0xac, 0x67, 0x66, 0x0d, 0xfb, 0x14, 0x5c, + 0x79, 0x0a, 0x1e, 0x00, 0x8e, 0x5c, 0x38, 0xf2, 0x08, 0x94, 0x79, 0x0c, 0x2e, 0xd4, 0xfc, 0xc8, + 0x3f, 0x8b, 0x0b, 0x2a, 0x70, 0xda, 0xf9, 0xbe, 0xee, 0x9e, 0xe9, 0xfe, 0xba, 0xd5, 0x0b, 0x6f, + 0xf2, 0x4a, 0xb1, 0xb2, 0x94, 0x58, 0x32, 0x8d, 0xfc, 0x60, 0x2a, 0x85, 0x16, 0x64, 0xed, 0x06, + 0xb9, 0x7d, 0xb7, 0x10, 0x53, 0x29, 0x0a, 0x54, 0x4a, 0x48, 0xe7, 0xb1, 0x9d, 0x4c, 0x50, 0xb3, + 0xe9, 0xb1, 0x43, 0xe9, 0x4f, 0x01, 0x24, 0x47, 0xa3, 0x97, 0xa2, 0xa8, 0x29, 0xaa, 0x59, 0xa3, + 0xc9, 0x43, 0x08, 0xd5, 0xac, 0x30, 0x11, 0xc3, 0x60, 0x2f, 0xd8, 0x1f, 0x3c, 0xdc, 0x38, 0xb8, + 0xf9, 0xce, 0x91, 0xb3, 0xbe, 0x58, 0xa2, 0x9d, 0x23, 0xf9, 0x10, 0xe2, 0x56, 0xe8, 0x5c, 0x7c, + 0xdb, 0xa2, 0x1c, 0x2e, 0xdb, 0xa8, 0xcd, 0x85, 0xa8, 0xcf, 0x85, 0xfe, 0xc2, 0x98, 0x5f, 0x2c, + 0xd1, 0xa8, 0xf5, 0x67, 0xf2, 0x01, 0x44, 0x85, 0x68, 0x4f, 0x9a, 0xaa, 0xd0, 0xc3, 0xde, 0xad, + 0x61, 0x9f, 0x78, 0xb3, 0x09, 0xeb, 0x5c, 0x9f, 0x84, 0xb0, 0x82, 0x52, 0x0a, 0x99, 0xc6, 0x10, + 0xfa, 0x6c, 0x52, 0x80, 0xa8, 0x7b, 0x22, 0x4d, 0x21, 0xea, 0xe2, 0xc8, 0x06, 0xac, 0x4a, 0x64, + 0x4a, 0xb4, 0xb6, 0x9a, 0x98, 0x7a, 0x94, 0x9e, 0xc3, 0xdd, 0xb1, 0x9c, 0x7f, 0xcc, 0xb9, 0x2b, + 0xfd, 0x6c, 0x86, 0x4a, 0x93, 0x14, 0xd6, 0x38, 0xd3, 0x2c, 0x3f, 0xa9, 0x1a, 0xcc, 0x6b, 0x9c, + 0xfb, 0x98, 0x81, 0x21, 0x9f, 0x57, 0x0d, 0x7e, 0x86, 0x73, 0xe3, 0xd3, 0x88, 0xa2, 0xce, 0x95, + 0x16, 0x12, 0xf3, 0x8a, 0xdb, 0xc4, 0xfb, 0x74, 0x60, 0xc8, 0x23, 0xc3, 0x65, 0x9c, 0x6c, 0x41, + 0xe4, 0x7c, 0xf0, 0x6c, 0xd8, 0xb7, 0xe6, 0xd0, 0x9a, 0xf1, 0x2c, 0xcd, 0x80, 0x5c, 0x7f, 0x57, + 0x4d, 0x45, 0xab, 0x90, 0x8c, 0x4c, 0x96, 0x46, 0x7e, 0xaf, 0xf9, 0xce, 0xa2, 0xe6, 0xd7, 0x3a, + 0x44, 0xbd, 0x6b, 0xfa, 0x08, 0xee, 0x8d, 0xe5, 0xfc, 0x15, 0x93, 0xf5, 0x53, 0x6c, 0x50, 0xe3, + 0x6b, 0x54, 0x91, 0xbe, 0x84, 0xb7, 0x16, 0x62, 0xff, 0x4f, 0x26, 0x43, 0xd8, 0xf8, 0x14, 0xf5, + 0x53, 0xeb, 0x68, 0x94, 0xaf, 0x4a, 0x9f, 0x4b, 0xfa, 0x0d, 0xac, 0x3b, 0xfa, 0x68, 0xe4, 0x0c, + 0xa6, 0x21, 0xc7, 0xb3, 0xa2, 0x46, 0xdd, 0x35, 0xc4, 0x21, 0x42, 0xa0, 0x2f, 0x85, 0xd0, 0x76, + 0x7c, 0x62, 0x6a, 0xcf, 0x64, 0x1b, 0x22, 0x6c, 0xf9, 0x54, 0x54, 0xad, 0x9b, 0x8f, 0x98, 0x5e, + 0xe2, 0xf4, 0x2b, 0xd8, 0xfc, 0xdb, 0x9b, 0xbe, 0x86, 0x47, 0x10, 0xab, 0x51, 0x5e, 0x58, 0xd2, + 0x97, 0x71, 0x7f, 0xa1, 0x8c, 0x9b, 0x49, 0xd1, 0x48, 0xf9, 0x53, 0xfa, 0x4b, 0xd0, 0x65, 0x3c, + 0x66, 0xaa, 0x7e, 0x85, 0x9a, 0x99, 0x6e, 0x2a, 0xcd, 0xa4, 0xce, 0xb5, 0xfb, 0x24, 0xfa, 0x34, + 0xb4, 0x78, 0xac, 0x8c, 0xe9, 0x6c, 0x86, 0x72, 0x6e, 0x4c, 0xcb, 0xce, 0x64, 0xf1, 0x58, 0x91, + 0x1d, 0x88, 0x15, 0xca, 0x73, 0x94, 0x57, 0x33, 0x12, 0x39, 0x22, 0xe3, 0xe4, 0x3d, 0x58, 0x6f, + 0x44, 0xc1, 0x9a, 0xdc, 0x45, 0x57, 0xdc, 0x8f, 0x49, 0x62, 0xd9, 0x2f, 0x0d, 0x99, 0x71, 0xb2, + 0x09, 0xa1, 0x66, 0xaa, 0x36, 0xe6, 0x95, 0xbd, 0x60, 0xbf, 0x47, 0x57, 0x0d, 0xcc, 0x38, 0x79, + 0x07, 0x06, 0xf8, 0x1d, 0x16, 0x33, 0x2d, 0xec, 0xed, 0xab, 0x56, 0x1a, 0xe8, 0xa8, 0x8c, 0xa7, + 0x1f, 0xc1, 0x1b, 0xae, 0x08, 0x8a, 0x8c, 0x3f, 0x33, 0xdf, 0x8a, 0xd1, 0xb7, 0x10, 0x1c, 0x6d, + 0x05, 0x2b, 0xd4, 0x9e, 0xc9, 0x1d, 0xe8, 0x4d, 0x54, 0xe9, 0x25, 0x37, 0xc7, 0xf4, 0xe7, 0x65, + 0xd8, 0x7e, 0xa6, 0x34, 0x3b, 0x6e, 0x2a, 0x75, 0x7a, 0xa5, 0x43, 0x37, 0x5a, 0x0f, 0xa0, 0x6f, + 0xb6, 0xc7, 0x3f, 0x8a, 0xda, 0xe9, 0x46, 0xad, 0x2b, 0x19, 0x42, 0xc8, 0x38, 0x97, 0x66, 0x9f, + 0xb8, 0x77, 0x3a, 0x68, 0x14, 0xd2, 0xd5, 0x04, 0xc5, 0x4c, 0xe7, 0xca, 0x2a, 0xd4, 0xa3, 0x91, + 0x27, 0x8e, 0xc8, 0x03, 0x08, 0x25, 0x96, 0x95, 0x68, 0xd5, 0xb0, 0xbf, 0xd7, 0xb3, 0x9b, 0xe1, + 0xfa, 0x2a, 0xa3, 0xd6, 0x96, 0xb5, 0x27, 0x82, 0x76, 0x7e, 0xe4, 0x3e, 0x80, 0x2a, 0x4e, 0x71, + 0xc2, 0xf2, 0x73, 0x94, 0x5e, 0xb1, 0xd8, 0x31, 0x5f, 0xa3, 0x24, 0x8f, 0x61, 0xcd, 0xd4, 0x85, + 0x79, 0x77, 0xef, 0xaa, 0xbd, 0x77, 0xeb, 0xc6, 0xbd, 0x63, 0xe3, 0xe1, 0x2e, 0x57, 0x34, 0xd1, + 0xd7, 0x10, 0x79, 0x17, 0x12, 0x6c, 0x8d, 0x6c, 0x3c, 0x9f, 0x36, 0xac, 0x1d, 0x86, 0x7b, 0xc1, + 0x7e, 0x42, 0x07, 0x9e, 0x3b, 0x6c, 0x58, 0x9b, 0xfe, 0x19, 0xc0, 0xce, 0xad, 0xea, 0xf9, 0xc1, + 0x7c, 0xdf, 0x2f, 0x2e, 0xaf, 0xdf, 0xee, 0xad, 0xfa, 0x5d, 0xb6, 0x8c, 0x3a, 0x67, 0x32, 0x82, + 0x35, 0x89, 0x5a, 0xce, 0x2f, 0x13, 0x5f, 0xb6, 0x89, 0xaf, 0x1f, 0xf8, 0x45, 0xee, 0x12, 0xa4, + 0x89, 0x75, 0xea, 0xb2, 0xb5, 0x43, 0x7b, 0x63, 0x43, 0x85, 0xca, 0x6f, 0xa7, 0xc7, 0x30, 0x50, + 0x2d, 0x9b, 0xaa, 0x53, 0xa1, 0xbb, 0xc9, 0xfb, 0xd7, 0x5e, 0x42, 0x17, 0x91, 0x71, 0xf3, 0x05, + 0x5b, 0x61, 0xd4, 0x70, 0x65, 0xaf, 0xb7, 0x9f, 0x50, 0x8f, 0xd2, 0x1f, 0x03, 0xd8, 0x7c, 0x8e, + 0xba, 0xf0, 0x95, 0x1f, 0xb2, 0x12, 0x55, 0x37, 0x38, 0x0b, 0x6f, 0x06, 0xaf, 0xfb, 0xe6, 0x16, + 0x44, 0xae, 0x79, 0x15, 0xb7, 0x63, 0xd4, 0xa3, 0xa1, 0xc5, 0x19, 0xb7, 0x6d, 0xc7, 0x72, 0x82, + 0xad, 0xbe, 0xaa, 0x35, 0xf6, 0x8c, 0x8b, 0x9c, 0xb2, 0xd2, 0x04, 0xba, 0x49, 0xea, 0xd3, 0xd0, + 0xe0, 0x8c, 0xab, 0xf4, 0xfb, 0x00, 0x06, 0x36, 0xcb, 0x43, 0x66, 0x57, 0xd0, 0x7f, 0x6b, 0xcf, + 0x3d, 0x58, 0x31, 0x17, 0xba, 0xb6, 0x24, 0xd4, 0x01, 0x23, 0x52, 0x71, 0x3a, 0x6b, 0x6b, 0x33, + 0xd9, 0x56, 0x24, 0x87, 0xc8, 0xdb, 0x10, 0xab, 0xd9, 0x64, 0xc2, 0x64, 0x85, 0x2e, 0x9f, 0x84, + 0x5e, 0x11, 0x4f, 0xd2, 0x5f, 0x2f, 0x76, 0x83, 0xdf, 0x2e, 0x76, 0x83, 0xdf, 0x2f, 0x76, 0x83, + 0x1f, 0xfe, 0xd8, 0x5d, 0x82, 0x3b, 0x42, 0x96, 0x07, 0xba, 0xaa, 0xcf, 0x0f, 0xea, 0x73, 0xfb, + 0x8f, 0x7d, 0xbc, 0x6a, 0x7f, 0x46, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x99, 0x3a, 0xcc, + 0xff, 0x07, 0x00, 0x00, } func (m *S3LockResult) Marshal() (dAtA []byte, err error) { @@ -1364,6 +1521,120 @@ func (m *TryMarkDeleteResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *GetDisaggConfigRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetDisaggConfigRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GetDisaggConfigRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + return len(dAtA) - i, nil +} + +func (m *DisaggS3Config) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DisaggS3Config) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DisaggS3Config) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Endpoint) > 0 { + i -= len(m.Endpoint) + copy(dAtA[i:], m.Endpoint) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Endpoint))) + i-- + dAtA[i] = 0x1a + } + if len(m.Root) > 0 { + i -= len(m.Root) + copy(dAtA[i:], m.Root) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Root))) + i-- + dAtA[i] = 0x12 + } + if len(m.Bucket) > 0 { + i -= len(m.Bucket) + copy(dAtA[i:], m.Bucket) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Bucket))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetDisaggConfigResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetDisaggConfigResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GetDisaggConfigResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.S3Config != nil { + { + size, err := m.S3Config.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *DisaggTaskMeta) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1657,20 +1928,20 @@ func (m *FetchDisaggPagesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) copy(dAtA[i:], m.XXX_unrecognized) } if len(m.PageIds) > 0 { - dAtA10 := make([]byte, len(m.PageIds)*10) - var j9 int + dAtA11 := make([]byte, len(m.PageIds)*10) + var j10 int for _, num := range m.PageIds { for num >= 1<<7 { - dAtA10[j9] = uint8(uint64(num)&0x7f | 0x80) + dAtA11[j10] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j9++ + j10++ } - dAtA10[j9] = uint8(num) - j9++ + dAtA11[j10] = uint8(num) + j10++ } - i -= j9 - copy(dAtA[i:], dAtA10[:j9]) - i = encodeVarintDisaggregated(dAtA, i, uint64(j9)) + i -= j10 + copy(dAtA[i:], dAtA11[:j10]) + i = encodeVarintDisaggregated(dAtA, i, uint64(j10)) i-- dAtA[i] = 0x22 } @@ -1937,6 +2208,58 @@ func (m *TryMarkDeleteResponse) Size() (n int) { return n } +func (m *GetDisaggConfigRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *DisaggS3Config) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Bucket) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + l = len(m.Root) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + l = len(m.Endpoint) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *GetDisaggConfigResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.S3Config != nil { + l = m.S3Config.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *DisaggTaskMeta) Size() (n int) { if m == nil { return 0 @@ -2852,6 +3175,291 @@ func (m *TryMarkDeleteResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *GetDisaggConfigRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetDisaggConfigRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetDisaggConfigRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DisaggS3Config) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DisaggS3Config: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DisaggS3Config: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bucket", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bucket = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Root", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Root = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Endpoint", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Endpoint = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetDisaggConfigResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetDisaggConfigResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetDisaggConfigResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field S3Config", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.S3Config == nil { + m.S3Config = &DisaggS3Config{} + } + if err := m.S3Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *DisaggTaskMeta) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pkg/tikvpb/tikvpb.pb.go b/pkg/tikvpb/tikvpb.pb.go index f63526e..c660ca3 100644 --- a/pkg/tikvpb/tikvpb.pb.go +++ b/pkg/tikvpb/tikvpb.pb.go @@ -1248,161 +1248,162 @@ func init() { func init() { proto.RegisterFile("tikvpb.proto", fileDescriptor_274fe050f0c997b3) } var fileDescriptor_274fe050f0c997b3 = []byte{ - // 2454 bytes of a gzipped FileDescriptorProto + // 2478 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x9a, 0xdb, 0x52, 0x1b, 0xc9, - 0xf9, 0xc0, 0x47, 0xb6, 0xcc, 0xa1, 0x31, 0x06, 0x1a, 0x6c, 0x86, 0x31, 0x06, 0x7b, 0xcc, 0xfa, - 0xcf, 0xee, 0xbf, 0x8a, 0xd8, 0x5e, 0x67, 0x9d, 0x3d, 0x64, 0x83, 0x11, 0x36, 0xb0, 0x82, 0x5a, - 0x95, 0x24, 0xef, 0x3a, 0xa9, 0xa4, 0xa8, 0x46, 0x6a, 0x0b, 0x05, 0x69, 0x46, 0x99, 0x69, 0x06, - 0xeb, 0x4d, 0xf2, 0x08, 0x5b, 0x79, 0x92, 0x5c, 0xa6, 0x2a, 0x17, 0xc9, 0x65, 0xca, 0x79, 0x88, - 0x5c, 0x26, 0xd5, 0x3d, 0x33, 0x7d, 0x9a, 0xee, 0x11, 0x7b, 0xe5, 0xe1, 0x3b, 0xf5, 0xf9, 0xeb, - 0xdf, 0xd7, 0x16, 0xb8, 0x4d, 0xfa, 0x17, 0xc9, 0xe8, 0x6c, 0x67, 0x14, 0x85, 0x24, 0x84, 0x53, - 0xe9, 0x5f, 0xde, 0x52, 0x27, 0x1c, 0x45, 0x61, 0x07, 0xc7, 0x71, 0x18, 0xa5, 0x2a, 0x6f, 0xfe, - 0x22, 0x89, 0x46, 0x9d, 0xdc, 0xd2, 0x9b, 0x1d, 0x8e, 0x46, 0xd9, 0xe7, 0x72, 0x84, 0xde, 0x93, - 0xd3, 0x18, 0x47, 0x09, 0x8e, 0xb8, 0x7e, 0xb9, 0xdb, 0x8f, 0x51, 0xaf, 0x17, 0xe1, 0x1e, 0x22, - 0xb8, 0x9b, 0x09, 0x57, 0x7a, 0x61, 0x2f, 0x64, 0x9f, 0xbf, 0xa0, 0x5f, 0x99, 0x74, 0x21, 0xba, - 0x8c, 0x09, 0xfb, 0x4c, 0x05, 0xfe, 0xdf, 0x17, 0xc1, 0xca, 0x1e, 0x22, 0x9d, 0xf3, 0x5a, 0x38, - 0x1c, 0xa2, 0xa0, 0x1b, 0x37, 0xf1, 0x9f, 0x2e, 0x71, 0x4c, 0xe0, 0x2e, 0x98, 0x89, 0xd2, 0xcf, - 0xd8, 0xad, 0x3c, 0xbc, 0xb9, 0x3d, 0xf7, 0x7c, 0x6b, 0x27, 0xeb, 0xbf, 0xc9, 0x7e, 0x27, 0xfb, - 0xb7, 0xc9, 0xbd, 0xe0, 0x26, 0x98, 0xcb, 0xbe, 0x4f, 0xfb, 0xdd, 0xd8, 0xbd, 0xf1, 0xf0, 0xe6, - 0x76, 0xb5, 0x09, 0x32, 0xd1, 0x51, 0x37, 0xf6, 0xfe, 0xb1, 0x00, 0xa6, 0xf3, 0xe6, 0xfe, 0x0f, - 0xdc, 0x3c, 0xc0, 0xc4, 0xad, 0x3c, 0xac, 0x6c, 0xcf, 0x3d, 0x5f, 0xde, 0xc9, 0x27, 0xe0, 0x00, - 0x93, 0xcc, 0xe2, 0xd0, 0x69, 0x52, 0x0b, 0xf8, 0x19, 0xa8, 0xb6, 0x3a, 0x28, 0x70, 0x6f, 0x30, - 0xcb, 0x15, 0x6e, 0x49, 0x85, 0xc2, 0x94, 0xd9, 0xc0, 0x2f, 0xc0, 0x4c, 0x23, 0xc2, 0x57, 0x51, - 0x9f, 0x60, 0xf7, 0x26, 0xb3, 0x77, 0xb9, 0x7d, 0xae, 0x10, 0x3e, 0xdc, 0x16, 0x3e, 0x05, 0x53, - 0x74, 0x78, 0x7d, 0xe2, 0x56, 0x99, 0xd7, 0x3d, 0xee, 0x95, 0x8a, 0x85, 0x4f, 0x66, 0x47, 0x3d, - 0x8e, 0x86, 0xa3, 0x30, 0x22, 0xee, 0x2d, 0xcd, 0x23, 0x15, 0x4b, 0x1e, 0xa9, 0x00, 0x7e, 0x0e, - 0xa6, 0x6b, 0x03, 0x8c, 0x82, 0xcb, 0x91, 0x3b, 0xc5, 0x5c, 0x56, 0x45, 0x23, 0xa9, 0x5c, 0xf8, - 0xe4, 0x96, 0x74, 0x40, 0x6c, 0xf2, 0xe9, 0x54, 0x4d, 0x6b, 0x03, 0xca, 0x15, 0xd2, 0x80, 0x72, - 0x11, 0x7c, 0x0d, 0xe6, 0xd9, 0x77, 0x33, 0x1c, 0x0c, 0xce, 0x50, 0xe7, 0xc2, 0x9d, 0x61, 0xce, - 0x0f, 0x54, 0xe7, 0x5c, 0x2b, 0x22, 0xa8, 0x5e, 0xb4, 0x79, 0x3a, 0xaf, 0xc7, 0x61, 0xe7, 0xc2, - 0x9d, 0xd5, 0x9a, 0xcf, 0x15, 0x52, 0xf3, 0xb9, 0x08, 0xfe, 0x06, 0xcc, 0x35, 0x71, 0x1c, 0x0e, - 0x12, 0xcc, 0x5c, 0x01, 0x73, 0xbd, 0xcf, 0x5d, 0x25, 0x9d, 0xf0, 0x96, 0x3d, 0xe0, 0x16, 0xb8, - 0x71, 0x50, 0x73, 0xe7, 0x98, 0x1f, 0x14, 0x9b, 0xa3, 0x26, 0xcc, 0x6f, 0x1c, 0xd4, 0x68, 0x33, - 0xfb, 0x78, 0x80, 0x09, 0x6e, 0xa2, 0xa0, 0x87, 0xdd, 0xdb, 0x5a, 0x33, 0x92, 0x4e, 0x6a, 0x46, - 0x92, 0xd2, 0x55, 0x6c, 0xa2, 0x2b, 0x3a, 0xb9, 0xf3, 0xda, 0x2a, 0xa6, 0x62, 0x69, 0x15, 0x53, - 0x01, 0x1b, 0x19, 0xba, 0xe2, 0x6b, 0x72, 0x47, 0x1f, 0x99, 0xd0, 0xc9, 0x23, 0x13, 0xd2, 0xac, - 0xc9, 0xc6, 0x25, 0x71, 0x17, 0x8a, 0x4d, 0x36, 0x2e, 0xb5, 0x26, 0x1b, 0x97, 0x4a, 0x93, 0xd4, - 0x6d, 0xd1, 0xd2, 0xa4, 0xe2, 0x2b, 0x7b, 0xc0, 0x2f, 0xc1, 0x6c, 0x13, 0x5d, 0xa5, 0xe3, 0x76, - 0x97, 0x98, 0xfb, 0x9a, 0xec, 0x9e, 0xcd, 0x08, 0x77, 0x16, 0xd6, 0xf0, 0x10, 0xdc, 0xc9, 0x23, - 0x65, 0xfe, 0x90, 0xf9, 0x6f, 0x14, 0x9a, 0xd7, 0x83, 0x68, 0x7e, 0x74, 0xfb, 0x37, 0xd1, 0x15, - 0x3b, 0xc9, 0xcb, 0xda, 0xf6, 0xcf, 0xe4, 0xd2, 0xf6, 0xcf, 0x24, 0x59, 0xf3, 0xf2, 0x1a, 0xaf, - 0x14, 0x9b, 0x37, 0x2e, 0xb3, 0xe6, 0x07, 0xf7, 0xc0, 0xed, 0xbc, 0x43, 0xac, 0x0f, 0x77, 0x59, - 0x9c, 0xf5, 0xc2, 0x30, 0xd4, 0x8e, 0x28, 0x3e, 0xf0, 0x57, 0x60, 0xae, 0x26, 0x52, 0xb7, 0x7b, - 0x2f, 0x4b, 0x48, 0x72, 0x3a, 0x97, 0x56, 0x40, 0x32, 0x85, 0x75, 0xb0, 0xd0, 0xc0, 0x71, 0xdc, - 0x1f, 0xf6, 0x63, 0xd2, 0xef, 0xb0, 0x33, 0xb1, 0xca, 0xbc, 0x37, 0x45, 0x7a, 0x52, 0xf5, 0x22, - 0x90, 0xee, 0x09, 0x7f, 0x04, 0xcb, 0x92, 0x88, 0x9f, 0x70, 0x97, 0x05, 0x7c, 0x6c, 0x0a, 0x58, - 0x3c, 0xe7, 0xa6, 0x08, 0x74, 0xb6, 0x6b, 0xe7, 0xb8, 0x73, 0xd1, 0xfe, 0x10, 0xb4, 0x08, 0x22, - 0x97, 0xb1, 0xbb, 0xa6, 0xcd, 0xb6, 0xaa, 0x96, 0x66, 0x5b, 0x55, 0xd0, 0xd9, 0x6e, 0x7f, 0x08, - 0x0e, 0x31, 0x8a, 0xc8, 0x1e, 0x46, 0xc4, 0xf5, 0xb4, 0xd9, 0x96, 0x95, 0xd2, 0x6c, 0xcb, 0x62, - 0x3a, 0x4c, 0x16, 0xb5, 0x85, 0x3b, 0x61, 0xd0, 0x45, 0xd1, 0x98, 0x0e, 0x3e, 0x76, 0x1f, 0x69, - 0xc3, 0x34, 0xd8, 0x48, 0xc3, 0x34, 0x68, 0xb3, 0x4d, 0x25, 0xaf, 0xa4, 0x5f, 0xdc, 0x54, 0x92, - 0x5a, 0xdd, 0x54, 0xf2, 0xb2, 0xb6, 0x01, 0x7c, 0x33, 0x40, 0xf1, 0x39, 0x9d, 0xbd, 0x76, 0xf8, - 0x03, 0x8e, 0xe2, 0x7e, 0x18, 0xb8, 0x8f, 0x59, 0x34, 0x9f, 0x47, 0x2b, 0x9a, 0x88, 0x88, 0x06, - 0x7f, 0xd8, 0x07, 0x6b, 0x8d, 0x08, 0x8f, 0x50, 0x84, 0x0d, 0xc1, 0xb7, 0x58, 0xf0, 0x4f, 0xe5, - 0x5b, 0xcd, 0x6c, 0x29, 0xda, 0xb0, 0x47, 0x83, 0x5f, 0x81, 0x5b, 0xaf, 0x87, 0x23, 0x32, 0x76, - 0xff, 0x9b, 0xde, 0xc3, 0x8f, 0x8c, 0x37, 0x3e, 0x33, 0x11, 0xf1, 0x52, 0x97, 0xbd, 0x5b, 0xe0, - 0x66, 0x67, 0xd8, 0xfd, 0xae, 0x3a, 0x73, 0x7f, 0xf1, 0x91, 0xff, 0x97, 0x25, 0x70, 0x57, 0xa3, - 0x84, 0x78, 0x14, 0x06, 0x31, 0x86, 0xfb, 0x60, 0x36, 0xca, 0xbe, 0x73, 0xae, 0x78, 0x62, 0xe1, - 0x8a, 0xd4, 0x6a, 0x27, 0xff, 0x68, 0x0a, 0xc7, 0x89, 0x68, 0x01, 0x9f, 0x82, 0x15, 0x12, 0xa1, - 0x20, 0xa6, 0x57, 0xed, 0xe9, 0x00, 0x8d, 0x71, 0x74, 0x3a, 0x08, 0x51, 0x97, 0x51, 0x40, 0xb5, - 0x09, 0xb9, 0xee, 0x98, 0xaa, 0x8e, 0x43, 0xd4, 0xf5, 0xfe, 0xb3, 0x00, 0x66, 0x78, 0x2f, 0xb7, - 0x65, 0x1a, 0x59, 0x51, 0x69, 0x24, 0x35, 0xc9, 0x71, 0xe4, 0xff, 0x15, 0x1c, 0xb9, 0xab, 0xe1, - 0x08, 0xb7, 0x4d, 0x79, 0xe4, 0x65, 0x81, 0x47, 0xd6, 0x0c, 0x3c, 0xc2, 0x9d, 0x04, 0x90, 0x3c, - 0xd3, 0x80, 0x64, 0xb5, 0x00, 0x24, 0xdc, 0x29, 0x27, 0x92, 0x67, 0x1a, 0x91, 0xac, 0x16, 0x88, - 0x44, 0xb8, 0x64, 0x48, 0xf2, 0x42, 0x47, 0x12, 0xb7, 0x88, 0x24, 0xdc, 0x89, 0x33, 0xc9, 0xcb, - 0x02, 0x93, 0xac, 0x19, 0x98, 0x44, 0x0c, 0x8a, 0x5f, 0x7d, 0x6f, 0xcc, 0x50, 0xb2, 0x61, 0x83, - 0x12, 0x1e, 0x42, 0xa3, 0x92, 0x97, 0x05, 0x2a, 0x59, 0x33, 0x50, 0x89, 0xe8, 0x00, 0xc7, 0x92, - 0x5d, 0x13, 0x96, 0xac, 0x9b, 0xb1, 0x84, 0xbb, 0x2b, 0x5c, 0xf2, 0x89, 0xc4, 0x25, 0xcb, 0x0a, - 0x97, 0x70, 0x7b, 0x0a, 0x26, 0xbb, 0x26, 0x30, 0x59, 0x37, 0x83, 0x89, 0x68, 0x48, 0xbe, 0xaf, - 0x9e, 0x69, 0x64, 0xb2, 0x5a, 0x20, 0x13, 0xb1, 0x9a, 0x19, 0x9a, 0xec, 0x9a, 0xd0, 0x64, 0xdd, - 0x8c, 0x26, 0xd2, 0xe8, 0x24, 0x36, 0x79, 0xa6, 0xb1, 0xc9, 0x6a, 0x81, 0x4d, 0x94, 0x46, 0x29, - 0x5b, 0xec, 0x9a, 0xe0, 0x64, 0xdd, 0x0c, 0x27, 0xc5, 0x46, 0x69, 0x84, 0xaf, 0x8a, 0x74, 0xe2, - 0x99, 0xe8, 0x84, 0x7b, 0x4b, 0x78, 0x72, 0x64, 0xc1, 0x93, 0x4d, 0x2b, 0x9e, 0xf0, 0x28, 0x3a, - 0x9f, 0xbc, 0xd0, 0xf9, 0xc4, 0x2d, 0xf2, 0x89, 0x38, 0x0b, 0x39, 0xa0, 0x1c, 0x59, 0x00, 0x65, - 0xd3, 0x0a, 0x28, 0x4a, 0x07, 0xe4, 0x15, 0xaf, 0x19, 0x09, 0xe5, 0x81, 0x85, 0x50, 0x78, 0x18, - 0x15, 0x51, 0xbe, 0x34, 0x21, 0xca, 0x5d, 0x0d, 0x51, 0xc4, 0x3a, 0xc8, 0x97, 0xd9, 0xb1, 0x8d, - 0x51, 0x1e, 0xda, 0x19, 0x85, 0x47, 0x2a, 0x40, 0xca, 0xbb, 0x32, 0x48, 0xd9, 0x2a, 0x87, 0x14, - 0x1e, 0xd5, 0x48, 0x29, 0x47, 0x16, 0x4a, 0xd9, 0xb4, 0x52, 0x8a, 0x98, 0x72, 0x0d, 0x53, 0x6a, - 0x46, 0x4c, 0x79, 0x60, 0xc1, 0x14, 0x31, 0xe5, 0x0a, 0xa7, 0xbc, 0x2b, 0xe3, 0x94, 0xad, 0x72, - 0x4e, 0x11, 0x23, 0x35, 0x81, 0xca, 0x91, 0x05, 0x54, 0x36, 0xad, 0xa0, 0xa2, 0x6c, 0x2e, 0x79, - 0x71, 0xdf, 0x96, 0x90, 0xca, 0xe3, 0x52, 0x52, 0xe1, 0x21, 0x4d, 0xa8, 0xf2, 0xc7, 0xc9, 0xa8, - 0xf2, 0xd9, 0x75, 0x50, 0x85, 0x37, 0x52, 0xc2, 0x2a, 0x5f, 0x6b, 0xac, 0xe2, 0x97, 0xb1, 0x0a, - 0x0f, 0x68, 0x82, 0x95, 0x3d, 0xb0, 0x98, 0x5e, 0x28, 0xe8, 0x3d, 0x39, 0xc1, 0x71, 0x8c, 0x7a, - 0x18, 0xee, 0x80, 0xea, 0x30, 0xee, 0xe5, 0x84, 0xe2, 0xed, 0xa8, 0xcf, 0x2e, 0x92, 0x65, 0x93, - 0xd9, 0xf9, 0x2d, 0xb0, 0x66, 0x65, 0x24, 0xb8, 0x0a, 0xa6, 0x49, 0x8a, 0x2a, 0x8c, 0x28, 0xaa, - 0xcd, 0x29, 0xc2, 0x30, 0x05, 0x3e, 0x00, 0xa0, 0x8b, 0x07, 0x68, 0x7c, 0x4a, 0xfa, 0x43, 0xcc, - 0x10, 0xa2, 0xda, 0x9c, 0x65, 0x92, 0x76, 0x7f, 0x88, 0xfd, 0x5f, 0x02, 0xcf, 0x3e, 0x18, 0x6b, - 0xd4, 0xe7, 0x3f, 0x3d, 0x01, 0xd5, 0x76, 0xff, 0x22, 0x81, 0x2f, 0xc0, 0xad, 0x7a, 0x42, 0x13, - 0xb9, 0xe9, 0x3d, 0xc5, 0x33, 0x62, 0x8d, 0xef, 0xc0, 0x97, 0x60, 0xaa, 0x9e, 0xb0, 0xec, 0x61, - 0x7c, 0x5c, 0xf1, 0xcc, 0x8c, 0xe3, 0x3b, 0xb0, 0x06, 0x40, 0x3d, 0xe1, 0xc8, 0x62, 0x7d, 0x69, - 0xf1, 0xec, 0xcc, 0xe3, 0x3b, 0xf0, 0x1d, 0x58, 0xaa, 0x27, 0x7a, 0xf6, 0x98, 0x54, 0x16, 0x79, - 0x13, 0x73, 0x92, 0xef, 0xc0, 0x2e, 0xb8, 0x5b, 0xff, 0xc1, 0x94, 0x41, 0xae, 0x53, 0x23, 0x79, - 0xd7, 0xca, 0x51, 0xbe, 0x03, 0xbf, 0x07, 0x77, 0xea, 0x89, 0x92, 0x10, 0x4a, 0xcb, 0x1c, 0xaf, - 0x3c, 0xbb, 0xf8, 0x0e, 0x7c, 0x0b, 0x16, 0xeb, 0x89, 0x96, 0xa8, 0x26, 0x54, 0x60, 0xde, 0xa4, - 0xdc, 0x97, 0xcd, 0x46, 0x62, 0xca, 0x32, 0xd7, 0x29, 0xa5, 0xbc, 0x6b, 0xe5, 0x31, 0xdf, 0x81, - 0xbf, 0x06, 0x33, 0xf5, 0x24, 0x03, 0x52, 0xcb, 0x23, 0x9a, 0x67, 0x63, 0xd9, 0xdc, 0x3d, 0x83, - 0x53, 0xcb, 0x8b, 0x9a, 0x67, 0xe3, 0x5a, 0xdf, 0x81, 0xbb, 0x60, 0xb6, 0x9e, 0xe4, 0x98, 0x6a, - 0x7b, 0x5e, 0xf3, 0xac, 0x90, 0x9b, 0x6f, 0x69, 0xce, 0x43, 0xd6, 0xb7, 0x36, 0xcf, 0x4e, 0xbc, - 0xbe, 0x03, 0x9b, 0x60, 0x21, 0x0b, 0xc2, 0xb7, 0x5c, 0xf9, 0xc3, 0x9b, 0x37, 0x01, 0x81, 0xf3, - 0x8e, 0x71, 0x90, 0xb5, 0xbe, 0xc2, 0x79, 0x76, 0x12, 0xf6, 0x1d, 0x78, 0x0c, 0xe6, 0xeb, 0x89, - 0x8c, 0xb3, 0x65, 0x4f, 0x72, 0x5e, 0x29, 0x18, 0xfb, 0x0e, 0x7c, 0x06, 0xaa, 0xf5, 0xe4, 0xa0, - 0x06, 0x0d, 0xef, 0x73, 0x9e, 0x89, 0x8d, 0xf3, 0x0e, 0xc8, 0xd0, 0x53, 0xf6, 0x58, 0xe7, 0x95, - 0x02, 0xb3, 0xef, 0xc0, 0x04, 0xdc, 0x67, 0xf9, 0xc7, 0x72, 0x61, 0x5c, 0xbf, 0x48, 0xf6, 0x7e, - 0xc6, 0x25, 0xe5, 0x3b, 0x10, 0x81, 0x95, 0x7a, 0x62, 0x68, 0xf0, 0x1a, 0x25, 0xbf, 0x77, 0x9d, - 0xcb, 0xd6, 0x77, 0xe0, 0xd7, 0x39, 0xfe, 0x43, 0xcb, 0x93, 0xa4, 0x67, 0x2b, 0x08, 0x7c, 0x07, - 0x7e, 0xa7, 0x14, 0x02, 0xb0, 0xec, 0x75, 0xd2, 0x2b, 0xad, 0x0f, 0x78, 0x47, 0x28, 0xa7, 0x5b, - 0x1e, 0x2a, 0x3d, 0x5b, 0x91, 0xa0, 0x76, 0x84, 0x46, 0x28, 0x7b, 0xb3, 0xf4, 0x4a, 0x6b, 0x06, - 0xdf, 0x81, 0xfb, 0x52, 0x99, 0x00, 0xed, 0xcf, 0x97, 0x5e, 0x49, 0xed, 0xe0, 0x3b, 0xb0, 0xa5, - 0x17, 0x0c, 0x70, 0xc2, 0x4b, 0xa6, 0x37, 0xa9, 0x94, 0xf0, 0x1d, 0xf8, 0x2d, 0x2f, 0x1d, 0xa0, - 0xed, 0x51, 0xd3, 0xb3, 0x56, 0x13, 0xbc, 0x53, 0xf2, 0xb1, 0x98, 0xf0, 0xbe, 0xe9, 0x4d, 0x2a, - 0x2f, 0x7c, 0x07, 0x9e, 0xa8, 0xe5, 0x04, 0x2c, 0x7d, 0xea, 0xf4, 0xca, 0xcb, 0x0c, 0x1e, 0xee, - 0x00, 0x93, 0x3a, 0x1e, 0xb7, 0xdb, 0xc7, 0x6a, 0x38, 0x2e, 0x36, 0x86, 0x93, 0xb4, 0x3c, 0xdc, - 0x1b, 0xb0, 0xc4, 0x08, 0x75, 0x48, 0x0f, 0xdb, 0xab, 0xa0, 0xdb, 0xba, 0x42, 0x23, 0x75, 0x87, - 0xd5, 0x5e, 0xb5, 0x8c, 0x3b, 0x8c, 0xc9, 0xb5, 0x1d, 0xc6, 0xee, 0xa4, 0xf8, 0x72, 0xa8, 0xee, - 0xb0, 0x5c, 0x6a, 0xdc, 0x61, 0x42, 0xc9, 0x63, 0x9d, 0x02, 0xf8, 0x36, 0x88, 0xd1, 0x7b, 0xbc, - 0x8f, 0x63, 0x12, 0x85, 0xe3, 0x74, 0x29, 0xc4, 0xa1, 0x2e, 0x2a, 0x8b, 0x87, 0xda, 0x64, 0xc3, - 0x1b, 0xc0, 0x60, 0xa5, 0x89, 0x7b, 0xfd, 0x98, 0xe0, 0x88, 0xa6, 0xd2, 0xef, 0xcf, 0x52, 0xbe, - 0x84, 0x5b, 0x52, 0xa2, 0x2d, 0xaa, 0xf3, 0x46, 0x3e, 0x99, 0x60, 0xc5, 0x9b, 0xf9, 0x3d, 0x58, - 0x62, 0xa3, 0x53, 0xda, 0x78, 0xa4, 0x5e, 0xe0, 0xa6, 0x06, 0xfc, 0x32, 0x13, 0x79, 0x96, 0x9a, - 0x78, 0x18, 0xa6, 0xb7, 0x01, 0x0f, 0xef, 0x4b, 0x9d, 0xd3, 0x95, 0xc5, 0x59, 0x32, 0xd9, 0xf0, - 0x06, 0x7e, 0x0b, 0x16, 0x1b, 0xe7, 0xe3, 0xb8, 0xdf, 0x41, 0x03, 0x7e, 0xdf, 0x49, 0xb8, 0xa7, - 0xa9, 0xf2, 0xe0, 0x8f, 0x4a, 0x2c, 0x78, 0xe8, 0x6f, 0x94, 0xea, 0x18, 0x1a, 0x9f, 0xee, 0x3d, - 0x73, 0xb5, 0xcc, 0x32, 0xd0, 0x92, 0xe4, 0xdd, 0x22, 0x11, 0x46, 0xc3, 0x9f, 0x19, 0xe3, 0x69, - 0x05, 0x9e, 0x64, 0xc5, 0x87, 0xdc, 0x91, 0x35, 0xc5, 0x3c, 0x45, 0x00, 0x9e, 0xce, 0x0c, 0x2a, - 0x29, 0x5c, 0x4b, 0xaf, 0x11, 0xe1, 0x84, 0x67, 0x6c, 0x6f, 0x52, 0xf5, 0xc8, 0x92, 0x7e, 0x95, - 0x56, 0x3c, 0xb0, 0xa4, 0x0c, 0xf2, 0x96, 0x35, 0xdd, 0x7e, 0x18, 0x60, 0xdf, 0xd9, 0xae, 0xc0, - 0x6f, 0xc1, 0x2c, 0xaf, 0xae, 0xa0, 0xab, 0x14, 0x69, 0xd7, 0xf2, 0x7f, 0x05, 0x66, 0x5a, 0x01, - 0x1a, 0xc5, 0xe7, 0x21, 0x45, 0x69, 0xd5, 0x28, 0x57, 0xd4, 0xce, 0x2f, 0x83, 0x0b, 0x7b, 0x88, - 0x0e, 0xb8, 0xd3, 0x46, 0x67, 0x03, 0x4c, 0x78, 0xa0, 0x2d, 0xcd, 0x54, 0x55, 0x8b, 0x23, 0x56, - 0x6e, 0x95, 0x4f, 0xd0, 0x76, 0xe5, 0x69, 0x85, 0xa6, 0x9e, 0xd6, 0x68, 0x40, 0xf1, 0xb5, 0x47, - 0x2f, 0x7f, 0x91, 0x7a, 0x24, 0x69, 0x31, 0xf5, 0x28, 0x4a, 0xe5, 0x72, 0xc3, 0xa8, 0x7b, 0x14, - 0x74, 0xf1, 0x07, 0xf9, 0x72, 0xcb, 0x65, 0x86, 0xcb, 0x4d, 0xa8, 0xe4, 0x1c, 0x7d, 0x92, 0x74, - 0x3a, 0x07, 0x98, 0xec, 0x8d, 0xeb, 0x78, 0x2c, 0xe5, 0x68, 0x59, 0x5c, 0xcc, 0xd1, 0xaa, 0x56, - 0x3e, 0x88, 0x5c, 0xd3, 0x22, 0x28, 0x22, 0xed, 0x58, 0x3a, 0x88, 0xba, 0xaa, 0x78, 0x10, 0x8b, - 0x16, 0x12, 0x21, 0xcf, 0x2b, 0x85, 0x2e, 0x5c, 0x2f, 0xfb, 0xa9, 0x81, 0xf7, 0xa0, 0xf4, 0x3f, - 0x0c, 0xb2, 0xf5, 0x38, 0x04, 0x0b, 0xfb, 0xfd, 0x78, 0x44, 0x2d, 0x4e, 0x1a, 0x8d, 0x36, 0x8a, - 0x29, 0x26, 0x0f, 0x47, 0xa3, 0x9d, 0x5c, 0x4a, 0x45, 0x02, 0x93, 0x8b, 0x1a, 0xde, 0xbb, 0x3d, - 0x30, 0x5f, 0x43, 0x41, 0x07, 0x0f, 0xf2, 0x38, 0xf7, 0x98, 0x75, 0x2a, 0x93, 0xa3, 0xac, 0x16, - 0xe4, 0x3c, 0x46, 0x1b, 0xdc, 0x7b, 0x1d, 0x13, 0x74, 0x36, 0xe8, 0xc7, 0xb4, 0x3b, 0xb5, 0x30, - 0x08, 0x70, 0x87, 0xa4, 0x94, 0x48, 0x9d, 0xcc, 0xca, 0x3c, 0x30, 0x64, 0x36, 0x27, 0x8d, 0xc6, - 0x3e, 0x22, 0xa8, 0x81, 0x3a, 0x17, 0x98, 0xb0, 0xd3, 0xfe, 0x05, 0x98, 0x3e, 0x8a, 0x5f, 0x0d, - 0xfa, 0x09, 0x86, 0xcb, 0xcc, 0x24, 0xfb, 0x4b, 0x94, 0xf8, 0x8a, 0x90, 0xf7, 0xe6, 0x10, 0xcc, - 0xa5, 0x39, 0x1d, 0xa3, 0x2e, 0x8e, 0xa4, 0xbd, 0x2a, 0x49, 0x8b, 0x7b, 0x55, 0x51, 0x66, 0x8f, - 0x10, 0x75, 0x70, 0xe7, 0x00, 0x93, 0x16, 0x09, 0x23, 0xdc, 0x42, 0xef, 0x71, 0xbb, 0x25, 0x6f, - 0x7c, 0x21, 0x35, 0x6c, 0x7c, 0x59, 0x99, 0x05, 0x6b, 0x83, 0x85, 0x03, 0x4c, 0x68, 0x92, 0xfe, - 0x11, 0xf5, 0xc9, 0x51, 0xf0, 0x3e, 0x94, 0x2a, 0x7f, 0x4d, 0x53, 0xac, 0xfc, 0x0b, 0x06, 0x59, - 0xd4, 0x6f, 0xc0, 0x34, 0x03, 0x8b, 0x0e, 0x81, 0x4a, 0xa9, 0x49, 0x25, 0x86, 0x1a, 0x30, 0x57, - 0x64, 0xde, 0x7f, 0x00, 0x50, 0x0a, 0x7c, 0xd8, 0x8f, 0x49, 0x18, 0x8d, 0xa5, 0xfb, 0xad, 0xa8, - 0x2c, 0xde, 0x6f, 0x26, 0x9b, 0x2c, 0x7c, 0x0b, 0x00, 0x12, 0x8d, 0x5f, 0x75, 0xbb, 0xd9, 0xbd, - 0xa6, 0xfe, 0x92, 0xa7, 0xcd, 0x55, 0xe2, 0x38, 0xd9, 0x2d, 0xa4, 0x1b, 0x7f, 0x9e, 0x44, 0xe3, - 0x13, 0x14, 0x5d, 0x64, 0x50, 0xfb, 0xb8, 0xe8, 0x25, 0xb4, 0xa2, 0xa6, 0x2f, 0x35, 0xe2, 0xd1, - 0x03, 0xb0, 0xcc, 0x77, 0xeb, 0x3e, 0xf3, 0x60, 0x87, 0xe2, 0x53, 0xcd, 0xdd, 0x60, 0x23, 0xca, - 0xab, 0x6b, 0x98, 0xf2, 0xf6, 0x7e, 0x07, 0x16, 0xdf, 0x60, 0xca, 0xd9, 0x4c, 0xd9, 0x40, 0x3d, - 0x1c, 0xc3, 0x27, 0x5a, 0x04, 0xdd, 0x40, 0x24, 0x48, 0xd5, 0x8e, 0x29, 0xc5, 0x01, 0xda, 0x7b, - 0xf2, 0xcf, 0x9f, 0x66, 0x2a, 0x7f, 0xfd, 0xb8, 0x51, 0xf9, 0xdb, 0xc7, 0x8d, 0xca, 0xbf, 0x3e, - 0x6e, 0x54, 0xfe, 0xfc, 0xef, 0x0d, 0x07, 0x2c, 0x86, 0x51, 0x8f, 0xa5, 0x98, 0x9d, 0x8b, 0x84, - 0xfd, 0x4a, 0xea, 0x6c, 0x8a, 0xfd, 0xf3, 0xf9, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x1b, 0x54, - 0xde, 0xc2, 0xc2, 0x25, 0x00, 0x00, + 0x19, 0x80, 0x47, 0xb6, 0xcc, 0xa1, 0x31, 0x06, 0x1a, 0x6c, 0x86, 0x31, 0x06, 0x7b, 0x8c, 0xbd, + 0xec, 0xa6, 0x8a, 0xd8, 0x5e, 0x67, 0x9d, 0x3d, 0x64, 0x83, 0x11, 0x36, 0xb0, 0x82, 0x5a, 0x95, + 0x24, 0xef, 0x3a, 0xa9, 0xa4, 0xa8, 0x46, 0x6a, 0xc4, 0x04, 0x69, 0x46, 0x99, 0x69, 0x06, 0xeb, + 0x1d, 0xf2, 0x00, 0x79, 0x84, 0x54, 0x9e, 0x24, 0x97, 0xa9, 0xca, 0x45, 0x72, 0x99, 0x72, 0x1e, + 0x22, 0x97, 0x49, 0x75, 0xcf, 0x4c, 0x9f, 0xa6, 0x67, 0xa4, 0xbd, 0xf2, 0xf0, 0x9f, 0xfa, 0xfc, + 0xf7, 0xf7, 0xb7, 0x05, 0x6e, 0x13, 0xef, 0x32, 0x1e, 0x9e, 0xed, 0x0c, 0xc3, 0x80, 0x04, 0x70, + 0x2a, 0xf9, 0xcb, 0x59, 0xea, 0x04, 0xc3, 0x30, 0xe8, 0xe0, 0x28, 0x0a, 0xc2, 0x44, 0xe5, 0xcc, + 0x5f, 0xc6, 0xe1, 0xb0, 0x93, 0x59, 0x3a, 0xb3, 0x83, 0xe1, 0x30, 0xfd, 0x5c, 0x0e, 0xd1, 0x39, + 0x39, 0x8d, 0x70, 0x18, 0xe3, 0x90, 0xeb, 0x97, 0xbb, 0x5e, 0x84, 0x7a, 0xbd, 0x10, 0xf7, 0x10, + 0xc1, 0xdd, 0x54, 0xb8, 0xd2, 0x0b, 0x7a, 0x01, 0xfb, 0xfc, 0x39, 0xfd, 0x4a, 0xa5, 0x0b, 0xe1, + 0x55, 0x44, 0xd8, 0x67, 0x22, 0x70, 0xff, 0xb1, 0x08, 0x56, 0xf6, 0x10, 0xe9, 0x5c, 0xd4, 0x82, + 0xc1, 0x00, 0xf9, 0xdd, 0xa8, 0x89, 0xff, 0x78, 0x85, 0x23, 0x02, 0x77, 0xc1, 0x4c, 0x98, 0x7c, + 0x46, 0x76, 0xe5, 0xe1, 0xcd, 0xed, 0xb9, 0x17, 0x5b, 0x3b, 0x69, 0xff, 0x4d, 0xf6, 0x3b, 0xe9, + 0xbf, 0x4d, 0xee, 0x05, 0x37, 0xc1, 0x5c, 0xfa, 0x7d, 0xea, 0x75, 0x23, 0xfb, 0xc6, 0xc3, 0x9b, + 0xdb, 0xd5, 0x26, 0x48, 0x45, 0x47, 0xdd, 0xc8, 0xf9, 0xe7, 0x02, 0x98, 0xce, 0x9a, 0xfb, 0x04, + 0xdc, 0x3c, 0xc0, 0xc4, 0xae, 0x3c, 0xac, 0x6c, 0xcf, 0xbd, 0x58, 0xde, 0xc9, 0x26, 0xe0, 0x00, + 0x93, 0xd4, 0xe2, 0xd0, 0x6a, 0x52, 0x0b, 0xf8, 0x19, 0xa8, 0xb6, 0x3a, 0xc8, 0xb7, 0x6f, 0x30, + 0xcb, 0x15, 0x6e, 0x49, 0x85, 0xc2, 0x94, 0xd9, 0xc0, 0x2f, 0xc0, 0x4c, 0x23, 0xc4, 0xd7, 0xa1, + 0x47, 0xb0, 0x7d, 0x93, 0xd9, 0xdb, 0xdc, 0x3e, 0x53, 0x08, 0x1f, 0x6e, 0x0b, 0x9f, 0x81, 0x29, + 0x3a, 0x3c, 0x8f, 0xd8, 0x55, 0xe6, 0x75, 0x8f, 0x7b, 0x25, 0x62, 0xe1, 0x93, 0xda, 0x51, 0x8f, + 0xa3, 0xc1, 0x30, 0x08, 0x89, 0x7d, 0x4b, 0xf3, 0x48, 0xc4, 0x92, 0x47, 0x22, 0x80, 0x9f, 0x83, + 0xe9, 0x5a, 0x1f, 0x23, 0xff, 0x6a, 0x68, 0x4f, 0x31, 0x97, 0x55, 0xd1, 0x48, 0x22, 0x17, 0x3e, + 0x99, 0x25, 0x1d, 0x10, 0x9b, 0x7c, 0x3a, 0x55, 0xd3, 0xda, 0x80, 0x32, 0x85, 0x34, 0xa0, 0x4c, + 0x04, 0xdf, 0x80, 0x79, 0xf6, 0xdd, 0x0c, 0xfa, 0xfd, 0x33, 0xd4, 0xb9, 0xb4, 0x67, 0x98, 0xf3, + 0x03, 0xd5, 0x39, 0xd3, 0x8a, 0x08, 0xaa, 0x17, 0x6d, 0x9e, 0xce, 0xeb, 0x71, 0xd0, 0xb9, 0xb4, + 0x67, 0xb5, 0xe6, 0x33, 0x85, 0xd4, 0x7c, 0x26, 0x82, 0xbf, 0x06, 0x73, 0x4d, 0x1c, 0x05, 0xfd, + 0x18, 0x33, 0x57, 0xc0, 0x5c, 0xef, 0x73, 0x57, 0x49, 0x27, 0xbc, 0x65, 0x0f, 0xb8, 0x05, 0x6e, + 0x1c, 0xd4, 0xec, 0x39, 0xe6, 0x07, 0xc5, 0xe6, 0xa8, 0x09, 0xf3, 0x1b, 0x07, 0x35, 0xda, 0xcc, + 0x3e, 0xee, 0x63, 0x82, 0x9b, 0xc8, 0xef, 0x61, 0xfb, 0xb6, 0xd6, 0x8c, 0xa4, 0x93, 0x9a, 0x91, + 0xa4, 0x74, 0x15, 0x9b, 0xe8, 0x9a, 0x4e, 0xee, 0xbc, 0xb6, 0x8a, 0x89, 0x58, 0x5a, 0xc5, 0x44, + 0xc0, 0x46, 0x86, 0xae, 0xf9, 0x9a, 0xdc, 0xd1, 0x47, 0x26, 0x74, 0xf2, 0xc8, 0x84, 0x34, 0x6d, + 0xb2, 0x71, 0x45, 0xec, 0x85, 0x7c, 0x93, 0x8d, 0x2b, 0xad, 0xc9, 0xc6, 0x95, 0xd2, 0x24, 0x75, + 0x5b, 0x2c, 0x68, 0x52, 0xf1, 0x95, 0x3d, 0xe0, 0x97, 0x60, 0xb6, 0x89, 0xae, 0x93, 0x71, 0xdb, + 0x4b, 0xcc, 0x7d, 0x4d, 0x76, 0x4f, 0x67, 0x84, 0x3b, 0x0b, 0x6b, 0x78, 0x08, 0xee, 0x64, 0x91, + 0x52, 0x7f, 0xc8, 0xfc, 0x37, 0x72, 0xcd, 0xeb, 0x41, 0x34, 0x3f, 0xba, 0xfd, 0x9b, 0xe8, 0x9a, + 0x9d, 0xe4, 0x65, 0x6d, 0xfb, 0xa7, 0x72, 0x69, 0xfb, 0xa7, 0x92, 0xb4, 0x79, 0x79, 0x8d, 0x57, + 0xf2, 0xcd, 0x1b, 0x97, 0x59, 0xf3, 0x83, 0x7b, 0xe0, 0x76, 0xd6, 0x21, 0xd6, 0x87, 0xbb, 0x2c, + 0xce, 0x7a, 0x6e, 0x18, 0x6a, 0x47, 0x14, 0x1f, 0xf8, 0x4b, 0x30, 0x57, 0x13, 0xa9, 0xdb, 0xbe, + 0x97, 0x26, 0x24, 0x39, 0x9d, 0x4b, 0x2b, 0x20, 0x99, 0xc2, 0x3a, 0x58, 0x68, 0xe0, 0x28, 0xf2, + 0x06, 0x5e, 0x44, 0xbc, 0x0e, 0x3b, 0x13, 0xab, 0xcc, 0x7b, 0x53, 0xa4, 0x27, 0x55, 0x2f, 0x02, + 0xe9, 0x9e, 0xf0, 0x47, 0xb0, 0x2c, 0x89, 0xf8, 0x09, 0xb7, 0x59, 0xc0, 0xc7, 0xa6, 0x80, 0xf9, + 0x73, 0x6e, 0x8a, 0x40, 0x67, 0xbb, 0x76, 0x81, 0x3b, 0x97, 0xed, 0x0f, 0x7e, 0x8b, 0x20, 0x72, + 0x15, 0xd9, 0x6b, 0xda, 0x6c, 0xab, 0x6a, 0x69, 0xb6, 0x55, 0x05, 0x9d, 0xed, 0xf6, 0x07, 0xff, + 0x10, 0xa3, 0x90, 0xec, 0x61, 0x44, 0x6c, 0x47, 0x9b, 0x6d, 0x59, 0x29, 0xcd, 0xb6, 0x2c, 0xa6, + 0xc3, 0x64, 0x51, 0x5b, 0xb8, 0x13, 0xf8, 0x5d, 0x14, 0x8e, 0xe8, 0xe0, 0x23, 0xfb, 0x91, 0x36, + 0x4c, 0x83, 0x8d, 0x34, 0x4c, 0x83, 0x36, 0xdd, 0x54, 0xf2, 0x4a, 0xba, 0xf9, 0x4d, 0x25, 0xa9, + 0xd5, 0x4d, 0x25, 0x2f, 0x6b, 0x1b, 0xc0, 0xb7, 0x7d, 0x14, 0x5d, 0xd0, 0xd9, 0x6b, 0x07, 0x3f, + 0xe0, 0x30, 0xf2, 0x02, 0xdf, 0x7e, 0xcc, 0xa2, 0xb9, 0x3c, 0x5a, 0xde, 0x44, 0x44, 0x34, 0xf8, + 0x43, 0x0f, 0xac, 0x35, 0x42, 0x3c, 0x44, 0x21, 0x36, 0x04, 0xdf, 0x62, 0xc1, 0x3f, 0x95, 0x6f, + 0x35, 0xb3, 0xa5, 0x68, 0xa3, 0x38, 0x1a, 0xfc, 0x0a, 0xdc, 0x7a, 0x33, 0x18, 0x92, 0x91, 0xfd, + 0xbf, 0xe4, 0x1e, 0x7e, 0x64, 0xbc, 0xf1, 0x99, 0x89, 0x88, 0x97, 0xb8, 0xec, 0xdd, 0x02, 0x37, + 0x3b, 0x83, 0xee, 0x77, 0xd5, 0x99, 0xfb, 0x8b, 0x8f, 0xdc, 0xbf, 0x2e, 0x81, 0xbb, 0x1a, 0x25, + 0x44, 0xc3, 0xc0, 0x8f, 0x30, 0xdc, 0x07, 0xb3, 0x61, 0xfa, 0x9d, 0x71, 0xc5, 0xd3, 0x02, 0xae, + 0x48, 0xac, 0x76, 0xb2, 0x8f, 0xa6, 0x70, 0x1c, 0x8b, 0x16, 0xf0, 0x19, 0x58, 0x21, 0x21, 0xf2, + 0x23, 0x7a, 0xd5, 0x9e, 0xf6, 0xd1, 0x08, 0x87, 0xa7, 0xfd, 0x00, 0x75, 0x19, 0x05, 0x54, 0x9b, + 0x90, 0xeb, 0x8e, 0xa9, 0xea, 0x38, 0x40, 0x5d, 0xe7, 0xbf, 0x0b, 0x60, 0x86, 0xf7, 0x72, 0x5b, + 0xa6, 0x91, 0x15, 0x95, 0x46, 0x12, 0x93, 0x0c, 0x47, 0x7e, 0xa6, 0xe0, 0xc8, 0x5d, 0x0d, 0x47, + 0xb8, 0x6d, 0xc2, 0x23, 0xaf, 0x72, 0x3c, 0xb2, 0x66, 0xe0, 0x11, 0xee, 0x24, 0x80, 0xe4, 0xb9, + 0x06, 0x24, 0xab, 0x39, 0x20, 0xe1, 0x4e, 0x19, 0x91, 0x3c, 0xd7, 0x88, 0x64, 0x35, 0x47, 0x24, + 0xc2, 0x25, 0x45, 0x92, 0x97, 0x3a, 0x92, 0xd8, 0x79, 0x24, 0xe1, 0x4e, 0x9c, 0x49, 0x5e, 0xe5, + 0x98, 0x64, 0xcd, 0xc0, 0x24, 0x62, 0x50, 0xfc, 0xea, 0x7b, 0x6b, 0x86, 0x92, 0x8d, 0x22, 0x28, + 0xe1, 0x21, 0x34, 0x2a, 0x79, 0x95, 0xa3, 0x92, 0x35, 0x03, 0x95, 0x88, 0x0e, 0x70, 0x2c, 0xd9, + 0x35, 0x61, 0xc9, 0xba, 0x19, 0x4b, 0xb8, 0xbb, 0xc2, 0x25, 0x4f, 0x24, 0x2e, 0x59, 0x56, 0xb8, + 0x84, 0xdb, 0x53, 0x30, 0xd9, 0x35, 0x81, 0xc9, 0xba, 0x19, 0x4c, 0x44, 0x43, 0xf2, 0x7d, 0xf5, + 0x5c, 0x23, 0x93, 0xd5, 0x1c, 0x99, 0x88, 0xd5, 0x4c, 0xd1, 0x64, 0xd7, 0x84, 0x26, 0xeb, 0x66, + 0x34, 0x91, 0x46, 0x27, 0xb1, 0xc9, 0x73, 0x8d, 0x4d, 0x56, 0x73, 0x6c, 0xa2, 0x34, 0x4a, 0xd9, + 0x62, 0xd7, 0x04, 0x27, 0xeb, 0x66, 0x38, 0xc9, 0x37, 0x4a, 0x23, 0x7c, 0x95, 0xa7, 0x13, 0xc7, + 0x44, 0x27, 0xdc, 0x5b, 0xc2, 0x93, 0xa3, 0x02, 0x3c, 0xd9, 0x2c, 0xc4, 0x13, 0x1e, 0x45, 0xe7, + 0x93, 0x97, 0x3a, 0x9f, 0xd8, 0x79, 0x3e, 0x11, 0x67, 0x21, 0x03, 0x94, 0xa3, 0x02, 0x40, 0xd9, + 0x2c, 0x04, 0x14, 0xa5, 0x03, 0xf2, 0x8a, 0xd7, 0x8c, 0x84, 0xf2, 0xa0, 0x80, 0x50, 0x78, 0x18, + 0x15, 0x51, 0xbe, 0x34, 0x21, 0xca, 0x5d, 0x0d, 0x51, 0xc4, 0x3a, 0xc8, 0x97, 0xd9, 0x71, 0x11, + 0xa3, 0x3c, 0x2c, 0x66, 0x14, 0x1e, 0x29, 0x07, 0x29, 0xef, 0xcb, 0x20, 0x65, 0xab, 0x1c, 0x52, + 0x78, 0x54, 0x23, 0xa5, 0x1c, 0x15, 0x50, 0xca, 0x66, 0x21, 0xa5, 0x88, 0x29, 0xd7, 0x30, 0xa5, + 0x66, 0xc4, 0x94, 0x07, 0x05, 0x98, 0x22, 0xa6, 0x5c, 0xe1, 0x94, 0xf7, 0x65, 0x9c, 0xb2, 0x55, + 0xce, 0x29, 0x62, 0xa4, 0x26, 0x50, 0x39, 0x2a, 0x00, 0x95, 0xcd, 0x42, 0x50, 0x51, 0x36, 0x97, + 0xbc, 0xb8, 0xef, 0x4a, 0x48, 0xe5, 0x71, 0x29, 0xa9, 0xf0, 0x90, 0x26, 0x54, 0xf9, 0xc3, 0x78, + 0x54, 0xf9, 0x6c, 0x12, 0x54, 0xe1, 0x8d, 0x94, 0xb0, 0xca, 0xd7, 0x1a, 0xab, 0xb8, 0x65, 0xac, + 0xc2, 0x03, 0x9a, 0x60, 0x65, 0x0f, 0x2c, 0x26, 0x17, 0x0a, 0x3a, 0x27, 0x27, 0x38, 0x8a, 0x50, + 0x0f, 0xc3, 0x1d, 0x50, 0x1d, 0x44, 0xbd, 0x8c, 0x50, 0x9c, 0x1d, 0xf5, 0xd9, 0x45, 0xb2, 0x6c, + 0x32, 0x3b, 0xb7, 0x05, 0xd6, 0x0a, 0x19, 0x09, 0xae, 0x82, 0x69, 0x92, 0xa0, 0x0a, 0x23, 0x8a, + 0x6a, 0x73, 0x8a, 0x30, 0x4c, 0x81, 0x0f, 0x00, 0xe8, 0xe2, 0x3e, 0x1a, 0x9d, 0x12, 0x6f, 0x80, + 0x19, 0x42, 0x54, 0x9b, 0xb3, 0x4c, 0xd2, 0xf6, 0x06, 0xd8, 0xfd, 0x05, 0x70, 0x8a, 0x07, 0x53, + 0x18, 0xf5, 0xc5, 0x9f, 0x3e, 0x01, 0xd5, 0xb6, 0x77, 0x19, 0xc3, 0x97, 0xe0, 0x56, 0x3d, 0xa6, + 0x89, 0xdc, 0xf4, 0x9e, 0xe2, 0x18, 0xb1, 0xc6, 0xb5, 0xe0, 0x2b, 0x30, 0x55, 0x8f, 0x59, 0xf6, + 0x30, 0x3e, 0xae, 0x38, 0x66, 0xc6, 0x71, 0x2d, 0x58, 0x03, 0xa0, 0x1e, 0x73, 0x64, 0x29, 0x7c, + 0x69, 0x71, 0x8a, 0x99, 0xc7, 0xb5, 0xe0, 0x7b, 0xb0, 0x54, 0x8f, 0xf5, 0xec, 0x31, 0xae, 0x2c, + 0x72, 0xc6, 0xe6, 0x24, 0xd7, 0x82, 0x5d, 0x70, 0xb7, 0xfe, 0x83, 0x29, 0x83, 0x4c, 0x52, 0x23, + 0x39, 0x13, 0xe5, 0x28, 0xd7, 0x82, 0xdf, 0x83, 0x3b, 0xf5, 0x58, 0x49, 0x08, 0xa5, 0x65, 0x8e, + 0x53, 0x9e, 0x5d, 0x5c, 0x0b, 0xbe, 0x03, 0x8b, 0xf5, 0x58, 0x4b, 0x54, 0x63, 0x2a, 0x30, 0x67, + 0x5c, 0xee, 0x4b, 0x67, 0x23, 0x36, 0x65, 0x99, 0x49, 0x4a, 0x29, 0x67, 0xa2, 0x3c, 0xe6, 0x5a, + 0xf0, 0x57, 0x60, 0xa6, 0x1e, 0xa7, 0x40, 0x5a, 0xf0, 0x88, 0xe6, 0x14, 0xb1, 0x6c, 0xe6, 0x9e, + 0xc2, 0x69, 0xc1, 0x8b, 0x9a, 0x53, 0xc4, 0xb5, 0xae, 0x05, 0x77, 0xc1, 0x6c, 0x3d, 0xce, 0x30, + 0xb5, 0xe8, 0x79, 0xcd, 0x29, 0x84, 0xdc, 0x6c, 0x4b, 0x73, 0x1e, 0x2a, 0x7c, 0x6b, 0x73, 0x8a, + 0x89, 0xd7, 0xb5, 0x60, 0x13, 0x2c, 0xa4, 0x41, 0xf8, 0x96, 0x2b, 0x7f, 0x78, 0x73, 0xc6, 0x20, + 0x70, 0xd6, 0x31, 0x0e, 0xb2, 0x85, 0xaf, 0x70, 0x4e, 0x31, 0x09, 0xbb, 0x16, 0x3c, 0x06, 0xf3, + 0xf5, 0x58, 0xc6, 0xd9, 0xb2, 0x27, 0x39, 0xa7, 0x14, 0x8c, 0x5d, 0x0b, 0x3e, 0x07, 0xd5, 0x7a, + 0x7c, 0x50, 0x83, 0x86, 0xf7, 0x39, 0xc7, 0xc4, 0xc6, 0x59, 0x07, 0x64, 0xe8, 0x29, 0x7b, 0xac, + 0x73, 0x4a, 0x81, 0xd9, 0xb5, 0x60, 0x0c, 0xee, 0xb3, 0xfc, 0x53, 0x70, 0x61, 0x4c, 0x5e, 0x24, + 0x3b, 0x3f, 0xe1, 0x92, 0x72, 0x2d, 0x88, 0xc0, 0x4a, 0x3d, 0x36, 0x34, 0x38, 0x41, 0xc9, 0xef, + 0x4c, 0x72, 0xd9, 0xba, 0x16, 0xfc, 0x3a, 0xc3, 0x7f, 0x58, 0xf0, 0x24, 0xe9, 0x14, 0x15, 0x04, + 0xae, 0x05, 0xbf, 0x53, 0x0a, 0x01, 0x58, 0xf6, 0x3a, 0xe9, 0x94, 0xd6, 0x07, 0xbc, 0x23, 0x94, + 0xd3, 0x0b, 0x1e, 0x2a, 0x9d, 0xa2, 0x22, 0x41, 0xed, 0x08, 0x8d, 0x50, 0xf6, 0x66, 0xe9, 0x94, + 0xd6, 0x0c, 0xae, 0x05, 0xf7, 0xa5, 0x32, 0x01, 0x16, 0x3f, 0x5f, 0x3a, 0x25, 0xb5, 0x83, 0x6b, + 0xc1, 0x96, 0x5e, 0x30, 0xc0, 0x31, 0x2f, 0x99, 0xce, 0xb8, 0x52, 0xc2, 0xb5, 0xe0, 0xb7, 0xbc, + 0x74, 0x80, 0x45, 0x8f, 0x9a, 0x4e, 0x61, 0x35, 0xc1, 0x3b, 0x25, 0x1f, 0x8b, 0x31, 0xef, 0x9b, + 0xce, 0xb8, 0xf2, 0xc2, 0xb5, 0xe0, 0x89, 0x5a, 0x4e, 0xc0, 0xd2, 0xa7, 0x4e, 0xa7, 0xbc, 0xcc, + 0xe0, 0xe1, 0x0e, 0x30, 0xa9, 0xe3, 0x51, 0xbb, 0x7d, 0xac, 0x86, 0xe3, 0x62, 0x63, 0x38, 0x49, + 0xcb, 0xc3, 0xbd, 0x05, 0x4b, 0x8c, 0x50, 0x07, 0xf4, 0xb0, 0xbd, 0xf6, 0xbb, 0xad, 0x6b, 0x34, + 0x54, 0x77, 0x58, 0xed, 0x75, 0xcb, 0xb8, 0xc3, 0x98, 0x5c, 0xdb, 0x61, 0xec, 0x4e, 0x8a, 0xae, + 0x06, 0xea, 0x0e, 0xcb, 0xa4, 0xc6, 0x1d, 0x26, 0x94, 0x3c, 0xd6, 0x29, 0x80, 0xef, 0xfc, 0x08, + 0x9d, 0xe3, 0x7d, 0x1c, 0x91, 0x30, 0x18, 0x25, 0x4b, 0x21, 0x0e, 0x75, 0x5e, 0x99, 0x3f, 0xd4, + 0x26, 0x1b, 0xde, 0x00, 0x06, 0x2b, 0x4d, 0xdc, 0xf3, 0x22, 0x82, 0x43, 0x9a, 0x4a, 0xbf, 0x3f, + 0x4b, 0xf8, 0x12, 0x6e, 0x49, 0x89, 0x36, 0xaf, 0xce, 0x1a, 0x79, 0x32, 0xc6, 0x8a, 0x37, 0xf3, + 0x3b, 0xb0, 0xc4, 0x46, 0xa7, 0xb4, 0xf1, 0x48, 0xbd, 0xc0, 0x4d, 0x0d, 0xb8, 0x65, 0x26, 0xf2, + 0x2c, 0x35, 0xf1, 0x20, 0x48, 0x6e, 0x03, 0x1e, 0xde, 0x95, 0x3a, 0xa7, 0x2b, 0xf3, 0xb3, 0x64, + 0xb2, 0xe1, 0x0d, 0xfc, 0x06, 0x2c, 0x36, 0x2e, 0x46, 0x91, 0xd7, 0x41, 0x7d, 0x7e, 0xdf, 0x49, + 0xb8, 0xa7, 0xa9, 0xb2, 0xe0, 0x8f, 0x4a, 0x2c, 0x78, 0xe8, 0x6f, 0x94, 0xea, 0x18, 0x1a, 0x9f, + 0xee, 0x1d, 0x73, 0xb5, 0xcc, 0x32, 0xd0, 0x92, 0xe4, 0xdd, 0x22, 0x21, 0x46, 0x83, 0x9f, 0x18, + 0xe3, 0x59, 0x05, 0x9e, 0xa4, 0xc5, 0x87, 0xdc, 0x91, 0x35, 0xc5, 0x3c, 0x41, 0x00, 0x9e, 0xce, + 0x0c, 0x2a, 0x29, 0x5c, 0x4b, 0xaf, 0x11, 0xe1, 0x98, 0x67, 0x6c, 0x67, 0x5c, 0xf5, 0xc8, 0x92, + 0x7e, 0x95, 0x56, 0x3c, 0xb0, 0xa4, 0x0c, 0x72, 0x96, 0x35, 0xdd, 0x7e, 0xe0, 0x63, 0xd7, 0xda, + 0xae, 0xc0, 0x6f, 0xc1, 0x2c, 0xaf, 0xae, 0xa0, 0xad, 0x14, 0x69, 0x13, 0xf9, 0xbf, 0x06, 0x33, + 0x2d, 0x1f, 0x0d, 0xa3, 0x8b, 0x80, 0xa2, 0xb4, 0x6a, 0x94, 0x29, 0x6a, 0x17, 0x57, 0xfe, 0x65, + 0x71, 0x88, 0x0e, 0xb8, 0xd3, 0x46, 0x67, 0x7d, 0x4c, 0x78, 0xa0, 0x2d, 0xcd, 0x54, 0x55, 0x8b, + 0x23, 0x56, 0x6e, 0x95, 0x4d, 0xd0, 0x76, 0xe5, 0x59, 0x85, 0xa6, 0x9e, 0xd6, 0xb0, 0x4f, 0xf1, + 0xb5, 0x47, 0x2f, 0x7f, 0x91, 0x7a, 0x24, 0x69, 0x3e, 0xf5, 0x28, 0x4a, 0xe5, 0x72, 0xc3, 0xa8, + 0x7b, 0xe4, 0x77, 0xf1, 0x07, 0xf9, 0x72, 0xcb, 0x64, 0x86, 0xcb, 0x4d, 0xa8, 0xe4, 0x1c, 0x7d, + 0x12, 0x77, 0x3a, 0x07, 0x98, 0xec, 0x8d, 0xea, 0x78, 0x24, 0xe5, 0x68, 0x59, 0x9c, 0xcf, 0xd1, + 0xaa, 0x56, 0x3e, 0x88, 0x5c, 0xd3, 0x22, 0x28, 0x24, 0xed, 0x48, 0x3a, 0x88, 0xba, 0x2a, 0x7f, + 0x10, 0xf3, 0x16, 0x12, 0x21, 0xcf, 0x2b, 0x85, 0x2e, 0x5c, 0x2f, 0xfb, 0xa9, 0x81, 0xf3, 0xa0, + 0xf4, 0x3f, 0x0c, 0xd2, 0xf5, 0x38, 0x04, 0x0b, 0xfb, 0x5e, 0x34, 0xa4, 0x16, 0x27, 0x8d, 0x46, + 0x1b, 0x45, 0x14, 0x93, 0x07, 0xc3, 0xe1, 0x4e, 0x26, 0xa5, 0x22, 0x81, 0xc9, 0x79, 0x0d, 0xef, + 0xdd, 0x1e, 0x98, 0xaf, 0x21, 0xbf, 0x83, 0xfb, 0x59, 0x9c, 0x7b, 0xcc, 0x3a, 0x91, 0xc9, 0x51, + 0x56, 0x73, 0x72, 0x1e, 0xa3, 0x0d, 0xee, 0xbd, 0x89, 0x08, 0x3a, 0xeb, 0x7b, 0x11, 0xed, 0x4e, + 0x2d, 0xf0, 0x7d, 0xdc, 0x21, 0x09, 0x25, 0x52, 0x27, 0xb3, 0x32, 0x0b, 0x0c, 0x99, 0xcd, 0x49, + 0xa3, 0xb1, 0x8f, 0x08, 0x6a, 0xa0, 0xce, 0x25, 0x26, 0xec, 0xb4, 0x7f, 0x01, 0xa6, 0x8f, 0xa2, + 0xd7, 0x7d, 0x2f, 0xc6, 0x70, 0x99, 0x99, 0xa4, 0x7f, 0x89, 0x12, 0x5f, 0x11, 0xf2, 0xde, 0x1c, + 0x82, 0xb9, 0x24, 0xa7, 0x63, 0xd4, 0xc5, 0xa1, 0xb4, 0x57, 0x25, 0x69, 0x7e, 0xaf, 0x2a, 0xca, + 0xf4, 0x11, 0xa2, 0x0e, 0xee, 0x1c, 0x60, 0xd2, 0x22, 0x41, 0x88, 0x5b, 0xe8, 0x1c, 0xb7, 0x5b, + 0xf2, 0xc6, 0x17, 0x52, 0xc3, 0xc6, 0x97, 0x95, 0x69, 0xb0, 0x36, 0x58, 0x38, 0xc0, 0x84, 0x26, + 0xe9, 0x1f, 0x91, 0x47, 0x8e, 0xfc, 0xf3, 0x40, 0xaa, 0xfc, 0x35, 0x4d, 0xbe, 0xf2, 0xcf, 0x19, + 0xa4, 0x51, 0xbf, 0x01, 0xd3, 0x0c, 0x2c, 0x3a, 0x04, 0x2a, 0xa5, 0x26, 0x95, 0x18, 0x6a, 0xc0, + 0x4c, 0x91, 0x7a, 0xff, 0x1e, 0x40, 0x29, 0xf0, 0xa1, 0x17, 0x91, 0x20, 0x1c, 0x49, 0xf7, 0x5b, + 0x5e, 0x99, 0xbf, 0xdf, 0x4c, 0x36, 0x69, 0xf8, 0x16, 0x00, 0x24, 0x1c, 0xbd, 0xee, 0x76, 0xd3, + 0x7b, 0x4d, 0xfd, 0x25, 0x4f, 0x9b, 0xab, 0xc4, 0x71, 0x2a, 0xb6, 0x90, 0x6e, 0xfc, 0x79, 0x12, + 0x8e, 0x4e, 0x50, 0x78, 0x99, 0x42, 0xed, 0xe3, 0xbc, 0x97, 0xd0, 0x8a, 0x9a, 0xbe, 0xd4, 0x88, + 0x47, 0xf7, 0xc1, 0x32, 0xdf, 0xad, 0xfb, 0xcc, 0x83, 0x1d, 0x8a, 0x4f, 0x35, 0x77, 0x83, 0x8d, + 0x28, 0xaf, 0x26, 0x30, 0xe5, 0xed, 0xfd, 0x16, 0x2c, 0xbe, 0xc5, 0x94, 0xb3, 0x99, 0xb2, 0x81, + 0x7a, 0x38, 0x82, 0x4f, 0xb5, 0x08, 0xba, 0x81, 0x48, 0x90, 0xaa, 0x1d, 0x53, 0x4a, 0x07, 0xe8, + 0x8c, 0xed, 0xb8, 0xc4, 0xb1, 0x16, 0xf8, 0xe7, 0x5e, 0x0f, 0x3e, 0xd1, 0x5c, 0x34, 0x7d, 0x16, + 0xf9, 0xe9, 0x38, 0xb3, 0xac, 0xff, 0x7b, 0x4f, 0xff, 0xf5, 0x97, 0x99, 0xca, 0xdf, 0x3e, 0x6e, + 0x54, 0xfe, 0xfe, 0x71, 0xa3, 0xf2, 0xef, 0x8f, 0x1b, 0x95, 0x3f, 0xff, 0x67, 0xc3, 0x02, 0x8b, + 0x41, 0xd8, 0x63, 0x69, 0x6c, 0xe7, 0x32, 0x66, 0xbf, 0xc4, 0x3a, 0x9b, 0x62, 0xff, 0x7c, 0xfe, + 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x9e, 0x46, 0x01, 0x26, 0x26, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1510,6 +1511,8 @@ type TikvClient interface { EstablishDisaggTask(ctx context.Context, in *disaggregated.EstablishDisaggTaskRequest, opts ...grpc.CallOption) (*disaggregated.EstablishDisaggTaskResponse, error) /// Exchange page data between TiFlash write node and compute node FetchDisaggPages(ctx context.Context, in *disaggregated.FetchDisaggPagesRequest, opts ...grpc.CallOption) (Tikv_FetchDisaggPagesClient, error) + /// Compute node get configuration from Write node + GetDisaggConfig(ctx context.Context, in *disaggregated.GetDisaggConfigRequest, opts ...grpc.CallOption) (*disaggregated.GetDisaggConfigResponse, error) } type tikvClient struct { @@ -2289,6 +2292,15 @@ func (x *tikvFetchDisaggPagesClient) Recv() (*disaggregated.PagesPacket, error) return m, nil } +func (c *tikvClient) GetDisaggConfig(ctx context.Context, in *disaggregated.GetDisaggConfigRequest, opts ...grpc.CallOption) (*disaggregated.GetDisaggConfigResponse, error) { + out := new(disaggregated.GetDisaggConfigResponse) + err := c.cc.Invoke(ctx, "/tikvpb.Tikv/GetDisaggConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // TikvServer is the server API for Tikv service. type TikvServer interface { // Commands using a transactional interface. @@ -2384,6 +2396,8 @@ type TikvServer interface { EstablishDisaggTask(context.Context, *disaggregated.EstablishDisaggTaskRequest) (*disaggregated.EstablishDisaggTaskResponse, error) /// Exchange page data between TiFlash write node and compute node FetchDisaggPages(*disaggregated.FetchDisaggPagesRequest, Tikv_FetchDisaggPagesServer) error + /// Compute node get configuration from Write node + GetDisaggConfig(context.Context, *disaggregated.GetDisaggConfigRequest) (*disaggregated.GetDisaggConfigResponse, error) } // UnimplementedTikvServer can be embedded to have forward compatible implementations. @@ -2576,6 +2590,9 @@ func (*UnimplementedTikvServer) EstablishDisaggTask(ctx context.Context, req *di func (*UnimplementedTikvServer) FetchDisaggPages(req *disaggregated.FetchDisaggPagesRequest, srv Tikv_FetchDisaggPagesServer) error { return status.Errorf(codes.Unimplemented, "method FetchDisaggPages not implemented") } +func (*UnimplementedTikvServer) GetDisaggConfig(ctx context.Context, req *disaggregated.GetDisaggConfigRequest) (*disaggregated.GetDisaggConfigResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDisaggConfig not implemented") +} func RegisterTikvServer(s *grpc.Server, srv TikvServer) { s.RegisterService(&_Tikv_serviceDesc, srv) @@ -3749,6 +3766,24 @@ func (x *tikvFetchDisaggPagesServer) Send(m *disaggregated.PagesPacket) error { return x.ServerStream.SendMsg(m) } +func _Tikv_GetDisaggConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(disaggregated.GetDisaggConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TikvServer).GetDisaggConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tikvpb.Tikv/GetDisaggConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TikvServer).GetDisaggConfig(ctx, req.(*disaggregated.GetDisaggConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Tikv_serviceDesc = grpc.ServiceDesc{ ServiceName: "tikvpb.Tikv", HandlerType: (*TikvServer)(nil), @@ -3965,6 +4000,10 @@ var _Tikv_serviceDesc = grpc.ServiceDesc{ MethodName: "EstablishDisaggTask", Handler: _Tikv_EstablishDisaggTask_Handler, }, + { + MethodName: "GetDisaggConfig", + Handler: _Tikv_GetDisaggConfig_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/proto/disaggregated.proto b/proto/disaggregated.proto index 5bcf34d..d8a1019 100644 --- a/proto/disaggregated.proto +++ b/proto/disaggregated.proto @@ -48,6 +48,19 @@ message TryMarkDeleteResponse { S3LockResult result = 1; } +/// For disagg compute node init its disagg configuration /// + +message GetDisaggConfigRequest { +} +message DisaggS3Config { + string bucket = 1; + string root = 2; + string endpoint = 3; +} +message GetDisaggConfigResponse { + DisaggS3Config s3_config = 1; +} + /// For compute task dispatch and data exchange /// message DisaggTaskMeta { diff --git a/proto/tikvpb.proto b/proto/tikvpb.proto index 0bd2e14..7f8378a 100644 --- a/proto/tikvpb.proto +++ b/proto/tikvpb.proto @@ -126,6 +126,8 @@ service Tikv { rpc EstablishDisaggTask(disaggregated.EstablishDisaggTaskRequest) returns (disaggregated.EstablishDisaggTaskResponse) {} /// Exchange page data between TiFlash write node and compute node rpc FetchDisaggPages(disaggregated.FetchDisaggPagesRequest) returns (stream disaggregated.PagesPacket) {} + /// Compute node get configuration from Write node + rpc GetDisaggConfig(disaggregated.GetDisaggConfigRequest) returns (disaggregated.GetDisaggConfigResponse) {} } message BatchCommandsRequest { diff --git a/scripts/proto.lock b/scripts/proto.lock index eb926ca..217524a 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -3865,6 +3865,39 @@ } ] }, + { + "name": "GetDisaggConfigRequest" + }, + { + "name": "DisaggS3Config", + "fields": [ + { + "id": 1, + "name": "bucket", + "type": "string" + }, + { + "id": 2, + "name": "root", + "type": "string" + }, + { + "id": 3, + "name": "endpoint", + "type": "string" + } + ] + }, + { + "name": "GetDisaggConfigResponse", + "fields": [ + { + "id": 1, + "name": "s3_config", + "type": "DisaggS3Config" + } + ] + }, { "name": "DisaggTaskMeta", "fields": [ @@ -17833,6 +17866,11 @@ "in_type": "disaggregated.FetchDisaggPagesRequest", "out_type": "disaggregated.PagesPacket", "out_streamed": true + }, + { + "name": "GetDisaggConfig", + "in_type": "disaggregated.GetDisaggConfigRequest", + "out_type": "disaggregated.GetDisaggConfigResponse" } ] } -- Gitee From 1841520d34ba612a35cf4057300c891d11e0086f Mon Sep 17 00:00:00 2001 From: disksing Date: Tue, 21 Mar 2023 14:07:25 +0800 Subject: [PATCH 23/44] remove redundant tools.json file (#1084) Signed-off-by: disksing --- tools.json | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 tools.json diff --git a/tools.json b/tools.json deleted file mode 100644 index 40c3838..0000000 --- a/tools.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "Tools": [ - { - "Repository": "github.com/gogo/protobuf/protoc-gen-gofast", - "Commit": "b03c65ea87cdc3521ede29f62fe3ce239267c1bc" - }, - { - "Repository": "golang.org/x/tools/cmd/goimports", - "Commit": "04b5d21e00f1f47bd824a6ade581e7189bacde87" - }, - { - "Repository": "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway", - "Commit": "f7120437bb4f6c71f7f5076ad65a45310de2c009" - } - ], - "RetoolVersion": "1.3.7" -} -- Gitee From 0e1fa7a563f7c5b1705de1a606d2d1d12d0f071a Mon Sep 17 00:00:00 2001 From: JaySon Date: Tue, 21 Mar 2023 17:57:33 +0800 Subject: [PATCH 24/44] Support keyspace for tiflash S3 disagg read (#1085) * Support keyspace for S3 disagg Signed-off-by: JaySon-Huang --------- Signed-off-by: JaySon-Huang --- pkg/configpb/configpb.pb.gw.go | 22 +-- pkg/disaggregated/disaggregated.pb.go | 212 +++++++++++++++++--------- proto/disaggregated.proto | 3 + scripts/proto.lock | 13 ++ 4 files changed, 161 insertions(+), 89 deletions(-) diff --git a/pkg/configpb/configpb.pb.gw.go b/pkg/configpb/configpb.pb.gw.go index 9b4675b..c0385b0 100644 --- a/pkg/configpb/configpb.pb.gw.go +++ b/pkg/configpb/configpb.pb.gw.go @@ -20,7 +20,6 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -31,7 +30,6 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage -var _ = metadata.Join var ( filter_Config_Get_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} @@ -57,10 +55,7 @@ func local_request_Config_Get_0(ctx context.Context, marshaler runtime.Marshaler var protoReq GetRequest var metadata runtime.ServerMetadata - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_Get_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Get_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -127,10 +122,7 @@ func local_request_Config_Delete_0(ctx context.Context, marshaler runtime.Marsha var protoReq DeleteRequest var metadata runtime.ServerMetadata - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_Delete_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Delete_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -142,14 +134,11 @@ func local_request_Config_Delete_0(ctx context.Context, marshaler runtime.Marsha // RegisterConfigHandlerServer registers the http handlers for service Config to "mux". // UnaryRPC :call ConfigServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterConfigHandlerFromEndpoint instead. func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ConfigServer) error { mux.Handle("GET", pattern_Config_Get_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -157,7 +146,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Get_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -171,8 +159,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser mux.Handle("POST", pattern_Config_Update_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -180,7 +166,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Update_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -194,8 +179,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser mux.Handle("DELETE", pattern_Config_Delete_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -203,7 +186,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Delete_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) diff --git a/pkg/disaggregated/disaggregated.pb.go b/pkg/disaggregated/disaggregated.pb.go index 50a6ad1..ebe2df3 100644 --- a/pkg/disaggregated/disaggregated.pb.go +++ b/pkg/disaggregated/disaggregated.pb.go @@ -11,6 +11,7 @@ import ( proto "github.com/golang/protobuf/proto" coprocessor "github.com/pingcap/kvproto/pkg/coprocessor" + kvrpcpb "github.com/pingcap/kvproto/pkg/kvrpcpb" metapb "github.com/pingcap/kvproto/pkg/metapb" ) @@ -615,14 +616,16 @@ func (m *GetDisaggConfigResponse) GetS3Config() *DisaggS3Config { type DisaggTaskMeta struct { StartTs uint64 `protobuf:"varint,1,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"` // query_ts + server_id + local_query_id to represent a global unique query. - QueryTs uint64 `protobuf:"varint,2,opt,name=query_ts,json=queryTs,proto3" json:"query_ts,omitempty"` - ServerId uint64 `protobuf:"varint,3,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` - LocalQueryId uint64 `protobuf:"varint,4,opt,name=local_query_id,json=localQueryId,proto3" json:"local_query_id,omitempty"` - TaskId int64 `protobuf:"varint,5,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` - ExecutorId string `protobuf:"bytes,6,opt,name=executor_id,json=executorId,proto3" json:"executor_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + QueryTs uint64 `protobuf:"varint,2,opt,name=query_ts,json=queryTs,proto3" json:"query_ts,omitempty"` + ServerId uint64 `protobuf:"varint,3,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` + LocalQueryId uint64 `protobuf:"varint,4,opt,name=local_query_id,json=localQueryId,proto3" json:"local_query_id,omitempty"` + TaskId int64 `protobuf:"varint,5,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` + ExecutorId string `protobuf:"bytes,6,opt,name=executor_id,json=executorId,proto3" json:"executor_id,omitempty"` + KeyspaceId uint32 `protobuf:"varint,7,opt,name=keyspace_id,json=keyspaceId,proto3" json:"keyspace_id,omitempty"` + ApiVersion kvrpcpb.APIVersion `protobuf:"varint,8,opt,name=api_version,json=apiVersion,proto3,enum=kvrpcpb.APIVersion" json:"api_version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *DisaggTaskMeta) Reset() { *m = DisaggTaskMeta{} } @@ -700,6 +703,20 @@ func (m *DisaggTaskMeta) GetExecutorId() string { return "" } +func (m *DisaggTaskMeta) GetKeyspaceId() uint32 { + if m != nil { + return m.KeyspaceId + } + return 0 +} + +func (m *DisaggTaskMeta) GetApiVersion() kvrpcpb.APIVersion { + if m != nil { + return m.ApiVersion + } + return kvrpcpb.APIVersion_V1 +} + type DisaggReadError struct { Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` @@ -1115,67 +1132,70 @@ func init() { func init() { proto.RegisterFile("disaggregated.proto", fileDescriptor_1026192e39a9f8dc) } var fileDescriptor_1026192e39a9f8dc = []byte{ - // 948 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcd, 0x72, 0xdc, 0x44, - 0x10, 0xb6, 0xbc, 0x6b, 0x4b, 0xea, 0x95, 0x4d, 0x32, 0x04, 0x7b, 0x6d, 0x13, 0x63, 0x54, 0x1c, - 0x7c, 0x72, 0x55, 0xb2, 0xfc, 0x54, 0xe5, 0x90, 0x2a, 0x42, 0x12, 0xa2, 0x22, 0x01, 0x33, 0x5e, - 0x28, 0x6e, 0xaa, 0xb1, 0xa6, 0x2d, 0xab, 0xa4, 0xd5, 0xac, 0x67, 0x66, 0x0d, 0xfb, 0x14, 0x5c, - 0x79, 0x0a, 0x1e, 0x00, 0x8e, 0x5c, 0x38, 0xf2, 0x08, 0x94, 0x79, 0x0c, 0x2e, 0xd4, 0xfc, 0xc8, - 0x3f, 0x8b, 0x0b, 0x2a, 0x70, 0xda, 0xf9, 0xbe, 0xee, 0x9e, 0xe9, 0xfe, 0xba, 0xd5, 0x0b, 0x6f, - 0xf2, 0x4a, 0xb1, 0xb2, 0x94, 0x58, 0x32, 0x8d, 0xfc, 0x60, 0x2a, 0x85, 0x16, 0x64, 0xed, 0x06, - 0xb9, 0x7d, 0xb7, 0x10, 0x53, 0x29, 0x0a, 0x54, 0x4a, 0x48, 0xe7, 0xb1, 0x9d, 0x4c, 0x50, 0xb3, - 0xe9, 0xb1, 0x43, 0xe9, 0x4f, 0x01, 0x24, 0x47, 0xa3, 0x97, 0xa2, 0xa8, 0x29, 0xaa, 0x59, 0xa3, - 0xc9, 0x43, 0x08, 0xd5, 0xac, 0x30, 0x11, 0xc3, 0x60, 0x2f, 0xd8, 0x1f, 0x3c, 0xdc, 0x38, 0xb8, - 0xf9, 0xce, 0x91, 0xb3, 0xbe, 0x58, 0xa2, 0x9d, 0x23, 0xf9, 0x10, 0xe2, 0x56, 0xe8, 0x5c, 0x7c, - 0xdb, 0xa2, 0x1c, 0x2e, 0xdb, 0xa8, 0xcd, 0x85, 0xa8, 0xcf, 0x85, 0xfe, 0xc2, 0x98, 0x5f, 0x2c, - 0xd1, 0xa8, 0xf5, 0x67, 0xf2, 0x01, 0x44, 0x85, 0x68, 0x4f, 0x9a, 0xaa, 0xd0, 0xc3, 0xde, 0xad, - 0x61, 0x9f, 0x78, 0xb3, 0x09, 0xeb, 0x5c, 0x9f, 0x84, 0xb0, 0x82, 0x52, 0x0a, 0x99, 0xc6, 0x10, - 0xfa, 0x6c, 0x52, 0x80, 0xa8, 0x7b, 0x22, 0x4d, 0x21, 0xea, 0xe2, 0xc8, 0x06, 0xac, 0x4a, 0x64, - 0x4a, 0xb4, 0xb6, 0x9a, 0x98, 0x7a, 0x94, 0x9e, 0xc3, 0xdd, 0xb1, 0x9c, 0x7f, 0xcc, 0xb9, 0x2b, - 0xfd, 0x6c, 0x86, 0x4a, 0x93, 0x14, 0xd6, 0x38, 0xd3, 0x2c, 0x3f, 0xa9, 0x1a, 0xcc, 0x6b, 0x9c, - 0xfb, 0x98, 0x81, 0x21, 0x9f, 0x57, 0x0d, 0x7e, 0x86, 0x73, 0xe3, 0xd3, 0x88, 0xa2, 0xce, 0x95, - 0x16, 0x12, 0xf3, 0x8a, 0xdb, 0xc4, 0xfb, 0x74, 0x60, 0xc8, 0x23, 0xc3, 0x65, 0x9c, 0x6c, 0x41, - 0xe4, 0x7c, 0xf0, 0x6c, 0xd8, 0xb7, 0xe6, 0xd0, 0x9a, 0xf1, 0x2c, 0xcd, 0x80, 0x5c, 0x7f, 0x57, - 0x4d, 0x45, 0xab, 0x90, 0x8c, 0x4c, 0x96, 0x46, 0x7e, 0xaf, 0xf9, 0xce, 0xa2, 0xe6, 0xd7, 0x3a, - 0x44, 0xbd, 0x6b, 0xfa, 0x08, 0xee, 0x8d, 0xe5, 0xfc, 0x15, 0x93, 0xf5, 0x53, 0x6c, 0x50, 0xe3, - 0x6b, 0x54, 0x91, 0xbe, 0x84, 0xb7, 0x16, 0x62, 0xff, 0x4f, 0x26, 0x43, 0xd8, 0xf8, 0x14, 0xf5, - 0x53, 0xeb, 0x68, 0x94, 0xaf, 0x4a, 0x9f, 0x4b, 0xfa, 0x0d, 0xac, 0x3b, 0xfa, 0x68, 0xe4, 0x0c, - 0xa6, 0x21, 0xc7, 0xb3, 0xa2, 0x46, 0xdd, 0x35, 0xc4, 0x21, 0x42, 0xa0, 0x2f, 0x85, 0xd0, 0x76, - 0x7c, 0x62, 0x6a, 0xcf, 0x64, 0x1b, 0x22, 0x6c, 0xf9, 0x54, 0x54, 0xad, 0x9b, 0x8f, 0x98, 0x5e, - 0xe2, 0xf4, 0x2b, 0xd8, 0xfc, 0xdb, 0x9b, 0xbe, 0x86, 0x47, 0x10, 0xab, 0x51, 0x5e, 0x58, 0xd2, - 0x97, 0x71, 0x7f, 0xa1, 0x8c, 0x9b, 0x49, 0xd1, 0x48, 0xf9, 0x53, 0xfa, 0x4b, 0xd0, 0x65, 0x3c, - 0x66, 0xaa, 0x7e, 0x85, 0x9a, 0x99, 0x6e, 0x2a, 0xcd, 0xa4, 0xce, 0xb5, 0xfb, 0x24, 0xfa, 0x34, - 0xb4, 0x78, 0xac, 0x8c, 0xe9, 0x6c, 0x86, 0x72, 0x6e, 0x4c, 0xcb, 0xce, 0x64, 0xf1, 0x58, 0x91, - 0x1d, 0x88, 0x15, 0xca, 0x73, 0x94, 0x57, 0x33, 0x12, 0x39, 0x22, 0xe3, 0xe4, 0x3d, 0x58, 0x6f, - 0x44, 0xc1, 0x9a, 0xdc, 0x45, 0x57, 0xdc, 0x8f, 0x49, 0x62, 0xd9, 0x2f, 0x0d, 0x99, 0x71, 0xb2, - 0x09, 0xa1, 0x66, 0xaa, 0x36, 0xe6, 0x95, 0xbd, 0x60, 0xbf, 0x47, 0x57, 0x0d, 0xcc, 0x38, 0x79, - 0x07, 0x06, 0xf8, 0x1d, 0x16, 0x33, 0x2d, 0xec, 0xed, 0xab, 0x56, 0x1a, 0xe8, 0xa8, 0x8c, 0xa7, - 0x1f, 0xc1, 0x1b, 0xae, 0x08, 0x8a, 0x8c, 0x3f, 0x33, 0xdf, 0x8a, 0xd1, 0xb7, 0x10, 0x1c, 0x6d, - 0x05, 0x2b, 0xd4, 0x9e, 0xc9, 0x1d, 0xe8, 0x4d, 0x54, 0xe9, 0x25, 0x37, 0xc7, 0xf4, 0xe7, 0x65, - 0xd8, 0x7e, 0xa6, 0x34, 0x3b, 0x6e, 0x2a, 0x75, 0x7a, 0xa5, 0x43, 0x37, 0x5a, 0x0f, 0xa0, 0x6f, - 0xb6, 0xc7, 0x3f, 0x8a, 0xda, 0xe9, 0x46, 0xad, 0x2b, 0x19, 0x42, 0xc8, 0x38, 0x97, 0x66, 0x9f, - 0xb8, 0x77, 0x3a, 0x68, 0x14, 0xd2, 0xd5, 0x04, 0xc5, 0x4c, 0xe7, 0xca, 0x2a, 0xd4, 0xa3, 0x91, - 0x27, 0x8e, 0xc8, 0x03, 0x08, 0x25, 0x96, 0x95, 0x68, 0xd5, 0xb0, 0xbf, 0xd7, 0xb3, 0x9b, 0xe1, - 0xfa, 0x2a, 0xa3, 0xd6, 0x96, 0xb5, 0x27, 0x82, 0x76, 0x7e, 0xe4, 0x3e, 0x80, 0x2a, 0x4e, 0x71, - 0xc2, 0xf2, 0x73, 0x94, 0x5e, 0xb1, 0xd8, 0x31, 0x5f, 0xa3, 0x24, 0x8f, 0x61, 0xcd, 0xd4, 0x85, - 0x79, 0x77, 0xef, 0xaa, 0xbd, 0x77, 0xeb, 0xc6, 0xbd, 0x63, 0xe3, 0xe1, 0x2e, 0x57, 0x34, 0xd1, - 0xd7, 0x10, 0x79, 0x17, 0x12, 0x6c, 0x8d, 0x6c, 0x3c, 0x9f, 0x36, 0xac, 0x1d, 0x86, 0x7b, 0xc1, - 0x7e, 0x42, 0x07, 0x9e, 0x3b, 0x6c, 0x58, 0x9b, 0xfe, 0x19, 0xc0, 0xce, 0xad, 0xea, 0xf9, 0xc1, - 0x7c, 0xdf, 0x2f, 0x2e, 0xaf, 0xdf, 0xee, 0xad, 0xfa, 0x5d, 0xb6, 0x8c, 0x3a, 0x67, 0x32, 0x82, - 0x35, 0x89, 0x5a, 0xce, 0x2f, 0x13, 0x5f, 0xb6, 0x89, 0xaf, 0x1f, 0xf8, 0x45, 0xee, 0x12, 0xa4, - 0x89, 0x75, 0xea, 0xb2, 0xb5, 0x43, 0x7b, 0x63, 0x43, 0x85, 0xca, 0x6f, 0xa7, 0xc7, 0x30, 0x50, - 0x2d, 0x9b, 0xaa, 0x53, 0xa1, 0xbb, 0xc9, 0xfb, 0xd7, 0x5e, 0x42, 0x17, 0x91, 0x71, 0xf3, 0x05, - 0x5b, 0x61, 0xd4, 0x70, 0x65, 0xaf, 0xb7, 0x9f, 0x50, 0x8f, 0xd2, 0x1f, 0x03, 0xd8, 0x7c, 0x8e, - 0xba, 0xf0, 0x95, 0x1f, 0xb2, 0x12, 0x55, 0x37, 0x38, 0x0b, 0x6f, 0x06, 0xaf, 0xfb, 0xe6, 0x16, - 0x44, 0xae, 0x79, 0x15, 0xb7, 0x63, 0xd4, 0xa3, 0xa1, 0xc5, 0x19, 0xb7, 0x6d, 0xc7, 0x72, 0x82, - 0xad, 0xbe, 0xaa, 0x35, 0xf6, 0x8c, 0x8b, 0x9c, 0xb2, 0xd2, 0x04, 0xba, 0x49, 0xea, 0xd3, 0xd0, - 0xe0, 0x8c, 0xab, 0xf4, 0xfb, 0x00, 0x06, 0x36, 0xcb, 0x43, 0x66, 0x57, 0xd0, 0x7f, 0x6b, 0xcf, - 0x3d, 0x58, 0x31, 0x17, 0xba, 0xb6, 0x24, 0xd4, 0x01, 0x23, 0x52, 0x71, 0x3a, 0x6b, 0x6b, 0x33, - 0xd9, 0x56, 0x24, 0x87, 0xc8, 0xdb, 0x10, 0xab, 0xd9, 0x64, 0xc2, 0x64, 0x85, 0x2e, 0x9f, 0x84, - 0x5e, 0x11, 0x4f, 0xd2, 0x5f, 0x2f, 0x76, 0x83, 0xdf, 0x2e, 0x76, 0x83, 0xdf, 0x2f, 0x76, 0x83, - 0x1f, 0xfe, 0xd8, 0x5d, 0x82, 0x3b, 0x42, 0x96, 0x07, 0xba, 0xaa, 0xcf, 0x0f, 0xea, 0x73, 0xfb, - 0x8f, 0x7d, 0xbc, 0x6a, 0x7f, 0x46, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x99, 0x3a, 0xcc, - 0xff, 0x07, 0x00, 0x00, + // 1001 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xcd, 0x72, 0x1b, 0x45, + 0x10, 0xce, 0x5a, 0xb2, 0x77, 0xd5, 0x92, 0x4c, 0x32, 0x09, 0xb6, 0x6c, 0x13, 0x23, 0xb6, 0x38, + 0xf8, 0xa4, 0xaa, 0x58, 0x01, 0xaa, 0x72, 0x48, 0x55, 0x42, 0x12, 0xb2, 0x45, 0x02, 0x66, 0x2c, + 0x52, 0xdc, 0xb6, 0xc6, 0x3b, 0x6d, 0x79, 0x6b, 0x57, 0x3b, 0xeb, 0x99, 0x91, 0x40, 0x4f, 0xc1, + 0x95, 0xe2, 0x21, 0x78, 0x00, 0x78, 0x01, 0x8e, 0x3c, 0x02, 0x65, 0x1e, 0x83, 0x0b, 0x35, 0x3f, + 0xeb, 0x3f, 0x5c, 0x50, 0x81, 0x93, 0xa7, 0xbf, 0xee, 0x9e, 0xe9, 0xfe, 0xbe, 0xde, 0xb6, 0xe0, + 0x2e, 0xcf, 0x15, 0x9b, 0x4e, 0x25, 0x4e, 0x99, 0x46, 0x3e, 0xaa, 0xa5, 0xd0, 0x82, 0xf4, 0xaf, + 0x80, 0xdb, 0x77, 0x32, 0x51, 0x4b, 0x91, 0xa1, 0x52, 0x42, 0xba, 0x88, 0xed, 0xde, 0x0c, 0x35, + 0xab, 0x8f, 0xbc, 0xd5, 0x2f, 0x16, 0xb2, 0xce, 0x1a, 0x33, 0xfe, 0x39, 0x80, 0xde, 0xe1, 0xf8, + 0x95, 0xc8, 0x0a, 0x8a, 0x6a, 0x5e, 0x6a, 0xb2, 0x0f, 0xa1, 0x9a, 0x67, 0xe6, 0x82, 0x41, 0x30, + 0x0c, 0xf6, 0xba, 0xfb, 0x1b, 0xa3, 0xab, 0xcf, 0x1e, 0x3a, 0xef, 0xcb, 0x5b, 0xb4, 0x09, 0x24, + 0x1f, 0x43, 0xa7, 0x12, 0x3a, 0x15, 0xdf, 0x56, 0x28, 0x07, 0x2b, 0x36, 0x6b, 0xf3, 0x5a, 0xd6, + 0x17, 0x42, 0x7f, 0x69, 0xdc, 0x2f, 0x6f, 0xd1, 0xa8, 0xf2, 0x67, 0xf2, 0x11, 0x44, 0x99, 0xa8, + 0x8e, 0xcb, 0x3c, 0xd3, 0x83, 0xd6, 0x8d, 0x69, 0x9f, 0x7a, 0xb7, 0x49, 0x6b, 0x42, 0x9f, 0x86, + 0xb0, 0x8a, 0x52, 0x0a, 0x19, 0x77, 0x20, 0xf4, 0xd5, 0xc4, 0x00, 0x51, 0xf3, 0x44, 0x1c, 0x43, + 0xd4, 0xe4, 0x91, 0x0d, 0x58, 0x93, 0xc8, 0x94, 0xa8, 0x6c, 0x37, 0x1d, 0xea, 0xad, 0x78, 0x01, + 0x77, 0x26, 0x72, 0xf9, 0x84, 0x73, 0xd7, 0xfa, 0xe9, 0x1c, 0x95, 0x26, 0x31, 0xf4, 0x39, 0xd3, + 0x2c, 0x3d, 0xce, 0x4b, 0x4c, 0x0b, 0x5c, 0xfa, 0x9c, 0xae, 0x01, 0x5f, 0xe4, 0x25, 0x7e, 0x8e, + 0x4b, 0x13, 0x53, 0x8a, 0xac, 0x48, 0x95, 0x16, 0x12, 0xd3, 0x9c, 0xdb, 0xc2, 0xdb, 0xb4, 0x6b, + 0xc0, 0x43, 0x83, 0x25, 0x9c, 0x6c, 0x41, 0xe4, 0x62, 0xf0, 0x74, 0xd0, 0xb6, 0xee, 0xd0, 0xba, + 0xf1, 0x34, 0x4e, 0x80, 0x5c, 0x7e, 0x57, 0xd5, 0xa2, 0x52, 0x48, 0xc6, 0xa6, 0x4a, 0x43, 0xbf, + 0xe7, 0x7c, 0xe7, 0x3a, 0xe7, 0x97, 0x14, 0xa2, 0x3e, 0x34, 0x7e, 0x04, 0xf7, 0x26, 0x72, 0xf9, + 0x9a, 0xc9, 0xe2, 0x19, 0x96, 0xa8, 0xf1, 0x2d, 0xba, 0x88, 0x5f, 0xc1, 0xbb, 0xd7, 0x72, 0xff, + 0x4f, 0x25, 0x03, 0xd8, 0xf8, 0x0c, 0xf5, 0x33, 0x1b, 0x68, 0x98, 0xcf, 0xa7, 0xbe, 0x96, 0xf8, + 0x1b, 0x58, 0x77, 0xf0, 0xe1, 0xd8, 0x39, 0x8c, 0x20, 0x47, 0xf3, 0xac, 0x40, 0xdd, 0x08, 0xe2, + 0x2c, 0x42, 0xa0, 0x2d, 0x85, 0xd0, 0x76, 0x7c, 0x3a, 0xd4, 0x9e, 0xc9, 0x36, 0x44, 0x58, 0xf1, + 0x5a, 0xe4, 0x95, 0x9b, 0x8f, 0x0e, 0x3d, 0xb7, 0xe3, 0xaf, 0x61, 0xf3, 0x6f, 0x6f, 0xfa, 0x1e, + 0x1e, 0x41, 0x47, 0x8d, 0xd3, 0xcc, 0x82, 0xbe, 0x8d, 0xfb, 0xd7, 0xda, 0xb8, 0x5a, 0x14, 0x8d, + 0x94, 0x3f, 0xc5, 0x3f, 0xae, 0x34, 0x15, 0x4f, 0x98, 0x2a, 0x5e, 0xa3, 0x66, 0x46, 0x4d, 0xa5, + 0x99, 0xd4, 0xa9, 0x76, 0x9f, 0x44, 0x9b, 0x86, 0xd6, 0x9e, 0x28, 0xe3, 0x3a, 0x9d, 0xa3, 0x5c, + 0x1a, 0xd7, 0x8a, 0x73, 0x59, 0x7b, 0xa2, 0xc8, 0x0e, 0x74, 0x14, 0xca, 0x05, 0xca, 0x8b, 0x19, + 0x89, 0x1c, 0x90, 0x70, 0xf2, 0x21, 0xac, 0x97, 0x22, 0x63, 0x65, 0xea, 0xb2, 0x73, 0xee, 0xc7, + 0xa4, 0x67, 0xd1, 0xaf, 0x0c, 0x98, 0x70, 0xb2, 0x09, 0xa1, 0x66, 0xaa, 0x30, 0xee, 0xd5, 0x61, + 0xb0, 0xd7, 0xa2, 0x6b, 0xc6, 0x4c, 0x38, 0x79, 0x1f, 0xba, 0xf8, 0x1d, 0x66, 0x73, 0x2d, 0xec, + 0xed, 0x6b, 0x96, 0x1a, 0x68, 0x20, 0x17, 0x50, 0xe0, 0x52, 0xd5, 0x2c, 0xb3, 0x23, 0x1a, 0x0e, + 0x83, 0xbd, 0x3e, 0x85, 0x06, 0x4a, 0x38, 0x79, 0x08, 0x5d, 0x56, 0xe7, 0xe9, 0x02, 0xa5, 0xca, + 0x45, 0x35, 0x88, 0x86, 0xc1, 0xde, 0xfa, 0xfe, 0xdd, 0x51, 0xb3, 0x1b, 0x9e, 0x1c, 0x24, 0x6f, + 0x9c, 0x8b, 0x02, 0xab, 0x73, 0x7f, 0x8e, 0x3f, 0x81, 0x77, 0x1c, 0x37, 0x14, 0x19, 0x7f, 0x6e, + 0x3e, 0x41, 0x23, 0x5b, 0x26, 0x38, 0x5a, 0x62, 0x56, 0xa9, 0x3d, 0x93, 0xdb, 0xd0, 0x9a, 0xa9, + 0xa9, 0x57, 0xd2, 0x1c, 0xe3, 0x5f, 0x56, 0x60, 0xfb, 0xb9, 0xd2, 0xec, 0xa8, 0xcc, 0xd5, 0xc9, + 0x05, 0xbd, 0xcd, 0xc4, 0x3e, 0x80, 0xb6, 0xd9, 0x51, 0xff, 0xa8, 0x55, 0x23, 0x07, 0xb5, 0xa1, + 0x64, 0x00, 0x21, 0xe3, 0x5c, 0x9a, 0x35, 0xe5, 0xde, 0x69, 0x4c, 0x43, 0xbc, 0xce, 0x67, 0x28, + 0xe6, 0x3a, 0x55, 0x96, 0xf8, 0x16, 0x8d, 0x3c, 0x70, 0x48, 0x1e, 0x40, 0x28, 0x71, 0x9a, 0x8b, + 0x4a, 0x0d, 0xda, 0xc3, 0x96, 0x5d, 0x38, 0x97, 0x17, 0x26, 0xb5, 0xbe, 0xa4, 0x3a, 0x16, 0xb4, + 0x89, 0x23, 0xf7, 0x01, 0x54, 0x76, 0x82, 0x33, 0x66, 0xd8, 0xf2, 0x42, 0x74, 0x1c, 0xf2, 0x06, + 0x25, 0x79, 0x0c, 0x7d, 0xd3, 0x17, 0xa6, 0xcd, 0xbd, 0x6b, 0xf6, 0xde, 0xad, 0x2b, 0xf7, 0x4e, + 0x4c, 0x84, 0xbb, 0x5c, 0xd1, 0x9e, 0xbe, 0x64, 0x91, 0x0f, 0xa0, 0x87, 0x95, 0xa1, 0x8d, 0xa7, + 0x75, 0xc9, 0x2a, 0xab, 0x55, 0x8f, 0x76, 0x3d, 0x76, 0x50, 0xb2, 0x2a, 0xfe, 0x33, 0x80, 0x9d, + 0x1b, 0xd9, 0xf3, 0xf3, 0xfe, 0xd0, 0xef, 0x43, 0xcf, 0xdf, 0xee, 0x8d, 0xfc, 0x9d, 0x4b, 0x46, + 0x5d, 0x30, 0x19, 0x43, 0x5f, 0xa2, 0x96, 0xcb, 0xf3, 0xc2, 0x57, 0x6c, 0xe1, 0xeb, 0x23, 0xff, + 0xef, 0xc2, 0x15, 0x48, 0x7b, 0x36, 0xa8, 0xa9, 0xd6, 0x7e, 0x0b, 0x57, 0x16, 0x5f, 0xa8, 0xfc, + 0xd2, 0x7b, 0x0c, 0x5d, 0x55, 0xb1, 0x5a, 0x9d, 0x08, 0xdd, 0x0c, 0xf4, 0xbf, 0x6a, 0x09, 0x4d, + 0x46, 0xc2, 0xcd, 0x62, 0xb0, 0xc4, 0xa8, 0xc1, 0xea, 0xb0, 0xb5, 0xd7, 0xa3, 0xde, 0x8a, 0x7f, + 0x0a, 0x60, 0xf3, 0x05, 0xea, 0xcc, 0x77, 0x7e, 0xc0, 0xa6, 0xa8, 0x9a, 0xc1, 0xb9, 0xf6, 0x66, + 0xf0, 0xb6, 0x6f, 0x6e, 0x41, 0xe4, 0xc4, 0xcb, 0xb9, 0x1d, 0xa3, 0x16, 0x0d, 0xad, 0x9d, 0x70, + 0x2b, 0x3b, 0x4e, 0x67, 0x58, 0xe9, 0x8b, 0x5e, 0x3b, 0x1e, 0x71, 0x99, 0x35, 0x9b, 0x9a, 0x44, + 0x37, 0x49, 0x6d, 0x1a, 0x1a, 0x3b, 0xe1, 0x2a, 0xfe, 0x3e, 0x80, 0xae, 0xad, 0xf2, 0x80, 0xd9, + 0xcd, 0xf6, 0xdf, 0xe4, 0xb9, 0x07, 0xab, 0xe6, 0x42, 0x27, 0x4b, 0x8f, 0x3a, 0xc3, 0x90, 0x94, + 0x9d, 0xcc, 0xab, 0xc2, 0x4c, 0xb6, 0x25, 0xc9, 0x59, 0xe4, 0x3d, 0xe8, 0xa8, 0xf9, 0x6c, 0xc6, + 0x64, 0x8e, 0xae, 0x9e, 0x1e, 0xbd, 0x00, 0x9e, 0xc6, 0xbf, 0x9e, 0xed, 0x06, 0xbf, 0x9d, 0xed, + 0x06, 0xbf, 0x9f, 0xed, 0x06, 0x3f, 0xfc, 0xb1, 0x7b, 0x0b, 0x6e, 0x0b, 0x39, 0x1d, 0xe9, 0xbc, + 0x58, 0x8c, 0x8a, 0x85, 0xfd, 0x21, 0x70, 0xb4, 0x66, 0xff, 0x8c, 0xff, 0x0a, 0x00, 0x00, 0xff, + 0xff, 0xd4, 0xab, 0xc2, 0xe4, 0x65, 0x08, 0x00, 0x00, } func (m *S3LockResult) Marshal() (dAtA []byte, err error) { @@ -1659,6 +1679,16 @@ func (m *DisaggTaskMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.ApiVersion != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.ApiVersion)) + i-- + dAtA[i] = 0x40 + } + if m.KeyspaceId != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.KeyspaceId)) + i-- + dAtA[i] = 0x38 + } if len(m.ExecutorId) > 0 { i -= len(m.ExecutorId) copy(dAtA[i:], m.ExecutorId) @@ -2285,6 +2315,12 @@ func (m *DisaggTaskMeta) Size() (n int) { if l > 0 { n += 1 + l + sovDisaggregated(uint64(l)) } + if m.KeyspaceId != 0 { + n += 1 + sovDisaggregated(uint64(m.KeyspaceId)) + } + if m.ApiVersion != 0 { + n += 1 + sovDisaggregated(uint64(m.ApiVersion)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -3616,6 +3652,44 @@ func (m *DisaggTaskMeta) Unmarshal(dAtA []byte) error { } m.ExecutorId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KeyspaceId", wireType) + } + m.KeyspaceId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.KeyspaceId |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ApiVersion", wireType) + } + m.ApiVersion = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ApiVersion |= kvrpcpb.APIVersion(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipDisaggregated(dAtA[iNdEx:]) diff --git a/proto/disaggregated.proto b/proto/disaggregated.proto index d8a1019..db1944d 100644 --- a/proto/disaggregated.proto +++ b/proto/disaggregated.proto @@ -3,6 +3,7 @@ package disaggregated; import "coprocessor.proto"; import "metapb.proto"; +import "kvrpcpb.proto"; option java_package = "org.tikv.kvproto"; @@ -71,6 +72,8 @@ message DisaggTaskMeta { uint64 local_query_id = 4; // unique local query_id if tidb don't restart. int64 task_id = 5; // if task id is -1 , it indicates a tidb task. string executor_id = 6; // the exectuor id + uint32 keyspace_id = 7; // keyspace id of the request + kvrpcpb.APIVersion api_version = 8; // API version of the request } message DisaggReadError { int32 code = 1; diff --git a/scripts/proto.lock b/scripts/proto.lock index 217524a..f5a15e3 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -3930,6 +3930,16 @@ "id": 6, "name": "executor_id", "type": "string" + }, + { + "id": 7, + "name": "keyspace_id", + "type": "uint32" + }, + { + "id": 8, + "name": "api_version", + "type": "kvrpcpb.APIVersion" } ] }, @@ -4083,6 +4093,9 @@ }, { "path": "metapb.proto" + }, + { + "path": "kvrpcpb.proto" } ], "package": { -- Gitee From 965d7fc0fcc77e23027c9cd1abbc21653780bf6e Mon Sep 17 00:00:00 2001 From: Spade A <71589810+SpadeA-Tang@users.noreply.github.com> Date: Thu, 23 Mar 2023 11:46:36 +0800 Subject: [PATCH 25/44] done (#1086) Signed-off-by: Spade A --- pkg/raft_serverpb/raft_serverpb.pb.go | 495 +++++++++++++++++++------- proto/raft_serverpb.proto | 5 + scripts/proto.lock | 15 + 3 files changed, 381 insertions(+), 134 deletions(-) diff --git a/pkg/raft_serverpb/raft_serverpb.pb.go b/pkg/raft_serverpb/raft_serverpb.pb.go index 50848ca..0c6463e 100644 --- a/pkg/raft_serverpb/raft_serverpb.pb.go +++ b/pkg/raft_serverpb/raft_serverpb.pb.go @@ -1789,6 +1789,53 @@ func (m *RegionSequenceNumberRelation) GetRegionState() *RegionLocalState { return nil } +type FlushMemtable struct { + RegionId uint64 `protobuf:"varint,1,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FlushMemtable) Reset() { *m = FlushMemtable{} } +func (m *FlushMemtable) String() string { return proto.CompactTextString(m) } +func (*FlushMemtable) ProtoMessage() {} +func (*FlushMemtable) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{24} +} +func (m *FlushMemtable) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FlushMemtable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_FlushMemtable.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *FlushMemtable) XXX_Merge(src proto.Message) { + xxx_messageInfo_FlushMemtable.Merge(m, src) +} +func (m *FlushMemtable) XXX_Size() int { + return m.Size() +} +func (m *FlushMemtable) XXX_DiscardUnknown() { + xxx_messageInfo_FlushMemtable.DiscardUnknown(m) +} + +var xxx_messageInfo_FlushMemtable proto.InternalMessageInfo + +func (m *FlushMemtable) GetRegionId() uint64 { + if m != nil { + return m.RegionId + } + return 0 +} + type CheckGcPeer struct { // The region ID who triggers the check and wait for report. It should be // the ID of RaftMessage.from. @@ -1808,7 +1855,7 @@ func (m *CheckGcPeer) Reset() { *m = CheckGcPeer{} } func (m *CheckGcPeer) String() string { return proto.CompactTextString(m) } func (*CheckGcPeer) ProtoMessage() {} func (*CheckGcPeer) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{24} + return fileDescriptor_130ebc2f2c37a342, []int{25} } func (m *CheckGcPeer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1875,18 +1922,19 @@ type ExtraMessage struct { CheckPeers []*metapb.Peer `protobuf:"bytes,3,rep,name=check_peers,json=checkPeers,proto3" json:"check_peers,omitempty"` WaitData bool `protobuf:"varint,4,opt,name=wait_data,json=waitData,proto3" json:"wait_data,omitempty"` // Flag for forcely wake up hibernate regions if true. - ForcelyAwaken bool `protobuf:"varint,5,opt,name=forcely_awaken,json=forcelyAwaken,proto3" json:"forcely_awaken,omitempty"` - CheckGcPeer *CheckGcPeer `protobuf:"bytes,6,opt,name=check_gc_peer,json=checkGcPeer,proto3" json:"check_gc_peer,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ForcelyAwaken bool `protobuf:"varint,5,opt,name=forcely_awaken,json=forcelyAwaken,proto3" json:"forcely_awaken,omitempty"` + CheckGcPeer *CheckGcPeer `protobuf:"bytes,6,opt,name=check_gc_peer,json=checkGcPeer,proto3" json:"check_gc_peer,omitempty"` + FlushMemtable *FlushMemtable `protobuf:"bytes,7,opt,name=flush_memtable,json=flushMemtable,proto3" json:"flush_memtable,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ExtraMessage) Reset() { *m = ExtraMessage{} } func (m *ExtraMessage) String() string { return proto.CompactTextString(m) } func (*ExtraMessage) ProtoMessage() {} func (*ExtraMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{25} + return fileDescriptor_130ebc2f2c37a342, []int{26} } func (m *ExtraMessage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1957,6 +2005,13 @@ func (m *ExtraMessage) GetCheckGcPeer() *CheckGcPeer { return nil } +func (m *ExtraMessage) GetFlushMemtable() *FlushMemtable { + if m != nil { + return m.FlushMemtable + } + return nil +} + func init() { proto.RegisterEnum("raft_serverpb.PeerState", PeerState_name, PeerState_value) proto.RegisterEnum("raft_serverpb.ExtraMessageType", ExtraMessageType_name, ExtraMessageType_value) @@ -1984,6 +2039,7 @@ func init() { proto.RegisterType((*MergedRecord)(nil), "raft_serverpb.MergedRecord") proto.RegisterType((*RegionLocalState)(nil), "raft_serverpb.RegionLocalState") proto.RegisterType((*RegionSequenceNumberRelation)(nil), "raft_serverpb.RegionSequenceNumberRelation") + proto.RegisterType((*FlushMemtable)(nil), "raft_serverpb.FlushMemtable") proto.RegisterType((*CheckGcPeer)(nil), "raft_serverpb.CheckGcPeer") proto.RegisterType((*ExtraMessage)(nil), "raft_serverpb.ExtraMessage") } @@ -1991,133 +2047,135 @@ func init() { func init() { proto.RegisterFile("raft_serverpb.proto", fileDescriptor_130ebc2f2c37a342) } var fileDescriptor_130ebc2f2c37a342 = []byte{ - // 2009 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0xcd, 0x73, 0x1b, 0x49, - 0x15, 0xf7, 0x48, 0xb2, 0x3e, 0x9e, 0x3e, 0xac, 0xb4, 0xf3, 0xa1, 0xc4, 0xc4, 0x76, 0x26, 0x1b, - 0xaf, 0x37, 0x5b, 0x38, 0xb5, 0x5e, 0xb3, 0x6c, 0x2d, 0x55, 0x29, 0x6c, 0x27, 0x8b, 0xcd, 0xa2, - 0x54, 0x6a, 0xec, 0x24, 0xc5, 0x69, 0xaa, 0x3d, 0xd3, 0x1a, 0x0f, 0x9a, 0xaf, 0xed, 0x6e, 0x29, - 0x11, 0xc5, 0x89, 0x33, 0x37, 0x2e, 0xfb, 0x27, 0xf0, 0x87, 0x70, 0xa0, 0xe0, 0xc2, 0x81, 0x03, - 0x47, 0x2a, 0x5c, 0xb8, 0x72, 0xe4, 0x46, 0x75, 0xbf, 0x1e, 0x69, 0xa4, 0x28, 0xde, 0xda, 0x9c, - 0x34, 0xfd, 0xde, 0xef, 0x75, 0xbf, 0xef, 0x7e, 0x2d, 0x58, 0xe7, 0x74, 0x20, 0x5d, 0xc1, 0xf8, - 0x98, 0xf1, 0xec, 0x62, 0x2f, 0xe3, 0xa9, 0x4c, 0x49, 0x7b, 0x8e, 0x78, 0xa7, 0xcd, 0xd4, 0x3a, - 0xe7, 0xde, 0x69, 0xc5, 0x4c, 0xd2, 0xe9, 0xaa, 0x3d, 0x1c, 0xf3, 0xcc, 0x9b, 0x2e, 0xbb, 0x7e, - 0x28, 0x86, 0xee, 0x48, 0xd0, 0x80, 0x19, 0xca, 0x1a, 0x1f, 0x09, 0xa9, 0x3f, 0x91, 0x60, 0xff, - 0xaf, 0x0c, 0x4d, 0x87, 0x0e, 0x64, 0x9f, 0x09, 0x05, 0x23, 0x1b, 0xd0, 0xe0, 0x2c, 0x08, 0xd3, - 0xc4, 0x0d, 0xfd, 0x9e, 0xb5, 0x6d, 0xed, 0x56, 0x9c, 0x3a, 0x12, 0x4e, 0x7d, 0xf2, 0x09, 0x34, - 0x06, 0x3c, 0x8d, 0xdd, 0x8c, 0x31, 0xde, 0x2b, 0x6d, 0x5b, 0xbb, 0xcd, 0xfd, 0xd6, 0x9e, 0x51, - 0xe0, 0x39, 0x63, 0xdc, 0xa9, 0x2b, 0xb6, 0xfa, 0x22, 0x0f, 0xa0, 0x26, 0x53, 0x04, 0x96, 0x97, - 0x00, 0xab, 0x32, 0xd5, 0xb0, 0x87, 0x50, 0x8b, 0xf1, 0xe4, 0x5e, 0x45, 0xc3, 0xba, 0x7b, 0xb9, - 0x7d, 0x46, 0x23, 0x27, 0x07, 0x90, 0x2f, 0xa0, 0x65, 0x54, 0x63, 0x59, 0xea, 0x5d, 0xf6, 0x56, - 0xb5, 0xc0, 0x7a, 0xbe, 0xaf, 0xa3, 0x79, 0x4f, 0x15, 0xcb, 0x69, 0xf2, 0xd9, 0x82, 0xdc, 0x83, - 0x56, 0x28, 0x5c, 0x99, 0xc6, 0x17, 0x42, 0xa6, 0x09, 0xeb, 0x55, 0xb7, 0xad, 0xdd, 0xba, 0xd3, - 0x0c, 0xc5, 0x79, 0x4e, 0x52, 0x56, 0x0b, 0x49, 0xb9, 0x74, 0x87, 0x6c, 0xd2, 0xab, 0x6d, 0x5b, - 0xbb, 0x2d, 0xa7, 0xae, 0x09, 0xdf, 0xb0, 0x09, 0xb9, 0x05, 0x35, 0x96, 0xf8, 0x9a, 0x55, 0xd7, - 0xac, 0x2a, 0x4b, 0x7c, 0xc5, 0xf8, 0x0c, 0x5a, 0x31, 0xe3, 0x01, 0x73, 0x25, 0xe5, 0x01, 0x93, - 0xbd, 0x86, 0x56, 0xa8, 0x33, 0xaf, 0x90, 0xd3, 0xd4, 0x98, 0x73, 0x0d, 0x21, 0x5f, 0x42, 0x83, - 0xbd, 0x91, 0x9c, 0xba, 0xb1, 0x08, 0x7a, 0xa0, 0xf1, 0x1b, 0x7b, 0xf3, 0x51, 0x7f, 0xaa, 0xf8, - 0xb9, 0xf1, 0x75, 0x8d, 0xee, 0x8b, 0x40, 0xa9, 0x88, 0x92, 0x9e, 0x7c, 0xd3, 0x6b, 0xa2, 0x8a, - 0x9a, 0x70, 0x2c, 0xdf, 0x90, 0x03, 0x80, 0x59, 0xa8, 0x7b, 0xad, 0x6d, 0x6b, 0xb7, 0xb3, 0x7f, - 0x63, 0xaf, 0x10, 0xfd, 0x27, 0xa1, 0x18, 0xbe, 0xd0, 0x3b, 0x36, 0xfc, 0xfc, 0xd3, 0x7e, 0x0c, - 0x44, 0x85, 0xfe, 0x9c, 0x8f, 0x12, 0x8f, 0x4a, 0xe6, 0x9f, 0x49, 0x2a, 0x19, 0xb9, 0x0e, 0xab, - 0x61, 0xe2, 0xb3, 0x37, 0x26, 0xfa, 0xb8, 0x20, 0x04, 0x2a, 0x92, 0xf1, 0x58, 0x47, 0xbd, 0xe2, - 0xe8, 0x6f, 0xfb, 0x39, 0x74, 0xce, 0x12, 0x9a, 0x89, 0xcb, 0x54, 0x1e, 0x7f, 0xfd, 0x75, 0x18, - 0x31, 0xd2, 0x81, 0x92, 0x37, 0xd0, 0x82, 0x0d, 0xa7, 0xe4, 0x0d, 0x94, 0x94, 0x08, 0x7f, 0xcb, - 0x72, 0x29, 0xf5, 0x4d, 0xee, 0x40, 0xdd, 0xbb, 0x64, 0xde, 0x50, 0x8c, 0x62, 0x9d, 0x1a, 0x6d, - 0x67, 0xba, 0xb6, 0xff, 0x61, 0x41, 0x2b, 0xdf, 0xb2, 0xcf, 0x24, 0x25, 0x5f, 0x42, 0xdd, 0x1b, - 0xb8, 0x83, 0x30, 0x62, 0xa2, 0x67, 0x6d, 0x97, 0x77, 0x9b, 0xfb, 0x77, 0x17, 0xdc, 0x35, 0xaf, - 0x81, 0x53, 0xf3, 0x06, 0xea, 0x57, 0x90, 0x2d, 0x68, 0x0e, 0x52, 0xee, 0x5e, 0xd0, 0x88, 0x26, - 0x1e, 0x6a, 0x50, 0x77, 0x60, 0x90, 0xf2, 0x23, 0xa4, 0xe4, 0x80, 0xd7, 0xa1, 0x4c, 0x98, 0x10, - 0x5a, 0x15, 0x04, 0xbc, 0x42, 0x8a, 0x72, 0x84, 0xce, 0x01, 0x9d, 0x99, 0x15, 0x07, 0x17, 0x64, - 0x1f, 0x6e, 0x04, 0x2c, 0x61, 0x9c, 0x4a, 0xe6, 0xfa, 0x23, 0x4e, 0xa5, 0x4a, 0x48, 0xc1, 0x3c, - 0x9d, 0x8e, 0x15, 0x67, 0x3d, 0x67, 0x3e, 0x31, 0xbc, 0x33, 0xe6, 0xd9, 0xbf, 0x86, 0xf6, 0x54, - 0xcd, 0xcb, 0x51, 0x32, 0x24, 0x07, 0xb3, 0xb4, 0xb7, 0x74, 0x12, 0xdc, 0x59, 0xb0, 0xaa, 0x50, - 0x92, 0xb3, 0x02, 0x20, 0x50, 0xf1, 0xa9, 0xa4, 0xda, 0x96, 0x96, 0xa3, 0xbf, 0xed, 0x2a, 0x54, - 0x9e, 0xa4, 0x09, 0xb3, 0xbf, 0xb3, 0xe0, 0xe6, 0x39, 0xbd, 0x88, 0x98, 0xcc, 0x4f, 0x52, 0x6e, - 0xd0, 0x3e, 0xdc, 0x80, 0x86, 0x72, 0xa0, 0xab, 0x23, 0x61, 0x4a, 0x5a, 0x11, 0xce, 0x54, 0x34, - 0x72, 0x66, 0x42, 0x63, 0x74, 0x52, 0x03, 0x99, 0xcf, 0x68, 0xcc, 0xc8, 0x5d, 0x80, 0x4b, 0x46, - 0x7d, 0xd7, 0x53, 0x4a, 0x6b, 0x0f, 0xb5, 0x9c, 0x86, 0xa2, 0xa0, 0x15, 0x0f, 0xa0, 0x23, 0x39, - 0x0d, 0xa3, 0x30, 0x09, 0x0c, 0xa4, 0xa2, 0x21, 0xed, 0x9c, 0xaa, 0x61, 0xf6, 0x00, 0x6e, 0xcc, - 0x6b, 0xf6, 0x9c, 0xb3, 0x71, 0xc8, 0x5e, 0x93, 0x9f, 0xc1, 0xaa, 0x2a, 0x95, 0x3c, 0xb2, 0x0f, - 0x16, 0x7c, 0xb0, 0xdc, 0x1c, 0x07, 0x65, 0x48, 0x17, 0xca, 0x2c, 0xf1, 0x4d, 0x5c, 0xd5, 0xa7, - 0x1d, 0xc0, 0xad, 0x77, 0x45, 0x50, 0xd3, 0x0f, 0x77, 0x41, 0xee, 0xf3, 0x72, 0xc1, 0xe7, 0x01, - 0x90, 0xf9, 0x83, 0x4e, 0x18, 0xf5, 0x3f, 0x30, 0xa6, 0x1b, 0xd0, 0x18, 0x09, 0xe6, 0x7a, 0xd4, - 0xbb, 0xcc, 0x93, 0xb4, 0x3e, 0x12, 0xec, 0x58, 0xad, 0xed, 0x47, 0x70, 0x6d, 0xfe, 0xa0, 0xa7, - 0x89, 0x3f, 0x57, 0x3f, 0xc6, 0x94, 0x69, 0xfd, 0xfc, 0xb1, 0xb4, 0xe8, 0x6b, 0x87, 0x7d, 0x3b, - 0x62, 0x42, 0x92, 0x9f, 0x42, 0x45, 0x05, 0xce, 0xa8, 0x76, 0xef, 0x4a, 0x57, 0x2b, 0x73, 0x4e, - 0x56, 0x1c, 0x2d, 0x40, 0x7e, 0x0e, 0xb5, 0x0c, 0xe3, 0x65, 0x3a, 0xfe, 0x47, 0x57, 0xca, 0x9a, - 0xd8, 0x9e, 0xac, 0x38, 0xb9, 0x18, 0x79, 0x0c, 0xab, 0xb3, 0x04, 0x6a, 0xee, 0xef, 0x7c, 0x6f, - 0x98, 0x75, 0xcc, 0x4e, 0x56, 0x1c, 0x14, 0x23, 0x07, 0x18, 0x69, 0xbc, 0x1f, 0xb6, 0xaf, 0x94, - 0x7e, 0x9a, 0x28, 0xc5, 0x15, 0xfc, 0xa8, 0x01, 0xb5, 0x8c, 0x4e, 0xa2, 0x94, 0xfa, 0xf6, 0x01, - 0xdc, 0x38, 0xf4, 0x3c, 0x96, 0xa9, 0x16, 0x57, 0x38, 0x46, 0xcc, 0x47, 0x5e, 0x25, 0x61, 0x21, - 0xf2, 0xf6, 0xf9, 0x62, 0x41, 0x39, 0x4c, 0x64, 0x69, 0x22, 0x18, 0xf9, 0x0a, 0x56, 0xf3, 0x8e, - 0xb4, 0xcc, 0x21, 0x4b, 0xcf, 0x72, 0x50, 0xc4, 0xde, 0x87, 0xfa, 0x37, 0x6c, 0xf2, 0x92, 0x46, - 0x23, 0xa6, 0x52, 0x58, 0x5d, 0x2a, 0x96, 0x4e, 0x2d, 0xf5, 0xa9, 0x5a, 0xce, 0x58, 0xb1, 0x4c, - 0x89, 0xe3, 0xc2, 0xfe, 0x6b, 0x09, 0xba, 0x2a, 0x79, 0xf2, 0x0d, 0x9f, 0x50, 0x49, 0xc9, 0x0e, - 0x54, 0xf1, 0x92, 0x33, 0x5a, 0x2c, 0x5e, 0x3b, 0x86, 0x3b, 0x9f, 0xfa, 0xa5, 0x85, 0xd4, 0xff, - 0x74, 0x9a, 0xdd, 0xaa, 0x00, 0x6f, 0x2d, 0x18, 0x92, 0x2b, 0x8a, 0x69, 0x4f, 0x7a, 0x50, 0x1b, - 0x33, 0x2e, 0xd4, 0x91, 0xd8, 0x11, 0xf3, 0x25, 0x79, 0x04, 0x15, 0x75, 0xb8, 0xb9, 0x91, 0x37, - 0xde, 0xd3, 0xa1, 0x75, 0xf5, 0x6a, 0x20, 0xf9, 0x09, 0xac, 0x71, 0x16, 0xa7, 0x63, 0xe6, 0xbb, - 0x9c, 0x79, 0x29, 0xf7, 0x45, 0xaf, 0xaa, 0x55, 0x98, 0x9f, 0x12, 0x3a, 0x06, 0xe4, 0x20, 0x86, - 0x1c, 0x41, 0x47, 0x5f, 0xa6, 0x33, 0xa9, 0x9a, 0x96, 0x5a, 0x3c, 0xb1, 0xaf, 0x41, 0x28, 0xe5, - 0xb4, 0xe3, 0xc2, 0x4a, 0xd8, 0xbf, 0x03, 0x38, 0x93, 0x29, 0x67, 0xa7, 0x3e, 0x4b, 0xa4, 0xea, - 0x70, 0x5e, 0x34, 0x12, 0x92, 0xf1, 0xd9, 0xbc, 0xd3, 0x30, 0x94, 0x53, 0x9f, 0xdc, 0x86, 0xba, - 0x50, 0x60, 0xc5, 0x44, 0xdf, 0xd5, 0x04, 0x0a, 0x93, 0x03, 0x68, 0xd2, 0x2c, 0x74, 0x73, 0x8f, - 0x94, 0xf5, 0x9d, 0xbb, 0xbe, 0x97, 0x0f, 0x60, 0x87, 0xcf, 0x4f, 0x5f, 0x22, 0xcb, 0x01, 0x9a, - 0x85, 0xe6, 0xdb, 0xfe, 0x04, 0xae, 0xe9, 0xd3, 0x95, 0x36, 0x63, 0xc6, 0xa7, 0x37, 0xae, 0x60, - 0xdf, 0x26, 0x69, 0x7e, 0xe3, 0xea, 0x85, 0x7d, 0x01, 0x1d, 0x15, 0xf4, 0x5f, 0xa5, 0x1e, 0x8d, - 0x10, 0xf7, 0x19, 0xc0, 0x25, 0xe5, 0xbe, 0x2b, 0xd4, 0xca, 0x84, 0x9d, 0x4c, 0xe7, 0xa5, 0x13, - 0xca, 0xf1, 0x06, 0x77, 0x1a, 0x97, 0xf9, 0xa7, 0xb2, 0x2f, 0xa2, 0x42, 0xba, 0x78, 0xa3, 0xa3, - 0x09, 0x0d, 0x45, 0x39, 0x55, 0x04, 0xfb, 0xbf, 0x16, 0x1e, 0x72, 0x98, 0x65, 0xd1, 0x04, 0x25, - 0xee, 0x43, 0x9b, 0x66, 0x59, 0x14, 0x32, 0xdf, 0x2d, 0x8e, 0x01, 0x2d, 0x43, 0xd4, 0x72, 0xe4, - 0x21, 0x5c, 0xd3, 0xdb, 0x7a, 0x69, 0x1c, 0x87, 0xf9, 0xee, 0x65, 0x0d, 0x5c, 0x53, 0x8c, 0x63, - 0x4d, 0x47, 0xec, 0x3d, 0x68, 0xcd, 0xc1, 0x30, 0x77, 0x9a, 0x5e, 0x01, 0xb2, 0x05, 0x66, 0xe9, - 0xea, 0x19, 0x03, 0x6f, 0x52, 0x40, 0xd2, 0x39, 0xe3, 0x31, 0xf9, 0x25, 0xac, 0xc9, 0x7c, 0x4a, - 0x31, 0xe6, 0x97, 0x96, 0x36, 0xb2, 0x77, 0xe7, 0x19, 0xa7, 0x23, 0xe7, 0xd6, 0x76, 0x08, 0xa0, - 0xf3, 0x03, 0xcd, 0xdd, 0x80, 0x46, 0x1c, 0x26, 0x73, 0xa6, 0xd6, 0xe3, 0x30, 0x41, 0xbd, 0x76, - 0xa0, 0x6a, 0x46, 0xbb, 0xd2, 0xf2, 0x1a, 0x43, 0x2e, 0xb9, 0x09, 0x55, 0x54, 0xd6, 0xf8, 0xc0, - 0xac, 0x54, 0xe1, 0xb6, 0x8a, 0xb9, 0x48, 0x76, 0xa1, 0x2b, 0xd2, 0x11, 0xf7, 0x98, 0xbb, 0x38, - 0x64, 0x77, 0x90, 0xee, 0xe4, 0xa3, 0xf6, 0x17, 0xd0, 0x32, 0x48, 0x1c, 0x76, 0x4b, 0x57, 0x0c, - 0xbb, 0x08, 0xc4, 0x61, 0xf7, 0xd1, 0x54, 0x4e, 0xcd, 0xde, 0xc2, 0x54, 0xf6, 0x7c, 0x59, 0x19, - 0x01, 0xf5, 0x2d, 0x94, 0x4a, 0x68, 0x45, 0x41, 0x25, 0x0c, 0x51, 0x07, 0xe9, 0x45, 0x95, 0x0c, - 0xf2, 0xfb, 0xe7, 0x6f, 0x04, 0x4e, 0x55, 0x32, 0x72, 0xa8, 0xd2, 0xb2, 0x4a, 0x37, 0x02, 0xa8, - 0xd2, 0x74, 0x02, 0xad, 0x15, 0x26, 0x50, 0xfb, 0xcf, 0xaa, 0x0b, 0xea, 0x33, 0x0a, 0x25, 0xb1, - 0xa7, 0x67, 0x34, 0x53, 0x0d, 0x9d, 0xfd, 0xde, 0x42, 0x3a, 0xa8, 0xfd, 0x30, 0x0b, 0x10, 0x56, - 0xe8, 0x9a, 0xa5, 0x2b, 0xbb, 0xe6, 0x57, 0x80, 0x63, 0xbb, 0x49, 0x36, 0xbc, 0xb9, 0x6e, 0x2f, - 0x6b, 0x33, 0xb8, 0x3d, 0xc4, 0xb3, 0x94, 0xba, 0xa7, 0xec, 0x55, 0x17, 0xc7, 0x7c, 0xc2, 0x23, - 0x0d, 0x13, 0x6b, 0x49, 0xff, 0x5b, 0xfd, 0xa0, 0xfe, 0x57, 0xfd, 0xc1, 0xfd, 0xef, 0x3f, 0x16, - 0xfc, 0x08, 0x8d, 0x3d, 0x53, 0xa3, 0x41, 0xe2, 0xb1, 0x67, 0xa3, 0xf8, 0x82, 0x71, 0x87, 0x45, - 0x7a, 0x5e, 0xbd, 0xfa, 0x05, 0xf8, 0x31, 0xac, 0x09, 0x23, 0xe6, 0x26, 0x5a, 0xce, 0x34, 0x95, - 0x8e, 0x98, 0xdb, 0x8d, 0x3c, 0x56, 0xed, 0x31, 0x8b, 0x26, 0x73, 0x0e, 0xbc, 0xbb, 0xa4, 0x5a, - 0x67, 0xad, 0x47, 0x35, 0xca, 0x69, 0x1b, 0x3a, 0x9a, 0x3e, 0xf6, 0x70, 0x03, 0xbc, 0xfd, 0xb7, - 0x16, 0x37, 0x58, 0xc8, 0x87, 0xfc, 0xe1, 0x87, 0x95, 0xfe, 0x37, 0x0b, 0x9a, 0xc7, 0x6a, 0x34, - 0xfa, 0x85, 0xa7, 0x1f, 0x9b, 0x1f, 0x41, 0x47, 0x3f, 0x5f, 0x17, 0xcd, 0x6b, 0x29, 0xea, 0x34, - 0xcd, 0x77, 0x60, 0x4d, 0xcf, 0x53, 0x05, 0x18, 0x9a, 0xd8, 0xd6, 0xe4, 0x29, 0xee, 0x10, 0xc8, - 0x1c, 0x0e, 0x8b, 0xa2, 0xfc, 0xfe, 0xa2, 0xe8, 0x16, 0xe4, 0xb1, 0x32, 0x3e, 0x05, 0xc0, 0x2d, - 0xf4, 0x3b, 0xb9, 0xb2, 0xe4, 0x9d, 0xdc, 0xd0, 0x7c, 0xf5, 0x69, 0xff, 0xa1, 0x04, 0xad, 0xe2, - 0xdb, 0x90, 0x7c, 0x0e, 0x15, 0x39, 0xc9, 0xf2, 0xd4, 0xdf, 0xba, 0xe2, 0x19, 0x79, 0x3e, 0xc9, - 0x98, 0xa3, 0xc1, 0xb3, 0xda, 0x2a, 0x15, 0x5f, 0x77, 0x3f, 0x86, 0xe6, 0x4c, 0x91, 0xe5, 0x4d, - 0x03, 0xa6, 0x9a, 0xe8, 0xb9, 0xe9, 0x35, 0x0d, 0xa5, 0xab, 0x67, 0x87, 0x0a, 0x0e, 0xad, 0x8a, - 0xa0, 0x07, 0x93, 0x07, 0xd0, 0x19, 0xa4, 0xdc, 0x63, 0xd1, 0xc4, 0xa5, 0xaf, 0xe9, 0x90, 0x25, - 0xba, 0x51, 0xd4, 0x9d, 0xb6, 0xa1, 0x1e, 0x6a, 0x22, 0x79, 0x0c, 0xe8, 0x4f, 0x37, 0xf0, 0xd0, - 0xfc, 0xea, 0xd2, 0xa1, 0xb9, 0x10, 0x3f, 0x07, 0x75, 0xc4, 0xc5, 0x43, 0x07, 0x1a, 0xd3, 0xea, - 0x26, 0x00, 0xd5, 0x67, 0x29, 0x8f, 0x69, 0xd4, 0x5d, 0x21, 0x2d, 0xa8, 0xeb, 0x9c, 0x0a, 0x93, - 0xa0, 0x6b, 0x91, 0x36, 0x34, 0xa6, 0xcf, 0xfc, 0x6e, 0x89, 0x34, 0xa1, 0xa6, 0x8a, 0x43, 0xf1, - 0xca, 0x64, 0x0d, 0x9a, 0x2f, 0x12, 0x3a, 0xa6, 0x61, 0xa4, 0x4a, 0xb3, 0x5b, 0x79, 0xf8, 0xfb, - 0x32, 0x74, 0x17, 0xfd, 0x46, 0xd6, 0x61, 0xad, 0x2f, 0x02, 0x0c, 0xdb, 0x2b, 0x3a, 0x64, 0x2f, - 0xb2, 0xee, 0x0a, 0xe9, 0xc1, 0xf5, 0xbe, 0x08, 0x5e, 0xd1, 0x44, 0x3a, 0x69, 0x14, 0x5d, 0x50, - 0x6f, 0xa8, 0x6b, 0xae, 0x6b, 0x91, 0x1b, 0x70, 0xad, 0x2f, 0x02, 0xad, 0xf6, 0x99, 0xa4, 0x91, - 0xee, 0xb2, 0xdd, 0x12, 0xb9, 0x0b, 0xb7, 0xdf, 0x21, 0xe7, 0x03, 0x65, 0xb7, 0x4c, 0x6e, 0xc1, - 0x7a, 0x5f, 0x04, 0x27, 0xe1, 0x05, 0xe3, 0x89, 0xca, 0x63, 0x9c, 0xda, 0xbb, 0x15, 0x73, 0x50, - 0x81, 0x61, 0x44, 0x56, 0xc9, 0xc7, 0x70, 0x5f, 0xeb, 0xf5, 0x1b, 0xe6, 0x49, 0x1c, 0x14, 0x82, - 0x63, 0x3a, 0x12, 0xcc, 0x3f, 0x9a, 0xf4, 0x59, 0x9c, 0xf2, 0x89, 0x7e, 0xe4, 0x77, 0xab, 0xe4, - 0x0e, 0xdc, 0xec, 0x8b, 0xe0, 0x10, 0xed, 0x0c, 0xa3, 0x50, 0x4e, 0xf2, 0xed, 0x6b, 0x64, 0x03, - 0x6e, 0xbd, 0xc3, 0x33, 0x27, 0xd4, 0x89, 0x0d, 0x9b, 0x7d, 0x11, 0xbc, 0x4c, 0xa5, 0x52, 0x35, - 0x8b, 0x42, 0x7d, 0x89, 0xea, 0x06, 0x96, 0x6f, 0xd0, 0x20, 0xf7, 0x61, 0xeb, 0xbd, 0x18, 0xb3, - 0x11, 0x90, 0xeb, 0xd0, 0xed, 0x8b, 0xc0, 0x44, 0xd1, 0x88, 0x36, 0x8d, 0xa7, 0x72, 0xaa, 0x01, - 0xb7, 0x8e, 0x76, 0xfe, 0xf9, 0xa7, 0xba, 0xf5, 0x97, 0xb7, 0x9b, 0xd6, 0xdf, 0xdf, 0x6e, 0x5a, - 0xff, 0x7a, 0xbb, 0x69, 0x7d, 0xf7, 0xef, 0xcd, 0x15, 0xe8, 0xa6, 0x3c, 0xd8, 0x93, 0xe1, 0x70, - 0xbc, 0x37, 0x1c, 0xeb, 0x7f, 0xae, 0x2e, 0xaa, 0xfa, 0xe7, 0xf3, 0xff, 0x07, 0x00, 0x00, 0xff, - 0xff, 0xd7, 0x7c, 0xc0, 0xda, 0x35, 0x13, 0x00, 0x00, + // 2048 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x4b, 0x6f, 0x1b, 0xc9, + 0x11, 0xd6, 0x90, 0x14, 0x1f, 0xc5, 0x87, 0xe8, 0x96, 0x1f, 0xb4, 0xb5, 0xb6, 0xe5, 0xf1, 0xda, + 0xab, 0xf5, 0x26, 0x32, 0x56, 0xeb, 0x6c, 0x16, 0x1b, 0xc0, 0x88, 0x24, 0xdb, 0x91, 0xb3, 0xa1, + 0x61, 0x8c, 0x64, 0x1b, 0x39, 0x0d, 0x5a, 0x33, 0xcd, 0xd1, 0x84, 0xf3, 0xda, 0xee, 0x26, 0x6d, + 0x06, 0x39, 0xe5, 0x2f, 0xe4, 0xb2, 0x3f, 0x21, 0x3f, 0x24, 0x87, 0x20, 0xb9, 0x24, 0x40, 0x0e, + 0x39, 0x06, 0xce, 0x25, 0xd7, 0x1c, 0x73, 0x0b, 0xba, 0xab, 0x87, 0x9c, 0xa1, 0x69, 0x2d, 0xd6, + 0x27, 0x76, 0x57, 0x7d, 0xd5, 0x5d, 0xef, 0xae, 0x21, 0x6c, 0x72, 0x3a, 0x92, 0xae, 0x60, 0x7c, + 0xca, 0x78, 0x76, 0xba, 0x9b, 0xf1, 0x54, 0xa6, 0xa4, 0x5b, 0x22, 0x5e, 0xeb, 0x32, 0xb5, 0xcf, + 0xb9, 0xd7, 0x3a, 0x31, 0x93, 0x74, 0xbe, 0xeb, 0x8e, 0xa7, 0x3c, 0xf3, 0xe6, 0xdb, 0xbe, 0x1f, + 0x8a, 0xb1, 0x3b, 0x11, 0x34, 0x60, 0x86, 0xb2, 0xc1, 0x27, 0x42, 0xea, 0x25, 0x12, 0xec, 0xff, + 0x55, 0xa1, 0xed, 0xd0, 0x91, 0x1c, 0x32, 0xa1, 0x60, 0x64, 0x0b, 0x5a, 0x9c, 0x05, 0x61, 0x9a, + 0xb8, 0xa1, 0x3f, 0xb0, 0xb6, 0xad, 0x9d, 0x9a, 0xd3, 0x44, 0xc2, 0x53, 0x9f, 0x7c, 0x0a, 0xad, + 0x11, 0x4f, 0x63, 0x37, 0x63, 0x8c, 0x0f, 0x2a, 0xdb, 0xd6, 0x4e, 0x7b, 0xaf, 0xb3, 0x6b, 0x14, + 0x78, 0xce, 0x18, 0x77, 0x9a, 0x8a, 0xad, 0x56, 0xe4, 0x0e, 0x34, 0x64, 0x8a, 0xc0, 0xea, 0x0a, + 0x60, 0x5d, 0xa6, 0x1a, 0x76, 0x0f, 0x1a, 0x31, 0xde, 0x3c, 0xa8, 0x69, 0x58, 0x7f, 0x37, 0xb7, + 0xcf, 0x68, 0xe4, 0xe4, 0x00, 0xf2, 0x25, 0x74, 0x8c, 0x6a, 0x2c, 0x4b, 0xbd, 0xb3, 0xc1, 0xba, + 0x16, 0xd8, 0xcc, 0xcf, 0x75, 0x34, 0xef, 0xb1, 0x62, 0x39, 0x6d, 0xbe, 0xd8, 0x90, 0x5b, 0xd0, + 0x09, 0x85, 0x2b, 0xd3, 0xf8, 0x54, 0xc8, 0x34, 0x61, 0x83, 0xfa, 0xb6, 0xb5, 0xd3, 0x74, 0xda, + 0xa1, 0x38, 0xc9, 0x49, 0xca, 0x6a, 0x21, 0x29, 0x97, 0xee, 0x98, 0xcd, 0x06, 0x8d, 0x6d, 0x6b, + 0xa7, 0xe3, 0x34, 0x35, 0xe1, 0x1b, 0x36, 0x23, 0x57, 0xa0, 0xc1, 0x12, 0x5f, 0xb3, 0x9a, 0x9a, + 0x55, 0x67, 0x89, 0xaf, 0x18, 0x9f, 0x43, 0x27, 0x66, 0x3c, 0x60, 0xae, 0xa4, 0x3c, 0x60, 0x72, + 0xd0, 0xd2, 0x0a, 0xf5, 0xca, 0x0a, 0x39, 0x6d, 0x8d, 0x39, 0xd1, 0x10, 0xf2, 0x15, 0xb4, 0xd8, + 0x1b, 0xc9, 0xa9, 0x1b, 0x8b, 0x60, 0x00, 0x1a, 0xbf, 0xb5, 0x5b, 0x8e, 0xfa, 0x63, 0xc5, 0xcf, + 0x8d, 0x6f, 0x6a, 0xf4, 0x50, 0x04, 0x4a, 0x45, 0x94, 0xf4, 0xe4, 0x9b, 0x41, 0x1b, 0x55, 0xd4, + 0x84, 0x43, 0xf9, 0x86, 0x3c, 0x00, 0x58, 0x84, 0x7a, 0xd0, 0xd9, 0xb6, 0x76, 0x7a, 0x7b, 0x97, + 0x76, 0x0b, 0xd1, 0x7f, 0x14, 0x8a, 0xf1, 0x0b, 0x7d, 0x62, 0xcb, 0xcf, 0x97, 0xf6, 0x43, 0x20, + 0x2a, 0xf4, 0x27, 0x7c, 0x92, 0x78, 0x54, 0x32, 0xff, 0x58, 0x52, 0xc9, 0xc8, 0x45, 0x58, 0x0f, + 0x13, 0x9f, 0xbd, 0x31, 0xd1, 0xc7, 0x0d, 0x21, 0x50, 0x93, 0x8c, 0xc7, 0x3a, 0xea, 0x35, 0x47, + 0xaf, 0xed, 0xe7, 0xd0, 0x3b, 0x4e, 0x68, 0x26, 0xce, 0x52, 0x79, 0xf8, 0xe4, 0x49, 0x18, 0x31, + 0xd2, 0x83, 0x8a, 0x37, 0xd2, 0x82, 0x2d, 0xa7, 0xe2, 0x8d, 0x94, 0x94, 0x08, 0x7f, 0xcb, 0x72, + 0x29, 0xb5, 0x26, 0xd7, 0xa0, 0xe9, 0x9d, 0x31, 0x6f, 0x2c, 0x26, 0xb1, 0x4e, 0x8d, 0xae, 0x33, + 0xdf, 0xdb, 0xff, 0xb0, 0xa0, 0x93, 0x1f, 0x39, 0x64, 0x92, 0x92, 0xaf, 0xa0, 0xe9, 0x8d, 0xdc, + 0x51, 0x18, 0x31, 0x31, 0xb0, 0xb6, 0xab, 0x3b, 0xed, 0xbd, 0xeb, 0x4b, 0xee, 0x2a, 0x6b, 0xe0, + 0x34, 0xbc, 0x91, 0xfa, 0x15, 0xe4, 0x26, 0xb4, 0x47, 0x29, 0x77, 0x4f, 0x69, 0x44, 0x13, 0x0f, + 0x35, 0x68, 0x3a, 0x30, 0x4a, 0xf9, 0x01, 0x52, 0x72, 0xc0, 0xeb, 0x50, 0x26, 0x4c, 0x08, 0xad, + 0x0a, 0x02, 0x5e, 0x21, 0x45, 0x39, 0x42, 0xe7, 0x80, 0xce, 0xcc, 0x9a, 0x83, 0x1b, 0xb2, 0x07, + 0x97, 0x02, 0x96, 0x30, 0x4e, 0x25, 0x73, 0xfd, 0x09, 0xa7, 0x52, 0x25, 0xa4, 0x60, 0x9e, 0x4e, + 0xc7, 0x9a, 0xb3, 0x99, 0x33, 0x1f, 0x19, 0xde, 0x31, 0xf3, 0xec, 0x5f, 0x43, 0x77, 0xae, 0xe6, + 0xd9, 0x24, 0x19, 0x93, 0x07, 0x8b, 0xb4, 0xb7, 0x74, 0x12, 0x5c, 0x5b, 0xb2, 0xaa, 0x50, 0x92, + 0x8b, 0x02, 0x20, 0x50, 0xf3, 0xa9, 0xa4, 0xda, 0x96, 0x8e, 0xa3, 0xd7, 0x76, 0x1d, 0x6a, 0x8f, + 0xd2, 0x84, 0xd9, 0xdf, 0x59, 0x70, 0xf9, 0x84, 0x9e, 0x46, 0x4c, 0xe6, 0x37, 0x29, 0x37, 0x68, + 0x1f, 0x6e, 0x41, 0x4b, 0x39, 0xd0, 0xd5, 0x91, 0x30, 0x25, 0xad, 0x08, 0xc7, 0x2a, 0x1a, 0x39, + 0x33, 0xa1, 0x31, 0x3a, 0xa9, 0x85, 0xcc, 0x67, 0x34, 0x66, 0xe4, 0x3a, 0xc0, 0x19, 0xa3, 0xbe, + 0xeb, 0x29, 0xa5, 0xb5, 0x87, 0x3a, 0x4e, 0x4b, 0x51, 0xd0, 0x8a, 0x3b, 0xd0, 0x93, 0x9c, 0x86, + 0x51, 0x98, 0x04, 0x06, 0x52, 0xd3, 0x90, 0x6e, 0x4e, 0xd5, 0x30, 0x7b, 0x04, 0x97, 0xca, 0x9a, + 0x3d, 0xe7, 0x6c, 0x1a, 0xb2, 0xd7, 0xe4, 0x67, 0xb0, 0xae, 0x4a, 0x25, 0x8f, 0xec, 0x9d, 0x25, + 0x1f, 0xac, 0x36, 0xc7, 0x41, 0x19, 0xd2, 0x87, 0x2a, 0x4b, 0x7c, 0x13, 0x57, 0xb5, 0xb4, 0x03, + 0xb8, 0xf2, 0xae, 0x08, 0x6a, 0xfa, 0xe1, 0x2e, 0xc8, 0x7d, 0x5e, 0x2d, 0xf8, 0x3c, 0x00, 0x52, + 0xbe, 0xe8, 0x88, 0x51, 0xff, 0x03, 0x63, 0xba, 0x05, 0xad, 0x89, 0x60, 0xae, 0x47, 0xbd, 0xb3, + 0x3c, 0x49, 0x9b, 0x13, 0xc1, 0x0e, 0xd5, 0xde, 0xbe, 0x0f, 0x17, 0xca, 0x17, 0x3d, 0x4e, 0xfc, + 0x52, 0xfd, 0x18, 0x53, 0xe6, 0xf5, 0xf3, 0x87, 0xca, 0xb2, 0xaf, 0x1d, 0xf6, 0xed, 0x84, 0x09, + 0x49, 0x7e, 0x0a, 0x35, 0x15, 0x38, 0xa3, 0xda, 0xad, 0x73, 0x5d, 0xad, 0xcc, 0x39, 0x5a, 0x73, + 0xb4, 0x00, 0xf9, 0x39, 0x34, 0x32, 0x8c, 0x97, 0xe9, 0xf8, 0x1f, 0x9f, 0x2b, 0x6b, 0x62, 0x7b, + 0xb4, 0xe6, 0xe4, 0x62, 0xe4, 0x21, 0xac, 0x2f, 0x12, 0xa8, 0xbd, 0x77, 0xf7, 0x7b, 0xc3, 0xac, + 0x63, 0x76, 0xb4, 0xe6, 0xa0, 0x18, 0x79, 0x80, 0x91, 0xc6, 0xf7, 0x61, 0xfb, 0x5c, 0xe9, 0xc7, + 0x89, 0x52, 0x5c, 0xc1, 0x0f, 0x5a, 0xd0, 0xc8, 0xe8, 0x2c, 0x4a, 0xa9, 0x6f, 0x3f, 0x80, 0x4b, + 0xfb, 0x9e, 0xc7, 0x32, 0xd5, 0xe2, 0x0a, 0xd7, 0x88, 0x72, 0xe4, 0x55, 0x12, 0x16, 0x22, 0x6f, + 0x9f, 0x2c, 0x17, 0x94, 0xc3, 0x44, 0x96, 0x26, 0x82, 0x91, 0xaf, 0x61, 0x3d, 0xef, 0x48, 0xab, + 0x1c, 0xb2, 0xf2, 0x2e, 0x07, 0x45, 0xec, 0x3d, 0x68, 0x7e, 0xc3, 0x66, 0x2f, 0x69, 0x34, 0x61, + 0x2a, 0x85, 0xd5, 0xa3, 0x62, 0xe9, 0xd4, 0x52, 0x4b, 0xd5, 0x72, 0xa6, 0x8a, 0x65, 0x4a, 0x1c, + 0x37, 0xf6, 0x5f, 0x2a, 0xd0, 0x57, 0xc9, 0x93, 0x1f, 0xf8, 0x88, 0x4a, 0x4a, 0xee, 0x42, 0x1d, + 0x1f, 0x39, 0xa3, 0xc5, 0xf2, 0xb3, 0x63, 0xb8, 0xe5, 0xd4, 0xaf, 0x2c, 0xa5, 0xfe, 0x67, 0xf3, + 0xec, 0x56, 0x05, 0x78, 0x65, 0xc9, 0x90, 0x5c, 0x51, 0x4c, 0x7b, 0x32, 0x80, 0xc6, 0x94, 0x71, + 0xa1, 0xae, 0xc4, 0x8e, 0x98, 0x6f, 0xc9, 0x7d, 0xa8, 0xa9, 0xcb, 0xcd, 0x8b, 0xbc, 0xf5, 0x9e, + 0x0e, 0xad, 0xab, 0x57, 0x03, 0xc9, 0x4f, 0x60, 0x83, 0xb3, 0x38, 0x9d, 0x32, 0xdf, 0xe5, 0xcc, + 0x4b, 0xb9, 0x2f, 0x06, 0x75, 0xad, 0x42, 0x79, 0x4a, 0xe8, 0x19, 0x90, 0x83, 0x18, 0x72, 0x00, + 0x3d, 0xfd, 0x98, 0x2e, 0xa4, 0x1a, 0x5a, 0x6a, 0xf9, 0xc6, 0xa1, 0x06, 0xa1, 0x94, 0xd3, 0x8d, + 0x0b, 0x3b, 0x61, 0xff, 0x0e, 0xe0, 0x58, 0xa6, 0x9c, 0x3d, 0xf5, 0x59, 0x22, 0x55, 0x87, 0xf3, + 0xa2, 0x89, 0x90, 0x8c, 0x2f, 0xe6, 0x9d, 0x96, 0xa1, 0x3c, 0xf5, 0xc9, 0x55, 0x68, 0x0a, 0x05, + 0x56, 0x4c, 0xf4, 0x5d, 0x43, 0xa0, 0x30, 0x79, 0x00, 0x6d, 0x9a, 0x85, 0x6e, 0xee, 0x91, 0xaa, + 0x7e, 0x73, 0x37, 0x77, 0xf3, 0x01, 0x6c, 0xff, 0xf9, 0xd3, 0x97, 0xc8, 0x72, 0x80, 0x66, 0xa1, + 0x59, 0xdb, 0x9f, 0xc2, 0x05, 0x7d, 0xbb, 0xd2, 0x66, 0xca, 0xf8, 0xfc, 0xc5, 0x15, 0xec, 0xdb, + 0x24, 0xcd, 0x5f, 0x5c, 0xbd, 0xb1, 0x4f, 0xa1, 0xa7, 0x82, 0xfe, 0xab, 0xd4, 0xa3, 0x11, 0xe2, + 0x3e, 0x07, 0x38, 0xa3, 0xdc, 0x77, 0x85, 0xda, 0x99, 0xb0, 0x93, 0xf9, 0xbc, 0x74, 0x44, 0x39, + 0xbe, 0xe0, 0x4e, 0xeb, 0x2c, 0x5f, 0x2a, 0xfb, 0x22, 0x2a, 0xa4, 0x8b, 0x2f, 0x3a, 0x9a, 0xd0, + 0x52, 0x94, 0xa7, 0x8a, 0x60, 0xff, 0xd7, 0xc2, 0x4b, 0xf6, 0xb3, 0x2c, 0x9a, 0xa1, 0xc4, 0x6d, + 0xe8, 0xd2, 0x2c, 0x8b, 0x42, 0xe6, 0xbb, 0xc5, 0x31, 0xa0, 0x63, 0x88, 0x5a, 0x8e, 0xdc, 0x83, + 0x0b, 0xfa, 0x58, 0x2f, 0x8d, 0xe3, 0x30, 0x3f, 0xbd, 0xaa, 0x81, 0x1b, 0x8a, 0x71, 0xa8, 0xe9, + 0x88, 0xbd, 0x05, 0x9d, 0x12, 0x0c, 0x73, 0xa7, 0xed, 0x15, 0x20, 0x37, 0xc1, 0x6c, 0x5d, 0x3d, + 0x63, 0xe0, 0x4b, 0x0a, 0x48, 0x3a, 0x61, 0x3c, 0x26, 0xbf, 0x84, 0x0d, 0x99, 0x4f, 0x29, 0xc6, + 0xfc, 0xca, 0xca, 0x46, 0xf6, 0xee, 0x3c, 0xe3, 0xf4, 0x64, 0x69, 0x6f, 0x87, 0x00, 0x3a, 0x3f, + 0xd0, 0xdc, 0x2d, 0x68, 0xc5, 0x61, 0x52, 0x32, 0xb5, 0x19, 0x87, 0x09, 0xea, 0x75, 0x17, 0xea, + 0x66, 0xb4, 0xab, 0xac, 0xae, 0x31, 0xe4, 0x92, 0xcb, 0x50, 0x47, 0x65, 0x8d, 0x0f, 0xcc, 0x4e, + 0x15, 0x6e, 0xa7, 0x98, 0x8b, 0x64, 0x07, 0xfa, 0x22, 0x9d, 0x70, 0x8f, 0xb9, 0xcb, 0x43, 0x76, + 0x0f, 0xe9, 0x4e, 0x3e, 0x6a, 0x7f, 0x09, 0x1d, 0x83, 0xc4, 0x61, 0xb7, 0x72, 0xce, 0xb0, 0x8b, + 0x40, 0x1c, 0x76, 0xef, 0xcf, 0xe5, 0xd4, 0xec, 0x2d, 0x4c, 0x65, 0x97, 0xcb, 0xca, 0x08, 0xa8, + 0xb5, 0x50, 0x2a, 0xa1, 0x15, 0x05, 0x95, 0x30, 0x44, 0x3d, 0xa4, 0x17, 0x55, 0x32, 0xc8, 0xef, + 0x9f, 0xbf, 0x11, 0x38, 0x57, 0xc9, 0xc8, 0xa1, 0x4a, 0xab, 0x2a, 0xdd, 0x08, 0xa0, 0x4a, 0xf3, + 0x09, 0xb4, 0x51, 0x98, 0x40, 0xed, 0x3f, 0xa9, 0x2e, 0xa8, 0xef, 0x28, 0x94, 0xc4, 0xae, 0x9e, + 0xd1, 0x4c, 0x35, 0xf4, 0xf6, 0x06, 0x4b, 0xe9, 0xa0, 0xce, 0xc3, 0x2c, 0x40, 0x58, 0xa1, 0x6b, + 0x56, 0xce, 0xed, 0x9a, 0x5f, 0x03, 0x8e, 0xed, 0x26, 0xd9, 0xf0, 0xe5, 0xba, 0xba, 0xaa, 0xcd, + 0xe0, 0xf1, 0x10, 0x2f, 0x52, 0xea, 0x96, 0xb2, 0x57, 0x3d, 0x1c, 0xe5, 0x84, 0x47, 0x1a, 0x26, + 0xd6, 0x8a, 0xfe, 0xb7, 0xfe, 0x41, 0xfd, 0xaf, 0xfe, 0x83, 0xfb, 0xdf, 0x7f, 0x2c, 0xf8, 0x08, + 0x8d, 0x3d, 0x56, 0xa3, 0x41, 0xe2, 0xb1, 0x67, 0x93, 0xf8, 0x94, 0x71, 0x87, 0x45, 0x7a, 0x5e, + 0x3d, 0xff, 0x0b, 0xf0, 0x13, 0xd8, 0x10, 0x46, 0xcc, 0x4d, 0xb4, 0x9c, 0x69, 0x2a, 0x3d, 0x51, + 0x3a, 0x8d, 0x3c, 0x54, 0xed, 0x31, 0x8b, 0x66, 0x25, 0x07, 0x5e, 0x5f, 0x51, 0xad, 0x8b, 0xd6, + 0xa3, 0x1a, 0xe5, 0xbc, 0x0d, 0x1d, 0xcc, 0x3f, 0xf6, 0xf0, 0x00, 0x7c, 0xfd, 0x6f, 0x2e, 0x1f, + 0xb0, 0x94, 0x0f, 0xf9, 0x87, 0x1f, 0x56, 0xfa, 0x8f, 0xa0, 0xfb, 0x24, 0x9a, 0x88, 0xb3, 0x21, + 0x8b, 0xb5, 0xf3, 0xcf, 0x35, 0xcd, 0xfe, 0xab, 0x05, 0xed, 0x43, 0x35, 0x48, 0xfd, 0xc2, 0xd3, + 0x9f, 0xa6, 0x1f, 0x43, 0x4f, 0x7f, 0xec, 0x2e, 0x4b, 0x74, 0x14, 0x75, 0x5e, 0x14, 0x77, 0x61, + 0x43, 0x4f, 0x5f, 0x05, 0x18, 0x3a, 0xa4, 0xab, 0xc9, 0x73, 0xdc, 0x3e, 0x90, 0x12, 0x0e, 0x4b, + 0xa8, 0xfa, 0xfe, 0x12, 0xea, 0x17, 0xe4, 0xb1, 0x8e, 0x3e, 0x03, 0xc0, 0x23, 0xf4, 0x57, 0x75, + 0x6d, 0xc5, 0x57, 0x75, 0x4b, 0xf3, 0xd5, 0xd2, 0xfe, 0x7b, 0x05, 0x3a, 0xc5, 0x2f, 0x49, 0xf2, + 0x05, 0xd4, 0xe4, 0x2c, 0xcb, 0x0b, 0xe5, 0xe6, 0x39, 0x1f, 0x9d, 0x27, 0xb3, 0x8c, 0x39, 0x1a, + 0xbc, 0xa8, 0xc4, 0x4a, 0xf1, 0x5b, 0xf0, 0xc7, 0xd0, 0x5e, 0x28, 0xb2, 0xba, 0xc5, 0xc0, 0x5c, + 0x13, 0x3d, 0x65, 0xbd, 0xa6, 0xa1, 0x74, 0xf5, 0xa4, 0x51, 0xc3, 0x11, 0x57, 0x11, 0xf4, 0x18, + 0x73, 0x07, 0x7a, 0xa3, 0x94, 0x7b, 0x2c, 0x9a, 0xb9, 0xf4, 0x35, 0x1d, 0xb3, 0x44, 0xb7, 0x95, + 0xa6, 0xd3, 0x35, 0xd4, 0x7d, 0x4d, 0x24, 0x0f, 0x01, 0xfd, 0xe9, 0x06, 0x1e, 0x9a, 0x5f, 0x5f, + 0x39, 0x62, 0x17, 0xe2, 0xe7, 0xa0, 0x8e, 0x26, 0x98, 0x87, 0xd0, 0x1b, 0xa9, 0x54, 0x70, 0x63, + 0x93, 0x0b, 0xba, 0xb7, 0xb4, 0xf7, 0x3e, 0x5a, 0x3a, 0xa0, 0x94, 0x2f, 0x4e, 0x77, 0x54, 0xdc, + 0xde, 0x73, 0xa0, 0x35, 0x6f, 0x28, 0x04, 0xa0, 0xfe, 0x2c, 0xe5, 0x31, 0x8d, 0xfa, 0x6b, 0xa4, + 0x03, 0x4d, 0x9d, 0xc6, 0x61, 0x12, 0xf4, 0x2d, 0xd2, 0x85, 0xd6, 0xfc, 0x9f, 0x85, 0x7e, 0x85, + 0xb4, 0xa1, 0xa1, 0xea, 0x51, 0xf1, 0xaa, 0x64, 0x03, 0xda, 0x2f, 0x12, 0x3a, 0xa5, 0x61, 0xa4, + 0x4e, 0xec, 0xd7, 0xee, 0xfd, 0xbe, 0x0a, 0xfd, 0x65, 0xe7, 0x93, 0x4d, 0xd8, 0x18, 0x8a, 0x00, + 0x63, 0xff, 0x8a, 0x8e, 0xd9, 0x8b, 0xac, 0xbf, 0x46, 0x06, 0x70, 0x71, 0x28, 0x82, 0x57, 0x34, + 0x91, 0x4e, 0x1a, 0x45, 0xa7, 0xd4, 0x1b, 0xeb, 0x32, 0xef, 0x5b, 0xe4, 0x12, 0x5c, 0x18, 0x8a, + 0x40, 0xdb, 0x7e, 0x2c, 0x69, 0xa4, 0x1b, 0x7b, 0xbf, 0x42, 0xae, 0xc3, 0xd5, 0x77, 0xc8, 0xf9, + 0x0c, 0xdb, 0xaf, 0x92, 0x2b, 0xb0, 0x39, 0x14, 0xc1, 0x51, 0x78, 0xca, 0x78, 0xa2, 0x4a, 0x07, + 0x3f, 0x14, 0xfa, 0x35, 0x73, 0x51, 0x81, 0x61, 0x44, 0xd6, 0xc9, 0x27, 0x70, 0x5b, 0xeb, 0xf5, + 0x1b, 0xe6, 0x49, 0x9c, 0x4d, 0x82, 0x43, 0x3a, 0x11, 0xcc, 0x3f, 0x98, 0x0d, 0x59, 0x9c, 0xf2, + 0x99, 0xfe, 0x5f, 0xa1, 0x5f, 0x27, 0xd7, 0xe0, 0xf2, 0x50, 0x04, 0xfb, 0x68, 0x67, 0x18, 0x85, + 0x72, 0x96, 0x1f, 0xdf, 0x20, 0x5b, 0x70, 0xe5, 0x1d, 0x9e, 0xb9, 0xa1, 0x49, 0x6c, 0xb8, 0x31, + 0x14, 0xc1, 0xcb, 0x54, 0x2a, 0x55, 0xb3, 0x28, 0xd4, 0xef, 0xb6, 0xee, 0x99, 0xf9, 0x01, 0x2d, + 0x72, 0x1b, 0x6e, 0xbe, 0x17, 0x63, 0x0e, 0x02, 0x72, 0x11, 0xfa, 0x43, 0x11, 0x98, 0x54, 0x30, + 0xa2, 0x6d, 0xe3, 0xa9, 0x9c, 0x6a, 0xc0, 0x9d, 0x83, 0xbb, 0xff, 0xfc, 0x63, 0xd3, 0xfa, 0xf3, + 0xdb, 0x1b, 0xd6, 0xdf, 0xde, 0xde, 0xb0, 0xfe, 0xf5, 0xf6, 0x86, 0xf5, 0xdd, 0xbf, 0x6f, 0xac, + 0x41, 0x3f, 0xe5, 0xc1, 0xae, 0x0c, 0xc7, 0xd3, 0xdd, 0xf1, 0x54, 0xff, 0x59, 0x76, 0x5a, 0xd7, + 0x3f, 0x5f, 0xfc, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x25, 0x47, 0x23, 0xf6, 0xa8, 0x13, 0x00, 0x00, } func (m *RaftMessage) Marshal() (dAtA []byte, err error) { @@ -3525,6 +3583,38 @@ func (m *RegionSequenceNumberRelation) MarshalToSizedBuffer(dAtA []byte) (int, e return len(dAtA) - i, nil } +func (m *FlushMemtable) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FlushMemtable) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FlushMemtable) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.RegionId != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.RegionId)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *CheckGcPeer) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3610,6 +3700,18 @@ func (m *ExtraMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.FlushMemtable != nil { + { + size, err := m.FlushMemtable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } if m.CheckGcPeer != nil { { size, err := m.CheckGcPeer.MarshalToSizedBuffer(dAtA[:i]) @@ -4315,6 +4417,21 @@ func (m *RegionSequenceNumberRelation) Size() (n int) { return n } +func (m *FlushMemtable) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RegionId != 0 { + n += 1 + sovRaftServerpb(uint64(m.RegionId)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *CheckGcPeer) Size() (n int) { if m == nil { return 0 @@ -4369,6 +4486,10 @@ func (m *ExtraMessage) Size() (n int) { l = m.CheckGcPeer.Size() n += 1 + l + sovRaftServerpb(uint64(l)) } + if m.FlushMemtable != nil { + l = m.FlushMemtable.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -7894,6 +8015,76 @@ func (m *RegionSequenceNumberRelation) Unmarshal(dAtA []byte) error { } return nil } +func (m *FlushMemtable) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FlushMemtable: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FlushMemtable: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RegionId", wireType) + } + m.RegionId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RegionId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipRaftServerpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRaftServerpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *CheckGcPeer) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -8232,6 +8423,42 @@ func (m *ExtraMessage) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FlushMemtable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FlushMemtable == nil { + m.FlushMemtable = &FlushMemtable{} + } + if err := m.FlushMemtable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipRaftServerpb(dAtA[iNdEx:]) diff --git a/proto/raft_serverpb.proto b/proto/raft_serverpb.proto index e63895f..f16f2b5 100644 --- a/proto/raft_serverpb.proto +++ b/proto/raft_serverpb.proto @@ -226,6 +226,10 @@ enum ExtraMessageType { MsgGcPeerResponse = 12; } +message FlushMemtable { + uint64 region_id = 1; +} + message CheckGcPeer { // The region ID who triggers the check and wait for report. It should be // the ID of RaftMessage.from. @@ -250,4 +254,5 @@ message ExtraMessage { // Flag for forcely wake up hibernate regions if true. bool forcely_awaken = 5; CheckGcPeer check_gc_peer = 6; + FlushMemtable flush_memtable = 7; } diff --git a/scripts/proto.lock b/scripts/proto.lock index f5a15e3..db4e7f2 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -16014,6 +16014,16 @@ } ] }, + { + "name": "FlushMemtable", + "fields": [ + { + "id": 1, + "name": "region_id", + "type": "uint64" + } + ] + }, { "name": "CheckGcPeer", "fields": [ @@ -16072,6 +16082,11 @@ "id": 6, "name": "check_gc_peer", "type": "CheckGcPeer" + }, + { + "id": 7, + "name": "flush_memtable", + "type": "FlushMemtable" } ] } -- Gitee From af969693ce8a7884e5bdc5d81c728f657d33065a Mon Sep 17 00:00:00 2001 From: Spade A <71589810+SpadeA-Tang@users.noreply.github.com> Date: Thu, 23 Mar 2023 23:43:44 +0800 Subject: [PATCH 26/44] add extra message to inform follower to flush memtable (#1090) * update Signed-off-by: Spade A * update Signed-off-by: Spade A --------- Signed-off-by: Spade A --- pkg/raft_serverpb/raft_serverpb.pb.go | 262 +++++++++++++------------- proto/raft_serverpb.proto | 1 + scripts/proto.lock | 4 + 3 files changed, 138 insertions(+), 129 deletions(-) diff --git a/pkg/raft_serverpb/raft_serverpb.pb.go b/pkg/raft_serverpb/raft_serverpb.pb.go index 0c6463e..85062f2 100644 --- a/pkg/raft_serverpb/raft_serverpb.pb.go +++ b/pkg/raft_serverpb/raft_serverpb.pb.go @@ -84,6 +84,7 @@ const ( // Message means that `from` is tombstone. Leader can then update removed_records. ExtraMessageType_MsgGcPeerRequest ExtraMessageType = 11 ExtraMessageType_MsgGcPeerResponse ExtraMessageType = 12 + ExtraMessageType_MsgFlushMemtable ExtraMessageType = 13 ) var ExtraMessageType_name = map[int32]string{ @@ -100,6 +101,7 @@ var ExtraMessageType_name = map[int32]string{ 10: "MsgVoterReplicatedIndexResponse", 11: "MsgGcPeerRequest", 12: "MsgGcPeerResponse", + 13: "MsgFlushMemtable", } var ExtraMessageType_value = map[string]int32{ @@ -116,6 +118,7 @@ var ExtraMessageType_value = map[string]int32{ "MsgVoterReplicatedIndexResponse": 10, "MsgGcPeerRequest": 11, "MsgGcPeerResponse": 12, + "MsgFlushMemtable": 13, } func (x ExtraMessageType) String() string { @@ -2047,135 +2050,136 @@ func init() { func init() { proto.RegisterFile("raft_serverpb.proto", fileDescriptor_130ebc2f2c37a342) } var fileDescriptor_130ebc2f2c37a342 = []byte{ - // 2048 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x4b, 0x6f, 0x1b, 0xc9, - 0x11, 0xd6, 0x90, 0x14, 0x1f, 0xc5, 0x87, 0xe8, 0x96, 0x1f, 0xb4, 0xb5, 0xb6, 0xe5, 0xf1, 0xda, - 0xab, 0xf5, 0x26, 0x32, 0x56, 0xeb, 0x6c, 0x16, 0x1b, 0xc0, 0x88, 0x24, 0xdb, 0x91, 0xb3, 0xa1, - 0x61, 0x8c, 0x64, 0x1b, 0x39, 0x0d, 0x5a, 0x33, 0xcd, 0xd1, 0x84, 0xf3, 0xda, 0xee, 0x26, 0x6d, - 0x06, 0x39, 0xe5, 0x2f, 0xe4, 0xb2, 0x3f, 0x21, 0x3f, 0x24, 0x87, 0x20, 0xb9, 0x24, 0x40, 0x0e, - 0x39, 0x06, 0xce, 0x25, 0xd7, 0x1c, 0x73, 0x0b, 0xba, 0xab, 0x87, 0x9c, 0xa1, 0x69, 0x2d, 0xd6, - 0x27, 0x76, 0x57, 0x7d, 0xd5, 0x5d, 0xef, 0xae, 0x21, 0x6c, 0x72, 0x3a, 0x92, 0xae, 0x60, 0x7c, - 0xca, 0x78, 0x76, 0xba, 0x9b, 0xf1, 0x54, 0xa6, 0xa4, 0x5b, 0x22, 0x5e, 0xeb, 0x32, 0xb5, 0xcf, - 0xb9, 0xd7, 0x3a, 0x31, 0x93, 0x74, 0xbe, 0xeb, 0x8e, 0xa7, 0x3c, 0xf3, 0xe6, 0xdb, 0xbe, 0x1f, - 0x8a, 0xb1, 0x3b, 0x11, 0x34, 0x60, 0x86, 0xb2, 0xc1, 0x27, 0x42, 0xea, 0x25, 0x12, 0xec, 0xff, - 0x55, 0xa1, 0xed, 0xd0, 0x91, 0x1c, 0x32, 0xa1, 0x60, 0x64, 0x0b, 0x5a, 0x9c, 0x05, 0x61, 0x9a, - 0xb8, 0xa1, 0x3f, 0xb0, 0xb6, 0xad, 0x9d, 0x9a, 0xd3, 0x44, 0xc2, 0x53, 0x9f, 0x7c, 0x0a, 0xad, - 0x11, 0x4f, 0x63, 0x37, 0x63, 0x8c, 0x0f, 0x2a, 0xdb, 0xd6, 0x4e, 0x7b, 0xaf, 0xb3, 0x6b, 0x14, - 0x78, 0xce, 0x18, 0x77, 0x9a, 0x8a, 0xad, 0x56, 0xe4, 0x0e, 0x34, 0x64, 0x8a, 0xc0, 0xea, 0x0a, - 0x60, 0x5d, 0xa6, 0x1a, 0x76, 0x0f, 0x1a, 0x31, 0xde, 0x3c, 0xa8, 0x69, 0x58, 0x7f, 0x37, 0xb7, - 0xcf, 0x68, 0xe4, 0xe4, 0x00, 0xf2, 0x25, 0x74, 0x8c, 0x6a, 0x2c, 0x4b, 0xbd, 0xb3, 0xc1, 0xba, - 0x16, 0xd8, 0xcc, 0xcf, 0x75, 0x34, 0xef, 0xb1, 0x62, 0x39, 0x6d, 0xbe, 0xd8, 0x90, 0x5b, 0xd0, - 0x09, 0x85, 0x2b, 0xd3, 0xf8, 0x54, 0xc8, 0x34, 0x61, 0x83, 0xfa, 0xb6, 0xb5, 0xd3, 0x74, 0xda, - 0xa1, 0x38, 0xc9, 0x49, 0xca, 0x6a, 0x21, 0x29, 0x97, 0xee, 0x98, 0xcd, 0x06, 0x8d, 0x6d, 0x6b, - 0xa7, 0xe3, 0x34, 0x35, 0xe1, 0x1b, 0x36, 0x23, 0x57, 0xa0, 0xc1, 0x12, 0x5f, 0xb3, 0x9a, 0x9a, - 0x55, 0x67, 0x89, 0xaf, 0x18, 0x9f, 0x43, 0x27, 0x66, 0x3c, 0x60, 0xae, 0xa4, 0x3c, 0x60, 0x72, - 0xd0, 0xd2, 0x0a, 0xf5, 0xca, 0x0a, 0x39, 0x6d, 0x8d, 0x39, 0xd1, 0x10, 0xf2, 0x15, 0xb4, 0xd8, - 0x1b, 0xc9, 0xa9, 0x1b, 0x8b, 0x60, 0x00, 0x1a, 0xbf, 0xb5, 0x5b, 0x8e, 0xfa, 0x63, 0xc5, 0xcf, - 0x8d, 0x6f, 0x6a, 0xf4, 0x50, 0x04, 0x4a, 0x45, 0x94, 0xf4, 0xe4, 0x9b, 0x41, 0x1b, 0x55, 0xd4, - 0x84, 0x43, 0xf9, 0x86, 0x3c, 0x00, 0x58, 0x84, 0x7a, 0xd0, 0xd9, 0xb6, 0x76, 0x7a, 0x7b, 0x97, - 0x76, 0x0b, 0xd1, 0x7f, 0x14, 0x8a, 0xf1, 0x0b, 0x7d, 0x62, 0xcb, 0xcf, 0x97, 0xf6, 0x43, 0x20, - 0x2a, 0xf4, 0x27, 0x7c, 0x92, 0x78, 0x54, 0x32, 0xff, 0x58, 0x52, 0xc9, 0xc8, 0x45, 0x58, 0x0f, - 0x13, 0x9f, 0xbd, 0x31, 0xd1, 0xc7, 0x0d, 0x21, 0x50, 0x93, 0x8c, 0xc7, 0x3a, 0xea, 0x35, 0x47, - 0xaf, 0xed, 0xe7, 0xd0, 0x3b, 0x4e, 0x68, 0x26, 0xce, 0x52, 0x79, 0xf8, 0xe4, 0x49, 0x18, 0x31, - 0xd2, 0x83, 0x8a, 0x37, 0xd2, 0x82, 0x2d, 0xa7, 0xe2, 0x8d, 0x94, 0x94, 0x08, 0x7f, 0xcb, 0x72, - 0x29, 0xb5, 0x26, 0xd7, 0xa0, 0xe9, 0x9d, 0x31, 0x6f, 0x2c, 0x26, 0xb1, 0x4e, 0x8d, 0xae, 0x33, - 0xdf, 0xdb, 0xff, 0xb0, 0xa0, 0x93, 0x1f, 0x39, 0x64, 0x92, 0x92, 0xaf, 0xa0, 0xe9, 0x8d, 0xdc, - 0x51, 0x18, 0x31, 0x31, 0xb0, 0xb6, 0xab, 0x3b, 0xed, 0xbd, 0xeb, 0x4b, 0xee, 0x2a, 0x6b, 0xe0, - 0x34, 0xbc, 0x91, 0xfa, 0x15, 0xe4, 0x26, 0xb4, 0x47, 0x29, 0x77, 0x4f, 0x69, 0x44, 0x13, 0x0f, - 0x35, 0x68, 0x3a, 0x30, 0x4a, 0xf9, 0x01, 0x52, 0x72, 0xc0, 0xeb, 0x50, 0x26, 0x4c, 0x08, 0xad, - 0x0a, 0x02, 0x5e, 0x21, 0x45, 0x39, 0x42, 0xe7, 0x80, 0xce, 0xcc, 0x9a, 0x83, 0x1b, 0xb2, 0x07, - 0x97, 0x02, 0x96, 0x30, 0x4e, 0x25, 0x73, 0xfd, 0x09, 0xa7, 0x52, 0x25, 0xa4, 0x60, 0x9e, 0x4e, - 0xc7, 0x9a, 0xb3, 0x99, 0x33, 0x1f, 0x19, 0xde, 0x31, 0xf3, 0xec, 0x5f, 0x43, 0x77, 0xae, 0xe6, - 0xd9, 0x24, 0x19, 0x93, 0x07, 0x8b, 0xb4, 0xb7, 0x74, 0x12, 0x5c, 0x5b, 0xb2, 0xaa, 0x50, 0x92, - 0x8b, 0x02, 0x20, 0x50, 0xf3, 0xa9, 0xa4, 0xda, 0x96, 0x8e, 0xa3, 0xd7, 0x76, 0x1d, 0x6a, 0x8f, - 0xd2, 0x84, 0xd9, 0xdf, 0x59, 0x70, 0xf9, 0x84, 0x9e, 0x46, 0x4c, 0xe6, 0x37, 0x29, 0x37, 0x68, - 0x1f, 0x6e, 0x41, 0x4b, 0x39, 0xd0, 0xd5, 0x91, 0x30, 0x25, 0xad, 0x08, 0xc7, 0x2a, 0x1a, 0x39, - 0x33, 0xa1, 0x31, 0x3a, 0xa9, 0x85, 0xcc, 0x67, 0x34, 0x66, 0xe4, 0x3a, 0xc0, 0x19, 0xa3, 0xbe, - 0xeb, 0x29, 0xa5, 0xb5, 0x87, 0x3a, 0x4e, 0x4b, 0x51, 0xd0, 0x8a, 0x3b, 0xd0, 0x93, 0x9c, 0x86, - 0x51, 0x98, 0x04, 0x06, 0x52, 0xd3, 0x90, 0x6e, 0x4e, 0xd5, 0x30, 0x7b, 0x04, 0x97, 0xca, 0x9a, - 0x3d, 0xe7, 0x6c, 0x1a, 0xb2, 0xd7, 0xe4, 0x67, 0xb0, 0xae, 0x4a, 0x25, 0x8f, 0xec, 0x9d, 0x25, - 0x1f, 0xac, 0x36, 0xc7, 0x41, 0x19, 0xd2, 0x87, 0x2a, 0x4b, 0x7c, 0x13, 0x57, 0xb5, 0xb4, 0x03, - 0xb8, 0xf2, 0xae, 0x08, 0x6a, 0xfa, 0xe1, 0x2e, 0xc8, 0x7d, 0x5e, 0x2d, 0xf8, 0x3c, 0x00, 0x52, - 0xbe, 0xe8, 0x88, 0x51, 0xff, 0x03, 0x63, 0xba, 0x05, 0xad, 0x89, 0x60, 0xae, 0x47, 0xbd, 0xb3, - 0x3c, 0x49, 0x9b, 0x13, 0xc1, 0x0e, 0xd5, 0xde, 0xbe, 0x0f, 0x17, 0xca, 0x17, 0x3d, 0x4e, 0xfc, - 0x52, 0xfd, 0x18, 0x53, 0xe6, 0xf5, 0xf3, 0x87, 0xca, 0xb2, 0xaf, 0x1d, 0xf6, 0xed, 0x84, 0x09, - 0x49, 0x7e, 0x0a, 0x35, 0x15, 0x38, 0xa3, 0xda, 0xad, 0x73, 0x5d, 0xad, 0xcc, 0x39, 0x5a, 0x73, - 0xb4, 0x00, 0xf9, 0x39, 0x34, 0x32, 0x8c, 0x97, 0xe9, 0xf8, 0x1f, 0x9f, 0x2b, 0x6b, 0x62, 0x7b, - 0xb4, 0xe6, 0xe4, 0x62, 0xe4, 0x21, 0xac, 0x2f, 0x12, 0xa8, 0xbd, 0x77, 0xf7, 0x7b, 0xc3, 0xac, - 0x63, 0x76, 0xb4, 0xe6, 0xa0, 0x18, 0x79, 0x80, 0x91, 0xc6, 0xf7, 0x61, 0xfb, 0x5c, 0xe9, 0xc7, - 0x89, 0x52, 0x5c, 0xc1, 0x0f, 0x5a, 0xd0, 0xc8, 0xe8, 0x2c, 0x4a, 0xa9, 0x6f, 0x3f, 0x80, 0x4b, - 0xfb, 0x9e, 0xc7, 0x32, 0xd5, 0xe2, 0x0a, 0xd7, 0x88, 0x72, 0xe4, 0x55, 0x12, 0x16, 0x22, 0x6f, - 0x9f, 0x2c, 0x17, 0x94, 0xc3, 0x44, 0x96, 0x26, 0x82, 0x91, 0xaf, 0x61, 0x3d, 0xef, 0x48, 0xab, - 0x1c, 0xb2, 0xf2, 0x2e, 0x07, 0x45, 0xec, 0x3d, 0x68, 0x7e, 0xc3, 0x66, 0x2f, 0x69, 0x34, 0x61, - 0x2a, 0x85, 0xd5, 0xa3, 0x62, 0xe9, 0xd4, 0x52, 0x4b, 0xd5, 0x72, 0xa6, 0x8a, 0x65, 0x4a, 0x1c, - 0x37, 0xf6, 0x5f, 0x2a, 0xd0, 0x57, 0xc9, 0x93, 0x1f, 0xf8, 0x88, 0x4a, 0x4a, 0xee, 0x42, 0x1d, - 0x1f, 0x39, 0xa3, 0xc5, 0xf2, 0xb3, 0x63, 0xb8, 0xe5, 0xd4, 0xaf, 0x2c, 0xa5, 0xfe, 0x67, 0xf3, - 0xec, 0x56, 0x05, 0x78, 0x65, 0xc9, 0x90, 0x5c, 0x51, 0x4c, 0x7b, 0x32, 0x80, 0xc6, 0x94, 0x71, - 0xa1, 0xae, 0xc4, 0x8e, 0x98, 0x6f, 0xc9, 0x7d, 0xa8, 0xa9, 0xcb, 0xcd, 0x8b, 0xbc, 0xf5, 0x9e, - 0x0e, 0xad, 0xab, 0x57, 0x03, 0xc9, 0x4f, 0x60, 0x83, 0xb3, 0x38, 0x9d, 0x32, 0xdf, 0xe5, 0xcc, - 0x4b, 0xb9, 0x2f, 0x06, 0x75, 0xad, 0x42, 0x79, 0x4a, 0xe8, 0x19, 0x90, 0x83, 0x18, 0x72, 0x00, - 0x3d, 0xfd, 0x98, 0x2e, 0xa4, 0x1a, 0x5a, 0x6a, 0xf9, 0xc6, 0xa1, 0x06, 0xa1, 0x94, 0xd3, 0x8d, - 0x0b, 0x3b, 0x61, 0xff, 0x0e, 0xe0, 0x58, 0xa6, 0x9c, 0x3d, 0xf5, 0x59, 0x22, 0x55, 0x87, 0xf3, - 0xa2, 0x89, 0x90, 0x8c, 0x2f, 0xe6, 0x9d, 0x96, 0xa1, 0x3c, 0xf5, 0xc9, 0x55, 0x68, 0x0a, 0x05, - 0x56, 0x4c, 0xf4, 0x5d, 0x43, 0xa0, 0x30, 0x79, 0x00, 0x6d, 0x9a, 0x85, 0x6e, 0xee, 0x91, 0xaa, - 0x7e, 0x73, 0x37, 0x77, 0xf3, 0x01, 0x6c, 0xff, 0xf9, 0xd3, 0x97, 0xc8, 0x72, 0x80, 0x66, 0xa1, - 0x59, 0xdb, 0x9f, 0xc2, 0x05, 0x7d, 0xbb, 0xd2, 0x66, 0xca, 0xf8, 0xfc, 0xc5, 0x15, 0xec, 0xdb, - 0x24, 0xcd, 0x5f, 0x5c, 0xbd, 0xb1, 0x4f, 0xa1, 0xa7, 0x82, 0xfe, 0xab, 0xd4, 0xa3, 0x11, 0xe2, - 0x3e, 0x07, 0x38, 0xa3, 0xdc, 0x77, 0x85, 0xda, 0x99, 0xb0, 0x93, 0xf9, 0xbc, 0x74, 0x44, 0x39, - 0xbe, 0xe0, 0x4e, 0xeb, 0x2c, 0x5f, 0x2a, 0xfb, 0x22, 0x2a, 0xa4, 0x8b, 0x2f, 0x3a, 0x9a, 0xd0, - 0x52, 0x94, 0xa7, 0x8a, 0x60, 0xff, 0xd7, 0xc2, 0x4b, 0xf6, 0xb3, 0x2c, 0x9a, 0xa1, 0xc4, 0x6d, - 0xe8, 0xd2, 0x2c, 0x8b, 0x42, 0xe6, 0xbb, 0xc5, 0x31, 0xa0, 0x63, 0x88, 0x5a, 0x8e, 0xdc, 0x83, - 0x0b, 0xfa, 0x58, 0x2f, 0x8d, 0xe3, 0x30, 0x3f, 0xbd, 0xaa, 0x81, 0x1b, 0x8a, 0x71, 0xa8, 0xe9, - 0x88, 0xbd, 0x05, 0x9d, 0x12, 0x0c, 0x73, 0xa7, 0xed, 0x15, 0x20, 0x37, 0xc1, 0x6c, 0x5d, 0x3d, - 0x63, 0xe0, 0x4b, 0x0a, 0x48, 0x3a, 0x61, 0x3c, 0x26, 0xbf, 0x84, 0x0d, 0x99, 0x4f, 0x29, 0xc6, - 0xfc, 0xca, 0xca, 0x46, 0xf6, 0xee, 0x3c, 0xe3, 0xf4, 0x64, 0x69, 0x6f, 0x87, 0x00, 0x3a, 0x3f, - 0xd0, 0xdc, 0x2d, 0x68, 0xc5, 0x61, 0x52, 0x32, 0xb5, 0x19, 0x87, 0x09, 0xea, 0x75, 0x17, 0xea, - 0x66, 0xb4, 0xab, 0xac, 0xae, 0x31, 0xe4, 0x92, 0xcb, 0x50, 0x47, 0x65, 0x8d, 0x0f, 0xcc, 0x4e, - 0x15, 0x6e, 0xa7, 0x98, 0x8b, 0x64, 0x07, 0xfa, 0x22, 0x9d, 0x70, 0x8f, 0xb9, 0xcb, 0x43, 0x76, - 0x0f, 0xe9, 0x4e, 0x3e, 0x6a, 0x7f, 0x09, 0x1d, 0x83, 0xc4, 0x61, 0xb7, 0x72, 0xce, 0xb0, 0x8b, - 0x40, 0x1c, 0x76, 0xef, 0xcf, 0xe5, 0xd4, 0xec, 0x2d, 0x4c, 0x65, 0x97, 0xcb, 0xca, 0x08, 0xa8, - 0xb5, 0x50, 0x2a, 0xa1, 0x15, 0x05, 0x95, 0x30, 0x44, 0x3d, 0xa4, 0x17, 0x55, 0x32, 0xc8, 0xef, - 0x9f, 0xbf, 0x11, 0x38, 0x57, 0xc9, 0xc8, 0xa1, 0x4a, 0xab, 0x2a, 0xdd, 0x08, 0xa0, 0x4a, 0xf3, - 0x09, 0xb4, 0x51, 0x98, 0x40, 0xed, 0x3f, 0xa9, 0x2e, 0xa8, 0xef, 0x28, 0x94, 0xc4, 0xae, 0x9e, - 0xd1, 0x4c, 0x35, 0xf4, 0xf6, 0x06, 0x4b, 0xe9, 0xa0, 0xce, 0xc3, 0x2c, 0x40, 0x58, 0xa1, 0x6b, - 0x56, 0xce, 0xed, 0x9a, 0x5f, 0x03, 0x8e, 0xed, 0x26, 0xd9, 0xf0, 0xe5, 0xba, 0xba, 0xaa, 0xcd, - 0xe0, 0xf1, 0x10, 0x2f, 0x52, 0xea, 0x96, 0xb2, 0x57, 0x3d, 0x1c, 0xe5, 0x84, 0x47, 0x1a, 0x26, - 0xd6, 0x8a, 0xfe, 0xb7, 0xfe, 0x41, 0xfd, 0xaf, 0xfe, 0x83, 0xfb, 0xdf, 0x7f, 0x2c, 0xf8, 0x08, - 0x8d, 0x3d, 0x56, 0xa3, 0x41, 0xe2, 0xb1, 0x67, 0x93, 0xf8, 0x94, 0x71, 0x87, 0x45, 0x7a, 0x5e, - 0x3d, 0xff, 0x0b, 0xf0, 0x13, 0xd8, 0x10, 0x46, 0xcc, 0x4d, 0xb4, 0x9c, 0x69, 0x2a, 0x3d, 0x51, - 0x3a, 0x8d, 0x3c, 0x54, 0xed, 0x31, 0x8b, 0x66, 0x25, 0x07, 0x5e, 0x5f, 0x51, 0xad, 0x8b, 0xd6, - 0xa3, 0x1a, 0xe5, 0xbc, 0x0d, 0x1d, 0xcc, 0x3f, 0xf6, 0xf0, 0x00, 0x7c, 0xfd, 0x6f, 0x2e, 0x1f, - 0xb0, 0x94, 0x0f, 0xf9, 0x87, 0x1f, 0x56, 0xfa, 0x8f, 0xa0, 0xfb, 0x24, 0x9a, 0x88, 0xb3, 0x21, - 0x8b, 0xb5, 0xf3, 0xcf, 0x35, 0xcd, 0xfe, 0xab, 0x05, 0xed, 0x43, 0x35, 0x48, 0xfd, 0xc2, 0xd3, - 0x9f, 0xa6, 0x1f, 0x43, 0x4f, 0x7f, 0xec, 0x2e, 0x4b, 0x74, 0x14, 0x75, 0x5e, 0x14, 0x77, 0x61, - 0x43, 0x4f, 0x5f, 0x05, 0x18, 0x3a, 0xa4, 0xab, 0xc9, 0x73, 0xdc, 0x3e, 0x90, 0x12, 0x0e, 0x4b, - 0xa8, 0xfa, 0xfe, 0x12, 0xea, 0x17, 0xe4, 0xb1, 0x8e, 0x3e, 0x03, 0xc0, 0x23, 0xf4, 0x57, 0x75, - 0x6d, 0xc5, 0x57, 0x75, 0x4b, 0xf3, 0xd5, 0xd2, 0xfe, 0x7b, 0x05, 0x3a, 0xc5, 0x2f, 0x49, 0xf2, - 0x05, 0xd4, 0xe4, 0x2c, 0xcb, 0x0b, 0xe5, 0xe6, 0x39, 0x1f, 0x9d, 0x27, 0xb3, 0x8c, 0x39, 0x1a, - 0xbc, 0xa8, 0xc4, 0x4a, 0xf1, 0x5b, 0xf0, 0xc7, 0xd0, 0x5e, 0x28, 0xb2, 0xba, 0xc5, 0xc0, 0x5c, - 0x13, 0x3d, 0x65, 0xbd, 0xa6, 0xa1, 0x74, 0xf5, 0xa4, 0x51, 0xc3, 0x11, 0x57, 0x11, 0xf4, 0x18, - 0x73, 0x07, 0x7a, 0xa3, 0x94, 0x7b, 0x2c, 0x9a, 0xb9, 0xf4, 0x35, 0x1d, 0xb3, 0x44, 0xb7, 0x95, - 0xa6, 0xd3, 0x35, 0xd4, 0x7d, 0x4d, 0x24, 0x0f, 0x01, 0xfd, 0xe9, 0x06, 0x1e, 0x9a, 0x5f, 0x5f, - 0x39, 0x62, 0x17, 0xe2, 0xe7, 0xa0, 0x8e, 0x26, 0x98, 0x87, 0xd0, 0x1b, 0xa9, 0x54, 0x70, 0x63, - 0x93, 0x0b, 0xba, 0xb7, 0xb4, 0xf7, 0x3e, 0x5a, 0x3a, 0xa0, 0x94, 0x2f, 0x4e, 0x77, 0x54, 0xdc, - 0xde, 0x73, 0xa0, 0x35, 0x6f, 0x28, 0x04, 0xa0, 0xfe, 0x2c, 0xe5, 0x31, 0x8d, 0xfa, 0x6b, 0xa4, - 0x03, 0x4d, 0x9d, 0xc6, 0x61, 0x12, 0xf4, 0x2d, 0xd2, 0x85, 0xd6, 0xfc, 0x9f, 0x85, 0x7e, 0x85, - 0xb4, 0xa1, 0xa1, 0xea, 0x51, 0xf1, 0xaa, 0x64, 0x03, 0xda, 0x2f, 0x12, 0x3a, 0xa5, 0x61, 0xa4, - 0x4e, 0xec, 0xd7, 0xee, 0xfd, 0xbe, 0x0a, 0xfd, 0x65, 0xe7, 0x93, 0x4d, 0xd8, 0x18, 0x8a, 0x00, - 0x63, 0xff, 0x8a, 0x8e, 0xd9, 0x8b, 0xac, 0xbf, 0x46, 0x06, 0x70, 0x71, 0x28, 0x82, 0x57, 0x34, - 0x91, 0x4e, 0x1a, 0x45, 0xa7, 0xd4, 0x1b, 0xeb, 0x32, 0xef, 0x5b, 0xe4, 0x12, 0x5c, 0x18, 0x8a, - 0x40, 0xdb, 0x7e, 0x2c, 0x69, 0xa4, 0x1b, 0x7b, 0xbf, 0x42, 0xae, 0xc3, 0xd5, 0x77, 0xc8, 0xf9, - 0x0c, 0xdb, 0xaf, 0x92, 0x2b, 0xb0, 0x39, 0x14, 0xc1, 0x51, 0x78, 0xca, 0x78, 0xa2, 0x4a, 0x07, - 0x3f, 0x14, 0xfa, 0x35, 0x73, 0x51, 0x81, 0x61, 0x44, 0xd6, 0xc9, 0x27, 0x70, 0x5b, 0xeb, 0xf5, - 0x1b, 0xe6, 0x49, 0x9c, 0x4d, 0x82, 0x43, 0x3a, 0x11, 0xcc, 0x3f, 0x98, 0x0d, 0x59, 0x9c, 0xf2, - 0x99, 0xfe, 0x5f, 0xa1, 0x5f, 0x27, 0xd7, 0xe0, 0xf2, 0x50, 0x04, 0xfb, 0x68, 0x67, 0x18, 0x85, - 0x72, 0x96, 0x1f, 0xdf, 0x20, 0x5b, 0x70, 0xe5, 0x1d, 0x9e, 0xb9, 0xa1, 0x49, 0x6c, 0xb8, 0x31, - 0x14, 0xc1, 0xcb, 0x54, 0x2a, 0x55, 0xb3, 0x28, 0xd4, 0xef, 0xb6, 0xee, 0x99, 0xf9, 0x01, 0x2d, - 0x72, 0x1b, 0x6e, 0xbe, 0x17, 0x63, 0x0e, 0x02, 0x72, 0x11, 0xfa, 0x43, 0x11, 0x98, 0x54, 0x30, - 0xa2, 0x6d, 0xe3, 0xa9, 0x9c, 0x6a, 0xc0, 0x9d, 0x83, 0xbb, 0xff, 0xfc, 0x63, 0xd3, 0xfa, 0xf3, - 0xdb, 0x1b, 0xd6, 0xdf, 0xde, 0xde, 0xb0, 0xfe, 0xf5, 0xf6, 0x86, 0xf5, 0xdd, 0xbf, 0x6f, 0xac, - 0x41, 0x3f, 0xe5, 0xc1, 0xae, 0x0c, 0xc7, 0xd3, 0xdd, 0xf1, 0x54, 0xff, 0x59, 0x76, 0x5a, 0xd7, - 0x3f, 0x5f, 0xfc, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x25, 0x47, 0x23, 0xf6, 0xa8, 0x13, 0x00, 0x00, + // 2052 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0xcd, 0x6f, 0xdb, 0xc8, + 0x15, 0x37, 0x25, 0x59, 0x12, 0x9f, 0x3e, 0xcc, 0x8c, 0xe3, 0x58, 0xb1, 0x37, 0xb6, 0xc3, 0x6c, + 0xbc, 0xde, 0x6c, 0xeb, 0x60, 0xbd, 0xee, 0x76, 0xb1, 0x05, 0x82, 0xda, 0x4e, 0x52, 0xbb, 0x5b, + 0x05, 0x01, 0xed, 0x24, 0xe8, 0x89, 0x18, 0x93, 0x23, 0x9a, 0x15, 0xbf, 0x76, 0x66, 0xa4, 0x44, + 0x45, 0xff, 0x8b, 0x5e, 0xf2, 0x27, 0xf4, 0x0f, 0xe9, 0xa1, 0x68, 0x2f, 0x2d, 0xd0, 0x43, 0x8f, + 0x45, 0x7a, 0xe9, 0xb5, 0xc7, 0xde, 0x8a, 0xf9, 0xa0, 0x44, 0x2a, 0x8a, 0x17, 0xcd, 0x49, 0x33, + 0xef, 0xfd, 0xde, 0xcc, 0xfb, 0x9e, 0x47, 0xc1, 0x2a, 0xc5, 0x03, 0xee, 0x32, 0x42, 0xc7, 0x84, + 0x66, 0x97, 0xfb, 0x19, 0x4d, 0x79, 0x8a, 0x3a, 0x25, 0xe2, 0x46, 0x87, 0x88, 0x7d, 0xce, 0xdd, + 0x68, 0xc7, 0x84, 0xe3, 0xe9, 0xae, 0x33, 0x1c, 0xd3, 0xcc, 0x9b, 0x6e, 0x2d, 0x3f, 0x64, 0x43, + 0x77, 0xc4, 0x70, 0x40, 0x34, 0x65, 0x85, 0x8e, 0x18, 0x97, 0x4b, 0x45, 0xb0, 0xff, 0x5b, 0x85, + 0x96, 0x83, 0x07, 0xbc, 0x4f, 0x98, 0x80, 0xa1, 0x4d, 0x30, 0x29, 0x09, 0xc2, 0x34, 0x71, 0x43, + 0xbf, 0x67, 0xec, 0x18, 0x7b, 0x35, 0xa7, 0xa9, 0x08, 0x67, 0x3e, 0xfa, 0x1c, 0xcc, 0x01, 0x4d, + 0x63, 0x37, 0x23, 0x84, 0xf6, 0x2a, 0x3b, 0xc6, 0x5e, 0xeb, 0xa0, 0xbd, 0xaf, 0x15, 0x78, 0x4e, + 0x08, 0x75, 0x9a, 0x82, 0x2d, 0x56, 0xe8, 0x3e, 0x34, 0x78, 0xaa, 0x80, 0xd5, 0x05, 0xc0, 0x3a, + 0x4f, 0x25, 0xec, 0x01, 0x34, 0x62, 0x75, 0x73, 0xaf, 0x26, 0x61, 0xd6, 0x7e, 0x6e, 0x9f, 0xd6, + 0xc8, 0xc9, 0x01, 0xe8, 0x6b, 0x68, 0x6b, 0xd5, 0x48, 0x96, 0x7a, 0x57, 0xbd, 0x65, 0x29, 0xb0, + 0x9a, 0x9f, 0xeb, 0x48, 0xde, 0x13, 0xc1, 0x72, 0x5a, 0x74, 0xb6, 0x41, 0x77, 0xa1, 0x1d, 0x32, + 0x97, 0xa7, 0xf1, 0x25, 0xe3, 0x69, 0x42, 0x7a, 0xf5, 0x1d, 0x63, 0xaf, 0xe9, 0xb4, 0x42, 0x76, + 0x91, 0x93, 0x84, 0xd5, 0x8c, 0x63, 0xca, 0xdd, 0x21, 0x99, 0xf4, 0x1a, 0x3b, 0xc6, 0x5e, 0xdb, + 0x69, 0x4a, 0xc2, 0x77, 0x64, 0x82, 0xd6, 0xa1, 0x41, 0x12, 0x5f, 0xb2, 0x9a, 0x92, 0x55, 0x27, + 0x89, 0x2f, 0x18, 0x5f, 0x42, 0x3b, 0x26, 0x34, 0x20, 0x2e, 0xc7, 0x34, 0x20, 0xbc, 0x67, 0x4a, + 0x85, 0xba, 0x65, 0x85, 0x9c, 0x96, 0xc4, 0x5c, 0x48, 0x08, 0xfa, 0x06, 0x4c, 0xf2, 0x86, 0x53, + 0xec, 0xc6, 0x2c, 0xe8, 0x81, 0xc4, 0x6f, 0xee, 0x97, 0xa3, 0xfe, 0x44, 0xf0, 0x73, 0xe3, 0x9b, + 0x12, 0xdd, 0x67, 0x81, 0x50, 0x51, 0x49, 0x7a, 0xfc, 0x4d, 0xaf, 0xa5, 0x54, 0x94, 0x84, 0x13, + 0xfe, 0x06, 0x1d, 0x02, 0xcc, 0x42, 0xdd, 0x6b, 0xef, 0x18, 0x7b, 0xdd, 0x83, 0xb5, 0xfd, 0x42, + 0xf4, 0x1f, 0x87, 0x6c, 0xf8, 0x42, 0x9e, 0x68, 0xfa, 0xf9, 0xd2, 0x7e, 0x04, 0x48, 0x84, 0xfe, + 0x82, 0x8e, 0x12, 0x0f, 0x73, 0xe2, 0x9f, 0x73, 0xcc, 0x09, 0xba, 0x09, 0xcb, 0x61, 0xe2, 0x93, + 0x37, 0x3a, 0xfa, 0x6a, 0x83, 0x10, 0xd4, 0x38, 0xa1, 0xb1, 0x8c, 0x7a, 0xcd, 0x91, 0x6b, 0xfb, + 0x39, 0x74, 0xcf, 0x13, 0x9c, 0xb1, 0xab, 0x94, 0x9f, 0x3c, 0x7d, 0x1a, 0x46, 0x04, 0x75, 0xa1, + 0xe2, 0x0d, 0xa4, 0xa0, 0xe9, 0x54, 0xbc, 0x81, 0x90, 0x62, 0xe1, 0x6f, 0x49, 0x2e, 0x25, 0xd6, + 0x68, 0x03, 0x9a, 0xde, 0x15, 0xf1, 0x86, 0x6c, 0x14, 0xcb, 0xd4, 0xe8, 0x38, 0xd3, 0xbd, 0xfd, + 0x77, 0x03, 0xda, 0xf9, 0x91, 0x7d, 0xc2, 0x31, 0xfa, 0x06, 0x9a, 0xde, 0xc0, 0x1d, 0x84, 0x11, + 0x61, 0x3d, 0x63, 0xa7, 0xba, 0xd7, 0x3a, 0xb8, 0x33, 0xe7, 0xae, 0xb2, 0x06, 0x4e, 0xc3, 0x1b, + 0x88, 0x5f, 0x86, 0xb6, 0xa1, 0x35, 0x48, 0xa9, 0x7b, 0x89, 0x23, 0x9c, 0x78, 0x4a, 0x83, 0xa6, + 0x03, 0x83, 0x94, 0x1e, 0x2b, 0x4a, 0x0e, 0x78, 0x1d, 0xf2, 0x84, 0x30, 0x26, 0x55, 0x51, 0x80, + 0x57, 0x8a, 0x22, 0x1c, 0x21, 0x73, 0x40, 0x66, 0x66, 0xcd, 0x51, 0x1b, 0x74, 0x00, 0x6b, 0x01, + 0x49, 0x08, 0xc5, 0x9c, 0xb8, 0xfe, 0x88, 0x62, 0x2e, 0x12, 0x92, 0x11, 0x4f, 0xa6, 0x63, 0xcd, + 0x59, 0xcd, 0x99, 0x8f, 0x35, 0xef, 0x9c, 0x78, 0xf6, 0xaf, 0xa1, 0x33, 0x55, 0xf3, 0x6a, 0x94, + 0x0c, 0xd1, 0xe1, 0x2c, 0xed, 0x0d, 0x99, 0x04, 0x1b, 0x73, 0x56, 0x15, 0x4a, 0x72, 0x56, 0x00, + 0x08, 0x6a, 0x3e, 0xe6, 0x58, 0xda, 0xd2, 0x76, 0xe4, 0xda, 0xae, 0x43, 0xed, 0x71, 0x9a, 0x10, + 0xfb, 0xad, 0x01, 0xb7, 0x2e, 0xf0, 0x65, 0x44, 0x78, 0x7e, 0x93, 0x70, 0x83, 0xf4, 0xe1, 0x26, + 0x98, 0xc2, 0x81, 0xae, 0x8c, 0x84, 0x2e, 0x69, 0x41, 0x38, 0x17, 0xd1, 0xc8, 0x99, 0x09, 0x8e, + 0x95, 0x93, 0x4c, 0xc5, 0x7c, 0x86, 0x63, 0x82, 0xee, 0x00, 0x5c, 0x11, 0xec, 0xbb, 0x9e, 0x50, + 0x5a, 0x7a, 0xa8, 0xed, 0x98, 0x82, 0xa2, 0xac, 0xb8, 0x0f, 0x5d, 0x4e, 0x71, 0x18, 0x85, 0x49, + 0xa0, 0x21, 0x35, 0x09, 0xe9, 0xe4, 0x54, 0x09, 0xb3, 0x07, 0xb0, 0x56, 0xd6, 0xec, 0x39, 0x25, + 0xe3, 0x90, 0xbc, 0x46, 0x3f, 0x83, 0x65, 0x51, 0x2a, 0x79, 0x64, 0xef, 0xcf, 0xf9, 0x60, 0xb1, + 0x39, 0x8e, 0x92, 0x41, 0x16, 0x54, 0x49, 0xe2, 0xeb, 0xb8, 0x8a, 0xa5, 0x1d, 0xc0, 0xfa, 0xfb, + 0x22, 0x4a, 0xd3, 0x8f, 0x77, 0x41, 0xee, 0xf3, 0x6a, 0xc1, 0xe7, 0x01, 0xa0, 0xf2, 0x45, 0xa7, + 0x04, 0xfb, 0x1f, 0x19, 0xd3, 0x4d, 0x30, 0x47, 0x8c, 0xb8, 0x1e, 0xf6, 0xae, 0xf2, 0x24, 0x6d, + 0x8e, 0x18, 0x39, 0x11, 0x7b, 0xfb, 0x21, 0xdc, 0x28, 0x5f, 0xf4, 0x24, 0xf1, 0x4b, 0xf5, 0xa3, + 0x4d, 0x99, 0xd6, 0xcf, 0xef, 0x2b, 0xf3, 0xbe, 0x76, 0xc8, 0xf7, 0x23, 0xc2, 0x38, 0xfa, 0x29, + 0xd4, 0x44, 0xe0, 0xb4, 0x6a, 0x77, 0xaf, 0x75, 0xb5, 0x30, 0xe7, 0x74, 0xc9, 0x91, 0x02, 0xe8, + 0xe7, 0xd0, 0xc8, 0x54, 0xbc, 0x74, 0xc7, 0xff, 0xf4, 0x5a, 0x59, 0x1d, 0xdb, 0xd3, 0x25, 0x27, + 0x17, 0x43, 0x8f, 0x60, 0x79, 0x96, 0x40, 0xad, 0x83, 0xdd, 0x1f, 0x0c, 0xb3, 0x8c, 0xd9, 0xe9, + 0x92, 0xa3, 0xc4, 0xd0, 0xa1, 0x8a, 0xb4, 0x7a, 0x1f, 0x76, 0xae, 0x95, 0x7e, 0x92, 0x08, 0xc5, + 0x05, 0xfc, 0xd8, 0x84, 0x46, 0x86, 0x27, 0x51, 0x8a, 0x7d, 0xfb, 0x10, 0xd6, 0x8e, 0x3c, 0x8f, + 0x64, 0xa2, 0xc5, 0x15, 0xae, 0x61, 0xe5, 0xc8, 0x8b, 0x24, 0x2c, 0x44, 0xde, 0xbe, 0x98, 0x2f, + 0x28, 0x87, 0xb0, 0x2c, 0x4d, 0x18, 0x41, 0xdf, 0xc2, 0x72, 0xde, 0x91, 0x16, 0x39, 0x64, 0xe1, + 0x5d, 0x8e, 0x12, 0xb1, 0x0f, 0xa0, 0xf9, 0x1d, 0x99, 0xbc, 0xc4, 0xd1, 0x88, 0x88, 0x14, 0x16, + 0x8f, 0x8a, 0x21, 0x53, 0x4b, 0x2c, 0x45, 0xcb, 0x19, 0x0b, 0x96, 0x2e, 0x71, 0xb5, 0xb1, 0xff, + 0x5c, 0x01, 0x4b, 0x24, 0x4f, 0x7e, 0xe0, 0x63, 0xcc, 0x31, 0xda, 0x85, 0xba, 0x7a, 0xe4, 0xb4, + 0x16, 0xf3, 0xcf, 0x8e, 0xe6, 0x96, 0x53, 0xbf, 0x32, 0x97, 0xfa, 0x5f, 0x4c, 0xb3, 0x5b, 0x14, + 0xe0, 0xfa, 0x9c, 0x21, 0xb9, 0xa2, 0x2a, 0xed, 0x51, 0x0f, 0x1a, 0x63, 0x42, 0x99, 0xb8, 0x52, + 0x75, 0xc4, 0x7c, 0x8b, 0x1e, 0x42, 0x4d, 0x5c, 0xae, 0x5f, 0xe4, 0xcd, 0x0f, 0x74, 0x68, 0x59, + 0xbd, 0x12, 0x88, 0x7e, 0x02, 0x2b, 0x94, 0xc4, 0xe9, 0x98, 0xf8, 0x2e, 0x25, 0x5e, 0x4a, 0x7d, + 0xd6, 0xab, 0x4b, 0x15, 0xca, 0x53, 0x42, 0x57, 0x83, 0x1c, 0x85, 0x41, 0xc7, 0xd0, 0x95, 0x8f, + 0xe9, 0x4c, 0xaa, 0x21, 0xa5, 0xe6, 0x6f, 0xec, 0x4b, 0x90, 0x92, 0x72, 0x3a, 0x71, 0x61, 0xc7, + 0xec, 0xdf, 0x01, 0x9c, 0xf3, 0x94, 0x92, 0x33, 0x9f, 0x24, 0x5c, 0x74, 0x38, 0x2f, 0x1a, 0x31, + 0x4e, 0xe8, 0x6c, 0xde, 0x31, 0x35, 0xe5, 0xcc, 0x47, 0xb7, 0xa1, 0xc9, 0x04, 0x58, 0x30, 0x95, + 0xef, 0x1a, 0x4c, 0x09, 0xa3, 0x43, 0x68, 0xe1, 0x2c, 0x74, 0x73, 0x8f, 0x54, 0xe5, 0x9b, 0xbb, + 0xba, 0x9f, 0x0f, 0x60, 0x47, 0xcf, 0xcf, 0x5e, 0x2a, 0x96, 0x03, 0x38, 0x0b, 0xf5, 0xda, 0xfe, + 0x1c, 0x6e, 0xc8, 0xdb, 0x85, 0x36, 0x63, 0x42, 0xa7, 0x2f, 0x2e, 0x23, 0xdf, 0x27, 0x69, 0xfe, + 0xe2, 0xca, 0x8d, 0x7d, 0x09, 0x5d, 0x11, 0xf4, 0x5f, 0xa5, 0x1e, 0x8e, 0x14, 0xee, 0x4b, 0x80, + 0x2b, 0x4c, 0x7d, 0x97, 0x89, 0x9d, 0x0e, 0x3b, 0x9a, 0xce, 0x4b, 0xa7, 0x98, 0xaa, 0x17, 0xdc, + 0x31, 0xaf, 0xf2, 0xa5, 0xb0, 0x2f, 0xc2, 0x8c, 0xbb, 0xea, 0x45, 0x57, 0x26, 0x98, 0x82, 0x72, + 0x26, 0x08, 0xf6, 0x7f, 0x0c, 0x75, 0xc9, 0x51, 0x96, 0x45, 0x13, 0x25, 0x71, 0x0f, 0x3a, 0x38, + 0xcb, 0xa2, 0x90, 0xf8, 0x6e, 0x71, 0x0c, 0x68, 0x6b, 0xa2, 0x94, 0x43, 0x0f, 0xe0, 0x86, 0x3c, + 0xd6, 0x4b, 0xe3, 0x38, 0xcc, 0x4f, 0xaf, 0x4a, 0xe0, 0x8a, 0x60, 0x9c, 0x48, 0xba, 0xc2, 0xde, + 0x85, 0x76, 0x09, 0xa6, 0x72, 0xa7, 0xe5, 0x15, 0x20, 0xdb, 0xa0, 0xb7, 0xae, 0x9c, 0x31, 0xd4, + 0x4b, 0x0a, 0x8a, 0x74, 0x41, 0x68, 0x8c, 0x7e, 0x09, 0x2b, 0x3c, 0x9f, 0x52, 0xb4, 0xf9, 0x95, + 0x85, 0x8d, 0xec, 0xfd, 0x79, 0xc6, 0xe9, 0xf2, 0xd2, 0xde, 0x0e, 0x01, 0x64, 0x7e, 0x28, 0x73, + 0x37, 0xc1, 0x8c, 0xc3, 0xa4, 0x64, 0x6a, 0x33, 0x0e, 0x13, 0xa5, 0xd7, 0x2e, 0xd4, 0xf5, 0x68, + 0x57, 0x59, 0x5c, 0x63, 0x8a, 0x8b, 0x6e, 0x41, 0x5d, 0x29, 0xab, 0x7d, 0xa0, 0x77, 0xa2, 0x70, + 0xdb, 0xc5, 0x5c, 0x44, 0x7b, 0x60, 0xb1, 0x74, 0x44, 0x3d, 0xe2, 0xce, 0x0f, 0xd9, 0x5d, 0x45, + 0x77, 0xf2, 0x51, 0xfb, 0x6b, 0x68, 0x6b, 0xa4, 0x1a, 0x76, 0x2b, 0xd7, 0x0c, 0xbb, 0x0a, 0xa8, + 0x86, 0xdd, 0x87, 0x53, 0x39, 0x31, 0x7b, 0x33, 0x5d, 0xd9, 0xe5, 0xb2, 0xd2, 0x02, 0x62, 0xcd, + 0x84, 0x4a, 0xca, 0x8a, 0x82, 0x4a, 0x2a, 0x44, 0x5d, 0x45, 0x2f, 0xaa, 0xa4, 0x91, 0x3f, 0x3c, + 0x7f, 0x2b, 0xe0, 0x54, 0x25, 0x2d, 0xa7, 0x54, 0x5a, 0x54, 0xe9, 0x5a, 0x40, 0xa9, 0x34, 0x9d, + 0x40, 0x1b, 0x85, 0x09, 0xd4, 0xfe, 0xa3, 0xe8, 0x82, 0xf2, 0x8e, 0x42, 0x49, 0xec, 0xcb, 0x19, + 0x4d, 0x57, 0x43, 0xf7, 0xa0, 0x37, 0x97, 0x0e, 0xe2, 0x3c, 0x95, 0x05, 0x0a, 0x56, 0xe8, 0x9a, + 0x95, 0x6b, 0xbb, 0xe6, 0xb7, 0xa0, 0xc6, 0x76, 0x9d, 0x6c, 0xea, 0xe5, 0xba, 0xbd, 0xa8, 0xcd, + 0xa8, 0xe3, 0x21, 0x9e, 0xa5, 0xd4, 0x5d, 0x61, 0xaf, 0x78, 0x38, 0xca, 0x09, 0xaf, 0x68, 0x2a, + 0xb1, 0x16, 0xf4, 0xbf, 0xe5, 0x8f, 0xea, 0x7f, 0xf5, 0xff, 0xbb, 0xff, 0xfd, 0xdb, 0x80, 0x4f, + 0x94, 0xb1, 0xe7, 0x62, 0x34, 0x48, 0x3c, 0xf2, 0x6c, 0x14, 0x5f, 0x12, 0xea, 0x90, 0x48, 0xce, + 0xab, 0xd7, 0x7f, 0x01, 0x7e, 0x06, 0x2b, 0x4c, 0x8b, 0xb9, 0x89, 0x94, 0xd3, 0x4d, 0xa5, 0xcb, + 0x4a, 0xa7, 0xa1, 0x47, 0xa2, 0x3d, 0x66, 0xd1, 0xa4, 0xe4, 0xc0, 0x3b, 0x0b, 0xaa, 0x75, 0xd6, + 0x7a, 0x44, 0xa3, 0x9c, 0xb6, 0xa1, 0xe3, 0xe9, 0xc7, 0x9e, 0x3a, 0x40, 0xbd, 0xfe, 0xdb, 0xf3, + 0x07, 0xcc, 0xe5, 0x43, 0xfe, 0xe1, 0xa7, 0x2a, 0xfd, 0x47, 0xd0, 0x79, 0x1a, 0x8d, 0xd8, 0x55, + 0x9f, 0xc4, 0xd2, 0xf9, 0xd7, 0x9a, 0x66, 0xff, 0xc5, 0x80, 0xd6, 0x89, 0x18, 0xa4, 0x7e, 0xe1, + 0xc9, 0x4f, 0xd3, 0x4f, 0xa1, 0x2b, 0x3f, 0x76, 0xe7, 0x25, 0xda, 0x82, 0x3a, 0x2d, 0x8a, 0x5d, + 0x58, 0x91, 0xd3, 0x57, 0x01, 0xa6, 0x1c, 0xd2, 0x91, 0xe4, 0x29, 0xee, 0x08, 0x50, 0x09, 0xa7, + 0x4a, 0xa8, 0xfa, 0xe1, 0x12, 0xb2, 0x0a, 0xf2, 0xaa, 0x8e, 0xbe, 0x00, 0x50, 0x47, 0xc8, 0xaf, + 0xea, 0xda, 0x82, 0xaf, 0x6a, 0x53, 0xf2, 0xc5, 0xd2, 0xfe, 0x5b, 0x05, 0xda, 0xc5, 0x2f, 0x49, + 0xf4, 0x15, 0xd4, 0xf8, 0x24, 0xcb, 0x0b, 0x65, 0xfb, 0x9a, 0x8f, 0xce, 0x8b, 0x49, 0x46, 0x1c, + 0x09, 0x9e, 0x55, 0x62, 0xa5, 0xf8, 0x2d, 0xf8, 0x63, 0x68, 0xcd, 0x14, 0x59, 0xdc, 0x62, 0x60, + 0xaa, 0x89, 0x9c, 0xb2, 0x5e, 0xe3, 0x90, 0xbb, 0x72, 0xd2, 0xa8, 0xa9, 0x11, 0x57, 0x10, 0xe4, + 0x18, 0x73, 0x1f, 0xba, 0x83, 0x94, 0x7a, 0x24, 0x9a, 0xb8, 0xf8, 0x35, 0x1e, 0x92, 0x44, 0xb6, + 0x95, 0xa6, 0xd3, 0xd1, 0xd4, 0x23, 0x49, 0x44, 0x8f, 0x40, 0xf9, 0xd3, 0x0d, 0x3c, 0x65, 0x7e, + 0x7d, 0xe1, 0x88, 0x5d, 0x88, 0x9f, 0xa3, 0x74, 0xd4, 0xc1, 0x3c, 0x81, 0xee, 0x40, 0xa4, 0x82, + 0x1b, 0xeb, 0x5c, 0x90, 0xbd, 0xa5, 0x75, 0xf0, 0xc9, 0xdc, 0x01, 0xa5, 0x7c, 0x71, 0x3a, 0x83, + 0xe2, 0xf6, 0x81, 0x03, 0xe6, 0xb4, 0xa1, 0x20, 0x80, 0xfa, 0xb3, 0x94, 0xc6, 0x38, 0xb2, 0x96, + 0x50, 0x1b, 0x9a, 0x32, 0x8d, 0xc3, 0x24, 0xb0, 0x0c, 0xd4, 0x01, 0x73, 0xfa, 0xcf, 0x82, 0x55, + 0x41, 0x2d, 0x68, 0x88, 0x7a, 0x14, 0xbc, 0x2a, 0x5a, 0x81, 0xd6, 0x8b, 0x04, 0x8f, 0x71, 0x18, + 0x89, 0x13, 0xad, 0xda, 0x83, 0xb7, 0x55, 0xb0, 0xe6, 0x9d, 0x8f, 0x56, 0x61, 0xa5, 0xcf, 0x02, + 0x15, 0xfb, 0x57, 0x78, 0x48, 0x5e, 0x64, 0xd6, 0x12, 0xea, 0xc1, 0xcd, 0x3e, 0x0b, 0x5e, 0xe1, + 0x84, 0x3b, 0x69, 0x14, 0x5d, 0x62, 0x6f, 0x28, 0xcb, 0xdc, 0x32, 0xd0, 0x1a, 0xdc, 0xe8, 0xb3, + 0x40, 0xda, 0x7e, 0xce, 0x71, 0x24, 0x1b, 0xbb, 0x55, 0x41, 0x77, 0xe0, 0xf6, 0x7b, 0xe4, 0x7c, + 0x86, 0xb5, 0xaa, 0x68, 0x1d, 0x56, 0xfb, 0x2c, 0x38, 0x0d, 0x2f, 0x09, 0x4d, 0x44, 0xe9, 0xa8, + 0x0f, 0x05, 0xab, 0xa6, 0x2f, 0x2a, 0x30, 0xb4, 0xc8, 0x32, 0xfa, 0x0c, 0xee, 0x49, 0xbd, 0x7e, + 0x43, 0x3c, 0xae, 0x66, 0x93, 0xe0, 0x04, 0x8f, 0x18, 0xf1, 0x8f, 0x27, 0x7d, 0x12, 0xa7, 0x74, + 0x22, 0xff, 0x57, 0xb0, 0xea, 0x68, 0x03, 0x6e, 0xf5, 0x59, 0x70, 0xa4, 0xec, 0x0c, 0xa3, 0x90, + 0x4f, 0xf2, 0xe3, 0x1b, 0x68, 0x13, 0xd6, 0xdf, 0xe3, 0xe9, 0x1b, 0x9a, 0xc8, 0x86, 0xad, 0x3e, + 0x0b, 0x5e, 0xa6, 0x5c, 0xa8, 0x9a, 0x45, 0xa1, 0x7c, 0xb7, 0x65, 0xcf, 0xcc, 0x0f, 0x30, 0xd1, + 0x3d, 0xd8, 0xfe, 0x20, 0x46, 0x1f, 0x04, 0xe8, 0x26, 0x58, 0x7d, 0x16, 0xe8, 0x54, 0xd0, 0xa2, + 0x2d, 0xed, 0xa9, 0x9c, 0xaa, 0xc1, 0x6d, 0x0d, 0x2e, 0xc5, 0xde, 0xea, 0x1c, 0xef, 0xfe, 0xe3, + 0x0f, 0x4d, 0xe3, 0x4f, 0xef, 0xb6, 0x8c, 0xbf, 0xbe, 0xdb, 0x32, 0xfe, 0xf9, 0x6e, 0xcb, 0x78, + 0xfb, 0xaf, 0xad, 0x25, 0xb0, 0x52, 0x1a, 0xec, 0xf3, 0x70, 0x38, 0xde, 0x1f, 0x8e, 0xe5, 0x5f, + 0x68, 0x97, 0x75, 0xf9, 0xf3, 0xd5, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x39, 0x80, 0x9a, 0xbe, + 0xbe, 0x13, 0x00, 0x00, } func (m *RaftMessage) Marshal() (dAtA []byte, err error) { diff --git a/proto/raft_serverpb.proto b/proto/raft_serverpb.proto index f16f2b5..4580dd8 100644 --- a/proto/raft_serverpb.proto +++ b/proto/raft_serverpb.proto @@ -224,6 +224,7 @@ enum ExtraMessageType { // Message means that `from` is tombstone. Leader can then update removed_records. MsgGcPeerRequest = 11; MsgGcPeerResponse = 12; + MsgFlushMemtable = 13; } message FlushMemtable { diff --git a/scripts/proto.lock b/scripts/proto.lock index db4e7f2..3b9f396 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -15471,6 +15471,10 @@ { "name": "MsgGcPeerResponse", "integer": 12 + }, + { + "name": "MsgFlushMemtable", + "integer": 13 } ] } -- Gitee From 0d83256af9f48eda33165131c81ffc901835017d Mon Sep 17 00:00:00 2001 From: 3pointer Date: Mon, 27 Mar 2023 10:34:46 +0800 Subject: [PATCH 27/44] support txn backuP (#1089) --- pkg/brpb/brpb.pb.go | 407 ++++++++++++++++++++++++-------------------- proto/brpb.proto | 4 + scripts/proto.lock | 5 + 3 files changed, 235 insertions(+), 181 deletions(-) diff --git a/pkg/brpb/brpb.pb.go b/pkg/brpb/brpb.pb.go index 08b72e2..79976b7 100644 --- a/pkg/brpb/brpb.pb.go +++ b/pkg/brpb/brpb.pb.go @@ -165,7 +165,9 @@ type BackupMeta struct { // the placement policy info in backup cluster. we assume the policy won't be too much for one cluster. Policies []*PlacementPolicy `protobuf:"bytes,19,rep,name=policies,proto3" json:"policies,omitempty"` // new_collations_enabled specifies the config `new_collations_enabled_on_first_bootstrap` in tidb. - NewCollationsEnabled string `protobuf:"bytes,20,opt,name=new_collations_enabled,json=newCollationsEnabled,proto3" json:"new_collations_enabled,omitempty"` + NewCollationsEnabled string `protobuf:"bytes,20,opt,name=new_collations_enabled,json=newCollationsEnabled,proto3" json:"new_collations_enabled,omitempty"` + // If in txn kv mode, `schemas` will be ignored, the backup data's range is as same as normal backup. + IsTxnKv bool `protobuf:"varint,21,opt,name=is_txn_kv,json=isTxnKv,proto3" json:"is_txn_kv,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -337,6 +339,13 @@ func (m *BackupMeta) GetNewCollationsEnabled() string { return "" } +func (m *BackupMeta) GetIsTxnKv() bool { + if m != nil { + return m.IsTxnKv + } + return false +} + type File struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Sha256 []byte `protobuf:"bytes,2,opt,name=sha256,proto3" json:"sha256,omitempty"` @@ -2963,186 +2972,187 @@ func init() { func init() { proto.RegisterFile("brpb.proto", fileDescriptor_483d1f48d58a4885) } var fileDescriptor_483d1f48d58a4885 = []byte{ - // 2854 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0xdb, 0x6f, 0x1b, 0xc7, - 0xd5, 0xd7, 0x92, 0xcb, 0xdb, 0xe1, 0x55, 0x63, 0xc7, 0x61, 0xe4, 0xcf, 0xb6, 0x42, 0x7f, 0xf6, - 0xa7, 0xcf, 0x01, 0x94, 0x44, 0x72, 0x82, 0xb4, 0x69, 0x11, 0xe8, 0xe2, 0x44, 0xaa, 0x1d, 0x5b, - 0x1d, 0xa9, 0x29, 0x9a, 0x97, 0xc5, 0x70, 0x77, 0x28, 0x6e, 0xb9, 0xdc, 0x65, 0x77, 0x96, 0xb4, - 0x95, 0xff, 0xa1, 0x68, 0xfb, 0x50, 0xb4, 0x0f, 0x7d, 0x2d, 0xda, 0x3f, 0xa3, 0x2f, 0x05, 0x12, - 0xb4, 0x40, 0x03, 0xe4, 0xa5, 0x8f, 0x45, 0xfa, 0x4f, 0xf4, 0xb1, 0x38, 0x67, 0x66, 0x97, 0x4b, - 0x59, 0x94, 0xe3, 0xa2, 0xc8, 0x13, 0x67, 0x7e, 0xe7, 0xcc, 0xec, 0x9c, 0xfb, 0x99, 0x21, 0x40, - 0x3f, 0x9e, 0xf4, 0x37, 0x27, 0x71, 0x94, 0x44, 0xac, 0xdc, 0x17, 0xee, 0x68, 0x3a, 0x59, 0x6b, - 0x8e, 0x66, 0xf1, 0xc4, 0x4d, 0xe1, 0xb5, 0xa6, 0x8c, 0xe3, 0x28, 0xe3, 0x5a, 0x6b, 0x8c, 0x65, - 0x22, 0xb2, 0x19, 0x93, 0xa1, 0x1b, 0x9f, 0x4d, 0x12, 0x3f, 0x0a, 0x33, 0xec, 0xea, 0x69, 0x74, - 0x1a, 0xd1, 0xf0, 0x4d, 0x1c, 0x19, 0xb4, 0x1d, 0x4f, 0x55, 0x42, 0x43, 0x0d, 0xf4, 0xfe, 0x50, - 0x06, 0xd8, 0xa5, 0x2f, 0x7e, 0x2c, 0x13, 0xc1, 0x6e, 0x00, 0xb8, 0xc1, 0x54, 0x25, 0x32, 0x76, - 0x7c, 0xaf, 0x6b, 0xad, 0x5b, 0x1b, 0x36, 0xaf, 0x19, 0xe4, 0xd0, 0x63, 0xff, 0x07, 0xed, 0x94, - 0x3c, 0x93, 0xb1, 0xf2, 0xa3, 0xb0, 0x5b, 0x58, 0xb7, 0x36, 0x6a, 0xbc, 0x65, 0xe0, 0x4f, 0x34, - 0x8a, 0xfb, 0xf4, 0xe7, 0x3c, 0x75, 0xe2, 0xa9, 0xf5, 0x33, 0x72, 0x17, 0x2a, 0x29, 0xad, 0xb1, - 0x6e, 0x6d, 0x94, 0x78, 0x3a, 0x65, 0x3d, 0x28, 0x0d, 0xfc, 0x40, 0xaa, 0xae, 0xbd, 0x5e, 0xdc, - 0xa8, 0x6f, 0x35, 0x36, 0xb5, 0x3a, 0x36, 0x3f, 0xf4, 0x03, 0xc9, 0x35, 0x89, 0xbd, 0x09, 0x80, - 0x03, 0xc7, 0x0f, 0x3d, 0xf9, 0xac, 0xdb, 0x5c, 0xb7, 0x36, 0xea, 0x5b, 0x9d, 0x94, 0x11, 0xc5, - 0x20, 0xe6, 0x1a, 0xf2, 0x1c, 0x22, 0x0b, 0xbb, 0x0d, 0x4d, 0x95, 0x88, 0x38, 0xc9, 0x0e, 0x54, - 0x22, 0xc1, 0x1a, 0x04, 0xa6, 0x67, 0xba, 0x05, 0x75, 0x19, 0x7a, 0x19, 0x4b, 0x99, 0x58, 0x40, - 0x86, 0x5e, 0xca, 0xb0, 0x01, 0x15, 0xe5, 0x0e, 0xe5, 0x58, 0xa8, 0x6e, 0x85, 0x0e, 0xd7, 0x4a, - 0xbf, 0x79, 0x4c, 0x30, 0x4f, 0xc9, 0x6c, 0x1b, 0x1a, 0x7a, 0x68, 0x8e, 0xd8, 0x5a, 0x72, 0xc4, - 0xba, 0xe6, 0xd2, 0x87, 0x5c, 0x83, 0x9a, 0xaf, 0x9c, 0x58, 0x3c, 0x75, 0x46, 0xb3, 0x6e, 0x75, - 0xdd, 0xda, 0xa8, 0xf2, 0x8a, 0xaf, 0xb8, 0x78, 0xfa, 0x70, 0x86, 0x12, 0x23, 0x21, 0x16, 0xe1, - 0xa9, 0x54, 0xdd, 0x1a, 0x7d, 0x3d, 0xdb, 0x8e, 0x8b, 0xa7, 0x1c, 0x09, 0xbc, 0x16, 0x9b, 0x91, - 0x62, 0xef, 0x41, 0x3b, 0x5b, 0x60, 0x0e, 0xd1, 0x5e, 0x72, 0x88, 0x66, 0xba, 0x4a, 0x1f, 0x83, - 0x81, 0xed, 0x79, 0x81, 0xea, 0xc2, 0xba, 0xb5, 0xd1, 0xe0, 0x34, 0x66, 0x6f, 0x43, 0xdd, 0xf3, - 0x02, 0xbd, 0x8f, 0x54, 0xdd, 0xce, 0x92, 0x9d, 0xc0, 0xf3, 0x82, 0x43, 0xcd, 0x83, 0x2a, 0xd7, - 0x64, 0x27, 0x96, 0x6a, 0x1a, 0x24, 0xdd, 0x55, 0xf2, 0x81, 0x86, 0x06, 0x39, 0x61, 0xec, 0x3e, - 0xd4, 0xc5, 0xc4, 0xcf, 0x54, 0xce, 0xd6, 0xad, 0x8d, 0xd6, 0xd6, 0x95, 0xcd, 0xd4, 0xf3, 0x77, - 0x8e, 0x0e, 0x8d, 0xee, 0x39, 0x88, 0x89, 0x9f, 0xda, 0x61, 0x1b, 0xaa, 0x93, 0x28, 0xf0, 0x5d, - 0x5f, 0xaa, 0xee, 0x15, 0x52, 0xc5, 0xab, 0xe9, 0x51, 0x8e, 0x02, 0xe1, 0xca, 0xb1, 0x0c, 0x93, - 0x23, 0x64, 0x38, 0xe3, 0x19, 0x23, 0xbb, 0x0f, 0xd7, 0x42, 0xf9, 0xd4, 0x71, 0xa3, 0x20, 0x10, - 0x18, 0x27, 0xca, 0x91, 0xa1, 0xe8, 0x07, 0xd2, 0xeb, 0x5e, 0xa5, 0x83, 0x5d, 0x0d, 0xe5, 0xd3, - 0xbd, 0x8c, 0xf8, 0x40, 0xd3, 0x7e, 0x60, 0x57, 0x8b, 0x1d, 0x9b, 0xdb, 0x13, 0x91, 0x0c, 0x7b, - 0x5f, 0x14, 0xc0, 0x46, 0x31, 0x51, 0x43, 0xa1, 0x18, 0x4b, 0x8a, 0x8e, 0x1a, 0xa7, 0x31, 0xbb, - 0x06, 0x65, 0x35, 0x14, 0x5b, 0xef, 0xbc, 0x4b, 0xf1, 0xd0, 0xe0, 0x66, 0xc6, 0xae, 0x43, 0x4d, - 0x7b, 0xde, 0x48, 0x9e, 0x75, 0x8b, 0x44, 0xaa, 0x12, 0xf0, 0x50, 0x9e, 0xb1, 0x57, 0xa1, 0x82, - 0x1e, 0x87, 0x24, 0x5b, 0xaf, 0x92, 0xa1, 0x87, 0x84, 0xff, 0x8e, 0xbf, 0xae, 0x41, 0xd5, 0x8d, - 0xdd, 0x77, 0xef, 0x3f, 0x8b, 0xe2, 0x6e, 0x85, 0xa8, 0xd9, 0x1c, 0xcf, 0x95, 0x44, 0x89, 0x08, - 0x9c, 0xd1, 0x4c, 0x91, 0xb3, 0xd9, 0xbc, 0x4a, 0xc0, 0xc3, 0x99, 0xc2, 0x9d, 0x35, 0xb1, 0x7f, - 0x96, 0x90, 0xbb, 0xd1, 0xce, 0x04, 0xed, 0x22, 0xc2, 0x5a, 0x50, 0x70, 0x07, 0xe4, 0x21, 0x35, - 0x5e, 0x70, 0x07, 0xa8, 0x11, 0xe5, 0x7f, 0x26, 0x29, 0xce, 0x6d, 0x4e, 0x63, 0xfc, 0x82, 0xeb, - 0x4f, 0x86, 0x98, 0x48, 0x66, 0x14, 0xe4, 0x0d, 0x5e, 0xd5, 0xc0, 0xe1, 0xac, 0xf7, 0x95, 0x05, - 0xd5, 0xd4, 0x6d, 0xd8, 0x1b, 0x00, 0x98, 0xcd, 0x1c, 0x1d, 0xf7, 0xd6, 0x05, 0x71, 0x5f, 0x1b, - 0x1b, 0x5e, 0x85, 0xcc, 0x9e, 0xc8, 0x98, 0x0b, 0x17, 0x31, 0x23, 0x5d, 0x33, 0xe7, 0x22, 0xb6, - 0x78, 0x79, 0xc4, 0x2e, 0x06, 0x98, 0xfd, 0xe2, 0x00, 0x4b, 0xc3, 0xa4, 0xb4, 0x5e, 0x4c, 0xc3, - 0xa4, 0x77, 0x07, 0xda, 0xe7, 0x1c, 0x10, 0xd9, 0xfc, 0x70, 0x10, 0x91, 0xaf, 0x34, 0x38, 0x8d, - 0x7b, 0x5f, 0x58, 0x50, 0xd6, 0xdf, 0x47, 0x45, 0x7a, 0x7d, 0x43, 0x2c, 0x78, 0x7d, 0x76, 0x15, - 0x4a, 0x09, 0x7a, 0x9e, 0xf1, 0x22, 0x3d, 0x59, 0x30, 0x64, 0xf1, 0x32, 0x43, 0xda, 0x97, 0x1b, - 0xb2, 0xf4, 0x9c, 0x21, 0xff, 0x1f, 0x3a, 0x89, 0x3f, 0x08, 0x84, 0x1a, 0x3a, 0xb1, 0x9c, 0x04, - 0xbe, 0x2b, 0x14, 0x39, 0x52, 0x93, 0xb7, 0x0d, 0xce, 0x0d, 0x8c, 0x47, 0x53, 0x89, 0x48, 0x14, - 0xb9, 0x52, 0x83, 0xeb, 0x49, 0xef, 0x08, 0xaa, 0xa9, 0x76, 0x16, 0x7d, 0xdd, 0x5a, 0xee, 0xeb, - 0x85, 0x05, 0x5f, 0xd7, 0xbe, 0x54, 0x4c, 0x7d, 0xa9, 0xb7, 0x0f, 0xad, 0x3d, 0x53, 0x6f, 0xf6, - 0x1f, 0x60, 0xcd, 0xc3, 0x62, 0xe1, 0x4e, 0xe3, 0x58, 0x86, 0x89, 0x29, 0x48, 0xe9, 0x14, 0x29, - 0xb1, 0xfc, 0xd9, 0x54, 0xaa, 0x84, 0x36, 0xb5, 0x79, 0x3a, 0xed, 0xfd, 0xd5, 0x82, 0x92, 0x5e, - 0xdd, 0x81, 0xe2, 0x58, 0x9d, 0x9a, 0x60, 0xc5, 0x21, 0xdb, 0x85, 0xce, 0xbc, 0xc6, 0x39, 0x54, - 0x57, 0xe9, 0xfb, 0xf5, 0xad, 0x6b, 0xa9, 0xc5, 0x17, 0x4f, 0x70, 0xb0, 0x92, 0xd5, 0xb7, 0x43, - 0x4f, 0xef, 0xba, 0x09, 0xd5, 0xd1, 0xcc, 0xac, 0xb5, 0x69, 0xed, 0x6a, 0x96, 0xb6, 0x1e, 0xca, - 0xb3, 0x74, 0x59, 0x65, 0x34, 0xd3, 0xfc, 0xdb, 0xd0, 0x88, 0xe5, 0xa9, 0x1f, 0x85, 0x66, 0x4d, - 0x89, 0xd6, 0xb4, 0x36, 0xd3, 0xaa, 0x9e, 0x2e, 0xa8, 0x6b, 0x2e, 0x9a, 0xee, 0x56, 0xa1, 0xec, - 0xc9, 0x44, 0xf8, 0x41, 0x2f, 0x00, 0xd8, 0xd3, 0xb1, 0x13, 0x0e, 0x22, 0xf6, 0x01, 0xd4, 0x4d, - 0x68, 0x25, 0x67, 0x13, 0x9d, 0x87, 0x5a, 0x5b, 0x37, 0x37, 0x17, 0x9a, 0x80, 0x07, 0xd9, 0xe4, - 0x63, 0x99, 0x0c, 0x23, 0x8f, 0x83, 0x5e, 0x72, 0x72, 0x36, 0x91, 0x54, 0xe5, 0xf5, 0x06, 0x73, - 0x7b, 0x98, 0x68, 0x7d, 0x28, 0xcf, 0x7a, 0xbf, 0x2b, 0x41, 0x73, 0xd7, 0xe4, 0x69, 0x52, 0xe7, - 0x8b, 0xda, 0x82, 0x05, 0xcb, 0x17, 0x96, 0x5b, 0xbe, 0x78, 0x79, 0x96, 0xb3, 0x5f, 0x9c, 0xe5, - 0x4a, 0xcf, 0x65, 0xb9, 0x1b, 0x18, 0xb9, 0x89, 0x74, 0x02, 0x7f, 0xec, 0x27, 0x26, 0xcf, 0xd5, - 0x10, 0x79, 0x84, 0x00, 0x5b, 0x87, 0xba, 0x1b, 0x85, 0xda, 0x61, 0xdc, 0x33, 0x4a, 0x75, 0x4d, - 0x9e, 0x87, 0xd8, 0x07, 0xd0, 0x56, 0x49, 0x14, 0x8b, 0x53, 0xe9, 0xa0, 0xf5, 0x65, 0xe8, 0x51, - 0xc6, 0xcb, 0x79, 0xc3, 0xb1, 0x26, 0xef, 0x6a, 0x2a, 0x6f, 0xa9, 0x85, 0xf9, 0x62, 0xe1, 0x86, - 0xc5, 0xc2, 0xad, 0xbd, 0xbb, 0x9e, 0x65, 0x4a, 0xf4, 0xbd, 0x68, 0x3c, 0x89, 0xa5, 0xc2, 0xc3, - 0x6b, 0xfb, 0x35, 0xc8, 0x7e, 0x59, 0x0d, 0xdb, 0x9b, 0xd3, 0xd1, 0x58, 0xbc, 0xed, 0x2e, 0x02, - 0xec, 0x0d, 0x58, 0xcd, 0xef, 0x11, 0xc8, 0x99, 0x0c, 0xa8, 0x0b, 0x2a, 0xf1, 0xfc, 0xe6, 0x8f, - 0x10, 0x67, 0xdb, 0x99, 0xaf, 0x50, 0x1e, 0xd2, 0x9d, 0x08, 0xcb, 0xbe, 0x95, 0x39, 0x55, 0xea, - 0x1f, 0xe4, 0x60, 0xef, 0x43, 0xdb, 0x53, 0x89, 0x93, 0xaf, 0xcd, 0xed, 0xe5, 0xb5, 0xb9, 0xe9, - 0xa9, 0x64, 0x67, 0x5e, 0x9e, 0xdf, 0x02, 0x50, 0xd3, 0x7e, 0x9a, 0x4a, 0x3b, 0x94, 0x4a, 0x17, - 0x82, 0xc3, 0xe4, 0x52, 0x35, 0xed, 0x9b, 0x5c, 0xfa, 0x3a, 0x06, 0x07, 0xa5, 0x19, 0x27, 0x96, - 0xc2, 0xa3, 0x56, 0xa1, 0x8a, 0xa1, 0x40, 0x18, 0x97, 0x02, 0x0b, 0x71, 0xb9, 0x53, 0x31, 0x85, - 0xf8, 0xd7, 0x05, 0xb8, 0x7a, 0x9c, 0xc4, 0x52, 0x8c, 0xb5, 0x93, 0x9e, 0x08, 0x35, 0xa2, 0x63, - 0xbf, 0x05, 0x15, 0x63, 0x1a, 0x72, 0xd1, 0xe5, 0x16, 0x4c, 0xd9, 0xd8, 0x6b, 0xa0, 0xfd, 0xd4, - 0x49, 0x54, 0x9a, 0x41, 0x68, 0x7e, 0xa2, 0xd8, 0x2b, 0x80, 0x7e, 0x8a, 0x04, 0x9d, 0x72, 0x4b, - 0x32, 0xf4, 0x4e, 0x54, 0x56, 0xfc, 0xed, 0x5c, 0xf1, 0x7f, 0x1d, 0x1a, 0x94, 0xa8, 0xb1, 0x28, - 0x25, 0x32, 0xa6, 0x9a, 0x50, 0xe3, 0x75, 0xc2, 0x3e, 0x24, 0xe8, 0x42, 0xbb, 0x97, 0x5f, 0xce, - 0xee, 0xbc, 0x15, 0x08, 0x95, 0x38, 0xd3, 0x89, 0x87, 0xee, 0x9e, 0x28, 0x5e, 0xd6, 0x2a, 0xe6, - 0x65, 0x4c, 0xc5, 0x53, 0xd5, 0xfb, 0xb2, 0x00, 0xad, 0x45, 0x41, 0x59, 0x0f, 0xec, 0x30, 0x8a, - 0x26, 0x46, 0x1d, 0x59, 0x9d, 0x7c, 0x1c, 0x45, 0x93, 0x83, 0x15, 0x4e, 0x34, 0x76, 0x07, 0x4a, - 0x41, 0xe4, 0x8a, 0x80, 0x14, 0x50, 0xdf, 0x6a, 0xa6, 0x4c, 0x8f, 0x10, 0x3c, 0x58, 0xe1, 0x9a, - 0xca, 0xfe, 0x07, 0x0a, 0x6a, 0xdb, 0xe4, 0x49, 0xc8, 0xf4, 0xba, 0x7d, 0xb0, 0xc2, 0x0b, 0x6a, - 0x9b, 0xdd, 0x82, 0xe2, 0xa9, 0xab, 0x4c, 0x2a, 0xac, 0xa7, 0xe4, 0x8f, 0xf6, 0x8e, 0x0f, 0x56, - 0x38, 0x52, 0xd8, 0xfb, 0xd0, 0x74, 0x83, 0x68, 0xea, 0x39, 0xde, 0x59, 0x28, 0xc6, 0xbe, 0x6b, - 0x32, 0xe0, 0xd5, 0x79, 0xc6, 0x8d, 0xa6, 0xde, 0xbe, 0xa6, 0x1d, 0xac, 0xf0, 0x86, 0x9b, 0x9b, - 0xa3, 0x18, 0x43, 0x6f, 0xa0, 0x4b, 0x53, 0x4e, 0x8c, 0x83, 0xfd, 0x0f, 0x71, 0x7f, 0xa2, 0xb1, - 0x03, 0x60, 0xe2, 0xb3, 0x69, 0x2c, 0x9d, 0x7e, 0x10, 0xf5, 0x9d, 0xd4, 0x0f, 0x2a, 0xb4, 0xa2, - 0x9b, 0xae, 0xd8, 0x41, 0x8e, 0xdd, 0x20, 0xea, 0x1b, 0x3d, 0x1d, 0xac, 0xf0, 0x8e, 0x38, 0x87, - 0xed, 0xd6, 0xa0, 0x62, 0x12, 0x41, 0xaf, 0x0c, 0x36, 0xea, 0xaa, 0x77, 0x1d, 0x4a, 0xa4, 0x0e, - 0x34, 0x3f, 0xfa, 0x60, 0xda, 0xfb, 0x91, 0x3f, 0xfe, 0xab, 0x08, 0x85, 0xe3, 0x6d, 0xac, 0xd2, - 0x32, 0xf4, 0x26, 0x91, 0x6f, 0xea, 0x54, 0x8d, 0x67, 0x73, 0x6c, 0x0f, 0x75, 0x62, 0x37, 0xd7, - 0x25, 0x33, 0x43, 0xbc, 0x3f, 0x75, 0x47, 0x32, 0x31, 0x05, 0xd0, 0xcc, 0x10, 0x9f, 0xc4, 0x72, - 0xe0, 0x3f, 0x33, 0x7e, 0x66, 0x66, 0x3a, 0x65, 0xea, 0x5c, 0xe5, 0x06, 0x42, 0xe9, 0x92, 0x5e, - 0xc3, 0x94, 0x49, 0xe0, 0x1e, 0x62, 0x58, 0xf1, 0x94, 0xd2, 0xee, 0x55, 0xe3, 0x38, 0x44, 0x44, - 0xb8, 0x01, 0x29, 0xa3, 0xc6, 0x71, 0x88, 0x59, 0x53, 0xb8, 0xae, 0x54, 0x8a, 0xf2, 0x72, 0x55, - 0xdf, 0xcf, 0x34, 0x82, 0xa9, 0xf9, 0x1e, 0xac, 0x2a, 0xe9, 0xc6, 0x32, 0x71, 0x72, 0x5c, 0x35, - 0xe2, 0x6a, 0x6b, 0xc2, 0x4e, 0xc6, 0xbb, 0x01, 0x9d, 0x41, 0x14, 0xbb, 0xd2, 0x41, 0x65, 0x38, - 0x2a, 0x39, 0x0b, 0xa4, 0xc9, 0x82, 0x2d, 0xc2, 0x8f, 0x44, 0x32, 0x3c, 0x46, 0x94, 0xdd, 0x86, - 0x96, 0x52, 0xd2, 0x19, 0x8d, 0x69, 0x3f, 0xac, 0x24, 0x3a, 0x31, 0xd6, 0x95, 0x92, 0x0f, 0xc7, - 0xb8, 0xd9, 0xa1, 0x87, 0x21, 0x19, 0x47, 0x81, 0x74, 0x44, 0xac, 0xef, 0x86, 0x35, 0x5e, 0xc1, - 0xf9, 0x4e, 0xac, 0x6b, 0xc1, 0xb3, 0x44, 0xc6, 0xa1, 0x08, 0x70, 0x71, 0x93, 0xa8, 0x90, 0x42, - 0x87, 0x1e, 0xdb, 0x84, 0x2b, 0x51, 0xff, 0xa7, 0xd2, 0x4d, 0x9c, 0x20, 0x72, 0x47, 0x59, 0x87, - 0xdf, 0xa2, 0xd3, 0xac, 0x6a, 0xd2, 0xa3, 0xc8, 0x1d, 0x99, 0xf6, 0x9e, 0xd4, 0x99, 0x46, 0x64, - 0x34, 0x92, 0x3a, 0xcb, 0xa1, 0x3a, 0x4d, 0xd4, 0x21, 0x86, 0x76, 0x9d, 0xc4, 0xd1, 0xcc, 0xf7, - 0x64, 0x4c, 0x37, 0x9f, 0x1a, 0xcf, 0xe6, 0xbd, 0xcf, 0x2d, 0x28, 0x7e, 0xb4, 0x77, 0xfc, 0x22, - 0xdb, 0x1b, 0x1b, 0x17, 0x96, 0xd8, 0xb8, 0x78, 0xb9, 0x8d, 0xed, 0x0b, 0x6c, 0x7c, 0x07, 0x5a, - 0x93, 0x58, 0x7a, 0x72, 0xe0, 0x87, 0xd2, 0x73, 0xd0, 0xb8, 0xda, 0x13, 0x9a, 0x73, 0x74, 0xc7, - 0x0d, 0xb0, 0xbf, 0x73, 0x11, 0x08, 0x13, 0x5f, 0x04, 0x8a, 0x42, 0xc3, 0xf8, 0x45, 0x3b, 0x87, - 0xa3, 0xf3, 0xf7, 0xfe, 0x6c, 0x41, 0xe7, 0x7c, 0x78, 0x7c, 0xfb, 0x72, 0xbd, 0x0e, 0x0d, 0xe1, - 0xba, 0xd1, 0x34, 0x4c, 0x1c, 0x4a, 0xb3, 0x5a, 0xaa, 0xba, 0xc1, 0x1e, 0x63, 0xb6, 0xbd, 0x01, - 0xa0, 0x86, 0x22, 0x96, 0xba, 0xa5, 0xd0, 0xd2, 0xd4, 0x34, 0x82, 0xcd, 0xcb, 0xaf, 0x2c, 0x28, - 0xef, 0xea, 0x93, 0x7c, 0xb3, 0x88, 0x2c, 0x2e, 0x89, 0x48, 0x7b, 0x89, 0x54, 0xa5, 0xcb, 0xa5, - 0x2a, 0x3f, 0x2f, 0x15, 0x76, 0xa3, 0x8d, 0x7c, 0x82, 0x63, 0x77, 0xb3, 0xaf, 0x58, 0xa6, 0x11, - 0x34, 0x09, 0x4a, 0x9f, 0x3c, 0xfb, 0xea, 0x6d, 0x68, 0xa6, 0xbe, 0xa6, 0xf5, 0xa1, 0x55, 0xdd, - 0x48, 0x41, 0x52, 0xc8, 0x3b, 0x50, 0x12, 0x49, 0x12, 0xa7, 0x77, 0x9c, 0x5b, 0x17, 0xa5, 0xd4, - 0xcd, 0x1d, 0xe4, 0x78, 0x10, 0x26, 0xf1, 0x19, 0xd7, 0xdc, 0x6b, 0xef, 0x01, 0xcc, 0x41, 0x4c, - 0x11, 0x69, 0xdb, 0x5e, 0xe3, 0x38, 0xc4, 0x86, 0x7f, 0x26, 0x82, 0x69, 0xfa, 0x4d, 0x3d, 0xf9, - 0x6e, 0xe1, 0x3d, 0xab, 0x77, 0x13, 0x6c, 0x4c, 0xbd, 0x5a, 0x87, 0xe3, 0x28, 0x49, 0xaf, 0xc2, - 0x66, 0x86, 0xae, 0xd4, 0x4a, 0xfb, 0x47, 0x35, 0x89, 0x42, 0x85, 0xa1, 0x5f, 0xd2, 0x8d, 0xaf, - 0xb5, 0x58, 0x64, 0xa8, 0xd1, 0xe5, 0x9a, 0xf6, 0x1f, 0xb6, 0x91, 0xdf, 0xe4, 0xc5, 0xe8, 0xdc, - 0x43, 0x43, 0xe9, 0x1b, 0x3d, 0x34, 0xf4, 0xae, 0xc0, 0xea, 0xde, 0x50, 0xba, 0xa3, 0x1d, 0x6f, - 0xec, 0x87, 0xa6, 0x15, 0xee, 0xfd, 0xdc, 0x02, 0x96, 0x47, 0x5f, 0x46, 0xc0, 0xbb, 0x0b, 0x65, - 0x00, 0xcd, 0x6e, 0x9e, 0xf1, 0x38, 0xa1, 0x99, 0x13, 0xde, 0x83, 0xd5, 0xa1, 0x50, 0xce, 0x44, - 0x86, 0x9e, 0x1f, 0x9e, 0x3a, 0x02, 0xbf, 0x44, 0x52, 0x57, 0x79, 0x7b, 0x28, 0xd4, 0x91, 0xc6, - 0xe9, 0x00, 0xbd, 0xbf, 0x58, 0x70, 0xe3, 0x81, 0x49, 0x81, 0x26, 0x6c, 0xb9, 0x44, 0xef, 0x93, - 0x69, 0xf3, 0x7e, 0x41, 0x83, 0x6b, 0xbd, 0x54, 0x83, 0x7b, 0x0b, 0xea, 0x26, 0xad, 0xe6, 0x7c, - 0x10, 0x34, 0xf4, 0xd8, 0x34, 0x40, 0xb1, 0xfe, 0xa6, 0xe6, 0xd0, 0x21, 0x55, 0x37, 0x18, 0xb1, - 0xdc, 0x81, 0x96, 0x1b, 0x85, 0x89, 0x0c, 0x13, 0x27, 0x90, 0xe1, 0x69, 0x32, 0x34, 0xdd, 0x7e, - 0xd3, 0xa0, 0x8f, 0x08, 0xec, 0xad, 0xc3, 0xcd, 0x65, 0xc2, 0x68, 0x45, 0xf7, 0x7e, 0x6f, 0xc1, - 0xda, 0x39, 0x96, 0x63, 0x31, 0xfb, 0x16, 0x85, 0x7d, 0x5e, 0x92, 0xe2, 0x45, 0x92, 0xdc, 0x80, - 0xeb, 0x17, 0x1e, 0xd3, 0x88, 0xf1, 0xcb, 0x82, 0x7e, 0x01, 0xf1, 0x44, 0x22, 0xd8, 0xbd, 0xd4, - 0x85, 0xf5, 0xe3, 0x47, 0xd6, 0x14, 0xed, 0x9b, 0x97, 0x0c, 0x6a, 0xd0, 0x8d, 0x2b, 0xbf, 0x0b, - 0x75, 0x7a, 0xfc, 0x3c, 0x8d, 0xa3, 0xe9, 0x04, 0xd3, 0x0d, 0xae, 0x78, 0xe5, 0xfc, 0x8a, 0x8f, - 0x90, 0xca, 0xe9, 0x99, 0x94, 0x86, 0x4a, 0xb7, 0xba, 0x68, 0x21, 0xdf, 0x23, 0xa1, 0x8a, 0xba, - 0x0b, 0x96, 0x87, 0x24, 0x72, 0x2c, 0x55, 0x14, 0xcc, 0x64, 0xae, 0xdf, 0x85, 0x14, 0xd2, 0xbd, - 0xf0, 0x58, 0x3c, 0x43, 0x9a, 0x36, 0x5a, 0x69, 0x2c, 0x9e, 0x19, 0xd8, 0x0f, 0x11, 0x2e, 0x19, - 0xd8, 0x0f, 0x4f, 0xf0, 0x84, 0xf4, 0x3a, 0x9d, 0x45, 0x5b, 0xc5, 0x44, 0x5b, 0xee, 0xb9, 0x30, - 0x8d, 0xb6, 0xfa, 0x78, 0x3e, 0xe9, 0xfd, 0xcd, 0x82, 0xe6, 0xc2, 0xf9, 0x2f, 0xea, 0xb6, 0xd8, - 0xf7, 0xa0, 0x3d, 0x7f, 0x00, 0xd2, 0x97, 0x9a, 0xc2, 0x25, 0x5a, 0x6b, 0x66, 0xaf, 0x41, 0x74, - 0x45, 0x98, 0x1f, 0xb9, 0x98, 0x3f, 0xf2, 0x12, 0x01, 0xef, 0x42, 0x1b, 0xb9, 0xf3, 0xca, 0xd1, - 0x92, 0x36, 0x75, 0xe8, 0xa7, 0xfa, 0xb9, 0x06, 0x65, 0xe3, 0x0a, 0xfa, 0x15, 0xce, 0xcc, 0x7a, - 0x5f, 0xd9, 0xd0, 0xc8, 0x9f, 0x26, 0xf7, 0x4c, 0x68, 0x2d, 0x3c, 0x13, 0xa6, 0x82, 0x16, 0x72, - 0x82, 0xde, 0x83, 0xd5, 0x70, 0x3a, 0xee, 0xcb, 0xd8, 0x89, 0x06, 0x8e, 0x0c, 0x93, 0xd8, 0x97, - 0xfa, 0xd4, 0x45, 0xde, 0xd6, 0x84, 0x27, 0x83, 0x07, 0x1a, 0xce, 0x89, 0x65, 0x5f, 0x2c, 0x56, - 0x29, 0x2f, 0xd6, 0x39, 0x7b, 0x97, 0x9f, 0xb3, 0xf7, 0x75, 0xa8, 0x99, 0xd7, 0x0a, 0xdf, 0x23, - 0xf3, 0x15, 0x79, 0x55, 0x03, 0xe7, 0x2f, 0xfb, 0xd5, 0xe5, 0x59, 0xba, 0x76, 0xc1, 0x33, 0xcf, - 0xfc, 0xc9, 0xf0, 0x7f, 0xc1, 0xa6, 0x4b, 0x50, 0x9d, 0x9c, 0xa3, 0x93, 0x4f, 0xda, 0x74, 0xd9, - 0x21, 0x2a, 0x6e, 0xe7, 0x2b, 0x07, 0x9d, 0x84, 0x7a, 0xc1, 0x2a, 0x2f, 0xfb, 0x8a, 0xfe, 0xa7, - 0x78, 0x0d, 0xaa, 0xfa, 0xca, 0x65, 0xfa, 0xc0, 0x22, 0xaf, 0xd0, 0xfc, 0xd0, 0xcb, 0x19, 0xa3, - 0x95, 0x37, 0x06, 0xfb, 0x0e, 0xac, 0xa1, 0x8e, 0xfa, 0xf2, 0x94, 0x34, 0xe5, 0xf8, 0xa1, 0xe3, - 0xc9, 0x81, 0x98, 0x06, 0x89, 0xe3, 0x0e, 0xa8, 0xf3, 0xb3, 0xf9, 0x2b, 0x63, 0x3f, 0xdc, 0x45, - 0x86, 0x13, 0x75, 0x18, 0xee, 0x6b, 0xea, 0xde, 0x80, 0xf2, 0x1b, 0xbd, 0xa4, 0x47, 0x83, 0x81, - 0x92, 0x09, 0xb5, 0x81, 0x36, 0xaf, 0x13, 0xf6, 0x84, 0xa0, 0x39, 0x8b, 0xf9, 0xf6, 0x6a, 0x8e, - 0x45, 0x67, 0x84, 0x0b, 0xef, 0x80, 0xec, 0x25, 0xef, 0x80, 0x05, 0x7f, 0xd6, 0xfb, 0x85, 0x05, - 0xab, 0xf9, 0xfb, 0xef, 0x83, 0xb4, 0x78, 0x0e, 0xc5, 0x64, 0x22, 0x43, 0x47, 0xa4, 0xef, 0x64, - 0x55, 0x0d, 0xec, 0xd0, 0xfb, 0x0d, 0x55, 0x20, 0xc7, 0x8d, 0xbc, 0x34, 0xa7, 0xd5, 0x08, 0xd9, - 0x8b, 0x3c, 0x2c, 0x5e, 0xfa, 0xef, 0x25, 0x67, 0x2c, 0x95, 0xc2, 0x6b, 0x93, 0x4e, 0xe0, 0x0d, - 0x02, 0x3f, 0xd6, 0xd8, 0x42, 0x02, 0xb1, 0xd3, 0xbb, 0x32, 0x25, 0x90, 0x7b, 0xdf, 0x87, 0xf6, - 0xb9, 0x93, 0xb3, 0x3a, 0x54, 0x7e, 0xf4, 0xf8, 0xe1, 0xe3, 0x27, 0x3f, 0x7e, 0xdc, 0x59, 0x61, - 0x15, 0x28, 0x3e, 0xfa, 0xf4, 0x7e, 0xc7, 0x62, 0x00, 0xe5, 0xe3, 0xc7, 0x3b, 0x47, 0x47, 0x3f, - 0xe9, 0x14, 0x58, 0x15, 0xec, 0x4f, 0x8f, 0x4f, 0xf6, 0x3b, 0xc5, 0x7b, 0x37, 0xa0, 0x9e, 0x4b, - 0x0a, 0xac, 0x0c, 0x85, 0x4f, 0xde, 0xee, 0xac, 0xd0, 0xef, 0x56, 0xc7, 0xba, 0x77, 0x0b, 0xaa, - 0xa9, 0x5b, 0xe0, 0x06, 0xfb, 0x32, 0x90, 0x89, 0xd4, 0xbb, 0x1e, 0x4d, 0x93, 0x8e, 0xb5, 0xf5, - 0x1b, 0x6c, 0xf9, 0x48, 0x15, 0xec, 0x7d, 0x30, 0xff, 0x9f, 0xb1, 0x2c, 0x25, 0x2e, 0xbc, 0x64, - 0xad, 0x5d, 0x3b, 0x0f, 0x9b, 0x7c, 0xbc, 0xf2, 0x96, 0xc5, 0x8e, 0xe0, 0x0a, 0x55, 0xf6, 0x7c, - 0x7d, 0x7d, 0x32, 0x61, 0xaf, 0x65, 0xd6, 0x39, 0xdf, 0x0c, 0xac, 0xad, 0x5d, 0x44, 0x9a, 0xef, - 0xb8, 0xf5, 0x27, 0x0b, 0xda, 0xe7, 0xaa, 0x00, 0xfb, 0x14, 0x2a, 0xa6, 0x30, 0xb2, 0x3b, 0x59, - 0x97, 0x70, 0x59, 0x01, 0x5f, 0xbb, 0xfb, 0x22, 0xb6, 0xf4, 0x8b, 0xec, 0x87, 0x60, 0x2b, 0x31, - 0x93, 0xac, 0xb7, 0x64, 0x45, 0xae, 0x52, 0xae, 0xdd, 0xbe, 0x94, 0x27, 0xdd, 0x72, 0xf7, 0xee, - 0xdf, 0xff, 0x58, 0xb5, 0x3e, 0xff, 0xfa, 0xa6, 0xf5, 0xe5, 0xd7, 0x37, 0xad, 0x7f, 0x7c, 0x7d, - 0xd3, 0xfa, 0xed, 0x3f, 0x6f, 0xae, 0x40, 0x27, 0x8a, 0x4f, 0x37, 0x13, 0x7f, 0x34, 0xdb, 0x1c, - 0xcd, 0xe8, 0x8f, 0xc4, 0x7e, 0x99, 0x7e, 0xb6, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x5c, 0x29, - 0xb2, 0x7d, 0xcc, 0x1c, 0x00, 0x00, + // 2873 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0x5b, 0x6f, 0x24, 0x47, + 0xf5, 0x77, 0xcf, 0xf4, 0xdc, 0xce, 0x5c, 0x5d, 0x7b, 0xc9, 0xc4, 0xfb, 0xdf, 0x5d, 0x67, 0xf6, + 0xbf, 0x8b, 0xd9, 0x48, 0x4e, 0x62, 0x6f, 0xa2, 0x40, 0x40, 0x91, 0x2f, 0x9b, 0xd8, 0xf1, 0xc6, + 0x6b, 0xca, 0x26, 0x88, 0xbc, 0xb4, 0x7a, 0xba, 0x6b, 0xec, 0x66, 0x7a, 0xba, 0x87, 0xae, 0x9e, + 0x59, 0x3b, 0xdf, 0x01, 0x01, 0x0f, 0x08, 0x1e, 0x78, 0x45, 0xe2, 0x63, 0x20, 0x21, 0xa4, 0x44, + 0x20, 0x11, 0x29, 0x2f, 0x3c, 0xa2, 0xf0, 0x25, 0x78, 0x44, 0xe7, 0x54, 0x55, 0xbb, 0xc7, 0xeb, + 0xf1, 0x66, 0x11, 0xca, 0xd3, 0x54, 0xfd, 0xce, 0xa9, 0xea, 0xaa, 0x73, 0x4e, 0xfd, 0xce, 0xa9, + 0x1a, 0x80, 0x7e, 0x32, 0xee, 0xaf, 0x8e, 0x93, 0x38, 0x8d, 0x59, 0xb9, 0xef, 0x7a, 0xc3, 0xc9, + 0x78, 0xa9, 0x39, 0x9c, 0x26, 0x63, 0xcf, 0xc0, 0x4b, 0x4d, 0x91, 0x24, 0x71, 0xa6, 0xb5, 0xd4, + 0x18, 0x89, 0xd4, 0xcd, 0x7a, 0x4c, 0x44, 0x5e, 0x72, 0x36, 0x4e, 0x83, 0x38, 0xca, 0xb0, 0xeb, + 0xc7, 0xf1, 0x71, 0x4c, 0xcd, 0x37, 0xb0, 0xa5, 0xd1, 0x76, 0x32, 0x91, 0x29, 0x35, 0x15, 0xd0, + 0xfb, 0x73, 0x19, 0x60, 0x93, 0xbe, 0xf8, 0xb1, 0x48, 0x5d, 0x76, 0x1b, 0xc0, 0x0b, 0x27, 0x32, + 0x15, 0x89, 0x13, 0xf8, 0x5d, 0x6b, 0xd9, 0x5a, 0xb1, 0x79, 0x4d, 0x23, 0xbb, 0x3e, 0xfb, 0x0e, + 0xb4, 0x8d, 0x78, 0x2a, 0x12, 0x19, 0xc4, 0x51, 0xb7, 0xb0, 0x6c, 0xad, 0xd4, 0x78, 0x4b, 0xc3, + 0x9f, 0x28, 0x14, 0xe7, 0xe9, 0x9f, 0xeb, 0xd4, 0x49, 0xa7, 0xd6, 0xcf, 0xc4, 0x5d, 0xa8, 0x18, + 0x59, 0x63, 0xd9, 0x5a, 0x29, 0x71, 0xd3, 0x65, 0x3d, 0x28, 0x0d, 0x82, 0x50, 0xc8, 0xae, 0xbd, + 0x5c, 0x5c, 0xa9, 0xaf, 0x35, 0x56, 0x95, 0x39, 0x56, 0x3f, 0x08, 0x42, 0xc1, 0x95, 0x88, 0xbd, + 0x01, 0x80, 0x0d, 0x27, 0x88, 0x7c, 0x71, 0xda, 0x6d, 0x2e, 0x5b, 0x2b, 0xf5, 0xb5, 0x8e, 0x51, + 0xc4, 0x6d, 0x90, 0x72, 0x0d, 0x75, 0x76, 0x51, 0x85, 0xdd, 0x83, 0xa6, 0x4c, 0xdd, 0x24, 0xcd, + 0x16, 0x54, 0xa2, 0x8d, 0x35, 0x08, 0x34, 0x6b, 0xba, 0x0b, 0x75, 0x11, 0xf9, 0x99, 0x4a, 0x99, + 0x54, 0x40, 0x44, 0xbe, 0x51, 0x58, 0x81, 0x8a, 0xf4, 0x4e, 0xc4, 0xc8, 0x95, 0xdd, 0x0a, 0x2d, + 0xae, 0x65, 0xbe, 0x79, 0x48, 0x30, 0x37, 0x62, 0xb6, 0x0e, 0x0d, 0xd5, 0xd4, 0x4b, 0x6c, 0xcd, + 0x59, 0x62, 0x5d, 0x69, 0xa9, 0x45, 0x2e, 0x41, 0x2d, 0x90, 0x4e, 0xe2, 0x3e, 0x73, 0x86, 0xd3, + 0x6e, 0x75, 0xd9, 0x5a, 0xa9, 0xf2, 0x4a, 0x20, 0xb9, 0xfb, 0x6c, 0x6f, 0x8a, 0x3b, 0x46, 0x41, + 0xe2, 0x46, 0xc7, 0x42, 0x76, 0x6b, 0xf4, 0xf5, 0x6c, 0x3a, 0xee, 0x3e, 0xe3, 0x28, 0xe0, 0xb5, + 0x44, 0xb7, 0x24, 0x7b, 0x17, 0xda, 0xd9, 0x00, 0xbd, 0x88, 0xf6, 0x9c, 0x45, 0x34, 0xcd, 0x28, + 0xb5, 0x0c, 0x06, 0xb6, 0xef, 0x87, 0xb2, 0x0b, 0xcb, 0xd6, 0x4a, 0x83, 0x53, 0x9b, 0xbd, 0x05, + 0x75, 0xdf, 0x0f, 0xd5, 0x3c, 0x42, 0x76, 0x3b, 0x73, 0x66, 0x02, 0xdf, 0x0f, 0x77, 0x95, 0x0e, + 0x9a, 0x5c, 0x89, 0x9d, 0x44, 0xc8, 0x49, 0x98, 0x76, 0x17, 0x29, 0x06, 0x1a, 0x0a, 0xe4, 0x84, + 0xb1, 0x47, 0x50, 0x77, 0xc7, 0x41, 0x66, 0x72, 0xb6, 0x6c, 0xad, 0xb4, 0xd6, 0xae, 0xad, 0x9a, + 0xc8, 0xdf, 0x38, 0xd8, 0xd5, 0xb6, 0xe7, 0xe0, 0x8e, 0x03, 0xe3, 0x87, 0x75, 0xa8, 0x8e, 0xe3, + 0x30, 0xf0, 0x02, 0x21, 0xbb, 0xd7, 0xc8, 0x14, 0xaf, 0x98, 0xa5, 0x1c, 0x84, 0xae, 0x27, 0x46, + 0x22, 0x4a, 0x0f, 0x50, 0xe1, 0x8c, 0x67, 0x8a, 0xec, 0x11, 0xdc, 0x8c, 0xc4, 0x33, 0xc7, 0x8b, + 0xc3, 0xd0, 0xc5, 0x73, 0x22, 0x1d, 0x11, 0xb9, 0xfd, 0x50, 0xf8, 0xdd, 0xeb, 0xb4, 0xb0, 0xeb, + 0x91, 0x78, 0xb6, 0x95, 0x09, 0x1f, 0x2b, 0x99, 0xf6, 0x49, 0x7a, 0x1a, 0xa1, 0x4f, 0x6e, 0x18, + 0x9f, 0x1c, 0x9d, 0x46, 0x7b, 0xd3, 0x8f, 0xec, 0x6a, 0xb1, 0x63, 0x73, 0x7b, 0xec, 0xa6, 0x27, + 0xbd, 0x2f, 0x0a, 0x60, 0xa3, 0x09, 0xd0, 0x7a, 0x91, 0x3b, 0x12, 0x74, 0x72, 0x6a, 0x9c, 0xda, + 0xec, 0x26, 0x94, 0xe5, 0x89, 0xbb, 0xf6, 0xf6, 0x3b, 0x74, 0x56, 0x1a, 0x5c, 0xf7, 0xd8, 0x2d, + 0xa8, 0xa9, 0xa8, 0x1c, 0x8a, 0xb3, 0x6e, 0x91, 0x44, 0x55, 0x02, 0xf6, 0xc4, 0x19, 0x7b, 0x05, + 0x2a, 0x18, 0x8d, 0x28, 0xb2, 0xd5, 0x28, 0x11, 0xf9, 0x28, 0xf8, 0xdf, 0xc4, 0xf2, 0x12, 0x54, + 0xbd, 0xc4, 0x7b, 0xe7, 0xd1, 0x69, 0x9c, 0x74, 0x2b, 0x24, 0xcd, 0xfa, 0xb8, 0xae, 0x34, 0x4e, + 0xdd, 0xd0, 0x19, 0x4e, 0x25, 0x05, 0xa2, 0xcd, 0xab, 0x04, 0xec, 0x4d, 0x25, 0xce, 0xac, 0x84, + 0xfd, 0xb3, 0x94, 0x42, 0x91, 0x66, 0x26, 0x68, 0x13, 0x11, 0xd6, 0x82, 0x82, 0x37, 0xa0, 0xe8, + 0xa9, 0xf1, 0x82, 0x37, 0x40, 0x8b, 0xc8, 0xe0, 0x33, 0x41, 0x1c, 0x60, 0x73, 0x6a, 0xe3, 0x17, + 0xbc, 0x60, 0x7c, 0x82, 0x24, 0x33, 0x25, 0x02, 0x68, 0xf0, 0xaa, 0x02, 0x76, 0xa7, 0xbd, 0xaf, + 0x2c, 0xa8, 0x9a, 0x90, 0x62, 0xaf, 0x03, 0x20, 0xd3, 0x39, 0x8a, 0x13, 0xac, 0x4b, 0x38, 0xa1, + 0x36, 0xd2, 0xba, 0x12, 0x95, 0x7d, 0x37, 0x53, 0x2e, 0x5c, 0xa6, 0x8c, 0x72, 0xa5, 0x9c, 0x3b, + 0xcd, 0xc5, 0xab, 0x4f, 0xf3, 0xec, 0xe1, 0xb3, 0x5f, 0x7c, 0xf8, 0xcc, 0x11, 0x2a, 0x2d, 0x17, + 0xcd, 0x11, 0xea, 0xdd, 0x87, 0xf6, 0x85, 0xe0, 0x44, 0xb5, 0x20, 0x1a, 0xc4, 0x14, 0x2b, 0x0d, + 0x4e, 0xed, 0xde, 0x17, 0x16, 0x94, 0xd5, 0xf7, 0xd1, 0x90, 0x7e, 0x5f, 0x0b, 0x0b, 0x7e, 0x9f, + 0x5d, 0x87, 0x52, 0x8a, 0x51, 0xa9, 0xa3, 0x48, 0x75, 0x66, 0x1c, 0x59, 0xbc, 0xca, 0x91, 0xf6, + 0xd5, 0x8e, 0x2c, 0x3d, 0xe7, 0xc8, 0xef, 0x42, 0x27, 0x0d, 0x06, 0xa1, 0x2b, 0x4f, 0x9c, 0x44, + 0x8c, 0xc3, 0xc0, 0x73, 0x25, 0x05, 0x52, 0x93, 0xb7, 0x35, 0xce, 0x35, 0x8c, 0x4b, 0x93, 0xa9, + 0x9b, 0x4a, 0x0a, 0xa5, 0x06, 0x57, 0x9d, 0xde, 0x01, 0x54, 0x8d, 0x75, 0x66, 0x63, 0xdd, 0x9a, + 0x1f, 0xeb, 0x85, 0x99, 0x58, 0x57, 0xb1, 0x54, 0x34, 0xb1, 0xd4, 0xdb, 0x86, 0xd6, 0x96, 0xce, + 0x45, 0xdb, 0x8f, 0x31, 0x1f, 0x62, 0x22, 0xf1, 0x26, 0x49, 0x22, 0xa2, 0x54, 0x27, 0x2b, 0xd3, + 0x45, 0x49, 0x22, 0x7e, 0x3e, 0x11, 0x32, 0xa5, 0x49, 0x6d, 0x6e, 0xba, 0xbd, 0xbf, 0x59, 0x50, + 0x52, 0xa3, 0x3b, 0x50, 0x1c, 0xc9, 0x63, 0x7d, 0x58, 0xb1, 0xc9, 0x36, 0xa1, 0x73, 0x9e, 0xff, + 0x1c, 0xca, 0xb9, 0xf4, 0xfd, 0xfa, 0xda, 0x4d, 0xe3, 0xf1, 0xd9, 0x15, 0xec, 0x2c, 0x64, 0xb9, + 0x6f, 0xd7, 0x57, 0xb3, 0xae, 0x42, 0x75, 0x38, 0xd5, 0x63, 0x6d, 0x1a, 0xbb, 0x98, 0x51, 0xda, + 0x9e, 0x38, 0x33, 0xc3, 0x2a, 0xc3, 0xa9, 0xd2, 0x5f, 0x87, 0x46, 0x22, 0x8e, 0x83, 0x38, 0xd2, + 0x63, 0x4a, 0x34, 0xa6, 0xb5, 0x6a, 0x32, 0xbe, 0x19, 0x50, 0x57, 0x5a, 0xd4, 0xdd, 0xac, 0x42, + 0xd9, 0x17, 0xa9, 0x1b, 0x84, 0xbd, 0x10, 0x60, 0x4b, 0x9d, 0x9d, 0x68, 0x10, 0xb3, 0xf7, 0xa1, + 0xae, 0x8f, 0x56, 0x7a, 0x36, 0x56, 0x3c, 0xd4, 0x5a, 0xbb, 0xb3, 0x3a, 0x53, 0x20, 0x3c, 0xce, + 0x3a, 0x1f, 0x8b, 0xf4, 0x24, 0xf6, 0x39, 0xa8, 0x21, 0x47, 0x67, 0x63, 0x41, 0x15, 0x80, 0x9a, + 0xe0, 0xdc, 0x1f, 0xfa, 0xb4, 0xee, 0x89, 0xb3, 0xde, 0xef, 0x4b, 0xd0, 0xdc, 0xd4, 0x1c, 0x4e, + 0xe6, 0x7c, 0x51, 0xc9, 0x30, 0xe3, 0xf9, 0xc2, 0x7c, 0xcf, 0x17, 0xaf, 0x66, 0x39, 0xfb, 0xc5, + 0x2c, 0x57, 0x7a, 0x8e, 0xe5, 0x6e, 0xe3, 0xc9, 0x4d, 0x85, 0x13, 0x06, 0xa3, 0x20, 0xd5, 0x3c, + 0x57, 0x43, 0xe4, 0x09, 0x02, 0x6c, 0x19, 0xea, 0x5e, 0x1c, 0xa9, 0x80, 0xf1, 0xce, 0x88, 0xea, + 0x9a, 0x3c, 0x0f, 0xb1, 0xf7, 0xa1, 0x2d, 0xd3, 0x38, 0x71, 0x8f, 0x85, 0x83, 0xde, 0x17, 0x91, + 0x4f, 0x8c, 0x97, 0x8b, 0x86, 0x43, 0x25, 0xde, 0x54, 0x52, 0xde, 0x92, 0x33, 0xfd, 0xd9, 0xa4, + 0x0e, 0xb3, 0x49, 0x5d, 0x45, 0x77, 0x3d, 0x63, 0x4a, 0x8c, 0xbd, 0x78, 0x34, 0x4e, 0x84, 0xc4, + 0xc5, 0x2b, 0xff, 0x35, 0xc8, 0x7f, 0x59, 0x7e, 0xdb, 0x3a, 0x97, 0xa3, 0xb3, 0x78, 0xdb, 0x9b, + 0x05, 0xd8, 0xeb, 0xb0, 0x98, 0x9f, 0x23, 0x14, 0x53, 0x11, 0x52, 0x85, 0x54, 0xe2, 0xf9, 0xc9, + 0x9f, 0x20, 0xce, 0xd6, 0xb3, 0x58, 0x21, 0x1e, 0x52, 0x55, 0x0a, 0xcb, 0xbe, 0x95, 0x05, 0x95, + 0x89, 0x0f, 0x0a, 0xb0, 0xf7, 0xa0, 0xed, 0xcb, 0xd4, 0xc9, 0xe7, 0xed, 0xf6, 0xfc, 0xbc, 0xdd, + 0xf4, 0x65, 0xba, 0x71, 0x9e, 0xba, 0xdf, 0x04, 0x90, 0x93, 0xbe, 0xa1, 0xd2, 0x0e, 0x51, 0xe9, + 0xcc, 0xe1, 0xd0, 0x5c, 0x2a, 0x27, 0x7d, 0xcd, 0xa5, 0xaf, 0xe1, 0xe1, 0x20, 0x9a, 0x71, 0x12, + 0xe1, 0xfa, 0x54, 0x46, 0x54, 0xf1, 0x28, 0x10, 0xc6, 0x85, 0xeb, 0x7f, 0x64, 0x57, 0xcb, 0x9d, + 0x8a, 0x4e, 0xc4, 0xbf, 0x29, 0xc0, 0xf5, 0xc3, 0x34, 0x11, 0xee, 0x48, 0x05, 0xe9, 0x91, 0x2b, + 0x87, 0xb4, 0xec, 0x37, 0xa1, 0xa2, 0x5d, 0x43, 0x21, 0x3a, 0xdf, 0x83, 0x46, 0x8d, 0xbd, 0x0a, + 0x2a, 0x4e, 0x9d, 0x54, 0x1a, 0x06, 0xa1, 0xfe, 0x91, 0x64, 0x37, 0x00, 0xe3, 0x14, 0x05, 0x8a, + 0x72, 0x4b, 0x22, 0xf2, 0x8f, 0x64, 0x96, 0xfc, 0xed, 0x5c, 0xf2, 0x7f, 0x0d, 0x1a, 0x44, 0xd4, + 0x98, 0x94, 0x52, 0x91, 0x50, 0x4e, 0xa8, 0xf1, 0x3a, 0x61, 0x1f, 0x10, 0x74, 0xa9, 0xdf, 0xcb, + 0x2f, 0xe7, 0x77, 0xde, 0x0a, 0x5d, 0x99, 0x3a, 0x93, 0xb1, 0x8f, 0xe1, 0x9e, 0x4a, 0x5e, 0x56, + 0x26, 0xe6, 0x65, 0xa4, 0xe2, 0x89, 0xec, 0x7d, 0x59, 0x80, 0xd6, 0xec, 0x46, 0x59, 0x0f, 0xec, + 0x28, 0x8e, 0xc7, 0xda, 0x1c, 0x59, 0x9e, 0xdc, 0x8f, 0xe3, 0xf1, 0xce, 0x02, 0x27, 0x19, 0xbb, + 0x0f, 0xa5, 0x30, 0xf6, 0xdc, 0x90, 0x0c, 0x50, 0x5f, 0x6b, 0x1a, 0xa5, 0x27, 0x08, 0xee, 0x2c, + 0x70, 0x25, 0x65, 0xff, 0x07, 0x05, 0xb9, 0xae, 0x79, 0x12, 0x32, 0xbb, 0xae, 0xef, 0x2c, 0xf0, + 0x82, 0x5c, 0x67, 0x77, 0xa1, 0x78, 0xec, 0x49, 0x4d, 0x85, 0x75, 0x23, 0xfe, 0x70, 0xeb, 0x70, + 0x67, 0x81, 0xa3, 0x84, 0xbd, 0x07, 0x4d, 0x2f, 0x8c, 0x27, 0xbe, 0xe3, 0x9f, 0x45, 0xee, 0x28, + 0xf0, 0x34, 0x03, 0x5e, 0x3f, 0x67, 0xdc, 0x78, 0xe2, 0x6f, 0x2b, 0xd9, 0xce, 0x02, 0x6f, 0x78, + 0xb9, 0x3e, 0x6e, 0xe3, 0xc4, 0x1f, 0xa8, 0xd4, 0x94, 0xdb, 0xc6, 0xce, 0xf6, 0x07, 0x38, 0x3f, + 0xc9, 0xd8, 0x0e, 0x30, 0xf7, 0xb3, 0x49, 0x22, 0x9c, 0x7e, 0x18, 0xf7, 0x1d, 0x13, 0x07, 0x15, + 0x1a, 0xd1, 0x35, 0x23, 0x36, 0x50, 0x63, 0x33, 0x8c, 0xfb, 0xda, 0x4e, 0x3b, 0x0b, 0xbc, 0xe3, + 0x5e, 0xc0, 0x36, 0x6b, 0x50, 0xd1, 0x44, 0xd0, 0x2b, 0x83, 0x8d, 0xb6, 0xea, 0xdd, 0x82, 0x12, + 0x99, 0x03, 0xdd, 0x8f, 0x31, 0x68, 0x6a, 0x3f, 0x8a, 0xc7, 0x7f, 0x17, 0xa1, 0x70, 0xb8, 0x8e, + 0x59, 0x5a, 0x44, 0xfe, 0x38, 0x0e, 0x74, 0x9e, 0xaa, 0xf1, 0xac, 0x8f, 0xe5, 0xa1, 0x22, 0x76, + 0x7d, 0x95, 0xd2, 0x3d, 0xc4, 0xfb, 0x13, 0x6f, 0x28, 0x52, 0x9d, 0x00, 0x75, 0x0f, 0xf1, 0x71, + 0x22, 0x06, 0xc1, 0xa9, 0x8e, 0x33, 0xdd, 0x53, 0x94, 0xa9, 0xb8, 0xca, 0x0b, 0x5d, 0xa9, 0x52, + 0x7a, 0x0d, 0x29, 0x93, 0xc0, 0x2d, 0xc4, 0x30, 0xe3, 0x49, 0xa9, 0xc2, 0xab, 0xc6, 0xb1, 0x89, + 0x88, 0xeb, 0x85, 0x64, 0x8c, 0x1a, 0xc7, 0x26, 0xb2, 0xa6, 0xeb, 0x79, 0x42, 0x4a, 0xe2, 0xe5, + 0xaa, 0xba, 0xbb, 0x29, 0x04, 0xa9, 0xf9, 0x21, 0x2c, 0x4a, 0xe1, 0x25, 0x22, 0x75, 0x72, 0x5a, + 0x35, 0xd2, 0x6a, 0x2b, 0xc1, 0x46, 0xa6, 0xbb, 0x02, 0x9d, 0x41, 0x9c, 0x78, 0xc2, 0x41, 0x63, + 0x38, 0x32, 0x3d, 0x0b, 0x85, 0x66, 0xc1, 0x16, 0xe1, 0x07, 0x6e, 0x7a, 0x72, 0x88, 0x28, 0xbb, + 0x07, 0x2d, 0x29, 0x85, 0x33, 0x1c, 0xd1, 0x7c, 0x98, 0x49, 0x14, 0x31, 0xd6, 0xa5, 0x14, 0x7b, + 0x23, 0x9c, 0x6c, 0xd7, 0xc7, 0x23, 0x99, 0xc4, 0xa1, 0x70, 0xdc, 0x44, 0xdd, 0x1b, 0x6b, 0xbc, + 0x82, 0xfd, 0x8d, 0x44, 0xe5, 0x82, 0xd3, 0x54, 0x24, 0x91, 0x1b, 0xe2, 0xe0, 0x26, 0x49, 0xc1, + 0x40, 0xbb, 0x3e, 0x5b, 0x85, 0x6b, 0x71, 0xff, 0x67, 0xc2, 0x4b, 0x9d, 0x30, 0xf6, 0x86, 0x59, + 0xf5, 0xdf, 0xa2, 0xd5, 0x2c, 0x2a, 0xd1, 0x93, 0xd8, 0x1b, 0x9a, 0xd2, 0x1f, 0xcd, 0x69, 0x4e, + 0x64, 0x3c, 0x14, 0x8a, 0xe5, 0xd0, 0x9c, 0xfa, 0xd4, 0x21, 0x86, 0x7e, 0x1d, 0x27, 0xf1, 0x34, + 0xf0, 0x45, 0x42, 0xb7, 0xa2, 0x1a, 0xcf, 0xfa, 0xbd, 0xcf, 0x2d, 0x28, 0x7e, 0xb8, 0x75, 0xf8, + 0x22, 0xdf, 0x6b, 0x1f, 0x17, 0xe6, 0xf8, 0xb8, 0x78, 0xb5, 0x8f, 0xed, 0x4b, 0x7c, 0x7c, 0x1f, + 0x5a, 0xe3, 0x44, 0xf8, 0x62, 0x10, 0x44, 0xc2, 0x77, 0xd0, 0xb9, 0x2a, 0x12, 0x9a, 0xe7, 0xe8, + 0x86, 0x17, 0x62, 0x7d, 0xe7, 0x21, 0x10, 0xa5, 0x81, 0x1b, 0x4a, 0x3a, 0x1a, 0x3a, 0x2e, 0xda, + 0x39, 0x1c, 0x83, 0xbf, 0xf7, 0x17, 0x0b, 0x3a, 0x17, 0x8f, 0xc7, 0xb7, 0xbf, 0xaf, 0xd7, 0xa0, + 0xe1, 0x7a, 0x5e, 0x3c, 0x89, 0x52, 0x87, 0x68, 0x56, 0xed, 0xaa, 0xae, 0xb1, 0x7d, 0x64, 0xdb, + 0xdb, 0x00, 0xf2, 0xc4, 0x4d, 0x84, 0x2a, 0x29, 0xd4, 0x6e, 0x6a, 0x0a, 0xc1, 0xe2, 0xe5, 0xd7, + 0x16, 0x94, 0x37, 0xd5, 0x4a, 0xbe, 0xd9, 0x89, 0x2c, 0xce, 0x39, 0x91, 0xf6, 0x9c, 0x5d, 0x95, + 0xae, 0xde, 0x55, 0xf9, 0xf9, 0x5d, 0x61, 0x35, 0xda, 0xc8, 0x13, 0x1c, 0x7b, 0x90, 0x7d, 0xc5, + 0xd2, 0x85, 0xa0, 0x26, 0x28, 0xb5, 0xf2, 0xec, 0xab, 0xf7, 0xa0, 0x69, 0x62, 0x4d, 0xd9, 0x43, + 0x99, 0xba, 0x61, 0x40, 0x32, 0xc8, 0xdb, 0x50, 0x72, 0xd3, 0x34, 0x31, 0x77, 0x9c, 0xbb, 0x97, + 0x51, 0xea, 0xea, 0x06, 0x6a, 0x3c, 0x8e, 0xd2, 0xe4, 0x8c, 0x2b, 0xed, 0xa5, 0x77, 0x01, 0xce, + 0x41, 0xa4, 0x08, 0x53, 0xb6, 0xd7, 0x38, 0x36, 0xb1, 0xe0, 0x9f, 0xba, 0xe1, 0xc4, 0x7c, 0x53, + 0x75, 0xbe, 0x5f, 0x78, 0xd7, 0xea, 0xdd, 0x01, 0x1b, 0xa9, 0x57, 0xd9, 0x70, 0x14, 0xa7, 0xe6, + 0x2a, 0xac, 0x7b, 0x18, 0x4a, 0x2d, 0x53, 0x3f, 0xca, 0x71, 0x1c, 0x49, 0x3c, 0xfa, 0x25, 0x55, + 0xf8, 0x5a, 0xb3, 0x49, 0x86, 0x0a, 0x5d, 0xae, 0x64, 0xff, 0x65, 0x19, 0xf9, 0x4d, 0x5e, 0x93, + 0x2e, 0x3c, 0x42, 0x94, 0xbe, 0xd1, 0x23, 0x44, 0xef, 0x1a, 0x2c, 0x6e, 0x9d, 0x08, 0x6f, 0xb8, + 0xe1, 0x8f, 0x82, 0x48, 0x97, 0xc2, 0xbd, 0x5f, 0x58, 0xc0, 0xf2, 0xe8, 0xcb, 0x6c, 0xf0, 0xc1, + 0x4c, 0x1a, 0x40, 0xb7, 0xeb, 0x27, 0x3e, 0x4e, 0x68, 0x16, 0x84, 0x0f, 0x61, 0xf1, 0xc4, 0x95, + 0xce, 0x58, 0x44, 0x7e, 0x10, 0x1d, 0x3b, 0x2e, 0x7e, 0x89, 0x76, 0x5d, 0xe5, 0xed, 0x13, 0x57, + 0x1e, 0x28, 0x9c, 0x16, 0xd0, 0xfb, 0xab, 0x05, 0xb7, 0x1f, 0x6b, 0x0a, 0xd4, 0xc7, 0x96, 0x0b, + 0x8c, 0x3e, 0x61, 0x8a, 0xf7, 0x4b, 0x0a, 0x5c, 0xeb, 0xa5, 0x0a, 0xdc, 0xbb, 0x50, 0xd7, 0xb4, + 0x9a, 0x8b, 0x41, 0x50, 0xd0, 0xbe, 0x2e, 0x80, 0x12, 0xf5, 0x4d, 0xa5, 0xa1, 0x8e, 0x54, 0x5d, + 0x63, 0xa4, 0x72, 0x1f, 0x5a, 0x5e, 0x1c, 0xa5, 0x22, 0x4a, 0x9d, 0x50, 0x44, 0xc7, 0xe9, 0x89, + 0xae, 0xf6, 0x9b, 0x1a, 0x7d, 0x42, 0x60, 0x6f, 0x19, 0xee, 0xcc, 0xdb, 0x8c, 0x32, 0x74, 0xef, + 0x0f, 0x16, 0x2c, 0x5d, 0x50, 0x39, 0x74, 0xa7, 0xdf, 0xe2, 0x66, 0x9f, 0xdf, 0x49, 0xf1, 0xb2, + 0x9d, 0xdc, 0x86, 0x5b, 0x97, 0x2e, 0x53, 0x6f, 0xe3, 0x57, 0x05, 0xf5, 0x02, 0xe2, 0xbb, 0xa9, + 0xcb, 0x1e, 0x9a, 0x10, 0x56, 0x8f, 0x1f, 0x59, 0x51, 0xb4, 0xad, 0x5f, 0x32, 0xa8, 0x40, 0xd7, + 0xa1, 0xfc, 0x0e, 0xd4, 0xe9, 0x61, 0xf4, 0x38, 0x89, 0x27, 0x63, 0xa4, 0x1b, 0x1c, 0x71, 0xe3, + 0xe2, 0x88, 0x0f, 0x51, 0xca, 0xe9, 0x09, 0x95, 0x9a, 0x52, 0x95, 0xba, 0xe8, 0xa1, 0xc0, 0xa7, + 0x4d, 0x15, 0x55, 0x15, 0x2c, 0x76, 0x69, 0xcb, 0x89, 0x90, 0x71, 0x38, 0x15, 0xb9, 0x7a, 0x17, + 0x0c, 0xa4, 0x6a, 0xe1, 0x91, 0x7b, 0x8a, 0x32, 0xe5, 0xb4, 0xd2, 0xc8, 0x3d, 0xd5, 0x70, 0x10, + 0x21, 0x5c, 0xd2, 0x70, 0x10, 0x1d, 0xe1, 0x0a, 0xe9, 0xe5, 0x3a, 0x3b, 0x6d, 0x15, 0x7d, 0xda, + 0x72, 0x4f, 0x89, 0xe6, 0xb4, 0xd5, 0x47, 0xe7, 0x9d, 0xde, 0xdf, 0x2d, 0x68, 0xce, 0xac, 0xff, + 0xb2, 0x6a, 0x8b, 0xfd, 0x00, 0xda, 0xe7, 0x0f, 0x40, 0xea, 0x52, 0x53, 0xb8, 0xc2, 0x6a, 0xcd, + 0xec, 0x35, 0x88, 0xae, 0x08, 0xe7, 0x4b, 0x2e, 0xe6, 0x97, 0x3c, 0x67, 0x83, 0x0f, 0xa0, 0x8d, + 0xda, 0x79, 0xe3, 0xa8, 0x9d, 0x36, 0xd5, 0xd1, 0x37, 0xf6, 0xb9, 0x09, 0x65, 0x1d, 0x0a, 0xea, + 0x15, 0x4e, 0xf7, 0x7a, 0x5f, 0xd9, 0xd0, 0xc8, 0xaf, 0x26, 0xf7, 0x4c, 0x68, 0xcd, 0x3c, 0x13, + 0x9a, 0x8d, 0x16, 0x72, 0x1b, 0x7d, 0x08, 0x8b, 0xd1, 0x64, 0xd4, 0x17, 0x89, 0x13, 0x0f, 0x1c, + 0x11, 0xa5, 0x49, 0x20, 0xd4, 0xaa, 0x8b, 0xbc, 0xad, 0x04, 0x4f, 0x07, 0x8f, 0x15, 0x9c, 0xdb, + 0x96, 0x7d, 0xf9, 0xb6, 0x4a, 0xf9, 0x6d, 0x5d, 0xf0, 0x77, 0xf9, 0x39, 0x7f, 0xdf, 0x82, 0x9a, + 0x7e, 0xad, 0x08, 0x7c, 0x72, 0x5f, 0x91, 0x57, 0x15, 0x70, 0xf1, 0xb2, 0x5f, 0x9d, 0xcf, 0xd2, + 0xb5, 0x4b, 0x9e, 0x79, 0xce, 0x9f, 0x0c, 0xff, 0x1f, 0x6c, 0xba, 0x04, 0xd5, 0x29, 0x38, 0x3a, + 0x79, 0xd2, 0xa6, 0xcb, 0x0e, 0x49, 0x71, 0xba, 0x40, 0x3a, 0x18, 0x24, 0x54, 0x0b, 0x56, 0x79, + 0x39, 0x90, 0xf4, 0x1f, 0xc6, 0xab, 0x50, 0x55, 0x57, 0x2e, 0x5d, 0x07, 0x16, 0x79, 0x85, 0xfa, + 0xbb, 0x7e, 0xce, 0x19, 0xad, 0xbc, 0x33, 0xd8, 0xf7, 0x60, 0x09, 0x6d, 0xd4, 0x17, 0xc7, 0x64, + 0x29, 0x27, 0x88, 0x1c, 0x5f, 0x0c, 0xdc, 0x49, 0x98, 0x3a, 0xde, 0x80, 0x2a, 0x3f, 0x9b, 0xdf, + 0x18, 0x05, 0xd1, 0x26, 0x2a, 0x1c, 0xc9, 0xdd, 0x68, 0x5b, 0x49, 0xb7, 0x06, 0xc4, 0x6f, 0xf4, + 0xca, 0x1e, 0x0f, 0x06, 0x52, 0xa4, 0x54, 0x06, 0xda, 0xbc, 0x4e, 0xd8, 0x53, 0x82, 0xce, 0x55, + 0xf4, 0xb7, 0x17, 0x73, 0x2a, 0x8a, 0x11, 0x2e, 0xbd, 0x03, 0xb2, 0x97, 0xbc, 0x03, 0x16, 0x82, + 0x69, 0xef, 0x97, 0x16, 0x2c, 0xe6, 0xef, 0xbf, 0x8f, 0x4d, 0xf2, 0x3c, 0x71, 0xc7, 0x63, 0x11, + 0x39, 0xae, 0x79, 0x27, 0xab, 0x2a, 0x60, 0x83, 0xde, 0x6f, 0x28, 0x03, 0x39, 0x5e, 0xec, 0x1b, + 0x4e, 0xab, 0x11, 0xb2, 0x15, 0xfb, 0x98, 0xbc, 0xd4, 0x5f, 0x4f, 0xce, 0x48, 0x48, 0x89, 0xd7, + 0x26, 0x45, 0xe0, 0x0d, 0x02, 0x3f, 0x56, 0xd8, 0x0c, 0x81, 0xd8, 0xe6, 0xae, 0x4c, 0x04, 0xf2, + 0xf0, 0x87, 0xd0, 0xbe, 0xb0, 0x72, 0x56, 0x87, 0xca, 0x8f, 0xf7, 0xf7, 0xf6, 0x9f, 0xfe, 0x64, + 0xbf, 0xb3, 0xc0, 0x2a, 0x50, 0x7c, 0xf2, 0xe9, 0xa3, 0x8e, 0xc5, 0x00, 0xca, 0x87, 0xfb, 0x1b, + 0x07, 0x07, 0x3f, 0xed, 0x14, 0x58, 0x15, 0xec, 0x4f, 0x0f, 0x8f, 0xb6, 0x3b, 0xc5, 0x87, 0xb7, + 0xa1, 0x9e, 0x23, 0x05, 0x56, 0x86, 0xc2, 0x27, 0x6f, 0x75, 0x16, 0xe8, 0x77, 0xad, 0x63, 0x3d, + 0xbc, 0x0b, 0x55, 0x13, 0x16, 0x38, 0xc1, 0xb6, 0x08, 0x45, 0x2a, 0xd4, 0xac, 0x07, 0x93, 0xb4, + 0x63, 0xad, 0xfd, 0x16, 0x4b, 0x3e, 0x32, 0x05, 0x7b, 0x0f, 0xf4, 0x7f, 0x6b, 0x2c, 0xa3, 0xc4, + 0x99, 0x97, 0xac, 0xa5, 0x9b, 0x17, 0x61, 0xcd, 0xc7, 0x0b, 0x6f, 0x5a, 0xec, 0x00, 0xae, 0x51, + 0x66, 0xcf, 0xe7, 0xd7, 0xa7, 0x63, 0xf6, 0x6a, 0xe6, 0x9d, 0x8b, 0xc5, 0xc0, 0xd2, 0xd2, 0x65, + 0xa2, 0xf3, 0x19, 0xd7, 0xfe, 0x64, 0x41, 0xfb, 0x42, 0x16, 0x60, 0x9f, 0x42, 0x45, 0x27, 0x46, + 0x76, 0x3f, 0xab, 0x12, 0xae, 0x4a, 0xe0, 0x4b, 0x0f, 0x5e, 0xa4, 0x66, 0xbe, 0xc8, 0x7e, 0x04, + 0xb6, 0x74, 0xa7, 0x82, 0xf5, 0xe6, 0x8c, 0xc8, 0x65, 0xca, 0xa5, 0x7b, 0x57, 0xea, 0x98, 0x29, + 0x37, 0x1f, 0xfc, 0xe3, 0x8f, 0x55, 0xeb, 0xf3, 0xaf, 0xef, 0x58, 0x5f, 0x7e, 0x7d, 0xc7, 0xfa, + 0xe7, 0xd7, 0x77, 0xac, 0xdf, 0xfd, 0xeb, 0xce, 0x02, 0x74, 0xe2, 0xe4, 0x78, 0x35, 0x0d, 0x86, + 0xd3, 0xd5, 0xe1, 0x94, 0xfe, 0x64, 0xec, 0x97, 0xe9, 0x67, 0xfd, 0x3f, 0x01, 0x00, 0x00, 0xff, + 0xff, 0x69, 0x00, 0x2a, 0x91, 0xe8, 0x1c, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -3457,6 +3467,18 @@ func (m *BackupMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.IsTxnKv { + i-- + if m.IsTxnKv { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa8 + } if len(m.NewCollationsEnabled) > 0 { i -= len(m.NewCollationsEnabled) copy(dAtA[i:], m.NewCollationsEnabled) @@ -5832,6 +5854,9 @@ func (m *BackupMeta) Size() (n int) { if l > 0 { n += 2 + l + sovBrpb(uint64(l)) } + if m.IsTxnKv { + n += 3 + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -7458,6 +7483,26 @@ func (m *BackupMeta) Unmarshal(dAtA []byte) error { } m.NewCollationsEnabled = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 21: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsTxnKv", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsTxnKv = bool(v != 0) default: iNdEx = preIndex skippy, err := skipBrpb(dAtA[iNdEx:]) diff --git a/proto/brpb.proto b/proto/brpb.proto index 3ac4acf..2f01829 100644 --- a/proto/brpb.proto +++ b/proto/brpb.proto @@ -77,6 +77,10 @@ message BackupMeta { // new_collations_enabled specifies the config `new_collations_enabled_on_first_bootstrap` in tidb. string new_collations_enabled = 20; + + // If in txn kv mode, `schemas` will be ignored, the backup data's range is as same as normal backup. + bool is_txn_kv = 21; + } message File { diff --git a/scripts/proto.lock b/scripts/proto.lock index 3b9f396..3deecc3 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -303,6 +303,11 @@ "id": 20, "name": "new_collations_enabled", "type": "string" + }, + { + "id": 21, + "name": "is_txn_kv", + "type": "bool" } ], "reserved_ids": [ -- Gitee From 4e35b5c1adb28ff41a75664b8505fb1b0cda1baa Mon Sep 17 00:00:00 2001 From: Xinye Tao Date: Mon, 27 Mar 2023 14:21:41 +0800 Subject: [PATCH 28/44] update (#1062) Signed-off-by: tabokie Co-authored-by: disksing --- pkg/kvrpcpb/kvrpcpb.pb.go | 8 +- pkg/raft_serverpb/raft_serverpb.pb.go | 651 ++++++++++++++++++++------ pkg/tracepb/tracepb.pb.go | 1 - proto/raft_serverpb.proto | 9 + scripts/proto.lock | 30 ++ 5 files changed, 554 insertions(+), 145 deletions(-) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index f2452aa..de4d128 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -1888,10 +1888,9 @@ type CheckTxnStatusResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Error *KeyError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Three kinds of transaction status: - // - // locked: lock_ttl > 0 - // committed: commit_version > 0 - // rollbacked: lock_ttl = 0 && commit_version = 0 + // locked: lock_ttl > 0 + // committed: commit_version > 0 + // rollbacked: lock_ttl = 0 && commit_version = 0 LockTtl uint64 `protobuf:"varint,3,opt,name=lock_ttl,json=lockTtl,proto3" json:"lock_ttl,omitempty"` CommitVersion uint64 `protobuf:"varint,4,opt,name=commit_version,json=commitVersion,proto3" json:"commit_version,omitempty"` // The action performed by TiKV (and why if the action is to rollback). @@ -9474,7 +9473,6 @@ func (m *RawChecksumResponse) GetTotalBytes() uint64 { type CompactError struct { // Types that are valid to be assigned to Error: - // // *CompactError_ErrInvalidStartKey // *CompactError_ErrPhysicalTableNotExist // *CompactError_ErrCompactInProgress diff --git a/pkg/raft_serverpb/raft_serverpb.pb.go b/pkg/raft_serverpb/raft_serverpb.pb.go index 85062f2..ee704f5 100644 --- a/pkg/raft_serverpb/raft_serverpb.pb.go +++ b/pkg/raft_serverpb/raft_serverpb.pb.go @@ -1792,6 +1792,77 @@ func (m *RegionSequenceNumberRelation) GetRegionState() *RegionLocalState { return nil } +type AvailabilityContext struct { + FromRegionId uint64 `protobuf:"varint,1,opt,name=from_region_id,json=fromRegionId,proto3" json:"from_region_id,omitempty"` + FromRegionEpoch *metapb.RegionEpoch `protobuf:"bytes,2,opt,name=from_region_epoch,json=fromRegionEpoch,proto3" json:"from_region_epoch,omitempty"` + Unavailable bool `protobuf:"varint,3,opt,name=unavailable,proto3" json:"unavailable,omitempty"` + Trimmed bool `protobuf:"varint,4,opt,name=trimmed,proto3" json:"trimmed,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AvailabilityContext) Reset() { *m = AvailabilityContext{} } +func (m *AvailabilityContext) String() string { return proto.CompactTextString(m) } +func (*AvailabilityContext) ProtoMessage() {} +func (*AvailabilityContext) Descriptor() ([]byte, []int) { + return fileDescriptor_130ebc2f2c37a342, []int{24} +} +func (m *AvailabilityContext) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AvailabilityContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AvailabilityContext.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AvailabilityContext) XXX_Merge(src proto.Message) { + xxx_messageInfo_AvailabilityContext.Merge(m, src) +} +func (m *AvailabilityContext) XXX_Size() int { + return m.Size() +} +func (m *AvailabilityContext) XXX_DiscardUnknown() { + xxx_messageInfo_AvailabilityContext.DiscardUnknown(m) +} + +var xxx_messageInfo_AvailabilityContext proto.InternalMessageInfo + +func (m *AvailabilityContext) GetFromRegionId() uint64 { + if m != nil { + return m.FromRegionId + } + return 0 +} + +func (m *AvailabilityContext) GetFromRegionEpoch() *metapb.RegionEpoch { + if m != nil { + return m.FromRegionEpoch + } + return nil +} + +func (m *AvailabilityContext) GetUnavailable() bool { + if m != nil { + return m.Unavailable + } + return false +} + +func (m *AvailabilityContext) GetTrimmed() bool { + if m != nil { + return m.Trimmed + } + return false +} + type FlushMemtable struct { RegionId uint64 `protobuf:"varint,1,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1803,7 +1874,7 @@ func (m *FlushMemtable) Reset() { *m = FlushMemtable{} } func (m *FlushMemtable) String() string { return proto.CompactTextString(m) } func (*FlushMemtable) ProtoMessage() {} func (*FlushMemtable) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{24} + return fileDescriptor_130ebc2f2c37a342, []int{25} } func (m *FlushMemtable) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1858,7 +1929,7 @@ func (m *CheckGcPeer) Reset() { *m = CheckGcPeer{} } func (m *CheckGcPeer) String() string { return proto.CompactTextString(m) } func (*CheckGcPeer) ProtoMessage() {} func (*CheckGcPeer) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{25} + return fileDescriptor_130ebc2f2c37a342, []int{26} } func (m *CheckGcPeer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1925,19 +1996,21 @@ type ExtraMessage struct { CheckPeers []*metapb.Peer `protobuf:"bytes,3,rep,name=check_peers,json=checkPeers,proto3" json:"check_peers,omitempty"` WaitData bool `protobuf:"varint,4,opt,name=wait_data,json=waitData,proto3" json:"wait_data,omitempty"` // Flag for forcely wake up hibernate regions if true. - ForcelyAwaken bool `protobuf:"varint,5,opt,name=forcely_awaken,json=forcelyAwaken,proto3" json:"forcely_awaken,omitempty"` - CheckGcPeer *CheckGcPeer `protobuf:"bytes,6,opt,name=check_gc_peer,json=checkGcPeer,proto3" json:"check_gc_peer,omitempty"` - FlushMemtable *FlushMemtable `protobuf:"bytes,7,opt,name=flush_memtable,json=flushMemtable,proto3" json:"flush_memtable,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ForcelyAwaken bool `protobuf:"varint,5,opt,name=forcely_awaken,json=forcelyAwaken,proto3" json:"forcely_awaken,omitempty"` + CheckGcPeer *CheckGcPeer `protobuf:"bytes,6,opt,name=check_gc_peer,json=checkGcPeer,proto3" json:"check_gc_peer,omitempty"` + FlushMemtable *FlushMemtable `protobuf:"bytes,7,opt,name=flush_memtable,json=flushMemtable,proto3" json:"flush_memtable,omitempty"` + // Used by `MsgAvailabilityRequest` and `MsgAvailabilityResponse` in v2. + AvailabilityContext *AvailabilityContext `protobuf:"bytes,8,opt,name=availability_context,json=availabilityContext,proto3" json:"availability_context,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ExtraMessage) Reset() { *m = ExtraMessage{} } func (m *ExtraMessage) String() string { return proto.CompactTextString(m) } func (*ExtraMessage) ProtoMessage() {} func (*ExtraMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_130ebc2f2c37a342, []int{26} + return fileDescriptor_130ebc2f2c37a342, []int{27} } func (m *ExtraMessage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2015,6 +2088,13 @@ func (m *ExtraMessage) GetFlushMemtable() *FlushMemtable { return nil } +func (m *ExtraMessage) GetAvailabilityContext() *AvailabilityContext { + if m != nil { + return m.AvailabilityContext + } + return nil +} + func init() { proto.RegisterEnum("raft_serverpb.PeerState", PeerState_name, PeerState_value) proto.RegisterEnum("raft_serverpb.ExtraMessageType", ExtraMessageType_name, ExtraMessageType_value) @@ -2042,6 +2122,7 @@ func init() { proto.RegisterType((*MergedRecord)(nil), "raft_serverpb.MergedRecord") proto.RegisterType((*RegionLocalState)(nil), "raft_serverpb.RegionLocalState") proto.RegisterType((*RegionSequenceNumberRelation)(nil), "raft_serverpb.RegionSequenceNumberRelation") + proto.RegisterType((*AvailabilityContext)(nil), "raft_serverpb.AvailabilityContext") proto.RegisterType((*FlushMemtable)(nil), "raft_serverpb.FlushMemtable") proto.RegisterType((*CheckGcPeer)(nil), "raft_serverpb.CheckGcPeer") proto.RegisterType((*ExtraMessage)(nil), "raft_serverpb.ExtraMessage") @@ -2050,136 +2131,141 @@ func init() { func init() { proto.RegisterFile("raft_serverpb.proto", fileDescriptor_130ebc2f2c37a342) } var fileDescriptor_130ebc2f2c37a342 = []byte{ - // 2052 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0xcd, 0x6f, 0xdb, 0xc8, - 0x15, 0x37, 0x25, 0x59, 0x12, 0x9f, 0x3e, 0xcc, 0x8c, 0xe3, 0x58, 0xb1, 0x37, 0xb6, 0xc3, 0x6c, - 0xbc, 0xde, 0x6c, 0xeb, 0x60, 0xbd, 0xee, 0x76, 0xb1, 0x05, 0x82, 0xda, 0x4e, 0x52, 0xbb, 0x5b, - 0x05, 0x01, 0xed, 0x24, 0xe8, 0x89, 0x18, 0x93, 0x23, 0x9a, 0x15, 0xbf, 0x76, 0x66, 0xa4, 0x44, - 0x45, 0xff, 0x8b, 0x5e, 0xf2, 0x27, 0xf4, 0x0f, 0xe9, 0xa1, 0x68, 0x2f, 0x2d, 0xd0, 0x43, 0x8f, - 0x45, 0x7a, 0xe9, 0xb5, 0xc7, 0xde, 0x8a, 0xf9, 0xa0, 0x44, 0x2a, 0x8a, 0x17, 0xcd, 0x49, 0x33, - 0xef, 0xfd, 0xde, 0xcc, 0xfb, 0x9e, 0x47, 0xc1, 0x2a, 0xc5, 0x03, 0xee, 0x32, 0x42, 0xc7, 0x84, - 0x66, 0x97, 0xfb, 0x19, 0x4d, 0x79, 0x8a, 0x3a, 0x25, 0xe2, 0x46, 0x87, 0x88, 0x7d, 0xce, 0xdd, - 0x68, 0xc7, 0x84, 0xe3, 0xe9, 0xae, 0x33, 0x1c, 0xd3, 0xcc, 0x9b, 0x6e, 0x2d, 0x3f, 0x64, 0x43, - 0x77, 0xc4, 0x70, 0x40, 0x34, 0x65, 0x85, 0x8e, 0x18, 0x97, 0x4b, 0x45, 0xb0, 0xff, 0x5b, 0x85, - 0x96, 0x83, 0x07, 0xbc, 0x4f, 0x98, 0x80, 0xa1, 0x4d, 0x30, 0x29, 0x09, 0xc2, 0x34, 0x71, 0x43, - 0xbf, 0x67, 0xec, 0x18, 0x7b, 0x35, 0xa7, 0xa9, 0x08, 0x67, 0x3e, 0xfa, 0x1c, 0xcc, 0x01, 0x4d, - 0x63, 0x37, 0x23, 0x84, 0xf6, 0x2a, 0x3b, 0xc6, 0x5e, 0xeb, 0xa0, 0xbd, 0xaf, 0x15, 0x78, 0x4e, - 0x08, 0x75, 0x9a, 0x82, 0x2d, 0x56, 0xe8, 0x3e, 0x34, 0x78, 0xaa, 0x80, 0xd5, 0x05, 0xc0, 0x3a, - 0x4f, 0x25, 0xec, 0x01, 0x34, 0x62, 0x75, 0x73, 0xaf, 0x26, 0x61, 0xd6, 0x7e, 0x6e, 0x9f, 0xd6, - 0xc8, 0xc9, 0x01, 0xe8, 0x6b, 0x68, 0x6b, 0xd5, 0x48, 0x96, 0x7a, 0x57, 0xbd, 0x65, 0x29, 0xb0, - 0x9a, 0x9f, 0xeb, 0x48, 0xde, 0x13, 0xc1, 0x72, 0x5a, 0x74, 0xb6, 0x41, 0x77, 0xa1, 0x1d, 0x32, - 0x97, 0xa7, 0xf1, 0x25, 0xe3, 0x69, 0x42, 0x7a, 0xf5, 0x1d, 0x63, 0xaf, 0xe9, 0xb4, 0x42, 0x76, - 0x91, 0x93, 0x84, 0xd5, 0x8c, 0x63, 0xca, 0xdd, 0x21, 0x99, 0xf4, 0x1a, 0x3b, 0xc6, 0x5e, 0xdb, - 0x69, 0x4a, 0xc2, 0x77, 0x64, 0x82, 0xd6, 0xa1, 0x41, 0x12, 0x5f, 0xb2, 0x9a, 0x92, 0x55, 0x27, - 0x89, 0x2f, 0x18, 0x5f, 0x42, 0x3b, 0x26, 0x34, 0x20, 0x2e, 0xc7, 0x34, 0x20, 0xbc, 0x67, 0x4a, - 0x85, 0xba, 0x65, 0x85, 0x9c, 0x96, 0xc4, 0x5c, 0x48, 0x08, 0xfa, 0x06, 0x4c, 0xf2, 0x86, 0x53, - 0xec, 0xc6, 0x2c, 0xe8, 0x81, 0xc4, 0x6f, 0xee, 0x97, 0xa3, 0xfe, 0x44, 0xf0, 0x73, 0xe3, 0x9b, - 0x12, 0xdd, 0x67, 0x81, 0x50, 0x51, 0x49, 0x7a, 0xfc, 0x4d, 0xaf, 0xa5, 0x54, 0x94, 0x84, 0x13, - 0xfe, 0x06, 0x1d, 0x02, 0xcc, 0x42, 0xdd, 0x6b, 0xef, 0x18, 0x7b, 0xdd, 0x83, 0xb5, 0xfd, 0x42, - 0xf4, 0x1f, 0x87, 0x6c, 0xf8, 0x42, 0x9e, 0x68, 0xfa, 0xf9, 0xd2, 0x7e, 0x04, 0x48, 0x84, 0xfe, - 0x82, 0x8e, 0x12, 0x0f, 0x73, 0xe2, 0x9f, 0x73, 0xcc, 0x09, 0xba, 0x09, 0xcb, 0x61, 0xe2, 0x93, - 0x37, 0x3a, 0xfa, 0x6a, 0x83, 0x10, 0xd4, 0x38, 0xa1, 0xb1, 0x8c, 0x7a, 0xcd, 0x91, 0x6b, 0xfb, - 0x39, 0x74, 0xcf, 0x13, 0x9c, 0xb1, 0xab, 0x94, 0x9f, 0x3c, 0x7d, 0x1a, 0x46, 0x04, 0x75, 0xa1, - 0xe2, 0x0d, 0xa4, 0xa0, 0xe9, 0x54, 0xbc, 0x81, 0x90, 0x62, 0xe1, 0x6f, 0x49, 0x2e, 0x25, 0xd6, - 0x68, 0x03, 0x9a, 0xde, 0x15, 0xf1, 0x86, 0x6c, 0x14, 0xcb, 0xd4, 0xe8, 0x38, 0xd3, 0xbd, 0xfd, - 0x77, 0x03, 0xda, 0xf9, 0x91, 0x7d, 0xc2, 0x31, 0xfa, 0x06, 0x9a, 0xde, 0xc0, 0x1d, 0x84, 0x11, - 0x61, 0x3d, 0x63, 0xa7, 0xba, 0xd7, 0x3a, 0xb8, 0x33, 0xe7, 0xae, 0xb2, 0x06, 0x4e, 0xc3, 0x1b, - 0x88, 0x5f, 0x86, 0xb6, 0xa1, 0x35, 0x48, 0xa9, 0x7b, 0x89, 0x23, 0x9c, 0x78, 0x4a, 0x83, 0xa6, - 0x03, 0x83, 0x94, 0x1e, 0x2b, 0x4a, 0x0e, 0x78, 0x1d, 0xf2, 0x84, 0x30, 0x26, 0x55, 0x51, 0x80, - 0x57, 0x8a, 0x22, 0x1c, 0x21, 0x73, 0x40, 0x66, 0x66, 0xcd, 0x51, 0x1b, 0x74, 0x00, 0x6b, 0x01, - 0x49, 0x08, 0xc5, 0x9c, 0xb8, 0xfe, 0x88, 0x62, 0x2e, 0x12, 0x92, 0x11, 0x4f, 0xa6, 0x63, 0xcd, - 0x59, 0xcd, 0x99, 0x8f, 0x35, 0xef, 0x9c, 0x78, 0xf6, 0xaf, 0xa1, 0x33, 0x55, 0xf3, 0x6a, 0x94, - 0x0c, 0xd1, 0xe1, 0x2c, 0xed, 0x0d, 0x99, 0x04, 0x1b, 0x73, 0x56, 0x15, 0x4a, 0x72, 0x56, 0x00, - 0x08, 0x6a, 0x3e, 0xe6, 0x58, 0xda, 0xd2, 0x76, 0xe4, 0xda, 0xae, 0x43, 0xed, 0x71, 0x9a, 0x10, - 0xfb, 0xad, 0x01, 0xb7, 0x2e, 0xf0, 0x65, 0x44, 0x78, 0x7e, 0x93, 0x70, 0x83, 0xf4, 0xe1, 0x26, - 0x98, 0xc2, 0x81, 0xae, 0x8c, 0x84, 0x2e, 0x69, 0x41, 0x38, 0x17, 0xd1, 0xc8, 0x99, 0x09, 0x8e, - 0x95, 0x93, 0x4c, 0xc5, 0x7c, 0x86, 0x63, 0x82, 0xee, 0x00, 0x5c, 0x11, 0xec, 0xbb, 0x9e, 0x50, - 0x5a, 0x7a, 0xa8, 0xed, 0x98, 0x82, 0xa2, 0xac, 0xb8, 0x0f, 0x5d, 0x4e, 0x71, 0x18, 0x85, 0x49, - 0xa0, 0x21, 0x35, 0x09, 0xe9, 0xe4, 0x54, 0x09, 0xb3, 0x07, 0xb0, 0x56, 0xd6, 0xec, 0x39, 0x25, - 0xe3, 0x90, 0xbc, 0x46, 0x3f, 0x83, 0x65, 0x51, 0x2a, 0x79, 0x64, 0xef, 0xcf, 0xf9, 0x60, 0xb1, - 0x39, 0x8e, 0x92, 0x41, 0x16, 0x54, 0x49, 0xe2, 0xeb, 0xb8, 0x8a, 0xa5, 0x1d, 0xc0, 0xfa, 0xfb, - 0x22, 0x4a, 0xd3, 0x8f, 0x77, 0x41, 0xee, 0xf3, 0x6a, 0xc1, 0xe7, 0x01, 0xa0, 0xf2, 0x45, 0xa7, - 0x04, 0xfb, 0x1f, 0x19, 0xd3, 0x4d, 0x30, 0x47, 0x8c, 0xb8, 0x1e, 0xf6, 0xae, 0xf2, 0x24, 0x6d, - 0x8e, 0x18, 0x39, 0x11, 0x7b, 0xfb, 0x21, 0xdc, 0x28, 0x5f, 0xf4, 0x24, 0xf1, 0x4b, 0xf5, 0xa3, - 0x4d, 0x99, 0xd6, 0xcf, 0xef, 0x2b, 0xf3, 0xbe, 0x76, 0xc8, 0xf7, 0x23, 0xc2, 0x38, 0xfa, 0x29, - 0xd4, 0x44, 0xe0, 0xb4, 0x6a, 0x77, 0xaf, 0x75, 0xb5, 0x30, 0xe7, 0x74, 0xc9, 0x91, 0x02, 0xe8, - 0xe7, 0xd0, 0xc8, 0x54, 0xbc, 0x74, 0xc7, 0xff, 0xf4, 0x5a, 0x59, 0x1d, 0xdb, 0xd3, 0x25, 0x27, - 0x17, 0x43, 0x8f, 0x60, 0x79, 0x96, 0x40, 0xad, 0x83, 0xdd, 0x1f, 0x0c, 0xb3, 0x8c, 0xd9, 0xe9, - 0x92, 0xa3, 0xc4, 0xd0, 0xa1, 0x8a, 0xb4, 0x7a, 0x1f, 0x76, 0xae, 0x95, 0x7e, 0x92, 0x08, 0xc5, - 0x05, 0xfc, 0xd8, 0x84, 0x46, 0x86, 0x27, 0x51, 0x8a, 0x7d, 0xfb, 0x10, 0xd6, 0x8e, 0x3c, 0x8f, - 0x64, 0xa2, 0xc5, 0x15, 0xae, 0x61, 0xe5, 0xc8, 0x8b, 0x24, 0x2c, 0x44, 0xde, 0xbe, 0x98, 0x2f, - 0x28, 0x87, 0xb0, 0x2c, 0x4d, 0x18, 0x41, 0xdf, 0xc2, 0x72, 0xde, 0x91, 0x16, 0x39, 0x64, 0xe1, - 0x5d, 0x8e, 0x12, 0xb1, 0x0f, 0xa0, 0xf9, 0x1d, 0x99, 0xbc, 0xc4, 0xd1, 0x88, 0x88, 0x14, 0x16, - 0x8f, 0x8a, 0x21, 0x53, 0x4b, 0x2c, 0x45, 0xcb, 0x19, 0x0b, 0x96, 0x2e, 0x71, 0xb5, 0xb1, 0xff, - 0x5c, 0x01, 0x4b, 0x24, 0x4f, 0x7e, 0xe0, 0x63, 0xcc, 0x31, 0xda, 0x85, 0xba, 0x7a, 0xe4, 0xb4, - 0x16, 0xf3, 0xcf, 0x8e, 0xe6, 0x96, 0x53, 0xbf, 0x32, 0x97, 0xfa, 0x5f, 0x4c, 0xb3, 0x5b, 0x14, - 0xe0, 0xfa, 0x9c, 0x21, 0xb9, 0xa2, 0x2a, 0xed, 0x51, 0x0f, 0x1a, 0x63, 0x42, 0x99, 0xb8, 0x52, - 0x75, 0xc4, 0x7c, 0x8b, 0x1e, 0x42, 0x4d, 0x5c, 0xae, 0x5f, 0xe4, 0xcd, 0x0f, 0x74, 0x68, 0x59, - 0xbd, 0x12, 0x88, 0x7e, 0x02, 0x2b, 0x94, 0xc4, 0xe9, 0x98, 0xf8, 0x2e, 0x25, 0x5e, 0x4a, 0x7d, - 0xd6, 0xab, 0x4b, 0x15, 0xca, 0x53, 0x42, 0x57, 0x83, 0x1c, 0x85, 0x41, 0xc7, 0xd0, 0x95, 0x8f, - 0xe9, 0x4c, 0xaa, 0x21, 0xa5, 0xe6, 0x6f, 0xec, 0x4b, 0x90, 0x92, 0x72, 0x3a, 0x71, 0x61, 0xc7, - 0xec, 0xdf, 0x01, 0x9c, 0xf3, 0x94, 0x92, 0x33, 0x9f, 0x24, 0x5c, 0x74, 0x38, 0x2f, 0x1a, 0x31, - 0x4e, 0xe8, 0x6c, 0xde, 0x31, 0x35, 0xe5, 0xcc, 0x47, 0xb7, 0xa1, 0xc9, 0x04, 0x58, 0x30, 0x95, - 0xef, 0x1a, 0x4c, 0x09, 0xa3, 0x43, 0x68, 0xe1, 0x2c, 0x74, 0x73, 0x8f, 0x54, 0xe5, 0x9b, 0xbb, - 0xba, 0x9f, 0x0f, 0x60, 0x47, 0xcf, 0xcf, 0x5e, 0x2a, 0x96, 0x03, 0x38, 0x0b, 0xf5, 0xda, 0xfe, - 0x1c, 0x6e, 0xc8, 0xdb, 0x85, 0x36, 0x63, 0x42, 0xa7, 0x2f, 0x2e, 0x23, 0xdf, 0x27, 0x69, 0xfe, - 0xe2, 0xca, 0x8d, 0x7d, 0x09, 0x5d, 0x11, 0xf4, 0x5f, 0xa5, 0x1e, 0x8e, 0x14, 0xee, 0x4b, 0x80, - 0x2b, 0x4c, 0x7d, 0x97, 0x89, 0x9d, 0x0e, 0x3b, 0x9a, 0xce, 0x4b, 0xa7, 0x98, 0xaa, 0x17, 0xdc, - 0x31, 0xaf, 0xf2, 0xa5, 0xb0, 0x2f, 0xc2, 0x8c, 0xbb, 0xea, 0x45, 0x57, 0x26, 0x98, 0x82, 0x72, - 0x26, 0x08, 0xf6, 0x7f, 0x0c, 0x75, 0xc9, 0x51, 0x96, 0x45, 0x13, 0x25, 0x71, 0x0f, 0x3a, 0x38, - 0xcb, 0xa2, 0x90, 0xf8, 0x6e, 0x71, 0x0c, 0x68, 0x6b, 0xa2, 0x94, 0x43, 0x0f, 0xe0, 0x86, 0x3c, - 0xd6, 0x4b, 0xe3, 0x38, 0xcc, 0x4f, 0xaf, 0x4a, 0xe0, 0x8a, 0x60, 0x9c, 0x48, 0xba, 0xc2, 0xde, - 0x85, 0x76, 0x09, 0xa6, 0x72, 0xa7, 0xe5, 0x15, 0x20, 0xdb, 0xa0, 0xb7, 0xae, 0x9c, 0x31, 0xd4, - 0x4b, 0x0a, 0x8a, 0x74, 0x41, 0x68, 0x8c, 0x7e, 0x09, 0x2b, 0x3c, 0x9f, 0x52, 0xb4, 0xf9, 0x95, - 0x85, 0x8d, 0xec, 0xfd, 0x79, 0xc6, 0xe9, 0xf2, 0xd2, 0xde, 0x0e, 0x01, 0x64, 0x7e, 0x28, 0x73, - 0x37, 0xc1, 0x8c, 0xc3, 0xa4, 0x64, 0x6a, 0x33, 0x0e, 0x13, 0xa5, 0xd7, 0x2e, 0xd4, 0xf5, 0x68, - 0x57, 0x59, 0x5c, 0x63, 0x8a, 0x8b, 0x6e, 0x41, 0x5d, 0x29, 0xab, 0x7d, 0xa0, 0x77, 0xa2, 0x70, - 0xdb, 0xc5, 0x5c, 0x44, 0x7b, 0x60, 0xb1, 0x74, 0x44, 0x3d, 0xe2, 0xce, 0x0f, 0xd9, 0x5d, 0x45, - 0x77, 0xf2, 0x51, 0xfb, 0x6b, 0x68, 0x6b, 0xa4, 0x1a, 0x76, 0x2b, 0xd7, 0x0c, 0xbb, 0x0a, 0xa8, - 0x86, 0xdd, 0x87, 0x53, 0x39, 0x31, 0x7b, 0x33, 0x5d, 0xd9, 0xe5, 0xb2, 0xd2, 0x02, 0x62, 0xcd, - 0x84, 0x4a, 0xca, 0x8a, 0x82, 0x4a, 0x2a, 0x44, 0x5d, 0x45, 0x2f, 0xaa, 0xa4, 0x91, 0x3f, 0x3c, - 0x7f, 0x2b, 0xe0, 0x54, 0x25, 0x2d, 0xa7, 0x54, 0x5a, 0x54, 0xe9, 0x5a, 0x40, 0xa9, 0x34, 0x9d, - 0x40, 0x1b, 0x85, 0x09, 0xd4, 0xfe, 0xa3, 0xe8, 0x82, 0xf2, 0x8e, 0x42, 0x49, 0xec, 0xcb, 0x19, - 0x4d, 0x57, 0x43, 0xf7, 0xa0, 0x37, 0x97, 0x0e, 0xe2, 0x3c, 0x95, 0x05, 0x0a, 0x56, 0xe8, 0x9a, - 0x95, 0x6b, 0xbb, 0xe6, 0xb7, 0xa0, 0xc6, 0x76, 0x9d, 0x6c, 0xea, 0xe5, 0xba, 0xbd, 0xa8, 0xcd, - 0xa8, 0xe3, 0x21, 0x9e, 0xa5, 0xd4, 0x5d, 0x61, 0xaf, 0x78, 0x38, 0xca, 0x09, 0xaf, 0x68, 0x2a, - 0xb1, 0x16, 0xf4, 0xbf, 0xe5, 0x8f, 0xea, 0x7f, 0xf5, 0xff, 0xbb, 0xff, 0xfd, 0xdb, 0x80, 0x4f, - 0x94, 0xb1, 0xe7, 0x62, 0x34, 0x48, 0x3c, 0xf2, 0x6c, 0x14, 0x5f, 0x12, 0xea, 0x90, 0x48, 0xce, - 0xab, 0xd7, 0x7f, 0x01, 0x7e, 0x06, 0x2b, 0x4c, 0x8b, 0xb9, 0x89, 0x94, 0xd3, 0x4d, 0xa5, 0xcb, - 0x4a, 0xa7, 0xa1, 0x47, 0xa2, 0x3d, 0x66, 0xd1, 0xa4, 0xe4, 0xc0, 0x3b, 0x0b, 0xaa, 0x75, 0xd6, - 0x7a, 0x44, 0xa3, 0x9c, 0xb6, 0xa1, 0xe3, 0xe9, 0xc7, 0x9e, 0x3a, 0x40, 0xbd, 0xfe, 0xdb, 0xf3, - 0x07, 0xcc, 0xe5, 0x43, 0xfe, 0xe1, 0xa7, 0x2a, 0xfd, 0x47, 0xd0, 0x79, 0x1a, 0x8d, 0xd8, 0x55, - 0x9f, 0xc4, 0xd2, 0xf9, 0xd7, 0x9a, 0x66, 0xff, 0xc5, 0x80, 0xd6, 0x89, 0x18, 0xa4, 0x7e, 0xe1, - 0xc9, 0x4f, 0xd3, 0x4f, 0xa1, 0x2b, 0x3f, 0x76, 0xe7, 0x25, 0xda, 0x82, 0x3a, 0x2d, 0x8a, 0x5d, - 0x58, 0x91, 0xd3, 0x57, 0x01, 0xa6, 0x1c, 0xd2, 0x91, 0xe4, 0x29, 0xee, 0x08, 0x50, 0x09, 0xa7, - 0x4a, 0xa8, 0xfa, 0xe1, 0x12, 0xb2, 0x0a, 0xf2, 0xaa, 0x8e, 0xbe, 0x00, 0x50, 0x47, 0xc8, 0xaf, - 0xea, 0xda, 0x82, 0xaf, 0x6a, 0x53, 0xf2, 0xc5, 0xd2, 0xfe, 0x5b, 0x05, 0xda, 0xc5, 0x2f, 0x49, - 0xf4, 0x15, 0xd4, 0xf8, 0x24, 0xcb, 0x0b, 0x65, 0xfb, 0x9a, 0x8f, 0xce, 0x8b, 0x49, 0x46, 0x1c, - 0x09, 0x9e, 0x55, 0x62, 0xa5, 0xf8, 0x2d, 0xf8, 0x63, 0x68, 0xcd, 0x14, 0x59, 0xdc, 0x62, 0x60, - 0xaa, 0x89, 0x9c, 0xb2, 0x5e, 0xe3, 0x90, 0xbb, 0x72, 0xd2, 0xa8, 0xa9, 0x11, 0x57, 0x10, 0xe4, - 0x18, 0x73, 0x1f, 0xba, 0x83, 0x94, 0x7a, 0x24, 0x9a, 0xb8, 0xf8, 0x35, 0x1e, 0x92, 0x44, 0xb6, - 0x95, 0xa6, 0xd3, 0xd1, 0xd4, 0x23, 0x49, 0x44, 0x8f, 0x40, 0xf9, 0xd3, 0x0d, 0x3c, 0x65, 0x7e, - 0x7d, 0xe1, 0x88, 0x5d, 0x88, 0x9f, 0xa3, 0x74, 0xd4, 0xc1, 0x3c, 0x81, 0xee, 0x40, 0xa4, 0x82, - 0x1b, 0xeb, 0x5c, 0x90, 0xbd, 0xa5, 0x75, 0xf0, 0xc9, 0xdc, 0x01, 0xa5, 0x7c, 0x71, 0x3a, 0x83, - 0xe2, 0xf6, 0x81, 0x03, 0xe6, 0xb4, 0xa1, 0x20, 0x80, 0xfa, 0xb3, 0x94, 0xc6, 0x38, 0xb2, 0x96, - 0x50, 0x1b, 0x9a, 0x32, 0x8d, 0xc3, 0x24, 0xb0, 0x0c, 0xd4, 0x01, 0x73, 0xfa, 0xcf, 0x82, 0x55, - 0x41, 0x2d, 0x68, 0x88, 0x7a, 0x14, 0xbc, 0x2a, 0x5a, 0x81, 0xd6, 0x8b, 0x04, 0x8f, 0x71, 0x18, - 0x89, 0x13, 0xad, 0xda, 0x83, 0xb7, 0x55, 0xb0, 0xe6, 0x9d, 0x8f, 0x56, 0x61, 0xa5, 0xcf, 0x02, - 0x15, 0xfb, 0x57, 0x78, 0x48, 0x5e, 0x64, 0xd6, 0x12, 0xea, 0xc1, 0xcd, 0x3e, 0x0b, 0x5e, 0xe1, - 0x84, 0x3b, 0x69, 0x14, 0x5d, 0x62, 0x6f, 0x28, 0xcb, 0xdc, 0x32, 0xd0, 0x1a, 0xdc, 0xe8, 0xb3, - 0x40, 0xda, 0x7e, 0xce, 0x71, 0x24, 0x1b, 0xbb, 0x55, 0x41, 0x77, 0xe0, 0xf6, 0x7b, 0xe4, 0x7c, - 0x86, 0xb5, 0xaa, 0x68, 0x1d, 0x56, 0xfb, 0x2c, 0x38, 0x0d, 0x2f, 0x09, 0x4d, 0x44, 0xe9, 0xa8, - 0x0f, 0x05, 0xab, 0xa6, 0x2f, 0x2a, 0x30, 0xb4, 0xc8, 0x32, 0xfa, 0x0c, 0xee, 0x49, 0xbd, 0x7e, - 0x43, 0x3c, 0xae, 0x66, 0x93, 0xe0, 0x04, 0x8f, 0x18, 0xf1, 0x8f, 0x27, 0x7d, 0x12, 0xa7, 0x74, - 0x22, 0xff, 0x57, 0xb0, 0xea, 0x68, 0x03, 0x6e, 0xf5, 0x59, 0x70, 0xa4, 0xec, 0x0c, 0xa3, 0x90, - 0x4f, 0xf2, 0xe3, 0x1b, 0x68, 0x13, 0xd6, 0xdf, 0xe3, 0xe9, 0x1b, 0x9a, 0xc8, 0x86, 0xad, 0x3e, - 0x0b, 0x5e, 0xa6, 0x5c, 0xa8, 0x9a, 0x45, 0xa1, 0x7c, 0xb7, 0x65, 0xcf, 0xcc, 0x0f, 0x30, 0xd1, - 0x3d, 0xd8, 0xfe, 0x20, 0x46, 0x1f, 0x04, 0xe8, 0x26, 0x58, 0x7d, 0x16, 0xe8, 0x54, 0xd0, 0xa2, - 0x2d, 0xed, 0xa9, 0x9c, 0xaa, 0xc1, 0x6d, 0x0d, 0x2e, 0xc5, 0xde, 0xea, 0x1c, 0xef, 0xfe, 0xe3, - 0x0f, 0x4d, 0xe3, 0x4f, 0xef, 0xb6, 0x8c, 0xbf, 0xbe, 0xdb, 0x32, 0xfe, 0xf9, 0x6e, 0xcb, 0x78, - 0xfb, 0xaf, 0xad, 0x25, 0xb0, 0x52, 0x1a, 0xec, 0xf3, 0x70, 0x38, 0xde, 0x1f, 0x8e, 0xe5, 0x5f, - 0x68, 0x97, 0x75, 0xf9, 0xf3, 0xd5, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x39, 0x80, 0x9a, 0xbe, - 0xbe, 0x13, 0x00, 0x00, + // 2133 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x4b, 0x73, 0x1b, 0xb9, + 0xf1, 0xd7, 0x90, 0x14, 0x1f, 0xcd, 0x87, 0x68, 0xc8, 0x0f, 0xda, 0x5a, 0xdb, 0xf2, 0x78, 0xed, + 0xd5, 0x7a, 0xff, 0x7f, 0xb9, 0x56, 0xeb, 0x6c, 0xb6, 0x36, 0x55, 0x4e, 0x24, 0xd9, 0x8e, 0x9c, + 0x0d, 0x5d, 0xae, 0x91, 0x6c, 0x57, 0x4e, 0x53, 0xd0, 0x0c, 0x38, 0x9a, 0x70, 0x5e, 0x0b, 0x80, + 0xb2, 0x99, 0xca, 0xb7, 0xc8, 0xc5, 0x1f, 0x61, 0x3f, 0x42, 0x3e, 0x40, 0x0e, 0xa9, 0xe4, 0x92, + 0x43, 0x0e, 0x39, 0xa6, 0x9c, 0x4b, 0xae, 0x39, 0xe6, 0x96, 0x02, 0x1a, 0x43, 0xce, 0x50, 0xb4, + 0x9c, 0xf8, 0x44, 0xa0, 0xfb, 0xd7, 0x40, 0xbf, 0xd1, 0x43, 0x58, 0xe7, 0x74, 0x24, 0x5d, 0xc1, + 0xf8, 0x29, 0xe3, 0xd9, 0xf1, 0x76, 0xc6, 0x53, 0x99, 0x92, 0x6e, 0x89, 0x78, 0xad, 0xcb, 0xd4, + 0x3e, 0xe7, 0x5e, 0xeb, 0xc4, 0x4c, 0xd2, 0xd9, 0xae, 0x3b, 0x3e, 0xe5, 0x99, 0x37, 0xdb, 0xf6, + 0xfd, 0x50, 0x8c, 0xdd, 0x89, 0xa0, 0x01, 0x33, 0x94, 0x35, 0x3e, 0x11, 0x52, 0x2f, 0x91, 0x60, + 0xff, 0xbb, 0x0a, 0x6d, 0x87, 0x8e, 0xe4, 0x90, 0x09, 0x05, 0x23, 0x1b, 0xd0, 0xe2, 0x2c, 0x08, + 0xd3, 0xc4, 0x0d, 0xfd, 0x81, 0xb5, 0x69, 0x6d, 0xd5, 0x9c, 0x26, 0x12, 0x9e, 0xfa, 0xe4, 0x73, + 0x68, 0x8d, 0x78, 0x1a, 0xbb, 0x19, 0x63, 0x7c, 0x50, 0xd9, 0xb4, 0xb6, 0xda, 0x3b, 0x9d, 0x6d, + 0xa3, 0xc0, 0x73, 0xc6, 0xb8, 0xd3, 0x54, 0x6c, 0xb5, 0x22, 0x77, 0xa0, 0x21, 0x53, 0x04, 0x56, + 0x97, 0x00, 0xeb, 0x32, 0xd5, 0xb0, 0x7b, 0xd0, 0x88, 0xf1, 0xe6, 0x41, 0x4d, 0xc3, 0xfa, 0xdb, + 0xb9, 0x7d, 0x46, 0x23, 0x27, 0x07, 0x90, 0xaf, 0xa1, 0x63, 0x54, 0x63, 0x59, 0xea, 0x9d, 0x0c, + 0x56, 0xb5, 0xc0, 0x7a, 0x7e, 0xae, 0xa3, 0x79, 0x8f, 0x15, 0xcb, 0x69, 0xf3, 0xf9, 0x86, 0xdc, + 0x82, 0x4e, 0x28, 0x5c, 0x99, 0xc6, 0xc7, 0x42, 0xa6, 0x09, 0x1b, 0xd4, 0x37, 0xad, 0xad, 0xa6, + 0xd3, 0x0e, 0xc5, 0x51, 0x4e, 0x52, 0x56, 0x0b, 0x49, 0xb9, 0x74, 0xc7, 0x6c, 0x3a, 0x68, 0x6c, + 0x5a, 0x5b, 0x1d, 0xa7, 0xa9, 0x09, 0xdf, 0xb1, 0x29, 0xb9, 0x02, 0x0d, 0x96, 0xf8, 0x9a, 0xd5, + 0xd4, 0xac, 0x3a, 0x4b, 0x7c, 0xc5, 0xf8, 0x12, 0x3a, 0x31, 0xe3, 0x01, 0x73, 0x25, 0xe5, 0x01, + 0x93, 0x83, 0x96, 0x56, 0xa8, 0x57, 0x56, 0xc8, 0x69, 0x6b, 0xcc, 0x91, 0x86, 0x90, 0x6f, 0xa0, + 0xc5, 0xde, 0x48, 0x4e, 0xdd, 0x58, 0x04, 0x03, 0xd0, 0xf8, 0x8d, 0xed, 0x72, 0xd4, 0x1f, 0x2b, + 0x7e, 0x6e, 0x7c, 0x53, 0xa3, 0x87, 0x22, 0x50, 0x2a, 0xa2, 0xa4, 0x27, 0xdf, 0x0c, 0xda, 0xa8, + 0xa2, 0x26, 0xec, 0xcb, 0x37, 0xe4, 0x01, 0xc0, 0x3c, 0xd4, 0x83, 0xce, 0xa6, 0xb5, 0xd5, 0xdb, + 0xb9, 0xb4, 0x5d, 0x88, 0xfe, 0xa3, 0x50, 0x8c, 0x5f, 0xe8, 0x13, 0x5b, 0x7e, 0xbe, 0xb4, 0x1f, + 0x02, 0x51, 0xa1, 0x3f, 0xe2, 0x93, 0xc4, 0xa3, 0x92, 0xf9, 0x87, 0x92, 0x4a, 0x46, 0x2e, 0xc2, + 0x6a, 0x98, 0xf8, 0xec, 0x8d, 0x89, 0x3e, 0x6e, 0x08, 0x81, 0x9a, 0x64, 0x3c, 0xd6, 0x51, 0xaf, + 0x39, 0x7a, 0x6d, 0x3f, 0x87, 0xde, 0x61, 0x42, 0x33, 0x71, 0x92, 0xca, 0xfd, 0x27, 0x4f, 0xc2, + 0x88, 0x91, 0x1e, 0x54, 0xbc, 0x91, 0x16, 0x6c, 0x39, 0x15, 0x6f, 0xa4, 0xa4, 0x44, 0xf8, 0x1b, + 0x96, 0x4b, 0xa9, 0x35, 0xb9, 0x06, 0x4d, 0xef, 0x84, 0x79, 0x63, 0x31, 0x89, 0x75, 0x6a, 0x74, + 0x9d, 0xd9, 0xde, 0xfe, 0xab, 0x05, 0x9d, 0xfc, 0xc8, 0x21, 0x93, 0x94, 0x7c, 0x03, 0x4d, 0x6f, + 0xe4, 0x8e, 0xc2, 0x88, 0x89, 0x81, 0xb5, 0x59, 0xdd, 0x6a, 0xef, 0x5c, 0x5f, 0x70, 0x57, 0x59, + 0x03, 0xa7, 0xe1, 0x8d, 0xd4, 0xaf, 0x20, 0x37, 0xa1, 0x3d, 0x4a, 0xb9, 0x7b, 0x4c, 0x23, 0x9a, + 0x78, 0xa8, 0x41, 0xd3, 0x81, 0x51, 0xca, 0xf7, 0x90, 0x92, 0x03, 0x5e, 0x87, 0x32, 0x61, 0x42, + 0x68, 0x55, 0x10, 0xf0, 0x0a, 0x29, 0xca, 0x11, 0x3a, 0x07, 0x74, 0x66, 0xd6, 0x1c, 0xdc, 0x90, + 0x1d, 0xb8, 0x14, 0xb0, 0x84, 0x71, 0x2a, 0x99, 0xeb, 0x4f, 0x38, 0x95, 0x2a, 0x21, 0x05, 0xf3, + 0x74, 0x3a, 0xd6, 0x9c, 0xf5, 0x9c, 0xf9, 0xc8, 0xf0, 0x0e, 0x99, 0x67, 0xff, 0x0a, 0xba, 0x33, + 0x35, 0x4f, 0x26, 0xc9, 0x98, 0x3c, 0x98, 0xa7, 0xbd, 0xa5, 0x93, 0xe0, 0xda, 0x82, 0x55, 0x85, + 0x92, 0x9c, 0x17, 0x00, 0x81, 0x9a, 0x4f, 0x25, 0xd5, 0xb6, 0x74, 0x1c, 0xbd, 0xb6, 0xeb, 0x50, + 0x7b, 0x94, 0x26, 0xcc, 0x7e, 0x6b, 0xc1, 0xe5, 0x23, 0x7a, 0x1c, 0x31, 0x99, 0xdf, 0xa4, 0xdc, + 0xa0, 0x7d, 0xb8, 0x01, 0x2d, 0xe5, 0x40, 0x57, 0x47, 0xc2, 0x94, 0xb4, 0x22, 0x1c, 0xaa, 0x68, + 0xe4, 0xcc, 0x84, 0xc6, 0xe8, 0xa4, 0x16, 0x32, 0x9f, 0xd1, 0x98, 0x91, 0xeb, 0x00, 0x27, 0x8c, + 0xfa, 0xae, 0xa7, 0x94, 0xd6, 0x1e, 0xea, 0x38, 0x2d, 0x45, 0x41, 0x2b, 0xee, 0x40, 0x4f, 0x72, + 0x1a, 0x46, 0x61, 0x12, 0x18, 0x48, 0x4d, 0x43, 0xba, 0x39, 0x55, 0xc3, 0xec, 0x11, 0x5c, 0x2a, + 0x6b, 0xf6, 0x9c, 0xb3, 0xd3, 0x90, 0xbd, 0x26, 0x3f, 0x81, 0x55, 0x55, 0x2a, 0x79, 0x64, 0xef, + 0x2c, 0xf8, 0x60, 0xb9, 0x39, 0x0e, 0xca, 0x90, 0x3e, 0x54, 0x59, 0xe2, 0x9b, 0xb8, 0xaa, 0xa5, + 0x1d, 0xc0, 0x95, 0xb3, 0x22, 0xa8, 0xe9, 0xc7, 0xbb, 0x20, 0xf7, 0x79, 0xb5, 0xe0, 0xf3, 0x00, + 0x48, 0xf9, 0xa2, 0x03, 0x46, 0xfd, 0x8f, 0x8c, 0xe9, 0x06, 0xb4, 0x26, 0x82, 0xb9, 0x1e, 0xf5, + 0x4e, 0xf2, 0x24, 0x6d, 0x4e, 0x04, 0xdb, 0x57, 0x7b, 0xfb, 0x3e, 0x5c, 0x28, 0x5f, 0xf4, 0x38, + 0xf1, 0x4b, 0xf5, 0x63, 0x4c, 0x99, 0xd5, 0xcf, 0xef, 0x2a, 0x8b, 0xbe, 0x76, 0xd8, 0xf7, 0x13, + 0x26, 0x24, 0xf9, 0x31, 0xd4, 0x54, 0xe0, 0x8c, 0x6a, 0xb7, 0xce, 0x75, 0xb5, 0x32, 0xe7, 0x60, + 0xc5, 0xd1, 0x02, 0xe4, 0x67, 0xd0, 0xc8, 0x30, 0x5e, 0xa6, 0xe3, 0x7f, 0x7a, 0xae, 0xac, 0x89, + 0xed, 0xc1, 0x8a, 0x93, 0x8b, 0x91, 0x87, 0xb0, 0x3a, 0x4f, 0xa0, 0xf6, 0xce, 0xdd, 0x0f, 0x86, + 0x59, 0xc7, 0xec, 0x60, 0xc5, 0x41, 0x31, 0xf2, 0x00, 0x23, 0x8d, 0xef, 0xc3, 0xe6, 0xb9, 0xd2, + 0x8f, 0x13, 0xa5, 0xb8, 0x82, 0xef, 0xb5, 0xa0, 0x91, 0xd1, 0x69, 0x94, 0x52, 0xdf, 0x7e, 0x00, + 0x97, 0x76, 0x3d, 0x8f, 0x65, 0xaa, 0xc5, 0x15, 0xae, 0x11, 0xe5, 0xc8, 0xab, 0x24, 0x2c, 0x44, + 0xde, 0x3e, 0x5a, 0x2c, 0x28, 0x87, 0x89, 0x2c, 0x4d, 0x04, 0x23, 0xdf, 0xc2, 0x6a, 0xde, 0x91, + 0x96, 0x39, 0x64, 0xe9, 0x5d, 0x0e, 0x8a, 0xd8, 0x3b, 0xd0, 0xfc, 0x8e, 0x4d, 0x5f, 0xd2, 0x68, + 0xc2, 0x54, 0x0a, 0xab, 0x47, 0xc5, 0xd2, 0xa9, 0xa5, 0x96, 0xaa, 0xe5, 0x9c, 0x2a, 0x96, 0x29, + 0x71, 0xdc, 0xd8, 0x7f, 0xaa, 0x40, 0x5f, 0x25, 0x4f, 0x7e, 0xe0, 0x23, 0x2a, 0x29, 0xb9, 0x0b, + 0x75, 0x7c, 0xe4, 0x8c, 0x16, 0x8b, 0xcf, 0x8e, 0xe1, 0x96, 0x53, 0xbf, 0xb2, 0x90, 0xfa, 0x5f, + 0xcc, 0xb2, 0x5b, 0x15, 0xe0, 0x95, 0x05, 0x43, 0x72, 0x45, 0x31, 0xed, 0xc9, 0x00, 0x1a, 0xa7, + 0x8c, 0x0b, 0x75, 0x25, 0x76, 0xc4, 0x7c, 0x4b, 0xee, 0x43, 0x4d, 0x5d, 0x6e, 0x5e, 0xe4, 0x8d, + 0xf7, 0x74, 0x68, 0x5d, 0xbd, 0x1a, 0x48, 0x7e, 0x04, 0x6b, 0x9c, 0xc5, 0xe9, 0x29, 0xf3, 0x5d, + 0xce, 0xbc, 0x94, 0xfb, 0x62, 0x50, 0xd7, 0x2a, 0x94, 0xa7, 0x84, 0x9e, 0x01, 0x39, 0x88, 0x21, + 0x7b, 0xd0, 0xd3, 0x8f, 0xe9, 0x5c, 0xaa, 0xa1, 0xa5, 0x16, 0x6f, 0x1c, 0x6a, 0x10, 0x4a, 0x39, + 0xdd, 0xb8, 0xb0, 0x13, 0xf6, 0x6f, 0x01, 0x0e, 0x65, 0xca, 0xd9, 0x53, 0x9f, 0x25, 0x52, 0x75, + 0x38, 0x2f, 0x9a, 0x08, 0xc9, 0xf8, 0x7c, 0xde, 0x69, 0x19, 0xca, 0x53, 0x9f, 0x5c, 0x85, 0xa6, + 0x50, 0x60, 0xc5, 0x44, 0xdf, 0x35, 0x04, 0x0a, 0x93, 0x07, 0xd0, 0xa6, 0x59, 0xe8, 0xe6, 0x1e, + 0xa9, 0xea, 0x37, 0x77, 0x7d, 0x3b, 0x1f, 0xc0, 0x76, 0x9f, 0x3f, 0x7d, 0x89, 0x2c, 0x07, 0x68, + 0x16, 0x9a, 0xb5, 0xfd, 0x39, 0x5c, 0xd0, 0xb7, 0x2b, 0x6d, 0x4e, 0x19, 0x9f, 0xbd, 0xb8, 0x82, + 0x7d, 0x9f, 0xa4, 0xf9, 0x8b, 0xab, 0x37, 0xf6, 0x31, 0xf4, 0x54, 0xd0, 0x7f, 0x99, 0x7a, 0x34, + 0x42, 0xdc, 0x97, 0x00, 0x27, 0x94, 0xfb, 0xae, 0x50, 0x3b, 0x13, 0x76, 0x32, 0x9b, 0x97, 0x0e, + 0x28, 0xc7, 0x17, 0xdc, 0x69, 0x9d, 0xe4, 0x4b, 0x65, 0x5f, 0x44, 0x85, 0x74, 0xf1, 0x45, 0x47, + 0x13, 0x5a, 0x8a, 0xf2, 0x54, 0x11, 0xec, 0x7f, 0x59, 0x78, 0xc9, 0x6e, 0x96, 0x45, 0x53, 0x94, + 0xb8, 0x0d, 0x5d, 0x9a, 0x65, 0x51, 0xc8, 0x7c, 0xb7, 0x38, 0x06, 0x74, 0x0c, 0x51, 0xcb, 0x91, + 0x7b, 0x70, 0x41, 0x1f, 0xeb, 0xa5, 0x71, 0x1c, 0xe6, 0xa7, 0x57, 0x35, 0x70, 0x4d, 0x31, 0xf6, + 0x35, 0x1d, 0xb1, 0xb7, 0xa0, 0x53, 0x82, 0x61, 0xee, 0xb4, 0xbd, 0x02, 0xe4, 0x26, 0x98, 0xad, + 0xab, 0x67, 0x0c, 0x7c, 0x49, 0x01, 0x49, 0x47, 0x8c, 0xc7, 0xe4, 0x17, 0xb0, 0x26, 0xf3, 0x29, + 0xc5, 0x98, 0x5f, 0x59, 0xda, 0xc8, 0xce, 0xce, 0x33, 0x4e, 0x4f, 0x96, 0xf6, 0x76, 0x08, 0xa0, + 0xf3, 0x03, 0xcd, 0xdd, 0x80, 0x56, 0x1c, 0x26, 0x25, 0x53, 0x9b, 0x71, 0x98, 0xa0, 0x5e, 0x77, + 0xa1, 0x6e, 0x46, 0xbb, 0xca, 0xf2, 0x1a, 0x43, 0x2e, 0xb9, 0x0c, 0x75, 0x54, 0xd6, 0xf8, 0xc0, + 0xec, 0x54, 0xe1, 0x76, 0x8a, 0xb9, 0x48, 0xb6, 0xa0, 0x2f, 0xd2, 0x09, 0xf7, 0x98, 0xbb, 0x38, + 0x64, 0xf7, 0x90, 0xee, 0xe4, 0xa3, 0xf6, 0xd7, 0xd0, 0x31, 0x48, 0x1c, 0x76, 0x2b, 0xe7, 0x0c, + 0xbb, 0x08, 0xc4, 0x61, 0xf7, 0xfe, 0x4c, 0x4e, 0xcd, 0xde, 0xc2, 0x54, 0x76, 0xb9, 0xac, 0x8c, + 0x80, 0x5a, 0x0b, 0xa5, 0x12, 0x5a, 0x51, 0x50, 0x09, 0x43, 0xd4, 0x43, 0x7a, 0x51, 0x25, 0x83, + 0xfc, 0xf0, 0xfc, 0x8d, 0xc0, 0x99, 0x4a, 0x46, 0x0e, 0x55, 0x5a, 0x56, 0xe9, 0x46, 0x00, 0x55, + 0x9a, 0x4d, 0xa0, 0x8d, 0xc2, 0x04, 0x6a, 0xff, 0x41, 0x75, 0x41, 0x7d, 0x47, 0xa1, 0x24, 0xb6, + 0xf5, 0x8c, 0x66, 0xaa, 0xa1, 0xb7, 0x33, 0x58, 0x48, 0x07, 0x75, 0x1e, 0x66, 0x01, 0xc2, 0x0a, + 0x5d, 0xb3, 0x72, 0x6e, 0xd7, 0xfc, 0x16, 0x70, 0x6c, 0x37, 0xc9, 0x86, 0x2f, 0xd7, 0xd5, 0x65, + 0x6d, 0x06, 0x8f, 0x87, 0x78, 0x9e, 0x52, 0xb7, 0x94, 0xbd, 0xea, 0xe1, 0x28, 0x27, 0x3c, 0xd2, + 0x30, 0xb1, 0x96, 0xf4, 0xbf, 0xd5, 0x8f, 0xea, 0x7f, 0xf5, 0xff, 0xb9, 0xff, 0xfd, 0xd3, 0x82, + 0x4f, 0xd0, 0xd8, 0x43, 0x35, 0x1a, 0x24, 0x1e, 0x7b, 0x36, 0x89, 0x8f, 0x19, 0x77, 0x58, 0xa4, + 0xe7, 0xd5, 0xf3, 0xbf, 0x00, 0x3f, 0x83, 0x35, 0x61, 0xc4, 0xdc, 0x44, 0xcb, 0x99, 0xa6, 0xd2, + 0x13, 0xa5, 0xd3, 0xc8, 0x43, 0xd5, 0x1e, 0xb3, 0x68, 0x5a, 0x72, 0xe0, 0xf5, 0x25, 0xd5, 0x3a, + 0x6f, 0x3d, 0xaa, 0x51, 0xce, 0xda, 0xd0, 0xde, 0xec, 0x63, 0x0f, 0x0f, 0xc0, 0xd7, 0xff, 0xe6, + 0xe2, 0x01, 0x0b, 0xf9, 0x90, 0x7f, 0xf8, 0x61, 0xa5, 0xff, 0xde, 0x82, 0xf5, 0xdd, 0x53, 0x1a, + 0x46, 0xf4, 0x38, 0x8c, 0x42, 0x39, 0xdd, 0x4f, 0x13, 0xc9, 0xde, 0x48, 0xf2, 0x29, 0xf4, 0xf4, + 0x67, 0xec, 0xa2, 0x99, 0x1d, 0x45, 0x9d, 0xa5, 0xfb, 0x4f, 0xe1, 0x42, 0x11, 0xf5, 0xc1, 0x32, + 0x5c, 0x9b, 0x4b, 0x63, 0xde, 0x6f, 0x42, 0x7b, 0x92, 0x50, 0xbc, 0x3f, 0x62, 0xe6, 0x03, 0xa3, + 0x48, 0x52, 0x2f, 0xaa, 0xe4, 0x61, 0x1c, 0x33, 0x2c, 0xb9, 0xa6, 0x93, 0x6f, 0xed, 0xff, 0x83, + 0xee, 0x93, 0x68, 0x22, 0x4e, 0x86, 0x2c, 0xd6, 0x79, 0x73, 0x6e, 0x54, 0xec, 0x3f, 0x5b, 0xd0, + 0xde, 0x57, 0x33, 0xe0, 0xcf, 0x3d, 0xfd, 0x55, 0xfd, 0xdf, 0x19, 0x78, 0x17, 0xd6, 0xf4, 0xe0, + 0x58, 0x80, 0x61, 0x2c, 0xbb, 0x9a, 0x3c, 0xc3, 0xed, 0x02, 0x29, 0xe1, 0xd0, 0x13, 0xd5, 0xf7, + 0x7b, 0xa2, 0x5f, 0x90, 0x47, 0x57, 0x7c, 0x01, 0x80, 0x47, 0xe8, 0x3f, 0x04, 0x6a, 0x4b, 0xfe, + 0x10, 0x68, 0x69, 0xbe, 0x5a, 0xda, 0x3f, 0x54, 0xa1, 0x53, 0xfc, 0x08, 0x26, 0x5f, 0x41, 0x4d, + 0x4e, 0xb3, 0xbc, 0xc6, 0x6f, 0x9e, 0xf3, 0xbd, 0x7c, 0x34, 0xcd, 0x98, 0xa3, 0xc1, 0xf3, 0x26, + 0x52, 0x29, 0x7e, 0xc6, 0xfe, 0x3f, 0xb4, 0xe7, 0x8a, 0x2c, 0xef, 0x8e, 0x30, 0xd3, 0x44, 0x0f, + 0x88, 0xaf, 0x69, 0x28, 0x5d, 0x3d, 0x24, 0x61, 0x88, 0x9a, 0x8a, 0xa0, 0x27, 0xb0, 0x3b, 0xd0, + 0x1b, 0xa5, 0xdc, 0x63, 0xd1, 0xd4, 0xa5, 0xaf, 0xe9, 0x98, 0x25, 0xba, 0x23, 0x36, 0x9d, 0xae, + 0xa1, 0xee, 0x6a, 0x22, 0x79, 0x08, 0xe8, 0x4f, 0x37, 0xf0, 0xd0, 0xfc, 0xfa, 0xd2, 0xaf, 0x83, + 0x42, 0xfc, 0x1c, 0xd4, 0xd1, 0x04, 0x73, 0x1f, 0x7a, 0x23, 0x95, 0x0a, 0x6e, 0x6c, 0x72, 0x41, + 0xb7, 0xc5, 0xf6, 0xce, 0x27, 0x0b, 0x07, 0x94, 0xf2, 0xc5, 0xe9, 0x8e, 0x4a, 0xe9, 0xf3, 0x02, + 0x2e, 0xd2, 0x42, 0x25, 0xb8, 0x1e, 0x96, 0x82, 0xfe, 0x43, 0xa3, 0xbd, 0x63, 0x2f, 0x4e, 0xb0, + 0x67, 0x8b, 0xc6, 0x59, 0xa7, 0x67, 0x89, 0xf7, 0x1c, 0x68, 0xcd, 0x5a, 0x2c, 0x01, 0xa8, 0x3f, + 0x4b, 0x79, 0x4c, 0xa3, 0xfe, 0x0a, 0xe9, 0x40, 0x53, 0x17, 0x76, 0x98, 0x04, 0x7d, 0x8b, 0x74, + 0xa1, 0x35, 0xfb, 0xaf, 0xa5, 0x5f, 0x21, 0x6d, 0x68, 0xa8, 0x0e, 0xa5, 0x78, 0x55, 0xb2, 0x06, + 0xed, 0x17, 0xf3, 0x92, 0xe8, 0xd7, 0xee, 0xbd, 0xad, 0x42, 0x7f, 0x31, 0xa6, 0x64, 0x1d, 0xd6, + 0x86, 0x22, 0xc0, 0x94, 0x7a, 0x45, 0xc7, 0xec, 0x45, 0xd6, 0x5f, 0x21, 0x03, 0xb8, 0x38, 0x14, + 0xc1, 0x2b, 0x9a, 0x48, 0x27, 0x8d, 0xa2, 0x63, 0xea, 0x8d, 0x75, 0xe3, 0xeb, 0x5b, 0xe4, 0x12, + 0x5c, 0x18, 0x8a, 0x40, 0xbb, 0xf4, 0x50, 0xd2, 0x48, 0x3f, 0x75, 0xfd, 0x0a, 0xb9, 0x0e, 0x57, + 0xcf, 0x90, 0xf3, 0xa9, 0xbe, 0x5f, 0x25, 0x57, 0x60, 0x7d, 0x28, 0x82, 0x83, 0xf0, 0x98, 0xf1, + 0x44, 0x35, 0x13, 0xfc, 0x74, 0xea, 0xd7, 0xcc, 0x45, 0x05, 0x86, 0x11, 0x59, 0x25, 0x9f, 0xc1, + 0x6d, 0xad, 0xd7, 0xaf, 0x99, 0x27, 0x71, 0x5a, 0x0b, 0xf6, 0xe9, 0x44, 0x30, 0x7f, 0x6f, 0x3a, + 0x64, 0x71, 0xca, 0xa7, 0xfa, 0x9f, 0x96, 0x7e, 0x9d, 0x5c, 0x83, 0xcb, 0x43, 0x11, 0x14, 0x1d, + 0x9b, 0x1f, 0xdf, 0x20, 0x1b, 0x70, 0xe5, 0x0c, 0xcf, 0xdc, 0xd0, 0x24, 0x36, 0xdc, 0x18, 0x8a, + 0xe0, 0x65, 0x2a, 0x95, 0xaa, 0x59, 0x14, 0xea, 0x49, 0x46, 0xbf, 0x22, 0xf9, 0x01, 0x2d, 0x72, + 0x1b, 0x6e, 0xbe, 0x17, 0x63, 0x0e, 0x02, 0x72, 0x11, 0xfa, 0x43, 0x11, 0x98, 0x0c, 0x33, 0xa2, + 0x6d, 0xe3, 0xa9, 0x9c, 0x6a, 0xc0, 0x1d, 0x03, 0x2e, 0xa5, 0x54, 0xbf, 0xbb, 0x77, 0xf7, 0x6f, + 0x3f, 0x34, 0xad, 0x3f, 0xbe, 0xbb, 0x61, 0xfd, 0xe5, 0xdd, 0x0d, 0xeb, 0xef, 0xef, 0x6e, 0x58, + 0x6f, 0xff, 0x71, 0x63, 0x05, 0xfa, 0x29, 0x0f, 0xb6, 0x65, 0x38, 0x3e, 0xdd, 0x1e, 0x9f, 0xea, + 0x3f, 0x15, 0x8f, 0xeb, 0xfa, 0xe7, 0xab, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xa5, 0xb2, 0x08, + 0x1b, 0xd0, 0x14, 0x00, 0x00, } func (m *RaftMessage) Marshal() (dAtA []byte, err error) { @@ -3587,6 +3673,70 @@ func (m *RegionSequenceNumberRelation) MarshalToSizedBuffer(dAtA []byte) (int, e return len(dAtA) - i, nil } +func (m *AvailabilityContext) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AvailabilityContext) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AvailabilityContext) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Trimmed { + i-- + if m.Trimmed { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if m.Unavailable { + i-- + if m.Unavailable { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.FromRegionEpoch != nil { + { + size, err := m.FromRegionEpoch.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.FromRegionId != 0 { + i = encodeVarintRaftServerpb(dAtA, i, uint64(m.FromRegionId)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *FlushMemtable) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3704,6 +3854,18 @@ func (m *ExtraMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.AvailabilityContext != nil { + { + size, err := m.AvailabilityContext.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } if m.FlushMemtable != nil { { size, err := m.FlushMemtable.MarshalToSizedBuffer(dAtA[:i]) @@ -4421,6 +4583,31 @@ func (m *RegionSequenceNumberRelation) Size() (n int) { return n } +func (m *AvailabilityContext) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.FromRegionId != 0 { + n += 1 + sovRaftServerpb(uint64(m.FromRegionId)) + } + if m.FromRegionEpoch != nil { + l = m.FromRegionEpoch.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.Unavailable { + n += 2 + } + if m.Trimmed { + n += 2 + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *FlushMemtable) Size() (n int) { if m == nil { return 0 @@ -4494,6 +4681,10 @@ func (m *ExtraMessage) Size() (n int) { l = m.FlushMemtable.Size() n += 1 + l + sovRaftServerpb(uint64(l)) } + if m.AvailabilityContext != nil { + l = m.AvailabilityContext.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -8019,6 +8210,152 @@ func (m *RegionSequenceNumberRelation) Unmarshal(dAtA []byte) error { } return nil } +func (m *AvailabilityContext) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AvailabilityContext: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AvailabilityContext: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FromRegionId", wireType) + } + m.FromRegionId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.FromRegionId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FromRegionEpoch", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FromRegionEpoch == nil { + m.FromRegionEpoch = &metapb.RegionEpoch{} + } + if err := m.FromRegionEpoch.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Unavailable", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Unavailable = bool(v != 0) + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Trimmed", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Trimmed = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipRaftServerpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRaftServerpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *FlushMemtable) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -8463,6 +8800,42 @@ func (m *ExtraMessage) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AvailabilityContext", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AvailabilityContext == nil { + m.AvailabilityContext = &AvailabilityContext{} + } + if err := m.AvailabilityContext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipRaftServerpb(dAtA[iNdEx:]) diff --git a/pkg/tracepb/tracepb.pb.go b/pkg/tracepb/tracepb.pb.go index 55cf091..e5b4919 100644 --- a/pkg/tracepb/tracepb.pb.go +++ b/pkg/tracepb/tracepb.pb.go @@ -68,7 +68,6 @@ var xxx_messageInfo_TraceRecordRequest proto.InternalMessageInfo type TraceRecord struct { // Types that are valid to be assigned to RecordOneof: - // // *TraceRecord_Report // *TraceRecord_NotifyCollect RecordOneof isTraceRecord_RecordOneof `protobuf_oneof:"record_oneof"` diff --git a/proto/raft_serverpb.proto b/proto/raft_serverpb.proto index 4580dd8..f18580e 100644 --- a/proto/raft_serverpb.proto +++ b/proto/raft_serverpb.proto @@ -207,6 +207,13 @@ message RegionSequenceNumberRelation { RegionLocalState region_state = 4; } +message AvailabilityContext { + uint64 from_region_id = 1; + metapb.RegionEpoch from_region_epoch = 2; + bool unavailable = 3; + bool trimmed = 4; +} + enum ExtraMessageType { MsgRegionWakeUp = 0; MsgWantRollbackMerge = 1; @@ -256,4 +263,6 @@ message ExtraMessage { bool forcely_awaken = 5; CheckGcPeer check_gc_peer = 6; FlushMemtable flush_memtable = 7; + // Used by `MsgAvailabilityRequest` and `MsgAvailabilityResponse` in v2. + AvailabilityContext availability_context = 8; } diff --git a/scripts/proto.lock b/scripts/proto.lock index 3deecc3..ba0ca63 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -16023,6 +16023,31 @@ } ] }, + { + "name": "AvailabilityContext", + "fields": [ + { + "id": 1, + "name": "from_region_id", + "type": "uint64" + }, + { + "id": 2, + "name": "from_region_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 3, + "name": "unavailable", + "type": "bool" + }, + { + "id": 4, + "name": "trimmed", + "type": "bool" + } + ] + }, { "name": "FlushMemtable", "fields": [ @@ -16096,6 +16121,11 @@ "id": 7, "name": "flush_memtable", "type": "FlushMemtable" + }, + { + "id": 8, + "name": "availability_context", + "type": "AvailabilityContext" } ] } -- Gitee From 41564e9f984b1c8abb8fae9b5c3efcc68c6f691d Mon Sep 17 00:00:00 2001 From: Wenxuan Date: Mon, 27 Mar 2023 14:40:10 +0800 Subject: [PATCH 29/44] Add lock info to EstablishDisaggTask (#1087) Signed-off-by: Wish --- pkg/configpb/configpb.pb.gw.go | 22 +- pkg/disaggregated/disaggregated.pb.go | 2636 ++++++++++++++++++------- proto/disaggregated.proto | 42 +- scripts/proto.lock | 82 +- 4 files changed, 1995 insertions(+), 787 deletions(-) diff --git a/pkg/configpb/configpb.pb.gw.go b/pkg/configpb/configpb.pb.gw.go index c0385b0..9b4675b 100644 --- a/pkg/configpb/configpb.pb.gw.go +++ b/pkg/configpb/configpb.pb.gw.go @@ -20,6 +20,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -30,6 +31,7 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage +var _ = metadata.Join var ( filter_Config_Get_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} @@ -55,7 +57,10 @@ func local_request_Config_Get_0(ctx context.Context, marshaler runtime.Marshaler var protoReq GetRequest var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Get_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_Get_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -122,7 +127,10 @@ func local_request_Config_Delete_0(ctx context.Context, marshaler runtime.Marsha var protoReq DeleteRequest var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Delete_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_Delete_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -134,11 +142,14 @@ func local_request_Config_Delete_0(ctx context.Context, marshaler runtime.Marsha // RegisterConfigHandlerServer registers the http handlers for service Config to "mux". // UnaryRPC :call ConfigServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterConfigHandlerFromEndpoint instead. func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ConfigServer) error { mux.Handle("GET", pattern_Config_Get_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -146,6 +157,7 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Get_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -159,6 +171,8 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser mux.Handle("POST", pattern_Config_Update_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -166,6 +180,7 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Update_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -179,6 +194,8 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser mux.Handle("DELETE", pattern_Config_Delete_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -186,6 +203,7 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Delete_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) diff --git a/pkg/disaggregated/disaggregated.pb.go b/pkg/disaggregated/disaggregated.pb.go index ebe2df3..54871cb 100644 --- a/pkg/disaggregated/disaggregated.pb.go +++ b/pkg/disaggregated/disaggregated.pb.go @@ -12,7 +12,6 @@ import ( proto "github.com/golang/protobuf/proto" coprocessor "github.com/pingcap/kvproto/pkg/coprocessor" kvrpcpb "github.com/pingcap/kvproto/pkg/kvrpcpb" - metapb "github.com/pingcap/kvproto/pkg/metapb" ) // Reference imports to suppress errors if they are not otherwise used. @@ -258,7 +257,7 @@ func (m *Conflict) GetReason() string { type TryAddLockRequest struct { // The data file key to add lock - DataFileKey string `protobuf:"bytes,1,opt,name=data_file_key,json=dataFileKey,proto3" json:"data_file_key,omitempty"` + DataFileKey []byte `protobuf:"bytes,1,opt,name=data_file_key,json=dataFileKey,proto3" json:"data_file_key,omitempty"` // The lock store id LockStoreId uint64 `protobuf:"varint,3,opt,name=lock_store_id,json=lockStoreId,proto3" json:"lock_store_id,omitempty"` // The upload sequence number of lock store @@ -301,11 +300,11 @@ func (m *TryAddLockRequest) XXX_DiscardUnknown() { var xxx_messageInfo_TryAddLockRequest proto.InternalMessageInfo -func (m *TryAddLockRequest) GetDataFileKey() string { +func (m *TryAddLockRequest) GetDataFileKey() []byte { if m != nil { return m.DataFileKey } - return "" + return nil } func (m *TryAddLockRequest) GetLockStoreId() uint64 { @@ -371,7 +370,7 @@ func (m *TryAddLockResponse) GetResult() *S3LockResult { type TryMarkDeleteRequest struct { // The data file key to be marked as deleted - DataFileKey string `protobuf:"bytes,1,opt,name=data_file_key,json=dataFileKey,proto3" json:"data_file_key,omitempty"` + DataFileKey []byte `protobuf:"bytes,1,opt,name=data_file_key,json=dataFileKey,proto3" json:"data_file_key,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -410,11 +409,11 @@ func (m *TryMarkDeleteRequest) XXX_DiscardUnknown() { var xxx_messageInfo_TryMarkDeleteRequest proto.InternalMessageInfo -func (m *TryMarkDeleteRequest) GetDataFileKey() string { +func (m *TryMarkDeleteRequest) GetDataFileKey() []byte { if m != nil { return m.DataFileKey } - return "" + return nil } type TryMarkDeleteResponse struct { @@ -772,6 +771,274 @@ func (m *DisaggReadError) GetMsg() string { return "" } +type EstablishDisaggTaskError struct { + // Types that are valid to be assigned to Errors: + // *EstablishDisaggTaskError_ErrorRegion + // *EstablishDisaggTaskError_ErrorLocked + // *EstablishDisaggTaskError_ErrorOther + Errors isEstablishDisaggTaskError_Errors `protobuf_oneof:"errors"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EstablishDisaggTaskError) Reset() { *m = EstablishDisaggTaskError{} } +func (m *EstablishDisaggTaskError) String() string { return proto.CompactTextString(m) } +func (*EstablishDisaggTaskError) ProtoMessage() {} +func (*EstablishDisaggTaskError) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{13} +} +func (m *EstablishDisaggTaskError) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EstablishDisaggTaskError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EstablishDisaggTaskError.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EstablishDisaggTaskError) XXX_Merge(src proto.Message) { + xxx_messageInfo_EstablishDisaggTaskError.Merge(m, src) +} +func (m *EstablishDisaggTaskError) XXX_Size() int { + return m.Size() +} +func (m *EstablishDisaggTaskError) XXX_DiscardUnknown() { + xxx_messageInfo_EstablishDisaggTaskError.DiscardUnknown(m) +} + +var xxx_messageInfo_EstablishDisaggTaskError proto.InternalMessageInfo + +type isEstablishDisaggTaskError_Errors interface { + isEstablishDisaggTaskError_Errors() + MarshalTo([]byte) (int, error) + Size() int +} + +type EstablishDisaggTaskError_ErrorRegion struct { + ErrorRegion *ErrorRegion `protobuf:"bytes,1,opt,name=error_region,json=errorRegion,proto3,oneof" json:"error_region,omitempty"` +} +type EstablishDisaggTaskError_ErrorLocked struct { + ErrorLocked *ErrorLocked `protobuf:"bytes,2,opt,name=error_locked,json=errorLocked,proto3,oneof" json:"error_locked,omitempty"` +} +type EstablishDisaggTaskError_ErrorOther struct { + ErrorOther *ErrorOther `protobuf:"bytes,99,opt,name=error_other,json=errorOther,proto3,oneof" json:"error_other,omitempty"` +} + +func (*EstablishDisaggTaskError_ErrorRegion) isEstablishDisaggTaskError_Errors() {} +func (*EstablishDisaggTaskError_ErrorLocked) isEstablishDisaggTaskError_Errors() {} +func (*EstablishDisaggTaskError_ErrorOther) isEstablishDisaggTaskError_Errors() {} + +func (m *EstablishDisaggTaskError) GetErrors() isEstablishDisaggTaskError_Errors { + if m != nil { + return m.Errors + } + return nil +} + +func (m *EstablishDisaggTaskError) GetErrorRegion() *ErrorRegion { + if x, ok := m.GetErrors().(*EstablishDisaggTaskError_ErrorRegion); ok { + return x.ErrorRegion + } + return nil +} + +func (m *EstablishDisaggTaskError) GetErrorLocked() *ErrorLocked { + if x, ok := m.GetErrors().(*EstablishDisaggTaskError_ErrorLocked); ok { + return x.ErrorLocked + } + return nil +} + +func (m *EstablishDisaggTaskError) GetErrorOther() *ErrorOther { + if x, ok := m.GetErrors().(*EstablishDisaggTaskError_ErrorOther); ok { + return x.ErrorOther + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*EstablishDisaggTaskError) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*EstablishDisaggTaskError_ErrorRegion)(nil), + (*EstablishDisaggTaskError_ErrorLocked)(nil), + (*EstablishDisaggTaskError_ErrorOther)(nil), + } +} + +type ErrorRegion struct { + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + // The read node needs to update its region cache about these regions. + RegionIds []uint64 `protobuf:"varint,2,rep,packed,name=region_ids,json=regionIds,proto3" json:"region_ids,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ErrorRegion) Reset() { *m = ErrorRegion{} } +func (m *ErrorRegion) String() string { return proto.CompactTextString(m) } +func (*ErrorRegion) ProtoMessage() {} +func (*ErrorRegion) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{14} +} +func (m *ErrorRegion) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ErrorRegion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ErrorRegion.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ErrorRegion) XXX_Merge(src proto.Message) { + xxx_messageInfo_ErrorRegion.Merge(m, src) +} +func (m *ErrorRegion) XXX_Size() int { + return m.Size() +} +func (m *ErrorRegion) XXX_DiscardUnknown() { + xxx_messageInfo_ErrorRegion.DiscardUnknown(m) +} + +var xxx_messageInfo_ErrorRegion proto.InternalMessageInfo + +func (m *ErrorRegion) GetMsg() string { + if m != nil { + return m.Msg + } + return "" +} + +func (m *ErrorRegion) GetRegionIds() []uint64 { + if m != nil { + return m.RegionIds + } + return nil +} + +type ErrorLocked struct { + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + // The read node needs to resolve these locks. + Locked []*kvrpcpb.LockInfo `protobuf:"bytes,2,rep,name=locked,proto3" json:"locked,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ErrorLocked) Reset() { *m = ErrorLocked{} } +func (m *ErrorLocked) String() string { return proto.CompactTextString(m) } +func (*ErrorLocked) ProtoMessage() {} +func (*ErrorLocked) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{15} +} +func (m *ErrorLocked) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ErrorLocked) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ErrorLocked.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ErrorLocked) XXX_Merge(src proto.Message) { + xxx_messageInfo_ErrorLocked.Merge(m, src) +} +func (m *ErrorLocked) XXX_Size() int { + return m.Size() +} +func (m *ErrorLocked) XXX_DiscardUnknown() { + xxx_messageInfo_ErrorLocked.DiscardUnknown(m) +} + +var xxx_messageInfo_ErrorLocked proto.InternalMessageInfo + +func (m *ErrorLocked) GetMsg() string { + if m != nil { + return m.Msg + } + return "" +} + +func (m *ErrorLocked) GetLocked() []*kvrpcpb.LockInfo { + if m != nil { + return m.Locked + } + return nil +} + +type ErrorOther struct { + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ErrorOther) Reset() { *m = ErrorOther{} } +func (m *ErrorOther) String() string { return proto.CompactTextString(m) } +func (*ErrorOther) ProtoMessage() {} +func (*ErrorOther) Descriptor() ([]byte, []int) { + return fileDescriptor_1026192e39a9f8dc, []int{16} +} +func (m *ErrorOther) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ErrorOther) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ErrorOther.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ErrorOther) XXX_Merge(src proto.Message) { + xxx_messageInfo_ErrorOther.Merge(m, src) +} +func (m *ErrorOther) XXX_Size() int { + return m.Size() +} +func (m *ErrorOther) XXX_DiscardUnknown() { + xxx_messageInfo_ErrorOther.DiscardUnknown(m) +} + +var xxx_messageInfo_ErrorOther proto.InternalMessageInfo + +func (m *ErrorOther) GetCode() int32 { + if m != nil { + return m.Code + } + return 0 +} + +func (m *ErrorOther) GetMsg() string { + if m != nil { + return m.Msg + } + return "" +} + type EstablishDisaggTaskRequest struct { Meta *DisaggTaskMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` @@ -795,7 +1062,7 @@ func (m *EstablishDisaggTaskRequest) Reset() { *m = EstablishDisaggTaskR func (m *EstablishDisaggTaskRequest) String() string { return proto.CompactTextString(m) } func (*EstablishDisaggTaskRequest) ProtoMessage() {} func (*EstablishDisaggTaskRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1026192e39a9f8dc, []int{13} + return fileDescriptor_1026192e39a9f8dc, []int{17} } func (m *EstablishDisaggTaskRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -874,10 +1141,7 @@ func (m *EstablishDisaggTaskRequest) GetEncodedPlan() []byte { } type EstablishDisaggTaskResponse struct { - Error *DisaggReadError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` - // The read node needs to update its region cache about - // these regions - RetryRegions []*metapb.Region `protobuf:"bytes,2,rep,name=retry_regions,json=retryRegions,proto3" json:"retry_regions,omitempty"` + Error *EstablishDisaggTaskError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` // Write node maintains a snapshot with a lease time. // Read node should read the delta pages // (ColumnFileInMemory and ColumnFileTiny) @@ -895,7 +1159,7 @@ func (m *EstablishDisaggTaskResponse) Reset() { *m = EstablishDisaggTask func (m *EstablishDisaggTaskResponse) String() string { return proto.CompactTextString(m) } func (*EstablishDisaggTaskResponse) ProtoMessage() {} func (*EstablishDisaggTaskResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1026192e39a9f8dc, []int{14} + return fileDescriptor_1026192e39a9f8dc, []int{18} } func (m *EstablishDisaggTaskResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -924,20 +1188,13 @@ func (m *EstablishDisaggTaskResponse) XXX_DiscardUnknown() { var xxx_messageInfo_EstablishDisaggTaskResponse proto.InternalMessageInfo -func (m *EstablishDisaggTaskResponse) GetError() *DisaggReadError { +func (m *EstablishDisaggTaskResponse) GetError() *EstablishDisaggTaskError { if m != nil { return m.Error } return nil } -func (m *EstablishDisaggTaskResponse) GetRetryRegions() []*metapb.Region { - if m != nil { - return m.RetryRegions - } - return nil -} - func (m *EstablishDisaggTaskResponse) GetStoreId() uint64 { if m != nil { return m.StoreId @@ -976,7 +1233,7 @@ func (m *FetchDisaggPagesRequest) Reset() { *m = FetchDisaggPagesRequest func (m *FetchDisaggPagesRequest) String() string { return proto.CompactTextString(m) } func (*FetchDisaggPagesRequest) ProtoMessage() {} func (*FetchDisaggPagesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1026192e39a9f8dc, []int{15} + return fileDescriptor_1026192e39a9f8dc, []int{19} } func (m *FetchDisaggPagesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1052,7 +1309,7 @@ func (m *PagesPacket) Reset() { *m = PagesPacket{} } func (m *PagesPacket) String() string { return proto.CompactTextString(m) } func (*PagesPacket) ProtoMessage() {} func (*PagesPacket) Descriptor() ([]byte, []int) { - return fileDescriptor_1026192e39a9f8dc, []int{16} + return fileDescriptor_1026192e39a9f8dc, []int{20} } func (m *PagesPacket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1123,6 +1380,10 @@ func init() { proto.RegisterType((*GetDisaggConfigResponse)(nil), "disaggregated.GetDisaggConfigResponse") proto.RegisterType((*DisaggTaskMeta)(nil), "disaggregated.DisaggTaskMeta") proto.RegisterType((*DisaggReadError)(nil), "disaggregated.DisaggReadError") + proto.RegisterType((*EstablishDisaggTaskError)(nil), "disaggregated.EstablishDisaggTaskError") + proto.RegisterType((*ErrorRegion)(nil), "disaggregated.ErrorRegion") + proto.RegisterType((*ErrorLocked)(nil), "disaggregated.ErrorLocked") + proto.RegisterType((*ErrorOther)(nil), "disaggregated.ErrorOther") proto.RegisterType((*EstablishDisaggTaskRequest)(nil), "disaggregated.EstablishDisaggTaskRequest") proto.RegisterType((*EstablishDisaggTaskResponse)(nil), "disaggregated.EstablishDisaggTaskResponse") proto.RegisterType((*FetchDisaggPagesRequest)(nil), "disaggregated.FetchDisaggPagesRequest") @@ -1132,70 +1393,78 @@ func init() { func init() { proto.RegisterFile("disaggregated.proto", fileDescriptor_1026192e39a9f8dc) } var fileDescriptor_1026192e39a9f8dc = []byte{ - // 1001 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xcd, 0x72, 0x1b, 0x45, - 0x10, 0xce, 0x5a, 0xb2, 0x77, 0xd5, 0x92, 0x4c, 0x32, 0x09, 0xb6, 0x6c, 0x13, 0x23, 0xb6, 0x38, - 0xf8, 0xa4, 0xaa, 0x58, 0x01, 0xaa, 0x72, 0x48, 0x55, 0x42, 0x12, 0xb2, 0x45, 0x02, 0x66, 0x2c, - 0x52, 0xdc, 0xb6, 0xc6, 0x3b, 0x6d, 0x79, 0x6b, 0x57, 0x3b, 0xeb, 0x99, 0x91, 0x40, 0x4f, 0xc1, - 0x95, 0xe2, 0x21, 0x78, 0x00, 0x78, 0x01, 0x8e, 0x3c, 0x02, 0x65, 0x1e, 0x83, 0x0b, 0x35, 0x3f, - 0xeb, 0x3f, 0x5c, 0x50, 0x81, 0x93, 0xa7, 0xbf, 0xee, 0x9e, 0xe9, 0xfe, 0xbe, 0xde, 0xb6, 0xe0, - 0x2e, 0xcf, 0x15, 0x9b, 0x4e, 0x25, 0x4e, 0x99, 0x46, 0x3e, 0xaa, 0xa5, 0xd0, 0x82, 0xf4, 0xaf, - 0x80, 0xdb, 0x77, 0x32, 0x51, 0x4b, 0x91, 0xa1, 0x52, 0x42, 0xba, 0x88, 0xed, 0xde, 0x0c, 0x35, - 0xab, 0x8f, 0xbc, 0xd5, 0x2f, 0x16, 0xb2, 0xce, 0x1a, 0x33, 0xfe, 0x39, 0x80, 0xde, 0xe1, 0xf8, - 0x95, 0xc8, 0x0a, 0x8a, 0x6a, 0x5e, 0x6a, 0xb2, 0x0f, 0xa1, 0x9a, 0x67, 0xe6, 0x82, 0x41, 0x30, - 0x0c, 0xf6, 0xba, 0xfb, 0x1b, 0xa3, 0xab, 0xcf, 0x1e, 0x3a, 0xef, 0xcb, 0x5b, 0xb4, 0x09, 0x24, - 0x1f, 0x43, 0xa7, 0x12, 0x3a, 0x15, 0xdf, 0x56, 0x28, 0x07, 0x2b, 0x36, 0x6b, 0xf3, 0x5a, 0xd6, - 0x17, 0x42, 0x7f, 0x69, 0xdc, 0x2f, 0x6f, 0xd1, 0xa8, 0xf2, 0x67, 0xf2, 0x11, 0x44, 0x99, 0xa8, - 0x8e, 0xcb, 0x3c, 0xd3, 0x83, 0xd6, 0x8d, 0x69, 0x9f, 0x7a, 0xb7, 0x49, 0x6b, 0x42, 0x9f, 0x86, - 0xb0, 0x8a, 0x52, 0x0a, 0x19, 0x77, 0x20, 0xf4, 0xd5, 0xc4, 0x00, 0x51, 0xf3, 0x44, 0x1c, 0x43, - 0xd4, 0xe4, 0x91, 0x0d, 0x58, 0x93, 0xc8, 0x94, 0xa8, 0x6c, 0x37, 0x1d, 0xea, 0xad, 0x78, 0x01, - 0x77, 0x26, 0x72, 0xf9, 0x84, 0x73, 0xd7, 0xfa, 0xe9, 0x1c, 0x95, 0x26, 0x31, 0xf4, 0x39, 0xd3, - 0x2c, 0x3d, 0xce, 0x4b, 0x4c, 0x0b, 0x5c, 0xfa, 0x9c, 0xae, 0x01, 0x5f, 0xe4, 0x25, 0x7e, 0x8e, - 0x4b, 0x13, 0x53, 0x8a, 0xac, 0x48, 0x95, 0x16, 0x12, 0xd3, 0x9c, 0xdb, 0xc2, 0xdb, 0xb4, 0x6b, - 0xc0, 0x43, 0x83, 0x25, 0x9c, 0x6c, 0x41, 0xe4, 0x62, 0xf0, 0x74, 0xd0, 0xb6, 0xee, 0xd0, 0xba, - 0xf1, 0x34, 0x4e, 0x80, 0x5c, 0x7e, 0x57, 0xd5, 0xa2, 0x52, 0x48, 0xc6, 0xa6, 0x4a, 0x43, 0xbf, - 0xe7, 0x7c, 0xe7, 0x3a, 0xe7, 0x97, 0x14, 0xa2, 0x3e, 0x34, 0x7e, 0x04, 0xf7, 0x26, 0x72, 0xf9, - 0x9a, 0xc9, 0xe2, 0x19, 0x96, 0xa8, 0xf1, 0x2d, 0xba, 0x88, 0x5f, 0xc1, 0xbb, 0xd7, 0x72, 0xff, - 0x4f, 0x25, 0x03, 0xd8, 0xf8, 0x0c, 0xf5, 0x33, 0x1b, 0x68, 0x98, 0xcf, 0xa7, 0xbe, 0x96, 0xf8, - 0x1b, 0x58, 0x77, 0xf0, 0xe1, 0xd8, 0x39, 0x8c, 0x20, 0x47, 0xf3, 0xac, 0x40, 0xdd, 0x08, 0xe2, - 0x2c, 0x42, 0xa0, 0x2d, 0x85, 0xd0, 0x76, 0x7c, 0x3a, 0xd4, 0x9e, 0xc9, 0x36, 0x44, 0x58, 0xf1, - 0x5a, 0xe4, 0x95, 0x9b, 0x8f, 0x0e, 0x3d, 0xb7, 0xe3, 0xaf, 0x61, 0xf3, 0x6f, 0x6f, 0xfa, 0x1e, - 0x1e, 0x41, 0x47, 0x8d, 0xd3, 0xcc, 0x82, 0xbe, 0x8d, 0xfb, 0xd7, 0xda, 0xb8, 0x5a, 0x14, 0x8d, - 0x94, 0x3f, 0xc5, 0x3f, 0xae, 0x34, 0x15, 0x4f, 0x98, 0x2a, 0x5e, 0xa3, 0x66, 0x46, 0x4d, 0xa5, - 0x99, 0xd4, 0xa9, 0x76, 0x9f, 0x44, 0x9b, 0x86, 0xd6, 0x9e, 0x28, 0xe3, 0x3a, 0x9d, 0xa3, 0x5c, - 0x1a, 0xd7, 0x8a, 0x73, 0x59, 0x7b, 0xa2, 0xc8, 0x0e, 0x74, 0x14, 0xca, 0x05, 0xca, 0x8b, 0x19, - 0x89, 0x1c, 0x90, 0x70, 0xf2, 0x21, 0xac, 0x97, 0x22, 0x63, 0x65, 0xea, 0xb2, 0x73, 0xee, 0xc7, - 0xa4, 0x67, 0xd1, 0xaf, 0x0c, 0x98, 0x70, 0xb2, 0x09, 0xa1, 0x66, 0xaa, 0x30, 0xee, 0xd5, 0x61, - 0xb0, 0xd7, 0xa2, 0x6b, 0xc6, 0x4c, 0x38, 0x79, 0x1f, 0xba, 0xf8, 0x1d, 0x66, 0x73, 0x2d, 0xec, - 0xed, 0x6b, 0x96, 0x1a, 0x68, 0x20, 0x17, 0x50, 0xe0, 0x52, 0xd5, 0x2c, 0xb3, 0x23, 0x1a, 0x0e, - 0x83, 0xbd, 0x3e, 0x85, 0x06, 0x4a, 0x38, 0x79, 0x08, 0x5d, 0x56, 0xe7, 0xe9, 0x02, 0xa5, 0xca, - 0x45, 0x35, 0x88, 0x86, 0xc1, 0xde, 0xfa, 0xfe, 0xdd, 0x51, 0xb3, 0x1b, 0x9e, 0x1c, 0x24, 0x6f, - 0x9c, 0x8b, 0x02, 0xab, 0x73, 0x7f, 0x8e, 0x3f, 0x81, 0x77, 0x1c, 0x37, 0x14, 0x19, 0x7f, 0x6e, - 0x3e, 0x41, 0x23, 0x5b, 0x26, 0x38, 0x5a, 0x62, 0x56, 0xa9, 0x3d, 0x93, 0xdb, 0xd0, 0x9a, 0xa9, - 0xa9, 0x57, 0xd2, 0x1c, 0xe3, 0x5f, 0x56, 0x60, 0xfb, 0xb9, 0xd2, 0xec, 0xa8, 0xcc, 0xd5, 0xc9, - 0x05, 0xbd, 0xcd, 0xc4, 0x3e, 0x80, 0xb6, 0xd9, 0x51, 0xff, 0xa8, 0x55, 0x23, 0x07, 0xb5, 0xa1, - 0x64, 0x00, 0x21, 0xe3, 0x5c, 0x9a, 0x35, 0xe5, 0xde, 0x69, 0x4c, 0x43, 0xbc, 0xce, 0x67, 0x28, - 0xe6, 0x3a, 0x55, 0x96, 0xf8, 0x16, 0x8d, 0x3c, 0x70, 0x48, 0x1e, 0x40, 0x28, 0x71, 0x9a, 0x8b, - 0x4a, 0x0d, 0xda, 0xc3, 0x96, 0x5d, 0x38, 0x97, 0x17, 0x26, 0xb5, 0xbe, 0xa4, 0x3a, 0x16, 0xb4, - 0x89, 0x23, 0xf7, 0x01, 0x54, 0x76, 0x82, 0x33, 0x66, 0xd8, 0xf2, 0x42, 0x74, 0x1c, 0xf2, 0x06, - 0x25, 0x79, 0x0c, 0x7d, 0xd3, 0x17, 0xa6, 0xcd, 0xbd, 0x6b, 0xf6, 0xde, 0xad, 0x2b, 0xf7, 0x4e, - 0x4c, 0x84, 0xbb, 0x5c, 0xd1, 0x9e, 0xbe, 0x64, 0x91, 0x0f, 0xa0, 0x87, 0x95, 0xa1, 0x8d, 0xa7, - 0x75, 0xc9, 0x2a, 0xab, 0x55, 0x8f, 0x76, 0x3d, 0x76, 0x50, 0xb2, 0x2a, 0xfe, 0x33, 0x80, 0x9d, - 0x1b, 0xd9, 0xf3, 0xf3, 0xfe, 0xd0, 0xef, 0x43, 0xcf, 0xdf, 0xee, 0x8d, 0xfc, 0x9d, 0x4b, 0x46, - 0x5d, 0x30, 0x19, 0x43, 0x5f, 0xa2, 0x96, 0xcb, 0xf3, 0xc2, 0x57, 0x6c, 0xe1, 0xeb, 0x23, 0xff, - 0xef, 0xc2, 0x15, 0x48, 0x7b, 0x36, 0xa8, 0xa9, 0xd6, 0x7e, 0x0b, 0x57, 0x16, 0x5f, 0xa8, 0xfc, - 0xd2, 0x7b, 0x0c, 0x5d, 0x55, 0xb1, 0x5a, 0x9d, 0x08, 0xdd, 0x0c, 0xf4, 0xbf, 0x6a, 0x09, 0x4d, - 0x46, 0xc2, 0xcd, 0x62, 0xb0, 0xc4, 0xa8, 0xc1, 0xea, 0xb0, 0xb5, 0xd7, 0xa3, 0xde, 0x8a, 0x7f, - 0x0a, 0x60, 0xf3, 0x05, 0xea, 0xcc, 0x77, 0x7e, 0xc0, 0xa6, 0xa8, 0x9a, 0xc1, 0xb9, 0xf6, 0x66, - 0xf0, 0xb6, 0x6f, 0x6e, 0x41, 0xe4, 0xc4, 0xcb, 0xb9, 0x1d, 0xa3, 0x16, 0x0d, 0xad, 0x9d, 0x70, - 0x2b, 0x3b, 0x4e, 0x67, 0x58, 0xe9, 0x8b, 0x5e, 0x3b, 0x1e, 0x71, 0x99, 0x35, 0x9b, 0x9a, 0x44, - 0x37, 0x49, 0x6d, 0x1a, 0x1a, 0x3b, 0xe1, 0x2a, 0xfe, 0x3e, 0x80, 0xae, 0xad, 0xf2, 0x80, 0xd9, - 0xcd, 0xf6, 0xdf, 0xe4, 0xb9, 0x07, 0xab, 0xe6, 0x42, 0x27, 0x4b, 0x8f, 0x3a, 0xc3, 0x90, 0x94, - 0x9d, 0xcc, 0xab, 0xc2, 0x4c, 0xb6, 0x25, 0xc9, 0x59, 0xe4, 0x3d, 0xe8, 0xa8, 0xf9, 0x6c, 0xc6, - 0x64, 0x8e, 0xae, 0x9e, 0x1e, 0xbd, 0x00, 0x9e, 0xc6, 0xbf, 0x9e, 0xed, 0x06, 0xbf, 0x9d, 0xed, - 0x06, 0xbf, 0x9f, 0xed, 0x06, 0x3f, 0xfc, 0xb1, 0x7b, 0x0b, 0x6e, 0x0b, 0x39, 0x1d, 0xe9, 0xbc, - 0x58, 0x8c, 0x8a, 0x85, 0xfd, 0x21, 0x70, 0xb4, 0x66, 0xff, 0x8c, 0xff, 0x0a, 0x00, 0x00, 0xff, - 0xff, 0xd4, 0xab, 0xc2, 0xe4, 0x65, 0x08, 0x00, 0x00, + // 1121 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xdd, 0x6e, 0x1b, 0x45, + 0x14, 0xce, 0xc6, 0x8e, 0x77, 0x7d, 0xd6, 0x29, 0xed, 0xb4, 0x34, 0x4e, 0x4a, 0x43, 0x58, 0x21, + 0x61, 0x6e, 0x2c, 0xd5, 0x29, 0x20, 0x55, 0x50, 0xd4, 0xd2, 0x96, 0x18, 0x5a, 0x1a, 0x26, 0xa6, + 0xe2, 0x6e, 0x35, 0xd9, 0x3d, 0x75, 0x56, 0x6b, 0xef, 0x6c, 0x66, 0xc6, 0x06, 0x3f, 0x05, 0xb7, + 0x88, 0x87, 0xe0, 0x01, 0xe0, 0x05, 0xb8, 0x83, 0x47, 0x40, 0x85, 0x07, 0x41, 0xf3, 0xb3, 0x76, + 0xec, 0x9a, 0x9f, 0x8a, 0x2b, 0xef, 0x77, 0xfe, 0xe6, 0x9c, 0xef, 0x9c, 0x33, 0x63, 0xb8, 0x9a, + 0x66, 0x92, 0x0d, 0x87, 0x02, 0x87, 0x4c, 0x61, 0xda, 0x2d, 0x05, 0x57, 0x9c, 0x6c, 0x2f, 0x09, + 0xf7, 0xae, 0x24, 0xbc, 0x14, 0x3c, 0x41, 0x29, 0xb9, 0xb0, 0x16, 0x7b, 0xdb, 0xf9, 0x54, 0x94, + 0x49, 0x79, 0x6a, 0x61, 0xf4, 0x93, 0x07, 0xad, 0x93, 0xc3, 0xc7, 0x3c, 0xc9, 0x29, 0xca, 0xc9, + 0x48, 0x91, 0x1e, 0xf8, 0x72, 0x92, 0x68, 0x97, 0xb6, 0x77, 0xe0, 0x75, 0xc2, 0xde, 0xf5, 0xee, + 0xf2, 0x41, 0x27, 0x56, 0x7b, 0xb4, 0x41, 0x2b, 0x43, 0xf2, 0x3e, 0x34, 0x0b, 0xae, 0x62, 0xfe, + 0x4d, 0x81, 0xa2, 0xbd, 0x69, 0xbc, 0x76, 0x56, 0xbc, 0xbe, 0xe0, 0xea, 0xa9, 0x56, 0x1f, 0x6d, + 0xd0, 0xa0, 0x70, 0xdf, 0xe4, 0x3d, 0x08, 0x12, 0x5e, 0x3c, 0x1f, 0x65, 0x89, 0x6a, 0xd7, 0xd6, + 0xba, 0x7d, 0xe2, 0xd4, 0xda, 0xad, 0x32, 0xbd, 0xef, 0xc3, 0x16, 0x0a, 0xc1, 0x45, 0xd4, 0x04, + 0xdf, 0x65, 0x13, 0x01, 0x04, 0xd5, 0x11, 0x51, 0x04, 0x41, 0xe5, 0x47, 0xae, 0x43, 0x43, 0x20, + 0x93, 0xbc, 0x30, 0xd5, 0x34, 0xa9, 0x43, 0xd1, 0x14, 0xae, 0x0c, 0xc4, 0xec, 0x5e, 0x9a, 0xda, + 0xd2, 0xcf, 0x27, 0x28, 0x15, 0x89, 0x60, 0x3b, 0x65, 0x8a, 0xc5, 0xcf, 0xb3, 0x11, 0xc6, 0x39, + 0xce, 0x8c, 0x4f, 0x8b, 0x86, 0x5a, 0xf8, 0x28, 0x1b, 0xe1, 0xe7, 0x38, 0xd3, 0x36, 0x23, 0x9e, + 0xe4, 0xb1, 0x54, 0x5c, 0x60, 0x9c, 0xa5, 0x26, 0xf1, 0x3a, 0x0d, 0xb5, 0xf0, 0x44, 0xcb, 0xfa, + 0x29, 0xd9, 0x85, 0xc0, 0xda, 0xe0, 0x79, 0xbb, 0x6e, 0xd4, 0xbe, 0x51, 0xe3, 0x79, 0xd4, 0x07, + 0x72, 0xf1, 0x5c, 0x59, 0xf2, 0x42, 0x22, 0x39, 0xd4, 0x59, 0x6a, 0xfa, 0x1d, 0xe7, 0x37, 0x56, + 0x39, 0xbf, 0xd0, 0x21, 0xea, 0x4c, 0xa3, 0x3b, 0x70, 0x6d, 0x20, 0x66, 0x4f, 0x98, 0xc8, 0x1f, + 0xe0, 0x08, 0x15, 0xbe, 0x42, 0x15, 0xd1, 0x63, 0x78, 0x7d, 0xc5, 0xf7, 0xff, 0x64, 0xd2, 0x86, + 0xeb, 0x9f, 0xa2, 0x7a, 0x60, 0x0c, 0x35, 0xf3, 0xd9, 0xd0, 0xe5, 0x12, 0x7d, 0x0d, 0x97, 0xac, + 0xf8, 0xe4, 0xd0, 0x2a, 0x74, 0x43, 0x4e, 0x27, 0x49, 0x8e, 0xaa, 0x6a, 0x88, 0x45, 0x84, 0x40, + 0x5d, 0x70, 0xae, 0xcc, 0xf8, 0x34, 0xa9, 0xf9, 0x26, 0x7b, 0x10, 0x60, 0x91, 0x96, 0x3c, 0x2b, + 0xec, 0x7c, 0x34, 0xe9, 0x1c, 0x47, 0x5f, 0xc1, 0xce, 0x4b, 0x67, 0xba, 0x1a, 0xee, 0x40, 0x53, + 0x1e, 0xc6, 0x89, 0x11, 0xba, 0x32, 0x6e, 0xae, 0x94, 0xb1, 0x9c, 0x14, 0x0d, 0xa4, 0xfb, 0x8a, + 0x7e, 0xd8, 0xac, 0x32, 0x1e, 0x30, 0x99, 0x3f, 0x41, 0xc5, 0x74, 0x37, 0xa5, 0x62, 0x42, 0xc5, + 0xca, 0xae, 0x44, 0x9d, 0xfa, 0x06, 0x0f, 0xa4, 0x56, 0x9d, 0x4f, 0x50, 0xcc, 0xb4, 0x6a, 0xd3, + 0xaa, 0x0c, 0x1e, 0x48, 0x72, 0x03, 0x9a, 0x12, 0xc5, 0x14, 0xc5, 0x62, 0x46, 0x02, 0x2b, 0xe8, + 0xa7, 0xe4, 0x6d, 0xb8, 0x34, 0xe2, 0x09, 0x1b, 0xc5, 0xd6, 0x3b, 0x4b, 0xdd, 0x98, 0xb4, 0x8c, + 0xf4, 0x4b, 0x2d, 0xec, 0xa7, 0x64, 0x07, 0x7c, 0xc5, 0x64, 0xae, 0xd5, 0x5b, 0x07, 0x5e, 0xa7, + 0x46, 0x1b, 0x1a, 0xf6, 0x53, 0xf2, 0x26, 0x84, 0xf8, 0x2d, 0x26, 0x13, 0xc5, 0x4d, 0xf4, 0x86, + 0xa1, 0x06, 0x2a, 0x91, 0x35, 0xc8, 0x71, 0x26, 0x4b, 0x96, 0x98, 0x11, 0xf5, 0x0f, 0xbc, 0xce, + 0x36, 0x85, 0x4a, 0xd4, 0x4f, 0xc9, 0x6d, 0x08, 0x59, 0x99, 0xc5, 0x53, 0x14, 0x32, 0xe3, 0x45, + 0x3b, 0x38, 0xf0, 0x3a, 0x97, 0x7a, 0x57, 0xbb, 0xd5, 0xdd, 0x70, 0xef, 0xb8, 0xff, 0xcc, 0xaa, + 0x28, 0xb0, 0x32, 0x73, 0xdf, 0xd1, 0x07, 0xf0, 0x9a, 0xe5, 0x86, 0x22, 0x4b, 0x1f, 0xea, 0x15, + 0xd4, 0x6d, 0x4b, 0x78, 0x8a, 0x86, 0x98, 0x2d, 0x6a, 0xbe, 0xc9, 0x65, 0xa8, 0x8d, 0xe5, 0xd0, + 0x75, 0x52, 0x7f, 0x46, 0x7f, 0x7a, 0xd0, 0x7e, 0x28, 0x15, 0x3b, 0x1d, 0x65, 0xf2, 0x6c, 0x41, + 0xaf, 0x0d, 0xf1, 0x31, 0xb4, 0xcc, 0x3a, 0xc7, 0x02, 0x87, 0x99, 0x5b, 0xd4, 0xb0, 0xb7, 0xb7, + 0xd2, 0x31, 0x63, 0x4b, 0x8d, 0xc5, 0xd1, 0x06, 0x0d, 0x71, 0x01, 0x17, 0x01, 0xf4, 0x92, 0x61, + 0xea, 0x6e, 0xa0, 0xb5, 0x01, 0x1e, 0x1b, 0x8b, 0x79, 0x00, 0x0b, 0xc9, 0x87, 0x60, 0x61, 0xcc, + 0xd5, 0x19, 0x8a, 0x76, 0x62, 0xfc, 0x77, 0xd7, 0xf9, 0x3f, 0xd5, 0x06, 0x47, 0x1b, 0x14, 0x70, + 0x8e, 0xee, 0x07, 0xd0, 0x30, 0x48, 0x46, 0x77, 0x21, 0xbc, 0x90, 0x66, 0xc5, 0x83, 0x37, 0xe7, + 0x81, 0xdc, 0x04, 0xb0, 0x45, 0xc6, 0x59, 0xaa, 0x27, 0xa6, 0xd6, 0xa9, 0xd3, 0xa6, 0x95, 0xf4, + 0x53, 0x19, 0x7d, 0xe6, 0xfc, 0x5d, 0x5a, 0x2f, 0xfb, 0xbf, 0x0b, 0x8d, 0x79, 0x8d, 0xb5, 0x4e, + 0xd8, 0xbb, 0x32, 0xef, 0x98, 0x76, 0xe9, 0x17, 0xcf, 0x39, 0x75, 0x06, 0x51, 0x0f, 0x60, 0x91, + 0xf1, 0x7f, 0x6c, 0xd3, 0xcf, 0x9b, 0xb0, 0xb7, 0xa6, 0x4d, 0xd5, 0xc5, 0x72, 0x0b, 0xea, 0x63, + 0x54, 0xec, 0x1f, 0x57, 0xaa, 0xda, 0x1a, 0x6a, 0x4c, 0x49, 0x1b, 0x7c, 0x96, 0xa6, 0x42, 0xbf, + 0x26, 0xf6, 0x9c, 0x0a, 0xea, 0xfd, 0x50, 0xd9, 0x18, 0xf9, 0x44, 0xc5, 0xd2, 0xec, 0x47, 0x8d, + 0x06, 0x4e, 0x70, 0x42, 0x6e, 0x81, 0x6f, 0x59, 0x91, 0xed, 0xba, 0x29, 0x74, 0xa7, 0x7b, 0xf1, + 0x25, 0xb3, 0xfc, 0x9a, 0x72, 0x2b, 0x3b, 0x4d, 0xad, 0x4c, 0xce, 0x70, 0xcc, 0xf4, 0x50, 0xbb, + 0x7d, 0x69, 0x5a, 0xc9, 0x33, 0x14, 0xe4, 0x2e, 0x6c, 0xeb, 0xba, 0x30, 0xae, 0xe2, 0x36, 0x4c, + 0xdc, 0xdd, 0xa5, 0xb8, 0x03, 0x6d, 0x61, 0x83, 0x4b, 0xda, 0x52, 0x17, 0x10, 0x79, 0x0b, 0x5a, + 0x58, 0x68, 0xda, 0xd2, 0xb8, 0x1c, 0xb1, 0xc2, 0xac, 0x54, 0x8b, 0x86, 0x4e, 0x76, 0x3c, 0x62, + 0x45, 0xf4, 0xab, 0x07, 0x37, 0xd6, 0xb2, 0xe7, 0xae, 0xa5, 0x8f, 0xdc, 0xb3, 0xe5, 0xf8, 0x7b, + 0x67, 0x75, 0xbe, 0xfe, 0x66, 0x3f, 0xa8, 0xf5, 0xb2, 0xd7, 0xd0, 0xd2, 0x9b, 0xe3, 0x4b, 0xf7, + 0xde, 0xdc, 0x85, 0x50, 0x16, 0xac, 0x94, 0x67, 0x5c, 0x55, 0x77, 0xc9, 0xbf, 0xf6, 0x07, 0x2a, + 0x8f, 0x7e, 0xaa, 0xef, 0x64, 0x53, 0xac, 0x6c, 0x6f, 0x1d, 0xd4, 0x3a, 0x2d, 0xea, 0x50, 0xf4, + 0xa3, 0x07, 0x3b, 0x8f, 0x50, 0x25, 0x2e, 0xa5, 0x63, 0x36, 0x44, 0x59, 0x0d, 0xc3, 0xca, 0x99, + 0xde, 0xab, 0x9e, 0xb9, 0x0b, 0x81, 0x6d, 0x48, 0x66, 0x17, 0xb6, 0x46, 0x7d, 0x83, 0xfb, 0xa9, + 0x69, 0x25, 0x0e, 0xc7, 0x58, 0xa8, 0x45, 0xad, 0x4d, 0x27, 0xb1, 0x9e, 0x25, 0x1b, 0xa2, 0x59, + 0xa1, 0xba, 0x59, 0x21, 0x5f, 0x63, 0xbd, 0x40, 0xdf, 0x79, 0x10, 0x9a, 0x2c, 0x8f, 0x99, 0x79, + 0x54, 0x6e, 0x2f, 0x53, 0xbe, 0xbf, 0x36, 0xbd, 0xf9, 0x65, 0x56, 0x31, 0x7d, 0x0d, 0xb6, 0x74, + 0x40, 0xbb, 0xa0, 0x2d, 0x6a, 0x81, 0x26, 0x29, 0x39, 0x9b, 0x14, 0xb9, 0x9e, 0x56, 0x43, 0x92, + 0x45, 0xe4, 0x0d, 0x68, 0xca, 0xc9, 0x78, 0xcc, 0x44, 0x86, 0x36, 0x9f, 0x16, 0x5d, 0x08, 0xee, + 0x47, 0xbf, 0xbc, 0xd8, 0xf7, 0x7e, 0x7b, 0xb1, 0xef, 0xfd, 0xfe, 0x62, 0xdf, 0xfb, 0xfe, 0x8f, + 0xfd, 0x0d, 0xb8, 0xcc, 0xc5, 0xb0, 0xab, 0xb2, 0x7c, 0xda, 0xcd, 0xa7, 0xe6, 0x3f, 0xd8, 0x69, + 0xc3, 0xfc, 0x1c, 0xfe, 0x15, 0x00, 0x00, 0xff, 0xff, 0x8a, 0xbe, 0x80, 0x43, 0xd2, 0x09, 0x00, + 0x00, } func (m *S3LockResult) Marshal() (dAtA []byte, err error) { @@ -1763,7 +2032,7 @@ func (m *DisaggReadError) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *EstablishDisaggTaskRequest) Marshal() (dAtA []byte, err error) { +func (m *EstablishDisaggTaskError) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -1773,12 +2042,12 @@ func (m *EstablishDisaggTaskRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EstablishDisaggTaskRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *EstablishDisaggTaskError) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *EstablishDisaggTaskRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *EstablishDisaggTaskError) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -1787,61 +2056,28 @@ func (m *EstablishDisaggTaskRequest) MarshalToSizedBuffer(dAtA []byte) (int, err i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if len(m.EncodedPlan) > 0 { - i -= len(m.EncodedPlan) - copy(dAtA[i:], m.EncodedPlan) - i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.EncodedPlan))) - i-- - dAtA[i] = 0x3a - } - if len(m.TableRegions) > 0 { - for iNdEx := len(m.TableRegions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.TableRegions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDisaggregated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - } - } - if m.SchemaVer != 0 { - i = encodeVarintDisaggregated(dAtA, i, uint64(m.SchemaVer)) - i-- - dAtA[i] = 0x28 - } - if len(m.Regions) > 0 { - for iNdEx := len(m.Regions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Regions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + if m.Errors != nil { + { + size := m.Errors.Size() + i -= size + if _, err := m.Errors.MarshalTo(dAtA[i:]); err != nil { + return 0, err } - i-- - dAtA[i] = 0x22 } } - if m.TimeoutS != 0 { - i = encodeVarintDisaggregated(dAtA, i, uint64(m.TimeoutS)) - i-- - dAtA[i] = 0x18 - } - if len(m.Address) > 0 { - i -= len(m.Address) - copy(dAtA[i:], m.Address) - i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Address))) - i-- - dAtA[i] = 0x12 - } - if m.Meta != nil { + return len(dAtA) - i, nil +} + +func (m *EstablishDisaggTaskError_ErrorRegion) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EstablishDisaggTaskError_ErrorRegion) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ErrorRegion != nil { { - size, err := m.Meta.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.ErrorRegion.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1853,43 +2089,16 @@ func (m *EstablishDisaggTaskRequest) MarshalToSizedBuffer(dAtA []byte) (int, err } return len(dAtA) - i, nil } - -func (m *EstablishDisaggTaskResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *EstablishDisaggTaskResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *EstablishDisaggTaskError_ErrorLocked) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *EstablishDisaggTaskResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *EstablishDisaggTaskError_ErrorLocked) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.Tables) > 0 { - for iNdEx := len(m.Tables) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Tables[iNdEx]) - copy(dAtA[i:], m.Tables[iNdEx]) - i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Tables[iNdEx]))) - i-- - dAtA[i] = 0x2a - } - } - if m.SnapshotId != nil { + if m.ErrorLocked != nil { { - size, err := m.SnapshotId.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.ErrorLocked.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1897,30 +2106,20 @@ func (m *EstablishDisaggTaskResponse) MarshalToSizedBuffer(dAtA []byte) (int, er i = encodeVarintDisaggregated(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x22 - } - if m.StoreId != 0 { - i = encodeVarintDisaggregated(dAtA, i, uint64(m.StoreId)) - i-- - dAtA[i] = 0x18 - } - if len(m.RetryRegions) > 0 { - for iNdEx := len(m.RetryRegions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.RetryRegions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDisaggregated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } + dAtA[i] = 0x12 } - if m.Error != nil { + return len(dAtA) - i, nil +} +func (m *EstablishDisaggTaskError_ErrorOther) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EstablishDisaggTaskError_ErrorOther) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ErrorOther != nil { { - size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.ErrorOther.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1928,12 +2127,13 @@ func (m *EstablishDisaggTaskResponse) MarshalToSizedBuffer(dAtA []byte) (int, er i = encodeVarintDisaggregated(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0xa + dAtA[i] = 0x6 + i-- + dAtA[i] = 0x9a } return len(dAtA) - i, nil } - -func (m *FetchDisaggPagesRequest) Marshal() (dAtA []byte, err error) { +func (m *ErrorRegion) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -1943,12 +2143,12 @@ func (m *FetchDisaggPagesRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *FetchDisaggPagesRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *ErrorRegion) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *FetchDisaggPagesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ErrorRegion) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -1957,10 +2157,10 @@ func (m *FetchDisaggPagesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if len(m.PageIds) > 0 { - dAtA11 := make([]byte, len(m.PageIds)*10) + if len(m.RegionIds) > 0 { + dAtA11 := make([]byte, len(m.RegionIds)*10) var j10 int - for _, num := range m.PageIds { + for _, num := range m.RegionIds { for num >= 1<<7 { dAtA11[j10] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -1973,34 +2173,67 @@ func (m *FetchDisaggPagesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) copy(dAtA[i:], dAtA11[:j10]) i = encodeVarintDisaggregated(dAtA, i, uint64(j10)) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x12 } - if m.SegmentId != 0 { - i = encodeVarintDisaggregated(dAtA, i, uint64(m.SegmentId)) + if len(m.Msg) > 0 { + i -= len(m.Msg) + copy(dAtA[i:], m.Msg) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Msg))) i-- - dAtA[i] = 0x18 + dAtA[i] = 0xa } - if m.TableId != 0 { - i = encodeVarintDisaggregated(dAtA, i, uint64(m.TableId)) - i-- - dAtA[i] = 0x10 + return len(dAtA) - i, nil +} + +func (m *ErrorLocked) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - if m.SnapshotId != nil { - { - size, err := m.SnapshotId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + return dAtA[:n], nil +} + +func (m *ErrorLocked) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ErrorLocked) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Locked) > 0 { + for iNdEx := len(m.Locked) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Locked[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 } + } + if len(m.Msg) > 0 { + i -= len(m.Msg) + copy(dAtA[i:], m.Msg) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Msg))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *PagesPacket) Marshal() (dAtA []byte, err error) { +func (m *ErrorOther) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2010,12 +2243,12 @@ func (m *PagesPacket) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *PagesPacket) MarshalTo(dAtA []byte) (int, error) { +func (m *ErrorOther) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *PagesPacket) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ErrorOther) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2024,36 +2257,100 @@ func (m *PagesPacket) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if len(m.Summaries) > 0 { - for iNdEx := len(m.Summaries) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Summaries[iNdEx]) - copy(dAtA[i:], m.Summaries[iNdEx]) - i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Summaries[iNdEx]))) - i-- - dAtA[i] = 0x22 - } + if len(m.Msg) > 0 { + i -= len(m.Msg) + copy(dAtA[i:], m.Msg) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Msg))) + i-- + dAtA[i] = 0x12 } - if len(m.Chunks) > 0 { - for iNdEx := len(m.Chunks) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Chunks[iNdEx]) - copy(dAtA[i:], m.Chunks[iNdEx]) - i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Chunks[iNdEx]))) + if m.Code != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *EstablishDisaggTaskRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EstablishDisaggTaskRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EstablishDisaggTaskRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.EncodedPlan) > 0 { + i -= len(m.EncodedPlan) + copy(dAtA[i:], m.EncodedPlan) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.EncodedPlan))) + i-- + dAtA[i] = 0x3a + } + if len(m.TableRegions) > 0 { + for iNdEx := len(m.TableRegions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.TableRegions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x1a + dAtA[i] = 0x32 } } - if len(m.Pages) > 0 { - for iNdEx := len(m.Pages) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Pages[iNdEx]) - copy(dAtA[i:], m.Pages[iNdEx]) - i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Pages[iNdEx]))) + if m.SchemaVer != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.SchemaVer)) + i-- + dAtA[i] = 0x28 + } + if len(m.Regions) > 0 { + for iNdEx := len(m.Regions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Regions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x12 + dAtA[i] = 0x22 } } - if m.Error != nil { + if m.TimeoutS != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.TimeoutS)) + i-- + dAtA[i] = 0x18 + } + if len(m.Address) > 0 { + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0x12 + } + if m.Meta != nil { { - size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Meta.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2066,32 +2363,230 @@ func (m *PagesPacket) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func encodeVarintDisaggregated(dAtA []byte, offset int, v uint64) int { - offset -= sovDisaggregated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *EstablishDisaggTaskResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - dAtA[offset] = uint8(v) - return base + return dAtA[:n], nil } -func (m *S3LockResult) Size() (n int) { - if m == nil { - return 0 - } + +func (m *EstablishDisaggTaskResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EstablishDisaggTaskResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.Error != nil { - n += m.Error.Size() - } if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - return n -} - + if len(m.Tables) > 0 { + for iNdEx := len(m.Tables) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Tables[iNdEx]) + copy(dAtA[i:], m.Tables[iNdEx]) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Tables[iNdEx]))) + i-- + dAtA[i] = 0x2a + } + } + if m.SnapshotId != nil { + { + size, err := m.SnapshotId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.StoreId != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.StoreId)) + i-- + dAtA[i] = 0x18 + } + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FetchDisaggPagesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FetchDisaggPagesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FetchDisaggPagesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.PageIds) > 0 { + dAtA16 := make([]byte, len(m.PageIds)*10) + var j15 int + for _, num := range m.PageIds { + for num >= 1<<7 { + dAtA16[j15] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j15++ + } + dAtA16[j15] = uint8(num) + j15++ + } + i -= j15 + copy(dAtA[i:], dAtA16[:j15]) + i = encodeVarintDisaggregated(dAtA, i, uint64(j15)) + i-- + dAtA[i] = 0x22 + } + if m.SegmentId != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.SegmentId)) + i-- + dAtA[i] = 0x18 + } + if m.TableId != 0 { + i = encodeVarintDisaggregated(dAtA, i, uint64(m.TableId)) + i-- + dAtA[i] = 0x10 + } + if m.SnapshotId != nil { + { + size, err := m.SnapshotId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PagesPacket) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PagesPacket) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PagesPacket) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Summaries) > 0 { + for iNdEx := len(m.Summaries) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Summaries[iNdEx]) + copy(dAtA[i:], m.Summaries[iNdEx]) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Summaries[iNdEx]))) + i-- + dAtA[i] = 0x22 + } + } + if len(m.Chunks) > 0 { + for iNdEx := len(m.Chunks) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Chunks[iNdEx]) + copy(dAtA[i:], m.Chunks[iNdEx]) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Chunks[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.Pages) > 0 { + for iNdEx := len(m.Pages) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Pages[iNdEx]) + copy(dAtA[i:], m.Pages[iNdEx]) + i = encodeVarintDisaggregated(dAtA, i, uint64(len(m.Pages[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDisaggregated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintDisaggregated(dAtA []byte, offset int, v uint64) int { + offset -= sovDisaggregated(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *S3LockResult) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + n += m.Error.Size() + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *S3LockResult_Success) Size() (n int) { if m == nil { return 0 @@ -2346,66 +2841,175 @@ func (m *DisaggReadError) Size() (n int) { return n } -func (m *EstablishDisaggTaskRequest) Size() (n int) { +func (m *EstablishDisaggTaskError) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Meta != nil { - l = m.Meta.Size() - n += 1 + l + sovDisaggregated(uint64(l)) + if m.Errors != nil { + n += m.Errors.Size() } - l = len(m.Address) - if l > 0 { + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *EstablishDisaggTaskError_ErrorRegion) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ErrorRegion != nil { + l = m.ErrorRegion.Size() n += 1 + l + sovDisaggregated(uint64(l)) } - if m.TimeoutS != 0 { - n += 1 + sovDisaggregated(uint64(m.TimeoutS)) + return n +} +func (m *EstablishDisaggTaskError_ErrorLocked) Size() (n int) { + if m == nil { + return 0 } - if len(m.Regions) > 0 { - for _, e := range m.Regions { - l = e.Size() - n += 1 + l + sovDisaggregated(uint64(l)) - } + var l int + _ = l + if m.ErrorLocked != nil { + l = m.ErrorLocked.Size() + n += 1 + l + sovDisaggregated(uint64(l)) } - if m.SchemaVer != 0 { - n += 1 + sovDisaggregated(uint64(m.SchemaVer)) + return n +} +func (m *EstablishDisaggTaskError_ErrorOther) Size() (n int) { + if m == nil { + return 0 } - if len(m.TableRegions) > 0 { - for _, e := range m.TableRegions { - l = e.Size() - n += 1 + l + sovDisaggregated(uint64(l)) - } + var l int + _ = l + if m.ErrorOther != nil { + l = m.ErrorOther.Size() + n += 2 + l + sovDisaggregated(uint64(l)) } - l = len(m.EncodedPlan) + return n +} +func (m *ErrorRegion) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Msg) if l > 0 { n += 1 + l + sovDisaggregated(uint64(l)) } + if len(m.RegionIds) > 0 { + l = 0 + for _, e := range m.RegionIds { + l += sovDisaggregated(uint64(e)) + } + n += 1 + sovDisaggregated(uint64(l)) + l + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } return n } -func (m *EstablishDisaggTaskResponse) Size() (n int) { +func (m *ErrorLocked) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Error != nil { - l = m.Error.Size() + l = len(m.Msg) + if l > 0 { n += 1 + l + sovDisaggregated(uint64(l)) } - if len(m.RetryRegions) > 0 { - for _, e := range m.RetryRegions { + if len(m.Locked) > 0 { + for _, e := range m.Locked { l = e.Size() n += 1 + l + sovDisaggregated(uint64(l)) } } - if m.StoreId != 0 { - n += 1 + sovDisaggregated(uint64(m.StoreId)) + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ErrorOther) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovDisaggregated(uint64(m.Code)) + } + l = len(m.Msg) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *EstablishDisaggTaskRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Meta != nil { + l = m.Meta.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + l = len(m.Address) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.TimeoutS != 0 { + n += 1 + sovDisaggregated(uint64(m.TimeoutS)) + } + if len(m.Regions) > 0 { + for _, e := range m.Regions { + l = e.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + } + if m.SchemaVer != 0 { + n += 1 + sovDisaggregated(uint64(m.SchemaVer)) + } + if len(m.TableRegions) > 0 { + for _, e := range m.TableRegions { + l = e.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + } + l = len(m.EncodedPlan) + if l > 0 { + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *EstablishDisaggTaskResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovDisaggregated(uint64(l)) + } + if m.StoreId != 0 { + n += 1 + sovDisaggregated(uint64(m.StoreId)) } if m.SnapshotId != nil { l = m.SnapshotId.Size() @@ -2467,32 +3071,496 @@ func (m *PagesPacket) Size() (n int) { l = len(b) n += 1 + l + sovDisaggregated(uint64(l)) } - } - if len(m.Chunks) > 0 { - for _, b := range m.Chunks { - l = len(b) - n += 1 + l + sovDisaggregated(uint64(l)) + } + if len(m.Chunks) > 0 { + for _, b := range m.Chunks { + l = len(b) + n += 1 + l + sovDisaggregated(uint64(l)) + } + } + if len(m.Summaries) > 0 { + for _, b := range m.Summaries { + l = len(b) + n += 1 + l + sovDisaggregated(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovDisaggregated(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozDisaggregated(x uint64) (n int) { + return sovDisaggregated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *S3LockResult) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: S3LockResult: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: S3LockResult: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &Success{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Error = &S3LockResult_Success{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NotOwner", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &NotOwner{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Error = &S3LockResult_NotOwner{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conflict", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &Conflict{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Error = &S3LockResult_Conflict{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Success) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Success: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Success: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NotOwner) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NotOwner: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NotOwner: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Conflict) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Conflict: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Conflict: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TryAddLockRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TryAddLockRequest: wiretype end group for non-group") } - } - if len(m.Summaries) > 0 { - for _, b := range m.Summaries { - l = len(b) - n += 1 + l + sovDisaggregated(uint64(l)) + if fieldNum <= 0 { + return fmt.Errorf("proto: TryAddLockRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DataFileKey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DataFileKey = append(m.DataFileKey[:0], dAtA[iNdEx:postIndex]...) + if m.DataFileKey == nil { + m.DataFileKey = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LockStoreId", wireType) + } + m.LockStoreId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LockStoreId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LockSeq", wireType) + } + m.LockSeq = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LockSeq |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy } } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} -func sovDisaggregated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozDisaggregated(x uint64) (n int) { - return sovDisaggregated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil } -func (m *S3LockResult) Unmarshal(dAtA []byte) error { +func (m *TryAddLockResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2515,15 +3583,15 @@ func (m *S3LockResult) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: S3LockResult: wiretype end group for non-group") + return fmt.Errorf("proto: TryAddLockResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: S3LockResult: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TryAddLockResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2550,17 +3618,69 @@ func (m *S3LockResult) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &Success{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Result == nil { + m.Result = &S3LockResult{} + } + if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Error = &S3LockResult_Success{v} iNdEx = postIndex - case 2: + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TryMarkDeleteRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TryMarkDeleteRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TryMarkDeleteRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NotOwner", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DataFileKey", wireType) } - var msglen int + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -2570,30 +3690,80 @@ func (m *S3LockResult) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + if byteLen < 0 { return ErrInvalidLengthDisaggregated } - postIndex := iNdEx + msglen + postIndex := iNdEx + byteLen if postIndex < 0 { return ErrInvalidLengthDisaggregated } if postIndex > l { return io.ErrUnexpectedEOF } - v := &NotOwner{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + m.DataFileKey = append(m.DataFileKey[:0], dAtA[iNdEx:postIndex]...) + if m.DataFileKey == nil { + m.DataFileKey = []byte{} } - m.Error = &S3LockResult_NotOwner{v} iNdEx = postIndex - case 3: + default: + iNdEx = preIndex + skippy, err := skipDisaggregated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthDisaggregated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TryMarkDeleteResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TryMarkDeleteResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TryMarkDeleteResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conflict", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2620,11 +3790,12 @@ func (m *S3LockResult) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &Conflict{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Result == nil { + m.Result = &S3LockResult{} + } + if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Error = &S3LockResult_Conflict{v} iNdEx = postIndex default: iNdEx = preIndex @@ -2648,7 +3819,7 @@ func (m *S3LockResult) Unmarshal(dAtA []byte) error { } return nil } -func (m *Success) Unmarshal(dAtA []byte) error { +func (m *GetDisaggConfigRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2671,10 +3842,10 @@ func (m *Success) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Success: wiretype end group for non-group") + return fmt.Errorf("proto: GetDisaggConfigRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Success: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: GetDisaggConfigRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -2699,7 +3870,7 @@ func (m *Success) Unmarshal(dAtA []byte) error { } return nil } -func (m *NotOwner) Unmarshal(dAtA []byte) error { +func (m *DisaggS3Config) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2722,12 +3893,108 @@ func (m *NotOwner) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NotOwner: wiretype end group for non-group") + return fmt.Errorf("proto: DisaggS3Config: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NotOwner: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DisaggS3Config: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bucket", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bucket = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Root", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Root = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Endpoint", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Endpoint = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipDisaggregated(dAtA[iNdEx:]) @@ -2750,7 +4017,7 @@ func (m *NotOwner) Unmarshal(dAtA []byte) error { } return nil } -func (m *Conflict) Unmarshal(dAtA []byte) error { +func (m *GetDisaggConfigResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2773,17 +4040,17 @@ func (m *Conflict) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Conflict: wiretype end group for non-group") + return fmt.Errorf("proto: GetDisaggConfigResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Conflict: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: GetDisaggConfigResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field S3Config", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -2793,23 +4060,27 @@ func (m *Conflict) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthDisaggregated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthDisaggregated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Reason = string(dAtA[iNdEx:postIndex]) + if m.S3Config == nil { + m.S3Config = &DisaggS3Config{} + } + if err := m.S3Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -2833,7 +4104,7 @@ func (m *Conflict) Unmarshal(dAtA []byte) error { } return nil } -func (m *TryAddLockRequest) Unmarshal(dAtA []byte) error { +func (m *DisaggTaskMeta) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2856,17 +4127,17 @@ func (m *TryAddLockRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TryAddLockRequest: wiretype end group for non-group") + return fmt.Errorf("proto: DisaggTaskMeta: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TryAddLockRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DisaggTaskMeta: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DataFileKey", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartTs", wireType) } - var stringLen uint64 + m.StartTs = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -2876,29 +4147,35 @@ func (m *TryAddLockRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.StartTs |= uint64(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthDisaggregated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthDisaggregated + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QueryTs", wireType) } - if postIndex > l { - return io.ErrUnexpectedEOF + m.QueryTs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QueryTs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - m.DataFileKey = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex case 3: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LockStoreId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ServerId", wireType) } - m.LockStoreId = 0 + m.ServerId = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -2908,16 +4185,16 @@ func (m *TryAddLockRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.LockStoreId |= uint64(b&0x7F) << shift + m.ServerId |= uint64(b&0x7F) << shift if b < 0x80 { break } } case 4: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LockSeq", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LocalQueryId", wireType) } - m.LockSeq = 0 + m.LocalQueryId = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -2927,67 +4204,35 @@ func (m *TryAddLockRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.LockSeq |= uint64(b&0x7F) << shift + m.LocalQueryId |= uint64(b&0x7F) << shift if b < 0x80 { break } } - default: - iNdEx = preIndex - skippy, err := skipDisaggregated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthDisaggregated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TryAddLockResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDisaggregated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TaskId", wireType) } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.TaskId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TaskId |= int64(b&0x7F) << shift + if b < 0x80 { + break + } } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TryAddLockResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TryAddLockResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ExecutorId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -2997,84 +4242,29 @@ func (m *TryAddLockResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthDisaggregated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthDisaggregated } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Result == nil { - m.Result = &S3LockResult{} - } - if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.ExecutorId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipDisaggregated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthDisaggregated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TryMarkDeleteRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDisaggregated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TryMarkDeleteRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TryMarkDeleteRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DataFileKey", wireType) + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KeyspaceId", wireType) } - var stringLen uint64 + m.KeyspaceId = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -3084,24 +4274,30 @@ func (m *TryMarkDeleteRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.KeyspaceId |= uint32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthDisaggregated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthDisaggregated + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ApiVersion", wireType) } - if postIndex > l { - return io.ErrUnexpectedEOF + m.ApiVersion = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ApiVersion |= kvrpcpb.APIVersion(b&0x7F) << shift + if b < 0x80 { + break + } } - m.DataFileKey = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipDisaggregated(dAtA[iNdEx:]) @@ -3124,7 +4320,7 @@ func (m *TryMarkDeleteRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *TryMarkDeleteResponse) Unmarshal(dAtA []byte) error { +func (m *DisaggReadError) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3147,17 +4343,36 @@ func (m *TryMarkDeleteResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TryMarkDeleteResponse: wiretype end group for non-group") + return fmt.Errorf("proto: DisaggReadError: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TryMarkDeleteResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DisaggReadError: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Msg", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -3167,27 +4382,23 @@ func (m *TryMarkDeleteResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthDisaggregated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthDisaggregated } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Result == nil { - m.Result = &S3LockResult{} - } - if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Msg = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -3211,58 +4422,7 @@ func (m *TryMarkDeleteResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *GetDisaggConfigRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDisaggregated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GetDisaggConfigRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GetDisaggConfigRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipDisaggregated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthDisaggregated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DisaggS3Config) Unmarshal(dAtA []byte) error { +func (m *EstablishDisaggTaskError) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3285,17 +4445,17 @@ func (m *DisaggS3Config) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DisaggS3Config: wiretype end group for non-group") + return fmt.Errorf("proto: EstablishDisaggTaskError: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DisaggS3Config: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EstablishDisaggTaskError: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Bucket", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ErrorRegion", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -3305,29 +4465,32 @@ func (m *DisaggS3Config) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthDisaggregated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthDisaggregated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Bucket = string(dAtA[iNdEx:postIndex]) + v := &ErrorRegion{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Errors = &EstablishDisaggTaskError_ErrorRegion{v} iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Root", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ErrorLocked", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -3337,29 +4500,32 @@ func (m *DisaggS3Config) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthDisaggregated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthDisaggregated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Root = string(dAtA[iNdEx:postIndex]) + v := &ErrorLocked{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Errors = &EstablishDisaggTaskError_ErrorLocked{v} iNdEx = postIndex - case 3: + case 99: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Endpoint", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ErrorOther", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -3369,23 +4535,26 @@ func (m *DisaggS3Config) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthDisaggregated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthDisaggregated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Endpoint = string(dAtA[iNdEx:postIndex]) + v := &ErrorOther{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Errors = &EstablishDisaggTaskError_ErrorOther{v} iNdEx = postIndex default: iNdEx = preIndex @@ -3409,7 +4578,7 @@ func (m *DisaggS3Config) Unmarshal(dAtA []byte) error { } return nil } -func (m *GetDisaggConfigResponse) Unmarshal(dAtA []byte) error { +func (m *ErrorRegion) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3432,17 +4601,17 @@ func (m *GetDisaggConfigResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: GetDisaggConfigResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ErrorRegion: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: GetDisaggConfigResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ErrorRegion: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field S3Config", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Msg", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -3452,28 +4621,100 @@ func (m *GetDisaggConfigResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthDisaggregated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthDisaggregated } if postIndex > l { return io.ErrUnexpectedEOF } - if m.S3Config == nil { - m.S3Config = &DisaggS3Config{} - } - if err := m.S3Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Msg = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.RegionIds = append(m.RegionIds, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthDisaggregated + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.RegionIds) == 0 { + m.RegionIds = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDisaggregated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.RegionIds = append(m.RegionIds, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field RegionIds", wireType) + } default: iNdEx = preIndex skippy, err := skipDisaggregated(dAtA[iNdEx:]) @@ -3496,7 +4737,7 @@ func (m *GetDisaggConfigResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *DisaggTaskMeta) Unmarshal(dAtA []byte) error { +func (m *ErrorLocked) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3519,110 +4760,15 @@ func (m *DisaggTaskMeta) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DisaggTaskMeta: wiretype end group for non-group") + return fmt.Errorf("proto: ErrorLocked: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DisaggTaskMeta: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ErrorLocked: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTs", wireType) - } - m.StartTs = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDisaggregated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.StartTs |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field QueryTs", wireType) - } - m.QueryTs = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDisaggregated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.QueryTs |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ServerId", wireType) - } - m.ServerId = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDisaggregated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ServerId |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LocalQueryId", wireType) - } - m.LocalQueryId = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDisaggregated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.LocalQueryId |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TaskId", wireType) - } - m.TaskId = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDisaggregated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.TaskId |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ExecutorId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Msg", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3650,13 +4796,13 @@ func (m *DisaggTaskMeta) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ExecutorId = string(dAtA[iNdEx:postIndex]) + m.Msg = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field KeyspaceId", wireType) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Locked", wireType) } - m.KeyspaceId = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDisaggregated @@ -3666,30 +4812,26 @@ func (m *DisaggTaskMeta) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.KeyspaceId |= uint32(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ApiVersion", wireType) + if msglen < 0 { + return ErrInvalidLengthDisaggregated } - m.ApiVersion = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDisaggregated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ApiVersion |= kvrpcpb.APIVersion(b&0x7F) << shift - if b < 0x80 { - break - } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthDisaggregated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Locked = append(m.Locked, &kvrpcpb.LockInfo{}) + if err := m.Locked[len(m.Locked)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipDisaggregated(dAtA[iNdEx:]) @@ -3712,7 +4854,7 @@ func (m *DisaggTaskMeta) Unmarshal(dAtA []byte) error { } return nil } -func (m *DisaggReadError) Unmarshal(dAtA []byte) error { +func (m *ErrorOther) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3735,10 +4877,10 @@ func (m *DisaggReadError) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DisaggReadError: wiretype end group for non-group") + return fmt.Errorf("proto: ErrorOther: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DisaggReadError: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ErrorOther: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -4132,46 +5274,12 @@ func (m *EstablishDisaggTaskResponse) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Error == nil { - m.Error = &DisaggReadError{} + m.Error = &EstablishDisaggTaskError{} } if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RetryRegions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDisaggregated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthDisaggregated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthDisaggregated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RetryRegions = append(m.RetryRegions, &metapb.Region{}) - if err := m.RetryRegions[len(m.RetryRegions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 3: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field StoreId", wireType) diff --git a/proto/disaggregated.proto b/proto/disaggregated.proto index db1944d..5cdfc05 100644 --- a/proto/disaggregated.proto +++ b/proto/disaggregated.proto @@ -2,7 +2,6 @@ syntax = "proto3"; package disaggregated; import "coprocessor.proto"; -import "metapb.proto"; import "kvrpcpb.proto"; option java_package = "org.tikv.kvproto"; @@ -29,7 +28,7 @@ message Conflict { message TryAddLockRequest { // The data file key to add lock - string data_file_key = 1; + bytes data_file_key = 1; // The lock store id uint64 lock_store_id = 3; // The upload sequence number of lock store @@ -42,7 +41,7 @@ message TryAddLockResponse { message TryMarkDeleteRequest { // The data file key to be marked as deleted - string data_file_key = 1; + bytes data_file_key = 1; } message TryMarkDeleteResponse { @@ -75,18 +74,45 @@ message DisaggTaskMeta { uint32 keyspace_id = 7; // keyspace id of the request kvrpcpb.APIVersion api_version = 8; // API version of the request } + message DisaggReadError { int32 code = 1; string msg = 2; } +message EstablishDisaggTaskError { + oneof errors { + ErrorRegion error_region = 1; + ErrorLocked error_locked = 2; + + ErrorOther error_other = 99; + } +} + +message ErrorRegion { + string msg = 1; + // The read node needs to update its region cache about these regions. + repeated uint64 region_ids = 2; +} + +message ErrorLocked { + string msg = 1; + // The read node needs to resolve these locks. + repeated kvrpcpb.LockInfo locked = 2; +} + +message ErrorOther { + int32 code = 1; + string msg = 2; +} + message EstablishDisaggTaskRequest { DisaggTaskMeta meta = 1; string address = 2; // target address of this task. // The write node needs to ensure that subsequent // FetchDisaggPagesRequest can be processed within timeout_s. // unit: seconds - int64 timeout_s = 3; + int64 timeout_s = 3; // The key ranges, Region meta that read node need to execute TableScan repeated coprocessor.RegionInfo regions = 4; int64 schema_ver = 5; @@ -97,10 +123,8 @@ message EstablishDisaggTaskRequest { } message EstablishDisaggTaskResponse { - DisaggReadError error = 1; - // The read node needs to update its region cache about - // these regions - repeated metapb.Region retry_regions = 2; + EstablishDisaggTaskError error = 1; + // Write node maintains a snapshot with a lease time. // Read node should read the delta pages // (ColumnFileInMemory and ColumnFileTiny) @@ -112,7 +136,7 @@ message EstablishDisaggTaskResponse { } message FetchDisaggPagesRequest { - // The snapshot id to fetch pages + // The snapshot id to fetch pages DisaggTaskMeta snapshot_id = 1; int64 table_id = 2; uint64 segment_id = 3; diff --git a/scripts/proto.lock b/scripts/proto.lock index ba0ca63..fd2f724 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -3826,7 +3826,7 @@ { "id": 1, "name": "data_file_key", - "type": "string" + "type": "bytes" }, { "id": 3, @@ -3856,7 +3856,7 @@ { "id": 1, "name": "data_file_key", - "type": "string" + "type": "bytes" } ] }, @@ -3963,6 +3963,73 @@ } ] }, + { + "name": "EstablishDisaggTaskError", + "fields": [ + { + "id": 1, + "name": "error_region", + "type": "ErrorRegion" + }, + { + "id": 2, + "name": "error_locked", + "type": "ErrorLocked" + }, + { + "id": 99, + "name": "error_other", + "type": "ErrorOther" + } + ] + }, + { + "name": "ErrorRegion", + "fields": [ + { + "id": 1, + "name": "msg", + "type": "string" + }, + { + "id": 2, + "name": "region_ids", + "type": "uint64", + "is_repeated": true + } + ] + }, + { + "name": "ErrorLocked", + "fields": [ + { + "id": 1, + "name": "msg", + "type": "string" + }, + { + "id": 2, + "name": "locked", + "type": "kvrpcpb.LockInfo", + "is_repeated": true + } + ] + }, + { + "name": "ErrorOther", + "fields": [ + { + "id": 1, + "name": "code", + "type": "int32" + }, + { + "id": 2, + "name": "msg", + "type": "string" + } + ] + }, { "name": "EstablishDisaggTaskRequest", "fields": [ @@ -4011,13 +4078,7 @@ { "id": 1, "name": "error", - "type": "DisaggReadError" - }, - { - "id": 2, - "name": "retry_regions", - "type": "metapb.Region", - "is_repeated": true + "type": "EstablishDisaggTaskError" }, { "id": 3, @@ -4096,9 +4157,6 @@ { "path": "coprocessor.proto" }, - { - "path": "metapb.proto" - }, { "path": "kvrpcpb.proto" } -- Gitee From d7e4db66a63e2f5866f0a452bcddc842fec531d0 Mon Sep 17 00:00:00 2001 From: Zak Zhao <57036248+joccau@users.noreply.github.com> Date: Tue, 28 Mar 2023 15:16:10 +0800 Subject: [PATCH 30/44] maintain id map in pitr (#1071) Signed-off-by: joccau --- pkg/brpb/brpb.pb.go | 1377 ++++++++++++++++++++++++++------ pkg/configpb/configpb.pb.gw.go | 22 +- pkg/kvrpcpb/kvrpcpb.pb.go | 8 +- pkg/tracepb/tracepb.pb.go | 1 + proto/brpb.proto | 19 + scripts/proto.lock | 63 ++ 6 files changed, 1218 insertions(+), 272 deletions(-) diff --git a/pkg/brpb/brpb.pb.go b/pkg/brpb/brpb.pb.go index 79976b7..01768af 100644 --- a/pkg/brpb/brpb.pb.go +++ b/pkg/brpb/brpb.pb.go @@ -167,10 +167,12 @@ type BackupMeta struct { // new_collations_enabled specifies the config `new_collations_enabled_on_first_bootstrap` in tidb. NewCollationsEnabled string `protobuf:"bytes,20,opt,name=new_collations_enabled,json=newCollationsEnabled,proto3" json:"new_collations_enabled,omitempty"` // If in txn kv mode, `schemas` will be ignored, the backup data's range is as same as normal backup. - IsTxnKv bool `protobuf:"varint,21,opt,name=is_txn_kv,json=isTxnKv,proto3" json:"is_txn_kv,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + IsTxnKv bool `protobuf:"varint,21,opt,name=is_txn_kv,json=isTxnKv,proto3" json:"is_txn_kv,omitempty"` + // maintain the id mapping from upstream cluster to downstream cluster. + DbMaps []*PitrDBMap `protobuf:"bytes,22,rep,name=db_maps,json=dbMaps,proto3" json:"db_maps,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *BackupMeta) Reset() { *m = BackupMeta{} } @@ -346,6 +348,13 @@ func (m *BackupMeta) GetIsTxnKv() bool { return false } +func (m *BackupMeta) GetDbMaps() []*PitrDBMap { + if m != nil { + return m.DbMaps + } + return nil +} + type File struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Sha256 []byte `protobuf:"bytes,2,opt,name=sha256,proto3" json:"sha256,omitempty"` @@ -712,6 +721,187 @@ func (m *Schema) GetStats() []byte { return nil } +type IDMap struct { + UpstreamId int64 `protobuf:"varint,1,opt,name=upstream_id,json=upstreamId,proto3" json:"upstream_id,omitempty"` + DownstreamId int64 `protobuf:"varint,2,opt,name=downstream_id,json=downstreamId,proto3" json:"downstream_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IDMap) Reset() { *m = IDMap{} } +func (m *IDMap) String() string { return proto.CompactTextString(m) } +func (*IDMap) ProtoMessage() {} +func (*IDMap) Descriptor() ([]byte, []int) { + return fileDescriptor_483d1f48d58a4885, []int{5} +} +func (m *IDMap) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *IDMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_IDMap.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *IDMap) XXX_Merge(src proto.Message) { + xxx_messageInfo_IDMap.Merge(m, src) +} +func (m *IDMap) XXX_Size() int { + return m.Size() +} +func (m *IDMap) XXX_DiscardUnknown() { + xxx_messageInfo_IDMap.DiscardUnknown(m) +} + +var xxx_messageInfo_IDMap proto.InternalMessageInfo + +func (m *IDMap) GetUpstreamId() int64 { + if m != nil { + return m.UpstreamId + } + return 0 +} + +func (m *IDMap) GetDownstreamId() int64 { + if m != nil { + return m.DownstreamId + } + return 0 +} + +type PitrTableMap struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + IdMap *IDMap `protobuf:"bytes,2,opt,name=id_map,json=idMap,proto3" json:"id_map,omitempty"` + Partitions []*IDMap `protobuf:"bytes,3,rep,name=partitions,proto3" json:"partitions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PitrTableMap) Reset() { *m = PitrTableMap{} } +func (m *PitrTableMap) String() string { return proto.CompactTextString(m) } +func (*PitrTableMap) ProtoMessage() {} +func (*PitrTableMap) Descriptor() ([]byte, []int) { + return fileDescriptor_483d1f48d58a4885, []int{6} +} +func (m *PitrTableMap) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PitrTableMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PitrTableMap.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PitrTableMap) XXX_Merge(src proto.Message) { + xxx_messageInfo_PitrTableMap.Merge(m, src) +} +func (m *PitrTableMap) XXX_Size() int { + return m.Size() +} +func (m *PitrTableMap) XXX_DiscardUnknown() { + xxx_messageInfo_PitrTableMap.DiscardUnknown(m) +} + +var xxx_messageInfo_PitrTableMap proto.InternalMessageInfo + +func (m *PitrTableMap) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *PitrTableMap) GetIdMap() *IDMap { + if m != nil { + return m.IdMap + } + return nil +} + +func (m *PitrTableMap) GetPartitions() []*IDMap { + if m != nil { + return m.Partitions + } + return nil +} + +type PitrDBMap struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + IdMap *IDMap `protobuf:"bytes,2,opt,name=id_map,json=idMap,proto3" json:"id_map,omitempty"` + Tables []*PitrTableMap `protobuf:"bytes,3,rep,name=tables,proto3" json:"tables,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PitrDBMap) Reset() { *m = PitrDBMap{} } +func (m *PitrDBMap) String() string { return proto.CompactTextString(m) } +func (*PitrDBMap) ProtoMessage() {} +func (*PitrDBMap) Descriptor() ([]byte, []int) { + return fileDescriptor_483d1f48d58a4885, []int{7} +} +func (m *PitrDBMap) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PitrDBMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PitrDBMap.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PitrDBMap) XXX_Merge(src proto.Message) { + xxx_messageInfo_PitrDBMap.Merge(m, src) +} +func (m *PitrDBMap) XXX_Size() int { + return m.Size() +} +func (m *PitrDBMap) XXX_DiscardUnknown() { + xxx_messageInfo_PitrDBMap.DiscardUnknown(m) +} + +var xxx_messageInfo_PitrDBMap proto.InternalMessageInfo + +func (m *PitrDBMap) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *PitrDBMap) GetIdMap() *IDMap { + if m != nil { + return m.IdMap + } + return nil +} + +func (m *PitrDBMap) GetTables() []*PitrTableMap { + if m != nil { + return m.Tables + } + return nil +} + type RawRange struct { StartKey []byte `protobuf:"bytes,1,opt,name=start_key,json=startKey,proto3" json:"start_key,omitempty"` EndKey []byte `protobuf:"bytes,2,opt,name=end_key,json=endKey,proto3" json:"end_key,omitempty"` @@ -725,7 +915,7 @@ func (m *RawRange) Reset() { *m = RawRange{} } func (m *RawRange) String() string { return proto.CompactTextString(m) } func (*RawRange) ProtoMessage() {} func (*RawRange) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{5} + return fileDescriptor_483d1f48d58a4885, []int{8} } func (m *RawRange) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -787,7 +977,7 @@ func (m *ClusterIDError) Reset() { *m = ClusterIDError{} } func (m *ClusterIDError) String() string { return proto.CompactTextString(m) } func (*ClusterIDError) ProtoMessage() {} func (*ClusterIDError) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{6} + return fileDescriptor_483d1f48d58a4885, []int{9} } func (m *ClusterIDError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -846,7 +1036,7 @@ func (m *Error) Reset() { *m = Error{} } func (m *Error) String() string { return proto.CompactTextString(m) } func (*Error) ProtoMessage() {} func (*Error) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{7} + return fileDescriptor_483d1f48d58a4885, []int{10} } func (m *Error) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -951,7 +1141,7 @@ func (m *CipherInfo) Reset() { *m = CipherInfo{} } func (m *CipherInfo) String() string { return proto.CompactTextString(m) } func (*CipherInfo) ProtoMessage() {} func (*CipherInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{8} + return fileDescriptor_483d1f48d58a4885, []int{11} } func (m *CipherInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1038,7 +1228,7 @@ func (m *BackupRequest) Reset() { *m = BackupRequest{} } func (m *BackupRequest) String() string { return proto.CompactTextString(m) } func (*BackupRequest) ProtoMessage() {} func (*BackupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{9} + return fileDescriptor_483d1f48d58a4885, []int{12} } func (m *BackupRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1202,7 +1392,7 @@ func (m *StreamBackupTaskInfo) Reset() { *m = StreamBackupTaskInfo{} } func (m *StreamBackupTaskInfo) String() string { return proto.CompactTextString(m) } func (*StreamBackupTaskInfo) ProtoMessage() {} func (*StreamBackupTaskInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{10} + return fileDescriptor_483d1f48d58a4885, []int{13} } func (m *StreamBackupTaskInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1292,7 +1482,7 @@ func (m *StorageBackend) Reset() { *m = StorageBackend{} } func (m *StorageBackend) String() string { return proto.CompactTextString(m) } func (*StorageBackend) ProtoMessage() {} func (*StorageBackend) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{11} + return fileDescriptor_483d1f48d58a4885, []int{14} } func (m *StorageBackend) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1437,7 +1627,7 @@ func (m *Noop) Reset() { *m = Noop{} } func (m *Noop) String() string { return proto.CompactTextString(m) } func (*Noop) ProtoMessage() {} func (*Noop) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{12} + return fileDescriptor_483d1f48d58a4885, []int{15} } func (m *Noop) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1478,7 +1668,7 @@ func (m *Local) Reset() { *m = Local{} } func (m *Local) String() string { return proto.CompactTextString(m) } func (*Local) ProtoMessage() {} func (*Local) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{13} + return fileDescriptor_483d1f48d58a4885, []int{16} } func (m *Local) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1543,7 +1733,7 @@ func (m *S3) Reset() { *m = S3{} } func (m *S3) String() string { return proto.CompactTextString(m) } func (*S3) ProtoMessage() {} func (*S3) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{14} + return fileDescriptor_483d1f48d58a4885, []int{17} } func (m *S3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1707,7 +1897,7 @@ func (m *GCS) Reset() { *m = GCS{} } func (m *GCS) String() string { return proto.CompactTextString(m) } func (*GCS) ProtoMessage() {} func (*GCS) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{15} + return fileDescriptor_483d1f48d58a4885, []int{18} } func (m *GCS) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1807,7 +1997,7 @@ func (m *AzureBlobStorage) Reset() { *m = AzureBlobStorage{} } func (m *AzureBlobStorage) String() string { return proto.CompactTextString(m) } func (*AzureBlobStorage) ProtoMessage() {} func (*AzureBlobStorage) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{16} + return fileDescriptor_483d1f48d58a4885, []int{19} } func (m *AzureBlobStorage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1893,7 +2083,7 @@ func (m *Bucket) Reset() { *m = Bucket{} } func (m *Bucket) String() string { return proto.CompactTextString(m) } func (*Bucket) ProtoMessage() {} func (*Bucket) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{17} + return fileDescriptor_483d1f48d58a4885, []int{20} } func (m *Bucket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1971,7 +2161,7 @@ func (m *CloudDynamic) Reset() { *m = CloudDynamic{} } func (m *CloudDynamic) String() string { return proto.CompactTextString(m) } func (*CloudDynamic) ProtoMessage() {} func (*CloudDynamic) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{18} + return fileDescriptor_483d1f48d58a4885, []int{21} } func (m *CloudDynamic) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2034,7 +2224,7 @@ func (m *HDFS) Reset() { *m = HDFS{} } func (m *HDFS) String() string { return proto.CompactTextString(m) } func (*HDFS) ProtoMessage() {} func (*HDFS) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{19} + return fileDescriptor_483d1f48d58a4885, []int{22} } func (m *HDFS) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2086,7 +2276,7 @@ func (m *BackupResponse) Reset() { *m = BackupResponse{} } func (m *BackupResponse) String() string { return proto.CompactTextString(m) } func (*BackupResponse) ProtoMessage() {} func (*BackupResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{20} + return fileDescriptor_483d1f48d58a4885, []int{23} } func (m *BackupResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2160,7 +2350,7 @@ func (m *CheckAdminRequest) Reset() { *m = CheckAdminRequest{} } func (m *CheckAdminRequest) String() string { return proto.CompactTextString(m) } func (*CheckAdminRequest) ProtoMessage() {} func (*CheckAdminRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{21} + return fileDescriptor_483d1f48d58a4885, []int{24} } func (m *CheckAdminRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2202,7 +2392,7 @@ func (m *CheckAdminResponse) Reset() { *m = CheckAdminResponse{} } func (m *CheckAdminResponse) String() string { return proto.CompactTextString(m) } func (*CheckAdminResponse) ProtoMessage() {} func (*CheckAdminResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{22} + return fileDescriptor_483d1f48d58a4885, []int{25} } func (m *CheckAdminResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2266,7 +2456,7 @@ func (m *ExternalStorageRestoreRequest) Reset() { *m = ExternalStorageRe func (m *ExternalStorageRestoreRequest) String() string { return proto.CompactTextString(m) } func (*ExternalStorageRestoreRequest) ProtoMessage() {} func (*ExternalStorageRestoreRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{23} + return fileDescriptor_483d1f48d58a4885, []int{26} } func (m *ExternalStorageRestoreRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2333,7 +2523,7 @@ func (m *ExternalStorageRestoreResponse) Reset() { *m = ExternalStorageR func (m *ExternalStorageRestoreResponse) String() string { return proto.CompactTextString(m) } func (*ExternalStorageRestoreResponse) ProtoMessage() {} func (*ExternalStorageRestoreResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{24} + return fileDescriptor_483d1f48d58a4885, []int{27} } func (m *ExternalStorageRestoreResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2375,7 +2565,7 @@ func (m *ExternalStorageSaveRequest) Reset() { *m = ExternalStorageSaveR func (m *ExternalStorageSaveRequest) String() string { return proto.CompactTextString(m) } func (*ExternalStorageSaveRequest) ProtoMessage() {} func (*ExternalStorageSaveRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{25} + return fileDescriptor_483d1f48d58a4885, []int{28} } func (m *ExternalStorageSaveRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2435,7 +2625,7 @@ func (m *ExternalStorageSaveResponse) Reset() { *m = ExternalStorageSave func (m *ExternalStorageSaveResponse) String() string { return proto.CompactTextString(m) } func (*ExternalStorageSaveResponse) ProtoMessage() {} func (*ExternalStorageSaveResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{26} + return fileDescriptor_483d1f48d58a4885, []int{29} } func (m *ExternalStorageSaveResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2482,7 +2672,7 @@ func (m *Metadata) Reset() { *m = Metadata{} } func (m *Metadata) String() string { return proto.CompactTextString(m) } func (*Metadata) ProtoMessage() {} func (*Metadata) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{27} + return fileDescriptor_483d1f48d58a4885, []int{30} } func (m *Metadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2584,7 +2774,7 @@ func (m *DataFileGroup) Reset() { *m = DataFileGroup{} } func (m *DataFileGroup) String() string { return proto.CompactTextString(m) } func (*DataFileGroup) ProtoMessage() {} func (*DataFileGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{28} + return fileDescriptor_483d1f48d58a4885, []int{31} } func (m *DataFileGroup) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2701,7 +2891,7 @@ func (m *DataFileInfo) Reset() { *m = DataFileInfo{} } func (m *DataFileInfo) String() string { return proto.CompactTextString(m) } func (*DataFileInfo) ProtoMessage() {} func (*DataFileInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{29} + return fileDescriptor_483d1f48d58a4885, []int{32} } func (m *DataFileInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2874,7 +3064,7 @@ func (m *StreamBackupError) Reset() { *m = StreamBackupError{} } func (m *StreamBackupError) String() string { return proto.CompactTextString(m) } func (*StreamBackupError) ProtoMessage() {} func (*StreamBackupError) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{30} + return fileDescriptor_483d1f48d58a4885, []int{33} } func (m *StreamBackupError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2940,6 +3130,9 @@ func init() { proto.RegisterType((*MetaFile)(nil), "backup.MetaFile") proto.RegisterType((*PlacementPolicy)(nil), "backup.PlacementPolicy") proto.RegisterType((*Schema)(nil), "backup.Schema") + proto.RegisterType((*IDMap)(nil), "backup.IDMap") + proto.RegisterType((*PitrTableMap)(nil), "backup.PitrTableMap") + proto.RegisterType((*PitrDBMap)(nil), "backup.PitrDBMap") proto.RegisterType((*RawRange)(nil), "backup.RawRange") proto.RegisterType((*ClusterIDError)(nil), "backup.ClusterIDError") proto.RegisterType((*Error)(nil), "backup.Error") @@ -2972,187 +3165,195 @@ func init() { func init() { proto.RegisterFile("brpb.proto", fileDescriptor_483d1f48d58a4885) } var fileDescriptor_483d1f48d58a4885 = []byte{ - // 2873 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0x5b, 0x6f, 0x24, 0x47, - 0xf5, 0x77, 0xcf, 0xf4, 0xdc, 0xce, 0x5c, 0x5d, 0x7b, 0xc9, 0xc4, 0xfb, 0xdf, 0x5d, 0x67, 0xf6, - 0xbf, 0x8b, 0xd9, 0x48, 0x4e, 0x62, 0x6f, 0xa2, 0x40, 0x40, 0x91, 0x2f, 0x9b, 0xd8, 0xf1, 0xc6, - 0x6b, 0xca, 0x26, 0x88, 0xbc, 0xb4, 0x7a, 0xba, 0x6b, 0xec, 0x66, 0x7a, 0xba, 0x87, 0xae, 0x9e, - 0x59, 0x3b, 0xdf, 0x01, 0x01, 0x0f, 0x08, 0x1e, 0x78, 0x45, 0xe2, 0x63, 0x20, 0x21, 0xa4, 0x44, - 0x20, 0x11, 0x29, 0x2f, 0x3c, 0xa2, 0xf0, 0x25, 0x78, 0x44, 0xe7, 0x54, 0x55, 0xbb, 0xc7, 0xeb, - 0xf1, 0x66, 0x11, 0xca, 0xd3, 0x54, 0xfd, 0xce, 0xa9, 0xea, 0xaa, 0x73, 0x4e, 0xfd, 0xce, 0xa9, - 0x1a, 0x80, 0x7e, 0x32, 0xee, 0xaf, 0x8e, 0x93, 0x38, 0x8d, 0x59, 0xb9, 0xef, 0x7a, 0xc3, 0xc9, - 0x78, 0xa9, 0x39, 0x9c, 0x26, 0x63, 0xcf, 0xc0, 0x4b, 0x4d, 0x91, 0x24, 0x71, 0xa6, 0xb5, 0xd4, - 0x18, 0x89, 0xd4, 0xcd, 0x7a, 0x4c, 0x44, 0x5e, 0x72, 0x36, 0x4e, 0x83, 0x38, 0xca, 0xb0, 0xeb, - 0xc7, 0xf1, 0x71, 0x4c, 0xcd, 0x37, 0xb0, 0xa5, 0xd1, 0x76, 0x32, 0x91, 0x29, 0x35, 0x15, 0xd0, - 0xfb, 0x73, 0x19, 0x60, 0x93, 0xbe, 0xf8, 0xb1, 0x48, 0x5d, 0x76, 0x1b, 0xc0, 0x0b, 0x27, 0x32, - 0x15, 0x89, 0x13, 0xf8, 0x5d, 0x6b, 0xd9, 0x5a, 0xb1, 0x79, 0x4d, 0x23, 0xbb, 0x3e, 0xfb, 0x0e, - 0xb4, 0x8d, 0x78, 0x2a, 0x12, 0x19, 0xc4, 0x51, 0xb7, 0xb0, 0x6c, 0xad, 0xd4, 0x78, 0x4b, 0xc3, - 0x9f, 0x28, 0x14, 0xe7, 0xe9, 0x9f, 0xeb, 0xd4, 0x49, 0xa7, 0xd6, 0xcf, 0xc4, 0x5d, 0xa8, 0x18, - 0x59, 0x63, 0xd9, 0x5a, 0x29, 0x71, 0xd3, 0x65, 0x3d, 0x28, 0x0d, 0x82, 0x50, 0xc8, 0xae, 0xbd, - 0x5c, 0x5c, 0xa9, 0xaf, 0x35, 0x56, 0x95, 0x39, 0x56, 0x3f, 0x08, 0x42, 0xc1, 0x95, 0x88, 0xbd, - 0x01, 0x80, 0x0d, 0x27, 0x88, 0x7c, 0x71, 0xda, 0x6d, 0x2e, 0x5b, 0x2b, 0xf5, 0xb5, 0x8e, 0x51, - 0xc4, 0x6d, 0x90, 0x72, 0x0d, 0x75, 0x76, 0x51, 0x85, 0xdd, 0x83, 0xa6, 0x4c, 0xdd, 0x24, 0xcd, - 0x16, 0x54, 0xa2, 0x8d, 0x35, 0x08, 0x34, 0x6b, 0xba, 0x0b, 0x75, 0x11, 0xf9, 0x99, 0x4a, 0x99, - 0x54, 0x40, 0x44, 0xbe, 0x51, 0x58, 0x81, 0x8a, 0xf4, 0x4e, 0xc4, 0xc8, 0x95, 0xdd, 0x0a, 0x2d, - 0xae, 0x65, 0xbe, 0x79, 0x48, 0x30, 0x37, 0x62, 0xb6, 0x0e, 0x0d, 0xd5, 0xd4, 0x4b, 0x6c, 0xcd, - 0x59, 0x62, 0x5d, 0x69, 0xa9, 0x45, 0x2e, 0x41, 0x2d, 0x90, 0x4e, 0xe2, 0x3e, 0x73, 0x86, 0xd3, - 0x6e, 0x75, 0xd9, 0x5a, 0xa9, 0xf2, 0x4a, 0x20, 0xb9, 0xfb, 0x6c, 0x6f, 0x8a, 0x3b, 0x46, 0x41, - 0xe2, 0x46, 0xc7, 0x42, 0x76, 0x6b, 0xf4, 0xf5, 0x6c, 0x3a, 0xee, 0x3e, 0xe3, 0x28, 0xe0, 0xb5, - 0x44, 0xb7, 0x24, 0x7b, 0x17, 0xda, 0xd9, 0x00, 0xbd, 0x88, 0xf6, 0x9c, 0x45, 0x34, 0xcd, 0x28, - 0xb5, 0x0c, 0x06, 0xb6, 0xef, 0x87, 0xb2, 0x0b, 0xcb, 0xd6, 0x4a, 0x83, 0x53, 0x9b, 0xbd, 0x05, - 0x75, 0xdf, 0x0f, 0xd5, 0x3c, 0x42, 0x76, 0x3b, 0x73, 0x66, 0x02, 0xdf, 0x0f, 0x77, 0x95, 0x0e, - 0x9a, 0x5c, 0x89, 0x9d, 0x44, 0xc8, 0x49, 0x98, 0x76, 0x17, 0x29, 0x06, 0x1a, 0x0a, 0xe4, 0x84, - 0xb1, 0x47, 0x50, 0x77, 0xc7, 0x41, 0x66, 0x72, 0xb6, 0x6c, 0xad, 0xb4, 0xd6, 0xae, 0xad, 0x9a, - 0xc8, 0xdf, 0x38, 0xd8, 0xd5, 0xb6, 0xe7, 0xe0, 0x8e, 0x03, 0xe3, 0x87, 0x75, 0xa8, 0x8e, 0xe3, - 0x30, 0xf0, 0x02, 0x21, 0xbb, 0xd7, 0xc8, 0x14, 0xaf, 0x98, 0xa5, 0x1c, 0x84, 0xae, 0x27, 0x46, - 0x22, 0x4a, 0x0f, 0x50, 0xe1, 0x8c, 0x67, 0x8a, 0xec, 0x11, 0xdc, 0x8c, 0xc4, 0x33, 0xc7, 0x8b, - 0xc3, 0xd0, 0xc5, 0x73, 0x22, 0x1d, 0x11, 0xb9, 0xfd, 0x50, 0xf8, 0xdd, 0xeb, 0xb4, 0xb0, 0xeb, - 0x91, 0x78, 0xb6, 0x95, 0x09, 0x1f, 0x2b, 0x99, 0xf6, 0x49, 0x7a, 0x1a, 0xa1, 0x4f, 0x6e, 0x18, - 0x9f, 0x1c, 0x9d, 0x46, 0x7b, 0xd3, 0x8f, 0xec, 0x6a, 0xb1, 0x63, 0x73, 0x7b, 0xec, 0xa6, 0x27, - 0xbd, 0x2f, 0x0a, 0x60, 0xa3, 0x09, 0xd0, 0x7a, 0x91, 0x3b, 0x12, 0x74, 0x72, 0x6a, 0x9c, 0xda, - 0xec, 0x26, 0x94, 0xe5, 0x89, 0xbb, 0xf6, 0xf6, 0x3b, 0x74, 0x56, 0x1a, 0x5c, 0xf7, 0xd8, 0x2d, - 0xa8, 0xa9, 0xa8, 0x1c, 0x8a, 0xb3, 0x6e, 0x91, 0x44, 0x55, 0x02, 0xf6, 0xc4, 0x19, 0x7b, 0x05, - 0x2a, 0x18, 0x8d, 0x28, 0xb2, 0xd5, 0x28, 0x11, 0xf9, 0x28, 0xf8, 0xdf, 0xc4, 0xf2, 0x12, 0x54, - 0xbd, 0xc4, 0x7b, 0xe7, 0xd1, 0x69, 0x9c, 0x74, 0x2b, 0x24, 0xcd, 0xfa, 0xb8, 0xae, 0x34, 0x4e, - 0xdd, 0xd0, 0x19, 0x4e, 0x25, 0x05, 0xa2, 0xcd, 0xab, 0x04, 0xec, 0x4d, 0x25, 0xce, 0xac, 0x84, - 0xfd, 0xb3, 0x94, 0x42, 0x91, 0x66, 0x26, 0x68, 0x13, 0x11, 0xd6, 0x82, 0x82, 0x37, 0xa0, 0xe8, - 0xa9, 0xf1, 0x82, 0x37, 0x40, 0x8b, 0xc8, 0xe0, 0x33, 0x41, 0x1c, 0x60, 0x73, 0x6a, 0xe3, 0x17, - 0xbc, 0x60, 0x7c, 0x82, 0x24, 0x33, 0x25, 0x02, 0x68, 0xf0, 0xaa, 0x02, 0x76, 0xa7, 0xbd, 0xaf, - 0x2c, 0xa8, 0x9a, 0x90, 0x62, 0xaf, 0x03, 0x20, 0xd3, 0x39, 0x8a, 0x13, 0xac, 0x4b, 0x38, 0xa1, - 0x36, 0xd2, 0xba, 0x12, 0x95, 0x7d, 0x37, 0x53, 0x2e, 0x5c, 0xa6, 0x8c, 0x72, 0xa5, 0x9c, 0x3b, - 0xcd, 0xc5, 0xab, 0x4f, 0xf3, 0xec, 0xe1, 0xb3, 0x5f, 0x7c, 0xf8, 0xcc, 0x11, 0x2a, 0x2d, 0x17, - 0xcd, 0x11, 0xea, 0xdd, 0x87, 0xf6, 0x85, 0xe0, 0x44, 0xb5, 0x20, 0x1a, 0xc4, 0x14, 0x2b, 0x0d, - 0x4e, 0xed, 0xde, 0x17, 0x16, 0x94, 0xd5, 0xf7, 0xd1, 0x90, 0x7e, 0x5f, 0x0b, 0x0b, 0x7e, 0x9f, - 0x5d, 0x87, 0x52, 0x8a, 0x51, 0xa9, 0xa3, 0x48, 0x75, 0x66, 0x1c, 0x59, 0xbc, 0xca, 0x91, 0xf6, - 0xd5, 0x8e, 0x2c, 0x3d, 0xe7, 0xc8, 0xef, 0x42, 0x27, 0x0d, 0x06, 0xa1, 0x2b, 0x4f, 0x9c, 0x44, - 0x8c, 0xc3, 0xc0, 0x73, 0x25, 0x05, 0x52, 0x93, 0xb7, 0x35, 0xce, 0x35, 0x8c, 0x4b, 0x93, 0xa9, - 0x9b, 0x4a, 0x0a, 0xa5, 0x06, 0x57, 0x9d, 0xde, 0x01, 0x54, 0x8d, 0x75, 0x66, 0x63, 0xdd, 0x9a, - 0x1f, 0xeb, 0x85, 0x99, 0x58, 0x57, 0xb1, 0x54, 0x34, 0xb1, 0xd4, 0xdb, 0x86, 0xd6, 0x96, 0xce, - 0x45, 0xdb, 0x8f, 0x31, 0x1f, 0x62, 0x22, 0xf1, 0x26, 0x49, 0x22, 0xa2, 0x54, 0x27, 0x2b, 0xd3, - 0x45, 0x49, 0x22, 0x7e, 0x3e, 0x11, 0x32, 0xa5, 0x49, 0x6d, 0x6e, 0xba, 0xbd, 0xbf, 0x59, 0x50, - 0x52, 0xa3, 0x3b, 0x50, 0x1c, 0xc9, 0x63, 0x7d, 0x58, 0xb1, 0xc9, 0x36, 0xa1, 0x73, 0x9e, 0xff, - 0x1c, 0xca, 0xb9, 0xf4, 0xfd, 0xfa, 0xda, 0x4d, 0xe3, 0xf1, 0xd9, 0x15, 0xec, 0x2c, 0x64, 0xb9, - 0x6f, 0xd7, 0x57, 0xb3, 0xae, 0x42, 0x75, 0x38, 0xd5, 0x63, 0x6d, 0x1a, 0xbb, 0x98, 0x51, 0xda, - 0x9e, 0x38, 0x33, 0xc3, 0x2a, 0xc3, 0xa9, 0xd2, 0x5f, 0x87, 0x46, 0x22, 0x8e, 0x83, 0x38, 0xd2, - 0x63, 0x4a, 0x34, 0xa6, 0xb5, 0x6a, 0x32, 0xbe, 0x19, 0x50, 0x57, 0x5a, 0xd4, 0xdd, 0xac, 0x42, - 0xd9, 0x17, 0xa9, 0x1b, 0x84, 0xbd, 0x10, 0x60, 0x4b, 0x9d, 0x9d, 0x68, 0x10, 0xb3, 0xf7, 0xa1, - 0xae, 0x8f, 0x56, 0x7a, 0x36, 0x56, 0x3c, 0xd4, 0x5a, 0xbb, 0xb3, 0x3a, 0x53, 0x20, 0x3c, 0xce, - 0x3a, 0x1f, 0x8b, 0xf4, 0x24, 0xf6, 0x39, 0xa8, 0x21, 0x47, 0x67, 0x63, 0x41, 0x15, 0x80, 0x9a, - 0xe0, 0xdc, 0x1f, 0xfa, 0xb4, 0xee, 0x89, 0xb3, 0xde, 0xef, 0x4b, 0xd0, 0xdc, 0xd4, 0x1c, 0x4e, - 0xe6, 0x7c, 0x51, 0xc9, 0x30, 0xe3, 0xf9, 0xc2, 0x7c, 0xcf, 0x17, 0xaf, 0x66, 0x39, 0xfb, 0xc5, - 0x2c, 0x57, 0x7a, 0x8e, 0xe5, 0x6e, 0xe3, 0xc9, 0x4d, 0x85, 0x13, 0x06, 0xa3, 0x20, 0xd5, 0x3c, - 0x57, 0x43, 0xe4, 0x09, 0x02, 0x6c, 0x19, 0xea, 0x5e, 0x1c, 0xa9, 0x80, 0xf1, 0xce, 0x88, 0xea, - 0x9a, 0x3c, 0x0f, 0xb1, 0xf7, 0xa1, 0x2d, 0xd3, 0x38, 0x71, 0x8f, 0x85, 0x83, 0xde, 0x17, 0x91, - 0x4f, 0x8c, 0x97, 0x8b, 0x86, 0x43, 0x25, 0xde, 0x54, 0x52, 0xde, 0x92, 0x33, 0xfd, 0xd9, 0xa4, - 0x0e, 0xb3, 0x49, 0x5d, 0x45, 0x77, 0x3d, 0x63, 0x4a, 0x8c, 0xbd, 0x78, 0x34, 0x4e, 0x84, 0xc4, - 0xc5, 0x2b, 0xff, 0x35, 0xc8, 0x7f, 0x59, 0x7e, 0xdb, 0x3a, 0x97, 0xa3, 0xb3, 0x78, 0xdb, 0x9b, - 0x05, 0xd8, 0xeb, 0xb0, 0x98, 0x9f, 0x23, 0x14, 0x53, 0x11, 0x52, 0x85, 0x54, 0xe2, 0xf9, 0xc9, - 0x9f, 0x20, 0xce, 0xd6, 0xb3, 0x58, 0x21, 0x1e, 0x52, 0x55, 0x0a, 0xcb, 0xbe, 0x95, 0x05, 0x95, - 0x89, 0x0f, 0x0a, 0xb0, 0xf7, 0xa0, 0xed, 0xcb, 0xd4, 0xc9, 0xe7, 0xed, 0xf6, 0xfc, 0xbc, 0xdd, - 0xf4, 0x65, 0xba, 0x71, 0x9e, 0xba, 0xdf, 0x04, 0x90, 0x93, 0xbe, 0xa1, 0xd2, 0x0e, 0x51, 0xe9, - 0xcc, 0xe1, 0xd0, 0x5c, 0x2a, 0x27, 0x7d, 0xcd, 0xa5, 0xaf, 0xe1, 0xe1, 0x20, 0x9a, 0x71, 0x12, - 0xe1, 0xfa, 0x54, 0x46, 0x54, 0xf1, 0x28, 0x10, 0xc6, 0x85, 0xeb, 0x7f, 0x64, 0x57, 0xcb, 0x9d, - 0x8a, 0x4e, 0xc4, 0xbf, 0x29, 0xc0, 0xf5, 0xc3, 0x34, 0x11, 0xee, 0x48, 0x05, 0xe9, 0x91, 0x2b, - 0x87, 0xb4, 0xec, 0x37, 0xa1, 0xa2, 0x5d, 0x43, 0x21, 0x3a, 0xdf, 0x83, 0x46, 0x8d, 0xbd, 0x0a, - 0x2a, 0x4e, 0x9d, 0x54, 0x1a, 0x06, 0xa1, 0xfe, 0x91, 0x64, 0x37, 0x00, 0xe3, 0x14, 0x05, 0x8a, - 0x72, 0x4b, 0x22, 0xf2, 0x8f, 0x64, 0x96, 0xfc, 0xed, 0x5c, 0xf2, 0x7f, 0x0d, 0x1a, 0x44, 0xd4, - 0x98, 0x94, 0x52, 0x91, 0x50, 0x4e, 0xa8, 0xf1, 0x3a, 0x61, 0x1f, 0x10, 0x74, 0xa9, 0xdf, 0xcb, - 0x2f, 0xe7, 0x77, 0xde, 0x0a, 0x5d, 0x99, 0x3a, 0x93, 0xb1, 0x8f, 0xe1, 0x9e, 0x4a, 0x5e, 0x56, - 0x26, 0xe6, 0x65, 0xa4, 0xe2, 0x89, 0xec, 0x7d, 0x59, 0x80, 0xd6, 0xec, 0x46, 0x59, 0x0f, 0xec, - 0x28, 0x8e, 0xc7, 0xda, 0x1c, 0x59, 0x9e, 0xdc, 0x8f, 0xe3, 0xf1, 0xce, 0x02, 0x27, 0x19, 0xbb, - 0x0f, 0xa5, 0x30, 0xf6, 0xdc, 0x90, 0x0c, 0x50, 0x5f, 0x6b, 0x1a, 0xa5, 0x27, 0x08, 0xee, 0x2c, - 0x70, 0x25, 0x65, 0xff, 0x07, 0x05, 0xb9, 0xae, 0x79, 0x12, 0x32, 0xbb, 0xae, 0xef, 0x2c, 0xf0, - 0x82, 0x5c, 0x67, 0x77, 0xa1, 0x78, 0xec, 0x49, 0x4d, 0x85, 0x75, 0x23, 0xfe, 0x70, 0xeb, 0x70, - 0x67, 0x81, 0xa3, 0x84, 0xbd, 0x07, 0x4d, 0x2f, 0x8c, 0x27, 0xbe, 0xe3, 0x9f, 0x45, 0xee, 0x28, - 0xf0, 0x34, 0x03, 0x5e, 0x3f, 0x67, 0xdc, 0x78, 0xe2, 0x6f, 0x2b, 0xd9, 0xce, 0x02, 0x6f, 0x78, - 0xb9, 0x3e, 0x6e, 0xe3, 0xc4, 0x1f, 0xa8, 0xd4, 0x94, 0xdb, 0xc6, 0xce, 0xf6, 0x07, 0x38, 0x3f, - 0xc9, 0xd8, 0x0e, 0x30, 0xf7, 0xb3, 0x49, 0x22, 0x9c, 0x7e, 0x18, 0xf7, 0x1d, 0x13, 0x07, 0x15, - 0x1a, 0xd1, 0x35, 0x23, 0x36, 0x50, 0x63, 0x33, 0x8c, 0xfb, 0xda, 0x4e, 0x3b, 0x0b, 0xbc, 0xe3, - 0x5e, 0xc0, 0x36, 0x6b, 0x50, 0xd1, 0x44, 0xd0, 0x2b, 0x83, 0x8d, 0xb6, 0xea, 0xdd, 0x82, 0x12, - 0x99, 0x03, 0xdd, 0x8f, 0x31, 0x68, 0x6a, 0x3f, 0x8a, 0xc7, 0x7f, 0x17, 0xa1, 0x70, 0xb8, 0x8e, - 0x59, 0x5a, 0x44, 0xfe, 0x38, 0x0e, 0x74, 0x9e, 0xaa, 0xf1, 0xac, 0x8f, 0xe5, 0xa1, 0x22, 0x76, - 0x7d, 0x95, 0xd2, 0x3d, 0xc4, 0xfb, 0x13, 0x6f, 0x28, 0x52, 0x9d, 0x00, 0x75, 0x0f, 0xf1, 0x71, - 0x22, 0x06, 0xc1, 0xa9, 0x8e, 0x33, 0xdd, 0x53, 0x94, 0xa9, 0xb8, 0xca, 0x0b, 0x5d, 0xa9, 0x52, - 0x7a, 0x0d, 0x29, 0x93, 0xc0, 0x2d, 0xc4, 0x30, 0xe3, 0x49, 0xa9, 0xc2, 0xab, 0xc6, 0xb1, 0x89, - 0x88, 0xeb, 0x85, 0x64, 0x8c, 0x1a, 0xc7, 0x26, 0xb2, 0xa6, 0xeb, 0x79, 0x42, 0x4a, 0xe2, 0xe5, - 0xaa, 0xba, 0xbb, 0x29, 0x04, 0xa9, 0xf9, 0x21, 0x2c, 0x4a, 0xe1, 0x25, 0x22, 0x75, 0x72, 0x5a, - 0x35, 0xd2, 0x6a, 0x2b, 0xc1, 0x46, 0xa6, 0xbb, 0x02, 0x9d, 0x41, 0x9c, 0x78, 0xc2, 0x41, 0x63, - 0x38, 0x32, 0x3d, 0x0b, 0x85, 0x66, 0xc1, 0x16, 0xe1, 0x07, 0x6e, 0x7a, 0x72, 0x88, 0x28, 0xbb, - 0x07, 0x2d, 0x29, 0x85, 0x33, 0x1c, 0xd1, 0x7c, 0x98, 0x49, 0x14, 0x31, 0xd6, 0xa5, 0x14, 0x7b, - 0x23, 0x9c, 0x6c, 0xd7, 0xc7, 0x23, 0x99, 0xc4, 0xa1, 0x70, 0xdc, 0x44, 0xdd, 0x1b, 0x6b, 0xbc, - 0x82, 0xfd, 0x8d, 0x44, 0xe5, 0x82, 0xd3, 0x54, 0x24, 0x91, 0x1b, 0xe2, 0xe0, 0x26, 0x49, 0xc1, - 0x40, 0xbb, 0x3e, 0x5b, 0x85, 0x6b, 0x71, 0xff, 0x67, 0xc2, 0x4b, 0x9d, 0x30, 0xf6, 0x86, 0x59, - 0xf5, 0xdf, 0xa2, 0xd5, 0x2c, 0x2a, 0xd1, 0x93, 0xd8, 0x1b, 0x9a, 0xd2, 0x1f, 0xcd, 0x69, 0x4e, - 0x64, 0x3c, 0x14, 0x8a, 0xe5, 0xd0, 0x9c, 0xfa, 0xd4, 0x21, 0x86, 0x7e, 0x1d, 0x27, 0xf1, 0x34, - 0xf0, 0x45, 0x42, 0xb7, 0xa2, 0x1a, 0xcf, 0xfa, 0xbd, 0xcf, 0x2d, 0x28, 0x7e, 0xb8, 0x75, 0xf8, - 0x22, 0xdf, 0x6b, 0x1f, 0x17, 0xe6, 0xf8, 0xb8, 0x78, 0xb5, 0x8f, 0xed, 0x4b, 0x7c, 0x7c, 0x1f, - 0x5a, 0xe3, 0x44, 0xf8, 0x62, 0x10, 0x44, 0xc2, 0x77, 0xd0, 0xb9, 0x2a, 0x12, 0x9a, 0xe7, 0xe8, - 0x86, 0x17, 0x62, 0x7d, 0xe7, 0x21, 0x10, 0xa5, 0x81, 0x1b, 0x4a, 0x3a, 0x1a, 0x3a, 0x2e, 0xda, - 0x39, 0x1c, 0x83, 0xbf, 0xf7, 0x17, 0x0b, 0x3a, 0x17, 0x8f, 0xc7, 0xb7, 0xbf, 0xaf, 0xd7, 0xa0, - 0xe1, 0x7a, 0x5e, 0x3c, 0x89, 0x52, 0x87, 0x68, 0x56, 0xed, 0xaa, 0xae, 0xb1, 0x7d, 0x64, 0xdb, - 0xdb, 0x00, 0xf2, 0xc4, 0x4d, 0x84, 0x2a, 0x29, 0xd4, 0x6e, 0x6a, 0x0a, 0xc1, 0xe2, 0xe5, 0xd7, - 0x16, 0x94, 0x37, 0xd5, 0x4a, 0xbe, 0xd9, 0x89, 0x2c, 0xce, 0x39, 0x91, 0xf6, 0x9c, 0x5d, 0x95, - 0xae, 0xde, 0x55, 0xf9, 0xf9, 0x5d, 0x61, 0x35, 0xda, 0xc8, 0x13, 0x1c, 0x7b, 0x90, 0x7d, 0xc5, - 0xd2, 0x85, 0xa0, 0x26, 0x28, 0xb5, 0xf2, 0xec, 0xab, 0xf7, 0xa0, 0x69, 0x62, 0x4d, 0xd9, 0x43, - 0x99, 0xba, 0x61, 0x40, 0x32, 0xc8, 0xdb, 0x50, 0x72, 0xd3, 0x34, 0x31, 0x77, 0x9c, 0xbb, 0x97, - 0x51, 0xea, 0xea, 0x06, 0x6a, 0x3c, 0x8e, 0xd2, 0xe4, 0x8c, 0x2b, 0xed, 0xa5, 0x77, 0x01, 0xce, - 0x41, 0xa4, 0x08, 0x53, 0xb6, 0xd7, 0x38, 0x36, 0xb1, 0xe0, 0x9f, 0xba, 0xe1, 0xc4, 0x7c, 0x53, - 0x75, 0xbe, 0x5f, 0x78, 0xd7, 0xea, 0xdd, 0x01, 0x1b, 0xa9, 0x57, 0xd9, 0x70, 0x14, 0xa7, 0xe6, - 0x2a, 0xac, 0x7b, 0x18, 0x4a, 0x2d, 0x53, 0x3f, 0xca, 0x71, 0x1c, 0x49, 0x3c, 0xfa, 0x25, 0x55, - 0xf8, 0x5a, 0xb3, 0x49, 0x86, 0x0a, 0x5d, 0xae, 0x64, 0xff, 0x65, 0x19, 0xf9, 0x4d, 0x5e, 0x93, - 0x2e, 0x3c, 0x42, 0x94, 0xbe, 0xd1, 0x23, 0x44, 0xef, 0x1a, 0x2c, 0x6e, 0x9d, 0x08, 0x6f, 0xb8, - 0xe1, 0x8f, 0x82, 0x48, 0x97, 0xc2, 0xbd, 0x5f, 0x58, 0xc0, 0xf2, 0xe8, 0xcb, 0x6c, 0xf0, 0xc1, - 0x4c, 0x1a, 0x40, 0xb7, 0xeb, 0x27, 0x3e, 0x4e, 0x68, 0x16, 0x84, 0x0f, 0x61, 0xf1, 0xc4, 0x95, - 0xce, 0x58, 0x44, 0x7e, 0x10, 0x1d, 0x3b, 0x2e, 0x7e, 0x89, 0x76, 0x5d, 0xe5, 0xed, 0x13, 0x57, - 0x1e, 0x28, 0x9c, 0x16, 0xd0, 0xfb, 0xab, 0x05, 0xb7, 0x1f, 0x6b, 0x0a, 0xd4, 0xc7, 0x96, 0x0b, - 0x8c, 0x3e, 0x61, 0x8a, 0xf7, 0x4b, 0x0a, 0x5c, 0xeb, 0xa5, 0x0a, 0xdc, 0xbb, 0x50, 0xd7, 0xb4, - 0x9a, 0x8b, 0x41, 0x50, 0xd0, 0xbe, 0x2e, 0x80, 0x12, 0xf5, 0x4d, 0xa5, 0xa1, 0x8e, 0x54, 0x5d, - 0x63, 0xa4, 0x72, 0x1f, 0x5a, 0x5e, 0x1c, 0xa5, 0x22, 0x4a, 0x9d, 0x50, 0x44, 0xc7, 0xe9, 0x89, - 0xae, 0xf6, 0x9b, 0x1a, 0x7d, 0x42, 0x60, 0x6f, 0x19, 0xee, 0xcc, 0xdb, 0x8c, 0x32, 0x74, 0xef, - 0x0f, 0x16, 0x2c, 0x5d, 0x50, 0x39, 0x74, 0xa7, 0xdf, 0xe2, 0x66, 0x9f, 0xdf, 0x49, 0xf1, 0xb2, - 0x9d, 0xdc, 0x86, 0x5b, 0x97, 0x2e, 0x53, 0x6f, 0xe3, 0x57, 0x05, 0xf5, 0x02, 0xe2, 0xbb, 0xa9, - 0xcb, 0x1e, 0x9a, 0x10, 0x56, 0x8f, 0x1f, 0x59, 0x51, 0xb4, 0xad, 0x5f, 0x32, 0xa8, 0x40, 0xd7, - 0xa1, 0xfc, 0x0e, 0xd4, 0xe9, 0x61, 0xf4, 0x38, 0x89, 0x27, 0x63, 0xa4, 0x1b, 0x1c, 0x71, 0xe3, - 0xe2, 0x88, 0x0f, 0x51, 0xca, 0xe9, 0x09, 0x95, 0x9a, 0x52, 0x95, 0xba, 0xe8, 0xa1, 0xc0, 0xa7, - 0x4d, 0x15, 0x55, 0x15, 0x2c, 0x76, 0x69, 0xcb, 0x89, 0x90, 0x71, 0x38, 0x15, 0xb9, 0x7a, 0x17, - 0x0c, 0xa4, 0x6a, 0xe1, 0x91, 0x7b, 0x8a, 0x32, 0xe5, 0xb4, 0xd2, 0xc8, 0x3d, 0xd5, 0x70, 0x10, - 0x21, 0x5c, 0xd2, 0x70, 0x10, 0x1d, 0xe1, 0x0a, 0xe9, 0xe5, 0x3a, 0x3b, 0x6d, 0x15, 0x7d, 0xda, - 0x72, 0x4f, 0x89, 0xe6, 0xb4, 0xd5, 0x47, 0xe7, 0x9d, 0xde, 0xdf, 0x2d, 0x68, 0xce, 0xac, 0xff, - 0xb2, 0x6a, 0x8b, 0xfd, 0x00, 0xda, 0xe7, 0x0f, 0x40, 0xea, 0x52, 0x53, 0xb8, 0xc2, 0x6a, 0xcd, - 0xec, 0x35, 0x88, 0xae, 0x08, 0xe7, 0x4b, 0x2e, 0xe6, 0x97, 0x3c, 0x67, 0x83, 0x0f, 0xa0, 0x8d, - 0xda, 0x79, 0xe3, 0xa8, 0x9d, 0x36, 0xd5, 0xd1, 0x37, 0xf6, 0xb9, 0x09, 0x65, 0x1d, 0x0a, 0xea, - 0x15, 0x4e, 0xf7, 0x7a, 0x5f, 0xd9, 0xd0, 0xc8, 0xaf, 0x26, 0xf7, 0x4c, 0x68, 0xcd, 0x3c, 0x13, - 0x9a, 0x8d, 0x16, 0x72, 0x1b, 0x7d, 0x08, 0x8b, 0xd1, 0x64, 0xd4, 0x17, 0x89, 0x13, 0x0f, 0x1c, - 0x11, 0xa5, 0x49, 0x20, 0xd4, 0xaa, 0x8b, 0xbc, 0xad, 0x04, 0x4f, 0x07, 0x8f, 0x15, 0x9c, 0xdb, - 0x96, 0x7d, 0xf9, 0xb6, 0x4a, 0xf9, 0x6d, 0x5d, 0xf0, 0x77, 0xf9, 0x39, 0x7f, 0xdf, 0x82, 0x9a, - 0x7e, 0xad, 0x08, 0x7c, 0x72, 0x5f, 0x91, 0x57, 0x15, 0x70, 0xf1, 0xb2, 0x5f, 0x9d, 0xcf, 0xd2, - 0xb5, 0x4b, 0x9e, 0x79, 0xce, 0x9f, 0x0c, 0xff, 0x1f, 0x6c, 0xba, 0x04, 0xd5, 0x29, 0x38, 0x3a, - 0x79, 0xd2, 0xa6, 0xcb, 0x0e, 0x49, 0x71, 0xba, 0x40, 0x3a, 0x18, 0x24, 0x54, 0x0b, 0x56, 0x79, - 0x39, 0x90, 0xf4, 0x1f, 0xc6, 0xab, 0x50, 0x55, 0x57, 0x2e, 0x5d, 0x07, 0x16, 0x79, 0x85, 0xfa, - 0xbb, 0x7e, 0xce, 0x19, 0xad, 0xbc, 0x33, 0xd8, 0xf7, 0x60, 0x09, 0x6d, 0xd4, 0x17, 0xc7, 0x64, - 0x29, 0x27, 0x88, 0x1c, 0x5f, 0x0c, 0xdc, 0x49, 0x98, 0x3a, 0xde, 0x80, 0x2a, 0x3f, 0x9b, 0xdf, - 0x18, 0x05, 0xd1, 0x26, 0x2a, 0x1c, 0xc9, 0xdd, 0x68, 0x5b, 0x49, 0xb7, 0x06, 0xc4, 0x6f, 0xf4, - 0xca, 0x1e, 0x0f, 0x06, 0x52, 0xa4, 0x54, 0x06, 0xda, 0xbc, 0x4e, 0xd8, 0x53, 0x82, 0xce, 0x55, - 0xf4, 0xb7, 0x17, 0x73, 0x2a, 0x8a, 0x11, 0x2e, 0xbd, 0x03, 0xb2, 0x97, 0xbc, 0x03, 0x16, 0x82, - 0x69, 0xef, 0x97, 0x16, 0x2c, 0xe6, 0xef, 0xbf, 0x8f, 0x4d, 0xf2, 0x3c, 0x71, 0xc7, 0x63, 0x11, - 0x39, 0xae, 0x79, 0x27, 0xab, 0x2a, 0x60, 0x83, 0xde, 0x6f, 0x28, 0x03, 0x39, 0x5e, 0xec, 0x1b, - 0x4e, 0xab, 0x11, 0xb2, 0x15, 0xfb, 0x98, 0xbc, 0xd4, 0x5f, 0x4f, 0xce, 0x48, 0x48, 0x89, 0xd7, - 0x26, 0x45, 0xe0, 0x0d, 0x02, 0x3f, 0x56, 0xd8, 0x0c, 0x81, 0xd8, 0xe6, 0xae, 0x4c, 0x04, 0xf2, - 0xf0, 0x87, 0xd0, 0xbe, 0xb0, 0x72, 0x56, 0x87, 0xca, 0x8f, 0xf7, 0xf7, 0xf6, 0x9f, 0xfe, 0x64, - 0xbf, 0xb3, 0xc0, 0x2a, 0x50, 0x7c, 0xf2, 0xe9, 0xa3, 0x8e, 0xc5, 0x00, 0xca, 0x87, 0xfb, 0x1b, - 0x07, 0x07, 0x3f, 0xed, 0x14, 0x58, 0x15, 0xec, 0x4f, 0x0f, 0x8f, 0xb6, 0x3b, 0xc5, 0x87, 0xb7, - 0xa1, 0x9e, 0x23, 0x05, 0x56, 0x86, 0xc2, 0x27, 0x6f, 0x75, 0x16, 0xe8, 0x77, 0xad, 0x63, 0x3d, - 0xbc, 0x0b, 0x55, 0x13, 0x16, 0x38, 0xc1, 0xb6, 0x08, 0x45, 0x2a, 0xd4, 0xac, 0x07, 0x93, 0xb4, - 0x63, 0xad, 0xfd, 0x16, 0x4b, 0x3e, 0x32, 0x05, 0x7b, 0x0f, 0xf4, 0x7f, 0x6b, 0x2c, 0xa3, 0xc4, - 0x99, 0x97, 0xac, 0xa5, 0x9b, 0x17, 0x61, 0xcd, 0xc7, 0x0b, 0x6f, 0x5a, 0xec, 0x00, 0xae, 0x51, - 0x66, 0xcf, 0xe7, 0xd7, 0xa7, 0x63, 0xf6, 0x6a, 0xe6, 0x9d, 0x8b, 0xc5, 0xc0, 0xd2, 0xd2, 0x65, - 0xa2, 0xf3, 0x19, 0xd7, 0xfe, 0x64, 0x41, 0xfb, 0x42, 0x16, 0x60, 0x9f, 0x42, 0x45, 0x27, 0x46, - 0x76, 0x3f, 0xab, 0x12, 0xae, 0x4a, 0xe0, 0x4b, 0x0f, 0x5e, 0xa4, 0x66, 0xbe, 0xc8, 0x7e, 0x04, - 0xb6, 0x74, 0xa7, 0x82, 0xf5, 0xe6, 0x8c, 0xc8, 0x65, 0xca, 0xa5, 0x7b, 0x57, 0xea, 0x98, 0x29, - 0x37, 0x1f, 0xfc, 0xe3, 0x8f, 0x55, 0xeb, 0xf3, 0xaf, 0xef, 0x58, 0x5f, 0x7e, 0x7d, 0xc7, 0xfa, - 0xe7, 0xd7, 0x77, 0xac, 0xdf, 0xfd, 0xeb, 0xce, 0x02, 0x74, 0xe2, 0xe4, 0x78, 0x35, 0x0d, 0x86, - 0xd3, 0xd5, 0xe1, 0x94, 0xfe, 0x64, 0xec, 0x97, 0xe9, 0x67, 0xfd, 0x3f, 0x01, 0x00, 0x00, 0xff, - 0xff, 0x69, 0x00, 0x2a, 0x91, 0xe8, 0x1c, 0x00, 0x00, + // 3003 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0x4b, 0x6f, 0x24, 0xc7, + 0x91, 0x66, 0xf5, 0xbb, 0xa3, 0x9f, 0xac, 0x79, 0xa8, 0xc5, 0xd9, 0x99, 0xa1, 0x7a, 0x34, 0xb3, + 0x5c, 0x6a, 0x97, 0x92, 0xc8, 0x91, 0xa0, 0x5d, 0xed, 0x42, 0xe0, 0x63, 0x24, 0x52, 0x9c, 0x07, + 0x37, 0xc9, 0xd5, 0x62, 0x75, 0x29, 0x64, 0x57, 0x65, 0x93, 0xb5, 0x5d, 0x5d, 0x55, 0xae, 0xac, + 0xee, 0x21, 0xf5, 0x1f, 0x0c, 0xdb, 0x07, 0xc3, 0x3e, 0xf8, 0x6a, 0xc0, 0x3f, 0xc3, 0x17, 0x03, + 0x12, 0x6c, 0xc0, 0x02, 0x74, 0xf1, 0xd1, 0x90, 0x7f, 0x80, 0xaf, 0x3e, 0x1a, 0x11, 0x99, 0x59, + 0x5d, 0xcd, 0x21, 0x39, 0x1a, 0xdb, 0xd0, 0xa9, 0x2b, 0xbf, 0x88, 0xcc, 0x8c, 0x8c, 0x77, 0x66, + 0x03, 0x0c, 0x92, 0x78, 0xb0, 0x16, 0x27, 0x51, 0x1a, 0xd9, 0x95, 0x01, 0x77, 0x47, 0x93, 0x78, + 0xa9, 0x35, 0x9a, 0x26, 0xb1, 0x6b, 0xe0, 0xa5, 0x96, 0x48, 0x92, 0x28, 0xe3, 0x5a, 0x6a, 0x8e, + 0x45, 0xca, 0xb3, 0x91, 0x2d, 0x42, 0x37, 0x39, 0x8b, 0x53, 0x3f, 0x0a, 0x33, 0xec, 0xfa, 0x71, + 0x74, 0x1c, 0xd1, 0xe7, 0xdb, 0xf8, 0xa5, 0xd1, 0x4e, 0x32, 0x91, 0x29, 0x7d, 0x2a, 0xa0, 0xff, + 0xe7, 0x0a, 0xc0, 0x16, 0xed, 0xf8, 0x44, 0xa4, 0xdc, 0xbe, 0x0d, 0xe0, 0x06, 0x13, 0x99, 0x8a, + 0xc4, 0xf1, 0xbd, 0x9e, 0xb5, 0x6c, 0xad, 0x94, 0x58, 0x5d, 0x23, 0x7b, 0x9e, 0xfd, 0xcf, 0xd0, + 0x31, 0xe4, 0xa9, 0x48, 0xa4, 0x1f, 0x85, 0xbd, 0xc2, 0xb2, 0xb5, 0x52, 0x67, 0x6d, 0x0d, 0x7f, + 0xa6, 0x50, 0x5c, 0x67, 0x30, 0xe3, 0x69, 0x10, 0x4f, 0x7d, 0x90, 0x91, 0x7b, 0x50, 0x35, 0xb4, + 0xe6, 0xb2, 0xb5, 0x52, 0x66, 0x66, 0x68, 0xf7, 0xa1, 0x3c, 0xf4, 0x03, 0x21, 0x7b, 0xa5, 0xe5, + 0xe2, 0x4a, 0x63, 0xbd, 0xb9, 0xa6, 0xd4, 0xb1, 0xf6, 0xb1, 0x1f, 0x08, 0xa6, 0x48, 0xf6, 0xdb, + 0x00, 0xf8, 0xe1, 0xf8, 0xa1, 0x27, 0x4e, 0x7b, 0xad, 0x65, 0x6b, 0xa5, 0xb1, 0xde, 0x35, 0x8c, + 0x78, 0x0c, 0x62, 0xae, 0x23, 0xcf, 0x1e, 0xb2, 0xd8, 0xf7, 0xa0, 0x25, 0x53, 0x9e, 0xa4, 0x99, + 0x40, 0x65, 0x3a, 0x58, 0x93, 0x40, 0x23, 0xd3, 0x5d, 0x68, 0x88, 0xd0, 0xcb, 0x58, 0x2a, 0xc4, + 0x02, 0x22, 0xf4, 0x0c, 0xc3, 0x0a, 0x54, 0xa5, 0x7b, 0x22, 0xc6, 0x5c, 0xf6, 0xaa, 0x24, 0x5c, + 0xdb, 0xec, 0x79, 0x48, 0x30, 0x33, 0x64, 0x7b, 0x03, 0x9a, 0xea, 0x53, 0x8b, 0xd8, 0xbe, 0x44, + 0xc4, 0x86, 0xe2, 0x52, 0x42, 0x2e, 0x41, 0xdd, 0x97, 0x4e, 0xc2, 0x9f, 0x3b, 0xa3, 0x69, 0xaf, + 0xb6, 0x6c, 0xad, 0xd4, 0x58, 0xd5, 0x97, 0x8c, 0x3f, 0xdf, 0x9f, 0xe2, 0x89, 0x91, 0x90, 0xf0, + 0xf0, 0x58, 0xc8, 0x5e, 0x9d, 0x76, 0xcf, 0x96, 0x63, 0xfc, 0x39, 0x43, 0x02, 0xab, 0x27, 0xfa, + 0x4b, 0xda, 0x1f, 0x40, 0x27, 0x9b, 0xa0, 0x85, 0xe8, 0x5c, 0x22, 0x44, 0xcb, 0xcc, 0x52, 0x62, + 0xd8, 0x50, 0xf2, 0xbc, 0x40, 0xf6, 0x60, 0xd9, 0x5a, 0x69, 0x32, 0xfa, 0xb6, 0xdf, 0x85, 0x86, + 0xe7, 0x05, 0x6a, 0x1d, 0x21, 0x7b, 0xdd, 0x4b, 0x56, 0x02, 0xcf, 0x0b, 0xf6, 0x14, 0x0f, 0xaa, + 0x5c, 0x91, 0x9d, 0x44, 0xc8, 0x49, 0x90, 0xf6, 0x16, 0xc9, 0x07, 0x9a, 0x0a, 0x64, 0x84, 0xd9, + 0x0f, 0xa1, 0xc1, 0x63, 0x3f, 0x53, 0xb9, 0xbd, 0x6c, 0xad, 0xb4, 0xd7, 0xaf, 0xad, 0x19, 0xcf, + 0xdf, 0x3c, 0xd8, 0xd3, 0xba, 0x67, 0xc0, 0x63, 0xdf, 0xd8, 0x61, 0x03, 0x6a, 0x71, 0x14, 0xf8, + 0xae, 0x2f, 0x64, 0xef, 0x1a, 0xa9, 0xe2, 0x35, 0x23, 0xca, 0x41, 0xc0, 0x5d, 0x31, 0x16, 0x61, + 0x7a, 0x80, 0x0c, 0x67, 0x2c, 0x63, 0xb4, 0x1f, 0xc2, 0xcd, 0x50, 0x3c, 0x77, 0xdc, 0x28, 0x08, + 0x38, 0xc6, 0x89, 0x74, 0x44, 0xc8, 0x07, 0x81, 0xf0, 0x7a, 0xd7, 0x49, 0xb0, 0xeb, 0xa1, 0x78, + 0xbe, 0x9d, 0x11, 0x1f, 0x29, 0x9a, 0xb6, 0x49, 0x7a, 0x1a, 0xa2, 0x4d, 0x6e, 0x18, 0x9b, 0x1c, + 0x9d, 0x86, 0xfb, 0x53, 0x7b, 0x15, 0xaa, 0xde, 0xc0, 0x19, 0xf3, 0x58, 0xf6, 0x6e, 0x92, 0x14, + 0x8b, 0x99, 0x14, 0x7e, 0x9a, 0xec, 0x6c, 0x3d, 0xe1, 0x31, 0xab, 0x78, 0x83, 0x27, 0x3c, 0x96, + 0x9f, 0x96, 0x6a, 0xc5, 0x6e, 0x89, 0x95, 0x62, 0x9e, 0x9e, 0xf4, 0xbf, 0x2a, 0x40, 0x09, 0xd5, + 0x85, 0x9a, 0x0e, 0xf9, 0x58, 0x50, 0x94, 0xd5, 0x19, 0x7d, 0xdb, 0x37, 0xa1, 0x22, 0x4f, 0xf8, + 0xfa, 0x7b, 0xef, 0x53, 0x5c, 0x35, 0x99, 0x1e, 0xd9, 0xb7, 0xa0, 0xae, 0x3c, 0x78, 0x24, 0xce, + 0x7a, 0x45, 0x22, 0xd5, 0x08, 0xd8, 0x17, 0x67, 0xf6, 0x6b, 0x50, 0x45, 0xcf, 0x45, 0x52, 0x49, + 0xcd, 0x12, 0xa1, 0x87, 0x84, 0x7f, 0x8c, 0xdf, 0x2f, 0x41, 0xcd, 0x4d, 0xdc, 0xf7, 0x1f, 0x9e, + 0x46, 0x49, 0xaf, 0x4a, 0xd4, 0x6c, 0x8c, 0x72, 0xa5, 0x51, 0xca, 0x03, 0x67, 0x34, 0x95, 0xe4, + 0xb4, 0x25, 0x56, 0x23, 0x60, 0x7f, 0x2a, 0x71, 0x65, 0x45, 0x1c, 0x9c, 0xa5, 0xe4, 0xb6, 0xb4, + 0x32, 0x41, 0x5b, 0x88, 0xd8, 0x6d, 0x28, 0xb8, 0x43, 0xf2, 0xb4, 0x3a, 0x2b, 0xb8, 0x43, 0xd4, + 0x88, 0xf4, 0xbf, 0x10, 0x94, 0x2f, 0x4a, 0x8c, 0xbe, 0x71, 0x07, 0xd7, 0x8f, 0x4f, 0x30, 0x21, + 0x4d, 0x29, 0x59, 0x34, 0x59, 0x4d, 0x01, 0x7b, 0xd3, 0xfe, 0x37, 0x16, 0xd4, 0x8c, 0xfb, 0xd9, + 0x6f, 0x01, 0x60, 0x56, 0x74, 0x54, 0xfe, 0xb0, 0x2e, 0xc8, 0x1f, 0xf5, 0xb1, 0xe6, 0x95, 0xc8, + 0xec, 0xf1, 0x8c, 0xb9, 0x70, 0x11, 0x33, 0xd2, 0x15, 0x73, 0x2e, 0xf2, 0x8b, 0x57, 0x47, 0xfe, + 0x7c, 0xa0, 0x96, 0x5e, 0x1e, 0xa8, 0x26, 0xdc, 0xca, 0xcb, 0x45, 0x13, 0x6e, 0xfd, 0xfb, 0xd0, + 0x39, 0xe7, 0xc8, 0xc8, 0xe6, 0x87, 0xc3, 0x88, 0x7c, 0xa5, 0xc9, 0xe8, 0xbb, 0xff, 0x95, 0x05, + 0x15, 0xb5, 0x3f, 0x2a, 0xd2, 0x1b, 0x68, 0x62, 0xc1, 0x1b, 0xd8, 0xd7, 0xa1, 0x9c, 0xa2, 0x07, + 0x6b, 0x2f, 0x52, 0x83, 0x39, 0x43, 0x16, 0xaf, 0x32, 0x64, 0xe9, 0x6a, 0x43, 0x96, 0x5f, 0x30, + 0xe4, 0xbf, 0x40, 0x37, 0xf5, 0x87, 0x01, 0x97, 0x27, 0x4e, 0x22, 0xe2, 0xc0, 0x77, 0xb9, 0x24, + 0x47, 0x6a, 0xb1, 0x8e, 0xc6, 0x99, 0x86, 0x51, 0x34, 0x99, 0xf2, 0x54, 0x92, 0x2b, 0x35, 0x99, + 0x1a, 0xf4, 0x9f, 0x40, 0x79, 0x6f, 0xe7, 0x09, 0x8f, 0x71, 0xab, 0x49, 0x2c, 0xd3, 0x44, 0xf0, + 0xb1, 0xa9, 0x40, 0x45, 0x06, 0x06, 0xda, 0xf3, 0xd0, 0xa7, 0xbd, 0xe8, 0x79, 0x38, 0x63, 0x29, + 0x10, 0x4b, 0x73, 0x06, 0xee, 0x79, 0xfd, 0xe7, 0xd0, 0xc4, 0x20, 0x3c, 0xc2, 0x63, 0xe3, 0xaa, + 0x17, 0x85, 0xda, 0x9b, 0x50, 0xf1, 0x3d, 0x8c, 0x5f, 0x5a, 0xa1, 0xb1, 0xde, 0x32, 0x66, 0x22, + 0x41, 0x58, 0xd9, 0xf7, 0x70, 0xe6, 0xbf, 0x01, 0xc4, 0x3c, 0x49, 0x7d, 0x4a, 0x0b, 0xda, 0xfa, + 0xe7, 0x38, 0x73, 0x0c, 0x7d, 0x09, 0xf5, 0x2c, 0xfa, 0xff, 0x8e, 0x5d, 0xff, 0x15, 0x2a, 0x64, + 0x32, 0xb3, 0xe3, 0xf5, 0x7c, 0x6a, 0x31, 0xa7, 0x62, 0x9a, 0xa7, 0x7f, 0x00, 0x35, 0xe3, 0x5a, + 0xf3, 0x89, 0xc2, 0xba, 0x3c, 0x51, 0x14, 0xe6, 0x12, 0x85, 0x0a, 0xc4, 0xa2, 0x09, 0xc4, 0xfe, + 0x0e, 0xb4, 0xb7, 0x75, 0xd1, 0xdf, 0x79, 0x84, 0x8d, 0x07, 0x56, 0x6c, 0x77, 0x92, 0x24, 0x22, + 0x4c, 0x75, 0x57, 0x60, 0x86, 0x48, 0x49, 0xc4, 0x0f, 0x26, 0x42, 0xa6, 0xb4, 0x68, 0x89, 0x99, + 0x61, 0xff, 0x77, 0x16, 0x94, 0xd5, 0xec, 0x2e, 0x14, 0xc7, 0xf2, 0x58, 0x2b, 0x02, 0x3f, 0xed, + 0x2d, 0xe8, 0xce, 0x1a, 0x0d, 0x87, 0x9a, 0x1b, 0xda, 0xbf, 0xb1, 0x7e, 0xd3, 0x9c, 0x75, 0x5e, + 0x82, 0xdd, 0x85, 0xac, 0xc9, 0xd8, 0xf3, 0xd4, 0xaa, 0x6b, 0x50, 0x1b, 0x4d, 0xf5, 0xdc, 0x12, + 0xcd, 0x5d, 0xcc, 0x6a, 0xc7, 0xbe, 0x38, 0x33, 0xd3, 0xaa, 0xa3, 0xa9, 0xe2, 0xdf, 0x80, 0x66, + 0x22, 0x8e, 0xfd, 0x28, 0xd4, 0x73, 0xca, 0x34, 0xa7, 0xbd, 0x66, 0x5a, 0x2b, 0x33, 0xa1, 0xa1, + 0xb8, 0x68, 0xb8, 0x55, 0x83, 0x8a, 0x27, 0x52, 0xee, 0x07, 0xfd, 0x00, 0x60, 0x5b, 0x25, 0x9e, + 0x70, 0x18, 0xd9, 0x1f, 0x41, 0x43, 0xe7, 0xa5, 0xf4, 0x2c, 0x56, 0x36, 0x6e, 0xaf, 0xdf, 0x59, + 0x9b, 0xeb, 0xc4, 0x1e, 0x65, 0x83, 0x27, 0x22, 0x3d, 0x89, 0x3c, 0x06, 0x6a, 0xca, 0xd1, 0x59, + 0x2c, 0xa8, 0xd5, 0x52, 0x0b, 0xcc, 0xec, 0xa1, 0x53, 0xdd, 0xbe, 0x38, 0xeb, 0xff, 0xa2, 0x0c, + 0xad, 0x2d, 0x5d, 0x2c, 0x49, 0x9d, 0x2f, 0xeb, 0xcd, 0xe6, 0x2c, 0x5f, 0xb8, 0xdc, 0xf2, 0xc5, + 0xab, 0x4b, 0x44, 0xe9, 0xe5, 0x25, 0xa2, 0xfc, 0x42, 0x89, 0xb8, 0x8d, 0x69, 0x2f, 0x15, 0x4e, + 0xe0, 0x8f, 0xfd, 0x54, 0x17, 0x89, 0x3a, 0x22, 0x8f, 0x11, 0xb0, 0x97, 0xa1, 0xe1, 0x46, 0xa1, + 0x72, 0x18, 0xf7, 0x8c, 0xea, 0x44, 0x8b, 0xe5, 0x21, 0xfb, 0x23, 0xe8, 0xc8, 0x34, 0x4a, 0xf8, + 0xb1, 0x70, 0xd0, 0xfa, 0x22, 0xf4, 0xa8, 0x5c, 0xe4, 0xbc, 0xe1, 0x50, 0x91, 0xb7, 0x14, 0x95, + 0xb5, 0xe5, 0xdc, 0x78, 0xbe, 0x7b, 0x82, 0xf9, 0xee, 0x49, 0x79, 0x77, 0x23, 0x2b, 0x33, 0xe8, + 0x7b, 0xd1, 0x38, 0x4e, 0x84, 0x44, 0xe1, 0x95, 0xfd, 0x9a, 0x64, 0xbf, 0xac, 0x91, 0xd8, 0x9e, + 0xd1, 0xd1, 0x58, 0xac, 0xe3, 0xce, 0x03, 0xf6, 0x5b, 0xb0, 0x98, 0x5f, 0x23, 0x10, 0x53, 0x11, + 0x50, 0x2b, 0x5a, 0x66, 0xf9, 0xc5, 0x1f, 0x23, 0x6e, 0x6f, 0x64, 0xbe, 0x42, 0x49, 0x5c, 0xb5, + 0x83, 0x76, 0xb6, 0x57, 0xe6, 0x54, 0xc6, 0x3f, 0xc8, 0xc1, 0x3e, 0x84, 0x8e, 0x27, 0x53, 0x27, + 0xdf, 0x20, 0x75, 0x2e, 0x6f, 0x90, 0x5a, 0x9e, 0x4c, 0x37, 0x67, 0x3d, 0xd2, 0x3b, 0x00, 0x72, + 0x32, 0x30, 0x75, 0xa8, 0xab, 0xfb, 0x93, 0x5c, 0x70, 0xe8, 0x42, 0x24, 0x27, 0x03, 0x5d, 0x88, + 0xde, 0xc0, 0xe0, 0xa0, 0x1c, 0xed, 0x24, 0x82, 0x7b, 0xd4, 0xaf, 0xd5, 0x30, 0x14, 0x08, 0x63, + 0x82, 0x7b, 0x9f, 0x96, 0x6a, 0x95, 0x6e, 0x55, 0x77, 0x31, 0x3f, 0x2d, 0xc0, 0xf5, 0x43, 0x4a, + 0xb7, 0xca, 0x49, 0x8f, 0xb8, 0x1c, 0x91, 0xd8, 0xef, 0x40, 0x55, 0x9b, 0x86, 0x5c, 0xf4, 0x72, + 0x0b, 0x1a, 0x36, 0xfb, 0x75, 0x50, 0x7e, 0xea, 0xa4, 0xd2, 0x64, 0x10, 0x1a, 0x1f, 0x49, 0xfb, + 0x06, 0xa0, 0x9f, 0x22, 0x41, 0xd5, 0xab, 0xb2, 0x08, 0xbd, 0x23, 0x99, 0x25, 0xd6, 0x52, 0x2e, + 0xb1, 0xbe, 0x01, 0x4d, 0x4a, 0x87, 0x58, 0xd1, 0x53, 0x91, 0x50, 0x41, 0xad, 0xb3, 0x06, 0x61, + 0x1f, 0x13, 0x74, 0xa1, 0xdd, 0x2b, 0xaf, 0x66, 0x77, 0xd6, 0x0e, 0xb8, 0x4c, 0x9d, 0x49, 0xec, + 0xa1, 0xbb, 0xa7, 0x92, 0x55, 0x94, 0x8a, 0x59, 0x05, 0xeb, 0xd8, 0x44, 0xf6, 0xbf, 0x2e, 0x40, + 0x7b, 0xfe, 0xa0, 0x76, 0x1f, 0x4a, 0x61, 0x14, 0xc5, 0x5a, 0x1d, 0x59, 0x93, 0xf1, 0x34, 0x8a, + 0xe2, 0xdd, 0x05, 0x46, 0x34, 0xfb, 0x3e, 0x94, 0x83, 0xc8, 0xe5, 0xc1, 0xf9, 0xaa, 0xf0, 0x18, + 0xc1, 0xdd, 0x05, 0xa6, 0xa8, 0xf6, 0x3f, 0x41, 0x41, 0x6e, 0xe8, 0x3c, 0x09, 0x99, 0x5e, 0x37, + 0x76, 0x17, 0x58, 0x41, 0x6e, 0xd8, 0x77, 0xa1, 0x78, 0xec, 0x4a, 0x9d, 0x0a, 0x1b, 0x86, 0xfc, + 0xc9, 0xf6, 0xe1, 0xee, 0x02, 0x43, 0x8a, 0xfd, 0x21, 0xb4, 0xdc, 0x20, 0x9a, 0x78, 0x8e, 0x77, + 0x16, 0xf2, 0xb1, 0xef, 0xea, 0x0c, 0x78, 0x7d, 0x96, 0x71, 0xa3, 0x89, 0xb7, 0xa3, 0x68, 0xbb, + 0x0b, 0xac, 0xe9, 0xe6, 0xc6, 0x78, 0x8c, 0x13, 0x6f, 0xa8, 0xea, 0x7a, 0xee, 0x18, 0xbb, 0x3b, + 0x1f, 0xe3, 0xfa, 0x44, 0xb3, 0x77, 0xc1, 0xe6, 0x5f, 0x4c, 0x12, 0xe1, 0x0c, 0x82, 0x68, 0xe0, + 0x18, 0x3f, 0xa8, 0xd2, 0x8c, 0x9e, 0x99, 0xb1, 0x89, 0x1c, 0x5b, 0x41, 0x34, 0xd0, 0x7a, 0xda, + 0x5d, 0x60, 0x5d, 0x7e, 0x0e, 0xdb, 0xaa, 0x43, 0x55, 0x27, 0x82, 0x7e, 0x05, 0x4a, 0xa8, 0xab, + 0xfe, 0x2d, 0x28, 0x93, 0x3a, 0xd0, 0xfc, 0xe8, 0x83, 0xa6, 0xae, 0x92, 0x3f, 0xfe, 0xa5, 0x08, + 0x85, 0xc3, 0x0d, 0x6c, 0x71, 0x44, 0xe8, 0xc5, 0x91, 0xaf, 0xeb, 0x54, 0x9d, 0x65, 0x63, 0xec, + 0xad, 0x55, 0x62, 0xd7, 0x77, 0x56, 0x3d, 0x42, 0x7c, 0x30, 0x71, 0x47, 0x22, 0xd5, 0x05, 0x50, + 0x8f, 0x10, 0x8f, 0x13, 0x31, 0xf4, 0x4f, 0xb5, 0x9f, 0xe9, 0x91, 0x4a, 0x99, 0x2a, 0x57, 0xb9, + 0x01, 0x97, 0xaa, 0x1f, 0xaa, 0x63, 0xca, 0x24, 0x70, 0x1b, 0x31, 0xac, 0x78, 0x52, 0x2a, 0xf7, + 0xaa, 0x33, 0xfc, 0x44, 0x84, 0xbb, 0x01, 0x29, 0xa3, 0xce, 0xf0, 0x13, 0xb3, 0x26, 0x77, 0x5d, + 0x21, 0x25, 0xe5, 0xe5, 0x9a, 0xba, 0x24, 0x2b, 0x04, 0x53, 0xf3, 0x2a, 0x2c, 0x4a, 0xe1, 0x26, + 0x22, 0x75, 0x72, 0x5c, 0x75, 0xe2, 0xea, 0x28, 0xc2, 0x66, 0xc6, 0xbb, 0x02, 0xdd, 0x61, 0x94, + 0xb8, 0xc2, 0x41, 0x65, 0x38, 0x32, 0x3d, 0x0b, 0x84, 0xce, 0x82, 0x6d, 0xc2, 0x0f, 0x78, 0x7a, + 0x72, 0x88, 0xa8, 0x7d, 0x0f, 0xda, 0x52, 0x0a, 0x67, 0x34, 0xa6, 0xf5, 0xb0, 0x92, 0xa8, 0xc4, + 0xd8, 0x90, 0x52, 0xec, 0x8f, 0x71, 0xb1, 0x3d, 0x0f, 0x43, 0x32, 0x89, 0x02, 0xe1, 0xf0, 0x44, + 0x5d, 0xd0, 0xeb, 0xac, 0x8a, 0xe3, 0xcd, 0x44, 0xd5, 0x82, 0xd3, 0x54, 0x24, 0x21, 0x0f, 0x70, + 0x72, 0x8b, 0xa8, 0x60, 0xa0, 0x3d, 0xcf, 0x5e, 0x83, 0x6b, 0xd1, 0xe0, 0xff, 0x85, 0x9b, 0x3a, + 0x41, 0xe4, 0x8e, 0xb2, 0x6b, 0x56, 0x9b, 0xa4, 0x59, 0x54, 0xa4, 0xc7, 0x91, 0x3b, 0x32, 0x77, + 0x2c, 0x54, 0xa7, 0x89, 0xc8, 0x68, 0x24, 0x54, 0x96, 0x43, 0x75, 0xea, 0xa8, 0x43, 0x0c, 0xed, + 0x1a, 0x27, 0xd1, 0xd4, 0xf7, 0x44, 0x42, 0xd7, 0xcf, 0x3a, 0xcb, 0xc6, 0xfd, 0x2f, 0x2d, 0x28, + 0x7e, 0xb2, 0x7d, 0xf8, 0x32, 0xdb, 0x6b, 0x1b, 0x17, 0x2e, 0xb1, 0x71, 0xf1, 0x6a, 0x1b, 0x97, + 0x2e, 0xb0, 0xf1, 0x7d, 0x68, 0xc7, 0x89, 0xf0, 0xc4, 0xd0, 0x0f, 0x85, 0xe7, 0xa0, 0x71, 0x95, + 0x27, 0xb4, 0x66, 0xe8, 0xa6, 0x1b, 0x60, 0x73, 0xec, 0x22, 0x10, 0xa6, 0x3e, 0x0f, 0x24, 0x85, + 0x86, 0xf6, 0x8b, 0x4e, 0x0e, 0x47, 0xe7, 0xef, 0xff, 0xc6, 0x82, 0xee, 0xf9, 0xf0, 0xf8, 0xfe, + 0xcf, 0xf5, 0x06, 0x34, 0xb9, 0xeb, 0x46, 0x93, 0x30, 0x75, 0x28, 0xcd, 0xaa, 0x53, 0x35, 0x34, + 0xf6, 0x14, 0xb3, 0xed, 0x6d, 0x00, 0x79, 0xc2, 0x13, 0xa1, 0x5a, 0x0a, 0x75, 0x9a, 0xba, 0x42, + 0xb0, 0x79, 0xf9, 0x89, 0x05, 0x95, 0x2d, 0x25, 0xc9, 0x77, 0x8b, 0xc8, 0xe2, 0x25, 0x11, 0x59, + 0xba, 0xe4, 0x54, 0xe5, 0xab, 0x4f, 0x55, 0x79, 0xf1, 0x54, 0xd8, 0x8d, 0x36, 0xf3, 0x09, 0xce, + 0x7e, 0x90, 0xed, 0x62, 0xe9, 0x46, 0x50, 0x27, 0x28, 0x25, 0x79, 0xb6, 0xeb, 0x3d, 0x68, 0x19, + 0x5f, 0x53, 0xfa, 0x50, 0xaa, 0x6e, 0x1a, 0x90, 0x14, 0xf2, 0x1e, 0x94, 0x79, 0x9a, 0x26, 0xa6, + 0x61, 0xbf, 0x7b, 0x51, 0x4a, 0x5d, 0xdb, 0x44, 0x8e, 0x47, 0x61, 0x9a, 0x9c, 0x31, 0xc5, 0xbd, + 0xf4, 0x01, 0xc0, 0x0c, 0xc4, 0x14, 0x61, 0xda, 0xf6, 0x3a, 0xc3, 0x4f, 0xbc, 0x2d, 0x4d, 0x79, + 0x30, 0x31, 0x7b, 0xaa, 0xc1, 0x7f, 0x14, 0x3e, 0xb0, 0xfa, 0x77, 0xa0, 0x84, 0xa9, 0x57, 0xe9, + 0x70, 0x1c, 0xa5, 0xe6, 0x9a, 0xa1, 0x47, 0xe8, 0x4a, 0x6d, 0xd3, 0x3f, 0xca, 0x38, 0x0a, 0x25, + 0x86, 0x7e, 0x59, 0x35, 0xbe, 0xd6, 0x7c, 0x91, 0xa1, 0x46, 0x97, 0x29, 0xda, 0xdf, 0xd8, 0x46, + 0x7e, 0x97, 0x67, 0xbb, 0x73, 0xaf, 0x3d, 0xe5, 0xef, 0xf4, 0xda, 0xd3, 0xbf, 0x06, 0x8b, 0xdb, + 0x27, 0xc2, 0x1d, 0x6d, 0x7a, 0x63, 0x3f, 0xd4, 0xad, 0x70, 0xff, 0x87, 0x16, 0xd8, 0x79, 0xf4, + 0x55, 0x0e, 0xf8, 0x60, 0xae, 0x0c, 0xa0, 0xd9, 0xf5, 0x5b, 0x2a, 0x23, 0x34, 0x73, 0xc2, 0x55, + 0x58, 0x3c, 0xe1, 0xd2, 0x89, 0x45, 0xe8, 0xf9, 0xe1, 0xb1, 0xc3, 0x71, 0x27, 0x3a, 0x75, 0x8d, + 0x75, 0x4e, 0xb8, 0x3c, 0x50, 0x38, 0x09, 0xd0, 0xff, 0xad, 0x05, 0xb7, 0x1f, 0xe9, 0x14, 0xa8, + 0xc3, 0x96, 0x09, 0xf4, 0x3e, 0x61, 0x9a, 0xf7, 0x0b, 0x1a, 0x5c, 0xeb, 0x95, 0x1a, 0xdc, 0xbb, + 0xd0, 0xd0, 0x69, 0x35, 0xe7, 0x83, 0xa0, 0xa0, 0xa7, 0xba, 0x01, 0x4a, 0xd4, 0x9e, 0x8a, 0x43, + 0x85, 0x54, 0x43, 0x63, 0xc4, 0x72, 0x1f, 0xda, 0x6e, 0x14, 0xa6, 0x22, 0x4c, 0x9d, 0x40, 0x84, + 0xc7, 0xe9, 0x89, 0xee, 0xf6, 0x5b, 0x1a, 0x7d, 0x4c, 0x60, 0x7f, 0x19, 0xee, 0x5c, 0x76, 0x18, + 0xa5, 0xe8, 0xfe, 0x2f, 0x2d, 0x58, 0x3a, 0xc7, 0x72, 0xc8, 0xa7, 0xdf, 0xe3, 0x61, 0x5f, 0x3c, + 0x49, 0xf1, 0xa2, 0x93, 0xdc, 0x86, 0x5b, 0x17, 0x8a, 0xa9, 0x8f, 0xf1, 0xe3, 0x82, 0x7a, 0x3e, + 0xf2, 0x78, 0xca, 0xed, 0x55, 0xe3, 0xc2, 0xd6, 0xfc, 0x95, 0x7b, 0x47, 0x3f, 0x03, 0x51, 0x83, + 0xae, 0x5d, 0xf9, 0x7d, 0x68, 0xd0, 0x0b, 0xf4, 0x71, 0x12, 0x4d, 0x62, 0x4c, 0x37, 0x38, 0xe3, + 0xc6, 0xf9, 0x19, 0x9f, 0x20, 0x95, 0xd1, 0x5b, 0x35, 0x7d, 0x4a, 0xd5, 0xea, 0xa2, 0x85, 0xb2, + 0x77, 0x0b, 0xea, 0x82, 0xc5, 0x1e, 0x1d, 0x39, 0x11, 0x32, 0x0a, 0xa6, 0x22, 0xd7, 0xef, 0x82, + 0x81, 0x54, 0x2f, 0x3c, 0xe6, 0xa7, 0x48, 0x53, 0x46, 0x2b, 0x8f, 0xf9, 0xa9, 0x86, 0xfd, 0x10, + 0xe1, 0xb2, 0x86, 0xfd, 0xf0, 0x08, 0x25, 0xa4, 0xbf, 0x08, 0xb2, 0x68, 0xab, 0xea, 0x68, 0xcb, + 0xbd, 0xd9, 0x9a, 0x68, 0x6b, 0x8c, 0x67, 0x83, 0xfe, 0xef, 0x2d, 0x68, 0xcd, 0xc9, 0x7f, 0x51, + 0xb7, 0x65, 0xff, 0x27, 0x74, 0x66, 0xaf, 0x67, 0xea, 0x52, 0x53, 0xb8, 0x42, 0x6b, 0xad, 0xec, + 0x29, 0x8d, 0xae, 0x08, 0x33, 0x91, 0x8b, 0x79, 0x91, 0x2f, 0x39, 0xe0, 0x03, 0xe8, 0x20, 0x77, + 0x5e, 0x39, 0xea, 0xa4, 0x2d, 0x15, 0xfa, 0x46, 0x3f, 0x37, 0xa1, 0xa2, 0x5d, 0x41, 0x3d, 0x61, + 0xea, 0x51, 0xff, 0x9b, 0x12, 0x34, 0xf3, 0xd2, 0xe4, 0xde, 0x58, 0xad, 0xb9, 0x37, 0x56, 0x73, + 0xd0, 0x42, 0xee, 0xa0, 0xab, 0xb0, 0x18, 0x4e, 0xc6, 0x03, 0x91, 0x38, 0xd1, 0xd0, 0x11, 0x61, + 0x9a, 0xf8, 0x42, 0x49, 0x5d, 0x64, 0x1d, 0x45, 0x78, 0x36, 0x7c, 0xa4, 0xe0, 0xdc, 0xb1, 0x4a, + 0x17, 0x1f, 0xab, 0x9c, 0x3f, 0xd6, 0x39, 0x7b, 0x57, 0x5e, 0xb0, 0xf7, 0x2d, 0xa8, 0xeb, 0xd7, + 0x0a, 0xdf, 0x23, 0xf3, 0x15, 0x59, 0x4d, 0x01, 0xe7, 0x2f, 0xfb, 0xb5, 0xcb, 0xb3, 0x74, 0xfd, + 0x82, 0x67, 0x9e, 0xd9, 0x7b, 0xeb, 0x9b, 0x50, 0xa2, 0x4b, 0x50, 0x83, 0x9c, 0xa3, 0x9b, 0x4f, + 0xda, 0x74, 0xd9, 0x21, 0x2a, 0x2e, 0xe7, 0x4b, 0x07, 0x9d, 0x84, 0x7a, 0xc1, 0x1a, 0xab, 0xf8, + 0x92, 0xfe, 0x2c, 0x7a, 0x1d, 0x6a, 0xea, 0xca, 0xa5, 0xfb, 0xc0, 0x22, 0xab, 0xd2, 0x78, 0xcf, + 0xcb, 0x19, 0xa3, 0x9d, 0x37, 0x86, 0xfd, 0xef, 0xb0, 0x84, 0x3a, 0x1a, 0x88, 0x63, 0xd2, 0x94, + 0xe3, 0x87, 0x8e, 0x27, 0x86, 0x7c, 0x12, 0xa4, 0x8e, 0x3b, 0xa4, 0xce, 0xaf, 0xc4, 0x6e, 0x8c, + 0xfd, 0x70, 0x0b, 0x19, 0x8e, 0xe4, 0x5e, 0xb8, 0xa3, 0xa8, 0xdb, 0x43, 0xca, 0x6f, 0xf4, 0x77, + 0x46, 0x34, 0x1c, 0x4a, 0x91, 0x52, 0x1b, 0x58, 0x62, 0x0d, 0xc2, 0x9e, 0x11, 0x34, 0x63, 0xd1, + 0x7b, 0x2f, 0xe6, 0x58, 0x54, 0x46, 0xb8, 0xf0, 0x0e, 0x68, 0xbf, 0xe2, 0x1d, 0xb0, 0xe0, 0x4f, + 0xfb, 0x3f, 0xb2, 0x60, 0x31, 0x7f, 0xff, 0x7d, 0x64, 0x8a, 0xe7, 0x09, 0x8f, 0x63, 0x11, 0x3a, + 0xdc, 0xbc, 0x93, 0xd5, 0x14, 0xb0, 0x49, 0xef, 0x37, 0x54, 0x81, 0x1c, 0x37, 0xf2, 0x4c, 0x4e, + 0xab, 0x13, 0xb2, 0x1d, 0x79, 0x58, 0xbc, 0xd4, 0x7f, 0x7c, 0xce, 0x58, 0x48, 0x89, 0xd7, 0x26, + 0x95, 0xc0, 0x9b, 0x04, 0x3e, 0x51, 0xd8, 0x5c, 0x02, 0x29, 0x99, 0xbb, 0x32, 0x25, 0x90, 0xd5, + 0xff, 0x82, 0xce, 0x39, 0xc9, 0xed, 0x06, 0x54, 0xff, 0xe7, 0xe9, 0xfe, 0xd3, 0x67, 0xff, 0xfb, + 0xb4, 0xbb, 0x60, 0x57, 0xa1, 0xf8, 0xf8, 0xf3, 0x87, 0x5d, 0xcb, 0x06, 0xa8, 0x1c, 0x3e, 0xdd, + 0x3c, 0x38, 0xf8, 0xbf, 0x6e, 0xc1, 0xae, 0x41, 0xe9, 0xf3, 0xc3, 0xa3, 0x9d, 0x6e, 0x71, 0xf5, + 0x36, 0x34, 0x72, 0x49, 0xc1, 0xae, 0x40, 0xe1, 0xb3, 0x77, 0xbb, 0x0b, 0xf4, 0xbb, 0xde, 0xb5, + 0x56, 0xef, 0x42, 0xcd, 0xb8, 0x05, 0x2e, 0xb0, 0x23, 0x02, 0x91, 0x0a, 0xb5, 0xea, 0xc1, 0x24, + 0xed, 0x5a, 0xeb, 0x3f, 0xc3, 0x96, 0x8f, 0x54, 0x61, 0x7f, 0x08, 0xfa, 0x4f, 0x4c, 0x3b, 0x4b, + 0x89, 0x73, 0x2f, 0x59, 0x4b, 0x37, 0xcf, 0xc3, 0x3a, 0x1f, 0x2f, 0xbc, 0x63, 0xd9, 0x07, 0x70, + 0x8d, 0x2a, 0x7b, 0xbe, 0xbe, 0x3e, 0x8b, 0xed, 0xd7, 0x33, 0xeb, 0x9c, 0x6f, 0x06, 0x96, 0x96, + 0x2e, 0x22, 0xcd, 0x56, 0x5c, 0xff, 0xb5, 0x05, 0x9d, 0x73, 0x55, 0xc0, 0xfe, 0x1c, 0xaa, 0xba, + 0x30, 0xda, 0xf7, 0xb3, 0x2e, 0xe1, 0xaa, 0x02, 0xbe, 0xf4, 0xe0, 0x65, 0x6c, 0x66, 0x47, 0xfb, + 0xbf, 0xa1, 0x24, 0xf9, 0x54, 0xd8, 0xfd, 0x4b, 0x66, 0xe4, 0x2a, 0xe5, 0xd2, 0xbd, 0x2b, 0x79, + 0xcc, 0x92, 0x5b, 0x0f, 0xfe, 0xf0, 0xab, 0x9a, 0xf5, 0xe5, 0xb7, 0x77, 0xac, 0xaf, 0xbf, 0xbd, + 0x63, 0xfd, 0xf1, 0xdb, 0x3b, 0xd6, 0xcf, 0xff, 0x74, 0x67, 0x01, 0xba, 0x51, 0x72, 0xbc, 0x96, + 0xfa, 0xa3, 0xe9, 0xda, 0x68, 0x4a, 0xff, 0xe6, 0x0e, 0x2a, 0xf4, 0xb3, 0xf1, 0xd7, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xfc, 0x44, 0xf5, 0xcf, 0x51, 0x1e, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -3467,6 +3668,22 @@ func (m *BackupMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.DbMaps) > 0 { + for iNdEx := len(m.DbMaps) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DbMaps[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintBrpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb2 + } + } if m.IsTxnKv { i-- if m.IsTxnKv { @@ -3959,7 +4176,7 @@ func (m *Schema) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *RawRange) Marshal() (dAtA []byte, err error) { +func (m *IDMap) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -3969,12 +4186,12 @@ func (m *RawRange) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RawRange) MarshalTo(dAtA []byte) (int, error) { +func (m *IDMap) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *RawRange) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *IDMap) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -3983,31 +4200,20 @@ func (m *RawRange) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if len(m.Cf) > 0 { - i -= len(m.Cf) - copy(dAtA[i:], m.Cf) - i = encodeVarintBrpb(dAtA, i, uint64(len(m.Cf))) - i-- - dAtA[i] = 0x1a - } - if len(m.EndKey) > 0 { - i -= len(m.EndKey) - copy(dAtA[i:], m.EndKey) - i = encodeVarintBrpb(dAtA, i, uint64(len(m.EndKey))) + if m.DownstreamId != 0 { + i = encodeVarintBrpb(dAtA, i, uint64(m.DownstreamId)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x10 } - if len(m.StartKey) > 0 { - i -= len(m.StartKey) - copy(dAtA[i:], m.StartKey) - i = encodeVarintBrpb(dAtA, i, uint64(len(m.StartKey))) + if m.UpstreamId != 0 { + i = encodeVarintBrpb(dAtA, i, uint64(m.UpstreamId)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *ClusterIDError) Marshal() (dAtA []byte, err error) { +func (m *PitrTableMap) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -4017,12 +4223,12 @@ func (m *ClusterIDError) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ClusterIDError) MarshalTo(dAtA []byte) (int, error) { +func (m *PitrTableMap) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ClusterIDError) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *PitrTableMap) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -4031,20 +4237,43 @@ func (m *ClusterIDError) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.Request != 0 { - i = encodeVarintBrpb(dAtA, i, uint64(m.Request)) + if len(m.Partitions) > 0 { + for iNdEx := len(m.Partitions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Partitions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintBrpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if m.IdMap != nil { + { + size, err := m.IdMap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintBrpb(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x10 + dAtA[i] = 0x12 } - if m.Current != 0 { - i = encodeVarintBrpb(dAtA, i, uint64(m.Current)) + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintBrpb(dAtA, i, uint64(len(m.Name))) i-- - dAtA[i] = 0x8 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Error) Marshal() (dAtA []byte, err error) { +func (m *PitrDBMap) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -4054,12 +4283,12 @@ func (m *Error) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Error) MarshalTo(dAtA []byte) (int, error) { +func (m *PitrDBMap) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Error) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *PitrDBMap) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -4068,12 +4297,157 @@ func (m *Error) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.Detail != nil { - { - size := m.Detail.Size() - i -= size - if _, err := m.Detail.MarshalTo(dAtA[i:]); err != nil { - return 0, err + if len(m.Tables) > 0 { + for iNdEx := len(m.Tables) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Tables[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintBrpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if m.IdMap != nil { + { + size, err := m.IdMap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintBrpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintBrpb(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RawRange) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RawRange) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RawRange) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Cf) > 0 { + i -= len(m.Cf) + copy(dAtA[i:], m.Cf) + i = encodeVarintBrpb(dAtA, i, uint64(len(m.Cf))) + i-- + dAtA[i] = 0x1a + } + if len(m.EndKey) > 0 { + i -= len(m.EndKey) + copy(dAtA[i:], m.EndKey) + i = encodeVarintBrpb(dAtA, i, uint64(len(m.EndKey))) + i-- + dAtA[i] = 0x12 + } + if len(m.StartKey) > 0 { + i -= len(m.StartKey) + copy(dAtA[i:], m.StartKey) + i = encodeVarintBrpb(dAtA, i, uint64(len(m.StartKey))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ClusterIDError) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClusterIDError) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ClusterIDError) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Request != 0 { + i = encodeVarintBrpb(dAtA, i, uint64(m.Request)) + i-- + dAtA[i] = 0x10 + } + if m.Current != 0 { + i = encodeVarintBrpb(dAtA, i, uint64(m.Current)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Error) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Error) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Error) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Detail != nil { + { + size := m.Detail.Size() + i -= size + if _, err := m.Detail.MarshalTo(dAtA[i:]); err != nil { + return 0, err } } } @@ -5857,6 +6231,12 @@ func (m *BackupMeta) Size() (n int) { if m.IsTxnKv { n += 3 } + if len(m.DbMaps) > 0 { + for _, e := range m.DbMaps { + l = e.Size() + n += 2 + l + sovBrpb(uint64(l)) + } + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -6011,6 +6391,76 @@ func (m *Schema) Size() (n int) { return n } +func (m *IDMap) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.UpstreamId != 0 { + n += 1 + sovBrpb(uint64(m.UpstreamId)) + } + if m.DownstreamId != 0 { + n += 1 + sovBrpb(uint64(m.DownstreamId)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *PitrTableMap) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovBrpb(uint64(l)) + } + if m.IdMap != nil { + l = m.IdMap.Size() + n += 1 + l + sovBrpb(uint64(l)) + } + if len(m.Partitions) > 0 { + for _, e := range m.Partitions { + l = e.Size() + n += 1 + l + sovBrpb(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *PitrDBMap) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovBrpb(uint64(l)) + } + if m.IdMap != nil { + l = m.IdMap.Size() + n += 1 + l + sovBrpb(uint64(l)) + } + if len(m.Tables) > 0 { + for _, e := range m.Tables { + l = e.Size() + n += 1 + l + sovBrpb(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *RawRange) Size() (n int) { if m == nil { return 0 @@ -7503,6 +7953,40 @@ func (m *BackupMeta) Unmarshal(dAtA []byte) error { } } m.IsTxnKv = bool(v != 0) + case 22: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DbMaps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthBrpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthBrpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DbMaps = append(m.DbMaps, &PitrDBMap{}) + if err := m.DbMaps[len(m.DbMaps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipBrpb(dAtA[iNdEx:]) @@ -8423,6 +8907,401 @@ func (m *Schema) Unmarshal(dAtA []byte) error { } return nil } +func (m *IDMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IDMap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IDMap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UpstreamId", wireType) + } + m.UpstreamId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.UpstreamId |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DownstreamId", wireType) + } + m.DownstreamId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DownstreamId |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipBrpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthBrpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PitrTableMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PitrTableMap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PitrTableMap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthBrpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthBrpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IdMap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthBrpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthBrpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.IdMap == nil { + m.IdMap = &IDMap{} + } + if err := m.IdMap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Partitions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthBrpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthBrpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Partitions = append(m.Partitions, &IDMap{}) + if err := m.Partitions[len(m.Partitions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipBrpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthBrpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PitrDBMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PitrDBMap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PitrDBMap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthBrpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthBrpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IdMap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthBrpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthBrpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.IdMap == nil { + m.IdMap = &IDMap{} + } + if err := m.IdMap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tables", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthBrpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthBrpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Tables = append(m.Tables, &PitrTableMap{}) + if err := m.Tables[len(m.Tables)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipBrpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthBrpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *RawRange) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pkg/configpb/configpb.pb.gw.go b/pkg/configpb/configpb.pb.gw.go index 9b4675b..c0385b0 100644 --- a/pkg/configpb/configpb.pb.gw.go +++ b/pkg/configpb/configpb.pb.gw.go @@ -20,7 +20,6 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -31,7 +30,6 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage -var _ = metadata.Join var ( filter_Config_Get_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} @@ -57,10 +55,7 @@ func local_request_Config_Get_0(ctx context.Context, marshaler runtime.Marshaler var protoReq GetRequest var metadata runtime.ServerMetadata - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_Get_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Get_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -127,10 +122,7 @@ func local_request_Config_Delete_0(ctx context.Context, marshaler runtime.Marsha var protoReq DeleteRequest var metadata runtime.ServerMetadata - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_Delete_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Delete_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -142,14 +134,11 @@ func local_request_Config_Delete_0(ctx context.Context, marshaler runtime.Marsha // RegisterConfigHandlerServer registers the http handlers for service Config to "mux". // UnaryRPC :call ConfigServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterConfigHandlerFromEndpoint instead. func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ConfigServer) error { mux.Handle("GET", pattern_Config_Get_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -157,7 +146,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Get_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -171,8 +159,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser mux.Handle("POST", pattern_Config_Update_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -180,7 +166,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Update_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -194,8 +179,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser mux.Handle("DELETE", pattern_Config_Delete_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -203,7 +186,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Delete_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index de4d128..f2452aa 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -1888,9 +1888,10 @@ type CheckTxnStatusResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Error *KeyError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Three kinds of transaction status: - // locked: lock_ttl > 0 - // committed: commit_version > 0 - // rollbacked: lock_ttl = 0 && commit_version = 0 + // + // locked: lock_ttl > 0 + // committed: commit_version > 0 + // rollbacked: lock_ttl = 0 && commit_version = 0 LockTtl uint64 `protobuf:"varint,3,opt,name=lock_ttl,json=lockTtl,proto3" json:"lock_ttl,omitempty"` CommitVersion uint64 `protobuf:"varint,4,opt,name=commit_version,json=commitVersion,proto3" json:"commit_version,omitempty"` // The action performed by TiKV (and why if the action is to rollback). @@ -9473,6 +9474,7 @@ func (m *RawChecksumResponse) GetTotalBytes() uint64 { type CompactError struct { // Types that are valid to be assigned to Error: + // // *CompactError_ErrInvalidStartKey // *CompactError_ErrPhysicalTableNotExist // *CompactError_ErrCompactInProgress diff --git a/pkg/tracepb/tracepb.pb.go b/pkg/tracepb/tracepb.pb.go index e5b4919..55cf091 100644 --- a/pkg/tracepb/tracepb.pb.go +++ b/pkg/tracepb/tracepb.pb.go @@ -68,6 +68,7 @@ var xxx_messageInfo_TraceRecordRequest proto.InternalMessageInfo type TraceRecord struct { // Types that are valid to be assigned to RecordOneof: + // // *TraceRecord_Report // *TraceRecord_NotifyCollect RecordOneof isTraceRecord_RecordOneof `protobuf_oneof:"record_oneof"` diff --git a/proto/brpb.proto b/proto/brpb.proto index 2f01829..183647d 100644 --- a/proto/brpb.proto +++ b/proto/brpb.proto @@ -81,6 +81,8 @@ message BackupMeta { // If in txn kv mode, `schemas` will be ignored, the backup data's range is as same as normal backup. bool is_txn_kv = 21; + // maintain the id mapping from upstream cluster to downstream cluster. + repeated PitrDBMap db_maps = 22; } message File { @@ -137,6 +139,23 @@ message Schema { bytes stats = 7; } +message IDMap { + int64 upstream_id = 1; + int64 downstream_id = 2; +} + +message PitrTableMap{ + string name = 1; + IDMap id_map = 2; + repeated IDMap partitions = 3; +} + +message PitrDBMap{ + string name = 1; + IDMap id_map = 2; + repeated PitrTableMap tables = 3; +} + message RawRange { bytes start_key = 1; bytes end_key = 2; diff --git a/scripts/proto.lock b/scripts/proto.lock index fd2f724..63224f2 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -308,6 +308,12 @@ "id": 21, "name": "is_txn_kv", "type": "bool" + }, + { + "id": 22, + "name": "db_maps", + "type": "PitrDBMap", + "is_repeated": true } ], "reserved_ids": [ @@ -467,6 +473,63 @@ } ] }, + { + "name": "IDMap", + "fields": [ + { + "id": 1, + "name": "upstream_id", + "type": "int64" + }, + { + "id": 2, + "name": "downstream_id", + "type": "int64" + } + ] + }, + { + "name": "PitrTableMap", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "id_map", + "type": "IDMap" + }, + { + "id": 3, + "name": "partitions", + "type": "IDMap", + "is_repeated": true + } + ] + }, + { + "name": "PitrDBMap", + "fields": [ + { + "id": 1, + "name": "name", + "type": "string" + }, + { + "id": 2, + "name": "id_map", + "type": "IDMap" + }, + { + "id": 3, + "name": "tables", + "type": "PitrTableMap", + "is_repeated": true + } + ] + }, { "name": "RawRange", "fields": [ -- Gitee From cddfcc08339a94e019af13a314064dcfb18b093a Mon Sep 17 00:00:00 2001 From: Lloyd-Pottiger <60744015+Lloyd-Pottiger@users.noreply.github.com> Date: Wed, 29 Mar 2023 15:10:32 +0800 Subject: [PATCH 31/44] update go version to 1.18.2 in docker (#1093) Signed-off-by: Lloyd-Pottiger --- Dockerfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Dockerfile b/Dockerfile index 256fb49..ac8cf59 100644 --- a/Dockerfile +++ b/Dockerfile @@ -39,6 +39,13 @@ RUN apt-get update --yes \ && apt-get install --yes curl unzip \ && rm -rf /var/lib/apt/lists/* +ENV GO_VERSION "1.18.2" +RUN rm -rf /usr/local/go \ + && curl -O https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz \ + && tar -C /usr/local -xzf go$GO_VERSION.linux-amd64.tar.gz \ + && rm go$GO_VERSION.linux-amd64.tar.gz +ENV PATH="/usr/local/go/bin:$PATH" + # Protoc setup ENV PROTOC_VERSION "3.8.0" RUN curl -L https://github.com/google/protobuf/releases/download/v$PROTOC_VERSION/protoc-$PROTOC_VERSION-linux-x86_64.zip -o protoc.zip && \ -- Gitee From 349815129e6de9804a2900479bf6d546704d0825 Mon Sep 17 00:00:00 2001 From: ekexium Date: Fri, 31 Mar 2023 10:44:43 +0800 Subject: [PATCH 32/44] add field locked_duration_ms in LockInfo (#1097) Signed-off-by: ekexium --- pkg/configpb/configpb.pb.gw.go | 22 +- pkg/kvrpcpb/kvrpcpb.pb.go | 861 +++++++++++++++++---------------- proto/kvrpcpb.proto | 4 + scripts/proto.lock | 5 + 4 files changed, 479 insertions(+), 413 deletions(-) diff --git a/pkg/configpb/configpb.pb.gw.go b/pkg/configpb/configpb.pb.gw.go index c0385b0..9b4675b 100644 --- a/pkg/configpb/configpb.pb.gw.go +++ b/pkg/configpb/configpb.pb.gw.go @@ -20,6 +20,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -30,6 +31,7 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage +var _ = metadata.Join var ( filter_Config_Get_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} @@ -55,7 +57,10 @@ func local_request_Config_Get_0(ctx context.Context, marshaler runtime.Marshaler var protoReq GetRequest var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Get_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_Get_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -122,7 +127,10 @@ func local_request_Config_Delete_0(ctx context.Context, marshaler runtime.Marsha var protoReq DeleteRequest var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Delete_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_Delete_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -134,11 +142,14 @@ func local_request_Config_Delete_0(ctx context.Context, marshaler runtime.Marsha // RegisterConfigHandlerServer registers the http handlers for service Config to "mux". // UnaryRPC :call ConfigServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterConfigHandlerFromEndpoint instead. func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ConfigServer) error { mux.Handle("GET", pattern_Config_Get_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -146,6 +157,7 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Get_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -159,6 +171,8 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser mux.Handle("POST", pattern_Config_Update_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -166,6 +180,7 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Update_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -179,6 +194,8 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser mux.Handle("DELETE", pattern_Config_Delete_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -186,6 +203,7 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Delete_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index f2452aa..2282a1d 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -6234,12 +6234,16 @@ type LockInfo struct { LockType Op `protobuf:"varint,6,opt,name=lock_type,json=lockType,proto3,enum=kvrpcpb.Op" json:"lock_type,omitempty"` LockForUpdateTs uint64 `protobuf:"varint,7,opt,name=lock_for_update_ts,json=lockForUpdateTs,proto3" json:"lock_for_update_ts,omitempty"` // Fields for transactions that are using Async Commit. - UseAsyncCommit bool `protobuf:"varint,8,opt,name=use_async_commit,json=useAsyncCommit,proto3" json:"use_async_commit,omitempty"` - MinCommitTs uint64 `protobuf:"varint,9,opt,name=min_commit_ts,json=minCommitTs,proto3" json:"min_commit_ts,omitempty"` - Secondaries [][]byte `protobuf:"bytes,10,rep,name=secondaries,proto3" json:"secondaries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + UseAsyncCommit bool `protobuf:"varint,8,opt,name=use_async_commit,json=useAsyncCommit,proto3" json:"use_async_commit,omitempty"` + MinCommitTs uint64 `protobuf:"varint,9,opt,name=min_commit_ts,json=minCommitTs,proto3" json:"min_commit_ts,omitempty"` + Secondaries [][]byte `protobuf:"bytes,10,rep,name=secondaries,proto3" json:"secondaries,omitempty"` + // The time elapsed since last update of lock wait info when waiting. + // It's used in timeout errors. 0 means unknown or not applicable. + // It can be used to help the client decide whether to try resolving the lock. + DurationToLastUpdateMs uint64 `protobuf:"varint,11,opt,name=duration_to_last_update_ms,json=durationToLastUpdateMs,proto3" json:"duration_to_last_update_ms,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *LockInfo) Reset() { *m = LockInfo{} } @@ -6345,6 +6349,13 @@ func (m *LockInfo) GetSecondaries() [][]byte { return nil } +func (m *LockInfo) GetDurationToLastUpdateMs() uint64 { + if m != nil { + return m.DurationToLastUpdateMs + } + return 0 +} + type KeyError struct { Locked *LockInfo `protobuf:"bytes,1,opt,name=locked,proto3" json:"locked,omitempty"` Retryable string `protobuf:"bytes,2,opt,name=retryable,proto3" json:"retryable,omitempty"` @@ -10057,411 +10068,412 @@ func init() { func init() { proto.RegisterFile("kvrpcpb.proto", fileDescriptor_1afe832be69693c7) } var fileDescriptor_1afe832be69693c7 = []byte{ - // 6458 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0x5d, 0x6c, 0x1c, 0xc9, - 0x71, 0xb0, 0x66, 0x7f, 0xb8, 0xbb, 0xb5, 0xcb, 0xe5, 0xb0, 0xf9, 0xb7, 0xa2, 0xa4, 0x13, 0x35, - 0x67, 0xdd, 0xc9, 0xb4, 0x8f, 0xe7, 0xe3, 0xdd, 0xf9, 0xe7, 0xb3, 0x3f, 0xfb, 0x24, 0x52, 0x3f, - 0x3c, 0x51, 0x22, 0x31, 0xbb, 0xa7, 0xcb, 0x21, 0xb1, 0xc7, 0xcd, 0xd9, 0xe6, 0xee, 0x80, 0xb3, - 0x33, 0x73, 0x33, 0xbd, 0x24, 0xd7, 0x41, 0x80, 0x1c, 0xf2, 0x03, 0x18, 0x08, 0x9c, 0xc4, 0x30, - 0xe0, 0x00, 0x31, 0x02, 0xe4, 0xc1, 0x40, 0x9c, 0xb7, 0x20, 0x2f, 0xf9, 0x79, 0x08, 0x02, 0xf8, - 0xc1, 0x09, 0x62, 0xd8, 0x40, 0x10, 0x38, 0x48, 0x1e, 0x92, 0x5c, 0x80, 0x3c, 0xe7, 0x25, 0x48, - 0xf2, 0x10, 0x24, 0xe8, 0xbf, 0xf9, 0xd9, 0x5d, 0x51, 0xd4, 0x8a, 0xd4, 0x39, 0x79, 0xe2, 0x4e, - 0x55, 0x75, 0x77, 0x75, 0x55, 0x75, 0x75, 0x75, 0x75, 0x35, 0x61, 0xfa, 0xe0, 0x30, 0x0c, 0xec, - 0x60, 0x6f, 0x2d, 0x08, 0x7d, 0xea, 0xa3, 0x92, 0xfc, 0x5c, 0xae, 0xf5, 0x08, 0xc5, 0x0a, 0xbc, - 0x3c, 0x4d, 0xc2, 0xd0, 0x0f, 0xe3, 0xcf, 0xf9, 0x8e, 0xdf, 0xf1, 0xf9, 0xcf, 0x57, 0xd9, 0x2f, - 0x09, 0x9d, 0x09, 0xfb, 0x11, 0xe5, 0x3f, 0x25, 0xa0, 0xde, 0x26, 0xb8, 0xed, 0xfa, 0xf6, 0x81, - 0xea, 0x85, 0x86, 0xd8, 0x26, 0xaa, 0x17, 0xa3, 0x0d, 0x70, 0x97, 0x50, 0x93, 0xbc, 0xdf, 0x27, - 0x11, 0x45, 0xab, 0x50, 0xb2, 0x7d, 0x8f, 0x92, 0x63, 0xda, 0xd0, 0x56, 0xb4, 0x1b, 0xd5, 0x75, - 0x7d, 0x4d, 0xb1, 0xb6, 0x21, 0xe0, 0xa6, 0x22, 0x40, 0x3a, 0xe4, 0x0f, 0xc8, 0xa0, 0x91, 0x5b, - 0xd1, 0x6e, 0xd4, 0x4c, 0xf6, 0x13, 0x35, 0xa0, 0x74, 0x48, 0xc2, 0xc8, 0xf1, 0xbd, 0x46, 0x7e, - 0x45, 0xbb, 0x51, 0x30, 0xd5, 0xa7, 0xf1, 0xa1, 0x06, 0x55, 0x3e, 0x4c, 0x14, 0xf8, 0x5e, 0x44, - 0xd0, 0x6b, 0x50, 0x0b, 0x49, 0xc7, 0xf1, 0x3d, 0x8b, 0xcf, 0x49, 0x0e, 0x56, 0x5f, 0x53, 0x33, - 0xbc, 0xcd, 0xfe, 0x9a, 0x55, 0x41, 0xc3, 0x3f, 0xd0, 0xcb, 0x50, 0x14, 0xb4, 0x39, 0x4e, 0x3b, - 0x1b, 0x33, 0x76, 0x9f, 0x0c, 0x04, 0xb9, 0xc0, 0xa3, 0x79, 0x28, 0x1e, 0x62, 0xb7, 0x4f, 0x38, - 0x0f, 0x35, 0x53, 0x7c, 0xa0, 0x4b, 0x50, 0xf1, 0x7c, 0x6a, 0xed, 0xfb, 0x7d, 0xaf, 0xdd, 0x28, - 0xac, 0x68, 0x37, 0xca, 0x66, 0xd9, 0xf3, 0xe9, 0x1d, 0xf6, 0x8d, 0xbe, 0x08, 0x33, 0xe4, 0x98, - 0xd8, 0x56, 0x9b, 0x50, 0xec, 0xb8, 0x91, 0x75, 0xb8, 0xde, 0x98, 0xe2, 0xa3, 0x2c, 0xc6, 0xa3, - 0xdc, 0x3e, 0x26, 0xf6, 0xa6, 0x40, 0x3f, 0x5a, 0x37, 0xa7, 0x49, 0xfa, 0xf3, 0xed, 0x42, 0xb9, - 0xa8, 0x4f, 0x19, 0xff, 0xa6, 0x41, 0xb5, 0x69, 0x63, 0x6f, 0x12, 0x61, 0x5e, 0x82, 0x4a, 0x44, - 0x71, 0x48, 0xad, 0x44, 0xa4, 0x65, 0x0e, 0xb8, 0x4f, 0x06, 0x6c, 0x46, 0xae, 0xd3, 0x73, 0x28, - 0x9f, 0xd1, 0xb4, 0x29, 0x3e, 0xd2, 0xd2, 0x2e, 0x64, 0xa4, 0x8d, 0x2e, 0x42, 0xf9, 0x80, 0x0c, - 0x2c, 0xdf, 0x73, 0x07, 0x8d, 0x22, 0x9f, 0x6a, 0xe9, 0x80, 0x0c, 0x76, 0x3c, 0x97, 0xab, 0x28, - 0x24, 0x8c, 0x8e, 0xf0, 0x19, 0x96, 0x4d, 0xf5, 0x89, 0x96, 0xa0, 0x44, 0xbc, 0x36, 0x1f, 0xbf, - 0xc4, 0xc7, 0x9f, 0x22, 0x5e, 0x9b, 0x8d, 0x7e, 0x15, 0xaa, 0x11, 0xee, 0x05, 0x2e, 0xb1, 0x22, - 0x4a, 0x82, 0x46, 0x99, 0xf3, 0x00, 0x02, 0xd4, 0xa4, 0x24, 0x30, 0x7e, 0x53, 0x83, 0x9a, 0x98, - 0xf7, 0xe4, 0xda, 0xbd, 0x0e, 0xc5, 0x00, 0x3b, 0x61, 0xd4, 0xc8, 0xad, 0xe4, 0x6f, 0x54, 0xd7, - 0x67, 0x12, 0xed, 0x1e, 0xee, 0x62, 0x27, 0x34, 0x05, 0x36, 0x31, 0x82, 0xfc, 0xc9, 0x46, 0x60, - 0xfc, 0x67, 0x11, 0x66, 0x76, 0x43, 0x72, 0x14, 0x3a, 0x94, 0x4c, 0xa2, 0x8f, 0x57, 0xa1, 0xd2, - 0xeb, 0x53, 0x4c, 0x1d, 0xdf, 0x53, 0x3c, 0x25, 0x83, 0x3d, 0x90, 0x18, 0x33, 0xa1, 0x41, 0xd7, - 0xa0, 0x16, 0x84, 0x4e, 0x0f, 0x87, 0x03, 0x8b, 0x2d, 0x36, 0x69, 0x7c, 0x55, 0x09, 0xdb, 0xf6, - 0xed, 0x03, 0xf4, 0x22, 0x4c, 0x0b, 0x1d, 0x67, 0xd5, 0x56, 0xe3, 0xc0, 0x47, 0x89, 0xee, 0x58, - 0x7b, 0x8b, 0x52, 0x97, 0xeb, 0xae, 0x60, 0x96, 0xd8, 0x77, 0x8b, 0xba, 0x68, 0x1d, 0x16, 0xa2, - 0x03, 0x27, 0xb0, 0x6c, 0xdf, 0x8b, 0x68, 0x88, 0x1d, 0x8f, 0x5a, 0x76, 0x97, 0xd8, 0x07, 0x52, - 0x93, 0x73, 0x0c, 0xb9, 0x11, 0xe3, 0x36, 0x18, 0x0a, 0xfd, 0x2c, 0xcc, 0x05, 0x24, 0x8a, 0x9c, - 0x9e, 0x13, 0x51, 0xc7, 0xb6, 0xb0, 0x2d, 0x66, 0x54, 0x5a, 0xc9, 0xdf, 0xa8, 0xaf, 0xaf, 0xc6, - 0x33, 0x1a, 0x12, 0xd5, 0xda, 0x6e, 0xd2, 0xe6, 0x26, 0x6f, 0x62, 0xa2, 0x60, 0x18, 0x14, 0x31, - 0x5e, 0xe9, 0xb1, 0x67, 0x45, 0xce, 0xd7, 0x08, 0x37, 0x8b, 0x82, 0x59, 0xa2, 0xc7, 0x5e, 0xd3, - 0xf9, 0x1a, 0x41, 0x06, 0x4c, 0xef, 0xfb, 0xa1, 0xd5, 0x0f, 0xda, 0x98, 0x12, 0x8b, 0x46, 0x8d, - 0x0a, 0xc7, 0x57, 0xf7, 0xfd, 0xf0, 0x1d, 0x0e, 0x6b, 0x45, 0x8c, 0xa6, 0xe7, 0x78, 0x96, 0xed, - 0xf7, 0x7a, 0x0e, 0x65, 0x34, 0x20, 0x68, 0x7a, 0x8e, 0xb7, 0xc1, 0x61, 0xad, 0x08, 0xdd, 0x00, - 0xbd, 0x1f, 0x11, 0x0b, 0x47, 0x03, 0xcf, 0x96, 0x94, 0x8d, 0x2a, 0x9f, 0x6e, 0xbd, 0x1f, 0x91, - 0x9b, 0x0c, 0x2c, 0x68, 0xd1, 0x0a, 0x54, 0x23, 0x62, 0xfb, 0x5e, 0x1b, 0x87, 0x0e, 0x89, 0x1a, - 0xb5, 0x95, 0x3c, 0x93, 0x7f, 0x0a, 0x84, 0x2e, 0x03, 0xd0, 0x90, 0x2d, 0x0b, 0x62, 0x05, 0x76, - 0x63, 0x5a, 0xf8, 0x00, 0x1a, 0x0e, 0x76, 0x3c, 0xb2, 0x6b, 0x73, 0x6e, 0xf0, 0x71, 0x8a, 0x9b, - 0xba, 0xe4, 0x06, 0x1f, 0xc7, 0xdc, 0xbc, 0x05, 0x33, 0x38, 0x8a, 0x48, 0xc8, 0xa6, 0x6f, 0xb9, - 0xe4, 0x90, 0xb8, 0x8d, 0x99, 0x15, 0xed, 0x46, 0x7d, 0x7d, 0x29, 0x96, 0xe4, 0x4d, 0x85, 0xdf, - 0x66, 0x68, 0xb3, 0x8e, 0x33, 0xdf, 0xc6, 0x1e, 0xcc, 0x8e, 0xc8, 0x16, 0x2d, 0xc3, 0x62, 0xf3, - 0xfe, 0xd6, 0xae, 0xb5, 0x7b, 0xbb, 0xd9, 0xdc, 0x7a, 0xb0, 0xd5, 0x6c, 0x6d, 0x6d, 0x58, 0x1b, - 0xf7, 0x6e, 0x6f, 0xdc, 0xd7, 0x2f, 0xa0, 0x06, 0xcc, 0x6f, 0xee, 0x8c, 0xc1, 0x68, 0x68, 0x09, - 0xe6, 0x36, 0x77, 0xac, 0x8d, 0x9d, 0x87, 0xcd, 0x96, 0x79, 0x73, 0xeb, 0x61, 0x4b, 0x22, 0x72, - 0xc6, 0x7f, 0x69, 0xa0, 0x27, 0x0a, 0x9d, 0x7c, 0x4d, 0x7e, 0x1c, 0xa6, 0x38, 0x76, 0x74, 0x01, - 0xc4, 0xab, 0x4d, 0x12, 0x8c, 0xaa, 0x32, 0x3f, 0xaa, 0xca, 0x97, 0x41, 0x17, 0xa2, 0x4f, 0x91, - 0x89, 0x15, 0x30, 0xed, 0x33, 0x0d, 0xc4, 0x84, 0x63, 0xbc, 0x71, 0xf1, 0x29, 0xbc, 0xb1, 0xf1, - 0xfd, 0x02, 0x2c, 0xa6, 0x84, 0xcc, 0xd6, 0xde, 0xff, 0x15, 0x17, 0x30, 0xb2, 0xac, 0xa6, 0xc6, - 0x2e, 0x2b, 0x27, 0xb2, 0xf6, 0x9d, 0x30, 0xa2, 0x82, 0x8f, 0x12, 0xb7, 0xf4, 0xaa, 0x13, 0xdd, - 0x61, 0x30, 0xce, 0xc7, 0x35, 0xa8, 0x1d, 0x61, 0xa6, 0x02, 0xa7, 0x47, 0xfc, 0x3e, 0xe5, 0xab, - 0x37, 0x6f, 0x56, 0x19, 0xac, 0x25, 0x40, 0xa8, 0x01, 0xc5, 0x7d, 0x3f, 0xb4, 0x09, 0x5f, 0xb9, - 0xe5, 0x5b, 0xb9, 0x86, 0x66, 0x0a, 0x00, 0x9b, 0x44, 0x48, 0x68, 0x3f, 0xf4, 0x2c, 0xbe, 0xb5, - 0x8a, 0x75, 0x5b, 0x36, 0x6b, 0x02, 0xf8, 0x88, 0xc3, 0x46, 0x2d, 0xa2, 0x3a, 0xce, 0x22, 0x66, - 0xb8, 0x03, 0xb3, 0xc8, 0xb1, 0x13, 0x51, 0xe2, 0xd9, 0xa4, 0x51, 0x13, 0x6b, 0x9b, 0x83, 0x6f, - 0x2b, 0x28, 0x7a, 0x05, 0xe6, 0xb8, 0x44, 0xd8, 0x8e, 0x66, 0x39, 0xfb, 0x82, 0x3e, 0x92, 0x4b, - 0x58, 0x67, 0x28, 0xb6, 0xb9, 0x6d, 0xed, 0xf3, 0x16, 0x11, 0xda, 0x64, 0xb3, 0x3b, 0x20, 0x56, - 0x3f, 0xb0, 0x7a, 0x7e, 0x9b, 0xf0, 0x95, 0x5c, 0x5f, 0x37, 0x12, 0x6f, 0x97, 0x35, 0x8e, 0x77, - 0xf1, 0x01, 0x79, 0x27, 0x78, 0xe0, 0xb7, 0x89, 0x09, 0x47, 0xf1, 0x6f, 0xe3, 0x5f, 0x35, 0x68, - 0x0c, 0x51, 0xde, 0x27, 0x03, 0x93, 0x44, 0x7d, 0x97, 0xa2, 0xcf, 0x41, 0x81, 0x0e, 0x02, 0xc2, - 0xad, 0xa8, 0xbe, 0x7e, 0xfd, 0x71, 0x5d, 0xc7, 0x0d, 0x5a, 0x83, 0x80, 0x98, 0xbc, 0x49, 0x12, - 0x9f, 0xe4, 0xd2, 0xf1, 0xc9, 0x65, 0xa8, 0x24, 0x52, 0xc8, 0xf3, 0x89, 0x25, 0x00, 0xf4, 0x26, - 0x2c, 0xb1, 0x59, 0x92, 0xb6, 0x75, 0xe4, 0xd0, 0x2e, 0xdb, 0x01, 0xf6, 0x5d, 0xc7, 0x4e, 0x2d, - 0xa1, 0x79, 0x81, 0x7e, 0xd7, 0xa1, 0xdd, 0x0d, 0x89, 0x6c, 0x45, 0x68, 0x0d, 0xf8, 0xa6, 0x60, - 0x85, 0x24, 0xf2, 0xdd, 0x43, 0xc7, 0xeb, 0x08, 0x83, 0x10, 0x0e, 0x74, 0x96, 0xa1, 0x4c, 0x85, - 0x61, 0xdc, 0x1a, 0xff, 0x92, 0x83, 0xa5, 0x91, 0x95, 0xf3, 0x5c, 0x1c, 0xc8, 0x55, 0xa8, 0x0c, - 0x39, 0x0f, 0x6e, 0x71, 0x65, 0x5b, 0xd9, 0x4a, 0x43, 0x49, 0x8d, 0xcd, 0xb7, 0x26, 0xcc, 0x51, - 0x48, 0x6e, 0x11, 0xa6, 0xa4, 0x1d, 0x16, 0xb9, 0xcf, 0x97, 0x5f, 0xe8, 0x0a, 0x40, 0x1c, 0xf1, - 0xb1, 0x85, 0x92, 0x67, 0x22, 0x55, 0x21, 0xdf, 0x58, 0x2f, 0x53, 0x7a, 0x0a, 0x2f, 0x83, 0x3e, - 0xcf, 0x22, 0x29, 0xa6, 0xda, 0xa8, 0x51, 0xe6, 0xb3, 0xbb, 0xf6, 0x44, 0x23, 0x30, 0x55, 0x0b, - 0xe3, 0xbb, 0x1a, 0x2c, 0xa7, 0xa8, 0x4c, 0xdf, 0x75, 0xf7, 0xf0, 0x64, 0x6e, 0x6a, 0xc4, 0xa5, - 0xe4, 0xc6, 0xb8, 0x94, 0x11, 0xbf, 0x91, 0x1f, 0xf5, 0x1b, 0x08, 0x0a, 0x07, 0x64, 0xc0, 0x0c, - 0x8a, 0x49, 0x91, 0xff, 0x36, 0xfe, 0x54, 0x83, 0x4b, 0x63, 0xf9, 0x7c, 0x2e, 0x46, 0x31, 0x46, - 0x45, 0xf9, 0xa7, 0xd9, 0x08, 0xfe, 0x40, 0x83, 0xb9, 0xd6, 0xb1, 0x77, 0x8f, 0xe0, 0x90, 0xde, - 0x22, 0x78, 0xa2, 0x53, 0xce, 0xb0, 0x53, 0xcf, 0x9d, 0xc2, 0xa9, 0xe7, 0xc7, 0x68, 0xe0, 0x25, - 0x98, 0xc1, 0xed, 0x43, 0x27, 0x22, 0x56, 0xec, 0xdb, 0xe5, 0xe6, 0x27, 0xc0, 0xdb, 0xc2, 0xc3, - 0x1b, 0x3f, 0xd4, 0x60, 0x3e, 0xcb, 0xf3, 0x73, 0x38, 0x32, 0xa5, 0x77, 0x9c, 0x7c, 0x76, 0xc7, - 0x19, 0xa3, 0x83, 0xc2, 0xd3, 0xe8, 0xe0, 0x9f, 0x72, 0xb0, 0xc0, 0x43, 0xd1, 0xd6, 0xb1, 0xd7, - 0xa4, 0x98, 0xf6, 0xa3, 0x49, 0xb4, 0x70, 0x15, 0x94, 0xc4, 0x53, 0x07, 0x24, 0x90, 0x20, 0x76, - 0x48, 0x59, 0x82, 0x92, 0x98, 0x81, 0x32, 0xed, 0x29, 0x3e, 0x81, 0x88, 0xc9, 0xdd, 0xc6, 0xae, - 0x4b, 0x42, 0x4b, 0xe8, 0x28, 0x09, 0x3a, 0x04, 0xb8, 0xc9, 0xa0, 0x2d, 0xee, 0x2d, 0xec, 0x7e, - 0x18, 0x12, 0x8f, 0x93, 0x88, 0x6d, 0xb7, 0x22, 0x21, 0xad, 0x08, 0xbd, 0x06, 0x0b, 0xa1, 0x34, - 0x7e, 0xb6, 0x01, 0x31, 0xc7, 0xc2, 0xbd, 0xb3, 0x8c, 0xbd, 0x91, 0x42, 0x6e, 0xed, 0x3f, 0xf4, - 0x29, 0xdf, 0x86, 0xd0, 0x2a, 0xcc, 0xf2, 0xfd, 0xd2, 0x4a, 0xc7, 0xae, 0x62, 0x2f, 0x9e, 0xe1, - 0x88, 0x66, 0x12, 0xbc, 0x7e, 0x01, 0x96, 0x13, 0x1f, 0x9d, 0x0e, 0xd8, 0xb9, 0xcd, 0x95, 0x79, - 0xa3, 0x46, 0x4c, 0x31, 0xe4, 0x5f, 0x8c, 0x1f, 0xe5, 0x60, 0x71, 0x58, 0xc6, 0x1f, 0xad, 0xd5, - 0x5c, 0x87, 0xba, 0x74, 0xe7, 0xd9, 0x40, 0x67, 0x5a, 0x40, 0xd5, 0xa2, 0x78, 0x19, 0xa6, 0xc4, - 0x89, 0x84, 0x0b, 0xbc, 0x9e, 0x3a, 0xf6, 0xc9, 0x53, 0x87, 0x44, 0xa3, 0x35, 0xa8, 0xf0, 0xa1, - 0x1c, 0x6f, 0xdf, 0x97, 0x47, 0xf3, 0x84, 0x2f, 0x26, 0x83, 0x2d, 0x6f, 0xdf, 0x37, 0x39, 0x3b, - 0xec, 0xd7, 0xb3, 0x3a, 0x77, 0xe3, 0x03, 0x0d, 0x96, 0xb9, 0x44, 0x9b, 0xf2, 0xfc, 0xc0, 0x57, - 0xfa, 0x44, 0xa6, 0xab, 0xdc, 0x6a, 0x2e, 0x71, 0xab, 0xa7, 0xf2, 0x18, 0xc6, 0x7f, 0x6b, 0x70, - 0x69, 0x2c, 0x0f, 0xcf, 0x41, 0xb5, 0x2f, 0x43, 0x91, 0xc9, 0x92, 0x2d, 0xa6, 0xfc, 0x78, 0x59, - 0x0b, 0x3c, 0xba, 0x94, 0xde, 0xb7, 0x85, 0x8e, 0x93, 0x3d, 0xfb, 0x59, 0x03, 0xf9, 0xef, 0x69, - 0x30, 0x2d, 0x16, 0xc8, 0xb9, 0x6d, 0x8c, 0x4a, 0x3b, 0xf9, 0x94, 0x76, 0x4e, 0x67, 0xbc, 0x22, - 0xe9, 0x63, 0x4e, 0xed, 0x39, 0x9e, 0xeb, 0x77, 0x8c, 0xbf, 0xd6, 0xa0, 0xae, 0x78, 0x7d, 0x0e, - 0x0a, 0x1a, 0xe5, 0x31, 0x3f, 0x6e, 0x81, 0x3d, 0xab, 0xf7, 0xee, 0xc0, 0xf4, 0x56, 0x2f, 0xf0, - 0xc3, 0x58, 0x01, 0x99, 0x43, 0x91, 0x76, 0x8a, 0x43, 0xd1, 0x28, 0xa3, 0xb9, 0x31, 0x8c, 0x1a, - 0xef, 0x41, 0x5d, 0x0d, 0x34, 0xb9, 0xf4, 0xe6, 0xd3, 0xd2, 0xab, 0xa8, 0x54, 0xd0, 0x37, 0x99, - 0x66, 0x5c, 0x82, 0xbd, 0x7e, 0x70, 0x36, 0x69, 0xce, 0x53, 0xed, 0xf7, 0xd9, 0xfd, 0xa4, 0x30, - 0xb4, 0x9f, 0x18, 0xdf, 0xd2, 0x60, 0x26, 0x66, 0xea, 0xa7, 0xc6, 0x5e, 0x8c, 0x03, 0x98, 0xb9, - 0x85, 0xa9, 0xdd, 0x9d, 0x30, 0x25, 0x3c, 0xce, 0xd7, 0x3d, 0x3e, 0x29, 0xfc, 0xf7, 0x1a, 0xe8, - 0xc9, 0x68, 0xe7, 0x9e, 0x3b, 0x7c, 0xc6, 0xb5, 0x90, 0xc8, 0xba, 0x78, 0xb2, 0xac, 0xdf, 0x2e, - 0x94, 0xf3, 0x7a, 0xc1, 0xf8, 0x79, 0x98, 0xe7, 0x93, 0x3b, 0xf7, 0xd8, 0x7e, 0x8c, 0x0b, 0x33, - 0xfe, 0x50, 0x83, 0x85, 0xa1, 0xd1, 0x9f, 0x83, 0x91, 0x3d, 0x6b, 0xbc, 0xfe, 0xfb, 0x1a, 0xcc, - 0x34, 0x6d, 0xec, 0x4d, 0x9a, 0xb1, 0xb9, 0x0a, 0xd5, 0x1e, 0x3e, 0x1e, 0x12, 0x16, 0xf4, 0xf0, - 0xb1, 0x12, 0x55, 0x26, 0xcb, 0x9e, 0x7f, 0x5c, 0x96, 0xbd, 0x90, 0xce, 0xb2, 0xa7, 0xd2, 0xe2, - 0xc5, 0x74, 0x5a, 0xdc, 0xf8, 0x89, 0x06, 0x7a, 0xc2, 0xec, 0x4f, 0xd3, 0x9e, 0xfc, 0xac, 0x4e, - 0xff, 0x47, 0x1a, 0x20, 0x91, 0x17, 0x20, 0x93, 0x6a, 0xe2, 0x54, 0x86, 0x7b, 0xca, 0x3d, 0xec, - 0x15, 0xa8, 0xd0, 0x63, 0x8f, 0x87, 0x7e, 0xe2, 0x70, 0x9a, 0x1e, 0xb9, 0x75, 0xec, 0x89, 0xd0, - 0x8f, 0x8a, 0x1f, 0xc9, 0x31, 0xb6, 0x98, 0x5a, 0x0e, 0xec, 0x20, 0x98, 0x99, 0xd1, 0xff, 0x82, - 0xc5, 0xf0, 0x08, 0x2a, 0x77, 0x37, 0x26, 0x91, 0xfd, 0x15, 0x80, 0x08, 0xef, 0x13, 0x2b, 0xf0, - 0x1d, 0x8f, 0x4a, 0xc1, 0x57, 0x18, 0x64, 0x97, 0x01, 0x8c, 0x2e, 0x00, 0xeb, 0xf7, 0xfc, 0x25, - 0x60, 0x7c, 0x5b, 0x03, 0xb4, 0x49, 0x5c, 0x42, 0x89, 0x89, 0xbd, 0x0e, 0x39, 0xf3, 0x6b, 0xb1, - 0xd4, 0xd2, 0xcc, 0x0f, 0xdf, 0x58, 0x79, 0x3e, 0x75, 0xf6, 0xe5, 0x15, 0x98, 0xb8, 0xed, 0x03, - 0x01, 0xda, 0xf1, 0xdc, 0x81, 0xf1, 0x15, 0x98, 0xcb, 0x30, 0x76, 0xd6, 0x21, 0xc7, 0x1f, 0x6b, - 0xb0, 0xb2, 0x1b, 0x92, 0x00, 0x87, 0xe4, 0x8e, 0x8b, 0xa3, 0x2e, 0xf3, 0xc0, 0x2d, 0x5f, 0x1a, - 0xf4, 0xf3, 0x93, 0xc3, 0x45, 0x28, 0x0f, 0x1d, 0x7a, 0x4b, 0x91, 0x3c, 0xee, 0xa6, 0x76, 0xe5, - 0x62, 0x76, 0x57, 0x76, 0xe1, 0xda, 0x09, 0xac, 0x9f, 0xb5, 0xa4, 0x7e, 0xa4, 0xc1, 0xc5, 0xb3, - 0x11, 0x51, 0x6a, 0x46, 0xb9, 0xec, 0x75, 0xe8, 0x89, 0x5e, 0x3f, 0x25, 0xbc, 0xc2, 0x63, 0x85, - 0x57, 0xcc, 0x0a, 0x2f, 0x73, 0xe8, 0x99, 0xca, 0x1e, 0x7a, 0x0c, 0x02, 0xcb, 0xcf, 0x43, 0x70, - 0x5f, 0x86, 0x69, 0x13, 0x1f, 0x9d, 0xd9, 0xd5, 0x7d, 0x1d, 0x72, 0xf6, 0x3e, 0x17, 0x4e, 0xc5, - 0xcc, 0xd9, 0xfb, 0xc6, 0xaf, 0x69, 0x50, 0x57, 0xfd, 0x9f, 0x31, 0xeb, 0x13, 0x5c, 0xd0, 0x1b, - 0x6d, 0x40, 0x26, 0x3e, 0x3a, 0xeb, 0xd0, 0x74, 0x78, 0xd2, 0x3e, 0xcc, 0x65, 0x46, 0x39, 0xef, - 0x90, 0xd4, 0xf8, 0x1d, 0x8d, 0x6b, 0x71, 0xb7, 0x7f, 0x46, 0x5a, 0x1c, 0x2f, 0x59, 0x31, 0xcd, - 0x82, 0x9a, 0x26, 0x6b, 0x97, 0x5c, 0x2d, 0xb1, 0x9f, 0x6c, 0x11, 0xec, 0xfb, 0xa1, 0x65, 0xe3, - 0x48, 0xe6, 0xb3, 0xa6, 0xf6, 0xfd, 0x70, 0x03, 0x47, 0xec, 0x58, 0xa6, 0xf8, 0x3b, 0x6b, 0x03, - 0xfe, 0x13, 0x2d, 0xd1, 0xe9, 0x84, 0x02, 0x38, 0x65, 0xe0, 0x3f, 0xa4, 0x66, 0x34, 0x2f, 0xe6, - 0x5f, 0x88, 0x6f, 0x19, 0x86, 0x65, 0x50, 0x4c, 0xcb, 0x80, 0x59, 0x0e, 0xa5, 0xae, 0xb8, 0x41, - 0x28, 0x98, 0xfc, 0x37, 0xdb, 0x40, 0x32, 0xbc, 0x9f, 0xb5, 0x70, 0x06, 0xa0, 0x9b, 0xf8, 0x48, - 0xee, 0x51, 0xe7, 0xb1, 0xc0, 0xd3, 0xd3, 0x2d, 0x64, 0x54, 0xfe, 0x73, 0x30, 0x9b, 0x1a, 0xfa, - 0xac, 0x27, 0xf6, 0x8b, 0x1a, 0x2c, 0x28, 0xc9, 0x4d, 0x3e, 0xbd, 0x53, 0x2c, 0xe6, 0xc7, 0x4f, - 0x10, 0xc3, 0xe2, 0x30, 0x07, 0x67, 0x3d, 0xcb, 0x1f, 0x0a, 0xef, 0xf9, 0x1c, 0x8b, 0x81, 0xd2, - 0x25, 0x3f, 0x85, 0x6c, 0xc9, 0x8f, 0x10, 0x4c, 0x31, 0x16, 0xcc, 0xd3, 0x97, 0x00, 0x19, 0x1d, - 0x98, 0x89, 0xa7, 0x33, 0xb9, 0xac, 0xae, 0x41, 0xfe, 0xe0, 0xf0, 0xb1, 0x8b, 0x95, 0xe1, 0x8c, - 0xaf, 0x0b, 0xf3, 0xf8, 0x48, 0xa2, 0xc6, 0x21, 0x37, 0x29, 0xed, 0xe4, 0x5c, 0xe3, 0xc4, 0x1f, - 0x6b, 0x89, 0x1f, 0x99, 0xd4, 0x58, 0x3e, 0x0e, 0x53, 0x21, 0xe3, 0x6e, 0xec, 0x7d, 0x9a, 0xe0, - 0x5b, 0x12, 0xb0, 0x93, 0x01, 0xc1, 0x76, 0xd7, 0x4a, 0xdb, 0x4f, 0x85, 0x41, 0xb6, 0xcf, 0xcc, - 0x86, 0x0c, 0x17, 0xe6, 0xb3, 0x33, 0x3a, 0x57, 0x7b, 0xf9, 0x05, 0xb8, 0xf8, 0x8e, 0xc7, 0xce, - 0x36, 0x9b, 0x24, 0xa2, 0xa1, 0x3f, 0x78, 0xbe, 0x26, 0xc3, 0x62, 0xbd, 0x71, 0xc3, 0x9f, 0xb5, - 0x99, 0x7c, 0x15, 0x2e, 0x99, 0xa4, 0xe3, 0x44, 0x94, 0x84, 0xec, 0xf8, 0xba, 0xb3, 0x17, 0x91, - 0xf0, 0x90, 0x84, 0x93, 0xcc, 0x73, 0x01, 0xa6, 0x7a, 0xf8, 0x98, 0xc5, 0xad, 0x22, 0x48, 0x2e, - 0xf6, 0xf0, 0x71, 0x2b, 0x32, 0xde, 0x80, 0xcb, 0xe3, 0x47, 0x90, 0x53, 0x89, 0xf9, 0xd2, 0xb2, - 0x31, 0x68, 0x83, 0x5f, 0x50, 0x9c, 0x13, 0x53, 0x7d, 0xb8, 0x38, 0xa6, 0xfb, 0x93, 0x38, 0x62, - 0x26, 0xec, 0x44, 0x96, 0xed, 0x12, 0x2c, 0x4e, 0x01, 0x65, 0xb3, 0xe4, 0x44, 0x3c, 0xcf, 0x7a, - 0xea, 0xf4, 0x89, 0xf1, 0x15, 0xb8, 0x68, 0x92, 0x9e, 0x2f, 0x52, 0x05, 0xe7, 0x30, 0xad, 0x75, - 0x58, 0x1e, 0xd7, 0xff, 0x89, 0x92, 0xfe, 0x75, 0x0d, 0x96, 0x76, 0xbb, 0x83, 0xc8, 0xb1, 0xb1, - 0xfb, 0x2c, 0x19, 0xb2, 0xf1, 0x2c, 0x4d, 0x90, 0x17, 0x33, 0xde, 0x83, 0xc6, 0x28, 0x43, 0x27, - 0xea, 0x26, 0x56, 0x40, 0xee, 0x09, 0x0a, 0xf8, 0x8e, 0x06, 0xa8, 0x19, 0xb8, 0x0e, 0x35, 0xf9, - 0xca, 0x98, 0x2c, 0x13, 0x58, 0x89, 0x58, 0x0f, 0xc9, 0x72, 0x16, 0xe5, 0x24, 0x1c, 0xc8, 0x26, - 0x75, 0x05, 0x20, 0x26, 0x50, 0xa9, 0xd3, 0x8a, 0xc2, 0x46, 0x68, 0x19, 0x2a, 0x4e, 0x64, 0x85, - 0xf8, 0xc8, 0x3a, 0x38, 0x54, 0xbe, 0xd0, 0x89, 0x4c, 0x7c, 0x74, 0xff, 0xd0, 0xf8, 0xbe, 0x06, - 0x73, 0x19, 0xf6, 0x26, 0x5f, 0xee, 0x2f, 0x41, 0xc1, 0x25, 0xfb, 0x54, 0x66, 0x52, 0xea, 0x6b, - 0xb2, 0xdc, 0x5b, 0x74, 0xcc, 0x39, 0xe6, 0x78, 0x74, 0x03, 0x8a, 0xa1, 0xd3, 0xe9, 0x52, 0x99, - 0x41, 0x1a, 0x47, 0x28, 0x08, 0xd0, 0x0d, 0xe6, 0x98, 0x3b, 0xfc, 0x76, 0x46, 0xa4, 0xca, 0x86, - 0x68, 0x4d, 0x85, 0x36, 0x7e, 0x59, 0x03, 0xdd, 0x24, 0xb8, 0xbd, 0xe5, 0xb5, 0xc9, 0xf1, 0x24, - 0x32, 0x4e, 0x1f, 0x90, 0x73, 0xd9, 0x03, 0x72, 0xb2, 0x27, 0xe5, 0x9f, 0xb0, 0x27, 0x19, 0xbf, - 0xa1, 0xc1, 0x6c, 0x8a, 0x8d, 0xc9, 0x65, 0x79, 0x05, 0x20, 0x24, 0xb8, 0x6d, 0x39, 0xac, 0x23, - 0x95, 0xf6, 0x0a, 0x55, 0xcf, 0x8c, 0x25, 0x51, 0x22, 0x35, 0x52, 0x3a, 0x1c, 0x9b, 0x9f, 0x24, - 0x30, 0x9a, 0x30, 0xf7, 0xe0, 0xd0, 0xb6, 0xef, 0x12, 0x7a, 0x6b, 0xc0, 0x6b, 0x77, 0xce, 0x20, - 0xfe, 0x36, 0x7e, 0x55, 0x83, 0xf9, 0x6c, 0xaf, 0x67, 0x7d, 0xac, 0xbe, 0x0e, 0x05, 0x7e, 0x3d, - 0x3e, 0x3c, 0x3f, 0x36, 0x2a, 0x9f, 0x1f, 0x47, 0x1b, 0x5f, 0x85, 0xa5, 0x98, 0x0f, 0x59, 0xfc, - 0x70, 0xb6, 0xda, 0x67, 0xeb, 0xb7, 0x31, 0x3a, 0xc4, 0x59, 0x4f, 0x57, 0x8a, 0x38, 0x9f, 0x1c, - 0x71, 0x94, 0x00, 0x0a, 0x27, 0x0b, 0xe0, 0x83, 0x0a, 0x94, 0x36, 0x92, 0x6d, 0x5f, 0x72, 0xe3, - 0xb4, 0x39, 0x2b, 0x05, 0xb3, 0x2c, 0x00, 0x5b, 0x6d, 0xf4, 0xe9, 0x84, 0xd5, 0xc0, 0xb7, 0xbb, - 0x72, 0x95, 0xce, 0x65, 0x17, 0xd4, 0x6d, 0x86, 0x8a, 0xf9, 0x65, 0x1f, 0x68, 0x05, 0x0a, 0x01, - 0x21, 0xaa, 0x46, 0xbd, 0xa6, 0xe8, 0x77, 0x09, 0x09, 0x4d, 0x8e, 0xe1, 0x47, 0x4a, 0x12, 0xf6, - 0xe4, 0x11, 0x9c, 0xff, 0x46, 0xaf, 0x42, 0x39, 0x08, 0x1d, 0x3f, 0x74, 0xe8, 0x80, 0xc7, 0x54, - 0xf5, 0xf5, 0xb9, 0x94, 0xf4, 0x7b, 0x3d, 0xec, 0xb5, 0x77, 0x43, 0xc7, 0x8c, 0x89, 0xd0, 0x5b, - 0x30, 0xe3, 0x44, 0xbe, 0x8b, 0x53, 0xc5, 0xc8, 0xa5, 0xa1, 0x62, 0xe4, 0x2d, 0x85, 0x97, 0xc5, - 0xc8, 0x4e, 0xe6, 0x1b, 0x7d, 0x0c, 0xea, 0x3c, 0xe5, 0xe2, 0xb8, 0xae, 0x65, 0x63, 0xbb, 0x4b, - 0x64, 0xa5, 0x49, 0xcd, 0xf3, 0xe9, 0x1d, 0xc7, 0x75, 0x37, 0x18, 0x8c, 0x6b, 0x7a, 0xe0, 0xd9, - 0x96, 0xeb, 0x77, 0x44, 0x2d, 0xa8, 0x59, 0x62, 0xdf, 0xdb, 0x7e, 0x07, 0xdd, 0x00, 0x3d, 0x24, - 0xb6, 0x1f, 0xb6, 0x79, 0x21, 0xa9, 0x15, 0x51, 0x4c, 0x65, 0x31, 0x68, 0x5d, 0xc0, 0x5b, 0x4e, - 0x8f, 0x34, 0x29, 0xa6, 0x29, 0xca, 0xc8, 0xc6, 0x9e, 0xa0, 0xac, 0xa6, 0x29, 0xd9, 0x26, 0xc2, - 0x29, 0xaf, 0x31, 0xa9, 0x07, 0xae, 0x63, 0x63, 0x8b, 0xad, 0x5e, 0x59, 0x11, 0x5a, 0x95, 0x30, - 0xe6, 0x2a, 0xd0, 0x75, 0xa8, 0x8b, 0x5a, 0x18, 0xd2, 0xb6, 0xc4, 0x96, 0x32, 0xcd, 0xcf, 0xe6, - 0xd3, 0x0a, 0xca, 0x0b, 0x25, 0xd0, 0xe7, 0xe0, 0x22, 0xdb, 0xec, 0xc8, 0x31, 0xb1, 0xfb, 0x5c, - 0x48, 0xed, 0x7e, 0x28, 0xa4, 0xd5, 0x53, 0xd5, 0xdd, 0x8b, 0x3d, 0x7c, 0x7c, 0x5b, 0xe1, 0x37, - 0x25, 0xfa, 0x01, 0x2f, 0xd0, 0xc0, 0x41, 0xe0, 0x3a, 0x44, 0xf9, 0x93, 0x19, 0x71, 0x7f, 0x21, - 0x81, 0xc2, 0xa5, 0x2c, 0x41, 0x89, 0xe2, 0xe8, 0x80, 0x99, 0x8e, 0x2e, 0x6a, 0x8e, 0xd8, 0xe7, - 0x56, 0x9b, 0x6f, 0x2e, 0x14, 0xbb, 0x44, 0x4c, 0x60, 0x56, 0x14, 0x73, 0x72, 0x08, 0x67, 0xff, - 0x93, 0x80, 0x18, 0xa3, 0xfd, 0xd0, 0x26, 0x56, 0x27, 0xf4, 0xfb, 0x81, 0x45, 0x71, 0xa7, 0x81, - 0xb8, 0x21, 0xeb, 0x0a, 0x73, 0x97, 0x21, 0x5a, 0xb8, 0x83, 0x3e, 0x0b, 0xd3, 0x6d, 0x27, 0x3a, - 0xb0, 0xf6, 0xfb, 0xae, 0x6b, 0xf9, 0x01, 0x6d, 0xcc, 0x71, 0x25, 0xcf, 0xc7, 0x4a, 0xde, 0x74, - 0xa2, 0x83, 0x3b, 0x7d, 0xd7, 0xdd, 0x09, 0xa8, 0x59, 0x6d, 0x27, 0x1f, 0x4c, 0xe6, 0x6c, 0x13, - 0x23, 0x34, 0x1c, 0x58, 0xa1, 0x58, 0xe2, 0x8d, 0x79, 0x21, 0x73, 0x27, 0x32, 0x19, 0x58, 0x2d, - 0xfc, 0x37, 0xa0, 0x8a, 0x03, 0x27, 0xbe, 0x86, 0x59, 0x18, 0x32, 0xbf, 0x9b, 0xbb, 0x5b, 0x2a, - 0x8f, 0x09, 0x38, 0x70, 0x92, 0xea, 0x9d, 0x19, 0x91, 0xf5, 0xa4, 0xb1, 0x1e, 0x16, 0xb9, 0x1e, - 0xea, 0x31, 0x58, 0x28, 0xe2, 0xff, 0x81, 0x78, 0x74, 0x64, 0x29, 0xef, 0xb2, 0xc4, 0x57, 0xc6, - 0xc2, 0x9a, 0x7a, 0x8a, 0xd4, 0x62, 0x7f, 0x95, 0x8b, 0xa9, 0xd1, 0xd4, 0x97, 0xd0, 0x35, 0xe7, - 0xd2, 0x12, 0x82, 0x69, 0x34, 0xb8, 0x17, 0x98, 0x96, 0xd0, 0x26, 0x07, 0x32, 0x91, 0xf3, 0xa7, - 0x08, 0x82, 0xe4, 0xa2, 0xf0, 0xfe, 0xf4, 0xd8, 0x93, 0xe8, 0x35, 0x98, 0x1b, 0x12, 0xb9, 0x87, - 0x7b, 0xa4, 0xb1, 0xcc, 0xbb, 0x9a, 0xcd, 0xc8, 0xfc, 0x21, 0xee, 0x11, 0xb4, 0x0a, 0xb3, 0x7b, - 0xfd, 0x68, 0x60, 0xd1, 0x6e, 0x48, 0xa2, 0xae, 0xef, 0xb6, 0x99, 0xc9, 0x5c, 0xe2, 0xf1, 0xcf, - 0x0c, 0x43, 0xb4, 0x14, 0xfc, 0x41, 0x84, 0xae, 0x42, 0x95, 0x05, 0x11, 0x01, 0x9b, 0xa0, 0xd3, - 0x6e, 0xac, 0x88, 0xf7, 0x31, 0x0a, 0xb4, 0xd5, 0x7e, 0xbb, 0x50, 0x2e, 0xe8, 0x45, 0x66, 0xc1, - 0xb8, 0x6d, 0xbd, 0xdf, 0xf7, 0xc3, 0x7e, 0xcf, 0xf8, 0x87, 0x1c, 0x94, 0xd5, 0xbe, 0x33, 0x52, - 0x62, 0xa8, 0x8d, 0x96, 0x18, 0x5e, 0x83, 0x1a, 0xaf, 0x7f, 0xca, 0x66, 0xb8, 0xab, 0x0c, 0xa6, - 0xb4, 0x31, 0xea, 0x0f, 0xd3, 0xf5, 0x59, 0x85, 0x6c, 0x7d, 0x56, 0xfa, 0xe5, 0x46, 0x31, 0xfb, - 0x72, 0xe3, 0x86, 0x2c, 0xb5, 0xe2, 0xe5, 0xcd, 0xc2, 0x11, 0x55, 0x63, 0x4b, 0xd8, 0x09, 0x44, - 0x91, 0x55, 0x6b, 0x10, 0x10, 0xf4, 0x09, 0x40, 0x9c, 0x32, 0x5b, 0x59, 0x5a, 0xe2, 0xdd, 0xcd, - 0x30, 0xcc, 0x9d, 0x54, 0x75, 0xe9, 0xb8, 0x87, 0x1c, 0xe5, 0xb1, 0x0f, 0x39, 0x46, 0x2a, 0xc7, - 0x2b, 0xa3, 0x95, 0xe3, 0x43, 0x8f, 0x3d, 0x60, 0xe4, 0xb1, 0x87, 0xf1, 0xed, 0x02, 0x94, 0xd5, - 0x85, 0x54, 0x6a, 0xf3, 0xd7, 0x9e, 0xb0, 0xf9, 0xa3, 0xcb, 0x6c, 0x47, 0xa0, 0xe1, 0x00, 0xef, - 0xb9, 0x44, 0x6e, 0x38, 0x09, 0x80, 0x6d, 0x45, 0x78, 0xcf, 0x0f, 0xa9, 0xcc, 0x33, 0x89, 0x0f, - 0xb4, 0x0e, 0x65, 0x55, 0x91, 0x3d, 0x72, 0xd3, 0xfa, 0x6e, 0xe8, 0x50, 0xa2, 0x4a, 0xb2, 0xcd, - 0x98, 0x8e, 0xad, 0x09, 0xec, 0x32, 0x93, 0x18, 0xc8, 0x42, 0xc2, 0xa2, 0x5c, 0x13, 0xf1, 0xa2, - 0x13, 0x58, 0x5e, 0x4b, 0x68, 0xd6, 0x70, 0xea, 0x0b, 0xbd, 0x02, 0x65, 0xf5, 0xa8, 0x6f, 0xa4, - 0x18, 0x6e, 0x53, 0x22, 0xcc, 0x98, 0x04, 0x6d, 0xc2, 0x6c, 0x2c, 0x4c, 0x8b, 0x1c, 0x07, 0x4e, - 0x48, 0xda, 0xb2, 0x1c, 0xae, 0x91, 0xd9, 0x62, 0x98, 0x68, 0x6f, 0x0b, 0xbc, 0x39, 0x63, 0x67, - 0x01, 0xcc, 0x0f, 0x31, 0x93, 0x49, 0x72, 0xf4, 0x65, 0xde, 0xc3, 0x7c, 0xfa, 0x2a, 0xf6, 0xa1, - 0xcc, 0xd7, 0x9b, 0x55, 0x9a, 0x7c, 0xa0, 0x7b, 0x30, 0x97, 0x8c, 0x4f, 0x7d, 0xdf, 0x72, 0x71, - 0xd8, 0x11, 0xef, 0x0a, 0xaa, 0xeb, 0x17, 0x47, 0x38, 0x68, 0xf9, 0xfe, 0x36, 0x23, 0x30, 0x75, - 0x7b, 0x08, 0x82, 0x36, 0x40, 0x4f, 0xde, 0xdf, 0xec, 0x63, 0xc7, 0x25, 0x6d, 0xbe, 0xdf, 0xa4, - 0x27, 0x12, 0x3f, 0xc0, 0xb9, 0xc3, 0xf1, 0x66, 0xf2, 0x62, 0x47, 0x00, 0x8c, 0xbf, 0xc9, 0xc1, - 0x74, 0x46, 0x2b, 0x99, 0x58, 0x46, 0xcb, 0x46, 0xb2, 0x57, 0xa1, 0x9a, 0x2e, 0xb6, 0x97, 0x25, - 0x05, 0x76, 0x52, 0x62, 0x3f, 0xba, 0xec, 0x1a, 0x50, 0x92, 0x4b, 0x57, 0xde, 0x28, 0xa9, 0x4f, - 0xe6, 0xf8, 0xe3, 0xce, 0x12, 0xf3, 0x16, 0xeb, 0x4f, 0x57, 0x98, 0xd8, 0xc6, 0xdf, 0x84, 0xa9, - 0x90, 0xe0, 0xc8, 0xf7, 0xe4, 0x2a, 0xbc, 0x32, 0xde, 0xa6, 0xd6, 0x4c, 0x4e, 0x64, 0x4a, 0x62, - 0xe3, 0x08, 0xa6, 0x04, 0x04, 0x55, 0xa1, 0xf4, 0x8e, 0x77, 0xe0, 0xf9, 0x47, 0x9e, 0x7e, 0x01, - 0xd5, 0x01, 0x76, 0x02, 0x2a, 0xab, 0x46, 0x75, 0x0d, 0xcd, 0x83, 0x9e, 0x2e, 0xec, 0x66, 0x16, - 0xae, 0xe7, 0x10, 0x82, 0x7a, 0x93, 0xb8, 0xfb, 0xa6, 0xef, 0xba, 0xa4, 0x7d, 0x0b, 0xdb, 0x07, - 0x7a, 0x1e, 0x4d, 0x43, 0xc5, 0xb4, 0x45, 0x79, 0x69, 0xa4, 0x17, 0xd0, 0x12, 0xcc, 0x6d, 0xe3, - 0xaf, 0x0d, 0xde, 0xf1, 0x9c, 0xf7, 0xfb, 0xc4, 0x23, 0x51, 0xc4, 0x51, 0x7a, 0xd1, 0x58, 0x81, - 0x5a, 0xda, 0x66, 0x95, 0x64, 0xb4, 0x24, 0x06, 0xfe, 0x5d, 0x0d, 0xca, 0xca, 0x3e, 0xd3, 0x15, - 0xbb, 0x5a, 0xa6, 0x62, 0x57, 0xb9, 0xad, 0x24, 0x80, 0xe6, 0x84, 0xec, 0xd4, 0xb6, 0x0a, 0xb3, - 0xca, 0xaa, 0x19, 0xda, 0xea, 0xe2, 0xa8, 0x2b, 0x8b, 0x06, 0x66, 0x14, 0xe2, 0x3e, 0x19, 0xdc, - 0xc3, 0x51, 0x17, 0xbd, 0x09, 0xc0, 0x9f, 0xb8, 0xd8, 0x5d, 0xec, 0x78, 0xf2, 0x30, 0xb4, 0xb8, - 0x16, 0x3f, 0x86, 0x7d, 0x17, 0x3b, 0xf4, 0x8e, 0x1f, 0xde, 0xf6, 0xd8, 0x36, 0x58, 0x61, 0x94, - 0x1b, 0x8c, 0xd0, 0xf8, 0xa6, 0x06, 0x33, 0x43, 0x6b, 0xe1, 0x24, 0xfb, 0x58, 0x83, 0x39, 0x4c, - 0x29, 0xe9, 0x05, 0x6c, 0x0f, 0x4c, 0x74, 0x2a, 0xec, 0x64, 0x36, 0x46, 0xc5, 0x4a, 0x1d, 0x35, - 0x97, 0x11, 0x77, 0x57, 0x18, 0x71, 0x77, 0xc6, 0x16, 0x54, 0x53, 0xab, 0xeb, 0x09, 0xf6, 0x7a, - 0x62, 0xa1, 0xb4, 0xf1, 0x2a, 0xe8, 0xc3, 0x0b, 0x2d, 0x7b, 0x9f, 0xa9, 0x0d, 0xdd, 0x67, 0xfe, - 0xa5, 0x06, 0x33, 0x43, 0x6b, 0xea, 0x24, 0x06, 0x46, 0x6f, 0x1e, 0x3e, 0x05, 0x95, 0x78, 0x09, - 0xf2, 0x89, 0xd7, 0xd7, 0xd1, 0xe8, 0x6a, 0x35, 0x13, 0x22, 0xa6, 0x66, 0xee, 0x13, 0x1d, 0xaf, - 0x33, 0x5c, 0xb5, 0x3d, 0xa3, 0x10, 0xaa, 0x6e, 0xfb, 0x93, 0x80, 0x62, 0xda, 0x91, 0x35, 0xa5, - 0x30, 0xb1, 0x20, 0xff, 0x4a, 0x03, 0x60, 0x31, 0xa9, 0x28, 0xb3, 0x40, 0x1f, 0x87, 0x59, 0x6e, - 0x23, 0x47, 0xd8, 0x75, 0x45, 0x08, 0xdb, 0x53, 0x13, 0xaa, 0x33, 0xc4, 0xbb, 0xd8, 0x75, 0x19, - 0xf9, 0x83, 0x08, 0xbd, 0x0a, 0xf3, 0x41, 0xe8, 0xdb, 0x24, 0x8a, 0xb2, 0xd4, 0x52, 0xd3, 0x12, - 0x97, 0x6a, 0xb0, 0x06, 0xf3, 0x07, 0x87, 0x3c, 0x02, 0xcc, 0x36, 0x10, 0xe6, 0xaa, 0x1f, 0x1c, - 0xb2, 0x58, 0x30, 0x45, 0xbf, 0x0e, 0x8b, 0xd4, 0xa7, 0xd8, 0xb5, 0xc2, 0xc0, 0x4e, 0xb5, 0xf0, - 0xd4, 0xcc, 0x11, 0xc7, 0x9a, 0x81, 0xad, 0xda, 0x3c, 0x8c, 0x8c, 0x6f, 0xe4, 0xa0, 0x96, 0x4c, - 0xe7, 0xd1, 0xfa, 0x98, 0x09, 0x79, 0x63, 0x27, 0xf4, 0xf0, 0x31, 0x13, 0xf2, 0x1e, 0x37, 0xa1, - 0x87, 0x11, 0xfa, 0x22, 0x5c, 0x56, 0x0d, 0xa2, 0x7e, 0x14, 0x10, 0xaf, 0x9d, 0x6d, 0x28, 0x26, - 0xd6, 0x90, 0x34, 0x4d, 0x41, 0x92, 0x6a, 0x3f, 0x56, 0x20, 0xf1, 0xf4, 0x86, 0x04, 0xf2, 0xf0, - 0x24, 0x81, 0x14, 0x1f, 0x2b, 0x90, 0x2f, 0x43, 0x99, 0x1d, 0x24, 0x78, 0x58, 0x35, 0x0f, 0x45, - 0x4e, 0xc1, 0xe7, 0x9f, 0x37, 0xc5, 0x07, 0xdb, 0xdf, 0x25, 0x87, 0xa4, 0xcd, 0xe7, 0x9a, 0x37, - 0x13, 0x40, 0x9c, 0x44, 0xd8, 0x1b, 0x50, 0x22, 0x66, 0x94, 0x17, 0x49, 0x84, 0x5b, 0x0c, 0x60, - 0xfc, 0x92, 0x06, 0xc0, 0xfa, 0x97, 0xe6, 0xf3, 0x32, 0x14, 0xf9, 0x23, 0xcb, 0x91, 0xa8, 0x42, - 0xf1, 0x60, 0x0a, 0x3c, 0x3b, 0x99, 0xc6, 0x8f, 0x47, 0xc6, 0xd2, 0x71, 0x34, 0x23, 0x6b, 0x63, - 0x8a, 0x47, 0x4e, 0xf0, 0x09, 0x19, 0x43, 0x1b, 0xff, 0x5e, 0x14, 0xef, 0xad, 0x63, 0xad, 0xbf, - 0x02, 0x28, 0x9e, 0x82, 0x0a, 0x11, 0x95, 0xda, 0x67, 0x63, 0x8c, 0x0c, 0x14, 0x23, 0xf4, 0x69, - 0x58, 0x1a, 0x25, 0x4f, 0xbf, 0xe2, 0x5d, 0x18, 0x69, 0xc3, 0x23, 0xc3, 0xeb, 0x50, 0x17, 0x0a, - 0x89, 0x87, 0x90, 0xa5, 0xbc, 0x1c, 0x1a, 0x77, 0xff, 0x25, 0xb8, 0x1c, 0xb2, 0xb0, 0xbf, 0xbd, - 0x67, 0xb5, 0xf9, 0xe5, 0x89, 0x15, 0x1d, 0x38, 0x41, 0xc0, 0xfd, 0x63, 0xdf, 0xa3, 0xd2, 0x4e, - 0x2e, 0x4a, 0x1a, 0x71, 0xbf, 0xd2, 0x14, 0x14, 0x1b, 0x8c, 0x80, 0x9d, 0xdb, 0x54, 0x07, 0xcc, - 0xc9, 0x67, 0x5b, 0x0b, 0x6b, 0x59, 0x94, 0x04, 0xf7, 0xc9, 0x20, 0xd3, 0xf4, 0x2d, 0xb8, 0xa2, - 0x9a, 0xee, 0xf1, 0x5d, 0x82, 0x1f, 0x6b, 0xad, 0x2e, 0xdb, 0x07, 0x78, 0xf3, 0x62, 0x66, 0xf0, - 0x5b, 0x8c, 0x86, 0x9f, 0x72, 0xef, 0x39, 0x54, 0xf4, 0xf0, 0x19, 0x68, 0x64, 0x7b, 0xe0, 0xf6, - 0x20, 0x1a, 0x8b, 0x52, 0x8f, 0x85, 0x74, 0x63, 0x66, 0xb3, 0xa2, 0xe1, 0x9b, 0xb0, 0x34, 0xa6, - 0x21, 0x33, 0x24, 0x19, 0x12, 0xcf, 0x0f, 0xb7, 0x63, 0x36, 0xf5, 0x98, 0xf1, 0x3c, 0xec, 0xf9, - 0x2a, 0xf0, 0x1d, 0x19, 0xef, 0x21, 0x43, 0x32, 0xc7, 0xd7, 0x21, 0xd4, 0x8a, 0x3c, 0x1c, 0x44, - 0x5d, 0x9f, 0xca, 0x26, 0xe2, 0x09, 0xb5, 0xde, 0x21, 0xb4, 0x29, 0x11, 0x82, 0x9a, 0x09, 0x26, - 0xce, 0x8e, 0x59, 0x41, 0xe8, 0x07, 0x7e, 0x44, 0x2c, 0xee, 0x2b, 0x44, 0xc3, 0xaa, 0x14, 0x8c, - 0x4a, 0x98, 0xed, 0x0a, 0x12, 0xb6, 0x4d, 0x8e, 0xeb, 0x81, 0x45, 0x2b, 0x4e, 0xd8, 0x4b, 0xf7, - 0x50, 0x1b, 0xea, 0x61, 0x43, 0x90, 0x8c, 0xf6, 0x10, 0xf8, 0xbe, 0x6b, 0x45, 0x76, 0x97, 0xb4, - 0xfb, 0x6e, 0x86, 0x87, 0xe9, 0xa4, 0x87, 0x5d, 0xdf, 0x77, 0x9b, 0x92, 0x24, 0xee, 0xc1, 0xf8, - 0x15, 0x0d, 0xaa, 0xa9, 0xa2, 0x39, 0x76, 0x6e, 0xe5, 0x3e, 0x41, 0xd4, 0xd8, 0xc9, 0x65, 0x98, - 0x9c, 0x5b, 0x13, 0xd7, 0x68, 0x02, 0x4d, 0xbc, 0xfe, 0x1b, 0x50, 0xe5, 0x49, 0x08, 0xd9, 0x2a, - 0x37, 0xd4, 0x2a, 0x59, 0x5a, 0x26, 0x44, 0xf1, 0x6f, 0x51, 0xd5, 0x2b, 0xce, 0x72, 0xc6, 0x7f, - 0x68, 0x30, 0x9d, 0x29, 0xde, 0x9b, 0x90, 0x93, 0xcf, 0x43, 0x3d, 0xc5, 0x89, 0x75, 0xb8, 0x2e, - 0x99, 0x59, 0x18, 0xc3, 0xcc, 0xa3, 0x75, 0xb3, 0x16, 0xa5, 0x57, 0xfd, 0x67, 0xa0, 0xc6, 0xbd, - 0x8b, 0x1a, 0x33, 0x3f, 0x14, 0x8f, 0xf3, 0x28, 0x51, 0x0e, 0x5a, 0x3d, 0x4a, 0x3e, 0xd8, 0xa8, - 0x29, 0x5e, 0x93, 0xf2, 0xd0, 0x85, 0x31, 0xec, 0xb2, 0x51, 0x69, 0xea, 0xcb, 0xf8, 0xa0, 0x04, - 0xd5, 0x54, 0xcf, 0xe8, 0x75, 0x58, 0x8c, 0xa8, 0x1f, 0x12, 0x6b, 0x0f, 0x53, 0xbb, 0x9b, 0xd6, - 0xa6, 0xf0, 0x3f, 0x73, 0x1c, 0xcb, 0xef, 0x03, 0x13, 0x4b, 0x78, 0x93, 0x7b, 0x20, 0x6e, 0x82, - 0x91, 0xd8, 0x47, 0xe2, 0x56, 0xc2, 0xa5, 0xcc, 0x4b, 0x74, 0x93, 0x6f, 0x21, 0xaa, 0xd9, 0x2a, - 0xcc, 0x06, 0xcc, 0xcb, 0xf0, 0x87, 0xcd, 0x1d, 0xd9, 0x40, 0x86, 0x7f, 0x12, 0xb1, 0xed, 0x77, - 0x04, 0xed, 0x06, 0x5c, 0x0d, 0xf1, 0x3e, 0xb5, 0xda, 0x7b, 0x96, 0x90, 0x92, 0x4b, 0x70, 0x9b, - 0x84, 0xe9, 0xa1, 0x84, 0x2b, 0x59, 0x66, 0x64, 0x9b, 0x7b, 0x7c, 0x4e, 0xdb, 0x9c, 0x26, 0x19, - 0x70, 0x1d, 0x16, 0x55, 0x27, 0x2a, 0x05, 0x26, 0xdb, 0xca, 0x2d, 0x48, 0xb4, 0x6d, 0x8a, 0x74, - 0x98, 0x68, 0xf3, 0x45, 0xb8, 0x9c, 0x1d, 0xb8, 0x47, 0x7a, 0x94, 0x1d, 0x1e, 0x65, 0x4b, 0xe1, - 0x44, 0x1a, 0xa9, 0x51, 0x1f, 0x48, 0x02, 0xd1, 0xfe, 0x06, 0xc8, 0x73, 0x4f, 0x6a, 0x34, 0xe1, - 0x40, 0x64, 0x5a, 0x25, 0x1e, 0xe9, 0x75, 0x58, 0xc4, 0x41, 0xe0, 0x0e, 0x46, 0x45, 0x2f, 0xdc, - 0xf8, 0x1c, 0xc7, 0x0e, 0x89, 0xfe, 0x25, 0x98, 0x11, 0x8d, 0x92, 0xde, 0x2b, 0xf2, 0x1d, 0x22, - 0x03, 0x8f, 0x76, 0xde, 0xeb, 0x53, 0x72, 0x2c, 0x1e, 0x2d, 0xa6, 0x5d, 0x8c, 0xe8, 0xfc, 0x01, - 0x43, 0xb2, 0x33, 0x74, 0xbc, 0xc2, 0x45, 0xa3, 0xc7, 0x89, 0x5c, 0x7a, 0x19, 0x4e, 0x34, 0x56, - 0xe2, 0xaf, 0xc1, 0x42, 0xba, 0x87, 0x23, 0xec, 0x66, 0xbc, 0x0b, 0x4a, 0x5a, 0xbe, 0x8b, 0x5d, - 0xd1, 0xe4, 0xf3, 0xb0, 0x9c, 0x6e, 0x32, 0x24, 0x6e, 0xe1, 0x53, 0x96, 0x92, 0x76, 0x23, 0xd2, - 0x76, 0x87, 0xa5, 0x27, 0x52, 0x83, 0x75, 0x37, 0x2b, 0xb8, 0x17, 0x61, 0x5a, 0x85, 0x3f, 0x82, - 0x4c, 0xa6, 0x04, 0x25, 0x50, 0x10, 0xb1, 0x2d, 0xb2, 0x1b, 0xfa, 0x94, 0xc6, 0xe3, 0xeb, 0x72, - 0x8b, 0x94, 0x50, 0x41, 0xf6, 0xff, 0xe1, 0xd2, 0xf0, 0x23, 0xbf, 0x34, 0x03, 0xb3, 0x32, 0x92, - 0x1a, 0x7e, 0xa6, 0xae, 0xdc, 0xe0, 0x7b, 0x30, 0x25, 0x2e, 0xc1, 0x93, 0x5a, 0x5c, 0xed, 0x09, - 0xd5, 0xc8, 0xa7, 0xac, 0x15, 0x33, 0x3e, 0xd0, 0xa0, 0xac, 0x9e, 0xf1, 0xa0, 0x4b, 0x90, 0xf3, - 0x03, 0xf9, 0xc4, 0x3d, 0x93, 0x03, 0xca, 0xf9, 0xc1, 0xa9, 0xab, 0xcf, 0x32, 0xe1, 0x7f, 0xe1, - 0x14, 0xe1, 0xbf, 0xf1, 0x93, 0x1c, 0x54, 0x1e, 0x1c, 0xda, 0x36, 0x57, 0x17, 0xba, 0x9a, 0x79, - 0x69, 0x9f, 0x61, 0x43, 0xbc, 0xa7, 0x3f, 0xe1, 0x1e, 0xea, 0xd2, 0xc8, 0xab, 0xf2, 0xd4, 0xeb, - 0xb4, 0xab, 0x50, 0x8d, 0xba, 0x7e, 0x48, 0xad, 0xd4, 0xbb, 0x72, 0x13, 0x38, 0x88, 0xff, 0x0f, - 0x03, 0x16, 0x27, 0x75, 0x71, 0x64, 0xf9, 0x87, 0x24, 0x74, 0x31, 0x0f, 0x41, 0xd4, 0x2b, 0x4f, - 0x59, 0x21, 0xb6, 0xd0, 0xc5, 0xd1, 0x4e, 0x8c, 0x55, 0x4f, 0x2d, 0xd0, 0x0a, 0xd4, 0x58, 0xbb, - 0x8e, 0x6d, 0xed, 0xf3, 0xd7, 0xfc, 0xa2, 0x42, 0x02, 0xba, 0x38, 0xba, 0x6b, 0xdf, 0xe1, 0xcf, - 0xf9, 0x2f, 0x42, 0x39, 0xc6, 0x8a, 0xb5, 0x5d, 0xea, 0x48, 0xd4, 0xc7, 0xa0, 0xee, 0xe2, 0x88, - 0x1f, 0x5b, 0xbd, 0x0e, 0x4f, 0xa8, 0x89, 0xc5, 0x5c, 0x63, 0xd0, 0x0d, 0x0e, 0xe4, 0xb9, 0x81, - 0xa5, 0x38, 0x70, 0xa3, 0xbe, 0x95, 0x6a, 0x21, 0x57, 0xf3, 0xbc, 0x42, 0xb7, 0xfc, 0xed, 0xb8, - 0xa1, 0xf1, 0x05, 0x21, 0x58, 0x31, 0xbd, 0x13, 0x0e, 0x71, 0x63, 0xff, 0x45, 0x81, 0xf1, 0x9d, - 0x3c, 0x94, 0x59, 0x73, 0x9e, 0x91, 0x7c, 0x16, 0xb5, 0xa4, 0x32, 0x24, 0xf9, 0x6c, 0x86, 0xe4, - 0x89, 0x3a, 0x19, 0xad, 0x5d, 0x3c, 0xcd, 0xbf, 0xc4, 0x48, 0xa7, 0x3b, 0x4b, 0xc3, 0xe9, 0xce, - 0xd3, 0xe6, 0x25, 0x87, 0x72, 0x8e, 0x95, 0xd1, 0x7f, 0x30, 0x73, 0x15, 0xaa, 0xf1, 0x23, 0x61, - 0x2a, 0xb2, 0x92, 0x05, 0x13, 0x14, 0xa8, 0x15, 0x8d, 0x51, 0x6e, 0xf5, 0xe9, 0x94, 0x5b, 0x3b, - 0x41, 0xb9, 0x5f, 0xd7, 0x84, 0x7a, 0xf8, 0xe1, 0x47, 0x9d, 0x38, 0xb4, 0x31, 0x77, 0x61, 0xfc, - 0xae, 0x5e, 0x9c, 0x38, 0x56, 0x61, 0x8a, 0x7b, 0x4d, 0x75, 0x29, 0x8f, 0x32, 0x84, 0x7c, 0x01, - 0x9a, 0x92, 0x82, 0xd1, 0xca, 0xff, 0xb3, 0x90, 0x1f, 0x43, 0xcb, 0xd5, 0xa3, 0xfe, 0xf7, 0x82, - 0xf1, 0x3a, 0x94, 0xe4, 0xcb, 0x0c, 0xae, 0xb1, 0x63, 0x4f, 0x5a, 0x18, 0xfb, 0x89, 0x16, 0x61, - 0x2a, 0xe2, 0xaf, 0x94, 0xa5, 0x5d, 0xc8, 0x2f, 0xe3, 0x2d, 0x9e, 0xb1, 0xe5, 0xd7, 0xc3, 0xd9, - 0x8a, 0x04, 0xed, 0xf1, 0xf5, 0x38, 0xb9, 0x4c, 0x3d, 0xce, 0x9f, 0x6b, 0x00, 0x62, 0x47, 0xe1, - 0x43, 0x9f, 0x78, 0xbb, 0xb7, 0x04, 0xa5, 0x80, 0x90, 0x90, 0xa1, 0x24, 0x1b, 0xec, 0x73, 0xab, - 0x1d, 0x5f, 0xce, 0xe5, 0x53, 0x97, 0x73, 0xc3, 0x57, 0x81, 0x85, 0x53, 0x5e, 0x05, 0xbe, 0x26, - 0xcf, 0x93, 0x6c, 0x86, 0x44, 0xa6, 0x78, 0x13, 0xb9, 0xb1, 0x60, 0xbe, 0xc9, 0x30, 0xe2, 0x8c, - 0xc9, 0x7f, 0x1a, 0x5b, 0x50, 0x89, 0xe1, 0xa3, 0xf7, 0x50, 0xda, 0xf8, 0x7b, 0x28, 0xfe, 0xe0, - 0x83, 0x26, 0x02, 0xc5, 0xfb, 0xa4, 0x15, 0x19, 0x4d, 0x40, 0xa2, 0x80, 0x86, 0x8b, 0x44, 0x5d, - 0xf6, 0xbc, 0x92, 0x94, 0x08, 0x88, 0x07, 0x9c, 0x49, 0x98, 0x9a, 0xc8, 0x2e, 0xae, 0x13, 0x40, - 0x75, 0xc8, 0xc5, 0x1d, 0xe7, 0x68, 0x64, 0x7c, 0x09, 0xe6, 0x32, 0x9d, 0xca, 0x7b, 0xdd, 0x46, - 0xb6, 0xd7, 0xc2, 0xe3, 0x3b, 0xd8, 0x04, 0xd4, 0x64, 0x31, 0x61, 0x93, 0x31, 0xd9, 0x54, 0x5c, - 0xad, 0x41, 0x85, 0x1d, 0xf6, 0x78, 0x55, 0xc0, 0xb8, 0xdd, 0x4c, 0x54, 0x0d, 0x94, 0x0f, 0xe4, - 0x2f, 0x63, 0x0d, 0xe6, 0x32, 0xbd, 0x48, 0x36, 0x52, 0xb2, 0xd0, 0x32, 0xb2, 0xb0, 0x79, 0xa5, - 0xdd, 0x5d, 0xc2, 0x0c, 0xa8, 0xd5, 0xda, 0x3e, 0x9f, 0xaa, 0xf9, 0x6f, 0x68, 0xbc, 0xfa, 0x2d, - 0x35, 0xca, 0x39, 0xdc, 0x7a, 0x27, 0xcf, 0xed, 0xb9, 0xff, 0x3b, 0xb1, 0x6e, 0xfe, 0xef, 0x44, - 0x81, 0xf9, 0xc6, 0xcd, 0xe6, 0x79, 0x16, 0x98, 0x7f, 0x12, 0x50, 0x10, 0x92, 0x43, 0xc7, 0xef, - 0x47, 0xa9, 0xff, 0x8c, 0x20, 0x78, 0xd1, 0x15, 0x26, 0xfe, 0xbf, 0x08, 0xd7, 0xa1, 0x1e, 0x53, - 0x8b, 0xce, 0xc4, 0xc3, 0xba, 0x69, 0x05, 0x7d, 0x94, 0xaa, 0x5a, 0x9f, 0x1a, 0xae, 0x5a, 0x2f, - 0xc5, 0x33, 0x37, 0x7e, 0x20, 0xaa, 0x6c, 0xf9, 0xe4, 0xce, 0x5a, 0xce, 0x0d, 0x28, 0x45, 0x7d, - 0xdb, 0x26, 0xb2, 0x5e, 0xa4, 0x6c, 0xaa, 0xcf, 0x73, 0x99, 0xac, 0xb1, 0x09, 0x8b, 0x77, 0x09, - 0x55, 0x51, 0x1e, 0x5f, 0x80, 0x4f, 0xaf, 0x2f, 0xe3, 0x5b, 0x1a, 0x2c, 0x8d, 0x74, 0x73, 0xd6, - 0x92, 0xf9, 0x14, 0x73, 0xbe, 0x94, 0x6f, 0x81, 0xf9, 0x13, 0x93, 0xea, 0x8a, 0xcc, 0xb8, 0x0b, - 0x17, 0x53, 0x5c, 0xdd, 0x73, 0xd8, 0x89, 0x70, 0x92, 0xaa, 0x1a, 0xe3, 0xdb, 0x1a, 0x2c, 0x8f, - 0xeb, 0xe9, 0xa3, 0x9f, 0xe2, 0x5f, 0x88, 0xba, 0xe5, 0x0d, 0x5f, 0x9e, 0x06, 0xfc, 0x70, 0xc2, - 0x22, 0x54, 0xdb, 0x0f, 0x42, 0x71, 0x37, 0x2d, 0x38, 0x2a, 0x33, 0x00, 0xbf, 0x92, 0xe6, 0xe7, - 0xc2, 0x20, 0x54, 0xc9, 0x37, 0x2b, 0x24, 0xef, 0x4b, 0xcf, 0x53, 0x67, 0xf0, 0xe4, 0xe5, 0x54, - 0xaa, 0xfa, 0xaa, 0xf0, 0xa4, 0x8a, 0x60, 0x24, 0x33, 0x8e, 0xc2, 0x28, 0x45, 0x7a, 0xb1, 0xcf, - 0xeb, 0x9e, 0x33, 0x53, 0x39, 0x6b, 0x01, 0xa3, 0x54, 0xa2, 0x53, 0x0d, 0xfb, 0x5d, 0xf1, 0x1e, - 0x84, 0xef, 0x2d, 0x51, 0xbf, 0x37, 0x89, 0xfc, 0x3e, 0x0b, 0x15, 0xec, 0x76, 0xfc, 0xd0, 0xa1, - 0xdd, 0x1e, 0x1f, 0xb0, 0xbe, 0xbe, 0x9c, 0x50, 0xcb, 0x8e, 0x6f, 0x2a, 0x0a, 0x33, 0x21, 0x7e, - 0x9a, 0x82, 0xb5, 0x3f, 0x12, 0x35, 0xdb, 0x09, 0x9f, 0x67, 0x2d, 0x9c, 0x65, 0x28, 0xdb, 0xb2, - 0xf3, 0xf8, 0xcc, 0x22, 0xbf, 0x99, 0x85, 0x88, 0x14, 0xec, 0xc1, 0x61, 0xfc, 0xef, 0x36, 0x38, - 0xe0, 0xfe, 0x21, 0x0f, 0x3f, 0x05, 0x52, 0x64, 0xaf, 0x45, 0x8c, 0x0c, 0x1c, 0x24, 0xd2, 0xd7, - 0xdf, 0xcb, 0x43, 0x6d, 0xc3, 0xef, 0x05, 0xd8, 0xa6, 0x82, 0x81, 0xf7, 0x60, 0x81, 0x84, 0xa1, - 0xe5, 0x78, 0x87, 0xd8, 0x75, 0xda, 0x56, 0x36, 0xe2, 0xaa, 0xae, 0x7f, 0x2c, 0x7d, 0x37, 0x1b, - 0xb7, 0xda, 0x12, 0xd4, 0x4d, 0x19, 0x8d, 0xdd, 0xbb, 0x60, 0x22, 0x12, 0x0e, 0x43, 0x91, 0x0b, - 0x97, 0x59, 0xd7, 0x81, 0xac, 0x11, 0xb5, 0xe4, 0x99, 0x3c, 0x76, 0x98, 0x22, 0xd1, 0xb5, 0x3a, - 0x76, 0x04, 0x55, 0x58, 0xda, 0xe2, 0xe7, 0x74, 0xe9, 0x4a, 0xef, 0x5d, 0x30, 0x1b, 0x24, 0x1c, - 0x8f, 0x43, 0x16, 0x2c, 0xb1, 0xd1, 0x6c, 0xd1, 0x89, 0xe5, 0x78, 0x56, 0x10, 0xfa, 0x9d, 0x90, - 0x44, 0x91, 0x4c, 0x8b, 0xbd, 0x34, 0x76, 0x20, 0xf9, 0x7b, 0xcb, 0xdb, 0x95, 0xd4, 0xf7, 0x2e, - 0x98, 0xf3, 0x24, 0x1c, 0x85, 0xa3, 0x7d, 0x58, 0x66, 0x03, 0x50, 0xdf, 0xb7, 0x7a, 0xd8, 0x1b, - 0x58, 0x01, 0xf1, 0xda, 0x8e, 0xd7, 0xb1, 0x28, 0x8e, 0x0e, 0x22, 0x19, 0x0e, 0xde, 0x18, 0x3b, - 0x46, 0xcb, 0xf7, 0x1f, 0x60, 0x6f, 0xb0, 0x2b, 0x1a, 0xb4, 0x18, 0xfd, 0xbd, 0x0b, 0xe6, 0x22, - 0x09, 0xc7, 0x61, 0x6e, 0x95, 0xa4, 0x49, 0x18, 0x57, 0xe0, 0xd2, 0x09, 0x42, 0x37, 0x5e, 0x84, - 0x6b, 0x4f, 0x94, 0x98, 0x71, 0x15, 0xae, 0x9c, 0x38, 0x5b, 0xe3, 0x1a, 0x5c, 0x7d, 0x02, 0xab, - 0x2c, 0x82, 0xa8, 0x4b, 0x1a, 0xb5, 0x24, 0x4f, 0x8c, 0xcd, 0x57, 0x61, 0x76, 0x48, 0xe7, 0x8e, - 0xba, 0x67, 0x99, 0x09, 0xd2, 0x5c, 0x6e, 0xb5, 0x79, 0xf2, 0xc5, 0xef, 0x64, 0x49, 0xc5, 0x9d, - 0x4b, 0x5d, 0xc2, 0x15, 0xe5, 0x50, 0x81, 0x52, 0xe9, 0x74, 0x05, 0x4a, 0x43, 0x95, 0x39, 0xe5, - 0xe1, 0xca, 0x1c, 0xe3, 0xcf, 0xc4, 0x65, 0xaf, 0x98, 0x9c, 0x5c, 0xc7, 0x9f, 0xc8, 0xa6, 0x54, - 0x16, 0xc6, 0x2a, 0x55, 0xad, 0xd5, 0x17, 0x61, 0x9a, 0x1d, 0xf5, 0x43, 0xd2, 0xc3, 0x8e, 0xe7, - 0x78, 0x1d, 0x59, 0x74, 0xce, 0xce, 0xff, 0xa6, 0x82, 0xa1, 0x35, 0x5e, 0xff, 0xc0, 0xda, 0x92, - 0xf4, 0x1a, 0x13, 0xce, 0x6f, 0x36, 0x46, 0x35, 0x53, 0x22, 0x4c, 0xe8, 0xb3, 0x8f, 0x53, 0x67, - 0x62, 0xc4, 0x6d, 0x7e, 0xe2, 0x59, 0x7d, 0x1b, 0x2e, 0x3e, 0xf6, 0xbf, 0x19, 0xa2, 0x79, 0xd0, - 0x93, 0xaf, 0x87, 0x7e, 0xd8, 0xc3, 0xae, 0x7e, 0x01, 0x2d, 0xc1, 0x5c, 0x02, 0xbd, 0xe3, 0x87, - 0x36, 0x2f, 0x44, 0xd7, 0xb5, 0x55, 0x17, 0x2e, 0x9f, 0xf4, 0xef, 0x0b, 0x59, 0x77, 0xb2, 0xcc, - 0xbb, 0xef, 0xd2, 0xb8, 0xbb, 0x15, 0xb8, 0x9c, 0x40, 0xb7, 0x47, 0xfe, 0x0b, 0xa1, 0x28, 0x35, - 0x48, 0x28, 0xc4, 0x0d, 0xb2, 0x9e, 0x5b, 0x7d, 0x19, 0x20, 0x51, 0x1b, 0x9a, 0x82, 0xdc, 0xa3, - 0xd7, 0xf4, 0x0b, 0xa8, 0x02, 0xc5, 0x47, 0xaf, 0xb5, 0x5a, 0xdb, 0xba, 0xc6, 0x41, 0xeb, 0x7a, - 0x6e, 0xf5, 0x13, 0x00, 0x49, 0xfd, 0x23, 0x02, 0x98, 0x8a, 0x87, 0x2e, 0x41, 0x7e, 0xdb, 0x3f, - 0xd2, 0x35, 0x54, 0x86, 0xc2, 0x3d, 0xa7, 0xd3, 0xd5, 0x73, 0xab, 0xaf, 0x42, 0x3d, 0x5b, 0xf4, - 0xc8, 0xba, 0x69, 0x6e, 0xe9, 0x17, 0xd8, 0x5f, 0x73, 0x43, 0xd7, 0x78, 0x39, 0xc3, 0x86, 0x28, - 0x67, 0x68, 0xea, 0xb9, 0xd5, 0x47, 0x50, 0x4d, 0x15, 0xd0, 0x31, 0x5e, 0x1f, 0xfa, 0xf4, 0xa6, - 0xeb, 0xfa, 0x47, 0xa4, 0xbd, 0xe3, 0x31, 0xb0, 0x10, 0x59, 0x0c, 0xba, 0xe9, 0xf6, 0xfc, 0x88, - 0x72, 0x84, 0x86, 0x1a, 0x30, 0x9f, 0x42, 0xf0, 0xe2, 0x07, 0x8e, 0xc9, 0xad, 0xda, 0x90, 0xdb, - 0x09, 0x18, 0x87, 0xbb, 0x7d, 0x2a, 0x58, 0xdd, 0x24, 0xae, 0x60, 0x95, 0x8b, 0x3b, 0x87, 0x6a, - 0x50, 0x56, 0x29, 0x23, 0x3d, 0xcf, 0xe6, 0xb5, 0xe5, 0x45, 0x24, 0xa4, 0x7a, 0x01, 0xcd, 0xc1, - 0xcc, 0x90, 0x22, 0xf4, 0x22, 0x42, 0x50, 0xe7, 0x5c, 0xab, 0xd5, 0x1d, 0xe9, 0x53, 0xab, 0x6b, - 0x50, 0x89, 0x33, 0x68, 0xac, 0xe7, 0x87, 0xbe, 0x47, 0x84, 0x10, 0x39, 0x89, 0xae, 0xb1, 0x41, - 0x54, 0x03, 0x21, 0x9d, 0xec, 0xff, 0xa7, 0x65, 0x7c, 0xed, 0xec, 0xef, 0xeb, 0x17, 0x58, 0xeb, - 0x3b, 0x98, 0x37, 0x01, 0x98, 0x6a, 0xd2, 0x90, 0xa9, 0x2e, 0xb7, 0xfa, 0xdb, 0x1a, 0x4c, 0xc9, - 0x7f, 0x52, 0xcb, 0x7b, 0x12, 0xbf, 0xf5, 0x0b, 0x68, 0x01, 0x66, 0x5b, 0xad, 0x6d, 0x51, 0x20, - 0x11, 0xcf, 0x82, 0xcb, 0x83, 0x67, 0x83, 0xe5, 0x90, 0x31, 0x26, 0xc7, 0x1a, 0x3c, 0x88, 0x2b, - 0x1a, 0x9a, 0xbb, 0xfd, 0xa8, 0x4b, 0xda, 0x7a, 0x9e, 0x59, 0x4f, 0xdc, 0xcf, 0x98, 0x7f, 0x34, - 0xa8, 0x17, 0xd0, 0x45, 0x58, 0x48, 0x77, 0xb9, 0xe9, 0x3f, 0xf4, 0x69, 0xd7, 0xf1, 0x3a, 0x7a, - 0x71, 0xf5, 0x3a, 0x94, 0x6e, 0x1f, 0xd3, 0x10, 0xef, 0x04, 0x62, 0xf2, 0x7e, 0xa0, 0x5f, 0x40, - 0x3a, 0xd4, 0xd8, 0xf9, 0x79, 0xc7, 0x6d, 0xf3, 0xd0, 0x5a, 0xd7, 0x56, 0x0d, 0x98, 0x1d, 0xd9, - 0xfc, 0x99, 0x19, 0x6c, 0x84, 0xf6, 0xa7, 0xdf, 0xb0, 0x7e, 0xc6, 0x0f, 0xf5, 0x0b, 0xb7, 0x5e, - 0xfa, 0xdb, 0xdf, 0x2b, 0x6b, 0x3f, 0xf8, 0xf0, 0x05, 0xed, 0xc7, 0x1f, 0xbe, 0xa0, 0xfd, 0xe3, - 0x87, 0x2f, 0x68, 0xbf, 0xf5, 0xcf, 0x2f, 0x5c, 0x00, 0xdd, 0x0f, 0x3b, 0x6b, 0xd4, 0x39, 0x38, - 0x5c, 0x3b, 0x38, 0xe4, 0xff, 0x2e, 0x7d, 0x6f, 0x8a, 0xff, 0x79, 0xfd, 0x7f, 0x02, 0x00, 0x00, - 0xff, 0xff, 0x2f, 0x19, 0xfd, 0x7a, 0xb2, 0x5d, 0x00, 0x00, + // 6478 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x3c, 0x4b, 0x6c, 0x1c, 0xc9, + 0x75, 0xea, 0xf9, 0x70, 0x66, 0xde, 0x0c, 0x87, 0xcd, 0xe2, 0x6f, 0x44, 0x49, 0x2b, 0xaa, 0xd7, + 0xda, 0x95, 0x69, 0x2f, 0xd7, 0xcb, 0xdd, 0xf5, 0x3f, 0xf6, 0x4a, 0xa4, 0x3e, 0x5c, 0x51, 0x22, + 0xd1, 0x33, 0xab, 0xcd, 0x22, 0xb1, 0xdb, 0xc5, 0x9e, 0xe2, 0x4c, 0x83, 0x3d, 0xdd, 0xbd, 0xdd, + 0x35, 0x24, 0xc7, 0x41, 0x80, 0x2c, 0xf2, 0x01, 0x0c, 0x04, 0x4e, 0x62, 0x18, 0x70, 0x00, 0x1b, + 0x01, 0x72, 0x30, 0x10, 0xe7, 0x16, 0xe4, 0x92, 0xcf, 0x21, 0x08, 0xe0, 0x83, 0x13, 0xc4, 0xb0, + 0x81, 0x20, 0x70, 0x90, 0x5c, 0x92, 0x0d, 0x90, 0x73, 0x2e, 0x41, 0x92, 0x43, 0x90, 0xa0, 0x7e, + 0xfd, 0x99, 0x19, 0x51, 0xd4, 0x88, 0x94, 0x9d, 0x9c, 0xc8, 0x7e, 0xef, 0x55, 0xd5, 0xab, 0xf7, + 0xab, 0xaa, 0x57, 0xaf, 0x06, 0xa6, 0x0f, 0x0e, 0xc3, 0xc0, 0x0e, 0xf6, 0xd6, 0x82, 0xd0, 0xa7, + 0x3e, 0x2a, 0xc9, 0xcf, 0xe5, 0x5a, 0x8f, 0x50, 0xac, 0xc0, 0xcb, 0xd3, 0x24, 0x0c, 0xfd, 0x30, + 0xfe, 0x9c, 0xef, 0xf8, 0x1d, 0x9f, 0xff, 0xfb, 0x2a, 0xfb, 0x4f, 0x42, 0x67, 0xc2, 0x7e, 0x44, + 0xf9, 0xbf, 0x12, 0x50, 0x6f, 0x13, 0xdc, 0x76, 0x7d, 0xfb, 0x40, 0xf5, 0x42, 0x43, 0x6c, 0x13, + 0xd5, 0x8b, 0xd1, 0x06, 0xb8, 0x4b, 0xa8, 0x49, 0xde, 0xef, 0x93, 0x88, 0xa2, 0x55, 0x28, 0xd9, + 0xbe, 0x47, 0xc9, 0x31, 0x6d, 0x68, 0x2b, 0xda, 0x8d, 0xea, 0xba, 0xbe, 0xa6, 0x58, 0xdb, 0x10, + 0x70, 0x53, 0x11, 0x20, 0x1d, 0xf2, 0x07, 0x64, 0xd0, 0xc8, 0xad, 0x68, 0x37, 0x6a, 0x26, 0xfb, + 0x17, 0x35, 0xa0, 0x74, 0x48, 0xc2, 0xc8, 0xf1, 0xbd, 0x46, 0x7e, 0x45, 0xbb, 0x51, 0x30, 0xd5, + 0xa7, 0xf1, 0xa1, 0x06, 0x55, 0x3e, 0x4c, 0x14, 0xf8, 0x5e, 0x44, 0xd0, 0x6b, 0x50, 0x0b, 0x49, + 0xc7, 0xf1, 0x3d, 0x8b, 0xcf, 0x49, 0x0e, 0x56, 0x5f, 0x53, 0x33, 0xbc, 0xcd, 0xfe, 0x9a, 0x55, + 0x41, 0xc3, 0x3f, 0xd0, 0xcb, 0x50, 0x14, 0xb4, 0x39, 0x4e, 0x3b, 0x1b, 0x33, 0x76, 0x9f, 0x0c, + 0x04, 0xb9, 0xc0, 0xa3, 0x79, 0x28, 0x1e, 0x62, 0xb7, 0x4f, 0x38, 0x0f, 0x35, 0x53, 0x7c, 0xa0, + 0x4b, 0x50, 0xf1, 0x7c, 0x6a, 0xed, 0xfb, 0x7d, 0xaf, 0xdd, 0x28, 0xac, 0x68, 0x37, 0xca, 0x66, + 0xd9, 0xf3, 0xe9, 0x1d, 0xf6, 0x8d, 0xbe, 0x00, 0x33, 0xe4, 0x98, 0xd8, 0x56, 0x9b, 0x50, 0xec, + 0xb8, 0x91, 0x75, 0xb8, 0xde, 0x98, 0xe2, 0xa3, 0x2c, 0xc6, 0xa3, 0xdc, 0x3e, 0x26, 0xf6, 0xa6, + 0x40, 0x3f, 0x5a, 0x37, 0xa7, 0x49, 0xfa, 0xf3, 0xed, 0x42, 0xb9, 0xa8, 0x4f, 0x19, 0xff, 0xae, + 0x41, 0xb5, 0x69, 0x63, 0x6f, 0x12, 0x61, 0x5e, 0x82, 0x4a, 0x44, 0x71, 0x48, 0xad, 0x44, 0xa4, + 0x65, 0x0e, 0xb8, 0x4f, 0x06, 0x6c, 0x46, 0xae, 0xd3, 0x73, 0x28, 0x9f, 0xd1, 0xb4, 0x29, 0x3e, + 0xd2, 0xd2, 0x2e, 0x64, 0xa4, 0x8d, 0x2e, 0x42, 0xf9, 0x80, 0x0c, 0x2c, 0xdf, 0x73, 0x07, 0x8d, + 0x22, 0x9f, 0x6a, 0xe9, 0x80, 0x0c, 0x76, 0x3c, 0x97, 0xab, 0x28, 0x24, 0x8c, 0x8e, 0xf0, 0x19, + 0x96, 0x4d, 0xf5, 0x89, 0x96, 0xa0, 0x44, 0xbc, 0x36, 0x1f, 0xbf, 0xc4, 0xc7, 0x9f, 0x22, 0x5e, + 0x9b, 0x8d, 0x7e, 0x15, 0xaa, 0x11, 0xee, 0x05, 0x2e, 0xb1, 0x22, 0x4a, 0x82, 0x46, 0x99, 0xf3, + 0x00, 0x02, 0xd4, 0xa4, 0x24, 0x30, 0x7e, 0x47, 0x83, 0x9a, 0x98, 0xf7, 0xe4, 0xda, 0xbd, 0x0e, + 0xc5, 0x00, 0x3b, 0x61, 0xd4, 0xc8, 0xad, 0xe4, 0x6f, 0x54, 0xd7, 0x67, 0x12, 0xed, 0x1e, 0xee, + 0x62, 0x27, 0x34, 0x05, 0x36, 0x31, 0x82, 0xfc, 0xc9, 0x46, 0x60, 0xfc, 0x57, 0x11, 0x66, 0x76, + 0x43, 0x72, 0x14, 0x3a, 0x94, 0x4c, 0xa2, 0x8f, 0x57, 0xa1, 0xd2, 0xeb, 0x53, 0x4c, 0x1d, 0xdf, + 0x53, 0x3c, 0x25, 0x83, 0x3d, 0x90, 0x18, 0x33, 0xa1, 0x41, 0xd7, 0xa0, 0x16, 0x84, 0x4e, 0x0f, + 0x87, 0x03, 0x8b, 0x39, 0x9b, 0x34, 0xbe, 0xaa, 0x84, 0x6d, 0xfb, 0xf6, 0x01, 0x7a, 0x11, 0xa6, + 0x85, 0x8e, 0xb3, 0x6a, 0xab, 0x71, 0xe0, 0xa3, 0x44, 0x77, 0xac, 0xbd, 0x45, 0xa9, 0xcb, 0x75, + 0x57, 0x30, 0x4b, 0xec, 0xbb, 0x45, 0x5d, 0xb4, 0x0e, 0x0b, 0xd1, 0x81, 0x13, 0x58, 0xb6, 0xef, + 0x45, 0x34, 0xc4, 0x8e, 0x47, 0x2d, 0xbb, 0x4b, 0xec, 0x03, 0xa9, 0xc9, 0x39, 0x86, 0xdc, 0x88, + 0x71, 0x1b, 0x0c, 0x85, 0x7e, 0x01, 0xe6, 0x02, 0x12, 0x45, 0x4e, 0xcf, 0x89, 0xa8, 0x63, 0x5b, + 0xd8, 0x16, 0x33, 0x2a, 0xad, 0xe4, 0x6f, 0xd4, 0xd7, 0x57, 0xe3, 0x19, 0x0d, 0x89, 0x6a, 0x6d, + 0x37, 0x69, 0x73, 0x93, 0x37, 0x31, 0x51, 0x30, 0x0c, 0x8a, 0x18, 0xaf, 0xf4, 0xd8, 0xb3, 0x22, + 0xe7, 0xab, 0x84, 0x9b, 0x45, 0xc1, 0x2c, 0xd1, 0x63, 0xaf, 0xe9, 0x7c, 0x95, 0x20, 0x03, 0xa6, + 0xf7, 0xfd, 0xd0, 0xea, 0x07, 0x6d, 0x4c, 0x89, 0x45, 0xa3, 0x46, 0x85, 0xe3, 0xab, 0xfb, 0x7e, + 0xf8, 0x0e, 0x87, 0xb5, 0x22, 0x46, 0xd3, 0x73, 0x3c, 0xcb, 0xf6, 0x7b, 0x3d, 0x87, 0x32, 0x1a, + 0x10, 0x34, 0x3d, 0xc7, 0xdb, 0xe0, 0xb0, 0x56, 0x84, 0x6e, 0x80, 0xde, 0x8f, 0x88, 0x85, 0xa3, + 0x81, 0x67, 0x4b, 0xca, 0x46, 0x95, 0x4f, 0xb7, 0xde, 0x8f, 0xc8, 0x4d, 0x06, 0x16, 0xb4, 0x68, + 0x05, 0xaa, 0x11, 0xb1, 0x7d, 0xaf, 0x8d, 0x43, 0x87, 0x44, 0x8d, 0xda, 0x4a, 0x9e, 0xc9, 0x3f, + 0x05, 0x42, 0x97, 0x01, 0x68, 0xc8, 0xdc, 0x82, 0x58, 0x81, 0xdd, 0x98, 0x16, 0x31, 0x80, 0x86, + 0x83, 0x1d, 0x8f, 0xec, 0xda, 0x9c, 0x1b, 0x7c, 0x9c, 0xe2, 0xa6, 0x2e, 0xb9, 0xc1, 0xc7, 0x31, + 0x37, 0x6f, 0xc1, 0x0c, 0x8e, 0x22, 0x12, 0xb2, 0xe9, 0x5b, 0x2e, 0x39, 0x24, 0x6e, 0x63, 0x66, + 0x45, 0xbb, 0x51, 0x5f, 0x5f, 0x8a, 0x25, 0x79, 0x53, 0xe1, 0xb7, 0x19, 0xda, 0xac, 0xe3, 0xcc, + 0xb7, 0xb1, 0x07, 0xb3, 0x23, 0xb2, 0x45, 0xcb, 0xb0, 0xd8, 0xbc, 0xbf, 0xb5, 0x6b, 0xed, 0xde, + 0x6e, 0x36, 0xb7, 0x1e, 0x6c, 0x35, 0x5b, 0x5b, 0x1b, 0xd6, 0xc6, 0xbd, 0xdb, 0x1b, 0xf7, 0xf5, + 0x0b, 0xa8, 0x01, 0xf3, 0x9b, 0x3b, 0x63, 0x30, 0x1a, 0x5a, 0x82, 0xb9, 0xcd, 0x1d, 0x6b, 0x63, + 0xe7, 0x61, 0xb3, 0x65, 0xde, 0xdc, 0x7a, 0xd8, 0x92, 0x88, 0x9c, 0xf1, 0xdf, 0x1a, 0xe8, 0x89, + 0x42, 0x27, 0xf7, 0xc9, 0x8f, 0xc2, 0x14, 0xc7, 0x8e, 0x3a, 0x40, 0xec, 0x6d, 0x92, 0x60, 0x54, + 0x95, 0xf9, 0x51, 0x55, 0xbe, 0x0c, 0xba, 0x10, 0x7d, 0x8a, 0x4c, 0x78, 0xc0, 0xb4, 0xcf, 0x34, + 0x10, 0x13, 0x8e, 0x89, 0xc6, 0xc5, 0xa7, 0x88, 0xc6, 0xc6, 0xf7, 0x0b, 0xb0, 0x98, 0x12, 0x32, + 0xf3, 0xbd, 0xff, 0x2f, 0x21, 0x60, 0xc4, 0xad, 0xa6, 0xc6, 0xba, 0x95, 0x13, 0x59, 0xfb, 0x4e, + 0x18, 0x51, 0xc1, 0x47, 0x89, 0x5b, 0x7a, 0xd5, 0x89, 0xee, 0x30, 0x18, 0xe7, 0xe3, 0x1a, 0xd4, + 0x8e, 0x30, 0x53, 0x81, 0xd3, 0x23, 0x7e, 0x9f, 0x72, 0xef, 0xcd, 0x9b, 0x55, 0x06, 0x6b, 0x09, + 0x10, 0x6a, 0x40, 0x71, 0xdf, 0x0f, 0x6d, 0xc2, 0x3d, 0xb7, 0x7c, 0x2b, 0xd7, 0xd0, 0x4c, 0x01, + 0x60, 0x93, 0x08, 0x09, 0xed, 0x87, 0x9e, 0xc5, 0x97, 0x56, 0xe1, 0xb7, 0x65, 0xb3, 0x26, 0x80, + 0x8f, 0x38, 0x6c, 0xd4, 0x22, 0xaa, 0xe3, 0x2c, 0x62, 0x86, 0x07, 0x30, 0x8b, 0x1c, 0x3b, 0x11, + 0x25, 0x9e, 0x4d, 0x1a, 0x35, 0xe1, 0xdb, 0x1c, 0x7c, 0x5b, 0x41, 0xd1, 0x2b, 0x30, 0xc7, 0x25, + 0xc2, 0x56, 0x34, 0xcb, 0xd9, 0x17, 0xf4, 0x91, 0x74, 0x61, 0x9d, 0xa1, 0xd8, 0xe2, 0xb6, 0xb5, + 0xcf, 0x5b, 0x44, 0x68, 0x93, 0xcd, 0xee, 0x80, 0x58, 0xfd, 0xc0, 0xea, 0xf9, 0x6d, 0xc2, 0x3d, + 0xb9, 0xbe, 0x6e, 0x24, 0xd1, 0x2e, 0x6b, 0x1c, 0xef, 0xe2, 0x03, 0xf2, 0x4e, 0xf0, 0xc0, 0x6f, + 0x13, 0x13, 0x8e, 0xe2, 0xff, 0x8d, 0x7f, 0xd3, 0xa0, 0x31, 0x44, 0x79, 0x9f, 0x0c, 0x4c, 0x12, + 0xf5, 0x5d, 0x8a, 0x3e, 0x03, 0x05, 0x3a, 0x08, 0x08, 0xb7, 0xa2, 0xfa, 0xfa, 0xf5, 0xc7, 0x75, + 0x1d, 0x37, 0x68, 0x0d, 0x02, 0x62, 0xf2, 0x26, 0xc9, 0xfe, 0x24, 0x97, 0xde, 0x9f, 0x5c, 0x86, + 0x4a, 0x22, 0x85, 0x3c, 0x9f, 0x58, 0x02, 0x40, 0x6f, 0xc2, 0x12, 0x9b, 0x25, 0x69, 0x5b, 0x47, + 0x0e, 0xed, 0xb2, 0x15, 0x60, 0xdf, 0x75, 0xec, 0x94, 0x0b, 0xcd, 0x0b, 0xf4, 0xbb, 0x0e, 0xed, + 0x6e, 0x48, 0x64, 0x2b, 0x42, 0x6b, 0xc0, 0x17, 0x05, 0x2b, 0x24, 0x91, 0xef, 0x1e, 0x3a, 0x5e, + 0x47, 0x18, 0x84, 0x08, 0xa0, 0xb3, 0x0c, 0x65, 0x2a, 0x0c, 0xe3, 0xd6, 0xf8, 0xd7, 0x1c, 0x2c, + 0x8d, 0x78, 0xce, 0x73, 0x09, 0x20, 0x57, 0xa1, 0x32, 0x14, 0x3c, 0xb8, 0xc5, 0x95, 0x6d, 0x65, + 0x2b, 0x0d, 0x25, 0x35, 0x36, 0xdf, 0x9a, 0x30, 0x47, 0x21, 0xb9, 0x45, 0x98, 0x92, 0x76, 0x58, + 0xe4, 0x31, 0x5f, 0x7e, 0xa1, 0x2b, 0x00, 0xf1, 0x8e, 0x8f, 0x39, 0x4a, 0x9e, 0x89, 0x54, 0x6d, + 0xf9, 0xc6, 0x46, 0x99, 0xd2, 0x53, 0x44, 0x19, 0xf4, 0x39, 0xb6, 0x93, 0x62, 0xaa, 0x8d, 0x1a, + 0x65, 0x3e, 0xbb, 0x6b, 0x4f, 0x34, 0x02, 0x53, 0xb5, 0x30, 0xbe, 0xab, 0xc1, 0x72, 0x8a, 0xca, + 0xf4, 0x5d, 0x77, 0x0f, 0x4f, 0x16, 0xa6, 0x46, 0x42, 0x4a, 0x6e, 0x4c, 0x48, 0x19, 0x89, 0x1b, + 0xf9, 0xd1, 0xb8, 0x81, 0xa0, 0x70, 0x40, 0x06, 0xcc, 0xa0, 0x98, 0x14, 0xf9, 0xff, 0xc6, 0x9f, + 0x6b, 0x70, 0x69, 0x2c, 0x9f, 0xcf, 0xc5, 0x28, 0xc6, 0xa8, 0x28, 0xff, 0x34, 0x0b, 0xc1, 0x1f, + 0x69, 0x30, 0xd7, 0x3a, 0xf6, 0xee, 0x11, 0x1c, 0xd2, 0x5b, 0x04, 0x4f, 0x74, 0xca, 0x19, 0x0e, + 0xea, 0xb9, 0x53, 0x04, 0xf5, 0xfc, 0x18, 0x0d, 0xbc, 0x04, 0x33, 0xb8, 0x7d, 0xe8, 0x44, 0xc4, + 0x8a, 0x63, 0xbb, 0x5c, 0xfc, 0x04, 0x78, 0x5b, 0x44, 0x78, 0xe3, 0x87, 0x1a, 0xcc, 0x67, 0x79, + 0x7e, 0x0e, 0x47, 0xa6, 0xf4, 0x8a, 0x93, 0xcf, 0xae, 0x38, 0x63, 0x74, 0x50, 0x78, 0x1a, 0x1d, + 0xfc, 0x73, 0x0e, 0x16, 0xf8, 0x56, 0xb4, 0x75, 0xec, 0x35, 0x29, 0xa6, 0xfd, 0x68, 0x12, 0x2d, + 0x5c, 0x05, 0x25, 0xf1, 0xd4, 0x01, 0x09, 0x24, 0x88, 0x1d, 0x52, 0x96, 0xa0, 0x24, 0x66, 0xa0, + 0x4c, 0x7b, 0x8a, 0x4f, 0x20, 0x62, 0x72, 0xb7, 0xb1, 0xeb, 0x92, 0xd0, 0x12, 0x3a, 0x4a, 0x36, + 0x1d, 0x02, 0xdc, 0x64, 0xd0, 0x16, 0x8f, 0x16, 0x76, 0x3f, 0x0c, 0x89, 0xc7, 0x49, 0xc4, 0xb2, + 0x5b, 0x91, 0x90, 0x56, 0x84, 0x5e, 0x83, 0x85, 0x50, 0x1a, 0x3f, 0x5b, 0x80, 0x58, 0x60, 0xe1, + 0xd1, 0x59, 0xee, 0xbd, 0x91, 0x42, 0x6e, 0xed, 0x3f, 0xf4, 0x29, 0x5f, 0x86, 0xd0, 0x2a, 0xcc, + 0xf2, 0xf5, 0xd2, 0x4a, 0xef, 0x5d, 0xc5, 0x5a, 0x3c, 0xc3, 0x11, 0xcd, 0x64, 0xf3, 0xfa, 0x79, + 0x58, 0x4e, 0x62, 0x74, 0x7a, 0xc3, 0xce, 0x6d, 0xae, 0xcc, 0x1b, 0x35, 0x62, 0x8a, 0xa1, 0xf8, + 0x62, 0xfc, 0x28, 0x07, 0x8b, 0xc3, 0x32, 0xfe, 0xe9, 0x5a, 0xcd, 0x75, 0xa8, 0xcb, 0x70, 0x9e, + 0xdd, 0xe8, 0x4c, 0x0b, 0xa8, 0x72, 0x8a, 0x97, 0x61, 0x4a, 0x9c, 0x48, 0xb8, 0xc0, 0xeb, 0xa9, + 0x63, 0x9f, 0x3c, 0x75, 0x48, 0x34, 0x5a, 0x83, 0x0a, 0x1f, 0xca, 0xf1, 0xf6, 0x7d, 0x79, 0x34, + 0x4f, 0xf8, 0x62, 0x32, 0xd8, 0xf2, 0xf6, 0x7d, 0x93, 0xb3, 0xc3, 0xfe, 0x7b, 0xd6, 0xe0, 0x6e, + 0x7c, 0xa0, 0xc1, 0x32, 0x97, 0x68, 0x53, 0x9e, 0x1f, 0xb8, 0xa7, 0x4f, 0x64, 0xba, 0x2a, 0xac, + 0xe6, 0x92, 0xb0, 0x7a, 0xaa, 0x88, 0x61, 0xfc, 0x8f, 0x06, 0x97, 0xc6, 0xf2, 0xf0, 0x1c, 0x54, + 0xfb, 0x32, 0x14, 0x99, 0x2c, 0x99, 0x33, 0xe5, 0xc7, 0xcb, 0x5a, 0xe0, 0xd1, 0xa5, 0xf4, 0xba, + 0x2d, 0x74, 0x9c, 0xac, 0xd9, 0xcf, 0xba, 0x91, 0xff, 0x9e, 0x06, 0xd3, 0xc2, 0x41, 0xce, 0x6d, + 0x61, 0x54, 0xda, 0xc9, 0xa7, 0xb4, 0x73, 0x3a, 0xe3, 0x15, 0x49, 0x1f, 0x73, 0x6a, 0xcf, 0xf1, + 0x5c, 0xbf, 0x63, 0xfc, 0xad, 0x06, 0x75, 0xc5, 0xeb, 0x73, 0x50, 0xd0, 0x28, 0x8f, 0xf9, 0x71, + 0x0e, 0xf6, 0xac, 0xd1, 0xbb, 0x03, 0xd3, 0x5b, 0xbd, 0xc0, 0x0f, 0x63, 0x05, 0x64, 0x0e, 0x45, + 0xda, 0x29, 0x0e, 0x45, 0xa3, 0x8c, 0xe6, 0xc6, 0x30, 0x6a, 0xbc, 0x07, 0x75, 0x35, 0xd0, 0xe4, + 0xd2, 0x9b, 0x4f, 0x4b, 0xaf, 0xa2, 0x52, 0x41, 0xdf, 0x60, 0x9a, 0x71, 0x09, 0xf6, 0xfa, 0xc1, + 0xd9, 0xa4, 0x39, 0x4f, 0xb5, 0xde, 0x67, 0xd7, 0x93, 0xc2, 0xd0, 0x7a, 0x62, 0x7c, 0x53, 0x83, + 0x99, 0x98, 0xa9, 0x9f, 0x19, 0x7b, 0x31, 0x0e, 0x60, 0xe6, 0x16, 0xa6, 0x76, 0x77, 0xc2, 0x94, + 0xf0, 0xb8, 0x58, 0xf7, 0xf8, 0xa4, 0xf0, 0x3f, 0x6a, 0xa0, 0x27, 0xa3, 0x9d, 0x7b, 0xee, 0xf0, + 0x19, 0x7d, 0x21, 0x91, 0x75, 0xf1, 0x64, 0x59, 0xbf, 0x5d, 0x28, 0xe7, 0xf5, 0x82, 0xf1, 0x4b, + 0x30, 0xcf, 0x27, 0x77, 0xee, 0x7b, 0xfb, 0x31, 0x21, 0xcc, 0xf8, 0x63, 0x0d, 0x16, 0x86, 0x46, + 0x7f, 0x0e, 0x46, 0xf6, 0xac, 0xfb, 0xf5, 0x3f, 0xd4, 0x60, 0xa6, 0x69, 0x63, 0x6f, 0xd2, 0x8c, + 0xcd, 0x55, 0xa8, 0xf6, 0xf0, 0xf1, 0x90, 0xb0, 0xa0, 0x87, 0x8f, 0x95, 0xa8, 0x32, 0x59, 0xf6, + 0xfc, 0xe3, 0xb2, 0xec, 0x85, 0x74, 0x96, 0x3d, 0x95, 0x16, 0x2f, 0xa6, 0xd3, 0xe2, 0xc6, 0x4f, + 0x34, 0xd0, 0x13, 0x66, 0x7f, 0x96, 0xd6, 0xe4, 0x67, 0x0d, 0xfa, 0x3f, 0xd2, 0x00, 0x89, 0xbc, + 0x00, 0x99, 0x54, 0x13, 0xa7, 0x32, 0xdc, 0x53, 0xae, 0x61, 0xaf, 0x40, 0x85, 0x1e, 0x7b, 0x7c, + 0xeb, 0x27, 0x0e, 0xa7, 0xe9, 0x91, 0x5b, 0xc7, 0x9e, 0xd8, 0xfa, 0x51, 0xf1, 0x4f, 0x72, 0x8c, + 0x2d, 0xa6, 0xdc, 0x81, 0x1d, 0x04, 0x33, 0x33, 0xfa, 0x3f, 0xe0, 0x0c, 0x8f, 0xa0, 0x72, 0x77, + 0x63, 0x12, 0xd9, 0x5f, 0x01, 0x88, 0xf0, 0x3e, 0xb1, 0x02, 0xdf, 0xf1, 0xa8, 0x14, 0x7c, 0x85, + 0x41, 0x76, 0x19, 0xc0, 0xe8, 0x02, 0xb0, 0x7e, 0xcf, 0x5f, 0x02, 0xc6, 0xb7, 0x34, 0x40, 0x9b, + 0xc4, 0x25, 0x94, 0x98, 0xd8, 0xeb, 0x90, 0x33, 0xbf, 0x16, 0x4b, 0xb9, 0x66, 0x7e, 0xf8, 0xc6, + 0xca, 0xf3, 0xa9, 0xb3, 0x2f, 0xaf, 0xc0, 0xc4, 0x6d, 0x1f, 0x08, 0xd0, 0x8e, 0xe7, 0x0e, 0x8c, + 0x2f, 0xc3, 0x5c, 0x86, 0xb1, 0xb3, 0xde, 0x72, 0xfc, 0xa9, 0x06, 0x2b, 0xbb, 0x21, 0x09, 0x70, + 0x48, 0xee, 0xb8, 0x38, 0xea, 0xb2, 0x08, 0xdc, 0xf2, 0xa5, 0x41, 0x3f, 0x3f, 0x39, 0x5c, 0x84, + 0xf2, 0xd0, 0xa1, 0xb7, 0x14, 0xc9, 0xe3, 0x6e, 0x6a, 0x55, 0x2e, 0x66, 0x57, 0x65, 0x17, 0xae, + 0x9d, 0xc0, 0xfa, 0x59, 0x4b, 0xea, 0x47, 0x1a, 0x5c, 0x3c, 0x1b, 0x11, 0xa5, 0x66, 0x94, 0xcb, + 0x5e, 0x87, 0x9e, 0x18, 0xf5, 0x53, 0xc2, 0x2b, 0x3c, 0x56, 0x78, 0xc5, 0xac, 0xf0, 0x32, 0x87, + 0x9e, 0xa9, 0xec, 0xa1, 0xc7, 0x20, 0xb0, 0xfc, 0x3c, 0x04, 0xf7, 0x25, 0x98, 0x36, 0xf1, 0xd1, + 0x99, 0x5d, 0xdd, 0xd7, 0x21, 0x67, 0xef, 0x73, 0xe1, 0x54, 0xcc, 0x9c, 0xbd, 0x6f, 0xfc, 0xa6, + 0x06, 0x75, 0xd5, 0xff, 0x19, 0xb3, 0x3e, 0xc1, 0x05, 0xbd, 0xd1, 0x06, 0x64, 0xe2, 0xa3, 0xb3, + 0xde, 0x9a, 0x0e, 0x4f, 0xda, 0x87, 0xb9, 0xcc, 0x28, 0xe7, 0xbd, 0x25, 0x35, 0x7e, 0x4f, 0xe3, + 0x5a, 0xdc, 0xed, 0x9f, 0x91, 0x16, 0xc7, 0x4b, 0x56, 0x4c, 0xb3, 0xa0, 0xa6, 0xc9, 0xda, 0x25, + 0x57, 0x4b, 0xec, 0x5f, 0xe6, 0x04, 0xfb, 0x7e, 0x68, 0xd9, 0x38, 0x92, 0xf9, 0xac, 0xa9, 0x7d, + 0x3f, 0xdc, 0xc0, 0x11, 0x3b, 0x96, 0x29, 0xfe, 0xce, 0xda, 0x80, 0xff, 0x4c, 0x4b, 0x74, 0x3a, + 0xa1, 0x00, 0x4e, 0xb9, 0xf1, 0x1f, 0x52, 0x33, 0x9a, 0x17, 0xf3, 0x2f, 0xc4, 0xb7, 0x0c, 0xc3, + 0x32, 0x28, 0xa6, 0x65, 0xc0, 0x2c, 0x87, 0x52, 0x57, 0xdc, 0x20, 0x14, 0x4c, 0xfe, 0x3f, 0x5b, + 0x40, 0x32, 0xbc, 0x9f, 0xb5, 0x70, 0x06, 0xa0, 0x9b, 0xf8, 0x48, 0xae, 0x51, 0xe7, 0xe1, 0xe0, + 0xe9, 0xe9, 0x16, 0x32, 0x2a, 0xff, 0x45, 0x98, 0x4d, 0x0d, 0x7d, 0xd6, 0x13, 0xfb, 0x15, 0x0d, + 0x16, 0x94, 0xe4, 0x26, 0x9f, 0xde, 0x29, 0x9c, 0xf9, 0xf1, 0x13, 0xc4, 0xb0, 0x38, 0xcc, 0xc1, + 0x59, 0xcf, 0xf2, 0x87, 0x22, 0x7a, 0x3e, 0xc7, 0x62, 0xa0, 0x74, 0xc9, 0x4f, 0x21, 0x5b, 0xf2, + 0x23, 0x04, 0x53, 0x8c, 0x05, 0xf3, 0xf4, 0x25, 0x40, 0x46, 0x07, 0x66, 0xe2, 0xe9, 0x4c, 0x2e, + 0xab, 0x6b, 0x90, 0x3f, 0x38, 0x7c, 0xac, 0xb3, 0x32, 0x9c, 0xf1, 0x35, 0x61, 0x1e, 0x3f, 0x95, + 0x5d, 0xe3, 0x50, 0x98, 0x94, 0x76, 0x72, 0xae, 0xfb, 0xc4, 0x1f, 0x6b, 0x49, 0x1c, 0x99, 0xd4, + 0x58, 0x3e, 0x0a, 0x53, 0x21, 0xe3, 0x6e, 0xec, 0x7d, 0x9a, 0xe0, 0x5b, 0x12, 0xb0, 0x93, 0x01, + 0xc1, 0x76, 0xd7, 0x4a, 0xdb, 0x4f, 0x85, 0x41, 0xb6, 0xcf, 0xcc, 0x86, 0x0c, 0x17, 0xe6, 0xb3, + 0x33, 0x3a, 0x57, 0x7b, 0xf9, 0x65, 0xb8, 0xf8, 0x8e, 0xc7, 0xce, 0x36, 0x9b, 0x24, 0xa2, 0xa1, + 0x3f, 0x78, 0xbe, 0x26, 0xc3, 0xf6, 0x7a, 0xe3, 0x86, 0x3f, 0x6b, 0x33, 0xf9, 0x0a, 0x5c, 0x32, + 0x49, 0xc7, 0x89, 0x28, 0x09, 0xd9, 0xf1, 0x75, 0x67, 0x2f, 0x22, 0xe1, 0x21, 0x09, 0x27, 0x99, + 0xe7, 0x02, 0x4c, 0xf5, 0xf0, 0x31, 0xdb, 0xb7, 0x8a, 0x4d, 0x72, 0xb1, 0x87, 0x8f, 0x5b, 0x91, + 0xf1, 0x06, 0x5c, 0x1e, 0x3f, 0x82, 0x9c, 0x4a, 0xcc, 0x97, 0x96, 0xdd, 0x83, 0x36, 0xf8, 0x05, + 0xc5, 0x39, 0x31, 0xd5, 0x87, 0x8b, 0x63, 0xba, 0x3f, 0x89, 0x23, 0x66, 0xc2, 0x4e, 0x64, 0xd9, + 0x2e, 0xc1, 0xe2, 0x14, 0x50, 0x36, 0x4b, 0x4e, 0xc4, 0xf3, 0xac, 0xa7, 0x4e, 0x9f, 0x18, 0x5f, + 0x86, 0x8b, 0x26, 0xe9, 0xf9, 0x22, 0x55, 0x70, 0x0e, 0xd3, 0x5a, 0x87, 0xe5, 0x71, 0xfd, 0x9f, + 0x28, 0xe9, 0xdf, 0xd2, 0x60, 0x69, 0xb7, 0x3b, 0x88, 0x1c, 0x1b, 0xbb, 0xcf, 0x92, 0x21, 0x1b, + 0xcf, 0xd2, 0x04, 0x79, 0x31, 0xe3, 0x3d, 0x68, 0x8c, 0x32, 0x74, 0xa2, 0x6e, 0x62, 0x05, 0xe4, + 0x9e, 0xa0, 0x80, 0xef, 0x68, 0x80, 0x9a, 0x81, 0xeb, 0x50, 0x93, 0x7b, 0xc6, 0x64, 0x99, 0xc0, + 0x4a, 0xc4, 0x7a, 0x48, 0xdc, 0x59, 0x94, 0x93, 0x70, 0x20, 0x9b, 0xd4, 0x15, 0x80, 0x98, 0x40, + 0xa5, 0x4e, 0x2b, 0x0a, 0x1b, 0xa1, 0x65, 0xa8, 0x38, 0x91, 0x15, 0xe2, 0x23, 0xeb, 0xe0, 0x50, + 0xc5, 0x42, 0x27, 0x32, 0xf1, 0xd1, 0xfd, 0x43, 0xe3, 0xfb, 0x1a, 0xcc, 0x65, 0xd8, 0x9b, 0xdc, + 0xdd, 0x5f, 0x82, 0x82, 0x4b, 0xf6, 0xa9, 0xcc, 0xa4, 0xd4, 0xd7, 0x64, 0xb9, 0xb7, 0xe8, 0x98, + 0x73, 0xcc, 0xf1, 0xe8, 0x06, 0x14, 0x43, 0xa7, 0xd3, 0xa5, 0x32, 0x83, 0x34, 0x8e, 0x50, 0x10, + 0xa0, 0x1b, 0x2c, 0x30, 0x77, 0xf8, 0xed, 0x8c, 0x48, 0x95, 0x0d, 0xd1, 0x9a, 0x0a, 0x6d, 0xfc, + 0x9a, 0x06, 0xba, 0x49, 0x70, 0x7b, 0xcb, 0x6b, 0x93, 0xe3, 0x49, 0x64, 0x9c, 0x3e, 0x20, 0xe7, + 0xb2, 0x07, 0xe4, 0x64, 0x4d, 0xca, 0x3f, 0x61, 0x4d, 0x32, 0x7e, 0x5b, 0x83, 0xd9, 0x14, 0x1b, + 0x93, 0xcb, 0xf2, 0x0a, 0x40, 0x48, 0x70, 0xdb, 0x72, 0x58, 0x47, 0x2a, 0xed, 0x15, 0xaa, 0x9e, + 0x19, 0x4b, 0xa2, 0x44, 0x6a, 0xa4, 0x74, 0x38, 0x36, 0x3f, 0x49, 0x60, 0x34, 0x61, 0xee, 0xc1, + 0xa1, 0x6d, 0xdf, 0x25, 0xf4, 0xd6, 0x80, 0xd7, 0xee, 0x9c, 0xc1, 0xfe, 0xdb, 0xf8, 0x0d, 0x0d, + 0xe6, 0xb3, 0xbd, 0x9e, 0xf5, 0xb1, 0xfa, 0x3a, 0x14, 0xf8, 0xf5, 0xf8, 0xf0, 0xfc, 0xd8, 0xa8, + 0x7c, 0x7e, 0x1c, 0x6d, 0x7c, 0x05, 0x96, 0x62, 0x3e, 0x64, 0xf1, 0xc3, 0xd9, 0x6a, 0x9f, 0xf9, + 0x6f, 0x63, 0x74, 0x88, 0xb3, 0x9e, 0xae, 0x14, 0x71, 0x3e, 0x39, 0xe2, 0x28, 0x01, 0x14, 0x4e, + 0x16, 0xc0, 0x07, 0x15, 0x28, 0x6d, 0x24, 0xcb, 0xbe, 0xe4, 0xc6, 0x69, 0x73, 0x56, 0x0a, 0x66, + 0x59, 0x00, 0xb6, 0xda, 0xe8, 0x93, 0x09, 0xab, 0x81, 0x6f, 0x77, 0xa5, 0x97, 0xce, 0x65, 0x1d, + 0xea, 0x36, 0x43, 0xc5, 0xfc, 0xb2, 0x0f, 0xb4, 0x02, 0x85, 0x80, 0x10, 0x55, 0xa3, 0x5e, 0x53, + 0xf4, 0xbb, 0x84, 0x84, 0x26, 0xc7, 0xf0, 0x23, 0x25, 0x09, 0x7b, 0xf2, 0x08, 0xce, 0xff, 0x47, + 0xaf, 0x42, 0x39, 0x08, 0x1d, 0x3f, 0x74, 0xe8, 0x80, 0xef, 0xa9, 0xea, 0xeb, 0x73, 0x29, 0xe9, + 0xf7, 0x7a, 0xd8, 0x6b, 0xef, 0x86, 0x8e, 0x19, 0x13, 0xa1, 0xb7, 0x60, 0xc6, 0x89, 0x7c, 0x17, + 0xa7, 0x8a, 0x91, 0x4b, 0x43, 0xc5, 0xc8, 0x5b, 0x0a, 0x2f, 0x8b, 0x91, 0x9d, 0xcc, 0x37, 0xfa, + 0x08, 0xd4, 0x79, 0xca, 0xc5, 0x71, 0x5d, 0xcb, 0xc6, 0x76, 0x97, 0xc8, 0x4a, 0x93, 0x9a, 0xe7, + 0xd3, 0x3b, 0x8e, 0xeb, 0x6e, 0x30, 0x18, 0xd7, 0xf4, 0xc0, 0xb3, 0x2d, 0xd7, 0xef, 0x88, 0x5a, + 0x50, 0xb3, 0xc4, 0xbe, 0xb7, 0xfd, 0x0e, 0xba, 0x01, 0x7a, 0x48, 0x6c, 0x3f, 0x6c, 0xf3, 0x42, + 0x52, 0x2b, 0xa2, 0x98, 0xca, 0x62, 0xd0, 0xba, 0x80, 0xb7, 0x9c, 0x1e, 0x69, 0x52, 0x4c, 0x53, + 0x94, 0x91, 0x8d, 0x3d, 0x41, 0x59, 0x4d, 0x53, 0xb2, 0x45, 0x84, 0x53, 0x5e, 0x63, 0x52, 0x0f, + 0x5c, 0xc7, 0xc6, 0x16, 0xf3, 0x5e, 0x59, 0x11, 0x5a, 0x95, 0x30, 0x16, 0x2a, 0xd0, 0x75, 0xa8, + 0x8b, 0x5a, 0x18, 0xd2, 0xb6, 0xc4, 0x92, 0x32, 0xcd, 0xcf, 0xe6, 0xd3, 0x0a, 0xca, 0x0b, 0x25, + 0xd0, 0x67, 0xe0, 0x22, 0x5b, 0xec, 0xc8, 0x31, 0xb1, 0xfb, 0x5c, 0x48, 0xed, 0x7e, 0x28, 0xa4, + 0xd5, 0x53, 0xd5, 0xdd, 0x8b, 0x3d, 0x7c, 0x7c, 0x5b, 0xe1, 0x37, 0x25, 0xfa, 0x01, 0x2f, 0xd0, + 0xc0, 0x41, 0xe0, 0x3a, 0x44, 0xc5, 0x93, 0x19, 0x71, 0x7f, 0x21, 0x81, 0x22, 0xa4, 0x2c, 0x41, + 0x89, 0xe2, 0xe8, 0x80, 0x99, 0x8e, 0x2e, 0x6a, 0x8e, 0xd8, 0xe7, 0x56, 0x9b, 0x2f, 0x2e, 0x14, + 0xbb, 0x44, 0x4c, 0x60, 0x56, 0x14, 0x73, 0x72, 0x08, 0x67, 0xff, 0xe3, 0x80, 0x18, 0xa3, 0xfd, + 0xd0, 0x26, 0x56, 0x27, 0xf4, 0xfb, 0x81, 0x45, 0x71, 0xa7, 0x81, 0xb8, 0x21, 0xeb, 0x0a, 0x73, + 0x97, 0x21, 0x5a, 0xb8, 0x83, 0x3e, 0x0d, 0xd3, 0x6d, 0x27, 0x3a, 0xb0, 0xf6, 0xfb, 0xae, 0x6b, + 0xf9, 0x01, 0x6d, 0xcc, 0x71, 0x25, 0xcf, 0xc7, 0x4a, 0xde, 0x74, 0xa2, 0x83, 0x3b, 0x7d, 0xd7, + 0xdd, 0x09, 0xa8, 0x59, 0x6d, 0x27, 0x1f, 0x4c, 0xe6, 0x6c, 0x11, 0x23, 0x34, 0x1c, 0x58, 0xa1, + 0x70, 0xf1, 0xc6, 0xbc, 0x90, 0xb9, 0x13, 0x99, 0x0c, 0xac, 0x1c, 0xff, 0x0d, 0xa8, 0xe2, 0xc0, + 0x89, 0xaf, 0x61, 0x16, 0x86, 0xcc, 0xef, 0xe6, 0xee, 0x96, 0xca, 0x63, 0x02, 0x0e, 0x9c, 0xa4, + 0x7a, 0x67, 0x46, 0x64, 0x3d, 0x69, 0xac, 0x87, 0x45, 0xae, 0x87, 0x7a, 0x0c, 0x16, 0x8a, 0xf8, + 0x2c, 0x88, 0x47, 0x47, 0x96, 0x8a, 0x2e, 0x4b, 0xdc, 0x33, 0x16, 0xd6, 0xd4, 0x53, 0xa4, 0x16, + 0xfb, 0xab, 0x42, 0x4c, 0x8d, 0xa6, 0xbe, 0x84, 0xae, 0x39, 0x97, 0x96, 0x10, 0x4c, 0xa3, 0xc1, + 0xa3, 0xc0, 0xb4, 0x84, 0x36, 0x39, 0x90, 0x89, 0x9c, 0x3f, 0x45, 0x10, 0x24, 0x17, 0x45, 0xf4, + 0xa7, 0xc7, 0x9e, 0x44, 0xaf, 0xc1, 0xdc, 0x90, 0xc8, 0x3d, 0xdc, 0x23, 0x8d, 0x65, 0xde, 0xd5, + 0x6c, 0x46, 0xe6, 0x0f, 0x71, 0x8f, 0xa0, 0x55, 0x98, 0xdd, 0xeb, 0x47, 0x03, 0x8b, 0x76, 0x43, + 0x12, 0x75, 0x7d, 0xb7, 0xcd, 0x4c, 0xe6, 0x12, 0xdf, 0xff, 0xcc, 0x30, 0x44, 0x4b, 0xc1, 0x1f, + 0x44, 0xe8, 0x2a, 0x54, 0xd9, 0x26, 0x22, 0x60, 0x13, 0x74, 0xda, 0x8d, 0x15, 0xf1, 0x3e, 0x46, + 0x81, 0xb6, 0xda, 0x6f, 0x17, 0xca, 0x05, 0xbd, 0xc8, 0x2c, 0x18, 0xb7, 0xad, 0xf7, 0xfb, 0x7e, + 0xd8, 0xef, 0x19, 0xdf, 0xce, 0x43, 0x59, 0xad, 0x3b, 0x23, 0x25, 0x86, 0xda, 0x68, 0x89, 0xe1, + 0x35, 0xa8, 0xf1, 0xfa, 0xa7, 0x6c, 0x86, 0xbb, 0xca, 0x60, 0x4a, 0x1b, 0xa3, 0xf1, 0x30, 0x5d, + 0x9f, 0x55, 0xc8, 0xd6, 0x67, 0xa5, 0x5f, 0x6e, 0x14, 0xb3, 0x2f, 0x37, 0x6e, 0xc8, 0x52, 0x2b, + 0x5e, 0xde, 0x2c, 0x02, 0x51, 0x35, 0xb6, 0x84, 0x9d, 0x40, 0x14, 0x59, 0xb5, 0x06, 0x01, 0x41, + 0x1f, 0x03, 0xc4, 0x29, 0xb3, 0x95, 0xa5, 0x25, 0xde, 0xdd, 0x0c, 0xc3, 0xdc, 0x49, 0x55, 0x97, + 0x8e, 0x7b, 0xc8, 0x51, 0x1e, 0xfb, 0x90, 0x63, 0xa4, 0x72, 0xbc, 0x32, 0x5a, 0x39, 0x3e, 0xf4, + 0xd8, 0x03, 0x46, 0x1f, 0x7b, 0x7c, 0x16, 0x96, 0x63, 0x77, 0xa7, 0xbe, 0xe5, 0xe2, 0x88, 0x2a, + 0x26, 0x7b, 0xaa, 0x18, 0x7d, 0x51, 0x51, 0xb4, 0xfc, 0x6d, 0x1c, 0x51, 0xc1, 0xeb, 0x83, 0xc8, + 0xf8, 0x56, 0x01, 0xca, 0xea, 0x32, 0x2b, 0xb5, 0x71, 0xd0, 0x9e, 0xb0, 0x71, 0x40, 0x97, 0xd9, + 0x6a, 0x42, 0xc3, 0x01, 0xde, 0x73, 0x89, 0x5c, 0xac, 0x12, 0x00, 0x5b, 0xc6, 0xf0, 0x9e, 0x1f, + 0x52, 0x99, 0xa3, 0x12, 0x1f, 0x68, 0x1d, 0xca, 0xaa, 0x9a, 0x7b, 0xe4, 0x96, 0xf6, 0xdd, 0xd0, + 0xa1, 0x44, 0x95, 0x73, 0x9b, 0x31, 0x1d, 0xf3, 0x27, 0xec, 0x32, 0x73, 0x1a, 0xc8, 0x22, 0xc4, + 0xa2, 0xf4, 0xa7, 0xd8, 0x61, 0x05, 0x96, 0xd7, 0x21, 0x9a, 0x35, 0x9c, 0xfa, 0x42, 0xaf, 0x40, + 0x59, 0x3d, 0x08, 0x1c, 0x29, 0xa4, 0xdb, 0x94, 0x08, 0x33, 0x26, 0x41, 0x9b, 0x30, 0x1b, 0x2b, + 0xc2, 0x22, 0xc7, 0x81, 0x13, 0x92, 0xb6, 0x2c, 0xa5, 0x6b, 0x64, 0x96, 0x27, 0xa6, 0x96, 0xdb, + 0x02, 0x6f, 0xce, 0xd8, 0x59, 0x00, 0x8b, 0x61, 0xcc, 0xdc, 0x92, 0xfc, 0x7e, 0x99, 0xf7, 0x30, + 0x9f, 0xbe, 0xc6, 0x7d, 0x28, 0x73, 0xfd, 0x66, 0x95, 0x26, 0x1f, 0xe8, 0x1e, 0xcc, 0x25, 0xe3, + 0x53, 0x9f, 0x29, 0x32, 0xec, 0x88, 0x37, 0x09, 0xd5, 0xf5, 0x8b, 0x23, 0x1c, 0xb4, 0x7c, 0x7f, + 0x9b, 0x11, 0x98, 0xba, 0x3d, 0x04, 0x41, 0x1b, 0xa0, 0x27, 0x6f, 0x77, 0xf6, 0xb1, 0xe3, 0x92, + 0x36, 0x5f, 0xab, 0xd2, 0x13, 0x89, 0x1f, 0xef, 0xdc, 0xe1, 0x78, 0x33, 0x79, 0xed, 0x23, 0x00, + 0xc6, 0xdf, 0xe5, 0x60, 0x3a, 0xa3, 0x95, 0xcc, 0x3e, 0x48, 0xcb, 0xee, 0x82, 0xaf, 0x42, 0x35, + 0x5d, 0xa8, 0x2f, 0xcb, 0x11, 0xec, 0xa4, 0x3c, 0x7f, 0xd4, 0x65, 0x1b, 0x50, 0x92, 0x6e, 0x2f, + 0x6f, 0xa3, 0xd4, 0x27, 0x5b, 0x34, 0xe2, 0xce, 0x12, 0xd7, 0x10, 0xbe, 0xab, 0x2b, 0x4c, 0xec, + 0x1f, 0x6f, 0xc2, 0x54, 0x48, 0x70, 0xe4, 0x7b, 0xd2, 0x83, 0xaf, 0x8c, 0xb7, 0xa9, 0x35, 0x93, + 0x13, 0x99, 0x92, 0xd8, 0x38, 0x82, 0x29, 0x01, 0x41, 0x55, 0x28, 0xbd, 0xe3, 0x1d, 0x78, 0xfe, + 0x91, 0xa7, 0x5f, 0x40, 0x75, 0x80, 0x9d, 0x80, 0xca, 0x8a, 0x53, 0x5d, 0x43, 0xf3, 0xa0, 0xa7, + 0x8b, 0xc2, 0x99, 0x85, 0xeb, 0x39, 0x84, 0xa0, 0xde, 0x24, 0xee, 0xbe, 0xe9, 0xbb, 0x2e, 0x69, + 0xdf, 0xc2, 0xf6, 0x81, 0x9e, 0x47, 0xd3, 0x50, 0x31, 0x6d, 0x51, 0x9a, 0x1a, 0xe9, 0x05, 0xb4, + 0x04, 0x73, 0xdb, 0xf8, 0xab, 0x83, 0x77, 0x3c, 0xe7, 0xfd, 0x3e, 0xf1, 0x48, 0x14, 0x71, 0x94, + 0x5e, 0x34, 0x56, 0xa0, 0x96, 0xb6, 0x59, 0x25, 0x19, 0x2d, 0xd9, 0x3f, 0xff, 0xbe, 0x06, 0x65, + 0x65, 0x9f, 0xe9, 0x6a, 0x5f, 0x2d, 0x53, 0xed, 0xab, 0x42, 0x5e, 0xb2, 0xf9, 0xe6, 0x84, 0xec, + 0xc4, 0xb7, 0x0a, 0xb3, 0xca, 0xaa, 0x19, 0xda, 0xea, 0xe2, 0xa8, 0x2b, 0x0b, 0x0e, 0x66, 0x14, + 0xe2, 0x3e, 0x19, 0xdc, 0xc3, 0x51, 0x17, 0xbd, 0x09, 0xc0, 0x9f, 0xc7, 0xd8, 0x5d, 0xec, 0x78, + 0xf2, 0x20, 0xb5, 0xb8, 0x16, 0x3f, 0xa4, 0x7d, 0x17, 0x3b, 0xf4, 0x8e, 0x1f, 0xde, 0xf6, 0xd8, + 0x12, 0x5a, 0x61, 0x94, 0x1b, 0x8c, 0xd0, 0xf8, 0x86, 0x06, 0x33, 0x43, 0xbe, 0x70, 0x92, 0x7d, + 0xac, 0xc1, 0x1c, 0xa6, 0x94, 0xf4, 0x02, 0xb6, 0x7e, 0x26, 0x3a, 0x15, 0x76, 0x32, 0x1b, 0xa3, + 0x62, 0xa5, 0x8e, 0x9a, 0xcb, 0x48, 0xa8, 0x2c, 0x8c, 0x84, 0x4a, 0x63, 0x0b, 0xaa, 0x29, 0xef, + 0x7a, 0x82, 0xbd, 0x9e, 0x58, 0x64, 0x6d, 0xbc, 0x0a, 0xfa, 0xb0, 0xa3, 0x65, 0xef, 0x42, 0xb5, + 0xa1, 0xbb, 0xd0, 0xbf, 0xd6, 0x60, 0x66, 0xc8, 0xa7, 0x4e, 0x62, 0x60, 0xf4, 0xd6, 0xe2, 0x13, + 0x50, 0x89, 0x5d, 0x90, 0x4f, 0xbc, 0xbe, 0x8e, 0x46, 0xbd, 0xd5, 0x4c, 0x88, 0x98, 0x9a, 0x79, + 0x4c, 0x74, 0xbc, 0xce, 0x70, 0xc5, 0xf7, 0x8c, 0x42, 0xa8, 0x9a, 0xef, 0x8f, 0x03, 0x8a, 0x69, + 0x47, 0x7c, 0x4a, 0x61, 0x62, 0x41, 0xfe, 0x8d, 0x06, 0xc0, 0xf6, 0xb3, 0xa2, 0x44, 0x03, 0x7d, + 0x14, 0x66, 0xb9, 0x8d, 0x1c, 0x61, 0xd7, 0x15, 0xdb, 0xdf, 0x9e, 0x9a, 0x50, 0x9d, 0x21, 0xde, + 0xc5, 0xae, 0xcb, 0xc8, 0x1f, 0x44, 0xe8, 0x55, 0x98, 0x0f, 0x42, 0xdf, 0x26, 0x51, 0x94, 0xa5, + 0x96, 0x9a, 0x96, 0xb8, 0x54, 0x83, 0x35, 0x98, 0x3f, 0x38, 0xe4, 0xbb, 0xc7, 0x6c, 0x03, 0x61, + 0xae, 0xfa, 0xc1, 0x21, 0xdb, 0x47, 0xa6, 0xe8, 0xd7, 0x61, 0x91, 0xfa, 0x14, 0xbb, 0x56, 0x18, + 0xd8, 0xa9, 0x16, 0x9e, 0x9a, 0x39, 0xe2, 0x58, 0x33, 0xb0, 0x55, 0x9b, 0x87, 0x91, 0xf1, 0xf5, + 0x1c, 0xd4, 0x92, 0xe9, 0x3c, 0x5a, 0x1f, 0x33, 0x21, 0x6f, 0xec, 0x84, 0x1e, 0x3e, 0x66, 0x42, + 0xde, 0xe3, 0x26, 0xf4, 0x30, 0x42, 0x5f, 0x80, 0xcb, 0xaa, 0x41, 0xd4, 0x8f, 0x02, 0xe2, 0xb5, + 0xb3, 0x0d, 0xc5, 0xc4, 0x1a, 0x92, 0xa6, 0x29, 0x48, 0x52, 0xed, 0xc7, 0x0a, 0x24, 0x9e, 0xde, + 0x90, 0x40, 0x1e, 0x9e, 0x24, 0x90, 0xe2, 0x63, 0x05, 0xf2, 0x25, 0x28, 0xb3, 0x43, 0x08, 0xdf, + 0x92, 0xcd, 0x43, 0x91, 0x53, 0xf0, 0xf9, 0xe7, 0x4d, 0xf1, 0xc1, 0xd6, 0x77, 0xc9, 0x21, 0x69, + 0xf3, 0xb9, 0xe6, 0xcd, 0x04, 0x10, 0x27, 0x20, 0xf6, 0x06, 0x94, 0x88, 0x19, 0xe5, 0x45, 0x02, + 0xe2, 0x16, 0x03, 0x18, 0xbf, 0xaa, 0x01, 0xb0, 0xfe, 0xa5, 0xf9, 0xbc, 0x0c, 0x45, 0xfe, 0x40, + 0x73, 0x64, 0x57, 0xa1, 0x78, 0x30, 0x05, 0x9e, 0x9d, 0x6a, 0xe3, 0x87, 0x27, 0x63, 0xe9, 0x38, + 0x9a, 0x91, 0xb5, 0x31, 0xc5, 0x23, 0xa7, 0xff, 0x84, 0x8c, 0xa1, 0x8d, 0xff, 0x28, 0x8a, 0xb7, + 0xda, 0xb1, 0xd6, 0x5f, 0x01, 0x14, 0x4f, 0x41, 0x6d, 0x2f, 0x95, 0xda, 0x67, 0x63, 0x8c, 0xdc, + 0x64, 0x46, 0xe8, 0x93, 0xb0, 0x34, 0x4a, 0x9e, 0x7e, 0x01, 0xbc, 0x30, 0xd2, 0x86, 0xef, 0x2a, + 0xaf, 0x43, 0x5d, 0x28, 0x24, 0x1e, 0x42, 0x96, 0x01, 0x73, 0x68, 0xdc, 0xfd, 0x17, 0xe1, 0x72, + 0xc8, 0x8e, 0x0c, 0xed, 0x3d, 0xab, 0xcd, 0x2f, 0x5e, 0xac, 0xe8, 0xc0, 0x09, 0x02, 0x1e, 0x1f, + 0xfb, 0x1e, 0x95, 0x76, 0x72, 0x51, 0xd2, 0x88, 0xbb, 0x99, 0xa6, 0xa0, 0xd8, 0x60, 0x04, 0xec, + 0xcc, 0xa7, 0x3a, 0x60, 0x41, 0x3e, 0xdb, 0x5a, 0x58, 0xcb, 0xa2, 0x24, 0xb8, 0x4f, 0x06, 0x99, + 0xa6, 0x6f, 0xc1, 0x15, 0xd5, 0x74, 0x8f, 0xaf, 0x12, 0xfc, 0x48, 0x6c, 0x75, 0xd9, 0x3a, 0xc0, + 0x9b, 0x17, 0x33, 0x83, 0xdf, 0x62, 0x34, 0xfc, 0x84, 0x7c, 0xcf, 0xa1, 0xa2, 0x87, 0x4f, 0x41, + 0x23, 0xdb, 0x03, 0xb7, 0x07, 0xd1, 0x58, 0x94, 0x89, 0x2c, 0xa4, 0x1b, 0x33, 0x9b, 0x15, 0x0d, + 0xdf, 0x84, 0xa5, 0x31, 0x0d, 0x99, 0x21, 0xc9, 0xed, 0xf4, 0xfc, 0x70, 0x3b, 0x66, 0x53, 0x8f, + 0x19, 0xcf, 0xc3, 0x9e, 0xaf, 0x36, 0xcd, 0x23, 0xe3, 0x3d, 0x64, 0x48, 0x16, 0xf8, 0x3a, 0x84, + 0x5a, 0x91, 0x87, 0x83, 0xa8, 0xeb, 0x53, 0xd9, 0x44, 0x3c, 0xbf, 0xd6, 0x3b, 0x84, 0x36, 0x25, + 0x42, 0x50, 0x33, 0xc1, 0xc4, 0x99, 0x35, 0x2b, 0x08, 0xfd, 0xc0, 0x8f, 0x88, 0xc5, 0x63, 0x85, + 0x68, 0x58, 0x95, 0x82, 0x51, 0xc9, 0xb6, 0x5d, 0x41, 0xc2, 0x96, 0xc9, 0x71, 0x3d, 0xb0, 0xdd, + 0x8a, 0x13, 0xf6, 0xd2, 0x3d, 0xd4, 0x86, 0x7a, 0xd8, 0x10, 0x24, 0xa3, 0x3d, 0x04, 0xbe, 0xef, + 0x5a, 0x91, 0xdd, 0x25, 0xed, 0xbe, 0x9b, 0xe1, 0x61, 0x3a, 0xe9, 0x61, 0xd7, 0xf7, 0xdd, 0xa6, + 0x24, 0x89, 0x7b, 0x30, 0x7e, 0x5d, 0x83, 0x6a, 0xaa, 0xe0, 0x8e, 0x9d, 0x79, 0x79, 0x4c, 0x10, + 0xf5, 0x79, 0xd2, 0x0d, 0x93, 0x33, 0x6f, 0x12, 0x1a, 0x4d, 0xa0, 0x49, 0xd4, 0x7f, 0x03, 0xaa, + 0x3c, 0x81, 0x21, 0x5b, 0xe5, 0x86, 0x5a, 0x25, 0xae, 0x65, 0x42, 0x14, 0xff, 0x2f, 0x2a, 0x82, + 0xc5, 0x39, 0xd0, 0xf8, 0x4f, 0x0d, 0xa6, 0x33, 0x85, 0x7f, 0x13, 0x72, 0xf2, 0x39, 0xa8, 0xa7, + 0x38, 0xb1, 0x0e, 0xd7, 0x25, 0x33, 0x0b, 0x63, 0x98, 0x79, 0xb4, 0x6e, 0xd6, 0xa2, 0xb4, 0xd7, + 0x7f, 0x0a, 0x6a, 0x3c, 0xba, 0xa8, 0x31, 0xf3, 0x43, 0xfb, 0x71, 0xbe, 0x4b, 0x94, 0x83, 0x56, + 0x8f, 0x92, 0x0f, 0x36, 0x6a, 0x8a, 0xd7, 0xa4, 0xb4, 0x74, 0x61, 0x0c, 0xbb, 0x6c, 0x54, 0x9a, + 0xfa, 0x32, 0x3e, 0x28, 0x41, 0x35, 0xd5, 0x33, 0x7a, 0x1d, 0x16, 0x23, 0xea, 0x87, 0xc4, 0xda, + 0xc3, 0xd4, 0xee, 0xa6, 0xb5, 0x29, 0xe2, 0xcf, 0x1c, 0xc7, 0xf2, 0xbb, 0xc4, 0xc4, 0x12, 0xde, + 0xe4, 0x11, 0x88, 0x9b, 0x60, 0x24, 0xd6, 0x91, 0xb8, 0x95, 0x08, 0x29, 0xf3, 0x12, 0xdd, 0xe4, + 0x4b, 0x88, 0x6a, 0xb6, 0x0a, 0xb3, 0x01, 0x8b, 0x32, 0xfc, 0x51, 0x74, 0x47, 0x36, 0x90, 0xdb, + 0x3f, 0x89, 0xd8, 0xf6, 0x3b, 0x82, 0x76, 0x03, 0xae, 0x86, 0x78, 0x9f, 0x5a, 0xed, 0x3d, 0x4b, + 0x48, 0xc9, 0x25, 0xb8, 0x4d, 0xc2, 0xf4, 0x50, 0x22, 0x94, 0x2c, 0x33, 0xb2, 0xcd, 0x3d, 0x3e, + 0xa7, 0x6d, 0x4e, 0x93, 0x0c, 0xb8, 0x0e, 0x8b, 0xaa, 0x13, 0x95, 0x3e, 0x93, 0x6d, 0xe5, 0x12, + 0x24, 0xda, 0x36, 0x45, 0x2a, 0x4d, 0xb4, 0xf9, 0x02, 0x5c, 0xce, 0x0e, 0xdc, 0x23, 0x3d, 0xca, + 0x0e, 0x8f, 0xb2, 0xa5, 0x08, 0x22, 0x8d, 0xd4, 0xa8, 0x0f, 0x24, 0x81, 0x68, 0x7f, 0x03, 0xe4, + 0xb9, 0x27, 0x35, 0x9a, 0x08, 0x20, 0x32, 0x25, 0x13, 0x8f, 0xf4, 0x3a, 0x2c, 0xe2, 0x20, 0x70, + 0x07, 0xa3, 0xa2, 0x17, 0x61, 0x7c, 0x8e, 0x63, 0x87, 0x44, 0xff, 0x12, 0xcc, 0x88, 0x46, 0x49, + 0xef, 0x15, 0xf9, 0x86, 0x91, 0x81, 0x47, 0x3b, 0xef, 0xf5, 0x29, 0x39, 0x16, 0x0f, 0x1e, 0xd3, + 0x21, 0x46, 0x74, 0xfe, 0x80, 0x21, 0xd9, 0x19, 0x3a, 0xf6, 0x70, 0xd1, 0xe8, 0x71, 0x22, 0x97, + 0x51, 0x86, 0x13, 0x8d, 0x95, 0xf8, 0x6b, 0xb0, 0x90, 0xee, 0xe1, 0x08, 0xbb, 0x99, 0xe8, 0x82, + 0x92, 0x96, 0xef, 0x62, 0x57, 0x34, 0xf9, 0x1c, 0x2c, 0xa7, 0x9b, 0x0c, 0x89, 0x5b, 0xc4, 0x94, + 0xa5, 0xa4, 0xdd, 0x88, 0xb4, 0xdd, 0x61, 0xe9, 0x89, 0xb4, 0x62, 0xdd, 0xcd, 0x0a, 0xee, 0x45, + 0x98, 0x56, 0xdb, 0x1f, 0x41, 0x26, 0xd3, 0x89, 0x12, 0x28, 0x88, 0xd8, 0x12, 0xd9, 0x0d, 0x7d, + 0x4a, 0xe3, 0xf1, 0x75, 0xb9, 0x44, 0x4a, 0xa8, 0x20, 0xfb, 0x39, 0xb8, 0x34, 0xfc, 0x40, 0x30, + 0xcd, 0xc0, 0xac, 0xdc, 0x49, 0x0d, 0x3f, 0x71, 0x57, 0x61, 0xf0, 0x3d, 0x98, 0x12, 0x17, 0xe8, + 0x49, 0x1d, 0xaf, 0xf6, 0x84, 0x4a, 0xe6, 0x53, 0xd6, 0x99, 0x19, 0x1f, 0x68, 0x50, 0x56, 0x4f, + 0x80, 0xd0, 0x25, 0xc8, 0xf9, 0x81, 0x7c, 0x1e, 0x9f, 0xc9, 0x1f, 0xe5, 0xfc, 0xe0, 0xd4, 0x95, + 0x6b, 0x99, 0xed, 0x7f, 0xe1, 0x14, 0xdb, 0x7f, 0xe3, 0x27, 0x39, 0xa8, 0x3c, 0x38, 0xb4, 0x6d, + 0xae, 0x2e, 0x74, 0x35, 0xf3, 0x4a, 0x3f, 0xc3, 0x86, 0x78, 0x8b, 0x7f, 0xc2, 0x1d, 0xd6, 0xa5, + 0x91, 0x17, 0xe9, 0xa9, 0x97, 0x6d, 0x57, 0xa1, 0x1a, 0x75, 0xfd, 0x90, 0x5a, 0xa9, 0x37, 0xe9, + 0x26, 0x70, 0x10, 0xff, 0xfd, 0x03, 0xb6, 0x4f, 0xea, 0xe2, 0xc8, 0xf2, 0x0f, 0x49, 0xe8, 0x62, + 0xbe, 0x05, 0x51, 0x2f, 0x44, 0x65, 0x75, 0xd9, 0x42, 0x17, 0x47, 0x3b, 0x31, 0x56, 0x3d, 0xd3, + 0x40, 0x2b, 0x50, 0x63, 0xed, 0x3a, 0xb6, 0xb5, 0xcf, 0x7f, 0x09, 0x40, 0x54, 0x57, 0x40, 0x17, + 0x47, 0x77, 0xed, 0x3b, 0xfc, 0xa7, 0x00, 0x2e, 0x42, 0x39, 0xc6, 0x0a, 0xdf, 0x2e, 0x75, 0x24, + 0xea, 0x23, 0x50, 0xe7, 0x79, 0x2e, 0xbb, 0x8b, 0xbd, 0x0e, 0x4f, 0xc6, 0x09, 0x67, 0xae, 0x31, + 0xe8, 0x06, 0x07, 0xf2, 0xdc, 0xc0, 0x52, 0xbc, 0x71, 0x53, 0x99, 0x31, 0xd1, 0x42, 0x7a, 0xf3, + 0xbc, 0x42, 0x8b, 0xb4, 0x98, 0x68, 0x68, 0x7c, 0x5e, 0x08, 0x56, 0x4c, 0xef, 0x84, 0x43, 0xdc, + 0xd8, 0x9f, 0x37, 0x30, 0xbe, 0x93, 0x87, 0x32, 0x6b, 0xce, 0xb3, 0x99, 0xcf, 0xa2, 0x96, 0x54, + 0x86, 0x24, 0x9f, 0xcd, 0x90, 0x3c, 0x51, 0x27, 0xa3, 0x75, 0x8f, 0xa7, 0xf9, 0x39, 0x8d, 0x74, + 0xaa, 0xb4, 0x34, 0x9c, 0x2a, 0x3d, 0x6d, 0x4e, 0x73, 0x28, 0x5f, 0x59, 0x19, 0xcd, 0x57, 0x5e, + 0x85, 0x6a, 0xfc, 0xc0, 0x98, 0x8a, 0x8c, 0x66, 0xc1, 0x04, 0x05, 0x6a, 0x45, 0x63, 0x94, 0x5b, + 0x7d, 0x3a, 0xe5, 0xd6, 0x4e, 0x50, 0xee, 0xd7, 0x34, 0xa1, 0x1e, 0x7e, 0xf8, 0x51, 0x27, 0x0e, + 0x6d, 0xcc, 0x3d, 0x1a, 0xbf, 0xe7, 0x17, 0x27, 0x8e, 0x55, 0x98, 0xe2, 0x51, 0x53, 0x5d, 0xe8, + 0xa3, 0x0c, 0x21, 0x77, 0x40, 0x53, 0x52, 0x30, 0x5a, 0xf9, 0x1b, 0x0d, 0xf9, 0x31, 0xb4, 0x5c, + 0x3d, 0xea, 0x77, 0x1b, 0x8c, 0xd7, 0xa1, 0x24, 0x5f, 0x75, 0x70, 0x8d, 0x1d, 0x7b, 0xd2, 0xc2, + 0xd8, 0xbf, 0x68, 0x11, 0xa6, 0x22, 0xfe, 0xc2, 0x59, 0xda, 0x85, 0xfc, 0x32, 0xde, 0xe2, 0x19, + 0x5b, 0x7e, 0xb5, 0x9c, 0xad, 0x66, 0xd0, 0x1e, 0x5f, 0xcb, 0x93, 0xcb, 0xd4, 0xf2, 0xfc, 0xa5, + 0x06, 0x20, 0x56, 0x14, 0x3e, 0xf4, 0x89, 0x37, 0x83, 0x4b, 0x50, 0x0a, 0x08, 0x09, 0x19, 0x4a, + 0xb2, 0xc1, 0x3e, 0xb7, 0xda, 0xf1, 0xc5, 0x5e, 0x3e, 0x75, 0xb1, 0x37, 0x7c, 0x8d, 0x58, 0x38, + 0xe5, 0x35, 0xe2, 0x6b, 0xf2, 0x3c, 0xc9, 0x66, 0x48, 0x64, 0x8a, 0x37, 0x91, 0x1b, 0xdb, 0xcc, + 0x37, 0x19, 0x46, 0x9c, 0x31, 0xf9, 0xbf, 0xc6, 0x16, 0x54, 0x62, 0xf8, 0xe8, 0x1d, 0x96, 0x36, + 0xfe, 0x0e, 0x8b, 0x3f, 0x16, 0xa1, 0x89, 0x40, 0xf1, 0x3e, 0x69, 0x45, 0x46, 0x13, 0x90, 0x28, + 0xbe, 0xe1, 0x22, 0x51, 0x17, 0x45, 0xaf, 0x24, 0xe5, 0x05, 0xe2, 0xf1, 0x67, 0xb2, 0x4d, 0x4d, + 0x64, 0x17, 0xd7, 0x18, 0xa0, 0x3a, 0xe4, 0xe2, 0x8e, 0x73, 0x34, 0x32, 0xbe, 0x08, 0x73, 0x99, + 0x4e, 0xe5, 0x9d, 0x70, 0x23, 0xdb, 0x6b, 0xe1, 0xf1, 0x1d, 0x6c, 0x02, 0x6a, 0xb2, 0x3d, 0x61, + 0x93, 0x31, 0xd9, 0x54, 0x5c, 0xad, 0x41, 0x85, 0x1d, 0xf6, 0x78, 0x45, 0xc1, 0xb8, 0xd5, 0x4c, + 0x54, 0x1c, 0x94, 0x0f, 0xe4, 0x7f, 0xc6, 0x1a, 0xcc, 0x65, 0x7a, 0x91, 0x6c, 0xa4, 0x64, 0xa1, + 0x65, 0x64, 0x61, 0xf3, 0x2a, 0xbd, 0xbb, 0x84, 0x19, 0x50, 0xab, 0xb5, 0x7d, 0x3e, 0x15, 0xf7, + 0x5f, 0xd7, 0x78, 0xe5, 0x5c, 0x6a, 0x94, 0x73, 0xb8, 0x31, 0x4f, 0x9e, 0xea, 0xf3, 0xf8, 0x77, + 0x62, 0xcd, 0xfd, 0x3f, 0x88, 0xe2, 0xf4, 0x8d, 0x9b, 0xcd, 0xf3, 0x2c, 0x4e, 0xff, 0x38, 0xa0, + 0x20, 0x24, 0x87, 0x8e, 0xdf, 0x8f, 0x52, 0xbf, 0xaa, 0x20, 0x78, 0xd1, 0x15, 0x26, 0xfe, 0x4d, + 0x85, 0xeb, 0x50, 0x8f, 0xa9, 0x45, 0x67, 0xe2, 0x51, 0xde, 0xb4, 0x82, 0x3e, 0x4a, 0x55, 0xbc, + 0x4f, 0x0d, 0x57, 0xbc, 0x97, 0xe2, 0x99, 0x1b, 0x3f, 0x10, 0x15, 0xba, 0x7c, 0x72, 0x67, 0x2d, + 0xe7, 0x06, 0x94, 0xa2, 0xbe, 0x6d, 0x13, 0x59, 0x6b, 0x52, 0x36, 0xd5, 0xe7, 0xb9, 0x4c, 0xd6, + 0xd8, 0x84, 0xc5, 0xbb, 0x84, 0xaa, 0x5d, 0x1e, 0x77, 0xc0, 0xa7, 0xd7, 0x97, 0xf1, 0x4d, 0x0d, + 0x96, 0x46, 0xba, 0x39, 0x6b, 0xc9, 0x7c, 0x82, 0x05, 0x5f, 0xca, 0x97, 0xc0, 0xfc, 0x89, 0x49, + 0x75, 0x45, 0x66, 0xdc, 0x85, 0x8b, 0x29, 0xae, 0xee, 0x39, 0xec, 0x44, 0x38, 0x49, 0x45, 0x8e, + 0xf1, 0x2d, 0x0d, 0x96, 0xc7, 0xf5, 0xf4, 0xd3, 0x9f, 0xe2, 0x5f, 0x89, 0x9a, 0xe7, 0x0d, 0x5f, + 0x9e, 0x06, 0xfc, 0x70, 0xc2, 0x02, 0x56, 0xdb, 0x0f, 0x42, 0x71, 0xaf, 0x2d, 0x38, 0x2a, 0x33, + 0x00, 0xbf, 0xce, 0xe6, 0xe7, 0xc2, 0x20, 0x54, 0xc9, 0x37, 0x2b, 0x24, 0xef, 0xcb, 0xc8, 0x53, + 0x67, 0xf0, 0xe4, 0xd5, 0x55, 0xaa, 0x72, 0xab, 0xf0, 0xa4, 0x6a, 0x62, 0x24, 0x33, 0x8e, 0xc2, + 0x28, 0x45, 0x7a, 0xb1, 0xcf, 0x6b, 0xa6, 0x33, 0x53, 0x39, 0x6b, 0x01, 0xa3, 0x54, 0xa2, 0x53, + 0x0d, 0xfb, 0x5d, 0xf1, 0x96, 0x84, 0xaf, 0x2d, 0x51, 0xbf, 0x37, 0x89, 0xfc, 0x3e, 0x0d, 0x15, + 0xec, 0x76, 0xfc, 0xd0, 0xa1, 0xdd, 0x1e, 0x1f, 0xb0, 0xbe, 0xbe, 0x9c, 0x50, 0xcb, 0x8e, 0x6f, + 0x2a, 0x0a, 0x33, 0x21, 0x7e, 0x9a, 0x62, 0xb7, 0x3f, 0x11, 0xf5, 0xde, 0x09, 0x9f, 0x67, 0x2d, + 0x9c, 0x65, 0x28, 0xdb, 0xb2, 0xf3, 0xf8, 0xcc, 0x22, 0xbf, 0x99, 0x85, 0x88, 0x14, 0xec, 0xc1, + 0x61, 0xfc, 0x53, 0x1d, 0x1c, 0x70, 0xff, 0x90, 0x6f, 0x3f, 0x05, 0x52, 0x64, 0xaf, 0xc5, 0x1e, + 0x19, 0x38, 0x48, 0xa4, 0xaf, 0xbf, 0x97, 0x87, 0xda, 0x86, 0xdf, 0x0b, 0xb0, 0x4d, 0x05, 0x03, + 0xef, 0xc1, 0x02, 0x09, 0x43, 0xcb, 0xf1, 0x0e, 0xb1, 0xeb, 0xb4, 0xad, 0xec, 0x8e, 0xab, 0xba, + 0xfe, 0x91, 0xf4, 0xdd, 0x6c, 0xdc, 0x6a, 0x4b, 0x50, 0x37, 0xe5, 0x6e, 0xec, 0xde, 0x05, 0x13, + 0x91, 0x70, 0x18, 0x8a, 0x5c, 0xb8, 0xcc, 0xba, 0x0e, 0x64, 0x7d, 0xa9, 0x25, 0xcf, 0xe4, 0x71, + 0xc0, 0x14, 0x89, 0xae, 0xd5, 0xb1, 0x23, 0xa8, 0xa2, 0xd4, 0x16, 0x3f, 0xa7, 0xcb, 0x50, 0x7a, + 0xef, 0x82, 0xd9, 0x20, 0xe1, 0x78, 0x1c, 0xb2, 0x60, 0x89, 0x8d, 0x66, 0x8b, 0x4e, 0x2c, 0xc7, + 0xb3, 0x82, 0xd0, 0xef, 0x84, 0x24, 0x8a, 0x64, 0x5a, 0xec, 0xa5, 0xb1, 0x03, 0xc9, 0xff, 0xb7, + 0xbc, 0x5d, 0x49, 0x7d, 0xef, 0x82, 0x39, 0x4f, 0xc2, 0x51, 0x38, 0xda, 0x87, 0x65, 0x36, 0x00, + 0xf5, 0x7d, 0xab, 0x87, 0xbd, 0x81, 0x15, 0x10, 0xaf, 0xed, 0x78, 0x1d, 0x8b, 0xe2, 0xe8, 0x20, + 0x92, 0xdb, 0xc1, 0x1b, 0x63, 0xc7, 0x68, 0xf9, 0xfe, 0x03, 0xec, 0x0d, 0x76, 0x45, 0x83, 0x16, + 0xa3, 0xbf, 0x77, 0xc1, 0x5c, 0x24, 0xe1, 0x38, 0xcc, 0xad, 0x92, 0x34, 0x09, 0xe3, 0x0a, 0x5c, + 0x3a, 0x41, 0xe8, 0xc6, 0x8b, 0x70, 0xed, 0x89, 0x12, 0x33, 0xae, 0xc2, 0x95, 0x13, 0x67, 0x6b, + 0x5c, 0x83, 0xab, 0x4f, 0x60, 0x95, 0xed, 0x20, 0xea, 0x92, 0x46, 0xb9, 0xe4, 0x89, 0x7b, 0xf3, + 0x55, 0x98, 0x1d, 0xd2, 0xb9, 0xa3, 0xee, 0x59, 0x66, 0x82, 0x34, 0x97, 0x5b, 0x6d, 0x9e, 0x7c, + 0xf1, 0x3b, 0x59, 0x52, 0x71, 0xe7, 0x52, 0x97, 0x70, 0x45, 0x39, 0x54, 0xdc, 0x54, 0x3a, 0x5d, + 0x71, 0xd3, 0x50, 0x55, 0x4f, 0x79, 0xb8, 0xaa, 0xc7, 0xf8, 0x0b, 0x71, 0xd9, 0x2b, 0x26, 0x27, + 0xfd, 0xf8, 0x63, 0xd9, 0x94, 0xca, 0xc2, 0x58, 0xa5, 0x2a, 0x5f, 0x7d, 0x11, 0xa6, 0xd9, 0x51, + 0x3f, 0x24, 0x3d, 0xec, 0x78, 0x8e, 0xd7, 0x91, 0x05, 0xeb, 0xec, 0xfc, 0x6f, 0x2a, 0x18, 0x5a, + 0xe3, 0xf5, 0x0f, 0xac, 0x2d, 0x49, 0xfb, 0x98, 0x08, 0x7e, 0xb3, 0x31, 0xaa, 0x99, 0x12, 0x61, + 0x42, 0x9f, 0x7d, 0xd8, 0x3a, 0x13, 0x23, 0x6e, 0xf3, 0x13, 0xcf, 0xea, 0xdb, 0x70, 0xf1, 0xb1, + 0xbf, 0x84, 0x88, 0xe6, 0x41, 0x4f, 0xbe, 0x1e, 0xfa, 0x61, 0x0f, 0xbb, 0xfa, 0x05, 0xb4, 0x04, + 0x73, 0x09, 0xf4, 0x8e, 0x1f, 0xda, 0xbc, 0x88, 0x5d, 0xd7, 0x56, 0x5d, 0xb8, 0x7c, 0xd2, 0x4f, + 0x1f, 0xb2, 0xee, 0x64, 0x89, 0x78, 0xdf, 0xa5, 0x71, 0x77, 0x2b, 0x70, 0x39, 0x81, 0x6e, 0x8f, + 0xfc, 0x82, 0xa1, 0x28, 0x35, 0x48, 0x28, 0xc4, 0x0d, 0xb2, 0x9e, 0x5b, 0x7d, 0x19, 0x20, 0x51, + 0x1b, 0x9a, 0x82, 0xdc, 0xa3, 0xd7, 0xf4, 0x0b, 0xa8, 0x02, 0xc5, 0x47, 0xaf, 0xb5, 0x5a, 0xdb, + 0xba, 0xc6, 0x41, 0xeb, 0x7a, 0x6e, 0xf5, 0x63, 0x00, 0x49, 0xed, 0x24, 0x02, 0x98, 0x8a, 0x87, + 0x2e, 0x41, 0x7e, 0xdb, 0x3f, 0xd2, 0x35, 0x54, 0x86, 0xc2, 0x3d, 0xa7, 0xd3, 0xd5, 0x73, 0xab, + 0xaf, 0x42, 0x3d, 0x5b, 0x30, 0xc9, 0xba, 0x69, 0x6e, 0xe9, 0x17, 0xd8, 0x5f, 0x73, 0x43, 0xd7, + 0x78, 0x39, 0xc3, 0x86, 0x28, 0x67, 0x68, 0xea, 0xb9, 0xd5, 0x47, 0x50, 0x4d, 0x15, 0xdf, 0x31, + 0x5e, 0x1f, 0xfa, 0xf4, 0xa6, 0xeb, 0xfa, 0x47, 0xa4, 0xbd, 0xe3, 0x31, 0xb0, 0x10, 0x59, 0x0c, + 0xba, 0xe9, 0xf6, 0xfc, 0x88, 0x72, 0x84, 0x86, 0x1a, 0x30, 0x9f, 0x42, 0xf0, 0xe2, 0x07, 0x8e, + 0xc9, 0xad, 0xda, 0x90, 0xdb, 0x09, 0x18, 0x87, 0xbb, 0x7d, 0x2a, 0x58, 0xdd, 0x24, 0xae, 0x60, + 0x95, 0x8b, 0x3b, 0x87, 0x6a, 0x50, 0x56, 0x29, 0x23, 0x3d, 0xcf, 0xe6, 0xb5, 0xe5, 0x45, 0x24, + 0xa4, 0x7a, 0x01, 0xcd, 0xc1, 0xcc, 0x90, 0x22, 0xf4, 0x22, 0x42, 0x50, 0xe7, 0x5c, 0x2b, 0xef, + 0x8e, 0xf4, 0xa9, 0xd5, 0x35, 0xa8, 0xc4, 0x19, 0x34, 0xd6, 0xf3, 0x43, 0xdf, 0x23, 0x42, 0x88, + 0x9c, 0x44, 0xd7, 0xd8, 0x20, 0xaa, 0x81, 0x90, 0x4e, 0xf6, 0xb7, 0x6d, 0x19, 0x5f, 0x3b, 0xfb, + 0xfb, 0xfa, 0x05, 0xd6, 0xfa, 0x0e, 0xe6, 0x4d, 0x00, 0xa6, 0x9a, 0x34, 0x64, 0xaa, 0xcb, 0xad, + 0x7e, 0x5b, 0x83, 0x29, 0xf9, 0x03, 0xb7, 0xbc, 0x27, 0xf1, 0xbf, 0x7e, 0x01, 0x2d, 0xc0, 0x6c, + 0xab, 0xb5, 0x2d, 0x0a, 0x24, 0xe2, 0x59, 0x70, 0x79, 0xf0, 0x6c, 0xb0, 0x1c, 0x32, 0xc6, 0xe4, + 0x58, 0x83, 0x07, 0x71, 0x45, 0x43, 0x73, 0xb7, 0x1f, 0x75, 0x49, 0x5b, 0xcf, 0x33, 0xeb, 0x89, + 0xfb, 0x19, 0xf3, 0x23, 0x85, 0x7a, 0x01, 0x5d, 0x84, 0x85, 0x74, 0x97, 0x9b, 0xfe, 0x43, 0x9f, + 0x76, 0x1d, 0xaf, 0xa3, 0x17, 0x57, 0xaf, 0x43, 0xe9, 0xf6, 0x31, 0x0d, 0xf1, 0x4e, 0x20, 0x26, + 0xef, 0x07, 0xfa, 0x05, 0xa4, 0x43, 0x8d, 0x9d, 0x9f, 0x77, 0xdc, 0x36, 0xdf, 0x5a, 0xeb, 0xda, + 0xaa, 0x01, 0xb3, 0x23, 0x8b, 0x3f, 0x33, 0x83, 0x8d, 0xd0, 0xfe, 0xe4, 0x1b, 0xd6, 0xcf, 0xfb, + 0xa1, 0x7e, 0xe1, 0xd6, 0x4b, 0x7f, 0xff, 0x07, 0x65, 0xed, 0x07, 0x1f, 0xbe, 0xa0, 0xfd, 0xf8, + 0xc3, 0x17, 0xb4, 0x7f, 0xfa, 0xf0, 0x05, 0xed, 0x77, 0xff, 0xe5, 0x85, 0x0b, 0xa0, 0xfb, 0x61, + 0x67, 0x8d, 0x3a, 0x07, 0x87, 0x6b, 0x07, 0x87, 0xfc, 0xa7, 0xd6, 0xf7, 0xa6, 0xf8, 0x9f, 0xd7, + 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0xeb, 0xa8, 0x63, 0xbd, 0xee, 0x5d, 0x00, 0x00, } func (m *GetRequest) Marshal() (dAtA []byte, err error) { @@ -15449,6 +15461,11 @@ func (m *LockInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.DurationToLastUpdateMs != 0 { + i = encodeVarintKvrpcpb(dAtA, i, uint64(m.DurationToLastUpdateMs)) + i-- + dAtA[i] = 0x58 + } if len(m.Secondaries) > 0 { for iNdEx := len(m.Secondaries) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.Secondaries[iNdEx]) @@ -20516,6 +20533,9 @@ func (m *LockInfo) Size() (n int) { n += 1 + l + sovKvrpcpb(uint64(l)) } } + if m.DurationToLastUpdateMs != 0 { + n += 1 + sovKvrpcpb(uint64(m.DurationToLastUpdateMs)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -35346,6 +35366,25 @@ func (m *LockInfo) Unmarshal(dAtA []byte) error { m.Secondaries = append(m.Secondaries, make([]byte, postIndex-iNdEx)) copy(m.Secondaries[len(m.Secondaries)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DurationToLastUpdateMs", wireType) + } + m.DurationToLastUpdateMs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DurationToLastUpdateMs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipKvrpcpb(dAtA[iNdEx:]) diff --git a/proto/kvrpcpb.proto b/proto/kvrpcpb.proto index 5366252..6b185e0 100644 --- a/proto/kvrpcpb.proto +++ b/proto/kvrpcpb.proto @@ -918,6 +918,10 @@ message LockInfo { bool use_async_commit = 8; uint64 min_commit_ts = 9; repeated bytes secondaries = 10; + // The time elapsed since last update of lock wait info when waiting. + // It's used in timeout errors. 0 means unknown or not applicable. + // It can be used to help the client decide whether to try resolving the lock. + uint64 duration_to_last_update_ms = 11; } message KeyError { diff --git a/scripts/proto.lock b/scripts/proto.lock index 63224f2..420cdf4 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -9267,6 +9267,11 @@ "name": "secondaries", "type": "bytes", "is_repeated": true + }, + { + "id": 11, + "name": "duration_to_last_update_ms", + "type": "uint64" } ] }, -- Gitee From 9b777f1e8092d53e05c1cd9524df746431099a09 Mon Sep 17 00:00:00 2001 From: disksing Date: Fri, 31 Mar 2023 15:23:23 +0800 Subject: [PATCH 33/44] update golang.org/x/net to v0.7.0 (#1095) Signed-off-by: disksing --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 4fa0d21..f0b25b9 100644 --- a/go.mod +++ b/go.mod @@ -13,9 +13,9 @@ require ( github.com/ghodss/yaml v1.0.0 // indirect github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect - golang.org/x/net v0.2.0 // indirect - golang.org/x/sys v0.2.0 // indirect - golang.org/x/text v0.4.0 // indirect + golang.org/x/net v0.7.0 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/text v0.7.0 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/yaml.v2 v2.2.3 // indirect ) diff --git a/go.sum b/go.sum index 3141179..a9ece2b 100644 --- a/go.sum +++ b/go.sum @@ -56,8 +56,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU= -golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -71,12 +71,12 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -- Gitee From e166ae588106b9deef7cc399a7e73f325361c0d2 Mon Sep 17 00:00:00 2001 From: Lloyd-Pottiger <60744015+Lloyd-Pottiger@users.noreply.github.com> Date: Mon, 3 Apr 2023 13:16:50 +0800 Subject: [PATCH 34/44] Support return TiFlash system table by grpc (#1094) --- pkg/kvrpcpb/kvrpcpb.pb.go | 1184 ++++++++++++++++++++++++------------- pkg/tikvpb/tikvpb.pb.go | 350 ++++++----- pkg/tracepb/tracepb.pb.go | 1 - proto/kvrpcpb.proto | 8 + proto/tikvpb.proto | 3 + scripts/check.sh | 5 + scripts/proto.lock | 35 ++ 7 files changed, 1019 insertions(+), 567 deletions(-) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index 2282a1d..6089c45 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -14,6 +14,7 @@ import ( deadlock "github.com/pingcap/kvproto/pkg/deadlock" errorpb "github.com/pingcap/kvproto/pkg/errorpb" metapb "github.com/pingcap/kvproto/pkg/metapb" + github_com_pingcap_kvproto_pkg_sharedbytes "github.com/pingcap/kvproto/pkg/sharedbytes" tracepb "github.com/pingcap/kvproto/pkg/tracepb" ) @@ -1888,10 +1889,9 @@ type CheckTxnStatusResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Error *KeyError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Three kinds of transaction status: - // - // locked: lock_ttl > 0 - // committed: commit_version > 0 - // rollbacked: lock_ttl = 0 && commit_version = 0 + // locked: lock_ttl > 0 + // committed: commit_version > 0 + // rollbacked: lock_ttl = 0 && commit_version = 0 LockTtl uint64 `protobuf:"varint,3,opt,name=lock_ttl,json=lockTtl,proto3" json:"lock_ttl,omitempty"` CommitVersion uint64 `protobuf:"varint,4,opt,name=commit_version,json=commitVersion,proto3" json:"commit_version,omitempty"` // The action performed by TiKV (and why if the action is to rollback). @@ -9485,7 +9485,6 @@ func (m *RawChecksumResponse) GetTotalBytes() uint64 { type CompactError struct { // Types that are valid to be assigned to Error: - // // *CompactError_ErrInvalidStartKey // *CompactError_ErrPhysicalTableNotExist // *CompactError_ErrCompactInProgress @@ -9922,6 +9921,93 @@ func (m *CompactResponse) GetCompactedEndKey() []byte { return nil } +type TiFlashSystemTableRequest struct { + Sql string `protobuf:"bytes,1,opt,name=sql,proto3" json:"sql,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TiFlashSystemTableRequest) Reset() { *m = TiFlashSystemTableRequest{} } +func (m *TiFlashSystemTableRequest) String() string { return proto.CompactTextString(m) } +func (*TiFlashSystemTableRequest) ProtoMessage() {} +func (*TiFlashSystemTableRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_1afe832be69693c7, []int{126} +} +func (m *TiFlashSystemTableRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TiFlashSystemTableRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TiFlashSystemTableRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TiFlashSystemTableRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TiFlashSystemTableRequest.Merge(m, src) +} +func (m *TiFlashSystemTableRequest) XXX_Size() int { + return m.Size() +} +func (m *TiFlashSystemTableRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TiFlashSystemTableRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TiFlashSystemTableRequest proto.InternalMessageInfo + +func (m *TiFlashSystemTableRequest) GetSql() string { + if m != nil { + return m.Sql + } + return "" +} + +type TiFlashSystemTableResponse struct { + Data github_com_pingcap_kvproto_pkg_sharedbytes.SharedBytes `protobuf:"bytes,1,opt,name=data,proto3,customtype=github.com/pingcap/kvproto/pkg/sharedbytes.SharedBytes" json:"data"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TiFlashSystemTableResponse) Reset() { *m = TiFlashSystemTableResponse{} } +func (m *TiFlashSystemTableResponse) String() string { return proto.CompactTextString(m) } +func (*TiFlashSystemTableResponse) ProtoMessage() {} +func (*TiFlashSystemTableResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_1afe832be69693c7, []int{127} +} +func (m *TiFlashSystemTableResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TiFlashSystemTableResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TiFlashSystemTableResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TiFlashSystemTableResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TiFlashSystemTableResponse.Merge(m, src) +} +func (m *TiFlashSystemTableResponse) XXX_Size() int { + return m.Size() +} +func (m *TiFlashSystemTableResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TiFlashSystemTableResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TiFlashSystemTableResponse proto.InternalMessageInfo + func init() { proto.RegisterEnum("kvrpcpb.PessimisticLockWakeUpMode", PessimisticLockWakeUpMode_name, PessimisticLockWakeUpMode_value) proto.RegisterEnum("kvrpcpb.PessimisticLockKeyResultType", PessimisticLockKeyResultType_name, PessimisticLockKeyResultType_value) @@ -10063,417 +10149,425 @@ func init() { proto.RegisterType((*CompactErrorTooManyPendingTasks)(nil), "kvrpcpb.CompactErrorTooManyPendingTasks") proto.RegisterType((*CompactRequest)(nil), "kvrpcpb.CompactRequest") proto.RegisterType((*CompactResponse)(nil), "kvrpcpb.CompactResponse") + proto.RegisterType((*TiFlashSystemTableRequest)(nil), "kvrpcpb.TiFlashSystemTableRequest") + proto.RegisterType((*TiFlashSystemTableResponse)(nil), "kvrpcpb.TiFlashSystemTableResponse") } func init() { proto.RegisterFile("kvrpcpb.proto", fileDescriptor_1afe832be69693c7) } var fileDescriptor_1afe832be69693c7 = []byte{ - // 6478 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x3c, 0x4b, 0x6c, 0x1c, 0xc9, - 0x75, 0xea, 0xf9, 0x70, 0x66, 0xde, 0x0c, 0x87, 0xcd, 0xe2, 0x6f, 0x44, 0x49, 0x2b, 0xaa, 0xd7, - 0xda, 0x95, 0x69, 0x2f, 0xd7, 0xcb, 0xdd, 0xf5, 0x3f, 0xf6, 0x4a, 0xa4, 0x3e, 0x5c, 0x51, 0x22, - 0xd1, 0x33, 0xab, 0xcd, 0x22, 0xb1, 0xdb, 0xc5, 0x9e, 0xe2, 0x4c, 0x83, 0x3d, 0xdd, 0xbd, 0xdd, - 0x35, 0x24, 0xc7, 0x41, 0x80, 0x2c, 0xf2, 0x01, 0x0c, 0x04, 0x4e, 0x62, 0x18, 0x70, 0x00, 0x1b, - 0x01, 0x72, 0x30, 0x10, 0xe7, 0x16, 0xe4, 0x92, 0xcf, 0x21, 0x08, 0xe0, 0x83, 0x13, 0xc4, 0xb0, - 0x81, 0x20, 0x70, 0x90, 0x5c, 0x92, 0x0d, 0x90, 0x73, 0x2e, 0x41, 0x92, 0x43, 0x90, 0xa0, 0x7e, - 0xfd, 0x99, 0x19, 0x51, 0xd4, 0x88, 0x94, 0x9d, 0x9c, 0xc8, 0x7e, 0xef, 0x55, 0xd5, 0xab, 0xf7, - 0xab, 0xaa, 0x57, 0xaf, 0x06, 0xa6, 0x0f, 0x0e, 0xc3, 0xc0, 0x0e, 0xf6, 0xd6, 0x82, 0xd0, 0xa7, - 0x3e, 0x2a, 0xc9, 0xcf, 0xe5, 0x5a, 0x8f, 0x50, 0xac, 0xc0, 0xcb, 0xd3, 0x24, 0x0c, 0xfd, 0x30, - 0xfe, 0x9c, 0xef, 0xf8, 0x1d, 0x9f, 0xff, 0xfb, 0x2a, 0xfb, 0x4f, 0x42, 0x67, 0xc2, 0x7e, 0x44, - 0xf9, 0xbf, 0x12, 0x50, 0x6f, 0x13, 0xdc, 0x76, 0x7d, 0xfb, 0x40, 0xf5, 0x42, 0x43, 0x6c, 0x13, - 0xd5, 0x8b, 0xd1, 0x06, 0xb8, 0x4b, 0xa8, 0x49, 0xde, 0xef, 0x93, 0x88, 0xa2, 0x55, 0x28, 0xd9, - 0xbe, 0x47, 0xc9, 0x31, 0x6d, 0x68, 0x2b, 0xda, 0x8d, 0xea, 0xba, 0xbe, 0xa6, 0x58, 0xdb, 0x10, - 0x70, 0x53, 0x11, 0x20, 0x1d, 0xf2, 0x07, 0x64, 0xd0, 0xc8, 0xad, 0x68, 0x37, 0x6a, 0x26, 0xfb, - 0x17, 0x35, 0xa0, 0x74, 0x48, 0xc2, 0xc8, 0xf1, 0xbd, 0x46, 0x7e, 0x45, 0xbb, 0x51, 0x30, 0xd5, - 0xa7, 0xf1, 0xa1, 0x06, 0x55, 0x3e, 0x4c, 0x14, 0xf8, 0x5e, 0x44, 0xd0, 0x6b, 0x50, 0x0b, 0x49, - 0xc7, 0xf1, 0x3d, 0x8b, 0xcf, 0x49, 0x0e, 0x56, 0x5f, 0x53, 0x33, 0xbc, 0xcd, 0xfe, 0x9a, 0x55, - 0x41, 0xc3, 0x3f, 0xd0, 0xcb, 0x50, 0x14, 0xb4, 0x39, 0x4e, 0x3b, 0x1b, 0x33, 0x76, 0x9f, 0x0c, - 0x04, 0xb9, 0xc0, 0xa3, 0x79, 0x28, 0x1e, 0x62, 0xb7, 0x4f, 0x38, 0x0f, 0x35, 0x53, 0x7c, 0xa0, - 0x4b, 0x50, 0xf1, 0x7c, 0x6a, 0xed, 0xfb, 0x7d, 0xaf, 0xdd, 0x28, 0xac, 0x68, 0x37, 0xca, 0x66, - 0xd9, 0xf3, 0xe9, 0x1d, 0xf6, 0x8d, 0xbe, 0x00, 0x33, 0xe4, 0x98, 0xd8, 0x56, 0x9b, 0x50, 0xec, - 0xb8, 0x91, 0x75, 0xb8, 0xde, 0x98, 0xe2, 0xa3, 0x2c, 0xc6, 0xa3, 0xdc, 0x3e, 0x26, 0xf6, 0xa6, - 0x40, 0x3f, 0x5a, 0x37, 0xa7, 0x49, 0xfa, 0xf3, 0xed, 0x42, 0xb9, 0xa8, 0x4f, 0x19, 0xff, 0xae, - 0x41, 0xb5, 0x69, 0x63, 0x6f, 0x12, 0x61, 0x5e, 0x82, 0x4a, 0x44, 0x71, 0x48, 0xad, 0x44, 0xa4, - 0x65, 0x0e, 0xb8, 0x4f, 0x06, 0x6c, 0x46, 0xae, 0xd3, 0x73, 0x28, 0x9f, 0xd1, 0xb4, 0x29, 0x3e, - 0xd2, 0xd2, 0x2e, 0x64, 0xa4, 0x8d, 0x2e, 0x42, 0xf9, 0x80, 0x0c, 0x2c, 0xdf, 0x73, 0x07, 0x8d, - 0x22, 0x9f, 0x6a, 0xe9, 0x80, 0x0c, 0x76, 0x3c, 0x97, 0xab, 0x28, 0x24, 0x8c, 0x8e, 0xf0, 0x19, - 0x96, 0x4d, 0xf5, 0x89, 0x96, 0xa0, 0x44, 0xbc, 0x36, 0x1f, 0xbf, 0xc4, 0xc7, 0x9f, 0x22, 0x5e, - 0x9b, 0x8d, 0x7e, 0x15, 0xaa, 0x11, 0xee, 0x05, 0x2e, 0xb1, 0x22, 0x4a, 0x82, 0x46, 0x99, 0xf3, - 0x00, 0x02, 0xd4, 0xa4, 0x24, 0x30, 0x7e, 0x47, 0x83, 0x9a, 0x98, 0xf7, 0xe4, 0xda, 0xbd, 0x0e, - 0xc5, 0x00, 0x3b, 0x61, 0xd4, 0xc8, 0xad, 0xe4, 0x6f, 0x54, 0xd7, 0x67, 0x12, 0xed, 0x1e, 0xee, - 0x62, 0x27, 0x34, 0x05, 0x36, 0x31, 0x82, 0xfc, 0xc9, 0x46, 0x60, 0xfc, 0x57, 0x11, 0x66, 0x76, - 0x43, 0x72, 0x14, 0x3a, 0x94, 0x4c, 0xa2, 0x8f, 0x57, 0xa1, 0xd2, 0xeb, 0x53, 0x4c, 0x1d, 0xdf, - 0x53, 0x3c, 0x25, 0x83, 0x3d, 0x90, 0x18, 0x33, 0xa1, 0x41, 0xd7, 0xa0, 0x16, 0x84, 0x4e, 0x0f, - 0x87, 0x03, 0x8b, 0x39, 0x9b, 0x34, 0xbe, 0xaa, 0x84, 0x6d, 0xfb, 0xf6, 0x01, 0x7a, 0x11, 0xa6, - 0x85, 0x8e, 0xb3, 0x6a, 0xab, 0x71, 0xe0, 0xa3, 0x44, 0x77, 0xac, 0xbd, 0x45, 0xa9, 0xcb, 0x75, - 0x57, 0x30, 0x4b, 0xec, 0xbb, 0x45, 0x5d, 0xb4, 0x0e, 0x0b, 0xd1, 0x81, 0x13, 0x58, 0xb6, 0xef, - 0x45, 0x34, 0xc4, 0x8e, 0x47, 0x2d, 0xbb, 0x4b, 0xec, 0x03, 0xa9, 0xc9, 0x39, 0x86, 0xdc, 0x88, - 0x71, 0x1b, 0x0c, 0x85, 0x7e, 0x01, 0xe6, 0x02, 0x12, 0x45, 0x4e, 0xcf, 0x89, 0xa8, 0x63, 0x5b, - 0xd8, 0x16, 0x33, 0x2a, 0xad, 0xe4, 0x6f, 0xd4, 0xd7, 0x57, 0xe3, 0x19, 0x0d, 0x89, 0x6a, 0x6d, - 0x37, 0x69, 0x73, 0x93, 0x37, 0x31, 0x51, 0x30, 0x0c, 0x8a, 0x18, 0xaf, 0xf4, 0xd8, 0xb3, 0x22, - 0xe7, 0xab, 0x84, 0x9b, 0x45, 0xc1, 0x2c, 0xd1, 0x63, 0xaf, 0xe9, 0x7c, 0x95, 0x20, 0x03, 0xa6, - 0xf7, 0xfd, 0xd0, 0xea, 0x07, 0x6d, 0x4c, 0x89, 0x45, 0xa3, 0x46, 0x85, 0xe3, 0xab, 0xfb, 0x7e, - 0xf8, 0x0e, 0x87, 0xb5, 0x22, 0x46, 0xd3, 0x73, 0x3c, 0xcb, 0xf6, 0x7b, 0x3d, 0x87, 0x32, 0x1a, - 0x10, 0x34, 0x3d, 0xc7, 0xdb, 0xe0, 0xb0, 0x56, 0x84, 0x6e, 0x80, 0xde, 0x8f, 0x88, 0x85, 0xa3, - 0x81, 0x67, 0x4b, 0xca, 0x46, 0x95, 0x4f, 0xb7, 0xde, 0x8f, 0xc8, 0x4d, 0x06, 0x16, 0xb4, 0x68, - 0x05, 0xaa, 0x11, 0xb1, 0x7d, 0xaf, 0x8d, 0x43, 0x87, 0x44, 0x8d, 0xda, 0x4a, 0x9e, 0xc9, 0x3f, - 0x05, 0x42, 0x97, 0x01, 0x68, 0xc8, 0xdc, 0x82, 0x58, 0x81, 0xdd, 0x98, 0x16, 0x31, 0x80, 0x86, - 0x83, 0x1d, 0x8f, 0xec, 0xda, 0x9c, 0x1b, 0x7c, 0x9c, 0xe2, 0xa6, 0x2e, 0xb9, 0xc1, 0xc7, 0x31, - 0x37, 0x6f, 0xc1, 0x0c, 0x8e, 0x22, 0x12, 0xb2, 0xe9, 0x5b, 0x2e, 0x39, 0x24, 0x6e, 0x63, 0x66, - 0x45, 0xbb, 0x51, 0x5f, 0x5f, 0x8a, 0x25, 0x79, 0x53, 0xe1, 0xb7, 0x19, 0xda, 0xac, 0xe3, 0xcc, - 0xb7, 0xb1, 0x07, 0xb3, 0x23, 0xb2, 0x45, 0xcb, 0xb0, 0xd8, 0xbc, 0xbf, 0xb5, 0x6b, 0xed, 0xde, - 0x6e, 0x36, 0xb7, 0x1e, 0x6c, 0x35, 0x5b, 0x5b, 0x1b, 0xd6, 0xc6, 0xbd, 0xdb, 0x1b, 0xf7, 0xf5, - 0x0b, 0xa8, 0x01, 0xf3, 0x9b, 0x3b, 0x63, 0x30, 0x1a, 0x5a, 0x82, 0xb9, 0xcd, 0x1d, 0x6b, 0x63, - 0xe7, 0x61, 0xb3, 0x65, 0xde, 0xdc, 0x7a, 0xd8, 0x92, 0x88, 0x9c, 0xf1, 0xdf, 0x1a, 0xe8, 0x89, - 0x42, 0x27, 0xf7, 0xc9, 0x8f, 0xc2, 0x14, 0xc7, 0x8e, 0x3a, 0x40, 0xec, 0x6d, 0x92, 0x60, 0x54, - 0x95, 0xf9, 0x51, 0x55, 0xbe, 0x0c, 0xba, 0x10, 0x7d, 0x8a, 0x4c, 0x78, 0xc0, 0xb4, 0xcf, 0x34, - 0x10, 0x13, 0x8e, 0x89, 0xc6, 0xc5, 0xa7, 0x88, 0xc6, 0xc6, 0xf7, 0x0b, 0xb0, 0x98, 0x12, 0x32, - 0xf3, 0xbd, 0xff, 0x2f, 0x21, 0x60, 0xc4, 0xad, 0xa6, 0xc6, 0xba, 0x95, 0x13, 0x59, 0xfb, 0x4e, - 0x18, 0x51, 0xc1, 0x47, 0x89, 0x5b, 0x7a, 0xd5, 0x89, 0xee, 0x30, 0x18, 0xe7, 0xe3, 0x1a, 0xd4, - 0x8e, 0x30, 0x53, 0x81, 0xd3, 0x23, 0x7e, 0x9f, 0x72, 0xef, 0xcd, 0x9b, 0x55, 0x06, 0x6b, 0x09, - 0x10, 0x6a, 0x40, 0x71, 0xdf, 0x0f, 0x6d, 0xc2, 0x3d, 0xb7, 0x7c, 0x2b, 0xd7, 0xd0, 0x4c, 0x01, - 0x60, 0x93, 0x08, 0x09, 0xed, 0x87, 0x9e, 0xc5, 0x97, 0x56, 0xe1, 0xb7, 0x65, 0xb3, 0x26, 0x80, - 0x8f, 0x38, 0x6c, 0xd4, 0x22, 0xaa, 0xe3, 0x2c, 0x62, 0x86, 0x07, 0x30, 0x8b, 0x1c, 0x3b, 0x11, - 0x25, 0x9e, 0x4d, 0x1a, 0x35, 0xe1, 0xdb, 0x1c, 0x7c, 0x5b, 0x41, 0xd1, 0x2b, 0x30, 0xc7, 0x25, - 0xc2, 0x56, 0x34, 0xcb, 0xd9, 0x17, 0xf4, 0x91, 0x74, 0x61, 0x9d, 0xa1, 0xd8, 0xe2, 0xb6, 0xb5, - 0xcf, 0x5b, 0x44, 0x68, 0x93, 0xcd, 0xee, 0x80, 0x58, 0xfd, 0xc0, 0xea, 0xf9, 0x6d, 0xc2, 0x3d, - 0xb9, 0xbe, 0x6e, 0x24, 0xd1, 0x2e, 0x6b, 0x1c, 0xef, 0xe2, 0x03, 0xf2, 0x4e, 0xf0, 0xc0, 0x6f, - 0x13, 0x13, 0x8e, 0xe2, 0xff, 0x8d, 0x7f, 0xd3, 0xa0, 0x31, 0x44, 0x79, 0x9f, 0x0c, 0x4c, 0x12, - 0xf5, 0x5d, 0x8a, 0x3e, 0x03, 0x05, 0x3a, 0x08, 0x08, 0xb7, 0xa2, 0xfa, 0xfa, 0xf5, 0xc7, 0x75, - 0x1d, 0x37, 0x68, 0x0d, 0x02, 0x62, 0xf2, 0x26, 0xc9, 0xfe, 0x24, 0x97, 0xde, 0x9f, 0x5c, 0x86, - 0x4a, 0x22, 0x85, 0x3c, 0x9f, 0x58, 0x02, 0x40, 0x6f, 0xc2, 0x12, 0x9b, 0x25, 0x69, 0x5b, 0x47, - 0x0e, 0xed, 0xb2, 0x15, 0x60, 0xdf, 0x75, 0xec, 0x94, 0x0b, 0xcd, 0x0b, 0xf4, 0xbb, 0x0e, 0xed, - 0x6e, 0x48, 0x64, 0x2b, 0x42, 0x6b, 0xc0, 0x17, 0x05, 0x2b, 0x24, 0x91, 0xef, 0x1e, 0x3a, 0x5e, - 0x47, 0x18, 0x84, 0x08, 0xa0, 0xb3, 0x0c, 0x65, 0x2a, 0x0c, 0xe3, 0xd6, 0xf8, 0xd7, 0x1c, 0x2c, - 0x8d, 0x78, 0xce, 0x73, 0x09, 0x20, 0x57, 0xa1, 0x32, 0x14, 0x3c, 0xb8, 0xc5, 0x95, 0x6d, 0x65, - 0x2b, 0x0d, 0x25, 0x35, 0x36, 0xdf, 0x9a, 0x30, 0x47, 0x21, 0xb9, 0x45, 0x98, 0x92, 0x76, 0x58, - 0xe4, 0x31, 0x5f, 0x7e, 0xa1, 0x2b, 0x00, 0xf1, 0x8e, 0x8f, 0x39, 0x4a, 0x9e, 0x89, 0x54, 0x6d, - 0xf9, 0xc6, 0x46, 0x99, 0xd2, 0x53, 0x44, 0x19, 0xf4, 0x39, 0xb6, 0x93, 0x62, 0xaa, 0x8d, 0x1a, - 0x65, 0x3e, 0xbb, 0x6b, 0x4f, 0x34, 0x02, 0x53, 0xb5, 0x30, 0xbe, 0xab, 0xc1, 0x72, 0x8a, 0xca, - 0xf4, 0x5d, 0x77, 0x0f, 0x4f, 0x16, 0xa6, 0x46, 0x42, 0x4a, 0x6e, 0x4c, 0x48, 0x19, 0x89, 0x1b, - 0xf9, 0xd1, 0xb8, 0x81, 0xa0, 0x70, 0x40, 0x06, 0xcc, 0xa0, 0x98, 0x14, 0xf9, 0xff, 0xc6, 0x9f, - 0x6b, 0x70, 0x69, 0x2c, 0x9f, 0xcf, 0xc5, 0x28, 0xc6, 0xa8, 0x28, 0xff, 0x34, 0x0b, 0xc1, 0x1f, - 0x69, 0x30, 0xd7, 0x3a, 0xf6, 0xee, 0x11, 0x1c, 0xd2, 0x5b, 0x04, 0x4f, 0x74, 0xca, 0x19, 0x0e, - 0xea, 0xb9, 0x53, 0x04, 0xf5, 0xfc, 0x18, 0x0d, 0xbc, 0x04, 0x33, 0xb8, 0x7d, 0xe8, 0x44, 0xc4, - 0x8a, 0x63, 0xbb, 0x5c, 0xfc, 0x04, 0x78, 0x5b, 0x44, 0x78, 0xe3, 0x87, 0x1a, 0xcc, 0x67, 0x79, - 0x7e, 0x0e, 0x47, 0xa6, 0xf4, 0x8a, 0x93, 0xcf, 0xae, 0x38, 0x63, 0x74, 0x50, 0x78, 0x1a, 0x1d, - 0xfc, 0x73, 0x0e, 0x16, 0xf8, 0x56, 0xb4, 0x75, 0xec, 0x35, 0x29, 0xa6, 0xfd, 0x68, 0x12, 0x2d, - 0x5c, 0x05, 0x25, 0xf1, 0xd4, 0x01, 0x09, 0x24, 0x88, 0x1d, 0x52, 0x96, 0xa0, 0x24, 0x66, 0xa0, - 0x4c, 0x7b, 0x8a, 0x4f, 0x20, 0x62, 0x72, 0xb7, 0xb1, 0xeb, 0x92, 0xd0, 0x12, 0x3a, 0x4a, 0x36, - 0x1d, 0x02, 0xdc, 0x64, 0xd0, 0x16, 0x8f, 0x16, 0x76, 0x3f, 0x0c, 0x89, 0xc7, 0x49, 0xc4, 0xb2, - 0x5b, 0x91, 0x90, 0x56, 0x84, 0x5e, 0x83, 0x85, 0x50, 0x1a, 0x3f, 0x5b, 0x80, 0x58, 0x60, 0xe1, - 0xd1, 0x59, 0xee, 0xbd, 0x91, 0x42, 0x6e, 0xed, 0x3f, 0xf4, 0x29, 0x5f, 0x86, 0xd0, 0x2a, 0xcc, - 0xf2, 0xf5, 0xd2, 0x4a, 0xef, 0x5d, 0xc5, 0x5a, 0x3c, 0xc3, 0x11, 0xcd, 0x64, 0xf3, 0xfa, 0x79, - 0x58, 0x4e, 0x62, 0x74, 0x7a, 0xc3, 0xce, 0x6d, 0xae, 0xcc, 0x1b, 0x35, 0x62, 0x8a, 0xa1, 0xf8, - 0x62, 0xfc, 0x28, 0x07, 0x8b, 0xc3, 0x32, 0xfe, 0xe9, 0x5a, 0xcd, 0x75, 0xa8, 0xcb, 0x70, 0x9e, - 0xdd, 0xe8, 0x4c, 0x0b, 0xa8, 0x72, 0x8a, 0x97, 0x61, 0x4a, 0x9c, 0x48, 0xb8, 0xc0, 0xeb, 0xa9, - 0x63, 0x9f, 0x3c, 0x75, 0x48, 0x34, 0x5a, 0x83, 0x0a, 0x1f, 0xca, 0xf1, 0xf6, 0x7d, 0x79, 0x34, - 0x4f, 0xf8, 0x62, 0x32, 0xd8, 0xf2, 0xf6, 0x7d, 0x93, 0xb3, 0xc3, 0xfe, 0x7b, 0xd6, 0xe0, 0x6e, - 0x7c, 0xa0, 0xc1, 0x32, 0x97, 0x68, 0x53, 0x9e, 0x1f, 0xb8, 0xa7, 0x4f, 0x64, 0xba, 0x2a, 0xac, - 0xe6, 0x92, 0xb0, 0x7a, 0xaa, 0x88, 0x61, 0xfc, 0x8f, 0x06, 0x97, 0xc6, 0xf2, 0xf0, 0x1c, 0x54, - 0xfb, 0x32, 0x14, 0x99, 0x2c, 0x99, 0x33, 0xe5, 0xc7, 0xcb, 0x5a, 0xe0, 0xd1, 0xa5, 0xf4, 0xba, - 0x2d, 0x74, 0x9c, 0xac, 0xd9, 0xcf, 0xba, 0x91, 0xff, 0x9e, 0x06, 0xd3, 0xc2, 0x41, 0xce, 0x6d, - 0x61, 0x54, 0xda, 0xc9, 0xa7, 0xb4, 0x73, 0x3a, 0xe3, 0x15, 0x49, 0x1f, 0x73, 0x6a, 0xcf, 0xf1, - 0x5c, 0xbf, 0x63, 0xfc, 0xad, 0x06, 0x75, 0xc5, 0xeb, 0x73, 0x50, 0xd0, 0x28, 0x8f, 0xf9, 0x71, - 0x0e, 0xf6, 0xac, 0xd1, 0xbb, 0x03, 0xd3, 0x5b, 0xbd, 0xc0, 0x0f, 0x63, 0x05, 0x64, 0x0e, 0x45, - 0xda, 0x29, 0x0e, 0x45, 0xa3, 0x8c, 0xe6, 0xc6, 0x30, 0x6a, 0xbc, 0x07, 0x75, 0x35, 0xd0, 0xe4, - 0xd2, 0x9b, 0x4f, 0x4b, 0xaf, 0xa2, 0x52, 0x41, 0xdf, 0x60, 0x9a, 0x71, 0x09, 0xf6, 0xfa, 0xc1, - 0xd9, 0xa4, 0x39, 0x4f, 0xb5, 0xde, 0x67, 0xd7, 0x93, 0xc2, 0xd0, 0x7a, 0x62, 0x7c, 0x53, 0x83, - 0x99, 0x98, 0xa9, 0x9f, 0x19, 0x7b, 0x31, 0x0e, 0x60, 0xe6, 0x16, 0xa6, 0x76, 0x77, 0xc2, 0x94, - 0xf0, 0xb8, 0x58, 0xf7, 0xf8, 0xa4, 0xf0, 0x3f, 0x6a, 0xa0, 0x27, 0xa3, 0x9d, 0x7b, 0xee, 0xf0, - 0x19, 0x7d, 0x21, 0x91, 0x75, 0xf1, 0x64, 0x59, 0xbf, 0x5d, 0x28, 0xe7, 0xf5, 0x82, 0xf1, 0x4b, - 0x30, 0xcf, 0x27, 0x77, 0xee, 0x7b, 0xfb, 0x31, 0x21, 0xcc, 0xf8, 0x63, 0x0d, 0x16, 0x86, 0x46, - 0x7f, 0x0e, 0x46, 0xf6, 0xac, 0xfb, 0xf5, 0x3f, 0xd4, 0x60, 0xa6, 0x69, 0x63, 0x6f, 0xd2, 0x8c, - 0xcd, 0x55, 0xa8, 0xf6, 0xf0, 0xf1, 0x90, 0xb0, 0xa0, 0x87, 0x8f, 0x95, 0xa8, 0x32, 0x59, 0xf6, - 0xfc, 0xe3, 0xb2, 0xec, 0x85, 0x74, 0x96, 0x3d, 0x95, 0x16, 0x2f, 0xa6, 0xd3, 0xe2, 0xc6, 0x4f, - 0x34, 0xd0, 0x13, 0x66, 0x7f, 0x96, 0xd6, 0xe4, 0x67, 0x0d, 0xfa, 0x3f, 0xd2, 0x00, 0x89, 0xbc, - 0x00, 0x99, 0x54, 0x13, 0xa7, 0x32, 0xdc, 0x53, 0xae, 0x61, 0xaf, 0x40, 0x85, 0x1e, 0x7b, 0x7c, - 0xeb, 0x27, 0x0e, 0xa7, 0xe9, 0x91, 0x5b, 0xc7, 0x9e, 0xd8, 0xfa, 0x51, 0xf1, 0x4f, 0x72, 0x8c, - 0x2d, 0xa6, 0xdc, 0x81, 0x1d, 0x04, 0x33, 0x33, 0xfa, 0x3f, 0xe0, 0x0c, 0x8f, 0xa0, 0x72, 0x77, - 0x63, 0x12, 0xd9, 0x5f, 0x01, 0x88, 0xf0, 0x3e, 0xb1, 0x02, 0xdf, 0xf1, 0xa8, 0x14, 0x7c, 0x85, - 0x41, 0x76, 0x19, 0xc0, 0xe8, 0x02, 0xb0, 0x7e, 0xcf, 0x5f, 0x02, 0xc6, 0xb7, 0x34, 0x40, 0x9b, - 0xc4, 0x25, 0x94, 0x98, 0xd8, 0xeb, 0x90, 0x33, 0xbf, 0x16, 0x4b, 0xb9, 0x66, 0x7e, 0xf8, 0xc6, - 0xca, 0xf3, 0xa9, 0xb3, 0x2f, 0xaf, 0xc0, 0xc4, 0x6d, 0x1f, 0x08, 0xd0, 0x8e, 0xe7, 0x0e, 0x8c, - 0x2f, 0xc3, 0x5c, 0x86, 0xb1, 0xb3, 0xde, 0x72, 0xfc, 0xa9, 0x06, 0x2b, 0xbb, 0x21, 0x09, 0x70, - 0x48, 0xee, 0xb8, 0x38, 0xea, 0xb2, 0x08, 0xdc, 0xf2, 0xa5, 0x41, 0x3f, 0x3f, 0x39, 0x5c, 0x84, - 0xf2, 0xd0, 0xa1, 0xb7, 0x14, 0xc9, 0xe3, 0x6e, 0x6a, 0x55, 0x2e, 0x66, 0x57, 0x65, 0x17, 0xae, - 0x9d, 0xc0, 0xfa, 0x59, 0x4b, 0xea, 0x47, 0x1a, 0x5c, 0x3c, 0x1b, 0x11, 0xa5, 0x66, 0x94, 0xcb, - 0x5e, 0x87, 0x9e, 0x18, 0xf5, 0x53, 0xc2, 0x2b, 0x3c, 0x56, 0x78, 0xc5, 0xac, 0xf0, 0x32, 0x87, - 0x9e, 0xa9, 0xec, 0xa1, 0xc7, 0x20, 0xb0, 0xfc, 0x3c, 0x04, 0xf7, 0x25, 0x98, 0x36, 0xf1, 0xd1, - 0x99, 0x5d, 0xdd, 0xd7, 0x21, 0x67, 0xef, 0x73, 0xe1, 0x54, 0xcc, 0x9c, 0xbd, 0x6f, 0xfc, 0xa6, - 0x06, 0x75, 0xd5, 0xff, 0x19, 0xb3, 0x3e, 0xc1, 0x05, 0xbd, 0xd1, 0x06, 0x64, 0xe2, 0xa3, 0xb3, - 0xde, 0x9a, 0x0e, 0x4f, 0xda, 0x87, 0xb9, 0xcc, 0x28, 0xe7, 0xbd, 0x25, 0x35, 0x7e, 0x4f, 0xe3, - 0x5a, 0xdc, 0xed, 0x9f, 0x91, 0x16, 0xc7, 0x4b, 0x56, 0x4c, 0xb3, 0xa0, 0xa6, 0xc9, 0xda, 0x25, - 0x57, 0x4b, 0xec, 0x5f, 0xe6, 0x04, 0xfb, 0x7e, 0x68, 0xd9, 0x38, 0x92, 0xf9, 0xac, 0xa9, 0x7d, - 0x3f, 0xdc, 0xc0, 0x11, 0x3b, 0x96, 0x29, 0xfe, 0xce, 0xda, 0x80, 0xff, 0x4c, 0x4b, 0x74, 0x3a, - 0xa1, 0x00, 0x4e, 0xb9, 0xf1, 0x1f, 0x52, 0x33, 0x9a, 0x17, 0xf3, 0x2f, 0xc4, 0xb7, 0x0c, 0xc3, - 0x32, 0x28, 0xa6, 0x65, 0xc0, 0x2c, 0x87, 0x52, 0x57, 0xdc, 0x20, 0x14, 0x4c, 0xfe, 0x3f, 0x5b, - 0x40, 0x32, 0xbc, 0x9f, 0xb5, 0x70, 0x06, 0xa0, 0x9b, 0xf8, 0x48, 0xae, 0x51, 0xe7, 0xe1, 0xe0, - 0xe9, 0xe9, 0x16, 0x32, 0x2a, 0xff, 0x45, 0x98, 0x4d, 0x0d, 0x7d, 0xd6, 0x13, 0xfb, 0x15, 0x0d, - 0x16, 0x94, 0xe4, 0x26, 0x9f, 0xde, 0x29, 0x9c, 0xf9, 0xf1, 0x13, 0xc4, 0xb0, 0x38, 0xcc, 0xc1, - 0x59, 0xcf, 0xf2, 0x87, 0x22, 0x7a, 0x3e, 0xc7, 0x62, 0xa0, 0x74, 0xc9, 0x4f, 0x21, 0x5b, 0xf2, - 0x23, 0x04, 0x53, 0x8c, 0x05, 0xf3, 0xf4, 0x25, 0x40, 0x46, 0x07, 0x66, 0xe2, 0xe9, 0x4c, 0x2e, - 0xab, 0x6b, 0x90, 0x3f, 0x38, 0x7c, 0xac, 0xb3, 0x32, 0x9c, 0xf1, 0x35, 0x61, 0x1e, 0x3f, 0x95, - 0x5d, 0xe3, 0x50, 0x98, 0x94, 0x76, 0x72, 0xae, 0xfb, 0xc4, 0x1f, 0x6b, 0x49, 0x1c, 0x99, 0xd4, - 0x58, 0x3e, 0x0a, 0x53, 0x21, 0xe3, 0x6e, 0xec, 0x7d, 0x9a, 0xe0, 0x5b, 0x12, 0xb0, 0x93, 0x01, - 0xc1, 0x76, 0xd7, 0x4a, 0xdb, 0x4f, 0x85, 0x41, 0xb6, 0xcf, 0xcc, 0x86, 0x0c, 0x17, 0xe6, 0xb3, - 0x33, 0x3a, 0x57, 0x7b, 0xf9, 0x65, 0xb8, 0xf8, 0x8e, 0xc7, 0xce, 0x36, 0x9b, 0x24, 0xa2, 0xa1, - 0x3f, 0x78, 0xbe, 0x26, 0xc3, 0xf6, 0x7a, 0xe3, 0x86, 0x3f, 0x6b, 0x33, 0xf9, 0x0a, 0x5c, 0x32, - 0x49, 0xc7, 0x89, 0x28, 0x09, 0xd9, 0xf1, 0x75, 0x67, 0x2f, 0x22, 0xe1, 0x21, 0x09, 0x27, 0x99, - 0xe7, 0x02, 0x4c, 0xf5, 0xf0, 0x31, 0xdb, 0xb7, 0x8a, 0x4d, 0x72, 0xb1, 0x87, 0x8f, 0x5b, 0x91, - 0xf1, 0x06, 0x5c, 0x1e, 0x3f, 0x82, 0x9c, 0x4a, 0xcc, 0x97, 0x96, 0xdd, 0x83, 0x36, 0xf8, 0x05, - 0xc5, 0x39, 0x31, 0xd5, 0x87, 0x8b, 0x63, 0xba, 0x3f, 0x89, 0x23, 0x66, 0xc2, 0x4e, 0x64, 0xd9, - 0x2e, 0xc1, 0xe2, 0x14, 0x50, 0x36, 0x4b, 0x4e, 0xc4, 0xf3, 0xac, 0xa7, 0x4e, 0x9f, 0x18, 0x5f, - 0x86, 0x8b, 0x26, 0xe9, 0xf9, 0x22, 0x55, 0x70, 0x0e, 0xd3, 0x5a, 0x87, 0xe5, 0x71, 0xfd, 0x9f, - 0x28, 0xe9, 0xdf, 0xd2, 0x60, 0x69, 0xb7, 0x3b, 0x88, 0x1c, 0x1b, 0xbb, 0xcf, 0x92, 0x21, 0x1b, - 0xcf, 0xd2, 0x04, 0x79, 0x31, 0xe3, 0x3d, 0x68, 0x8c, 0x32, 0x74, 0xa2, 0x6e, 0x62, 0x05, 0xe4, - 0x9e, 0xa0, 0x80, 0xef, 0x68, 0x80, 0x9a, 0x81, 0xeb, 0x50, 0x93, 0x7b, 0xc6, 0x64, 0x99, 0xc0, - 0x4a, 0xc4, 0x7a, 0x48, 0xdc, 0x59, 0x94, 0x93, 0x70, 0x20, 0x9b, 0xd4, 0x15, 0x80, 0x98, 0x40, - 0xa5, 0x4e, 0x2b, 0x0a, 0x1b, 0xa1, 0x65, 0xa8, 0x38, 0x91, 0x15, 0xe2, 0x23, 0xeb, 0xe0, 0x50, - 0xc5, 0x42, 0x27, 0x32, 0xf1, 0xd1, 0xfd, 0x43, 0xe3, 0xfb, 0x1a, 0xcc, 0x65, 0xd8, 0x9b, 0xdc, - 0xdd, 0x5f, 0x82, 0x82, 0x4b, 0xf6, 0xa9, 0xcc, 0xa4, 0xd4, 0xd7, 0x64, 0xb9, 0xb7, 0xe8, 0x98, - 0x73, 0xcc, 0xf1, 0xe8, 0x06, 0x14, 0x43, 0xa7, 0xd3, 0xa5, 0x32, 0x83, 0x34, 0x8e, 0x50, 0x10, - 0xa0, 0x1b, 0x2c, 0x30, 0x77, 0xf8, 0xed, 0x8c, 0x48, 0x95, 0x0d, 0xd1, 0x9a, 0x0a, 0x6d, 0xfc, - 0x9a, 0x06, 0xba, 0x49, 0x70, 0x7b, 0xcb, 0x6b, 0x93, 0xe3, 0x49, 0x64, 0x9c, 0x3e, 0x20, 0xe7, - 0xb2, 0x07, 0xe4, 0x64, 0x4d, 0xca, 0x3f, 0x61, 0x4d, 0x32, 0x7e, 0x5b, 0x83, 0xd9, 0x14, 0x1b, - 0x93, 0xcb, 0xf2, 0x0a, 0x40, 0x48, 0x70, 0xdb, 0x72, 0x58, 0x47, 0x2a, 0xed, 0x15, 0xaa, 0x9e, - 0x19, 0x4b, 0xa2, 0x44, 0x6a, 0xa4, 0x74, 0x38, 0x36, 0x3f, 0x49, 0x60, 0x34, 0x61, 0xee, 0xc1, - 0xa1, 0x6d, 0xdf, 0x25, 0xf4, 0xd6, 0x80, 0xd7, 0xee, 0x9c, 0xc1, 0xfe, 0xdb, 0xf8, 0x0d, 0x0d, - 0xe6, 0xb3, 0xbd, 0x9e, 0xf5, 0xb1, 0xfa, 0x3a, 0x14, 0xf8, 0xf5, 0xf8, 0xf0, 0xfc, 0xd8, 0xa8, - 0x7c, 0x7e, 0x1c, 0x6d, 0x7c, 0x05, 0x96, 0x62, 0x3e, 0x64, 0xf1, 0xc3, 0xd9, 0x6a, 0x9f, 0xf9, - 0x6f, 0x63, 0x74, 0x88, 0xb3, 0x9e, 0xae, 0x14, 0x71, 0x3e, 0x39, 0xe2, 0x28, 0x01, 0x14, 0x4e, - 0x16, 0xc0, 0x07, 0x15, 0x28, 0x6d, 0x24, 0xcb, 0xbe, 0xe4, 0xc6, 0x69, 0x73, 0x56, 0x0a, 0x66, - 0x59, 0x00, 0xb6, 0xda, 0xe8, 0x93, 0x09, 0xab, 0x81, 0x6f, 0x77, 0xa5, 0x97, 0xce, 0x65, 0x1d, - 0xea, 0x36, 0x43, 0xc5, 0xfc, 0xb2, 0x0f, 0xb4, 0x02, 0x85, 0x80, 0x10, 0x55, 0xa3, 0x5e, 0x53, - 0xf4, 0xbb, 0x84, 0x84, 0x26, 0xc7, 0xf0, 0x23, 0x25, 0x09, 0x7b, 0xf2, 0x08, 0xce, 0xff, 0x47, - 0xaf, 0x42, 0x39, 0x08, 0x1d, 0x3f, 0x74, 0xe8, 0x80, 0xef, 0xa9, 0xea, 0xeb, 0x73, 0x29, 0xe9, - 0xf7, 0x7a, 0xd8, 0x6b, 0xef, 0x86, 0x8e, 0x19, 0x13, 0xa1, 0xb7, 0x60, 0xc6, 0x89, 0x7c, 0x17, - 0xa7, 0x8a, 0x91, 0x4b, 0x43, 0xc5, 0xc8, 0x5b, 0x0a, 0x2f, 0x8b, 0x91, 0x9d, 0xcc, 0x37, 0xfa, - 0x08, 0xd4, 0x79, 0xca, 0xc5, 0x71, 0x5d, 0xcb, 0xc6, 0x76, 0x97, 0xc8, 0x4a, 0x93, 0x9a, 0xe7, - 0xd3, 0x3b, 0x8e, 0xeb, 0x6e, 0x30, 0x18, 0xd7, 0xf4, 0xc0, 0xb3, 0x2d, 0xd7, 0xef, 0x88, 0x5a, - 0x50, 0xb3, 0xc4, 0xbe, 0xb7, 0xfd, 0x0e, 0xba, 0x01, 0x7a, 0x48, 0x6c, 0x3f, 0x6c, 0xf3, 0x42, - 0x52, 0x2b, 0xa2, 0x98, 0xca, 0x62, 0xd0, 0xba, 0x80, 0xb7, 0x9c, 0x1e, 0x69, 0x52, 0x4c, 0x53, - 0x94, 0x91, 0x8d, 0x3d, 0x41, 0x59, 0x4d, 0x53, 0xb2, 0x45, 0x84, 0x53, 0x5e, 0x63, 0x52, 0x0f, - 0x5c, 0xc7, 0xc6, 0x16, 0xf3, 0x5e, 0x59, 0x11, 0x5a, 0x95, 0x30, 0x16, 0x2a, 0xd0, 0x75, 0xa8, - 0x8b, 0x5a, 0x18, 0xd2, 0xb6, 0xc4, 0x92, 0x32, 0xcd, 0xcf, 0xe6, 0xd3, 0x0a, 0xca, 0x0b, 0x25, - 0xd0, 0x67, 0xe0, 0x22, 0x5b, 0xec, 0xc8, 0x31, 0xb1, 0xfb, 0x5c, 0x48, 0xed, 0x7e, 0x28, 0xa4, - 0xd5, 0x53, 0xd5, 0xdd, 0x8b, 0x3d, 0x7c, 0x7c, 0x5b, 0xe1, 0x37, 0x25, 0xfa, 0x01, 0x2f, 0xd0, - 0xc0, 0x41, 0xe0, 0x3a, 0x44, 0xc5, 0x93, 0x19, 0x71, 0x7f, 0x21, 0x81, 0x22, 0xa4, 0x2c, 0x41, - 0x89, 0xe2, 0xe8, 0x80, 0x99, 0x8e, 0x2e, 0x6a, 0x8e, 0xd8, 0xe7, 0x56, 0x9b, 0x2f, 0x2e, 0x14, - 0xbb, 0x44, 0x4c, 0x60, 0x56, 0x14, 0x73, 0x72, 0x08, 0x67, 0xff, 0xe3, 0x80, 0x18, 0xa3, 0xfd, - 0xd0, 0x26, 0x56, 0x27, 0xf4, 0xfb, 0x81, 0x45, 0x71, 0xa7, 0x81, 0xb8, 0x21, 0xeb, 0x0a, 0x73, - 0x97, 0x21, 0x5a, 0xb8, 0x83, 0x3e, 0x0d, 0xd3, 0x6d, 0x27, 0x3a, 0xb0, 0xf6, 0xfb, 0xae, 0x6b, - 0xf9, 0x01, 0x6d, 0xcc, 0x71, 0x25, 0xcf, 0xc7, 0x4a, 0xde, 0x74, 0xa2, 0x83, 0x3b, 0x7d, 0xd7, - 0xdd, 0x09, 0xa8, 0x59, 0x6d, 0x27, 0x1f, 0x4c, 0xe6, 0x6c, 0x11, 0x23, 0x34, 0x1c, 0x58, 0xa1, - 0x70, 0xf1, 0xc6, 0xbc, 0x90, 0xb9, 0x13, 0x99, 0x0c, 0xac, 0x1c, 0xff, 0x0d, 0xa8, 0xe2, 0xc0, - 0x89, 0xaf, 0x61, 0x16, 0x86, 0xcc, 0xef, 0xe6, 0xee, 0x96, 0xca, 0x63, 0x02, 0x0e, 0x9c, 0xa4, - 0x7a, 0x67, 0x46, 0x64, 0x3d, 0x69, 0xac, 0x87, 0x45, 0xae, 0x87, 0x7a, 0x0c, 0x16, 0x8a, 0xf8, - 0x2c, 0x88, 0x47, 0x47, 0x96, 0x8a, 0x2e, 0x4b, 0xdc, 0x33, 0x16, 0xd6, 0xd4, 0x53, 0xa4, 0x16, - 0xfb, 0xab, 0x42, 0x4c, 0x8d, 0xa6, 0xbe, 0x84, 0xae, 0x39, 0x97, 0x96, 0x10, 0x4c, 0xa3, 0xc1, - 0xa3, 0xc0, 0xb4, 0x84, 0x36, 0x39, 0x90, 0x89, 0x9c, 0x3f, 0x45, 0x10, 0x24, 0x17, 0x45, 0xf4, - 0xa7, 0xc7, 0x9e, 0x44, 0xaf, 0xc1, 0xdc, 0x90, 0xc8, 0x3d, 0xdc, 0x23, 0x8d, 0x65, 0xde, 0xd5, - 0x6c, 0x46, 0xe6, 0x0f, 0x71, 0x8f, 0xa0, 0x55, 0x98, 0xdd, 0xeb, 0x47, 0x03, 0x8b, 0x76, 0x43, - 0x12, 0x75, 0x7d, 0xb7, 0xcd, 0x4c, 0xe6, 0x12, 0xdf, 0xff, 0xcc, 0x30, 0x44, 0x4b, 0xc1, 0x1f, - 0x44, 0xe8, 0x2a, 0x54, 0xd9, 0x26, 0x22, 0x60, 0x13, 0x74, 0xda, 0x8d, 0x15, 0xf1, 0x3e, 0x46, - 0x81, 0xb6, 0xda, 0x6f, 0x17, 0xca, 0x05, 0xbd, 0xc8, 0x2c, 0x18, 0xb7, 0xad, 0xf7, 0xfb, 0x7e, - 0xd8, 0xef, 0x19, 0xdf, 0xce, 0x43, 0x59, 0xad, 0x3b, 0x23, 0x25, 0x86, 0xda, 0x68, 0x89, 0xe1, - 0x35, 0xa8, 0xf1, 0xfa, 0xa7, 0x6c, 0x86, 0xbb, 0xca, 0x60, 0x4a, 0x1b, 0xa3, 0xf1, 0x30, 0x5d, - 0x9f, 0x55, 0xc8, 0xd6, 0x67, 0xa5, 0x5f, 0x6e, 0x14, 0xb3, 0x2f, 0x37, 0x6e, 0xc8, 0x52, 0x2b, - 0x5e, 0xde, 0x2c, 0x02, 0x51, 0x35, 0xb6, 0x84, 0x9d, 0x40, 0x14, 0x59, 0xb5, 0x06, 0x01, 0x41, - 0x1f, 0x03, 0xc4, 0x29, 0xb3, 0x95, 0xa5, 0x25, 0xde, 0xdd, 0x0c, 0xc3, 0xdc, 0x49, 0x55, 0x97, - 0x8e, 0x7b, 0xc8, 0x51, 0x1e, 0xfb, 0x90, 0x63, 0xa4, 0x72, 0xbc, 0x32, 0x5a, 0x39, 0x3e, 0xf4, - 0xd8, 0x03, 0x46, 0x1f, 0x7b, 0x7c, 0x16, 0x96, 0x63, 0x77, 0xa7, 0xbe, 0xe5, 0xe2, 0x88, 0x2a, - 0x26, 0x7b, 0xaa, 0x18, 0x7d, 0x51, 0x51, 0xb4, 0xfc, 0x6d, 0x1c, 0x51, 0xc1, 0xeb, 0x83, 0xc8, - 0xf8, 0x56, 0x01, 0xca, 0xea, 0x32, 0x2b, 0xb5, 0x71, 0xd0, 0x9e, 0xb0, 0x71, 0x40, 0x97, 0xd9, - 0x6a, 0x42, 0xc3, 0x01, 0xde, 0x73, 0x89, 0x5c, 0xac, 0x12, 0x00, 0x5b, 0xc6, 0xf0, 0x9e, 0x1f, - 0x52, 0x99, 0xa3, 0x12, 0x1f, 0x68, 0x1d, 0xca, 0xaa, 0x9a, 0x7b, 0xe4, 0x96, 0xf6, 0xdd, 0xd0, - 0xa1, 0x44, 0x95, 0x73, 0x9b, 0x31, 0x1d, 0xf3, 0x27, 0xec, 0x32, 0x73, 0x1a, 0xc8, 0x22, 0xc4, - 0xa2, 0xf4, 0xa7, 0xd8, 0x61, 0x05, 0x96, 0xd7, 0x21, 0x9a, 0x35, 0x9c, 0xfa, 0x42, 0xaf, 0x40, - 0x59, 0x3d, 0x08, 0x1c, 0x29, 0xa4, 0xdb, 0x94, 0x08, 0x33, 0x26, 0x41, 0x9b, 0x30, 0x1b, 0x2b, - 0xc2, 0x22, 0xc7, 0x81, 0x13, 0x92, 0xb6, 0x2c, 0xa5, 0x6b, 0x64, 0x96, 0x27, 0xa6, 0x96, 0xdb, - 0x02, 0x6f, 0xce, 0xd8, 0x59, 0x00, 0x8b, 0x61, 0xcc, 0xdc, 0x92, 0xfc, 0x7e, 0x99, 0xf7, 0x30, - 0x9f, 0xbe, 0xc6, 0x7d, 0x28, 0x73, 0xfd, 0x66, 0x95, 0x26, 0x1f, 0xe8, 0x1e, 0xcc, 0x25, 0xe3, - 0x53, 0x9f, 0x29, 0x32, 0xec, 0x88, 0x37, 0x09, 0xd5, 0xf5, 0x8b, 0x23, 0x1c, 0xb4, 0x7c, 0x7f, - 0x9b, 0x11, 0x98, 0xba, 0x3d, 0x04, 0x41, 0x1b, 0xa0, 0x27, 0x6f, 0x77, 0xf6, 0xb1, 0xe3, 0x92, - 0x36, 0x5f, 0xab, 0xd2, 0x13, 0x89, 0x1f, 0xef, 0xdc, 0xe1, 0x78, 0x33, 0x79, 0xed, 0x23, 0x00, - 0xc6, 0xdf, 0xe5, 0x60, 0x3a, 0xa3, 0x95, 0xcc, 0x3e, 0x48, 0xcb, 0xee, 0x82, 0xaf, 0x42, 0x35, - 0x5d, 0xa8, 0x2f, 0xcb, 0x11, 0xec, 0xa4, 0x3c, 0x7f, 0xd4, 0x65, 0x1b, 0x50, 0x92, 0x6e, 0x2f, - 0x6f, 0xa3, 0xd4, 0x27, 0x5b, 0x34, 0xe2, 0xce, 0x12, 0xd7, 0x10, 0xbe, 0xab, 0x2b, 0x4c, 0xec, - 0x1f, 0x6f, 0xc2, 0x54, 0x48, 0x70, 0xe4, 0x7b, 0xd2, 0x83, 0xaf, 0x8c, 0xb7, 0xa9, 0x35, 0x93, - 0x13, 0x99, 0x92, 0xd8, 0x38, 0x82, 0x29, 0x01, 0x41, 0x55, 0x28, 0xbd, 0xe3, 0x1d, 0x78, 0xfe, - 0x91, 0xa7, 0x5f, 0x40, 0x75, 0x80, 0x9d, 0x80, 0xca, 0x8a, 0x53, 0x5d, 0x43, 0xf3, 0xa0, 0xa7, - 0x8b, 0xc2, 0x99, 0x85, 0xeb, 0x39, 0x84, 0xa0, 0xde, 0x24, 0xee, 0xbe, 0xe9, 0xbb, 0x2e, 0x69, - 0xdf, 0xc2, 0xf6, 0x81, 0x9e, 0x47, 0xd3, 0x50, 0x31, 0x6d, 0x51, 0x9a, 0x1a, 0xe9, 0x05, 0xb4, - 0x04, 0x73, 0xdb, 0xf8, 0xab, 0x83, 0x77, 0x3c, 0xe7, 0xfd, 0x3e, 0xf1, 0x48, 0x14, 0x71, 0x94, - 0x5e, 0x34, 0x56, 0xa0, 0x96, 0xb6, 0x59, 0x25, 0x19, 0x2d, 0xd9, 0x3f, 0xff, 0xbe, 0x06, 0x65, - 0x65, 0x9f, 0xe9, 0x6a, 0x5f, 0x2d, 0x53, 0xed, 0xab, 0x42, 0x5e, 0xb2, 0xf9, 0xe6, 0x84, 0xec, - 0xc4, 0xb7, 0x0a, 0xb3, 0xca, 0xaa, 0x19, 0xda, 0xea, 0xe2, 0xa8, 0x2b, 0x0b, 0x0e, 0x66, 0x14, - 0xe2, 0x3e, 0x19, 0xdc, 0xc3, 0x51, 0x17, 0xbd, 0x09, 0xc0, 0x9f, 0xc7, 0xd8, 0x5d, 0xec, 0x78, - 0xf2, 0x20, 0xb5, 0xb8, 0x16, 0x3f, 0xa4, 0x7d, 0x17, 0x3b, 0xf4, 0x8e, 0x1f, 0xde, 0xf6, 0xd8, - 0x12, 0x5a, 0x61, 0x94, 0x1b, 0x8c, 0xd0, 0xf8, 0x86, 0x06, 0x33, 0x43, 0xbe, 0x70, 0x92, 0x7d, - 0xac, 0xc1, 0x1c, 0xa6, 0x94, 0xf4, 0x02, 0xb6, 0x7e, 0x26, 0x3a, 0x15, 0x76, 0x32, 0x1b, 0xa3, - 0x62, 0xa5, 0x8e, 0x9a, 0xcb, 0x48, 0xa8, 0x2c, 0x8c, 0x84, 0x4a, 0x63, 0x0b, 0xaa, 0x29, 0xef, - 0x7a, 0x82, 0xbd, 0x9e, 0x58, 0x64, 0x6d, 0xbc, 0x0a, 0xfa, 0xb0, 0xa3, 0x65, 0xef, 0x42, 0xb5, - 0xa1, 0xbb, 0xd0, 0xbf, 0xd6, 0x60, 0x66, 0xc8, 0xa7, 0x4e, 0x62, 0x60, 0xf4, 0xd6, 0xe2, 0x13, - 0x50, 0x89, 0x5d, 0x90, 0x4f, 0xbc, 0xbe, 0x8e, 0x46, 0xbd, 0xd5, 0x4c, 0x88, 0x98, 0x9a, 0x79, - 0x4c, 0x74, 0xbc, 0xce, 0x70, 0xc5, 0xf7, 0x8c, 0x42, 0xa8, 0x9a, 0xef, 0x8f, 0x03, 0x8a, 0x69, - 0x47, 0x7c, 0x4a, 0x61, 0x62, 0x41, 0xfe, 0x8d, 0x06, 0xc0, 0xf6, 0xb3, 0xa2, 0x44, 0x03, 0x7d, - 0x14, 0x66, 0xb9, 0x8d, 0x1c, 0x61, 0xd7, 0x15, 0xdb, 0xdf, 0x9e, 0x9a, 0x50, 0x9d, 0x21, 0xde, - 0xc5, 0xae, 0xcb, 0xc8, 0x1f, 0x44, 0xe8, 0x55, 0x98, 0x0f, 0x42, 0xdf, 0x26, 0x51, 0x94, 0xa5, - 0x96, 0x9a, 0x96, 0xb8, 0x54, 0x83, 0x35, 0x98, 0x3f, 0x38, 0xe4, 0xbb, 0xc7, 0x6c, 0x03, 0x61, - 0xae, 0xfa, 0xc1, 0x21, 0xdb, 0x47, 0xa6, 0xe8, 0xd7, 0x61, 0x91, 0xfa, 0x14, 0xbb, 0x56, 0x18, - 0xd8, 0xa9, 0x16, 0x9e, 0x9a, 0x39, 0xe2, 0x58, 0x33, 0xb0, 0x55, 0x9b, 0x87, 0x91, 0xf1, 0xf5, - 0x1c, 0xd4, 0x92, 0xe9, 0x3c, 0x5a, 0x1f, 0x33, 0x21, 0x6f, 0xec, 0x84, 0x1e, 0x3e, 0x66, 0x42, - 0xde, 0xe3, 0x26, 0xf4, 0x30, 0x42, 0x5f, 0x80, 0xcb, 0xaa, 0x41, 0xd4, 0x8f, 0x02, 0xe2, 0xb5, - 0xb3, 0x0d, 0xc5, 0xc4, 0x1a, 0x92, 0xa6, 0x29, 0x48, 0x52, 0xed, 0xc7, 0x0a, 0x24, 0x9e, 0xde, - 0x90, 0x40, 0x1e, 0x9e, 0x24, 0x90, 0xe2, 0x63, 0x05, 0xf2, 0x25, 0x28, 0xb3, 0x43, 0x08, 0xdf, - 0x92, 0xcd, 0x43, 0x91, 0x53, 0xf0, 0xf9, 0xe7, 0x4d, 0xf1, 0xc1, 0xd6, 0x77, 0xc9, 0x21, 0x69, - 0xf3, 0xb9, 0xe6, 0xcd, 0x04, 0x10, 0x27, 0x20, 0xf6, 0x06, 0x94, 0x88, 0x19, 0xe5, 0x45, 0x02, - 0xe2, 0x16, 0x03, 0x18, 0xbf, 0xaa, 0x01, 0xb0, 0xfe, 0xa5, 0xf9, 0xbc, 0x0c, 0x45, 0xfe, 0x40, - 0x73, 0x64, 0x57, 0xa1, 0x78, 0x30, 0x05, 0x9e, 0x9d, 0x6a, 0xe3, 0x87, 0x27, 0x63, 0xe9, 0x38, - 0x9a, 0x91, 0xb5, 0x31, 0xc5, 0x23, 0xa7, 0xff, 0x84, 0x8c, 0xa1, 0x8d, 0xff, 0x28, 0x8a, 0xb7, - 0xda, 0xb1, 0xd6, 0x5f, 0x01, 0x14, 0x4f, 0x41, 0x6d, 0x2f, 0x95, 0xda, 0x67, 0x63, 0x8c, 0xdc, - 0x64, 0x46, 0xe8, 0x93, 0xb0, 0x34, 0x4a, 0x9e, 0x7e, 0x01, 0xbc, 0x30, 0xd2, 0x86, 0xef, 0x2a, - 0xaf, 0x43, 0x5d, 0x28, 0x24, 0x1e, 0x42, 0x96, 0x01, 0x73, 0x68, 0xdc, 0xfd, 0x17, 0xe1, 0x72, - 0xc8, 0x8e, 0x0c, 0xed, 0x3d, 0xab, 0xcd, 0x2f, 0x5e, 0xac, 0xe8, 0xc0, 0x09, 0x02, 0x1e, 0x1f, - 0xfb, 0x1e, 0x95, 0x76, 0x72, 0x51, 0xd2, 0x88, 0xbb, 0x99, 0xa6, 0xa0, 0xd8, 0x60, 0x04, 0xec, - 0xcc, 0xa7, 0x3a, 0x60, 0x41, 0x3e, 0xdb, 0x5a, 0x58, 0xcb, 0xa2, 0x24, 0xb8, 0x4f, 0x06, 0x99, - 0xa6, 0x6f, 0xc1, 0x15, 0xd5, 0x74, 0x8f, 0xaf, 0x12, 0xfc, 0x48, 0x6c, 0x75, 0xd9, 0x3a, 0xc0, - 0x9b, 0x17, 0x33, 0x83, 0xdf, 0x62, 0x34, 0xfc, 0x84, 0x7c, 0xcf, 0xa1, 0xa2, 0x87, 0x4f, 0x41, - 0x23, 0xdb, 0x03, 0xb7, 0x07, 0xd1, 0x58, 0x94, 0x89, 0x2c, 0xa4, 0x1b, 0x33, 0x9b, 0x15, 0x0d, - 0xdf, 0x84, 0xa5, 0x31, 0x0d, 0x99, 0x21, 0xc9, 0xed, 0xf4, 0xfc, 0x70, 0x3b, 0x66, 0x53, 0x8f, - 0x19, 0xcf, 0xc3, 0x9e, 0xaf, 0x36, 0xcd, 0x23, 0xe3, 0x3d, 0x64, 0x48, 0x16, 0xf8, 0x3a, 0x84, - 0x5a, 0x91, 0x87, 0x83, 0xa8, 0xeb, 0x53, 0xd9, 0x44, 0x3c, 0xbf, 0xd6, 0x3b, 0x84, 0x36, 0x25, - 0x42, 0x50, 0x33, 0xc1, 0xc4, 0x99, 0x35, 0x2b, 0x08, 0xfd, 0xc0, 0x8f, 0x88, 0xc5, 0x63, 0x85, - 0x68, 0x58, 0x95, 0x82, 0x51, 0xc9, 0xb6, 0x5d, 0x41, 0xc2, 0x96, 0xc9, 0x71, 0x3d, 0xb0, 0xdd, - 0x8a, 0x13, 0xf6, 0xd2, 0x3d, 0xd4, 0x86, 0x7a, 0xd8, 0x10, 0x24, 0xa3, 0x3d, 0x04, 0xbe, 0xef, - 0x5a, 0x91, 0xdd, 0x25, 0xed, 0xbe, 0x9b, 0xe1, 0x61, 0x3a, 0xe9, 0x61, 0xd7, 0xf7, 0xdd, 0xa6, - 0x24, 0x89, 0x7b, 0x30, 0x7e, 0x5d, 0x83, 0x6a, 0xaa, 0xe0, 0x8e, 0x9d, 0x79, 0x79, 0x4c, 0x10, - 0xf5, 0x79, 0xd2, 0x0d, 0x93, 0x33, 0x6f, 0x12, 0x1a, 0x4d, 0xa0, 0x49, 0xd4, 0x7f, 0x03, 0xaa, - 0x3c, 0x81, 0x21, 0x5b, 0xe5, 0x86, 0x5a, 0x25, 0xae, 0x65, 0x42, 0x14, 0xff, 0x2f, 0x2a, 0x82, - 0xc5, 0x39, 0xd0, 0xf8, 0x4f, 0x0d, 0xa6, 0x33, 0x85, 0x7f, 0x13, 0x72, 0xf2, 0x39, 0xa8, 0xa7, - 0x38, 0xb1, 0x0e, 0xd7, 0x25, 0x33, 0x0b, 0x63, 0x98, 0x79, 0xb4, 0x6e, 0xd6, 0xa2, 0xb4, 0xd7, - 0x7f, 0x0a, 0x6a, 0x3c, 0xba, 0xa8, 0x31, 0xf3, 0x43, 0xfb, 0x71, 0xbe, 0x4b, 0x94, 0x83, 0x56, - 0x8f, 0x92, 0x0f, 0x36, 0x6a, 0x8a, 0xd7, 0xa4, 0xb4, 0x74, 0x61, 0x0c, 0xbb, 0x6c, 0x54, 0x9a, - 0xfa, 0x32, 0x3e, 0x28, 0x41, 0x35, 0xd5, 0x33, 0x7a, 0x1d, 0x16, 0x23, 0xea, 0x87, 0xc4, 0xda, - 0xc3, 0xd4, 0xee, 0xa6, 0xb5, 0x29, 0xe2, 0xcf, 0x1c, 0xc7, 0xf2, 0xbb, 0xc4, 0xc4, 0x12, 0xde, - 0xe4, 0x11, 0x88, 0x9b, 0x60, 0x24, 0xd6, 0x91, 0xb8, 0x95, 0x08, 0x29, 0xf3, 0x12, 0xdd, 0xe4, - 0x4b, 0x88, 0x6a, 0xb6, 0x0a, 0xb3, 0x01, 0x8b, 0x32, 0xfc, 0x51, 0x74, 0x47, 0x36, 0x90, 0xdb, - 0x3f, 0x89, 0xd8, 0xf6, 0x3b, 0x82, 0x76, 0x03, 0xae, 0x86, 0x78, 0x9f, 0x5a, 0xed, 0x3d, 0x4b, - 0x48, 0xc9, 0x25, 0xb8, 0x4d, 0xc2, 0xf4, 0x50, 0x22, 0x94, 0x2c, 0x33, 0xb2, 0xcd, 0x3d, 0x3e, - 0xa7, 0x6d, 0x4e, 0x93, 0x0c, 0xb8, 0x0e, 0x8b, 0xaa, 0x13, 0x95, 0x3e, 0x93, 0x6d, 0xe5, 0x12, - 0x24, 0xda, 0x36, 0x45, 0x2a, 0x4d, 0xb4, 0xf9, 0x02, 0x5c, 0xce, 0x0e, 0xdc, 0x23, 0x3d, 0xca, - 0x0e, 0x8f, 0xb2, 0xa5, 0x08, 0x22, 0x8d, 0xd4, 0xa8, 0x0f, 0x24, 0x81, 0x68, 0x7f, 0x03, 0xe4, - 0xb9, 0x27, 0x35, 0x9a, 0x08, 0x20, 0x32, 0x25, 0x13, 0x8f, 0xf4, 0x3a, 0x2c, 0xe2, 0x20, 0x70, - 0x07, 0xa3, 0xa2, 0x17, 0x61, 0x7c, 0x8e, 0x63, 0x87, 0x44, 0xff, 0x12, 0xcc, 0x88, 0x46, 0x49, - 0xef, 0x15, 0xf9, 0x86, 0x91, 0x81, 0x47, 0x3b, 0xef, 0xf5, 0x29, 0x39, 0x16, 0x0f, 0x1e, 0xd3, - 0x21, 0x46, 0x74, 0xfe, 0x80, 0x21, 0xd9, 0x19, 0x3a, 0xf6, 0x70, 0xd1, 0xe8, 0x71, 0x22, 0x97, - 0x51, 0x86, 0x13, 0x8d, 0x95, 0xf8, 0x6b, 0xb0, 0x90, 0xee, 0xe1, 0x08, 0xbb, 0x99, 0xe8, 0x82, - 0x92, 0x96, 0xef, 0x62, 0x57, 0x34, 0xf9, 0x1c, 0x2c, 0xa7, 0x9b, 0x0c, 0x89, 0x5b, 0xc4, 0x94, - 0xa5, 0xa4, 0xdd, 0x88, 0xb4, 0xdd, 0x61, 0xe9, 0x89, 0xb4, 0x62, 0xdd, 0xcd, 0x0a, 0xee, 0x45, - 0x98, 0x56, 0xdb, 0x1f, 0x41, 0x26, 0xd3, 0x89, 0x12, 0x28, 0x88, 0xd8, 0x12, 0xd9, 0x0d, 0x7d, - 0x4a, 0xe3, 0xf1, 0x75, 0xb9, 0x44, 0x4a, 0xa8, 0x20, 0xfb, 0x39, 0xb8, 0x34, 0xfc, 0x40, 0x30, - 0xcd, 0xc0, 0xac, 0xdc, 0x49, 0x0d, 0x3f, 0x71, 0x57, 0x61, 0xf0, 0x3d, 0x98, 0x12, 0x17, 0xe8, - 0x49, 0x1d, 0xaf, 0xf6, 0x84, 0x4a, 0xe6, 0x53, 0xd6, 0x99, 0x19, 0x1f, 0x68, 0x50, 0x56, 0x4f, - 0x80, 0xd0, 0x25, 0xc8, 0xf9, 0x81, 0x7c, 0x1e, 0x9f, 0xc9, 0x1f, 0xe5, 0xfc, 0xe0, 0xd4, 0x95, - 0x6b, 0x99, 0xed, 0x7f, 0xe1, 0x14, 0xdb, 0x7f, 0xe3, 0x27, 0x39, 0xa8, 0x3c, 0x38, 0xb4, 0x6d, - 0xae, 0x2e, 0x74, 0x35, 0xf3, 0x4a, 0x3f, 0xc3, 0x86, 0x78, 0x8b, 0x7f, 0xc2, 0x1d, 0xd6, 0xa5, - 0x91, 0x17, 0xe9, 0xa9, 0x97, 0x6d, 0x57, 0xa1, 0x1a, 0x75, 0xfd, 0x90, 0x5a, 0xa9, 0x37, 0xe9, - 0x26, 0x70, 0x10, 0xff, 0xfd, 0x03, 0xb6, 0x4f, 0xea, 0xe2, 0xc8, 0xf2, 0x0f, 0x49, 0xe8, 0x62, - 0xbe, 0x05, 0x51, 0x2f, 0x44, 0x65, 0x75, 0xd9, 0x42, 0x17, 0x47, 0x3b, 0x31, 0x56, 0x3d, 0xd3, - 0x40, 0x2b, 0x50, 0x63, 0xed, 0x3a, 0xb6, 0xb5, 0xcf, 0x7f, 0x09, 0x40, 0x54, 0x57, 0x40, 0x17, - 0x47, 0x77, 0xed, 0x3b, 0xfc, 0xa7, 0x00, 0x2e, 0x42, 0x39, 0xc6, 0x0a, 0xdf, 0x2e, 0x75, 0x24, - 0xea, 0x23, 0x50, 0xe7, 0x79, 0x2e, 0xbb, 0x8b, 0xbd, 0x0e, 0x4f, 0xc6, 0x09, 0x67, 0xae, 0x31, - 0xe8, 0x06, 0x07, 0xf2, 0xdc, 0xc0, 0x52, 0xbc, 0x71, 0x53, 0x99, 0x31, 0xd1, 0x42, 0x7a, 0xf3, - 0xbc, 0x42, 0x8b, 0xb4, 0x98, 0x68, 0x68, 0x7c, 0x5e, 0x08, 0x56, 0x4c, 0xef, 0x84, 0x43, 0xdc, - 0xd8, 0x9f, 0x37, 0x30, 0xbe, 0x93, 0x87, 0x32, 0x6b, 0xce, 0xb3, 0x99, 0xcf, 0xa2, 0x96, 0x54, - 0x86, 0x24, 0x9f, 0xcd, 0x90, 0x3c, 0x51, 0x27, 0xa3, 0x75, 0x8f, 0xa7, 0xf9, 0x39, 0x8d, 0x74, - 0xaa, 0xb4, 0x34, 0x9c, 0x2a, 0x3d, 0x6d, 0x4e, 0x73, 0x28, 0x5f, 0x59, 0x19, 0xcd, 0x57, 0x5e, - 0x85, 0x6a, 0xfc, 0xc0, 0x98, 0x8a, 0x8c, 0x66, 0xc1, 0x04, 0x05, 0x6a, 0x45, 0x63, 0x94, 0x5b, - 0x7d, 0x3a, 0xe5, 0xd6, 0x4e, 0x50, 0xee, 0xd7, 0x34, 0xa1, 0x1e, 0x7e, 0xf8, 0x51, 0x27, 0x0e, - 0x6d, 0xcc, 0x3d, 0x1a, 0xbf, 0xe7, 0x17, 0x27, 0x8e, 0x55, 0x98, 0xe2, 0x51, 0x53, 0x5d, 0xe8, - 0xa3, 0x0c, 0x21, 0x77, 0x40, 0x53, 0x52, 0x30, 0x5a, 0xf9, 0x1b, 0x0d, 0xf9, 0x31, 0xb4, 0x5c, - 0x3d, 0xea, 0x77, 0x1b, 0x8c, 0xd7, 0xa1, 0x24, 0x5f, 0x75, 0x70, 0x8d, 0x1d, 0x7b, 0xd2, 0xc2, - 0xd8, 0xbf, 0x68, 0x11, 0xa6, 0x22, 0xfe, 0xc2, 0x59, 0xda, 0x85, 0xfc, 0x32, 0xde, 0xe2, 0x19, - 0x5b, 0x7e, 0xb5, 0x9c, 0xad, 0x66, 0xd0, 0x1e, 0x5f, 0xcb, 0x93, 0xcb, 0xd4, 0xf2, 0xfc, 0xa5, - 0x06, 0x20, 0x56, 0x14, 0x3e, 0xf4, 0x89, 0x37, 0x83, 0x4b, 0x50, 0x0a, 0x08, 0x09, 0x19, 0x4a, - 0xb2, 0xc1, 0x3e, 0xb7, 0xda, 0xf1, 0xc5, 0x5e, 0x3e, 0x75, 0xb1, 0x37, 0x7c, 0x8d, 0x58, 0x38, - 0xe5, 0x35, 0xe2, 0x6b, 0xf2, 0x3c, 0xc9, 0x66, 0x48, 0x64, 0x8a, 0x37, 0x91, 0x1b, 0xdb, 0xcc, - 0x37, 0x19, 0x46, 0x9c, 0x31, 0xf9, 0xbf, 0xc6, 0x16, 0x54, 0x62, 0xf8, 0xe8, 0x1d, 0x96, 0x36, - 0xfe, 0x0e, 0x8b, 0x3f, 0x16, 0xa1, 0x89, 0x40, 0xf1, 0x3e, 0x69, 0x45, 0x46, 0x13, 0x90, 0x28, - 0xbe, 0xe1, 0x22, 0x51, 0x17, 0x45, 0xaf, 0x24, 0xe5, 0x05, 0xe2, 0xf1, 0x67, 0xb2, 0x4d, 0x4d, - 0x64, 0x17, 0xd7, 0x18, 0xa0, 0x3a, 0xe4, 0xe2, 0x8e, 0x73, 0x34, 0x32, 0xbe, 0x08, 0x73, 0x99, - 0x4e, 0xe5, 0x9d, 0x70, 0x23, 0xdb, 0x6b, 0xe1, 0xf1, 0x1d, 0x6c, 0x02, 0x6a, 0xb2, 0x3d, 0x61, - 0x93, 0x31, 0xd9, 0x54, 0x5c, 0xad, 0x41, 0x85, 0x1d, 0xf6, 0x78, 0x45, 0xc1, 0xb8, 0xd5, 0x4c, - 0x54, 0x1c, 0x94, 0x0f, 0xe4, 0x7f, 0xc6, 0x1a, 0xcc, 0x65, 0x7a, 0x91, 0x6c, 0xa4, 0x64, 0xa1, - 0x65, 0x64, 0x61, 0xf3, 0x2a, 0xbd, 0xbb, 0x84, 0x19, 0x50, 0xab, 0xb5, 0x7d, 0x3e, 0x15, 0xf7, - 0x5f, 0xd7, 0x78, 0xe5, 0x5c, 0x6a, 0x94, 0x73, 0xb8, 0x31, 0x4f, 0x9e, 0xea, 0xf3, 0xf8, 0x77, - 0x62, 0xcd, 0xfd, 0x3f, 0x88, 0xe2, 0xf4, 0x8d, 0x9b, 0xcd, 0xf3, 0x2c, 0x4e, 0xff, 0x38, 0xa0, - 0x20, 0x24, 0x87, 0x8e, 0xdf, 0x8f, 0x52, 0xbf, 0xaa, 0x20, 0x78, 0xd1, 0x15, 0x26, 0xfe, 0x4d, - 0x85, 0xeb, 0x50, 0x8f, 0xa9, 0x45, 0x67, 0xe2, 0x51, 0xde, 0xb4, 0x82, 0x3e, 0x4a, 0x55, 0xbc, - 0x4f, 0x0d, 0x57, 0xbc, 0x97, 0xe2, 0x99, 0x1b, 0x3f, 0x10, 0x15, 0xba, 0x7c, 0x72, 0x67, 0x2d, - 0xe7, 0x06, 0x94, 0xa2, 0xbe, 0x6d, 0x13, 0x59, 0x6b, 0x52, 0x36, 0xd5, 0xe7, 0xb9, 0x4c, 0xd6, - 0xd8, 0x84, 0xc5, 0xbb, 0x84, 0xaa, 0x5d, 0x1e, 0x77, 0xc0, 0xa7, 0xd7, 0x97, 0xf1, 0x4d, 0x0d, - 0x96, 0x46, 0xba, 0x39, 0x6b, 0xc9, 0x7c, 0x82, 0x05, 0x5f, 0xca, 0x97, 0xc0, 0xfc, 0x89, 0x49, - 0x75, 0x45, 0x66, 0xdc, 0x85, 0x8b, 0x29, 0xae, 0xee, 0x39, 0xec, 0x44, 0x38, 0x49, 0x45, 0x8e, - 0xf1, 0x2d, 0x0d, 0x96, 0xc7, 0xf5, 0xf4, 0xd3, 0x9f, 0xe2, 0x5f, 0x89, 0x9a, 0xe7, 0x0d, 0x5f, - 0x9e, 0x06, 0xfc, 0x70, 0xc2, 0x02, 0x56, 0xdb, 0x0f, 0x42, 0x71, 0xaf, 0x2d, 0x38, 0x2a, 0x33, - 0x00, 0xbf, 0xce, 0xe6, 0xe7, 0xc2, 0x20, 0x54, 0xc9, 0x37, 0x2b, 0x24, 0xef, 0xcb, 0xc8, 0x53, - 0x67, 0xf0, 0xe4, 0xd5, 0x55, 0xaa, 0x72, 0xab, 0xf0, 0xa4, 0x6a, 0x62, 0x24, 0x33, 0x8e, 0xc2, - 0x28, 0x45, 0x7a, 0xb1, 0xcf, 0x6b, 0xa6, 0x33, 0x53, 0x39, 0x6b, 0x01, 0xa3, 0x54, 0xa2, 0x53, - 0x0d, 0xfb, 0x5d, 0xf1, 0x96, 0x84, 0xaf, 0x2d, 0x51, 0xbf, 0x37, 0x89, 0xfc, 0x3e, 0x0d, 0x15, - 0xec, 0x76, 0xfc, 0xd0, 0xa1, 0xdd, 0x1e, 0x1f, 0xb0, 0xbe, 0xbe, 0x9c, 0x50, 0xcb, 0x8e, 0x6f, - 0x2a, 0x0a, 0x33, 0x21, 0x7e, 0x9a, 0x62, 0xb7, 0x3f, 0x11, 0xf5, 0xde, 0x09, 0x9f, 0x67, 0x2d, - 0x9c, 0x65, 0x28, 0xdb, 0xb2, 0xf3, 0xf8, 0xcc, 0x22, 0xbf, 0x99, 0x85, 0x88, 0x14, 0xec, 0xc1, - 0x61, 0xfc, 0x53, 0x1d, 0x1c, 0x70, 0xff, 0x90, 0x6f, 0x3f, 0x05, 0x52, 0x64, 0xaf, 0xc5, 0x1e, - 0x19, 0x38, 0x48, 0xa4, 0xaf, 0xbf, 0x97, 0x87, 0xda, 0x86, 0xdf, 0x0b, 0xb0, 0x4d, 0x05, 0x03, - 0xef, 0xc1, 0x02, 0x09, 0x43, 0xcb, 0xf1, 0x0e, 0xb1, 0xeb, 0xb4, 0xad, 0xec, 0x8e, 0xab, 0xba, - 0xfe, 0x91, 0xf4, 0xdd, 0x6c, 0xdc, 0x6a, 0x4b, 0x50, 0x37, 0xe5, 0x6e, 0xec, 0xde, 0x05, 0x13, - 0x91, 0x70, 0x18, 0x8a, 0x5c, 0xb8, 0xcc, 0xba, 0x0e, 0x64, 0x7d, 0xa9, 0x25, 0xcf, 0xe4, 0x71, - 0xc0, 0x14, 0x89, 0xae, 0xd5, 0xb1, 0x23, 0xa8, 0xa2, 0xd4, 0x16, 0x3f, 0xa7, 0xcb, 0x50, 0x7a, - 0xef, 0x82, 0xd9, 0x20, 0xe1, 0x78, 0x1c, 0xb2, 0x60, 0x89, 0x8d, 0x66, 0x8b, 0x4e, 0x2c, 0xc7, - 0xb3, 0x82, 0xd0, 0xef, 0x84, 0x24, 0x8a, 0x64, 0x5a, 0xec, 0xa5, 0xb1, 0x03, 0xc9, 0xff, 0xb7, - 0xbc, 0x5d, 0x49, 0x7d, 0xef, 0x82, 0x39, 0x4f, 0xc2, 0x51, 0x38, 0xda, 0x87, 0x65, 0x36, 0x00, - 0xf5, 0x7d, 0xab, 0x87, 0xbd, 0x81, 0x15, 0x10, 0xaf, 0xed, 0x78, 0x1d, 0x8b, 0xe2, 0xe8, 0x20, - 0x92, 0xdb, 0xc1, 0x1b, 0x63, 0xc7, 0x68, 0xf9, 0xfe, 0x03, 0xec, 0x0d, 0x76, 0x45, 0x83, 0x16, - 0xa3, 0xbf, 0x77, 0xc1, 0x5c, 0x24, 0xe1, 0x38, 0xcc, 0xad, 0x92, 0x34, 0x09, 0xe3, 0x0a, 0x5c, - 0x3a, 0x41, 0xe8, 0xc6, 0x8b, 0x70, 0xed, 0x89, 0x12, 0x33, 0xae, 0xc2, 0x95, 0x13, 0x67, 0x6b, - 0x5c, 0x83, 0xab, 0x4f, 0x60, 0x95, 0xed, 0x20, 0xea, 0x92, 0x46, 0xb9, 0xe4, 0x89, 0x7b, 0xf3, - 0x55, 0x98, 0x1d, 0xd2, 0xb9, 0xa3, 0xee, 0x59, 0x66, 0x82, 0x34, 0x97, 0x5b, 0x6d, 0x9e, 0x7c, - 0xf1, 0x3b, 0x59, 0x52, 0x71, 0xe7, 0x52, 0x97, 0x70, 0x45, 0x39, 0x54, 0xdc, 0x54, 0x3a, 0x5d, - 0x71, 0xd3, 0x50, 0x55, 0x4f, 0x79, 0xb8, 0xaa, 0xc7, 0xf8, 0x0b, 0x71, 0xd9, 0x2b, 0x26, 0x27, - 0xfd, 0xf8, 0x63, 0xd9, 0x94, 0xca, 0xc2, 0x58, 0xa5, 0x2a, 0x5f, 0x7d, 0x11, 0xa6, 0xd9, 0x51, - 0x3f, 0x24, 0x3d, 0xec, 0x78, 0x8e, 0xd7, 0x91, 0x05, 0xeb, 0xec, 0xfc, 0x6f, 0x2a, 0x18, 0x5a, - 0xe3, 0xf5, 0x0f, 0xac, 0x2d, 0x49, 0xfb, 0x98, 0x08, 0x7e, 0xb3, 0x31, 0xaa, 0x99, 0x12, 0x61, - 0x42, 0x9f, 0x7d, 0xd8, 0x3a, 0x13, 0x23, 0x6e, 0xf3, 0x13, 0xcf, 0xea, 0xdb, 0x70, 0xf1, 0xb1, - 0xbf, 0x84, 0x88, 0xe6, 0x41, 0x4f, 0xbe, 0x1e, 0xfa, 0x61, 0x0f, 0xbb, 0xfa, 0x05, 0xb4, 0x04, - 0x73, 0x09, 0xf4, 0x8e, 0x1f, 0xda, 0xbc, 0x88, 0x5d, 0xd7, 0x56, 0x5d, 0xb8, 0x7c, 0xd2, 0x4f, - 0x1f, 0xb2, 0xee, 0x64, 0x89, 0x78, 0xdf, 0xa5, 0x71, 0x77, 0x2b, 0x70, 0x39, 0x81, 0x6e, 0x8f, - 0xfc, 0x82, 0xa1, 0x28, 0x35, 0x48, 0x28, 0xc4, 0x0d, 0xb2, 0x9e, 0x5b, 0x7d, 0x19, 0x20, 0x51, - 0x1b, 0x9a, 0x82, 0xdc, 0xa3, 0xd7, 0xf4, 0x0b, 0xa8, 0x02, 0xc5, 0x47, 0xaf, 0xb5, 0x5a, 0xdb, - 0xba, 0xc6, 0x41, 0xeb, 0x7a, 0x6e, 0xf5, 0x63, 0x00, 0x49, 0xed, 0x24, 0x02, 0x98, 0x8a, 0x87, - 0x2e, 0x41, 0x7e, 0xdb, 0x3f, 0xd2, 0x35, 0x54, 0x86, 0xc2, 0x3d, 0xa7, 0xd3, 0xd5, 0x73, 0xab, - 0xaf, 0x42, 0x3d, 0x5b, 0x30, 0xc9, 0xba, 0x69, 0x6e, 0xe9, 0x17, 0xd8, 0x5f, 0x73, 0x43, 0xd7, - 0x78, 0x39, 0xc3, 0x86, 0x28, 0x67, 0x68, 0xea, 0xb9, 0xd5, 0x47, 0x50, 0x4d, 0x15, 0xdf, 0x31, - 0x5e, 0x1f, 0xfa, 0xf4, 0xa6, 0xeb, 0xfa, 0x47, 0xa4, 0xbd, 0xe3, 0x31, 0xb0, 0x10, 0x59, 0x0c, - 0xba, 0xe9, 0xf6, 0xfc, 0x88, 0x72, 0x84, 0x86, 0x1a, 0x30, 0x9f, 0x42, 0xf0, 0xe2, 0x07, 0x8e, - 0xc9, 0xad, 0xda, 0x90, 0xdb, 0x09, 0x18, 0x87, 0xbb, 0x7d, 0x2a, 0x58, 0xdd, 0x24, 0xae, 0x60, - 0x95, 0x8b, 0x3b, 0x87, 0x6a, 0x50, 0x56, 0x29, 0x23, 0x3d, 0xcf, 0xe6, 0xb5, 0xe5, 0x45, 0x24, - 0xa4, 0x7a, 0x01, 0xcd, 0xc1, 0xcc, 0x90, 0x22, 0xf4, 0x22, 0x42, 0x50, 0xe7, 0x5c, 0x2b, 0xef, - 0x8e, 0xf4, 0xa9, 0xd5, 0x35, 0xa8, 0xc4, 0x19, 0x34, 0xd6, 0xf3, 0x43, 0xdf, 0x23, 0x42, 0x88, - 0x9c, 0x44, 0xd7, 0xd8, 0x20, 0xaa, 0x81, 0x90, 0x4e, 0xf6, 0xb7, 0x6d, 0x19, 0x5f, 0x3b, 0xfb, - 0xfb, 0xfa, 0x05, 0xd6, 0xfa, 0x0e, 0xe6, 0x4d, 0x00, 0xa6, 0x9a, 0x34, 0x64, 0xaa, 0xcb, 0xad, - 0x7e, 0x5b, 0x83, 0x29, 0xf9, 0x03, 0xb7, 0xbc, 0x27, 0xf1, 0xbf, 0x7e, 0x01, 0x2d, 0xc0, 0x6c, - 0xab, 0xb5, 0x2d, 0x0a, 0x24, 0xe2, 0x59, 0x70, 0x79, 0xf0, 0x6c, 0xb0, 0x1c, 0x32, 0xc6, 0xe4, - 0x58, 0x83, 0x07, 0x71, 0x45, 0x43, 0x73, 0xb7, 0x1f, 0x75, 0x49, 0x5b, 0xcf, 0x33, 0xeb, 0x89, - 0xfb, 0x19, 0xf3, 0x23, 0x85, 0x7a, 0x01, 0x5d, 0x84, 0x85, 0x74, 0x97, 0x9b, 0xfe, 0x43, 0x9f, - 0x76, 0x1d, 0xaf, 0xa3, 0x17, 0x57, 0xaf, 0x43, 0xe9, 0xf6, 0x31, 0x0d, 0xf1, 0x4e, 0x20, 0x26, - 0xef, 0x07, 0xfa, 0x05, 0xa4, 0x43, 0x8d, 0x9d, 0x9f, 0x77, 0xdc, 0x36, 0xdf, 0x5a, 0xeb, 0xda, - 0xaa, 0x01, 0xb3, 0x23, 0x8b, 0x3f, 0x33, 0x83, 0x8d, 0xd0, 0xfe, 0xe4, 0x1b, 0xd6, 0xcf, 0xfb, - 0xa1, 0x7e, 0xe1, 0xd6, 0x4b, 0x7f, 0xff, 0x07, 0x65, 0xed, 0x07, 0x1f, 0xbe, 0xa0, 0xfd, 0xf8, - 0xc3, 0x17, 0xb4, 0x7f, 0xfa, 0xf0, 0x05, 0xed, 0x77, 0xff, 0xe5, 0x85, 0x0b, 0xa0, 0xfb, 0x61, - 0x67, 0x8d, 0x3a, 0x07, 0x87, 0x6b, 0x07, 0x87, 0xfc, 0xa7, 0xd6, 0xf7, 0xa6, 0xf8, 0x9f, 0xd7, - 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0xeb, 0xa8, 0x63, 0xbd, 0xee, 0x5d, 0x00, 0x00, + // 6571 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0x5b, 0x6c, 0x1c, 0xc9, + 0x75, 0x28, 0x7b, 0x1e, 0x9c, 0x99, 0x33, 0xe4, 0xb0, 0xd9, 0x7c, 0x0d, 0x29, 0x69, 0x45, 0xf5, + 0x5a, 0xbb, 0x32, 0xed, 0xa5, 0xbc, 0xdc, 0x87, 0x9f, 0x77, 0xbd, 0x12, 0xa9, 0x07, 0x57, 0x94, + 0x48, 0xf4, 0xcc, 0x6a, 0xef, 0xe2, 0x5e, 0xbb, 0x5d, 0xec, 0x29, 0xce, 0x34, 0xd8, 0xd3, 0xdd, + 0xdb, 0x55, 0x43, 0x72, 0x7c, 0x71, 0x81, 0x2c, 0xf2, 0x00, 0x0c, 0x04, 0x4e, 0x62, 0x18, 0x70, + 0x00, 0x1b, 0x01, 0xf2, 0x61, 0x20, 0xce, 0x5f, 0x90, 0x9f, 0x3c, 0x3e, 0x82, 0x00, 0xfe, 0x70, + 0x82, 0x18, 0x36, 0x10, 0x04, 0x0e, 0x1c, 0xc0, 0x48, 0x36, 0x40, 0xbe, 0xf3, 0x13, 0x24, 0xf9, + 0x08, 0x12, 0xd4, 0xab, 0x1f, 0x33, 0x23, 0x8a, 0x1a, 0x51, 0xb2, 0x93, 0x2f, 0x4e, 0x9f, 0x73, + 0xaa, 0xea, 0xd4, 0x39, 0xa7, 0x4e, 0x9d, 0x3a, 0x75, 0x8a, 0x30, 0x7d, 0x78, 0x14, 0x85, 0x4e, + 0xb8, 0xbf, 0x1e, 0x46, 0x01, 0x0d, 0x8c, 0x92, 0xfc, 0x5c, 0x99, 0xea, 0x62, 0x8a, 0x14, 0x78, + 0x65, 0x1a, 0x47, 0x51, 0x10, 0xc5, 0x9f, 0xf3, 0xed, 0xa0, 0x1d, 0xf0, 0x9f, 0xd7, 0xd9, 0x2f, + 0x09, 0x9d, 0x89, 0x7a, 0x84, 0xf2, 0x9f, 0x12, 0x50, 0x6b, 0x61, 0xd4, 0xf2, 0x02, 0xe7, 0x50, + 0xf5, 0x42, 0x23, 0xe4, 0x60, 0xd5, 0x8b, 0xd9, 0x02, 0xb8, 0x83, 0xa9, 0x85, 0x3f, 0xe8, 0x61, + 0x42, 0x8d, 0x35, 0x28, 0x39, 0x81, 0x4f, 0xf1, 0x09, 0xad, 0x6b, 0xab, 0xda, 0xb5, 0xea, 0x86, + 0xbe, 0xae, 0x58, 0xdb, 0x14, 0x70, 0x4b, 0x11, 0x18, 0x3a, 0xe4, 0x0f, 0x71, 0xbf, 0x9e, 0x5b, + 0xd5, 0xae, 0x4d, 0x59, 0xec, 0xa7, 0x51, 0x87, 0xd2, 0x11, 0x8e, 0x88, 0x1b, 0xf8, 0xf5, 0xfc, + 0xaa, 0x76, 0xad, 0x60, 0xa9, 0x4f, 0xf3, 0x23, 0x0d, 0xaa, 0x7c, 0x18, 0x12, 0x06, 0x3e, 0xc1, + 0xc6, 0xab, 0x30, 0x15, 0xe1, 0xb6, 0x1b, 0xf8, 0x36, 0x9f, 0x93, 0x1c, 0xac, 0xb6, 0xae, 0x66, + 0x78, 0x8b, 0xfd, 0xb5, 0xaa, 0x82, 0x86, 0x7f, 0x18, 0x2f, 0x43, 0x51, 0xd0, 0xe6, 0x38, 0xed, + 0x6c, 0xcc, 0xd8, 0x3d, 0xdc, 0x17, 0xe4, 0x02, 0x6f, 0xcc, 0x43, 0xf1, 0x08, 0x79, 0x3d, 0xcc, + 0x79, 0x98, 0xb2, 0xc4, 0x87, 0x71, 0x01, 0x2a, 0x7e, 0x40, 0xed, 0x83, 0xa0, 0xe7, 0xb7, 0xea, + 0x85, 0x55, 0xed, 0x5a, 0xd9, 0x2a, 0xfb, 0x01, 0xbd, 0xcd, 0xbe, 0x8d, 0xb7, 0x60, 0x06, 0x9f, + 0x60, 0xc7, 0x6e, 0x61, 0x8a, 0x5c, 0x8f, 0xd8, 0x47, 0x1b, 0xf5, 0x49, 0x3e, 0xca, 0x62, 0x3c, + 0xca, 0xad, 0x13, 0xec, 0x6c, 0x09, 0xf4, 0xc3, 0x0d, 0x6b, 0x1a, 0xa7, 0x3f, 0xdf, 0x29, 0x94, + 0x8b, 0xfa, 0xa4, 0xf9, 0x2f, 0x1a, 0x54, 0x1b, 0x0e, 0xf2, 0xc7, 0x11, 0xe6, 0x05, 0xa8, 0x10, + 0x8a, 0x22, 0x6a, 0x27, 0x22, 0x2d, 0x73, 0xc0, 0x3d, 0xdc, 0x67, 0x33, 0xf2, 0xdc, 0xae, 0x4b, + 0xf9, 0x8c, 0xa6, 0x2d, 0xf1, 0x91, 0x96, 0x76, 0x21, 0x23, 0x6d, 0x63, 0x19, 0xca, 0x87, 0xb8, + 0x6f, 0x07, 0xbe, 0xd7, 0xaf, 0x17, 0xf9, 0x54, 0x4b, 0x87, 0xb8, 0xbf, 0xeb, 0x7b, 0x5c, 0x45, + 0x11, 0x66, 0x74, 0x98, 0xcf, 0xb0, 0x6c, 0xa9, 0x4f, 0x63, 0x09, 0x4a, 0xd8, 0x6f, 0xf1, 0xf1, + 0x4b, 0x7c, 0xfc, 0x49, 0xec, 0xb7, 0xd8, 0xe8, 0x97, 0xa1, 0x4a, 0x50, 0x37, 0xf4, 0xb0, 0x4d, + 0x28, 0x0e, 0xeb, 0x65, 0xce, 0x03, 0x08, 0x50, 0x83, 0xe2, 0xd0, 0xfc, 0x2d, 0x0d, 0xa6, 0xc4, + 0xbc, 0xc7, 0xd7, 0xee, 0x55, 0x28, 0x86, 0xc8, 0x8d, 0x48, 0x3d, 0xb7, 0x9a, 0xbf, 0x56, 0xdd, + 0x98, 0x49, 0xb4, 0x7b, 0xb4, 0x87, 0xdc, 0xc8, 0x12, 0xd8, 0xc4, 0x08, 0xf2, 0xa7, 0x1b, 0x81, + 0xf9, 0xef, 0x45, 0x98, 0xd9, 0x8b, 0xf0, 0x71, 0xe4, 0x52, 0x3c, 0x8e, 0x3e, 0xae, 0x43, 0xa5, + 0xdb, 0xa3, 0x88, 0xba, 0x81, 0xaf, 0x78, 0x4a, 0x06, 0xbb, 0x2f, 0x31, 0x56, 0x42, 0x63, 0x5c, + 0x81, 0xa9, 0x30, 0x72, 0xbb, 0x28, 0xea, 0xdb, 0x6c, 0xb1, 0x49, 0xe3, 0xab, 0x4a, 0xd8, 0x4e, + 0xe0, 0x1c, 0x1a, 0x2f, 0xc2, 0xb4, 0xd0, 0x71, 0x56, 0x6d, 0x53, 0x1c, 0xf8, 0x30, 0xd1, 0x1d, + 0x6b, 0x6f, 0x53, 0xea, 0x71, 0xdd, 0x15, 0xac, 0x12, 0xfb, 0x6e, 0x52, 0xcf, 0xd8, 0x80, 0x05, + 0x72, 0xe8, 0x86, 0xb6, 0x13, 0xf8, 0x84, 0x46, 0xc8, 0xf5, 0xa9, 0xed, 0x74, 0xb0, 0x73, 0x28, + 0x35, 0x39, 0xc7, 0x90, 0x9b, 0x31, 0x6e, 0x93, 0xa1, 0x8c, 0xff, 0x03, 0x73, 0x21, 0x26, 0xc4, + 0xed, 0xba, 0x84, 0xba, 0x8e, 0x8d, 0x1c, 0x31, 0xa3, 0xd2, 0x6a, 0xfe, 0x5a, 0x6d, 0x63, 0x2d, + 0x9e, 0xd1, 0x80, 0xa8, 0xd6, 0xf7, 0x92, 0x36, 0x37, 0x78, 0x13, 0xcb, 0x08, 0x07, 0x41, 0x84, + 0xf1, 0x4a, 0x4f, 0x7c, 0x9b, 0xb8, 0x5f, 0xc5, 0xdc, 0x2c, 0x0a, 0x56, 0x89, 0x9e, 0xf8, 0x0d, + 0xf7, 0xab, 0xd8, 0x30, 0x61, 0xfa, 0x20, 0x88, 0xec, 0x5e, 0xd8, 0x42, 0x14, 0xdb, 0x94, 0xd4, + 0x2b, 0x1c, 0x5f, 0x3d, 0x08, 0xa2, 0x77, 0x39, 0xac, 0x49, 0x18, 0x4d, 0xd7, 0xf5, 0x6d, 0x27, + 0xe8, 0x76, 0x5d, 0xca, 0x68, 0x40, 0xd0, 0x74, 0x5d, 0x7f, 0x93, 0xc3, 0x9a, 0xc4, 0xb8, 0x06, + 0x7a, 0x8f, 0x60, 0x1b, 0x91, 0xbe, 0xef, 0x48, 0xca, 0x7a, 0x95, 0x4f, 0xb7, 0xd6, 0x23, 0xf8, + 0x06, 0x03, 0x0b, 0x5a, 0x63, 0x15, 0xaa, 0x04, 0x3b, 0x81, 0xdf, 0x42, 0x91, 0x8b, 0x49, 0x7d, + 0x6a, 0x35, 0xcf, 0xe4, 0x9f, 0x02, 0x19, 0x17, 0x01, 0x68, 0xc4, 0x96, 0x05, 0xb6, 0x43, 0xa7, + 0x3e, 0x2d, 0x7c, 0x00, 0x8d, 0xfa, 0xbb, 0x3e, 0xde, 0x73, 0x38, 0x37, 0xe8, 0x24, 0xc5, 0x4d, + 0x4d, 0x72, 0x83, 0x4e, 0x62, 0x6e, 0xde, 0x86, 0x19, 0x44, 0x08, 0x8e, 0xd8, 0xf4, 0x6d, 0x0f, + 0x1f, 0x61, 0xaf, 0x3e, 0xb3, 0xaa, 0x5d, 0xab, 0x6d, 0x2c, 0xc5, 0x92, 0xbc, 0xa1, 0xf0, 0x3b, + 0x0c, 0x6d, 0xd5, 0x50, 0xe6, 0xdb, 0xdc, 0x87, 0xd9, 0x21, 0xd9, 0x1a, 0x2b, 0xb0, 0xd8, 0xb8, + 0xb7, 0xbd, 0x67, 0xef, 0xdd, 0x6a, 0x34, 0xb6, 0xef, 0x6f, 0x37, 0x9a, 0xdb, 0x9b, 0xf6, 0xe6, + 0xdd, 0x5b, 0x9b, 0xf7, 0xf4, 0x09, 0xa3, 0x0e, 0xf3, 0x5b, 0xbb, 0x23, 0x30, 0x9a, 0xb1, 0x04, + 0x73, 0x5b, 0xbb, 0xf6, 0xe6, 0xee, 0x83, 0x46, 0xd3, 0xba, 0xb1, 0xfd, 0xa0, 0x29, 0x11, 0x39, + 0xf3, 0x3f, 0x34, 0xd0, 0x13, 0x85, 0x8e, 0xbf, 0x26, 0x3f, 0x0e, 0x93, 0x1c, 0x3b, 0xbc, 0x00, + 0xe2, 0xd5, 0x26, 0x09, 0x86, 0x55, 0x99, 0x1f, 0x56, 0xe5, 0xcb, 0xa0, 0x0b, 0xd1, 0xa7, 0xc8, + 0xc4, 0x0a, 0x98, 0x0e, 0x98, 0x06, 0x62, 0xc2, 0x11, 0xde, 0xb8, 0xf8, 0x04, 0xde, 0xd8, 0xfc, + 0x7e, 0x01, 0x16, 0x53, 0x42, 0x66, 0x6b, 0xef, 0x7f, 0x8a, 0x0b, 0x18, 0x5a, 0x56, 0x93, 0x23, + 0x97, 0x95, 0x4b, 0xec, 0x03, 0x37, 0x22, 0x54, 0xf0, 0x51, 0xe2, 0x96, 0x5e, 0x75, 0xc9, 0x6d, + 0x06, 0xe3, 0x7c, 0x5c, 0x81, 0xa9, 0x63, 0xc4, 0x54, 0xe0, 0x76, 0x71, 0xd0, 0xa3, 0x7c, 0xf5, + 0xe6, 0xad, 0x2a, 0x83, 0x35, 0x05, 0xc8, 0xa8, 0x43, 0xf1, 0x20, 0x88, 0x1c, 0xcc, 0x57, 0x6e, + 0xf9, 0x66, 0xae, 0xae, 0x59, 0x02, 0xc0, 0x26, 0x11, 0x61, 0xda, 0x8b, 0x7c, 0x9b, 0x6f, 0xad, + 0x62, 0xdd, 0x96, 0xad, 0x29, 0x01, 0x7c, 0xc8, 0x61, 0xc3, 0x16, 0x51, 0x1d, 0x65, 0x11, 0x33, + 0xdc, 0x81, 0xd9, 0xf8, 0xc4, 0x25, 0x14, 0xfb, 0x0e, 0xae, 0x4f, 0x89, 0xb5, 0xcd, 0xc1, 0xb7, + 0x14, 0xd4, 0x78, 0x05, 0xe6, 0xb8, 0x44, 0xd8, 0x8e, 0x66, 0xbb, 0x07, 0x82, 0x9e, 0xc8, 0x25, + 0xac, 0x33, 0x14, 0xdb, 0xdc, 0xb6, 0x0f, 0x78, 0x0b, 0x62, 0x6c, 0xb1, 0xd9, 0x1d, 0x62, 0xbb, + 0x17, 0xda, 0xdd, 0xa0, 0x85, 0xf9, 0x4a, 0xae, 0x6d, 0x98, 0x89, 0xb7, 0xcb, 0x1a, 0xc7, 0x7b, + 0xe8, 0x10, 0xbf, 0x1b, 0xde, 0x0f, 0x5a, 0xd8, 0x82, 0xe3, 0xf8, 0xb7, 0xf9, 0xcf, 0x1a, 0xd4, + 0x07, 0x28, 0xef, 0xe1, 0xbe, 0x85, 0x49, 0xcf, 0xa3, 0xc6, 0x67, 0xa1, 0x40, 0xfb, 0x21, 0xe6, + 0x56, 0x54, 0xdb, 0xb8, 0xfa, 0xa8, 0xae, 0xe3, 0x06, 0xcd, 0x7e, 0x88, 0x2d, 0xde, 0x24, 0x89, + 0x4f, 0x72, 0xe9, 0xf8, 0xe4, 0x22, 0x54, 0x12, 0x29, 0xe4, 0xf9, 0xc4, 0x12, 0x80, 0xf1, 0x06, + 0x2c, 0xb1, 0x59, 0xe2, 0x96, 0x7d, 0xec, 0xd2, 0x0e, 0xdb, 0x01, 0x0e, 0x3c, 0xd7, 0x49, 0x2d, + 0xa1, 0x79, 0x81, 0x7e, 0xcf, 0xa5, 0x9d, 0x4d, 0x89, 0x6c, 0x12, 0x63, 0x1d, 0xf8, 0xa6, 0x60, + 0x47, 0x98, 0x04, 0xde, 0x91, 0xeb, 0xb7, 0x85, 0x41, 0x08, 0x07, 0x3a, 0xcb, 0x50, 0x96, 0xc2, + 0x30, 0x6e, 0xcd, 0x7f, 0xca, 0xc1, 0xd2, 0xd0, 0xca, 0x79, 0x2e, 0x0e, 0xe4, 0x32, 0x54, 0x06, + 0x9c, 0x07, 0xb7, 0xb8, 0xb2, 0xa3, 0x6c, 0xa5, 0xae, 0xa4, 0xc6, 0xe6, 0x3b, 0x25, 0xcc, 0x51, + 0x48, 0x6e, 0x11, 0x26, 0xa5, 0x1d, 0x16, 0xb9, 0xcf, 0x97, 0x5f, 0xc6, 0x25, 0x80, 0x38, 0xe2, + 0x63, 0x0b, 0x25, 0xcf, 0x44, 0xaa, 0x42, 0xbe, 0x91, 0x5e, 0xa6, 0xf4, 0x04, 0x5e, 0xc6, 0xf8, + 0x3c, 0x8b, 0xa4, 0x98, 0x6a, 0x49, 0xbd, 0xcc, 0x67, 0x77, 0xe5, 0xb1, 0x46, 0x60, 0xa9, 0x16, + 0xe6, 0x77, 0x35, 0x58, 0x49, 0x51, 0x59, 0x81, 0xe7, 0xed, 0xa3, 0xf1, 0xdc, 0xd4, 0x90, 0x4b, + 0xc9, 0x8d, 0x70, 0x29, 0x43, 0x7e, 0x23, 0x3f, 0xec, 0x37, 0x0c, 0x28, 0x1c, 0xe2, 0x3e, 0x33, + 0x28, 0x26, 0x45, 0xfe, 0xdb, 0xfc, 0x53, 0x0d, 0x2e, 0x8c, 0xe4, 0xf3, 0xb9, 0x18, 0xc5, 0x08, + 0x15, 0xe5, 0x9f, 0x64, 0x23, 0xf8, 0x03, 0x0d, 0xe6, 0x9a, 0x27, 0xfe, 0x5d, 0x8c, 0x22, 0x7a, + 0x13, 0xa3, 0xb1, 0x4e, 0x39, 0x83, 0x4e, 0x3d, 0x77, 0x06, 0xa7, 0x9e, 0x1f, 0xa1, 0x81, 0x97, + 0x60, 0x06, 0xb5, 0x8e, 0x5c, 0x82, 0xed, 0xd8, 0xb7, 0xcb, 0xcd, 0x4f, 0x80, 0x77, 0x84, 0x87, + 0x37, 0x7f, 0xa8, 0xc1, 0x7c, 0x96, 0xe7, 0xe7, 0x70, 0x64, 0x4a, 0xef, 0x38, 0xf9, 0xec, 0x8e, + 0x33, 0x42, 0x07, 0x85, 0x27, 0xd1, 0xc1, 0x3f, 0xe4, 0x60, 0x81, 0x87, 0xa2, 0xcd, 0x13, 0xbf, + 0x41, 0x11, 0xed, 0x91, 0x71, 0xb4, 0x70, 0x19, 0x94, 0xc4, 0x53, 0x07, 0x24, 0x90, 0x20, 0x76, + 0x48, 0x59, 0x82, 0x92, 0x98, 0x81, 0x32, 0xed, 0x49, 0x3e, 0x01, 0xc2, 0xe4, 0xee, 0x20, 0xcf, + 0xc3, 0x91, 0x2d, 0x74, 0x94, 0x04, 0x1d, 0x02, 0xdc, 0x60, 0xd0, 0x26, 0xf7, 0x16, 0x4e, 0x2f, + 0x8a, 0xb0, 0xcf, 0x49, 0xc4, 0xb6, 0x5b, 0x91, 0x90, 0x26, 0x31, 0x5e, 0x85, 0x85, 0x48, 0x1a, + 0x3f, 0xdb, 0x80, 0x98, 0x63, 0xe1, 0xde, 0x59, 0xc6, 0xde, 0x86, 0x42, 0x6e, 0x1f, 0x3c, 0x08, + 0x28, 0xdf, 0x86, 0x8c, 0x35, 0x98, 0xe5, 0xfb, 0xa5, 0x9d, 0x8e, 0x5d, 0xc5, 0x5e, 0x3c, 0xc3, + 0x11, 0x8d, 0x24, 0x78, 0xfd, 0x02, 0xac, 0x24, 0x3e, 0x3a, 0x1d, 0xb0, 0x73, 0x9b, 0x2b, 0xf3, + 0x46, 0xf5, 0x98, 0x62, 0xc0, 0xbf, 0x98, 0x3f, 0xca, 0xc1, 0xe2, 0xa0, 0x8c, 0x7f, 0xbe, 0x56, + 0x73, 0x15, 0x6a, 0xd2, 0x9d, 0x67, 0x03, 0x9d, 0x69, 0x01, 0x55, 0x8b, 0xe2, 0x65, 0x98, 0x14, + 0x27, 0x12, 0x2e, 0xf0, 0x5a, 0xea, 0xd8, 0x27, 0x4f, 0x1d, 0x12, 0x6d, 0xac, 0x43, 0x85, 0x0f, + 0xe5, 0xfa, 0x07, 0x81, 0x3c, 0x9a, 0x27, 0x7c, 0x31, 0x19, 0x6c, 0xfb, 0x07, 0x81, 0xc5, 0xd9, + 0x61, 0xbf, 0x9e, 0xd6, 0xb9, 0x9b, 0x1f, 0x6a, 0xb0, 0xc2, 0x25, 0xda, 0x90, 0xe7, 0x07, 0xbe, + 0xd2, 0xc7, 0x32, 0x5d, 0xe5, 0x56, 0x73, 0x89, 0x5b, 0x3d, 0x93, 0xc7, 0x30, 0xff, 0x53, 0x83, + 0x0b, 0x23, 0x79, 0x78, 0x0e, 0xaa, 0x7d, 0x19, 0x8a, 0x4c, 0x96, 0x6c, 0x31, 0xe5, 0x47, 0xcb, + 0x5a, 0xe0, 0x8d, 0x0b, 0xe9, 0x7d, 0x5b, 0xe8, 0x38, 0xd9, 0xb3, 0x9f, 0x36, 0x90, 0xff, 0x9e, + 0x06, 0xd3, 0x62, 0x81, 0x3c, 0xb3, 0x8d, 0x51, 0x69, 0x27, 0x9f, 0xd2, 0xce, 0xd9, 0x8c, 0x57, + 0x24, 0x7d, 0xac, 0xc9, 0x7d, 0xd7, 0xf7, 0x82, 0xb6, 0xf9, 0xd7, 0x1a, 0xd4, 0x14, 0xaf, 0xcf, + 0x41, 0x41, 0xc3, 0x3c, 0xe6, 0x47, 0x2d, 0xb0, 0xa7, 0xf5, 0xde, 0x6d, 0x98, 0xde, 0xee, 0x86, + 0x41, 0x14, 0x2b, 0x20, 0x73, 0x28, 0xd2, 0xce, 0x70, 0x28, 0x1a, 0x66, 0x34, 0x37, 0x82, 0x51, + 0xf3, 0x7d, 0xa8, 0xa9, 0x81, 0xc6, 0x97, 0xde, 0x7c, 0x5a, 0x7a, 0x15, 0x95, 0x0a, 0xfa, 0x06, + 0xd3, 0x8c, 0x87, 0x91, 0xdf, 0x0b, 0xcf, 0x27, 0xcd, 0x79, 0xa6, 0xfd, 0x3e, 0xbb, 0x9f, 0x14, + 0x06, 0xf6, 0x13, 0xf3, 0x9b, 0x1a, 0xcc, 0xc4, 0x4c, 0xfd, 0xc2, 0xd8, 0x8b, 0x79, 0x08, 0x33, + 0x37, 0x11, 0x75, 0x3a, 0x63, 0xa6, 0x84, 0x47, 0xf9, 0xba, 0x47, 0x27, 0x85, 0xff, 0x4e, 0x03, + 0x3d, 0x19, 0xed, 0x99, 0xe7, 0x0e, 0x9f, 0x72, 0x2d, 0x24, 0xb2, 0x2e, 0x9e, 0x2e, 0xeb, 0x77, + 0x0a, 0xe5, 0xbc, 0x5e, 0x30, 0xff, 0x1f, 0xcc, 0xf3, 0xc9, 0x3d, 0xf3, 0xd8, 0x7e, 0x84, 0x0b, + 0x33, 0xff, 0x50, 0x83, 0x85, 0x81, 0xd1, 0x9f, 0x83, 0x91, 0x3d, 0x6d, 0xbc, 0xfe, 0xfb, 0x1a, + 0xcc, 0x34, 0x1c, 0xe4, 0x8f, 0x9b, 0xb1, 0xb9, 0x0c, 0xd5, 0x2e, 0x3a, 0x19, 0x10, 0x16, 0x74, + 0xd1, 0x89, 0x12, 0x55, 0x26, 0xcb, 0x9e, 0x7f, 0x54, 0x96, 0xbd, 0x90, 0xce, 0xb2, 0xa7, 0xd2, + 0xe2, 0xc5, 0x74, 0x5a, 0xdc, 0xfc, 0x89, 0x06, 0x7a, 0xc2, 0xec, 0x2f, 0xd2, 0x9e, 0xfc, 0xb4, + 0x4e, 0xff, 0x47, 0x1a, 0x18, 0x22, 0x2f, 0x80, 0xc7, 0xd5, 0xc4, 0x99, 0x0c, 0xf7, 0x8c, 0x7b, + 0xd8, 0x2b, 0x50, 0xa1, 0x27, 0x3e, 0x0f, 0xfd, 0xc4, 0xe1, 0x34, 0x3d, 0x72, 0xf3, 0xc4, 0x17, + 0xa1, 0x1f, 0x15, 0x3f, 0x92, 0x63, 0x6c, 0x31, 0xb5, 0x1c, 0xd8, 0x41, 0x30, 0x33, 0xa3, 0xff, + 0x06, 0x8b, 0xe1, 0x21, 0x54, 0xee, 0x6c, 0x8e, 0x23, 0xfb, 0x4b, 0x00, 0x04, 0x1d, 0x60, 0x3b, + 0x0c, 0x5c, 0x9f, 0x4a, 0xc1, 0x57, 0x18, 0x64, 0x8f, 0x01, 0xcc, 0x0e, 0x00, 0xeb, 0xf7, 0xd9, + 0x4b, 0xc0, 0xfc, 0x96, 0x06, 0xc6, 0x16, 0xf6, 0x30, 0xc5, 0x16, 0xf2, 0xdb, 0xf8, 0xdc, 0xaf, + 0xc5, 0x52, 0x4b, 0x33, 0x3f, 0x78, 0x63, 0xe5, 0x07, 0xd4, 0x3d, 0x90, 0x57, 0x60, 0xe2, 0xb6, + 0x0f, 0x04, 0x68, 0xd7, 0xf7, 0xfa, 0xe6, 0x97, 0x61, 0x2e, 0xc3, 0xd8, 0x79, 0x87, 0x1c, 0x7f, + 0xac, 0xc1, 0xea, 0x5e, 0x84, 0x43, 0x14, 0xe1, 0xdb, 0x1e, 0x22, 0x1d, 0xe6, 0x81, 0x9b, 0x81, + 0x34, 0xe8, 0xe7, 0x27, 0x87, 0x65, 0x28, 0x0f, 0x1c, 0x7a, 0x4b, 0x44, 0x1e, 0x77, 0x53, 0xbb, + 0x72, 0x31, 0xbb, 0x2b, 0x7b, 0x70, 0xe5, 0x14, 0xd6, 0xcf, 0x5b, 0x52, 0x3f, 0xd2, 0x60, 0xf9, + 0x7c, 0x44, 0x94, 0x9a, 0x51, 0x2e, 0x7b, 0x1d, 0x7a, 0xaa, 0xd7, 0x4f, 0x09, 0xaf, 0xf0, 0x48, + 0xe1, 0x15, 0xb3, 0xc2, 0xcb, 0x1c, 0x7a, 0x26, 0xb3, 0x87, 0x1e, 0x13, 0xc3, 0xca, 0xf3, 0x10, + 0xdc, 0x97, 0x60, 0xda, 0x42, 0xc7, 0xe7, 0x76, 0x75, 0x5f, 0x83, 0x9c, 0x73, 0xc0, 0x85, 0x53, + 0xb1, 0x72, 0xce, 0x81, 0xf9, 0xeb, 0x1a, 0xd4, 0x54, 0xff, 0xe7, 0xcc, 0xfa, 0x18, 0x17, 0xf4, + 0x66, 0x0b, 0x0c, 0x0b, 0x1d, 0x9f, 0x77, 0x68, 0x3a, 0x38, 0xe9, 0x00, 0xe6, 0x32, 0xa3, 0x3c, + 0xeb, 0x90, 0xd4, 0xfc, 0x1d, 0x8d, 0x6b, 0x71, 0xaf, 0x77, 0x4e, 0x5a, 0x1c, 0x2d, 0x59, 0x31, + 0xcd, 0x82, 0x9a, 0x26, 0x6b, 0x97, 0x5c, 0x2d, 0xb1, 0x9f, 0x6c, 0x11, 0x1c, 0x04, 0x91, 0xed, + 0x20, 0x22, 0xf3, 0x59, 0x93, 0x07, 0x41, 0xb4, 0x89, 0x08, 0x3b, 0x96, 0x29, 0xfe, 0xce, 0xdb, + 0x80, 0xff, 0x44, 0x4b, 0x74, 0x3a, 0xa6, 0x00, 0xce, 0x18, 0xf8, 0x0f, 0xa8, 0xd9, 0x98, 0x17, + 0xf3, 0x2f, 0xc4, 0xb7, 0x0c, 0x83, 0x32, 0x28, 0xa6, 0x65, 0xc0, 0x2c, 0x87, 0x52, 0x4f, 0xdc, + 0x20, 0x14, 0x2c, 0xfe, 0x9b, 0x6d, 0x20, 0x19, 0xde, 0xcf, 0x5b, 0x38, 0x7d, 0xd0, 0x2d, 0x74, + 0x2c, 0xf7, 0xa8, 0x67, 0xb1, 0xc0, 0xd3, 0xd3, 0x2d, 0x64, 0x54, 0xfe, 0x7f, 0x61, 0x36, 0x35, + 0xf4, 0x79, 0x4f, 0xec, 0x97, 0x34, 0x58, 0x50, 0x92, 0x1b, 0x7f, 0x7a, 0x67, 0x58, 0xcc, 0x8f, + 0x9e, 0x20, 0x82, 0xc5, 0x41, 0x0e, 0xce, 0x7b, 0x96, 0x3f, 0x14, 0xde, 0xf3, 0x39, 0x16, 0x03, + 0xa5, 0x4b, 0x7e, 0x0a, 0xd9, 0x92, 0x1f, 0x21, 0x98, 0x62, 0x2c, 0x98, 0x27, 0x2f, 0x01, 0x32, + 0xdb, 0x30, 0x13, 0x4f, 0x67, 0x7c, 0x59, 0x5d, 0x81, 0xfc, 0xe1, 0xd1, 0x23, 0x17, 0x2b, 0xc3, + 0x99, 0x5f, 0x13, 0xe6, 0xf1, 0x73, 0x89, 0x1a, 0x07, 0xdc, 0xa4, 0xb4, 0x93, 0x67, 0x1a, 0x27, + 0xfe, 0x58, 0x4b, 0xfc, 0xc8, 0xb8, 0xc6, 0xf2, 0x71, 0x98, 0x8c, 0x18, 0x77, 0x23, 0xef, 0xd3, + 0x04, 0xdf, 0x92, 0x80, 0x9d, 0x0c, 0x30, 0x72, 0x3a, 0x76, 0xda, 0x7e, 0x2a, 0x0c, 0xb2, 0x73, + 0x6e, 0x36, 0x64, 0x7a, 0x30, 0x9f, 0x9d, 0xd1, 0x33, 0xb5, 0x97, 0xff, 0x0f, 0xcb, 0xef, 0xfa, + 0xec, 0x6c, 0xb3, 0x85, 0x09, 0x8d, 0x82, 0xfe, 0xf3, 0x35, 0x19, 0x16, 0xeb, 0x8d, 0x1a, 0xfe, + 0xbc, 0xcd, 0xe4, 0x2b, 0x70, 0xc1, 0xc2, 0x6d, 0x97, 0x50, 0x1c, 0xb1, 0xe3, 0xeb, 0xee, 0x3e, + 0xc1, 0xd1, 0x11, 0x8e, 0xc6, 0x99, 0xe7, 0x02, 0x4c, 0x76, 0xd1, 0x09, 0x8b, 0x5b, 0x45, 0x90, + 0x5c, 0xec, 0xa2, 0x93, 0x26, 0x31, 0x5f, 0x87, 0x8b, 0xa3, 0x47, 0x90, 0x53, 0x89, 0xf9, 0xd2, + 0xb2, 0x31, 0x68, 0x9d, 0x5f, 0x50, 0x3c, 0x23, 0xa6, 0x7a, 0xb0, 0x3c, 0xa2, 0xfb, 0xd3, 0x38, + 0x62, 0x26, 0xec, 0x12, 0xdb, 0xf1, 0x30, 0x12, 0xa7, 0x80, 0xb2, 0x55, 0x72, 0x09, 0xcf, 0xb3, + 0x9e, 0x39, 0x7d, 0x62, 0x7e, 0x19, 0x96, 0x2d, 0xdc, 0x0d, 0x44, 0xaa, 0xe0, 0x19, 0x4c, 0x6b, + 0x03, 0x56, 0x46, 0xf5, 0x7f, 0xaa, 0xa4, 0x7f, 0x43, 0x83, 0xa5, 0xbd, 0x4e, 0x9f, 0xb8, 0x0e, + 0xf2, 0x9e, 0x26, 0x43, 0x36, 0x9a, 0xa5, 0x31, 0xf2, 0x62, 0xe6, 0xfb, 0x50, 0x1f, 0x66, 0xe8, + 0x54, 0xdd, 0xc4, 0x0a, 0xc8, 0x3d, 0x46, 0x01, 0xdf, 0xd1, 0xc0, 0x68, 0x84, 0x9e, 0x4b, 0x2d, + 0xbe, 0x32, 0xc6, 0xcb, 0x04, 0x56, 0x08, 0xeb, 0x21, 0x59, 0xce, 0xa2, 0x9c, 0x84, 0x03, 0xd9, + 0xa4, 0x2e, 0x01, 0xc4, 0x04, 0x2a, 0x75, 0x5a, 0x51, 0x58, 0x62, 0xac, 0x40, 0xc5, 0x25, 0x76, + 0x84, 0x8e, 0xed, 0xc3, 0x23, 0xe5, 0x0b, 0x5d, 0x62, 0xa1, 0xe3, 0x7b, 0x47, 0xe6, 0xf7, 0x35, + 0x98, 0xcb, 0xb0, 0x37, 0xfe, 0x72, 0x7f, 0x09, 0x0a, 0x1e, 0x3e, 0xa0, 0x32, 0x93, 0x52, 0x5b, + 0x97, 0xe5, 0xde, 0xa2, 0x63, 0xce, 0x31, 0xc7, 0x1b, 0xd7, 0xa0, 0x18, 0xb9, 0xed, 0x0e, 0x95, + 0x19, 0xa4, 0x51, 0x84, 0x82, 0xc0, 0xb8, 0xc6, 0x1c, 0x73, 0x9b, 0xdf, 0xce, 0x88, 0x54, 0xd9, + 0x00, 0xad, 0xa5, 0xd0, 0xe6, 0xaf, 0x68, 0xa0, 0x5b, 0x18, 0xb5, 0xb6, 0xfd, 0x16, 0x3e, 0x19, + 0x47, 0xc6, 0xe9, 0x03, 0x72, 0x2e, 0x7b, 0x40, 0x4e, 0xf6, 0xa4, 0xfc, 0x63, 0xf6, 0x24, 0xf3, + 0x37, 0x35, 0x98, 0x4d, 0xb1, 0x31, 0xbe, 0x2c, 0x2f, 0x01, 0x44, 0x18, 0xb5, 0x6c, 0x97, 0x75, + 0xa4, 0xd2, 0x5e, 0x91, 0xea, 0x99, 0xb1, 0x24, 0x4a, 0xa4, 0x86, 0x4a, 0x87, 0x63, 0xf3, 0x93, + 0x04, 0x66, 0x03, 0xe6, 0xee, 0x1f, 0x39, 0xce, 0x1d, 0x4c, 0x6f, 0xf6, 0x79, 0xed, 0xce, 0x39, + 0xc4, 0xdf, 0xe6, 0xaf, 0x69, 0x30, 0x9f, 0xed, 0xf5, 0xbc, 0x8f, 0xd5, 0x57, 0xa1, 0xc0, 0xaf, + 0xc7, 0x07, 0xe7, 0xc7, 0x46, 0xe5, 0xf3, 0xe3, 0x68, 0xf3, 0x2b, 0xb0, 0x14, 0xf3, 0x21, 0x8b, + 0x1f, 0xce, 0x57, 0xfb, 0x6c, 0xfd, 0xd6, 0x87, 0x87, 0x38, 0xef, 0xe9, 0x4a, 0x11, 0xe7, 0x93, + 0x23, 0x8e, 0x12, 0x40, 0xe1, 0x74, 0x01, 0x7c, 0x58, 0x81, 0xd2, 0x66, 0xb2, 0xed, 0x4b, 0x6e, + 0xdc, 0x16, 0x67, 0xa5, 0x60, 0x95, 0x05, 0x60, 0xbb, 0x65, 0xbc, 0x99, 0xb0, 0x1a, 0x06, 0x4e, + 0x47, 0xae, 0xd2, 0xb9, 0xec, 0x82, 0xba, 0xc5, 0x50, 0x31, 0xbf, 0xec, 0xc3, 0x58, 0x85, 0x42, + 0x88, 0xb1, 0xaa, 0x51, 0x9f, 0x52, 0xf4, 0x7b, 0x18, 0x47, 0x16, 0xc7, 0xf0, 0x23, 0x25, 0x8e, + 0xba, 0xf2, 0x08, 0xce, 0x7f, 0x1b, 0xd7, 0xa1, 0x1c, 0x46, 0x6e, 0x10, 0xb9, 0xb4, 0xcf, 0x63, + 0xaa, 0xda, 0xc6, 0x5c, 0x4a, 0xfa, 0xdd, 0x2e, 0xf2, 0x5b, 0x7b, 0x91, 0x6b, 0xc5, 0x44, 0xc6, + 0xdb, 0x30, 0xe3, 0x92, 0xc0, 0x43, 0xa9, 0x62, 0xe4, 0xd2, 0x40, 0x31, 0xf2, 0xb6, 0xc2, 0xcb, + 0x62, 0x64, 0x37, 0xf3, 0x6d, 0x7c, 0x0c, 0x6a, 0x3c, 0xe5, 0xe2, 0x7a, 0x9e, 0xed, 0x20, 0xa7, + 0x83, 0x65, 0xa5, 0xc9, 0x94, 0x1f, 0xd0, 0xdb, 0xae, 0xe7, 0x6d, 0x32, 0x18, 0xd7, 0x74, 0xdf, + 0x77, 0x6c, 0x2f, 0x68, 0x8b, 0x5a, 0x50, 0xab, 0xc4, 0xbe, 0x77, 0x82, 0xb6, 0x71, 0x0d, 0xf4, + 0x08, 0x3b, 0x41, 0xd4, 0xe2, 0x85, 0xa4, 0x36, 0xa1, 0x88, 0xca, 0x62, 0xd0, 0x9a, 0x80, 0x37, + 0xdd, 0x2e, 0x6e, 0x50, 0x44, 0x53, 0x94, 0xc4, 0x41, 0xbe, 0xa0, 0xac, 0xa6, 0x29, 0xd9, 0x26, + 0xc2, 0x29, 0xaf, 0x30, 0xa9, 0x87, 0x9e, 0xeb, 0x20, 0x9b, 0xad, 0x5e, 0x59, 0x11, 0x5a, 0x95, + 0x30, 0xe6, 0x2a, 0x8c, 0xab, 0x50, 0x13, 0xb5, 0x30, 0xb8, 0x65, 0x8b, 0x2d, 0x65, 0x9a, 0x9f, + 0xcd, 0xa7, 0x15, 0x94, 0x17, 0x4a, 0x18, 0x9f, 0x85, 0x65, 0xb6, 0xd9, 0xe1, 0x13, 0xec, 0xf4, + 0xb8, 0x90, 0x5a, 0xbd, 0x48, 0x48, 0xab, 0xab, 0xaa, 0xbb, 0x17, 0xbb, 0xe8, 0xe4, 0x96, 0xc2, + 0x6f, 0x49, 0xf4, 0x7d, 0x5e, 0xa0, 0x81, 0xc2, 0xd0, 0x73, 0xb1, 0xf2, 0x27, 0x33, 0xe2, 0xfe, + 0x42, 0x02, 0x85, 0x4b, 0x59, 0x82, 0x12, 0x45, 0xe4, 0x90, 0x99, 0x8e, 0x2e, 0x6a, 0x8e, 0xd8, + 0xe7, 0x76, 0x8b, 0x6f, 0x2e, 0x14, 0x79, 0x58, 0x4c, 0x60, 0x56, 0x14, 0x73, 0x72, 0x08, 0x67, + 0xff, 0x93, 0x60, 0x30, 0x46, 0x7b, 0x91, 0x83, 0xed, 0x76, 0x14, 0xf4, 0x42, 0x9b, 0xa2, 0x76, + 0xdd, 0xe0, 0x86, 0xac, 0x2b, 0xcc, 0x1d, 0x86, 0x68, 0xa2, 0xb6, 0xf1, 0x19, 0x98, 0x6e, 0xb9, + 0xe4, 0xd0, 0x3e, 0xe8, 0x79, 0x9e, 0x1d, 0x84, 0xb4, 0x3e, 0xc7, 0x95, 0x3c, 0x1f, 0x2b, 0x79, + 0xcb, 0x25, 0x87, 0xb7, 0x7b, 0x9e, 0xb7, 0x1b, 0x52, 0xab, 0xda, 0x4a, 0x3e, 0x98, 0xcc, 0xd9, + 0x26, 0x86, 0x69, 0xd4, 0xb7, 0x23, 0xb1, 0xc4, 0xeb, 0xf3, 0x42, 0xe6, 0x2e, 0xb1, 0x18, 0x58, + 0x2d, 0xfc, 0xd7, 0xa1, 0x8a, 0x42, 0x37, 0xbe, 0x86, 0x59, 0x18, 0x30, 0xbf, 0x1b, 0x7b, 0xdb, + 0x2a, 0x8f, 0x09, 0x28, 0x74, 0x93, 0xea, 0x9d, 0x19, 0x91, 0xf5, 0xa4, 0xb1, 0x1e, 0x16, 0xb9, + 0x1e, 0x6a, 0x31, 0x58, 0x28, 0xe2, 0x73, 0x20, 0x1e, 0x1d, 0xd9, 0xca, 0xbb, 0x2c, 0xf1, 0x95, + 0xb1, 0xb0, 0xae, 0x9e, 0x22, 0x35, 0xd9, 0x5f, 0xe5, 0x62, 0xa6, 0x68, 0xea, 0x4b, 0xe8, 0x9a, + 0x73, 0x69, 0x0b, 0xc1, 0xd4, 0xeb, 0xdc, 0x0b, 0x4c, 0x4b, 0x68, 0x83, 0x03, 0x99, 0xc8, 0xf9, + 0x53, 0x04, 0x41, 0xb2, 0x2c, 0xbc, 0x3f, 0x3d, 0xf1, 0x25, 0x7a, 0x1d, 0xe6, 0x06, 0x44, 0xee, + 0xa3, 0x2e, 0xae, 0xaf, 0xf0, 0xae, 0x66, 0x33, 0x32, 0x7f, 0x80, 0xba, 0xd8, 0x58, 0x83, 0xd9, + 0xfd, 0x1e, 0xe9, 0xdb, 0xb4, 0x13, 0x61, 0xd2, 0x09, 0xbc, 0x16, 0x33, 0x99, 0x0b, 0x3c, 0xfe, + 0x99, 0x61, 0x88, 0xa6, 0x82, 0xdf, 0x27, 0xc6, 0x65, 0xa8, 0xb2, 0x20, 0x22, 0x64, 0x13, 0x74, + 0x5b, 0xf5, 0x55, 0xf1, 0x3e, 0x46, 0x81, 0xb6, 0x5b, 0xef, 0x14, 0xca, 0x05, 0xbd, 0xc8, 0x2c, + 0x18, 0xb5, 0xec, 0x0f, 0x7a, 0x41, 0xd4, 0xeb, 0x9a, 0xdf, 0xce, 0x43, 0x59, 0xed, 0x3b, 0x43, + 0x25, 0x86, 0xda, 0x70, 0x89, 0xe1, 0x15, 0x98, 0xe2, 0xf5, 0x4f, 0xd9, 0x0c, 0x77, 0x95, 0xc1, + 0x94, 0x36, 0x86, 0xfd, 0x61, 0xba, 0x3e, 0xab, 0x90, 0xad, 0xcf, 0x4a, 0xbf, 0xdc, 0x28, 0x66, + 0x5f, 0x6e, 0x5c, 0x93, 0xa5, 0x56, 0xbc, 0xbc, 0x59, 0x38, 0xa2, 0x6a, 0x6c, 0x09, 0xbb, 0xa1, + 0x28, 0xb2, 0x6a, 0xf6, 0x43, 0x6c, 0x7c, 0x02, 0x0c, 0x4e, 0x99, 0xad, 0x2c, 0x2d, 0xf1, 0xee, + 0x66, 0x18, 0xe6, 0x76, 0xaa, 0xba, 0x74, 0xd4, 0x43, 0x8e, 0xf2, 0xc8, 0x87, 0x1c, 0x43, 0x95, + 0xe3, 0x95, 0xe1, 0xca, 0xf1, 0x81, 0xc7, 0x1e, 0x30, 0xfc, 0xd8, 0xe3, 0x73, 0xb0, 0x12, 0x2f, + 0x77, 0x1a, 0xd8, 0x1e, 0x22, 0x54, 0x31, 0xd9, 0x55, 0xc5, 0xe8, 0x8b, 0x8a, 0xa2, 0x19, 0xec, + 0x20, 0x42, 0x05, 0xaf, 0xf7, 0x89, 0xf9, 0xad, 0x02, 0x94, 0xd5, 0x65, 0x56, 0x2a, 0x70, 0xd0, + 0x1e, 0x13, 0x38, 0x18, 0x17, 0xd9, 0x6e, 0x42, 0xa3, 0x3e, 0xda, 0xf7, 0xb0, 0xdc, 0xac, 0x12, + 0x00, 0xdb, 0xc6, 0xd0, 0x7e, 0x10, 0x51, 0x99, 0xa3, 0x12, 0x1f, 0xc6, 0x06, 0x94, 0x55, 0x35, + 0xf7, 0xd0, 0x2d, 0xed, 0x7b, 0x91, 0x4b, 0xb1, 0x2a, 0xe7, 0xb6, 0x62, 0x3a, 0xb6, 0x9e, 0x90, + 0xc7, 0xcc, 0xa9, 0x2f, 0x8b, 0x10, 0x8b, 0x72, 0x3d, 0xc5, 0x0b, 0x56, 0x60, 0x79, 0x1d, 0xa2, + 0x35, 0x85, 0x52, 0x5f, 0xc6, 0x2b, 0x50, 0x56, 0x0f, 0x02, 0x87, 0x0a, 0xe9, 0xb6, 0x24, 0xc2, + 0x8a, 0x49, 0x8c, 0x2d, 0x98, 0x8d, 0x15, 0x61, 0xe3, 0x93, 0xd0, 0x8d, 0x70, 0x4b, 0x96, 0xd2, + 0xd5, 0x33, 0xdb, 0x13, 0x53, 0xcb, 0x2d, 0x81, 0xb7, 0x66, 0x9c, 0x2c, 0x80, 0xf9, 0x30, 0x66, + 0x6e, 0x49, 0x7e, 0xbf, 0xcc, 0x7b, 0x98, 0x4f, 0x5f, 0xe3, 0x3e, 0x90, 0xb9, 0x7e, 0xab, 0x4a, + 0x93, 0x0f, 0xe3, 0x2e, 0xcc, 0x25, 0xe3, 0xd3, 0x80, 0x29, 0x32, 0x6a, 0x8b, 0x37, 0x09, 0xd5, + 0x8d, 0xe5, 0x21, 0x0e, 0x9a, 0x41, 0xb0, 0xc3, 0x08, 0x2c, 0xdd, 0x19, 0x80, 0x18, 0x9b, 0xa0, + 0x27, 0x6f, 0x77, 0x0e, 0x90, 0xeb, 0xe1, 0x16, 0xdf, 0xab, 0xd2, 0x13, 0x89, 0x1f, 0xef, 0xdc, + 0xe6, 0x78, 0x2b, 0x79, 0xed, 0x23, 0x00, 0xe6, 0xdf, 0xe4, 0x60, 0x3a, 0xa3, 0x95, 0x4c, 0x1c, + 0xa4, 0x65, 0xa3, 0xe0, 0xcb, 0x50, 0x4d, 0x17, 0xea, 0xcb, 0x72, 0x04, 0x27, 0x29, 0xcf, 0x1f, + 0x5e, 0xb2, 0x75, 0x28, 0xc9, 0x65, 0x2f, 0x6f, 0xa3, 0xd4, 0x27, 0xdb, 0x34, 0xe2, 0xce, 0x92, + 0xa5, 0x21, 0xd6, 0xae, 0xae, 0x30, 0xf1, 0xfa, 0x78, 0x03, 0x26, 0x23, 0x8c, 0x48, 0xe0, 0xcb, + 0x15, 0x7c, 0x69, 0xb4, 0x4d, 0xad, 0x5b, 0x9c, 0xc8, 0x92, 0xc4, 0xe6, 0x31, 0x4c, 0x0a, 0x88, + 0x51, 0x85, 0xd2, 0xbb, 0xfe, 0xa1, 0x1f, 0x1c, 0xfb, 0xfa, 0x84, 0x51, 0x03, 0xd8, 0x0d, 0xa9, + 0xac, 0x38, 0xd5, 0x35, 0x63, 0x1e, 0xf4, 0x74, 0x51, 0x38, 0xb3, 0x70, 0x3d, 0x67, 0x18, 0x50, + 0x6b, 0x60, 0xef, 0xc0, 0x0a, 0x3c, 0x0f, 0xb7, 0x6e, 0x22, 0xe7, 0x50, 0xcf, 0x1b, 0xd3, 0x50, + 0xb1, 0x1c, 0x51, 0x9a, 0x4a, 0xf4, 0x82, 0xb1, 0x04, 0x73, 0x3b, 0xe8, 0xab, 0xfd, 0x77, 0x7d, + 0xf7, 0x83, 0x1e, 0xf6, 0x31, 0x21, 0x1c, 0xa5, 0x17, 0xcd, 0x55, 0x98, 0x4a, 0xdb, 0xac, 0x92, + 0x8c, 0x96, 0xc4, 0xcf, 0xbf, 0xab, 0x41, 0x59, 0xd9, 0x67, 0xba, 0xda, 0x57, 0xcb, 0x54, 0xfb, + 0x2a, 0x97, 0x97, 0x04, 0xdf, 0x9c, 0x90, 0x9d, 0xf8, 0xd6, 0x60, 0x56, 0x59, 0x35, 0x43, 0xdb, + 0x1d, 0x44, 0x3a, 0xb2, 0xe0, 0x60, 0x46, 0x21, 0xee, 0xe1, 0xfe, 0x5d, 0x44, 0x3a, 0xc6, 0x1b, + 0x00, 0xfc, 0x79, 0x8c, 0xd3, 0x41, 0xae, 0x2f, 0x0f, 0x52, 0x8b, 0xeb, 0xf1, 0x43, 0xda, 0xf7, + 0x90, 0x4b, 0x6f, 0x07, 0xd1, 0x2d, 0x9f, 0x6d, 0xa1, 0x15, 0x46, 0xb9, 0xc9, 0x08, 0xcd, 0x6f, + 0x68, 0x30, 0x33, 0xb0, 0x16, 0x4e, 0xb3, 0x8f, 0x75, 0x98, 0x43, 0x94, 0xe2, 0x6e, 0xc8, 0xf6, + 0xcf, 0x44, 0xa7, 0xc2, 0x4e, 0x66, 0x63, 0x54, 0xac, 0xd4, 0x61, 0x73, 0x19, 0x72, 0x95, 0x85, + 0x21, 0x57, 0x69, 0x6e, 0x43, 0x35, 0xb5, 0xba, 0x1e, 0x63, 0xaf, 0xa7, 0x16, 0x59, 0x9b, 0xd7, + 0x41, 0x1f, 0x5c, 0x68, 0xd9, 0xbb, 0x50, 0x6d, 0xe0, 0x2e, 0xf4, 0x2f, 0x35, 0x98, 0x19, 0x58, + 0x53, 0xa7, 0x31, 0x30, 0x7c, 0x6b, 0xf1, 0x29, 0xa8, 0xc4, 0x4b, 0x90, 0x4f, 0xbc, 0xb6, 0x61, + 0x0c, 0xaf, 0x56, 0x2b, 0x21, 0x62, 0x6a, 0xe6, 0x3e, 0xd1, 0xf5, 0xdb, 0x83, 0x15, 0xdf, 0x33, + 0x0a, 0xa1, 0x6a, 0xbe, 0x3f, 0x09, 0x46, 0x4c, 0x3b, 0xb4, 0xa6, 0x14, 0x26, 0x16, 0xe4, 0x5f, + 0x69, 0x00, 0x2c, 0x9e, 0x15, 0x25, 0x1a, 0xc6, 0xc7, 0x61, 0x96, 0xdb, 0xc8, 0x31, 0xf2, 0x3c, + 0x11, 0xfe, 0x76, 0xd5, 0x84, 0x6a, 0x0c, 0xf1, 0x1e, 0xf2, 0x3c, 0x46, 0x7e, 0x9f, 0x18, 0xd7, + 0x61, 0x3e, 0x8c, 0x02, 0x07, 0x13, 0x92, 0xa5, 0x96, 0x9a, 0x96, 0xb8, 0x54, 0x83, 0x75, 0x98, + 0x3f, 0x3c, 0xe2, 0xd1, 0x63, 0xb6, 0x81, 0x30, 0x57, 0xfd, 0xf0, 0x88, 0xc5, 0x91, 0x29, 0xfa, + 0x0d, 0x58, 0xa4, 0x01, 0x45, 0x9e, 0x1d, 0x85, 0x4e, 0xaa, 0x85, 0xaf, 0x66, 0x6e, 0x70, 0xac, + 0x15, 0x3a, 0xaa, 0xcd, 0x03, 0x62, 0x7e, 0x3d, 0x07, 0x53, 0xc9, 0x74, 0x1e, 0x6e, 0x8c, 0x98, + 0x90, 0x3f, 0x72, 0x42, 0x0f, 0x1e, 0x31, 0x21, 0xff, 0x51, 0x13, 0x7a, 0x40, 0x8c, 0xb7, 0xe0, + 0xa2, 0x6a, 0x40, 0x7a, 0x24, 0xc4, 0x7e, 0x2b, 0xdb, 0x50, 0x4c, 0xac, 0x2e, 0x69, 0x1a, 0x82, + 0x24, 0xd5, 0x7e, 0xa4, 0x40, 0xe2, 0xe9, 0x0d, 0x08, 0xe4, 0xc1, 0x69, 0x02, 0x29, 0x3e, 0x52, + 0x20, 0x5f, 0x82, 0x32, 0x3b, 0x84, 0xf0, 0x90, 0x6c, 0x1e, 0x8a, 0x9c, 0x82, 0xcf, 0x3f, 0x6f, + 0x89, 0x0f, 0xb6, 0xbf, 0x4b, 0x0e, 0x71, 0x8b, 0xcf, 0x35, 0x6f, 0x25, 0x80, 0x38, 0x01, 0xb1, + 0xdf, 0xa7, 0x58, 0xcc, 0x28, 0x2f, 0x12, 0x10, 0x37, 0x19, 0xc0, 0xfc, 0x65, 0x0d, 0x80, 0xf5, + 0x2f, 0xcd, 0xe7, 0x65, 0x28, 0xf2, 0x07, 0x9a, 0x43, 0x51, 0x85, 0xe2, 0xc1, 0x12, 0x78, 0x76, + 0xaa, 0x8d, 0x1f, 0x9e, 0x8c, 0xa4, 0xe3, 0x68, 0x46, 0xd6, 0x42, 0x14, 0x0d, 0x9d, 0xfe, 0x13, + 0x32, 0x86, 0x36, 0xff, 0xb5, 0x28, 0xde, 0x6a, 0xc7, 0x5a, 0x7f, 0x05, 0x8c, 0x78, 0x0a, 0x2a, + 0xbc, 0x54, 0x6a, 0x9f, 0x8d, 0x31, 0x32, 0xc8, 0x24, 0xc6, 0x9b, 0xb0, 0x34, 0x4c, 0x9e, 0x7e, + 0x01, 0xbc, 0x30, 0xd4, 0x86, 0x47, 0x95, 0x57, 0xa1, 0x26, 0x14, 0x12, 0x0f, 0x21, 0xcb, 0x80, + 0x39, 0x34, 0xee, 0xfe, 0x8b, 0x70, 0x31, 0x62, 0x47, 0x86, 0xd6, 0xbe, 0xdd, 0xe2, 0x17, 0x2f, + 0x36, 0x39, 0x74, 0xc3, 0x90, 0xfb, 0xc7, 0x9e, 0x4f, 0xa5, 0x9d, 0x2c, 0x4b, 0x1a, 0x71, 0x37, + 0xd3, 0x10, 0x14, 0x9b, 0x8c, 0x80, 0x9d, 0xf9, 0x54, 0x07, 0xcc, 0xc9, 0x67, 0x5b, 0x0b, 0x6b, + 0x59, 0x94, 0x04, 0xf7, 0x70, 0x3f, 0xd3, 0xf4, 0x6d, 0xb8, 0xa4, 0x9a, 0xee, 0xf3, 0x5d, 0x82, + 0x1f, 0x89, 0xed, 0x0e, 0xdb, 0x07, 0x78, 0xf3, 0x62, 0x66, 0xf0, 0x9b, 0x8c, 0x86, 0x9f, 0x90, + 0xef, 0xba, 0x54, 0xf4, 0xf0, 0x69, 0xa8, 0x67, 0x7b, 0xe0, 0xf6, 0x20, 0x1a, 0x8b, 0x32, 0x91, + 0x85, 0x74, 0x63, 0x66, 0xb3, 0xa2, 0xe1, 0x1b, 0xb0, 0x34, 0xa2, 0x21, 0x33, 0x24, 0x19, 0x4e, + 0xcf, 0x0f, 0xb6, 0x63, 0x36, 0xf5, 0x88, 0xf1, 0x7c, 0xe4, 0x07, 0x2a, 0x68, 0x1e, 0x1a, 0xef, + 0x01, 0x43, 0x32, 0xc7, 0xd7, 0xc6, 0xd4, 0x26, 0x3e, 0x0a, 0x49, 0x27, 0xa0, 0xb2, 0x89, 0x78, + 0x7e, 0xad, 0xb7, 0x31, 0x6d, 0x48, 0x84, 0xa0, 0x66, 0x82, 0x89, 0x33, 0x6b, 0x76, 0x18, 0x05, + 0x61, 0x40, 0xb0, 0xcd, 0x7d, 0x85, 0x68, 0x58, 0x95, 0x82, 0x51, 0xc9, 0xb6, 0x3d, 0x41, 0xc2, + 0xb6, 0xc9, 0x51, 0x3d, 0xb0, 0x68, 0xc5, 0x8d, 0xba, 0xe9, 0x1e, 0xa6, 0x06, 0x7a, 0xd8, 0x14, + 0x24, 0xc3, 0x3d, 0x84, 0x41, 0xe0, 0xd9, 0xc4, 0xe9, 0xe0, 0x56, 0xcf, 0xcb, 0xf0, 0x30, 0x9d, + 0xf4, 0xb0, 0x17, 0x04, 0x5e, 0x43, 0x92, 0xc4, 0x3d, 0x98, 0xbf, 0xaa, 0x41, 0x35, 0x55, 0x70, + 0xc7, 0xce, 0xbc, 0xdc, 0x27, 0x88, 0xfa, 0x3c, 0xb9, 0x0c, 0x93, 0x33, 0x6f, 0xe2, 0x1a, 0x2d, + 0xa0, 0x89, 0xd7, 0x7f, 0x1d, 0xaa, 0x3c, 0x81, 0x21, 0x5b, 0xe5, 0x06, 0x5a, 0x25, 0x4b, 0xcb, + 0x02, 0x12, 0xff, 0x16, 0x15, 0xc1, 0xe2, 0x1c, 0x68, 0xfe, 0x9b, 0x06, 0xd3, 0x99, 0xc2, 0xbf, + 0x31, 0x39, 0xf9, 0x3c, 0xd4, 0x52, 0x9c, 0xd8, 0x47, 0x1b, 0x92, 0x99, 0x85, 0x11, 0xcc, 0x3c, + 0xdc, 0xb0, 0xa6, 0x48, 0x7a, 0xd5, 0x7f, 0x1a, 0xa6, 0xb8, 0x77, 0x51, 0x63, 0xe6, 0x07, 0xe2, + 0x71, 0x1e, 0x25, 0xca, 0x41, 0xab, 0xc7, 0xc9, 0x07, 0x1b, 0x35, 0xc5, 0x6b, 0x52, 0x5a, 0xba, + 0x30, 0x82, 0x5d, 0x36, 0x2a, 0x4d, 0x7d, 0x99, 0x1f, 0x96, 0xa0, 0x9a, 0xea, 0xd9, 0x78, 0x0d, + 0x16, 0x09, 0x0d, 0x22, 0x6c, 0xef, 0x23, 0xea, 0x74, 0xd2, 0xda, 0x14, 0xfe, 0x67, 0x8e, 0x63, + 0xf9, 0x5d, 0x62, 0x62, 0x09, 0x6f, 0x70, 0x0f, 0xc4, 0x4d, 0x90, 0x88, 0x7d, 0x24, 0x6e, 0x25, + 0x5c, 0xca, 0xbc, 0x44, 0x37, 0xf8, 0x16, 0xa2, 0x9a, 0xad, 0xc1, 0x6c, 0xc8, 0xbc, 0x0c, 0x7f, + 0x14, 0xdd, 0x96, 0x0d, 0x64, 0xf8, 0x27, 0x11, 0x3b, 0x41, 0x5b, 0xd0, 0x6e, 0xc2, 0xe5, 0x08, + 0x1d, 0x50, 0xbb, 0xb5, 0x6f, 0x0b, 0x29, 0x79, 0x18, 0xb5, 0x70, 0x94, 0x1e, 0x4a, 0xb8, 0x92, + 0x15, 0x46, 0xb6, 0xb5, 0xcf, 0xe7, 0xb4, 0xc3, 0x69, 0x92, 0x01, 0x37, 0x60, 0x51, 0x75, 0xa2, + 0xd2, 0x67, 0xb2, 0xad, 0xdc, 0x82, 0x44, 0xdb, 0x86, 0x48, 0xa5, 0x89, 0x36, 0x6f, 0xc1, 0xc5, + 0xec, 0xc0, 0x5d, 0xdc, 0xa5, 0xec, 0xf0, 0x28, 0x5b, 0x0a, 0x27, 0x52, 0x4f, 0x8d, 0x7a, 0x5f, + 0x12, 0x88, 0xf6, 0xd7, 0x40, 0x9e, 0x7b, 0x52, 0xa3, 0x09, 0x07, 0x22, 0x53, 0x32, 0xf1, 0x48, + 0xaf, 0xc1, 0x22, 0x0a, 0x43, 0xaf, 0x3f, 0x2c, 0x7a, 0xe1, 0xc6, 0xe7, 0x38, 0x76, 0x40, 0xf4, + 0x2f, 0xc1, 0x8c, 0x68, 0x94, 0xf4, 0x5e, 0x91, 0x6f, 0x18, 0x19, 0x78, 0xb8, 0xf3, 0x6e, 0x8f, + 0xe2, 0x13, 0xf1, 0xe0, 0x31, 0xed, 0x62, 0x44, 0xe7, 0xf7, 0x19, 0x92, 0x9d, 0xa1, 0xe3, 0x15, + 0x2e, 0x1a, 0x3d, 0x4a, 0xe4, 0xd2, 0xcb, 0x70, 0xa2, 0x91, 0x12, 0x7f, 0x15, 0x16, 0xd2, 0x3d, + 0x1c, 0x23, 0x2f, 0xe3, 0x5d, 0x8c, 0xa4, 0xe5, 0x7b, 0xc8, 0x13, 0x4d, 0x3e, 0x0f, 0x2b, 0xe9, + 0x26, 0x03, 0xe2, 0x16, 0x3e, 0x65, 0x29, 0x69, 0x37, 0x24, 0x6d, 0x6f, 0x50, 0x7a, 0x22, 0xad, + 0x58, 0xf3, 0xb2, 0x82, 0x7b, 0x11, 0xa6, 0x55, 0xf8, 0x23, 0xc8, 0x64, 0x3a, 0x51, 0x02, 0x05, + 0x11, 0xdb, 0x22, 0x3b, 0x51, 0x40, 0x69, 0x3c, 0xbe, 0x2e, 0xb7, 0x48, 0x09, 0x15, 0x64, 0xff, + 0x0b, 0x2e, 0x0c, 0x3e, 0x10, 0x4c, 0x33, 0x30, 0x2b, 0x23, 0xa9, 0xc1, 0x27, 0xee, 0xca, 0x0d, + 0xbe, 0x0f, 0x93, 0xe2, 0x02, 0x3d, 0xa9, 0xe3, 0xd5, 0x1e, 0x53, 0xc9, 0x7c, 0xc6, 0x3a, 0x33, + 0xf3, 0x43, 0x0d, 0xca, 0xea, 0x09, 0x90, 0x71, 0x01, 0x72, 0x41, 0x28, 0x9f, 0xc7, 0x67, 0xf2, + 0x47, 0xb9, 0x20, 0x3c, 0x73, 0xe5, 0x5a, 0x26, 0xfc, 0x2f, 0x9c, 0x21, 0xfc, 0x37, 0x7f, 0x92, + 0x83, 0xca, 0xfd, 0x23, 0xc7, 0xe1, 0xea, 0x32, 0x2e, 0x67, 0x5e, 0xe9, 0x67, 0xd8, 0x10, 0x6f, + 0xf1, 0x4f, 0xb9, 0xc3, 0xba, 0x30, 0xf4, 0x22, 0x3d, 0xf5, 0xb2, 0xed, 0x32, 0x54, 0x49, 0x27, + 0x88, 0xa8, 0x9d, 0x7a, 0x93, 0x6e, 0x01, 0x07, 0xf1, 0xff, 0x7f, 0xc0, 0xe2, 0xa4, 0x0e, 0x22, + 0x76, 0x70, 0x84, 0x23, 0x0f, 0xf1, 0x10, 0x44, 0xbd, 0x10, 0x95, 0xd5, 0x65, 0x0b, 0x1d, 0x44, + 0x76, 0x63, 0xac, 0x7a, 0xa6, 0x61, 0xac, 0xc2, 0x14, 0x6b, 0xd7, 0x76, 0xec, 0x03, 0xfe, 0x9f, + 0x00, 0x44, 0x75, 0x05, 0x74, 0x10, 0xb9, 0xe3, 0xdc, 0xe6, 0xff, 0x0a, 0x60, 0x19, 0xca, 0x31, + 0x56, 0xac, 0xed, 0x52, 0x5b, 0xa2, 0x3e, 0x06, 0x35, 0x9e, 0xe7, 0x72, 0x3a, 0xc8, 0x6f, 0xf3, + 0x64, 0x9c, 0x58, 0xcc, 0x53, 0x0c, 0xba, 0xc9, 0x81, 0x3c, 0x37, 0xb0, 0x14, 0x07, 0x6e, 0x2a, + 0x33, 0x26, 0x5a, 0xc8, 0xd5, 0x3c, 0xaf, 0xd0, 0x22, 0x2d, 0x26, 0x1a, 0x9a, 0x5f, 0x10, 0x82, + 0x15, 0xd3, 0x3b, 0xe5, 0x10, 0x37, 0xf2, 0xdf, 0x1b, 0x98, 0xdf, 0xc9, 0x43, 0x99, 0x35, 0xe7, + 0xd9, 0xcc, 0xa7, 0x51, 0x4b, 0x2a, 0x43, 0x92, 0xcf, 0x66, 0x48, 0x1e, 0xab, 0x93, 0xe1, 0xba, + 0xc7, 0xb3, 0xfc, 0x3b, 0x8d, 0x74, 0xaa, 0xb4, 0x34, 0x98, 0x2a, 0x3d, 0x6b, 0x4e, 0x73, 0x20, + 0x5f, 0x59, 0x19, 0xce, 0x57, 0x5e, 0x86, 0x6a, 0xfc, 0xc0, 0x98, 0x8a, 0x8c, 0x66, 0xc1, 0x02, + 0x05, 0x6a, 0x92, 0x11, 0xca, 0xad, 0x3e, 0x99, 0x72, 0xa7, 0x4e, 0x51, 0xee, 0xd7, 0x34, 0xa1, + 0x1e, 0x7e, 0xf8, 0x51, 0x27, 0x0e, 0x6d, 0xc4, 0x3d, 0x1a, 0xbf, 0xe7, 0x17, 0x27, 0x8e, 0x35, + 0x98, 0xe4, 0x5e, 0x53, 0x5d, 0xe8, 0x1b, 0x19, 0x42, 0xbe, 0x00, 0x2d, 0x49, 0xc1, 0x68, 0xe5, + 0xff, 0x68, 0xc8, 0x8f, 0xa0, 0xe5, 0xea, 0x51, 0xff, 0xb7, 0xc1, 0x7c, 0x0d, 0x4a, 0xf2, 0x55, + 0x07, 0xd7, 0xd8, 0x89, 0x2f, 0x2d, 0x8c, 0xfd, 0x34, 0x16, 0x61, 0x92, 0xf0, 0x17, 0xce, 0xd2, + 0x2e, 0xe4, 0x97, 0xf9, 0x36, 0xcf, 0xd8, 0xf2, 0xab, 0xe5, 0x6c, 0x35, 0x83, 0xf6, 0xe8, 0x5a, + 0x9e, 0x5c, 0xa6, 0x96, 0xe7, 0xcf, 0x35, 0x00, 0xb1, 0xa3, 0xf0, 0xa1, 0x4f, 0xbd, 0x19, 0x5c, + 0x82, 0x52, 0x88, 0x71, 0xc4, 0x50, 0x92, 0x0d, 0xf6, 0xb9, 0xdd, 0x8a, 0x2f, 0xf6, 0xf2, 0xa9, + 0x8b, 0xbd, 0xc1, 0x6b, 0xc4, 0xc2, 0x19, 0xaf, 0x11, 0x5f, 0x95, 0xe7, 0x49, 0x36, 0x43, 0x2c, + 0x53, 0xbc, 0x89, 0xdc, 0x58, 0x30, 0xdf, 0x60, 0x18, 0x71, 0xc6, 0xe4, 0x3f, 0xcd, 0x6d, 0xa8, + 0xc4, 0xf0, 0xe1, 0x3b, 0x2c, 0x6d, 0xf4, 0x1d, 0x16, 0x7f, 0x2c, 0x42, 0x13, 0x81, 0xa2, 0x03, + 0xdc, 0x24, 0x66, 0x03, 0x0c, 0x51, 0x7c, 0xc3, 0x45, 0xa2, 0x2e, 0x8a, 0x5e, 0x49, 0xca, 0x0b, + 0xc4, 0xe3, 0xcf, 0x24, 0x4c, 0x4d, 0x64, 0x17, 0xd7, 0x18, 0x18, 0x35, 0xc8, 0xc5, 0x1d, 0xe7, + 0x28, 0x31, 0xbf, 0x08, 0x73, 0x99, 0x4e, 0xe5, 0x9d, 0x70, 0x3d, 0xdb, 0x6b, 0xe1, 0xd1, 0x1d, + 0x6c, 0x81, 0xd1, 0x60, 0x31, 0x61, 0x83, 0x31, 0xd9, 0x50, 0x5c, 0xad, 0x43, 0x85, 0x1d, 0xf6, + 0x78, 0x45, 0xc1, 0xa8, 0xdd, 0x4c, 0x54, 0x1c, 0x94, 0x0f, 0xe5, 0x2f, 0x73, 0x1d, 0xe6, 0x32, + 0xbd, 0x48, 0x36, 0x52, 0xb2, 0xd0, 0x32, 0xb2, 0x70, 0x78, 0x95, 0xde, 0x1d, 0xcc, 0x0c, 0xa8, + 0xd9, 0xdc, 0x79, 0x36, 0x15, 0xf7, 0x5f, 0xd7, 0x78, 0xe5, 0x5c, 0x6a, 0x94, 0x67, 0x70, 0x63, + 0x9e, 0x3c, 0xd5, 0xe7, 0xfe, 0xef, 0xd4, 0x9a, 0xfb, 0x9f, 0x8a, 0xe2, 0xf4, 0xcd, 0x1b, 0x8d, + 0x67, 0x59, 0x9c, 0xfe, 0x49, 0x30, 0xc2, 0x08, 0x1f, 0xb9, 0x41, 0x8f, 0xa4, 0xfe, 0xab, 0x82, + 0xe0, 0x45, 0x57, 0x98, 0xf8, 0x7f, 0x2a, 0x5c, 0x85, 0x5a, 0x4c, 0x2d, 0x3a, 0x13, 0x8f, 0xf2, + 0xa6, 0x15, 0xf4, 0x61, 0xaa, 0xe2, 0x7d, 0x72, 0xb0, 0xe2, 0xbd, 0x14, 0xcf, 0xdc, 0xfc, 0x81, + 0xa8, 0xd0, 0xe5, 0x93, 0x3b, 0x6f, 0x39, 0xd7, 0xa1, 0x44, 0x7a, 0x8e, 0x83, 0x65, 0xad, 0x49, + 0xd9, 0x52, 0x9f, 0xcf, 0x64, 0xb2, 0xe6, 0x16, 0x2c, 0xde, 0xc1, 0x54, 0x45, 0x79, 0x7c, 0x01, + 0x3e, 0xb9, 0xbe, 0xcc, 0x6f, 0x6a, 0xb0, 0x34, 0xd4, 0xcd, 0x79, 0x4b, 0xe6, 0x53, 0xcc, 0xf9, + 0x52, 0xbe, 0x05, 0xe6, 0x4f, 0x4d, 0xaa, 0x2b, 0x32, 0xf3, 0x0e, 0x2c, 0xa7, 0xb8, 0xba, 0xeb, + 0xb2, 0x13, 0xe1, 0x38, 0x15, 0x39, 0xe6, 0xb7, 0x34, 0x58, 0x19, 0xd5, 0xd3, 0xcf, 0x7f, 0x8a, + 0x7f, 0x21, 0x6a, 0x9e, 0x37, 0x03, 0x79, 0x1a, 0x08, 0xa2, 0x31, 0x0b, 0x58, 0x9d, 0x20, 0x8c, + 0xc4, 0xbd, 0xb6, 0xe0, 0xa8, 0xcc, 0x00, 0xfc, 0x3a, 0x9b, 0x9f, 0x0b, 0xc3, 0x48, 0x25, 0xdf, + 0xec, 0x08, 0x7f, 0x20, 0x3d, 0x4f, 0x8d, 0xc1, 0x93, 0x57, 0x57, 0xa9, 0xca, 0xad, 0xc2, 0xe3, + 0xaa, 0x89, 0x0d, 0x99, 0x71, 0x14, 0x46, 0x29, 0xd2, 0x8b, 0x3d, 0x5e, 0x33, 0x9d, 0x99, 0xca, + 0x79, 0x0b, 0xd8, 0x48, 0x25, 0x3a, 0xd5, 0xb0, 0xdf, 0x15, 0x6f, 0x49, 0xf8, 0xde, 0x42, 0x7a, + 0xdd, 0x71, 0xe4, 0xf7, 0x19, 0xa8, 0x20, 0xaf, 0x1d, 0x44, 0x2e, 0xed, 0x74, 0xf9, 0x80, 0xb5, + 0x8d, 0x95, 0x84, 0x5a, 0x76, 0x7c, 0x43, 0x51, 0x58, 0x09, 0xf1, 0x93, 0x14, 0xbb, 0xfd, 0x91, + 0xa8, 0xf7, 0x4e, 0xf8, 0x3c, 0x6f, 0xe1, 0xac, 0x40, 0xd9, 0x91, 0x9d, 0xc7, 0x67, 0x16, 0xf9, + 0xcd, 0x2c, 0x44, 0xa4, 0x60, 0x0f, 0x8f, 0xe2, 0x7f, 0xd5, 0xc1, 0x01, 0xf7, 0x8e, 0x78, 0xf8, + 0x29, 0x90, 0x22, 0x7b, 0x2d, 0x62, 0x64, 0xe0, 0x20, 0x91, 0xbe, 0xfe, 0x5e, 0x1e, 0xa6, 0x36, + 0x83, 0x6e, 0x88, 0x1c, 0x2a, 0x18, 0x78, 0x1f, 0x16, 0x70, 0x14, 0xd9, 0xae, 0x7f, 0x84, 0x3c, + 0xb7, 0x65, 0x67, 0x23, 0xae, 0xea, 0xc6, 0xc7, 0xd2, 0x77, 0xb3, 0x71, 0xab, 0x6d, 0x41, 0xdd, + 0x90, 0xd1, 0xd8, 0xdd, 0x09, 0xcb, 0xc0, 0xd1, 0x20, 0xd4, 0xf0, 0xe0, 0x22, 0xeb, 0x3a, 0x94, + 0xf5, 0xa5, 0xb6, 0x3c, 0x93, 0xc7, 0x0e, 0x53, 0x24, 0xba, 0xd6, 0x46, 0x8e, 0xa0, 0x8a, 0x52, + 0x9b, 0xfc, 0x9c, 0x2e, 0x5d, 0xe9, 0xdd, 0x09, 0xab, 0x8e, 0xa3, 0xd1, 0x38, 0xc3, 0x86, 0x25, + 0x36, 0x9a, 0x23, 0x3a, 0xb1, 0x5d, 0xdf, 0x0e, 0xa3, 0xa0, 0x1d, 0x61, 0x42, 0x64, 0x5a, 0xec, + 0xa5, 0x91, 0x03, 0xc9, 0xdf, 0xdb, 0xfe, 0x9e, 0xa4, 0xbe, 0x3b, 0x61, 0xcd, 0xe3, 0x68, 0x18, + 0x6e, 0x1c, 0xc0, 0x0a, 0x1b, 0x80, 0x06, 0x81, 0xdd, 0x45, 0x7e, 0xdf, 0x0e, 0xb1, 0xdf, 0x72, + 0xfd, 0xb6, 0x4d, 0x11, 0x39, 0x24, 0x32, 0x1c, 0xbc, 0x36, 0x72, 0x8c, 0x66, 0x10, 0xdc, 0x47, + 0x7e, 0x7f, 0x4f, 0x34, 0x68, 0x32, 0xfa, 0xbb, 0x13, 0xd6, 0x22, 0x8e, 0x46, 0x61, 0x6e, 0x96, + 0xa4, 0x49, 0x98, 0x97, 0xe0, 0xc2, 0x29, 0x42, 0x37, 0x5f, 0x84, 0x2b, 0x8f, 0x95, 0x98, 0x79, + 0x19, 0x2e, 0x9d, 0x3a, 0x5b, 0xf3, 0x0a, 0x5c, 0x7e, 0x0c, 0xab, 0x2c, 0x82, 0xa8, 0x49, 0x1a, + 0xb5, 0x24, 0x4f, 0x8d, 0xcd, 0xd7, 0x60, 0x76, 0x40, 0xe7, 0xae, 0xba, 0x67, 0x99, 0x09, 0xd3, + 0x5c, 0x6e, 0xb7, 0x78, 0xf2, 0x25, 0x68, 0x67, 0x49, 0xc5, 0x9d, 0x4b, 0x4d, 0xc2, 0x15, 0xe5, + 0x40, 0x71, 0x53, 0xe9, 0x6c, 0xc5, 0x4d, 0x03, 0x55, 0x3d, 0xe5, 0xc1, 0xaa, 0x1e, 0xf3, 0xcf, + 0xc4, 0x65, 0xaf, 0x98, 0x9c, 0x5c, 0xc7, 0x9f, 0xc8, 0xa6, 0x54, 0x16, 0x46, 0x2a, 0x55, 0xad, + 0xd5, 0x17, 0x61, 0x9a, 0x1d, 0xf5, 0x23, 0xdc, 0x45, 0xae, 0xef, 0xfa, 0x6d, 0x59, 0xb0, 0xce, + 0xce, 0xff, 0x96, 0x82, 0x19, 0xeb, 0xbc, 0xfe, 0x81, 0xb5, 0xc5, 0xe9, 0x35, 0x26, 0x9c, 0xdf, + 0x6c, 0x8c, 0x6a, 0xa4, 0x44, 0x98, 0xd0, 0x67, 0x1f, 0xb6, 0xce, 0xc4, 0x88, 0x5b, 0xe2, 0xc4, + 0xf3, 0x0a, 0x2c, 0x37, 0x5d, 0xfe, 0x56, 0xb5, 0xd1, 0x27, 0x14, 0x77, 0xb9, 0xc0, 0x94, 0xa2, + 0x74, 0xc8, 0x93, 0x0f, 0x3c, 0x59, 0xc1, 0xcd, 0x7e, 0x9a, 0x21, 0xac, 0x8c, 0x22, 0x97, 0x53, + 0xb7, 0xa4, 0x5b, 0xe6, 0x3a, 0xbd, 0xf9, 0xd6, 0x0f, 0x7e, 0x76, 0x79, 0xe2, 0xa7, 0x3f, 0xbb, + 0xfc, 0x66, 0xdb, 0xa5, 0x9d, 0xde, 0xfe, 0xba, 0x13, 0x74, 0xaf, 0x87, 0xae, 0xdf, 0x76, 0x50, + 0x78, 0xfd, 0xf0, 0x48, 0xfc, 0xd3, 0xea, 0xf0, 0xb0, 0x7d, 0x9d, 0x74, 0x50, 0x84, 0x5b, 0xdc, + 0xe7, 0xac, 0x37, 0xf8, 0x6f, 0xee, 0x6d, 0x84, 0x5b, 0x5f, 0x7b, 0x07, 0x96, 0x1f, 0xf9, 0xaf, + 0x1a, 0x8d, 0x79, 0xd0, 0x93, 0xaf, 0x07, 0x41, 0xd4, 0x45, 0x9e, 0x3e, 0x61, 0x2c, 0xc1, 0x5c, + 0x02, 0xbd, 0x1d, 0x44, 0x0e, 0xaf, 0xb2, 0xd7, 0xb5, 0x35, 0x0f, 0x2e, 0x9e, 0xf6, 0xbf, 0x19, + 0x59, 0x77, 0xb2, 0x86, 0xbd, 0xe7, 0xd1, 0xb8, 0xbb, 0x55, 0xb8, 0x98, 0x40, 0x77, 0x86, 0xfe, + 0xc5, 0xa2, 0xa8, 0x85, 0x48, 0x28, 0xc4, 0x15, 0xb7, 0x9e, 0x5b, 0x7b, 0x19, 0x20, 0xb1, 0x2b, + 0x63, 0x12, 0x72, 0x0f, 0x5f, 0xd5, 0x27, 0x8c, 0x0a, 0x14, 0x1f, 0xbe, 0xda, 0x6c, 0xee, 0xe8, + 0x1a, 0x07, 0x6d, 0xe8, 0xb9, 0xb5, 0x4f, 0x00, 0x24, 0xc5, 0x9d, 0x06, 0xc0, 0x64, 0x3c, 0x74, + 0x09, 0xf2, 0x3b, 0xc1, 0xb1, 0xae, 0x19, 0x65, 0x28, 0xdc, 0x75, 0xdb, 0x1d, 0x3d, 0xb7, 0x76, + 0x1d, 0x6a, 0xd9, 0x8a, 0x4e, 0xd6, 0x4d, 0x63, 0x5b, 0x9f, 0x60, 0x7f, 0xad, 0x4d, 0x5d, 0xe3, + 0xf5, 0x16, 0x9b, 0xa2, 0xde, 0xa2, 0xa1, 0xe7, 0xd6, 0x1e, 0x42, 0x35, 0x55, 0x1d, 0xc8, 0x78, + 0x7d, 0x10, 0xd0, 0x1b, 0x9e, 0x17, 0x1c, 0xe3, 0xd6, 0xae, 0xcf, 0xc0, 0x42, 0x64, 0x31, 0xe8, + 0x86, 0xd7, 0x0d, 0x08, 0xe5, 0x08, 0xcd, 0xa8, 0xc3, 0x7c, 0x0a, 0xc1, 0xab, 0x33, 0x38, 0x26, + 0xb7, 0xe6, 0x40, 0x6e, 0x37, 0x64, 0x1c, 0xee, 0xf5, 0xa8, 0x60, 0x75, 0x0b, 0x7b, 0x82, 0x55, + 0x2e, 0xee, 0x9c, 0x31, 0x05, 0x65, 0x95, 0xd3, 0xd2, 0xf3, 0x6c, 0x5e, 0xdb, 0x3e, 0xc1, 0x11, + 0xd5, 0x0b, 0xc6, 0x1c, 0xcc, 0x0c, 0x28, 0x42, 0x2f, 0x1a, 0x06, 0xd4, 0x38, 0xd7, 0xca, 0xfd, + 0x10, 0x7d, 0x72, 0x6d, 0x1d, 0x2a, 0x71, 0x8a, 0x8f, 0xf5, 0xfc, 0x20, 0xf0, 0xb1, 0x10, 0x22, + 0x27, 0xd1, 0x35, 0x36, 0x88, 0x6a, 0x20, 0xa4, 0x93, 0xfd, 0xe7, 0xbb, 0x8c, 0xaf, 0xdd, 0x83, + 0x03, 0x7d, 0x82, 0xb5, 0xbe, 0x8d, 0x78, 0x13, 0x80, 0xc9, 0x06, 0x8d, 0x98, 0xea, 0x72, 0x6b, + 0xdf, 0xd6, 0x60, 0x52, 0xfe, 0x07, 0x5e, 0xde, 0x93, 0xf8, 0xad, 0x4f, 0x18, 0x0b, 0x30, 0xdb, + 0x6c, 0xee, 0x88, 0x0a, 0x8e, 0x78, 0x16, 0x5c, 0x1e, 0x3c, 0x5d, 0x2d, 0x87, 0x8c, 0x31, 0x39, + 0xd6, 0xe0, 0x7e, 0x5c, 0x72, 0xd1, 0xd8, 0xeb, 0x91, 0x0e, 0x6e, 0xe9, 0x79, 0x66, 0x3d, 0x71, + 0x3f, 0x23, 0xfe, 0x8b, 0xa2, 0x5e, 0x30, 0x96, 0x61, 0x21, 0xdd, 0xe5, 0x56, 0xf0, 0x20, 0xa0, + 0x1d, 0xd7, 0x6f, 0xeb, 0xc5, 0xb5, 0xab, 0x50, 0xba, 0x75, 0x42, 0x23, 0xb4, 0x1b, 0x8a, 0xc9, + 0x07, 0xa1, 0x3e, 0x61, 0xe8, 0x30, 0xc5, 0x0e, 0xf8, 0xbb, 0x5e, 0x8b, 0xc7, 0xfe, 0xba, 0xb6, + 0x66, 0xc2, 0xec, 0x50, 0x74, 0xc2, 0xcc, 0x60, 0x33, 0x72, 0xde, 0x7c, 0xdd, 0xfe, 0xdf, 0x41, + 0xa4, 0x4f, 0xdc, 0x7c, 0xe9, 0x6f, 0x7f, 0xaf, 0xac, 0xfd, 0xe0, 0xa3, 0x17, 0xb4, 0x1f, 0x7f, + 0xf4, 0x82, 0xf6, 0xf7, 0x1f, 0xbd, 0xa0, 0xfd, 0xf6, 0x3f, 0xbe, 0x30, 0x01, 0x7a, 0x10, 0xb5, + 0xd7, 0xa9, 0x7b, 0x78, 0xb4, 0x2e, 0x57, 0xe4, 0xfe, 0x24, 0xff, 0xf3, 0xda, 0x7f, 0x05, 0x00, + 0x00, 0xff, 0xff, 0x9e, 0xb7, 0x6a, 0x21, 0x8f, 0x5e, 0x00, 0x00, } func (m *GetRequest) Marshal() (dAtA []byte, err error) { @@ -18347,6 +18441,77 @@ func (m *CompactResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *TiFlashSystemTableRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TiFlashSystemTableRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TiFlashSystemTableRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Sql) > 0 { + i -= len(m.Sql) + copy(dAtA[i:], m.Sql) + i = encodeVarintKvrpcpb(dAtA, i, uint64(len(m.Sql))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TiFlashSystemTableResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TiFlashSystemTableResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TiFlashSystemTableResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + { + size := m.Data.Size() + i -= size + if _, err := m.Data.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintKvrpcpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func encodeVarintKvrpcpb(dAtA []byte, offset int, v uint64) int { offset -= sovKvrpcpb(v) base := offset @@ -21848,6 +22013,36 @@ func (m *CompactResponse) Size() (n int) { return n } +func (m *TiFlashSystemTableRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sql) + if l > 0 { + n += 1 + l + sovKvrpcpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *TiFlashSystemTableResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Data.Size() + n += 1 + l + sovKvrpcpb(uint64(l)) + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func sovKvrpcpb(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -42991,6 +43186,173 @@ func (m *CompactResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *TiFlashSystemTableRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TiFlashSystemTableRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TiFlashSystemTableRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sql", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthKvrpcpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthKvrpcpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sql = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipKvrpcpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthKvrpcpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TiFlashSystemTableResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TiFlashSystemTableResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TiFlashSystemTableResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthKvrpcpb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthKvrpcpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Data.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipKvrpcpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthKvrpcpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipKvrpcpb(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/pkg/tikvpb/tikvpb.pb.go b/pkg/tikvpb/tikvpb.pb.go index c660ca3..445a842 100644 --- a/pkg/tikvpb/tikvpb.pb.go +++ b/pkg/tikvpb/tikvpb.pb.go @@ -1248,162 +1248,164 @@ func init() { func init() { proto.RegisterFile("tikvpb.proto", fileDescriptor_274fe050f0c997b3) } var fileDescriptor_274fe050f0c997b3 = []byte{ - // 2478 bytes of a gzipped FileDescriptorProto + // 2501 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x9a, 0xdb, 0x52, 0x1b, 0xc9, - 0x19, 0x80, 0x47, 0xb6, 0xcc, 0xa1, 0x31, 0x06, 0x1a, 0x6c, 0x86, 0x31, 0x06, 0x7b, 0x8c, 0xbd, - 0xec, 0xa6, 0x8a, 0xd8, 0x5e, 0x67, 0x9d, 0x3d, 0x64, 0x83, 0x11, 0x36, 0xb0, 0x82, 0x5a, 0x95, - 0x24, 0xef, 0x3a, 0xa9, 0xa4, 0xa8, 0x46, 0x6a, 0xc4, 0x04, 0x69, 0x46, 0x99, 0x69, 0x06, 0xeb, - 0x1d, 0xf2, 0x00, 0x79, 0x84, 0x54, 0x9e, 0x24, 0x97, 0xa9, 0xca, 0x45, 0x72, 0x99, 0x72, 0x1e, - 0x22, 0x97, 0x49, 0x75, 0xcf, 0x4c, 0x9f, 0xa6, 0x67, 0xa4, 0xbd, 0xf2, 0xf0, 0x9f, 0xfa, 0xfc, - 0xf7, 0xf7, 0xb7, 0x05, 0x6e, 0x13, 0xef, 0x32, 0x1e, 0x9e, 0xed, 0x0c, 0xc3, 0x80, 0x04, 0x70, - 0x2a, 0xf9, 0xcb, 0x59, 0xea, 0x04, 0xc3, 0x30, 0xe8, 0xe0, 0x28, 0x0a, 0xc2, 0x44, 0xe5, 0xcc, - 0x5f, 0xc6, 0xe1, 0xb0, 0x93, 0x59, 0x3a, 0xb3, 0x83, 0xe1, 0x30, 0xfd, 0x5c, 0x0e, 0xd1, 0x39, - 0x39, 0x8d, 0x70, 0x18, 0xe3, 0x90, 0xeb, 0x97, 0xbb, 0x5e, 0x84, 0x7a, 0xbd, 0x10, 0xf7, 0x10, - 0xc1, 0xdd, 0x54, 0xb8, 0xd2, 0x0b, 0x7a, 0x01, 0xfb, 0xfc, 0x39, 0xfd, 0x4a, 0xa5, 0x0b, 0xe1, - 0x55, 0x44, 0xd8, 0x67, 0x22, 0x70, 0xff, 0xb1, 0x08, 0x56, 0xf6, 0x10, 0xe9, 0x5c, 0xd4, 0x82, - 0xc1, 0x00, 0xf9, 0xdd, 0xa8, 0x89, 0xff, 0x78, 0x85, 0x23, 0x02, 0x77, 0xc1, 0x4c, 0x98, 0x7c, - 0x46, 0x76, 0xe5, 0xe1, 0xcd, 0xed, 0xb9, 0x17, 0x5b, 0x3b, 0x69, 0xff, 0x4d, 0xf6, 0x3b, 0xe9, - 0xbf, 0x4d, 0xee, 0x05, 0x37, 0xc1, 0x5c, 0xfa, 0x7d, 0xea, 0x75, 0x23, 0xfb, 0xc6, 0xc3, 0x9b, - 0xdb, 0xd5, 0x26, 0x48, 0x45, 0x47, 0xdd, 0xc8, 0xf9, 0xe7, 0x02, 0x98, 0xce, 0x9a, 0xfb, 0x04, - 0xdc, 0x3c, 0xc0, 0xc4, 0xae, 0x3c, 0xac, 0x6c, 0xcf, 0xbd, 0x58, 0xde, 0xc9, 0x26, 0xe0, 0x00, - 0x93, 0xd4, 0xe2, 0xd0, 0x6a, 0x52, 0x0b, 0xf8, 0x19, 0xa8, 0xb6, 0x3a, 0xc8, 0xb7, 0x6f, 0x30, - 0xcb, 0x15, 0x6e, 0x49, 0x85, 0xc2, 0x94, 0xd9, 0xc0, 0x2f, 0xc0, 0x4c, 0x23, 0xc4, 0xd7, 0xa1, - 0x47, 0xb0, 0x7d, 0x93, 0xd9, 0xdb, 0xdc, 0x3e, 0x53, 0x08, 0x1f, 0x6e, 0x0b, 0x9f, 0x81, 0x29, - 0x3a, 0x3c, 0x8f, 0xd8, 0x55, 0xe6, 0x75, 0x8f, 0x7b, 0x25, 0x62, 0xe1, 0x93, 0xda, 0x51, 0x8f, - 0xa3, 0xc1, 0x30, 0x08, 0x89, 0x7d, 0x4b, 0xf3, 0x48, 0xc4, 0x92, 0x47, 0x22, 0x80, 0x9f, 0x83, - 0xe9, 0x5a, 0x1f, 0x23, 0xff, 0x6a, 0x68, 0x4f, 0x31, 0x97, 0x55, 0xd1, 0x48, 0x22, 0x17, 0x3e, - 0x99, 0x25, 0x1d, 0x10, 0x9b, 0x7c, 0x3a, 0x55, 0xd3, 0xda, 0x80, 0x32, 0x85, 0x34, 0xa0, 0x4c, - 0x04, 0xdf, 0x80, 0x79, 0xf6, 0xdd, 0x0c, 0xfa, 0xfd, 0x33, 0xd4, 0xb9, 0xb4, 0x67, 0x98, 0xf3, - 0x03, 0xd5, 0x39, 0xd3, 0x8a, 0x08, 0xaa, 0x17, 0x6d, 0x9e, 0xce, 0xeb, 0x71, 0xd0, 0xb9, 0xb4, - 0x67, 0xb5, 0xe6, 0x33, 0x85, 0xd4, 0x7c, 0x26, 0x82, 0xbf, 0x06, 0x73, 0x4d, 0x1c, 0x05, 0xfd, - 0x18, 0x33, 0x57, 0xc0, 0x5c, 0xef, 0x73, 0x57, 0x49, 0x27, 0xbc, 0x65, 0x0f, 0xb8, 0x05, 0x6e, - 0x1c, 0xd4, 0xec, 0x39, 0xe6, 0x07, 0xc5, 0xe6, 0xa8, 0x09, 0xf3, 0x1b, 0x07, 0x35, 0xda, 0xcc, - 0x3e, 0xee, 0x63, 0x82, 0x9b, 0xc8, 0xef, 0x61, 0xfb, 0xb6, 0xd6, 0x8c, 0xa4, 0x93, 0x9a, 0x91, - 0xa4, 0x74, 0x15, 0x9b, 0xe8, 0x9a, 0x4e, 0xee, 0xbc, 0xb6, 0x8a, 0x89, 0x58, 0x5a, 0xc5, 0x44, - 0xc0, 0x46, 0x86, 0xae, 0xf9, 0x9a, 0xdc, 0xd1, 0x47, 0x26, 0x74, 0xf2, 0xc8, 0x84, 0x34, 0x6d, - 0xb2, 0x71, 0x45, 0xec, 0x85, 0x7c, 0x93, 0x8d, 0x2b, 0xad, 0xc9, 0xc6, 0x95, 0xd2, 0x24, 0x75, - 0x5b, 0x2c, 0x68, 0x52, 0xf1, 0x95, 0x3d, 0xe0, 0x97, 0x60, 0xb6, 0x89, 0xae, 0x93, 0x71, 0xdb, - 0x4b, 0xcc, 0x7d, 0x4d, 0x76, 0x4f, 0x67, 0x84, 0x3b, 0x0b, 0x6b, 0x78, 0x08, 0xee, 0x64, 0x91, - 0x52, 0x7f, 0xc8, 0xfc, 0x37, 0x72, 0xcd, 0xeb, 0x41, 0x34, 0x3f, 0xba, 0xfd, 0x9b, 0xe8, 0x9a, - 0x9d, 0xe4, 0x65, 0x6d, 0xfb, 0xa7, 0x72, 0x69, 0xfb, 0xa7, 0x92, 0xb4, 0x79, 0x79, 0x8d, 0x57, - 0xf2, 0xcd, 0x1b, 0x97, 0x59, 0xf3, 0x83, 0x7b, 0xe0, 0x76, 0xd6, 0x21, 0xd6, 0x87, 0xbb, 0x2c, - 0xce, 0x7a, 0x6e, 0x18, 0x6a, 0x47, 0x14, 0x1f, 0xf8, 0x4b, 0x30, 0x57, 0x13, 0xa9, 0xdb, 0xbe, - 0x97, 0x26, 0x24, 0x39, 0x9d, 0x4b, 0x2b, 0x20, 0x99, 0xc2, 0x3a, 0x58, 0x68, 0xe0, 0x28, 0xf2, - 0x06, 0x5e, 0x44, 0xbc, 0x0e, 0x3b, 0x13, 0xab, 0xcc, 0x7b, 0x53, 0xa4, 0x27, 0x55, 0x2f, 0x02, - 0xe9, 0x9e, 0xf0, 0x47, 0xb0, 0x2c, 0x89, 0xf8, 0x09, 0xb7, 0x59, 0xc0, 0xc7, 0xa6, 0x80, 0xf9, - 0x73, 0x6e, 0x8a, 0x40, 0x67, 0xbb, 0x76, 0x81, 0x3b, 0x97, 0xed, 0x0f, 0x7e, 0x8b, 0x20, 0x72, - 0x15, 0xd9, 0x6b, 0xda, 0x6c, 0xab, 0x6a, 0x69, 0xb6, 0x55, 0x05, 0x9d, 0xed, 0xf6, 0x07, 0xff, - 0x10, 0xa3, 0x90, 0xec, 0x61, 0x44, 0x6c, 0x47, 0x9b, 0x6d, 0x59, 0x29, 0xcd, 0xb6, 0x2c, 0xa6, - 0xc3, 0x64, 0x51, 0x5b, 0xb8, 0x13, 0xf8, 0x5d, 0x14, 0x8e, 0xe8, 0xe0, 0x23, 0xfb, 0x91, 0x36, - 0x4c, 0x83, 0x8d, 0x34, 0x4c, 0x83, 0x36, 0xdd, 0x54, 0xf2, 0x4a, 0xba, 0xf9, 0x4d, 0x25, 0xa9, - 0xd5, 0x4d, 0x25, 0x2f, 0x6b, 0x1b, 0xc0, 0xb7, 0x7d, 0x14, 0x5d, 0xd0, 0xd9, 0x6b, 0x07, 0x3f, - 0xe0, 0x30, 0xf2, 0x02, 0xdf, 0x7e, 0xcc, 0xa2, 0xb9, 0x3c, 0x5a, 0xde, 0x44, 0x44, 0x34, 0xf8, - 0x43, 0x0f, 0xac, 0x35, 0x42, 0x3c, 0x44, 0x21, 0x36, 0x04, 0xdf, 0x62, 0xc1, 0x3f, 0x95, 0x6f, - 0x35, 0xb3, 0xa5, 0x68, 0xa3, 0x38, 0x1a, 0xfc, 0x0a, 0xdc, 0x7a, 0x33, 0x18, 0x92, 0x91, 0xfd, - 0xbf, 0xe4, 0x1e, 0x7e, 0x64, 0xbc, 0xf1, 0x99, 0x89, 0x88, 0x97, 0xb8, 0xec, 0xdd, 0x02, 0x37, - 0x3b, 0x83, 0xee, 0x77, 0xd5, 0x99, 0xfb, 0x8b, 0x8f, 0xdc, 0xbf, 0x2e, 0x81, 0xbb, 0x1a, 0x25, - 0x44, 0xc3, 0xc0, 0x8f, 0x30, 0xdc, 0x07, 0xb3, 0x61, 0xfa, 0x9d, 0x71, 0xc5, 0xd3, 0x02, 0xae, - 0x48, 0xac, 0x76, 0xb2, 0x8f, 0xa6, 0x70, 0x1c, 0x8b, 0x16, 0xf0, 0x19, 0x58, 0x21, 0x21, 0xf2, - 0x23, 0x7a, 0xd5, 0x9e, 0xf6, 0xd1, 0x08, 0x87, 0xa7, 0xfd, 0x00, 0x75, 0x19, 0x05, 0x54, 0x9b, - 0x90, 0xeb, 0x8e, 0xa9, 0xea, 0x38, 0x40, 0x5d, 0xe7, 0xbf, 0x0b, 0x60, 0x86, 0xf7, 0x72, 0x5b, - 0xa6, 0x91, 0x15, 0x95, 0x46, 0x12, 0x93, 0x0c, 0x47, 0x7e, 0xa6, 0xe0, 0xc8, 0x5d, 0x0d, 0x47, - 0xb8, 0x6d, 0xc2, 0x23, 0xaf, 0x72, 0x3c, 0xb2, 0x66, 0xe0, 0x11, 0xee, 0x24, 0x80, 0xe4, 0xb9, - 0x06, 0x24, 0xab, 0x39, 0x20, 0xe1, 0x4e, 0x19, 0x91, 0x3c, 0xd7, 0x88, 0x64, 0x35, 0x47, 0x24, - 0xc2, 0x25, 0x45, 0x92, 0x97, 0x3a, 0x92, 0xd8, 0x79, 0x24, 0xe1, 0x4e, 0x9c, 0x49, 0x5e, 0xe5, - 0x98, 0x64, 0xcd, 0xc0, 0x24, 0x62, 0x50, 0xfc, 0xea, 0x7b, 0x6b, 0x86, 0x92, 0x8d, 0x22, 0x28, - 0xe1, 0x21, 0x34, 0x2a, 0x79, 0x95, 0xa3, 0x92, 0x35, 0x03, 0x95, 0x88, 0x0e, 0x70, 0x2c, 0xd9, - 0x35, 0x61, 0xc9, 0xba, 0x19, 0x4b, 0xb8, 0xbb, 0xc2, 0x25, 0x4f, 0x24, 0x2e, 0x59, 0x56, 0xb8, - 0x84, 0xdb, 0x53, 0x30, 0xd9, 0x35, 0x81, 0xc9, 0xba, 0x19, 0x4c, 0x44, 0x43, 0xf2, 0x7d, 0xf5, - 0x5c, 0x23, 0x93, 0xd5, 0x1c, 0x99, 0x88, 0xd5, 0x4c, 0xd1, 0x64, 0xd7, 0x84, 0x26, 0xeb, 0x66, - 0x34, 0x91, 0x46, 0x27, 0xb1, 0xc9, 0x73, 0x8d, 0x4d, 0x56, 0x73, 0x6c, 0xa2, 0x34, 0x4a, 0xd9, - 0x62, 0xd7, 0x04, 0x27, 0xeb, 0x66, 0x38, 0xc9, 0x37, 0x4a, 0x23, 0x7c, 0x95, 0xa7, 0x13, 0xc7, - 0x44, 0x27, 0xdc, 0x5b, 0xc2, 0x93, 0xa3, 0x02, 0x3c, 0xd9, 0x2c, 0xc4, 0x13, 0x1e, 0x45, 0xe7, - 0x93, 0x97, 0x3a, 0x9f, 0xd8, 0x79, 0x3e, 0x11, 0x67, 0x21, 0x03, 0x94, 0xa3, 0x02, 0x40, 0xd9, - 0x2c, 0x04, 0x14, 0xa5, 0x03, 0xf2, 0x8a, 0xd7, 0x8c, 0x84, 0xf2, 0xa0, 0x80, 0x50, 0x78, 0x18, - 0x15, 0x51, 0xbe, 0x34, 0x21, 0xca, 0x5d, 0x0d, 0x51, 0xc4, 0x3a, 0xc8, 0x97, 0xd9, 0x71, 0x11, - 0xa3, 0x3c, 0x2c, 0x66, 0x14, 0x1e, 0x29, 0x07, 0x29, 0xef, 0xcb, 0x20, 0x65, 0xab, 0x1c, 0x52, - 0x78, 0x54, 0x23, 0xa5, 0x1c, 0x15, 0x50, 0xca, 0x66, 0x21, 0xa5, 0x88, 0x29, 0xd7, 0x30, 0xa5, - 0x66, 0xc4, 0x94, 0x07, 0x05, 0x98, 0x22, 0xa6, 0x5c, 0xe1, 0x94, 0xf7, 0x65, 0x9c, 0xb2, 0x55, - 0xce, 0x29, 0x62, 0xa4, 0x26, 0x50, 0x39, 0x2a, 0x00, 0x95, 0xcd, 0x42, 0x50, 0x51, 0x36, 0x97, - 0xbc, 0xb8, 0xef, 0x4a, 0x48, 0xe5, 0x71, 0x29, 0xa9, 0xf0, 0x90, 0x26, 0x54, 0xf9, 0xc3, 0x78, - 0x54, 0xf9, 0x6c, 0x12, 0x54, 0xe1, 0x8d, 0x94, 0xb0, 0xca, 0xd7, 0x1a, 0xab, 0xb8, 0x65, 0xac, - 0xc2, 0x03, 0x9a, 0x60, 0x65, 0x0f, 0x2c, 0x26, 0x17, 0x0a, 0x3a, 0x27, 0x27, 0x38, 0x8a, 0x50, - 0x0f, 0xc3, 0x1d, 0x50, 0x1d, 0x44, 0xbd, 0x8c, 0x50, 0x9c, 0x1d, 0xf5, 0xd9, 0x45, 0xb2, 0x6c, - 0x32, 0x3b, 0xb7, 0x05, 0xd6, 0x0a, 0x19, 0x09, 0xae, 0x82, 0x69, 0x92, 0xa0, 0x0a, 0x23, 0x8a, - 0x6a, 0x73, 0x8a, 0x30, 0x4c, 0x81, 0x0f, 0x00, 0xe8, 0xe2, 0x3e, 0x1a, 0x9d, 0x12, 0x6f, 0x80, - 0x19, 0x42, 0x54, 0x9b, 0xb3, 0x4c, 0xd2, 0xf6, 0x06, 0xd8, 0xfd, 0x05, 0x70, 0x8a, 0x07, 0x53, - 0x18, 0xf5, 0xc5, 0x9f, 0x3e, 0x01, 0xd5, 0xb6, 0x77, 0x19, 0xc3, 0x97, 0xe0, 0x56, 0x3d, 0xa6, - 0x89, 0xdc, 0xf4, 0x9e, 0xe2, 0x18, 0xb1, 0xc6, 0xb5, 0xe0, 0x2b, 0x30, 0x55, 0x8f, 0x59, 0xf6, - 0x30, 0x3e, 0xae, 0x38, 0x66, 0xc6, 0x71, 0x2d, 0x58, 0x03, 0xa0, 0x1e, 0x73, 0x64, 0x29, 0x7c, - 0x69, 0x71, 0x8a, 0x99, 0xc7, 0xb5, 0xe0, 0x7b, 0xb0, 0x54, 0x8f, 0xf5, 0xec, 0x31, 0xae, 0x2c, - 0x72, 0xc6, 0xe6, 0x24, 0xd7, 0x82, 0x5d, 0x70, 0xb7, 0xfe, 0x83, 0x29, 0x83, 0x4c, 0x52, 0x23, - 0x39, 0x13, 0xe5, 0x28, 0xd7, 0x82, 0xdf, 0x83, 0x3b, 0xf5, 0x58, 0x49, 0x08, 0xa5, 0x65, 0x8e, - 0x53, 0x9e, 0x5d, 0x5c, 0x0b, 0xbe, 0x03, 0x8b, 0xf5, 0x58, 0x4b, 0x54, 0x63, 0x2a, 0x30, 0x67, - 0x5c, 0xee, 0x4b, 0x67, 0x23, 0x36, 0x65, 0x99, 0x49, 0x4a, 0x29, 0x67, 0xa2, 0x3c, 0xe6, 0x5a, - 0xf0, 0x57, 0x60, 0xa6, 0x1e, 0xa7, 0x40, 0x5a, 0xf0, 0x88, 0xe6, 0x14, 0xb1, 0x6c, 0xe6, 0x9e, - 0xc2, 0x69, 0xc1, 0x8b, 0x9a, 0x53, 0xc4, 0xb5, 0xae, 0x05, 0x77, 0xc1, 0x6c, 0x3d, 0xce, 0x30, - 0xb5, 0xe8, 0x79, 0xcd, 0x29, 0x84, 0xdc, 0x6c, 0x4b, 0x73, 0x1e, 0x2a, 0x7c, 0x6b, 0x73, 0x8a, - 0x89, 0xd7, 0xb5, 0x60, 0x13, 0x2c, 0xa4, 0x41, 0xf8, 0x96, 0x2b, 0x7f, 0x78, 0x73, 0xc6, 0x20, - 0x70, 0xd6, 0x31, 0x0e, 0xb2, 0x85, 0xaf, 0x70, 0x4e, 0x31, 0x09, 0xbb, 0x16, 0x3c, 0x06, 0xf3, - 0xf5, 0x58, 0xc6, 0xd9, 0xb2, 0x27, 0x39, 0xa7, 0x14, 0x8c, 0x5d, 0x0b, 0x3e, 0x07, 0xd5, 0x7a, - 0x7c, 0x50, 0x83, 0x86, 0xf7, 0x39, 0xc7, 0xc4, 0xc6, 0x59, 0x07, 0x64, 0xe8, 0x29, 0x7b, 0xac, - 0x73, 0x4a, 0x81, 0xd9, 0xb5, 0x60, 0x0c, 0xee, 0xb3, 0xfc, 0x53, 0x70, 0x61, 0x4c, 0x5e, 0x24, - 0x3b, 0x3f, 0xe1, 0x92, 0x72, 0x2d, 0x88, 0xc0, 0x4a, 0x3d, 0x36, 0x34, 0x38, 0x41, 0xc9, 0xef, - 0x4c, 0x72, 0xd9, 0xba, 0x16, 0xfc, 0x3a, 0xc3, 0x7f, 0x58, 0xf0, 0x24, 0xe9, 0x14, 0x15, 0x04, - 0xae, 0x05, 0xbf, 0x53, 0x0a, 0x01, 0x58, 0xf6, 0x3a, 0xe9, 0x94, 0xd6, 0x07, 0xbc, 0x23, 0x94, - 0xd3, 0x0b, 0x1e, 0x2a, 0x9d, 0xa2, 0x22, 0x41, 0xed, 0x08, 0x8d, 0x50, 0xf6, 0x66, 0xe9, 0x94, - 0xd6, 0x0c, 0xae, 0x05, 0xf7, 0xa5, 0x32, 0x01, 0x16, 0x3f, 0x5f, 0x3a, 0x25, 0xb5, 0x83, 0x6b, - 0xc1, 0x96, 0x5e, 0x30, 0xc0, 0x31, 0x2f, 0x99, 0xce, 0xb8, 0x52, 0xc2, 0xb5, 0xe0, 0xb7, 0xbc, - 0x74, 0x80, 0x45, 0x8f, 0x9a, 0x4e, 0x61, 0x35, 0xc1, 0x3b, 0x25, 0x1f, 0x8b, 0x31, 0xef, 0x9b, - 0xce, 0xb8, 0xf2, 0xc2, 0xb5, 0xe0, 0x89, 0x5a, 0x4e, 0xc0, 0xd2, 0xa7, 0x4e, 0xa7, 0xbc, 0xcc, - 0xe0, 0xe1, 0x0e, 0x30, 0xa9, 0xe3, 0x51, 0xbb, 0x7d, 0xac, 0x86, 0xe3, 0x62, 0x63, 0x38, 0x49, - 0xcb, 0xc3, 0xbd, 0x05, 0x4b, 0x8c, 0x50, 0x07, 0xf4, 0xb0, 0xbd, 0xf6, 0xbb, 0xad, 0x6b, 0x34, - 0x54, 0x77, 0x58, 0xed, 0x75, 0xcb, 0xb8, 0xc3, 0x98, 0x5c, 0xdb, 0x61, 0xec, 0x4e, 0x8a, 0xae, - 0x06, 0xea, 0x0e, 0xcb, 0xa4, 0xc6, 0x1d, 0x26, 0x94, 0x3c, 0xd6, 0x29, 0x80, 0xef, 0xfc, 0x08, - 0x9d, 0xe3, 0x7d, 0x1c, 0x91, 0x30, 0x18, 0x25, 0x4b, 0x21, 0x0e, 0x75, 0x5e, 0x99, 0x3f, 0xd4, - 0x26, 0x1b, 0xde, 0x00, 0x06, 0x2b, 0x4d, 0xdc, 0xf3, 0x22, 0x82, 0x43, 0x9a, 0x4a, 0xbf, 0x3f, - 0x4b, 0xf8, 0x12, 0x6e, 0x49, 0x89, 0x36, 0xaf, 0xce, 0x1a, 0x79, 0x32, 0xc6, 0x8a, 0x37, 0xf3, - 0x3b, 0xb0, 0xc4, 0x46, 0xa7, 0xb4, 0xf1, 0x48, 0xbd, 0xc0, 0x4d, 0x0d, 0xb8, 0x65, 0x26, 0xf2, - 0x2c, 0x35, 0xf1, 0x20, 0x48, 0x6e, 0x03, 0x1e, 0xde, 0x95, 0x3a, 0xa7, 0x2b, 0xf3, 0xb3, 0x64, - 0xb2, 0xe1, 0x0d, 0xfc, 0x06, 0x2c, 0x36, 0x2e, 0x46, 0x91, 0xd7, 0x41, 0x7d, 0x7e, 0xdf, 0x49, - 0xb8, 0xa7, 0xa9, 0xb2, 0xe0, 0x8f, 0x4a, 0x2c, 0x78, 0xe8, 0x6f, 0x94, 0xea, 0x18, 0x1a, 0x9f, - 0xee, 0x1d, 0x73, 0xb5, 0xcc, 0x32, 0xd0, 0x92, 0xe4, 0xdd, 0x22, 0x21, 0x46, 0x83, 0x9f, 0x18, - 0xe3, 0x59, 0x05, 0x9e, 0xa4, 0xc5, 0x87, 0xdc, 0x91, 0x35, 0xc5, 0x3c, 0x41, 0x00, 0x9e, 0xce, - 0x0c, 0x2a, 0x29, 0x5c, 0x4b, 0xaf, 0x11, 0xe1, 0x98, 0x67, 0x6c, 0x67, 0x5c, 0xf5, 0xc8, 0x92, - 0x7e, 0x95, 0x56, 0x3c, 0xb0, 0xa4, 0x0c, 0x72, 0x96, 0x35, 0xdd, 0x7e, 0xe0, 0x63, 0xd7, 0xda, - 0xae, 0xc0, 0x6f, 0xc1, 0x2c, 0xaf, 0xae, 0xa0, 0xad, 0x14, 0x69, 0x13, 0xf9, 0xbf, 0x06, 0x33, - 0x2d, 0x1f, 0x0d, 0xa3, 0x8b, 0x80, 0xa2, 0xb4, 0x6a, 0x94, 0x29, 0x6a, 0x17, 0x57, 0xfe, 0x65, - 0x71, 0x88, 0x0e, 0xb8, 0xd3, 0x46, 0x67, 0x7d, 0x4c, 0x78, 0xa0, 0x2d, 0xcd, 0x54, 0x55, 0x8b, - 0x23, 0x56, 0x6e, 0x95, 0x4d, 0xd0, 0x76, 0xe5, 0x59, 0x85, 0xa6, 0x9e, 0xd6, 0xb0, 0x4f, 0xf1, - 0xb5, 0x47, 0x2f, 0x7f, 0x91, 0x7a, 0x24, 0x69, 0x3e, 0xf5, 0x28, 0x4a, 0xe5, 0x72, 0xc3, 0xa8, - 0x7b, 0xe4, 0x77, 0xf1, 0x07, 0xf9, 0x72, 0xcb, 0x64, 0x86, 0xcb, 0x4d, 0xa8, 0xe4, 0x1c, 0x7d, - 0x12, 0x77, 0x3a, 0x07, 0x98, 0xec, 0x8d, 0xea, 0x78, 0x24, 0xe5, 0x68, 0x59, 0x9c, 0xcf, 0xd1, - 0xaa, 0x56, 0x3e, 0x88, 0x5c, 0xd3, 0x22, 0x28, 0x24, 0xed, 0x48, 0x3a, 0x88, 0xba, 0x2a, 0x7f, - 0x10, 0xf3, 0x16, 0x12, 0x21, 0xcf, 0x2b, 0x85, 0x2e, 0x5c, 0x2f, 0xfb, 0xa9, 0x81, 0xf3, 0xa0, - 0xf4, 0x3f, 0x0c, 0xd2, 0xf5, 0x38, 0x04, 0x0b, 0xfb, 0x5e, 0x34, 0xa4, 0x16, 0x27, 0x8d, 0x46, - 0x1b, 0x45, 0x14, 0x93, 0x07, 0xc3, 0xe1, 0x4e, 0x26, 0xa5, 0x22, 0x81, 0xc9, 0x79, 0x0d, 0xef, - 0xdd, 0x1e, 0x98, 0xaf, 0x21, 0xbf, 0x83, 0xfb, 0x59, 0x9c, 0x7b, 0xcc, 0x3a, 0x91, 0xc9, 0x51, - 0x56, 0x73, 0x72, 0x1e, 0xa3, 0x0d, 0xee, 0xbd, 0x89, 0x08, 0x3a, 0xeb, 0x7b, 0x11, 0xed, 0x4e, - 0x2d, 0xf0, 0x7d, 0xdc, 0x21, 0x09, 0x25, 0x52, 0x27, 0xb3, 0x32, 0x0b, 0x0c, 0x99, 0xcd, 0x49, - 0xa3, 0xb1, 0x8f, 0x08, 0x6a, 0xa0, 0xce, 0x25, 0x26, 0xec, 0xb4, 0x7f, 0x01, 0xa6, 0x8f, 0xa2, - 0xd7, 0x7d, 0x2f, 0xc6, 0x70, 0x99, 0x99, 0xa4, 0x7f, 0x89, 0x12, 0x5f, 0x11, 0xf2, 0xde, 0x1c, - 0x82, 0xb9, 0x24, 0xa7, 0x63, 0xd4, 0xc5, 0xa1, 0xb4, 0x57, 0x25, 0x69, 0x7e, 0xaf, 0x2a, 0xca, - 0xf4, 0x11, 0xa2, 0x0e, 0xee, 0x1c, 0x60, 0xd2, 0x22, 0x41, 0x88, 0x5b, 0xe8, 0x1c, 0xb7, 0x5b, - 0xf2, 0xc6, 0x17, 0x52, 0xc3, 0xc6, 0x97, 0x95, 0x69, 0xb0, 0x36, 0x58, 0x38, 0xc0, 0x84, 0x26, - 0xe9, 0x1f, 0x91, 0x47, 0x8e, 0xfc, 0xf3, 0x40, 0xaa, 0xfc, 0x35, 0x4d, 0xbe, 0xf2, 0xcf, 0x19, - 0xa4, 0x51, 0xbf, 0x01, 0xd3, 0x0c, 0x2c, 0x3a, 0x04, 0x2a, 0xa5, 0x26, 0x95, 0x18, 0x6a, 0xc0, - 0x4c, 0x91, 0x7a, 0xff, 0x1e, 0x40, 0x29, 0xf0, 0xa1, 0x17, 0x91, 0x20, 0x1c, 0x49, 0xf7, 0x5b, - 0x5e, 0x99, 0xbf, 0xdf, 0x4c, 0x36, 0x69, 0xf8, 0x16, 0x00, 0x24, 0x1c, 0xbd, 0xee, 0x76, 0xd3, - 0x7b, 0x4d, 0xfd, 0x25, 0x4f, 0x9b, 0xab, 0xc4, 0x71, 0x2a, 0xb6, 0x90, 0x6e, 0xfc, 0x79, 0x12, - 0x8e, 0x4e, 0x50, 0x78, 0x99, 0x42, 0xed, 0xe3, 0xbc, 0x97, 0xd0, 0x8a, 0x9a, 0xbe, 0xd4, 0x88, - 0x47, 0xf7, 0xc1, 0x32, 0xdf, 0xad, 0xfb, 0xcc, 0x83, 0x1d, 0x8a, 0x4f, 0x35, 0x77, 0x83, 0x8d, - 0x28, 0xaf, 0x26, 0x30, 0xe5, 0xed, 0xfd, 0x16, 0x2c, 0xbe, 0xc5, 0x94, 0xb3, 0x99, 0xb2, 0x81, - 0x7a, 0x38, 0x82, 0x4f, 0xb5, 0x08, 0xba, 0x81, 0x48, 0x90, 0xaa, 0x1d, 0x53, 0x4a, 0x07, 0xe8, - 0x8c, 0xed, 0xb8, 0xc4, 0xb1, 0x16, 0xf8, 0xe7, 0x5e, 0x0f, 0x3e, 0xd1, 0x5c, 0x34, 0x7d, 0x16, - 0xf9, 0xe9, 0x38, 0xb3, 0xac, 0xff, 0x7b, 0x4f, 0xff, 0xf5, 0x97, 0x99, 0xca, 0xdf, 0x3e, 0x6e, - 0x54, 0xfe, 0xfe, 0x71, 0xa3, 0xf2, 0xef, 0x8f, 0x1b, 0x95, 0x3f, 0xff, 0x67, 0xc3, 0x02, 0x8b, - 0x41, 0xd8, 0x63, 0x69, 0x6c, 0xe7, 0x32, 0x66, 0xbf, 0xc4, 0x3a, 0x9b, 0x62, 0xff, 0x7c, 0xfe, - 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x9e, 0x46, 0x01, 0x26, 0x26, 0x00, 0x00, + 0x19, 0x80, 0x47, 0xb6, 0xcc, 0xa1, 0x31, 0x06, 0x1a, 0x30, 0xc3, 0x18, 0x83, 0x3d, 0xc6, 0x5e, + 0x76, 0x53, 0x45, 0x6c, 0xaf, 0xb3, 0xce, 0x1e, 0xb2, 0x01, 0x84, 0x0d, 0xac, 0xa0, 0x56, 0x25, + 0xc9, 0xbb, 0x4e, 0x2a, 0x29, 0xaa, 0x91, 0x1a, 0x31, 0x41, 0x9a, 0x51, 0x66, 0x9a, 0xc1, 0x7a, + 0x93, 0x3c, 0x42, 0x2a, 0x4f, 0x92, 0xcb, 0x54, 0xe5, 0x22, 0xb9, 0x4c, 0x39, 0x2f, 0x90, 0xbb, + 0x5c, 0x26, 0xd5, 0x3d, 0x33, 0x7d, 0x9a, 0x9e, 0x11, 0x7b, 0xe5, 0xe1, 0x3f, 0xf5, 0xf9, 0xef, + 0xef, 0x6f, 0x0b, 0xdc, 0x25, 0xde, 0x65, 0x3c, 0x3c, 0xdb, 0x1e, 0x86, 0x01, 0x09, 0xe0, 0x44, + 0xf2, 0x97, 0xb3, 0xd0, 0x09, 0x86, 0x61, 0xd0, 0xc1, 0x51, 0x14, 0x84, 0x89, 0xca, 0x99, 0xbd, + 0x8c, 0xc3, 0x61, 0x27, 0xb3, 0x74, 0xa6, 0x07, 0xc3, 0x61, 0xfa, 0xb9, 0x18, 0xa2, 0x73, 0x72, + 0x1a, 0xe1, 0x30, 0xc6, 0x21, 0xd7, 0x2f, 0x76, 0xbd, 0x08, 0xf5, 0x7a, 0x21, 0xee, 0x21, 0x82, + 0xbb, 0xa9, 0x70, 0xa9, 0x17, 0xf4, 0x02, 0xf6, 0xf9, 0x73, 0xfa, 0x95, 0x4a, 0xe7, 0xc2, 0xab, + 0x88, 0xb0, 0xcf, 0x44, 0xe0, 0xfe, 0x7d, 0x1e, 0x2c, 0xed, 0x21, 0xd2, 0xb9, 0xa8, 0x05, 0x83, + 0x01, 0xf2, 0xbb, 0x51, 0x13, 0xff, 0xf1, 0x0a, 0x47, 0x04, 0xee, 0x80, 0xa9, 0x30, 0xf9, 0x8c, + 0xec, 0xca, 0xa3, 0xdb, 0x5b, 0x33, 0x2f, 0x37, 0xb7, 0xd3, 0xfe, 0x9b, 0xec, 0xb7, 0xd3, 0x7f, + 0x9b, 0xdc, 0x0b, 0x6e, 0x80, 0x99, 0xf4, 0xfb, 0xd4, 0xeb, 0x46, 0xf6, 0xad, 0x47, 0xb7, 0xb7, + 0xaa, 0x4d, 0x90, 0x8a, 0x8e, 0xba, 0x91, 0xf3, 0x8f, 0x39, 0x30, 0x99, 0x35, 0xf7, 0x09, 0xb8, + 0x7d, 0x80, 0x89, 0x5d, 0x79, 0x54, 0xd9, 0x9a, 0x79, 0xb9, 0xb8, 0x9d, 0x4d, 0xc0, 0x01, 0x26, + 0xa9, 0xc5, 0xa1, 0xd5, 0xa4, 0x16, 0xf0, 0x33, 0x50, 0x6d, 0x75, 0x90, 0x6f, 0xdf, 0x62, 0x96, + 0x4b, 0xdc, 0x92, 0x0a, 0x85, 0x29, 0xb3, 0x81, 0x5f, 0x80, 0xa9, 0x46, 0x88, 0xaf, 0x43, 0x8f, + 0x60, 0xfb, 0x36, 0xb3, 0xb7, 0xb9, 0x7d, 0xa6, 0x10, 0x3e, 0xdc, 0x16, 0x3e, 0x07, 0x13, 0x74, + 0x78, 0x1e, 0xb1, 0xab, 0xcc, 0xeb, 0x3e, 0xf7, 0x4a, 0xc4, 0xc2, 0x27, 0xb5, 0xa3, 0x1e, 0x47, + 0x83, 0x61, 0x10, 0x12, 0xfb, 0x8e, 0xe6, 0x91, 0x88, 0x25, 0x8f, 0x44, 0x00, 0x3f, 0x07, 0x93, + 0xb5, 0x3e, 0x46, 0xfe, 0xd5, 0xd0, 0x9e, 0x60, 0x2e, 0x2b, 0xa2, 0x91, 0x44, 0x2e, 0x7c, 0x32, + 0x4b, 0x3a, 0x20, 0x36, 0xf9, 0x74, 0xaa, 0x26, 0xb5, 0x01, 0x65, 0x0a, 0x69, 0x40, 0x99, 0x08, + 0xbe, 0x01, 0xb3, 0xec, 0xbb, 0x19, 0xf4, 0xfb, 0x67, 0xa8, 0x73, 0x69, 0x4f, 0x31, 0xe7, 0x87, + 0xaa, 0x73, 0xa6, 0x15, 0x11, 0x54, 0x2f, 0xda, 0x3c, 0x9d, 0xd7, 0xe3, 0xa0, 0x73, 0x69, 0x4f, + 0x6b, 0xcd, 0x67, 0x0a, 0xa9, 0xf9, 0x4c, 0x04, 0x7f, 0x0d, 0x66, 0x9a, 0x38, 0x0a, 0xfa, 0x31, + 0x66, 0xae, 0x80, 0xb9, 0x3e, 0xe0, 0xae, 0x92, 0x4e, 0x78, 0xcb, 0x1e, 0x70, 0x13, 0xdc, 0x3a, + 0xa8, 0xd9, 0x33, 0xcc, 0x0f, 0x8a, 0xcd, 0x51, 0x13, 0xe6, 0xb7, 0x0e, 0x6a, 0xb4, 0x99, 0x7d, + 0xdc, 0xc7, 0x04, 0x37, 0x91, 0xdf, 0xc3, 0xf6, 0x5d, 0xad, 0x19, 0x49, 0x27, 0x35, 0x23, 0x49, + 0xe9, 0x2a, 0x36, 0xd1, 0x35, 0x9d, 0xdc, 0x59, 0x6d, 0x15, 0x13, 0xb1, 0xb4, 0x8a, 0x89, 0x80, + 0x8d, 0x0c, 0x5d, 0xf3, 0x35, 0xb9, 0xa7, 0x8f, 0x4c, 0xe8, 0xe4, 0x91, 0x09, 0x69, 0xda, 0x64, + 0xe3, 0x8a, 0xd8, 0x73, 0xf9, 0x26, 0x1b, 0x57, 0x5a, 0x93, 0x8d, 0x2b, 0xa5, 0x49, 0xea, 0x36, + 0x5f, 0xd0, 0xa4, 0xe2, 0x2b, 0x7b, 0xc0, 0x2f, 0xc1, 0x74, 0x13, 0x5d, 0x27, 0xe3, 0xb6, 0x17, + 0x98, 0xfb, 0xaa, 0xec, 0x9e, 0xce, 0x08, 0x77, 0x16, 0xd6, 0xf0, 0x10, 0xdc, 0xcb, 0x22, 0xa5, + 0xfe, 0x90, 0xf9, 0xaf, 0xe7, 0x9a, 0xd7, 0x83, 0x68, 0x7e, 0x74, 0xfb, 0x37, 0xd1, 0x35, 0x3b, + 0xc9, 0x8b, 0xda, 0xf6, 0x4f, 0xe5, 0xd2, 0xf6, 0x4f, 0x25, 0x69, 0xf3, 0xf2, 0x1a, 0x2f, 0xe5, + 0x9b, 0x37, 0x2e, 0xb3, 0xe6, 0x07, 0xf7, 0xc0, 0xdd, 0xac, 0x43, 0xac, 0x0f, 0xcb, 0x2c, 0xce, + 0x5a, 0x6e, 0x18, 0x6a, 0x47, 0x14, 0x1f, 0xf8, 0x4b, 0x30, 0x53, 0x13, 0xa9, 0xdb, 0xbe, 0x9f, + 0x26, 0x24, 0x39, 0x9d, 0x4b, 0x2b, 0x20, 0x99, 0xc2, 0x3a, 0x98, 0x6b, 0xe0, 0x28, 0xf2, 0x06, + 0x5e, 0x44, 0xbc, 0x0e, 0x3b, 0x13, 0x2b, 0xcc, 0x7b, 0x43, 0xa4, 0x27, 0x55, 0x2f, 0x02, 0xe9, + 0x9e, 0xf0, 0x47, 0xb0, 0x28, 0x89, 0xf8, 0x09, 0xb7, 0x59, 0xc0, 0x27, 0xa6, 0x80, 0xf9, 0x73, + 0x6e, 0x8a, 0x40, 0x67, 0xbb, 0x76, 0x81, 0x3b, 0x97, 0xed, 0x0f, 0x7e, 0x8b, 0x20, 0x72, 0x15, + 0xd9, 0xab, 0xda, 0x6c, 0xab, 0x6a, 0x69, 0xb6, 0x55, 0x05, 0x9d, 0xed, 0xf6, 0x07, 0xff, 0x10, + 0xa3, 0x90, 0xec, 0x61, 0x44, 0x6c, 0x47, 0x9b, 0x6d, 0x59, 0x29, 0xcd, 0xb6, 0x2c, 0xa6, 0xc3, + 0x64, 0x51, 0x5b, 0xb8, 0x13, 0xf8, 0x5d, 0x14, 0x8e, 0xe8, 0xe0, 0x23, 0xfb, 0xb1, 0x36, 0x4c, + 0x83, 0x8d, 0x34, 0x4c, 0x83, 0x36, 0xdd, 0x54, 0xf2, 0x4a, 0xba, 0xf9, 0x4d, 0x25, 0xa9, 0xd5, + 0x4d, 0x25, 0x2f, 0x6b, 0x1b, 0xc0, 0xb7, 0x7d, 0x14, 0x5d, 0xd0, 0xd9, 0x6b, 0x07, 0x3f, 0xe0, + 0x30, 0xf2, 0x02, 0xdf, 0x7e, 0xc2, 0xa2, 0xb9, 0x3c, 0x5a, 0xde, 0x44, 0x44, 0x34, 0xf8, 0x43, + 0x0f, 0xac, 0x36, 0x42, 0x3c, 0x44, 0x21, 0x36, 0x04, 0xdf, 0x64, 0xc1, 0x3f, 0x95, 0x6f, 0x35, + 0xb3, 0xa5, 0x68, 0xa3, 0x38, 0x1a, 0xfc, 0x0a, 0xdc, 0x79, 0x33, 0x18, 0x92, 0x91, 0xfd, 0xbf, + 0xe4, 0x1e, 0x7e, 0x6c, 0xbc, 0xf1, 0x99, 0x89, 0x88, 0x97, 0xb8, 0xec, 0xdd, 0x01, 0xb7, 0x3b, + 0x83, 0xee, 0x77, 0xd5, 0xa9, 0x07, 0xf3, 0x8f, 0xdd, 0xbf, 0x2c, 0x80, 0x65, 0x8d, 0x12, 0xa2, + 0x61, 0xe0, 0x47, 0x18, 0xee, 0x83, 0xe9, 0x30, 0xfd, 0xce, 0xb8, 0xe2, 0x59, 0x01, 0x57, 0x24, + 0x56, 0xdb, 0xd9, 0x47, 0x53, 0x38, 0x8e, 0x45, 0x0b, 0xf8, 0x1c, 0x2c, 0x91, 0x10, 0xf9, 0x11, + 0xbd, 0x6a, 0x4f, 0xfb, 0x68, 0x84, 0xc3, 0xd3, 0x7e, 0x80, 0xba, 0x8c, 0x02, 0xaa, 0x4d, 0xc8, + 0x75, 0xc7, 0x54, 0x75, 0x1c, 0xa0, 0xae, 0xf3, 0xdf, 0x39, 0x30, 0xc5, 0x7b, 0xb9, 0x25, 0xd3, + 0xc8, 0x92, 0x4a, 0x23, 0x89, 0x49, 0x86, 0x23, 0x3f, 0x53, 0x70, 0x64, 0x59, 0xc3, 0x11, 0x6e, + 0x9b, 0xf0, 0xc8, 0xeb, 0x1c, 0x8f, 0xac, 0x1a, 0x78, 0x84, 0x3b, 0x09, 0x20, 0x79, 0xa1, 0x01, + 0xc9, 0x4a, 0x0e, 0x48, 0xb8, 0x53, 0x46, 0x24, 0x2f, 0x34, 0x22, 0x59, 0xc9, 0x11, 0x89, 0x70, + 0x49, 0x91, 0xe4, 0x95, 0x8e, 0x24, 0x76, 0x1e, 0x49, 0xb8, 0x13, 0x67, 0x92, 0xd7, 0x39, 0x26, + 0x59, 0x35, 0x30, 0x89, 0x18, 0x14, 0xbf, 0xfa, 0xde, 0x9a, 0xa1, 0x64, 0xbd, 0x08, 0x4a, 0x78, + 0x08, 0x8d, 0x4a, 0x5e, 0xe7, 0xa8, 0x64, 0xd5, 0x40, 0x25, 0xa2, 0x03, 0x1c, 0x4b, 0x76, 0x4c, + 0x58, 0xb2, 0x66, 0xc6, 0x12, 0xee, 0xae, 0x70, 0xc9, 0x53, 0x89, 0x4b, 0x16, 0x15, 0x2e, 0xe1, + 0xf6, 0x14, 0x4c, 0x76, 0x4c, 0x60, 0xb2, 0x66, 0x06, 0x13, 0xd1, 0x90, 0x7c, 0x5f, 0xbd, 0xd0, + 0xc8, 0x64, 0x25, 0x47, 0x26, 0x62, 0x35, 0x53, 0x34, 0xd9, 0x31, 0xa1, 0xc9, 0x9a, 0x19, 0x4d, + 0xa4, 0xd1, 0x49, 0x6c, 0xf2, 0x42, 0x63, 0x93, 0x95, 0x1c, 0x9b, 0x28, 0x8d, 0x52, 0xb6, 0xd8, + 0x31, 0xc1, 0xc9, 0x9a, 0x19, 0x4e, 0xf2, 0x8d, 0xd2, 0x08, 0x5f, 0xe5, 0xe9, 0xc4, 0x31, 0xd1, + 0x09, 0xf7, 0x96, 0xf0, 0xe4, 0xa8, 0x00, 0x4f, 0x36, 0x0a, 0xf1, 0x84, 0x47, 0xd1, 0xf9, 0xe4, + 0x95, 0xce, 0x27, 0x76, 0x9e, 0x4f, 0xc4, 0x59, 0xc8, 0x00, 0xe5, 0xa8, 0x00, 0x50, 0x36, 0x0a, + 0x01, 0x45, 0xe9, 0x80, 0xbc, 0xe2, 0x35, 0x23, 0xa1, 0x3c, 0x2c, 0x20, 0x14, 0x1e, 0x46, 0x45, + 0x94, 0x2f, 0x4d, 0x88, 0xb2, 0xac, 0x21, 0x8a, 0x58, 0x07, 0xf9, 0x32, 0x3b, 0x2e, 0x62, 0x94, + 0x47, 0xc5, 0x8c, 0xc2, 0x23, 0xe5, 0x20, 0xe5, 0x7d, 0x19, 0xa4, 0x6c, 0x96, 0x43, 0x0a, 0x8f, + 0x6a, 0xa4, 0x94, 0xa3, 0x02, 0x4a, 0xd9, 0x28, 0xa4, 0x14, 0x31, 0xe5, 0x1a, 0xa6, 0xd4, 0x8c, + 0x98, 0xf2, 0xb0, 0x00, 0x53, 0xc4, 0x94, 0x2b, 0x9c, 0xf2, 0xbe, 0x8c, 0x53, 0x36, 0xcb, 0x39, + 0x45, 0x8c, 0xd4, 0x04, 0x2a, 0x47, 0x05, 0xa0, 0xb2, 0x51, 0x08, 0x2a, 0xca, 0xe6, 0x92, 0x17, + 0xf7, 0x5d, 0x09, 0xa9, 0x3c, 0x29, 0x25, 0x15, 0x1e, 0xd2, 0x84, 0x2a, 0x7f, 0x18, 0x8f, 0x2a, + 0x9f, 0xdd, 0x04, 0x55, 0x78, 0x23, 0x25, 0xac, 0xf2, 0xb5, 0xc6, 0x2a, 0x6e, 0x19, 0xab, 0xf0, + 0x80, 0x26, 0x58, 0xd9, 0x03, 0xf3, 0xc9, 0x85, 0x82, 0xce, 0xc9, 0x09, 0x8e, 0x22, 0xd4, 0xc3, + 0x70, 0x1b, 0x54, 0x07, 0x51, 0x2f, 0x23, 0x14, 0x67, 0x5b, 0x7d, 0x76, 0x91, 0x2c, 0x9b, 0xcc, + 0xce, 0x6d, 0x81, 0xd5, 0x42, 0x46, 0x82, 0x2b, 0x60, 0x92, 0x24, 0xa8, 0xc2, 0x88, 0xa2, 0xda, + 0x9c, 0x20, 0x0c, 0x53, 0xe0, 0x43, 0x00, 0xba, 0xb8, 0x8f, 0x46, 0xa7, 0xc4, 0x1b, 0x60, 0x86, + 0x10, 0xd5, 0xe6, 0x34, 0x93, 0xb4, 0xbd, 0x01, 0x76, 0x7f, 0x01, 0x9c, 0xe2, 0xc1, 0x14, 0x46, + 0x7d, 0xf9, 0x9f, 0x4f, 0x40, 0xb5, 0xed, 0x5d, 0xc6, 0xf0, 0x15, 0xb8, 0x53, 0x8f, 0x69, 0x22, + 0x37, 0xbd, 0xa7, 0x38, 0x46, 0xac, 0x71, 0x2d, 0xf8, 0x1a, 0x4c, 0xd4, 0x63, 0x96, 0x3d, 0x8c, + 0x8f, 0x2b, 0x8e, 0x99, 0x71, 0x5c, 0x0b, 0xd6, 0x00, 0xa8, 0xc7, 0x1c, 0x59, 0x0a, 0x5f, 0x5a, + 0x9c, 0x62, 0xe6, 0x71, 0x2d, 0xf8, 0x1e, 0x2c, 0xd4, 0x63, 0x3d, 0x7b, 0x8c, 0x2b, 0x8b, 0x9c, + 0xb1, 0x39, 0xc9, 0xb5, 0x60, 0x17, 0x2c, 0xd7, 0x7f, 0x30, 0x65, 0x90, 0x9b, 0xd4, 0x48, 0xce, + 0x8d, 0x72, 0x94, 0x6b, 0xc1, 0xef, 0xc1, 0xbd, 0x7a, 0xac, 0x24, 0x84, 0xd2, 0x32, 0xc7, 0x29, + 0xcf, 0x2e, 0xae, 0x05, 0xdf, 0x81, 0xf9, 0x7a, 0xac, 0x25, 0xaa, 0x31, 0x15, 0x98, 0x33, 0x2e, + 0xf7, 0xa5, 0xb3, 0x11, 0x9b, 0xb2, 0xcc, 0x4d, 0x4a, 0x29, 0xe7, 0x46, 0x79, 0xcc, 0xb5, 0xe0, + 0xaf, 0xc0, 0x54, 0x3d, 0x4e, 0x81, 0xb4, 0xe0, 0x11, 0xcd, 0x29, 0x62, 0xd9, 0xcc, 0x3d, 0x85, + 0xd3, 0x82, 0x17, 0x35, 0xa7, 0x88, 0x6b, 0x5d, 0x0b, 0xee, 0x80, 0xe9, 0x7a, 0x9c, 0x61, 0x6a, + 0xd1, 0xf3, 0x9a, 0x53, 0x08, 0xb9, 0xd9, 0x96, 0xe6, 0x3c, 0x54, 0xf8, 0xd6, 0xe6, 0x14, 0x13, + 0xaf, 0x6b, 0xc1, 0x26, 0x98, 0x4b, 0x83, 0xf0, 0x2d, 0x57, 0xfe, 0xf0, 0xe6, 0x8c, 0x41, 0xe0, + 0xac, 0x63, 0x1c, 0x64, 0x0b, 0x5f, 0xe1, 0x9c, 0x62, 0x12, 0x76, 0x2d, 0x78, 0x0c, 0x66, 0xeb, + 0xb1, 0x8c, 0xb3, 0x65, 0x4f, 0x72, 0x4e, 0x29, 0x18, 0xbb, 0x16, 0x7c, 0x01, 0xaa, 0xf5, 0xf8, + 0xa0, 0x06, 0x0d, 0xef, 0x73, 0x8e, 0x89, 0x8d, 0xb3, 0x0e, 0xc8, 0xd0, 0x53, 0xf6, 0x58, 0xe7, + 0x94, 0x02, 0xb3, 0x6b, 0xc1, 0x18, 0x3c, 0x60, 0xf9, 0xa7, 0xe0, 0xc2, 0xb8, 0x79, 0x91, 0xec, + 0xfc, 0x84, 0x4b, 0xca, 0xb5, 0x20, 0x02, 0x4b, 0xf5, 0xd8, 0xd0, 0xe0, 0x0d, 0x4a, 0x7e, 0xe7, + 0x26, 0x97, 0xad, 0x6b, 0xc1, 0xaf, 0x33, 0xfc, 0x87, 0x05, 0x4f, 0x92, 0x4e, 0x51, 0x41, 0xe0, + 0x5a, 0xf0, 0x3b, 0xa5, 0x10, 0x80, 0x65, 0xaf, 0x93, 0x4e, 0x69, 0x7d, 0xc0, 0x3b, 0x42, 0x39, + 0xbd, 0xe0, 0xa1, 0xd2, 0x29, 0x2a, 0x12, 0xd4, 0x8e, 0xd0, 0x08, 0x65, 0x6f, 0x96, 0x4e, 0x69, + 0xcd, 0xe0, 0x5a, 0x70, 0x5f, 0x2a, 0x13, 0x60, 0xf1, 0xf3, 0xa5, 0x53, 0x52, 0x3b, 0xb8, 0x16, + 0x6c, 0xe9, 0x05, 0x03, 0x1c, 0xf3, 0x92, 0xe9, 0x8c, 0x2b, 0x25, 0x5c, 0x0b, 0x7e, 0xcb, 0x4b, + 0x07, 0x58, 0xf4, 0xa8, 0xe9, 0x14, 0x56, 0x13, 0xbc, 0x53, 0xf2, 0xb1, 0x18, 0xf3, 0xbe, 0xe9, + 0x8c, 0x2b, 0x2f, 0x5c, 0x0b, 0x9e, 0xa8, 0xe5, 0x04, 0x2c, 0x7d, 0xea, 0x74, 0xca, 0xcb, 0x0c, + 0x1e, 0xee, 0x00, 0x93, 0x3a, 0x1e, 0xb5, 0xdb, 0xc7, 0x6a, 0x38, 0x2e, 0x36, 0x86, 0x93, 0xb4, + 0x3c, 0xdc, 0x5b, 0xb0, 0xc0, 0x08, 0x75, 0x40, 0x0f, 0xdb, 0xae, 0xdf, 0x6d, 0x5d, 0xa3, 0xa1, + 0xba, 0xc3, 0x6a, 0xbb, 0x2d, 0xe3, 0x0e, 0x63, 0x72, 0x6d, 0x87, 0xb1, 0x3b, 0x29, 0xba, 0x1a, + 0xa8, 0x3b, 0x2c, 0x93, 0x1a, 0x77, 0x98, 0x50, 0xf2, 0x58, 0xa7, 0x00, 0xbe, 0xf3, 0x23, 0x74, + 0x8e, 0xf7, 0x71, 0x44, 0xc2, 0x60, 0x94, 0x2c, 0x85, 0x38, 0xd4, 0x79, 0x65, 0xfe, 0x50, 0x9b, + 0x6c, 0x78, 0x03, 0x18, 0x2c, 0x35, 0x71, 0xcf, 0x8b, 0x08, 0x0e, 0x69, 0x2a, 0xfd, 0xfe, 0x2c, + 0xe1, 0x4b, 0xb8, 0x29, 0x25, 0xda, 0xbc, 0x3a, 0x6b, 0xe4, 0xe9, 0x18, 0x2b, 0xde, 0xcc, 0xef, + 0xc0, 0x02, 0x1b, 0x9d, 0xd2, 0xc6, 0x63, 0xf5, 0x02, 0x37, 0x35, 0xe0, 0x96, 0x99, 0xc8, 0xb3, + 0xd4, 0xc4, 0x83, 0x20, 0xb9, 0x0d, 0x78, 0x78, 0x57, 0xea, 0x9c, 0xae, 0xcc, 0xcf, 0x92, 0xc9, + 0x86, 0x37, 0xf0, 0x1b, 0x30, 0xdf, 0xb8, 0x18, 0x45, 0x5e, 0x07, 0xf5, 0xf9, 0x7d, 0x27, 0xe1, + 0x9e, 0xa6, 0xca, 0x82, 0x3f, 0x2e, 0xb1, 0xe0, 0xa1, 0xbf, 0x51, 0xaa, 0x63, 0x68, 0x7c, 0xba, + 0x77, 0xcc, 0xd5, 0x32, 0xcb, 0x40, 0x0b, 0x92, 0x77, 0x8b, 0x84, 0x18, 0x0d, 0x7e, 0x62, 0x8c, + 0xe7, 0x15, 0x78, 0x92, 0x16, 0x1f, 0x72, 0x47, 0x56, 0x15, 0xf3, 0x04, 0x01, 0x78, 0x3a, 0x33, + 0xa8, 0xa4, 0x70, 0x2d, 0xbd, 0x46, 0x84, 0x63, 0x9e, 0xb1, 0x9d, 0x71, 0xd5, 0x23, 0x4b, 0xfa, + 0x55, 0x5a, 0xf1, 0xc0, 0x92, 0x32, 0xc8, 0x59, 0xd4, 0x74, 0xfb, 0x81, 0x8f, 0x5d, 0x6b, 0xab, + 0x02, 0xbf, 0x05, 0xd3, 0xbc, 0xba, 0x82, 0xb6, 0x52, 0xa4, 0xdd, 0xc8, 0x7f, 0x17, 0x4c, 0xb5, + 0x7c, 0x34, 0x8c, 0x2e, 0x02, 0x8a, 0xd2, 0xaa, 0x51, 0xa6, 0xa8, 0x5d, 0x5c, 0xf9, 0x97, 0xc5, + 0x21, 0x3a, 0xe0, 0x5e, 0x1b, 0x9d, 0xf5, 0x31, 0xe1, 0x81, 0x36, 0x35, 0x53, 0x55, 0x2d, 0x8e, + 0x58, 0xb9, 0x55, 0x36, 0x41, 0x5b, 0x95, 0xe7, 0x15, 0x9a, 0x7a, 0x5a, 0xc3, 0x3e, 0xc5, 0xd7, + 0x1e, 0xbd, 0xfc, 0x45, 0xea, 0x91, 0xa4, 0xf9, 0xd4, 0xa3, 0x28, 0x95, 0xcb, 0x0d, 0xa3, 0xee, + 0x91, 0xdf, 0xc5, 0x1f, 0xe4, 0xcb, 0x2d, 0x93, 0x19, 0x2e, 0x37, 0xa1, 0x92, 0x73, 0xf4, 0x49, + 0xdc, 0xe9, 0x1c, 0x60, 0xb2, 0x37, 0xaa, 0xe3, 0x91, 0x94, 0xa3, 0x65, 0x71, 0x3e, 0x47, 0xab, + 0x5a, 0xf9, 0x20, 0x72, 0x4d, 0x8b, 0xa0, 0x90, 0xb4, 0x23, 0xe9, 0x20, 0xea, 0xaa, 0xfc, 0x41, + 0xcc, 0x5b, 0x48, 0x84, 0x3c, 0xab, 0x14, 0xba, 0x70, 0xad, 0xec, 0xa7, 0x06, 0xce, 0xc3, 0xd2, + 0xff, 0x30, 0x48, 0xd7, 0xe3, 0x10, 0xcc, 0xed, 0x7b, 0xd1, 0x90, 0x5a, 0x9c, 0x34, 0x1a, 0x6d, + 0x14, 0x51, 0x4c, 0x1e, 0x0c, 0x87, 0xdb, 0x99, 0x94, 0x8a, 0x04, 0x26, 0xe7, 0x35, 0xbc, 0x77, + 0x7b, 0x60, 0xb6, 0x86, 0xfc, 0x0e, 0xee, 0x67, 0x71, 0xee, 0x33, 0xeb, 0x44, 0x26, 0x47, 0x59, + 0xc9, 0xc9, 0x79, 0x8c, 0x36, 0xb8, 0xff, 0x26, 0x22, 0xe8, 0xac, 0xef, 0x45, 0xb4, 0x3b, 0xb5, + 0xc0, 0xf7, 0x71, 0x87, 0x24, 0x94, 0x48, 0x9d, 0xcc, 0xca, 0x2c, 0x30, 0x64, 0x36, 0x27, 0x8d, + 0xc6, 0x3e, 0x22, 0xa8, 0x81, 0x3a, 0x97, 0x98, 0xb0, 0xd3, 0xfe, 0x05, 0x98, 0x3c, 0x8a, 0x76, + 0xfb, 0x5e, 0x8c, 0xe1, 0x22, 0x33, 0x49, 0xff, 0x12, 0x25, 0xbe, 0x22, 0xe4, 0xbd, 0x39, 0x04, + 0x33, 0x49, 0x4e, 0xc7, 0xa8, 0x8b, 0x43, 0x69, 0xaf, 0x4a, 0xd2, 0xfc, 0x5e, 0x55, 0x94, 0xe9, + 0x23, 0x44, 0x1d, 0xdc, 0x3b, 0xc0, 0xa4, 0x45, 0x82, 0x10, 0xb7, 0xd0, 0x39, 0x6e, 0xb7, 0xe4, + 0x8d, 0x2f, 0xa4, 0x86, 0x8d, 0x2f, 0x2b, 0xd3, 0x60, 0x6d, 0x30, 0x77, 0x80, 0x09, 0x4d, 0xd2, + 0x3f, 0x22, 0x8f, 0x1c, 0xf9, 0xe7, 0x81, 0x54, 0xf9, 0x6b, 0x9a, 0x7c, 0xe5, 0x9f, 0x33, 0x48, + 0xa3, 0x7e, 0x03, 0x26, 0x19, 0x58, 0x74, 0x08, 0x54, 0x4a, 0x4d, 0x2a, 0x31, 0xd4, 0x80, 0x99, + 0x22, 0xf5, 0xfe, 0x3d, 0x80, 0x52, 0xe0, 0x43, 0x2f, 0x22, 0x41, 0x38, 0x92, 0xee, 0xb7, 0xbc, + 0x32, 0x7f, 0xbf, 0x99, 0x6c, 0xd2, 0xf0, 0x67, 0x60, 0xf9, 0x00, 0x93, 0xb6, 0xc7, 0xe8, 0xbf, + 0x35, 0x8a, 0x08, 0x1e, 0xb0, 0x2c, 0x23, 0xb5, 0x90, 0x57, 0xe6, 0x5b, 0x30, 0xd9, 0x48, 0x3c, + 0x09, 0x48, 0x38, 0xda, 0xed, 0x76, 0xd3, 0xbb, 0x53, 0xfd, 0xb5, 0x50, 0x9b, 0xab, 0xc4, 0x91, + 0x2d, 0xb6, 0x90, 0xa8, 0x62, 0x96, 0x84, 0xa3, 0x13, 0x14, 0x5e, 0xa6, 0xe0, 0xfc, 0x24, 0xef, + 0x25, 0xb4, 0xe2, 0xdd, 0xa0, 0xd4, 0x88, 0x47, 0xf7, 0xc1, 0x22, 0x3f, 0x11, 0xfb, 0xcc, 0x83, + 0x1d, 0xbc, 0x4f, 0x35, 0x77, 0x83, 0x8d, 0x28, 0xe1, 0x6e, 0x60, 0xca, 0xdb, 0xfb, 0x2d, 0x98, + 0x7f, 0x8b, 0x29, 0xcb, 0x33, 0x65, 0x03, 0xf5, 0x70, 0x04, 0x9f, 0x69, 0x11, 0x74, 0x03, 0x91, + 0x84, 0x55, 0x3b, 0xa6, 0x94, 0x0e, 0xe9, 0x19, 0xdb, 0xd5, 0x89, 0x63, 0x2d, 0xf0, 0xcf, 0xbd, + 0x1e, 0x7c, 0xaa, 0xb9, 0x68, 0xfa, 0x2c, 0xf2, 0xb3, 0x71, 0x66, 0x59, 0xff, 0xf7, 0x9e, 0xfd, + 0xf3, 0xcf, 0x53, 0x95, 0xbf, 0x7e, 0x5c, 0xaf, 0xfc, 0xed, 0xe3, 0x7a, 0xe5, 0x5f, 0x1f, 0xd7, + 0x2b, 0x7f, 0xfa, 0xf7, 0xba, 0x05, 0xe6, 0x83, 0xb0, 0xc7, 0x52, 0xe5, 0xf6, 0x65, 0xcc, 0x7e, + 0xed, 0x75, 0x36, 0xc1, 0xfe, 0xf9, 0xfc, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x05, 0x86, 0x35, + 0xa0, 0x8a, 0x26, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1502,6 +1504,8 @@ type TikvClient interface { Compact(ctx context.Context, in *kvrpcpb.CompactRequest, opts ...grpc.CallOption) (*kvrpcpb.CompactResponse, error) /// Get the information about history lock waiting from TiKV. GetLockWaitHistory(ctx context.Context, in *kvrpcpb.GetLockWaitHistoryRequest, opts ...grpc.CallOption) (*kvrpcpb.GetLockWaitHistoryResponse, error) + /// Get system table from TiFlash + GetTiFlashSystemTable(ctx context.Context, in *kvrpcpb.TiFlashSystemTableRequest, opts ...grpc.CallOption) (*kvrpcpb.TiFlashSystemTableResponse, error) // These are for TiFlash disaggregated architecture /// Try to lock a S3 object, atomically TryAddLock(ctx context.Context, in *disaggregated.TryAddLockRequest, opts ...grpc.CallOption) (*disaggregated.TryAddLockResponse, error) @@ -2233,6 +2237,15 @@ func (c *tikvClient) GetLockWaitHistory(ctx context.Context, in *kvrpcpb.GetLock return out, nil } +func (c *tikvClient) GetTiFlashSystemTable(ctx context.Context, in *kvrpcpb.TiFlashSystemTableRequest, opts ...grpc.CallOption) (*kvrpcpb.TiFlashSystemTableResponse, error) { + out := new(kvrpcpb.TiFlashSystemTableResponse) + err := c.cc.Invoke(ctx, "/tikvpb.Tikv/GetTiFlashSystemTable", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *tikvClient) TryAddLock(ctx context.Context, in *disaggregated.TryAddLockRequest, opts ...grpc.CallOption) (*disaggregated.TryAddLockResponse, error) { out := new(disaggregated.TryAddLockResponse) err := c.cc.Invoke(ctx, "/tikvpb.Tikv/tryAddLock", in, out, opts...) @@ -2387,6 +2400,8 @@ type TikvServer interface { Compact(context.Context, *kvrpcpb.CompactRequest) (*kvrpcpb.CompactResponse, error) /// Get the information about history lock waiting from TiKV. GetLockWaitHistory(context.Context, *kvrpcpb.GetLockWaitHistoryRequest) (*kvrpcpb.GetLockWaitHistoryResponse, error) + /// Get system table from TiFlash + GetTiFlashSystemTable(context.Context, *kvrpcpb.TiFlashSystemTableRequest) (*kvrpcpb.TiFlashSystemTableResponse, error) // These are for TiFlash disaggregated architecture /// Try to lock a S3 object, atomically TryAddLock(context.Context, *disaggregated.TryAddLockRequest) (*disaggregated.TryAddLockResponse, error) @@ -2578,6 +2593,9 @@ func (*UnimplementedTikvServer) Compact(ctx context.Context, req *kvrpcpb.Compac func (*UnimplementedTikvServer) GetLockWaitHistory(ctx context.Context, req *kvrpcpb.GetLockWaitHistoryRequest) (*kvrpcpb.GetLockWaitHistoryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetLockWaitHistory not implemented") } +func (*UnimplementedTikvServer) GetTiFlashSystemTable(ctx context.Context, req *kvrpcpb.TiFlashSystemTableRequest) (*kvrpcpb.TiFlashSystemTableResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTiFlashSystemTable not implemented") +} func (*UnimplementedTikvServer) TryAddLock(ctx context.Context, req *disaggregated.TryAddLockRequest) (*disaggregated.TryAddLockResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method TryAddLock not implemented") } @@ -3691,6 +3709,24 @@ func _Tikv_GetLockWaitHistory_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _Tikv_GetTiFlashSystemTable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(kvrpcpb.TiFlashSystemTableRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TikvServer).GetTiFlashSystemTable(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tikvpb.Tikv/GetTiFlashSystemTable", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TikvServer).GetTiFlashSystemTable(ctx, req.(*kvrpcpb.TiFlashSystemTableRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Tikv_TryAddLock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(disaggregated.TryAddLockRequest) if err := dec(in); err != nil { @@ -3988,6 +4024,10 @@ var _Tikv_serviceDesc = grpc.ServiceDesc{ MethodName: "GetLockWaitHistory", Handler: _Tikv_GetLockWaitHistory_Handler, }, + { + MethodName: "GetTiFlashSystemTable", + Handler: _Tikv_GetTiFlashSystemTable_Handler, + }, { MethodName: "tryAddLock", Handler: _Tikv_TryAddLock_Handler, diff --git a/pkg/tracepb/tracepb.pb.go b/pkg/tracepb/tracepb.pb.go index 55cf091..e5b4919 100644 --- a/pkg/tracepb/tracepb.pb.go +++ b/pkg/tracepb/tracepb.pb.go @@ -68,7 +68,6 @@ var xxx_messageInfo_TraceRecordRequest proto.InternalMessageInfo type TraceRecord struct { // Types that are valid to be assigned to RecordOneof: - // // *TraceRecord_Report // *TraceRecord_NotifyCollect RecordOneof isTraceRecord_RecordOneof `protobuf_oneof:"record_oneof"` diff --git a/proto/kvrpcpb.proto b/proto/kvrpcpb.proto index 6b185e0..482fe30 100644 --- a/proto/kvrpcpb.proto +++ b/proto/kvrpcpb.proto @@ -1468,3 +1468,11 @@ message CompactResponse { bytes compacted_start_key = 3; bytes compacted_end_key = 4; } + +message TiFlashSystemTableRequest { + string sql = 1; +} + +message TiFlashSystemTableResponse { + bytes data = 1 [(gogoproto.customtype) = "github.com/pingcap/kvproto/pkg/sharedbytes.SharedBytes", (gogoproto.nullable) = false]; +} diff --git a/proto/tikvpb.proto b/proto/tikvpb.proto index 7f8378a..22d95e0 100644 --- a/proto/tikvpb.proto +++ b/proto/tikvpb.proto @@ -117,6 +117,9 @@ service Tikv { /// Get the information about history lock waiting from TiKV. rpc GetLockWaitHistory(kvrpcpb.GetLockWaitHistoryRequest) returns (kvrpcpb.GetLockWaitHistoryResponse); + /// Get system table from TiFlash + rpc GetTiFlashSystemTable(kvrpcpb.TiFlashSystemTableRequest) returns (kvrpcpb.TiFlashSystemTableResponse) {} + // These are for TiFlash disaggregated architecture /// Try to lock a S3 object, atomically rpc tryAddLock(disaggregated.TryAddLockRequest) returns (disaggregated.TryAddLockResponse) {}; diff --git a/scripts/check.sh b/scripts/check.sh index e7faaf4..c1568b8 100755 --- a/scripts/check.sh +++ b/scripts/check.sh @@ -34,6 +34,11 @@ check-protos-compatible() { # If the output message is encountered, please add proto.lock to git as well. git diff scripts/proto.lock | cat git diff --quiet scripts/proto.lock + if [ $? -ne 0 ]; then + echo "Please add proto.lock to git." + return 1 + fi + return 0 } if ! check_protoc_version || ! check-protos-compatible; then diff --git a/scripts/proto.lock b/scripts/proto.lock index 420cdf4..6b3bcab 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -10476,6 +10476,36 @@ "type": "bytes" } ] + }, + { + "name": "TiFlashSystemTableRequest", + "fields": [ + { + "id": 1, + "name": "sql", + "type": "string" + } + ] + }, + { + "name": "TiFlashSystemTableResponse", + "fields": [ + { + "id": 1, + "name": "data", + "type": "bytes", + "options": [ + { + "name": "(gogoproto.customtype)", + "value": "github.com/pingcap/kvproto/pkg/sharedbytes.SharedBytes" + }, + { + "name": "(gogoproto.nullable)", + "value": "false" + } + ] + } + ] } ], "imports": [ @@ -18039,6 +18069,11 @@ "in_type": "kvrpcpb.GetLockWaitHistoryRequest", "out_type": "kvrpcpb.GetLockWaitHistoryResponse" }, + { + "name": "GetTiFlashSystemTable", + "in_type": "kvrpcpb.TiFlashSystemTableRequest", + "out_type": "kvrpcpb.TiFlashSystemTableResponse" + }, { "name": "tryAddLock", "in_type": "disaggregated.TryAddLockRequest", -- Gitee From ce835ae20dfcb5f69f0aea04236070932c815b6a Mon Sep 17 00:00:00 2001 From: MyonKeminta <9948422+MyonKeminta@users.noreply.github.com> Date: Thu, 6 Apr 2023 20:53:31 +0800 Subject: [PATCH 35/44] Add for_update_ts check to PrewriteRequest (#1096) Signed-off-by: MyonKeminta Co-authored-by: MyonKeminta --- pkg/kvrpcpb/kvrpcpb.pb.go | 1097 +++++++++++++++++++++++-------------- proto/kvrpcpb.proto | 11 + scripts/proto.lock | 23 + 3 files changed, 719 insertions(+), 412 deletions(-) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index 6089c45..74b0a17 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -872,10 +872,13 @@ type PrewriteRequest struct { // inconsistency with schema change. MaxCommitTs uint64 `protobuf:"varint,14,opt,name=max_commit_ts,json=maxCommitTs,proto3" json:"max_commit_ts,omitempty"` // The level of assertion to use on this prewrte request. - AssertionLevel AssertionLevel `protobuf:"varint,15,opt,name=assertion_level,json=assertionLevel,proto3,enum=kvrpcpb.AssertionLevel" json:"assertion_level,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + AssertionLevel AssertionLevel `protobuf:"varint,15,opt,name=assertion_level,json=assertionLevel,proto3,enum=kvrpcpb.AssertionLevel" json:"assertion_level,omitempty"` + // for_update_ts constriants that should be checked when prewriting a pessimistic transaction. + // See https://github.com/tikv/tikv/issues/14311 + ForUpdateTsConstraints []*PrewriteRequest_ForUpdateTSConstraint `protobuf:"bytes,16,rep,name=for_update_ts_constraints,json=forUpdateTsConstraints,proto3" json:"for_update_ts_constraints,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *PrewriteRequest) Reset() { *m = PrewriteRequest{} } @@ -1016,6 +1019,71 @@ func (m *PrewriteRequest) GetAssertionLevel() AssertionLevel { return AssertionLevel_Off } +func (m *PrewriteRequest) GetForUpdateTsConstraints() []*PrewriteRequest_ForUpdateTSConstraint { + if m != nil { + return m.ForUpdateTsConstraints + } + return nil +} + +// for_update_ts constriants that should be checked when prewriting a pessimistic transaction. +type PrewriteRequest_ForUpdateTSConstraint struct { + // The index of key in the prewrite request that should be checked. + Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` + // The expected for_update_ts of the pessimistic lock of the key. + ExpectedForUpdateTs uint64 `protobuf:"varint,2,opt,name=expected_for_update_ts,json=expectedForUpdateTs,proto3" json:"expected_for_update_ts,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PrewriteRequest_ForUpdateTSConstraint) Reset() { *m = PrewriteRequest_ForUpdateTSConstraint{} } +func (m *PrewriteRequest_ForUpdateTSConstraint) String() string { return proto.CompactTextString(m) } +func (*PrewriteRequest_ForUpdateTSConstraint) ProtoMessage() {} +func (*PrewriteRequest_ForUpdateTSConstraint) Descriptor() ([]byte, []int) { + return fileDescriptor_1afe832be69693c7, []int{4, 0} +} +func (m *PrewriteRequest_ForUpdateTSConstraint) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PrewriteRequest_ForUpdateTSConstraint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PrewriteRequest_ForUpdateTSConstraint.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PrewriteRequest_ForUpdateTSConstraint) XXX_Merge(src proto.Message) { + xxx_messageInfo_PrewriteRequest_ForUpdateTSConstraint.Merge(m, src) +} +func (m *PrewriteRequest_ForUpdateTSConstraint) XXX_Size() int { + return m.Size() +} +func (m *PrewriteRequest_ForUpdateTSConstraint) XXX_DiscardUnknown() { + xxx_messageInfo_PrewriteRequest_ForUpdateTSConstraint.DiscardUnknown(m) +} + +var xxx_messageInfo_PrewriteRequest_ForUpdateTSConstraint proto.InternalMessageInfo + +func (m *PrewriteRequest_ForUpdateTSConstraint) GetIndex() uint32 { + if m != nil { + return m.Index + } + return 0 +} + +func (m *PrewriteRequest_ForUpdateTSConstraint) GetExpectedForUpdateTs() uint64 { + if m != nil { + return m.ExpectedForUpdateTs + } + return 0 +} + type PrewriteResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Errors []*KeyError `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` @@ -10028,6 +10096,7 @@ func init() { proto.RegisterType((*ScanRequest)(nil), "kvrpcpb.ScanRequest") proto.RegisterType((*ScanResponse)(nil), "kvrpcpb.ScanResponse") proto.RegisterType((*PrewriteRequest)(nil), "kvrpcpb.PrewriteRequest") + proto.RegisterType((*PrewriteRequest_ForUpdateTSConstraint)(nil), "kvrpcpb.PrewriteRequest.ForUpdateTSConstraint") proto.RegisterType((*PrewriteResponse)(nil), "kvrpcpb.PrewriteResponse") proto.RegisterType((*PessimisticLockRequest)(nil), "kvrpcpb.PessimisticLockRequest") proto.RegisterType((*PessimisticLockKeyResult)(nil), "kvrpcpb.PessimisticLockKeyResult") @@ -10156,418 +10225,422 @@ func init() { func init() { proto.RegisterFile("kvrpcpb.proto", fileDescriptor_1afe832be69693c7) } var fileDescriptor_1afe832be69693c7 = []byte{ - // 6571 bytes of a gzipped FileDescriptorProto + // 6634 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0x5b, 0x6c, 0x1c, 0xc9, 0x75, 0x28, 0x7b, 0x1e, 0x9c, 0x99, 0x33, 0xe4, 0xb0, 0xd9, 0x7c, 0x0d, 0x29, 0x69, 0x45, 0xf5, 0x5a, 0xbb, 0x32, 0xed, 0xa5, 0xbc, 0xdc, 0x87, 0x9f, 0x77, 0xbd, 0x12, 0xa9, 0x07, 0x57, 0x94, 0x48, 0xf4, 0xcc, 0x6a, 0xef, 0xe2, 0x5e, 0xbb, 0x5d, 0xec, 0x29, 0xce, 0x34, 0xd8, 0xd3, 0xdd, - 0xdb, 0x55, 0x43, 0x72, 0x7c, 0x71, 0x81, 0x2c, 0xf2, 0x00, 0x0c, 0x04, 0x4e, 0x62, 0x18, 0x70, - 0x00, 0x1b, 0x01, 0xf2, 0x61, 0x20, 0xce, 0x5f, 0x90, 0x9f, 0x3c, 0x3e, 0x82, 0x00, 0xfe, 0x70, - 0x82, 0x18, 0x36, 0x10, 0x04, 0x0e, 0x1c, 0xc0, 0x48, 0x36, 0x40, 0xbe, 0xf3, 0x13, 0x24, 0xf9, - 0x08, 0x12, 0xd4, 0xab, 0x1f, 0x33, 0x23, 0x8a, 0x1a, 0x51, 0xb2, 0x93, 0x2f, 0x4e, 0x9f, 0x73, - 0xaa, 0xea, 0xd4, 0x39, 0xa7, 0x4e, 0x9d, 0x3a, 0x75, 0x8a, 0x30, 0x7d, 0x78, 0x14, 0x85, 0x4e, - 0xb8, 0xbf, 0x1e, 0x46, 0x01, 0x0d, 0x8c, 0x92, 0xfc, 0x5c, 0x99, 0xea, 0x62, 0x8a, 0x14, 0x78, - 0x65, 0x1a, 0x47, 0x51, 0x10, 0xc5, 0x9f, 0xf3, 0xed, 0xa0, 0x1d, 0xf0, 0x9f, 0xd7, 0xd9, 0x2f, - 0x09, 0x9d, 0x89, 0x7a, 0x84, 0xf2, 0x9f, 0x12, 0x50, 0x6b, 0x61, 0xd4, 0xf2, 0x02, 0xe7, 0x50, - 0xf5, 0x42, 0x23, 0xe4, 0x60, 0xd5, 0x8b, 0xd9, 0x02, 0xb8, 0x83, 0xa9, 0x85, 0x3f, 0xe8, 0x61, - 0x42, 0x8d, 0x35, 0x28, 0x39, 0x81, 0x4f, 0xf1, 0x09, 0xad, 0x6b, 0xab, 0xda, 0xb5, 0xea, 0x86, - 0xbe, 0xae, 0x58, 0xdb, 0x14, 0x70, 0x4b, 0x11, 0x18, 0x3a, 0xe4, 0x0f, 0x71, 0xbf, 0x9e, 0x5b, - 0xd5, 0xae, 0x4d, 0x59, 0xec, 0xa7, 0x51, 0x87, 0xd2, 0x11, 0x8e, 0x88, 0x1b, 0xf8, 0xf5, 0xfc, - 0xaa, 0x76, 0xad, 0x60, 0xa9, 0x4f, 0xf3, 0x23, 0x0d, 0xaa, 0x7c, 0x18, 0x12, 0x06, 0x3e, 0xc1, - 0xc6, 0xab, 0x30, 0x15, 0xe1, 0xb6, 0x1b, 0xf8, 0x36, 0x9f, 0x93, 0x1c, 0xac, 0xb6, 0xae, 0x66, - 0x78, 0x8b, 0xfd, 0xb5, 0xaa, 0x82, 0x86, 0x7f, 0x18, 0x2f, 0x43, 0x51, 0xd0, 0xe6, 0x38, 0xed, - 0x6c, 0xcc, 0xd8, 0x3d, 0xdc, 0x17, 0xe4, 0x02, 0x6f, 0xcc, 0x43, 0xf1, 0x08, 0x79, 0x3d, 0xcc, - 0x79, 0x98, 0xb2, 0xc4, 0x87, 0x71, 0x01, 0x2a, 0x7e, 0x40, 0xed, 0x83, 0xa0, 0xe7, 0xb7, 0xea, - 0x85, 0x55, 0xed, 0x5a, 0xd9, 0x2a, 0xfb, 0x01, 0xbd, 0xcd, 0xbe, 0x8d, 0xb7, 0x60, 0x06, 0x9f, - 0x60, 0xc7, 0x6e, 0x61, 0x8a, 0x5c, 0x8f, 0xd8, 0x47, 0x1b, 0xf5, 0x49, 0x3e, 0xca, 0x62, 0x3c, - 0xca, 0xad, 0x13, 0xec, 0x6c, 0x09, 0xf4, 0xc3, 0x0d, 0x6b, 0x1a, 0xa7, 0x3f, 0xdf, 0x29, 0x94, - 0x8b, 0xfa, 0xa4, 0xf9, 0x2f, 0x1a, 0x54, 0x1b, 0x0e, 0xf2, 0xc7, 0x11, 0xe6, 0x05, 0xa8, 0x10, - 0x8a, 0x22, 0x6a, 0x27, 0x22, 0x2d, 0x73, 0xc0, 0x3d, 0xdc, 0x67, 0x33, 0xf2, 0xdc, 0xae, 0x4b, - 0xf9, 0x8c, 0xa6, 0x2d, 0xf1, 0x91, 0x96, 0x76, 0x21, 0x23, 0x6d, 0x63, 0x19, 0xca, 0x87, 0xb8, - 0x6f, 0x07, 0xbe, 0xd7, 0xaf, 0x17, 0xf9, 0x54, 0x4b, 0x87, 0xb8, 0xbf, 0xeb, 0x7b, 0x5c, 0x45, - 0x11, 0x66, 0x74, 0x98, 0xcf, 0xb0, 0x6c, 0xa9, 0x4f, 0x63, 0x09, 0x4a, 0xd8, 0x6f, 0xf1, 0xf1, - 0x4b, 0x7c, 0xfc, 0x49, 0xec, 0xb7, 0xd8, 0xe8, 0x97, 0xa1, 0x4a, 0x50, 0x37, 0xf4, 0xb0, 0x4d, - 0x28, 0x0e, 0xeb, 0x65, 0xce, 0x03, 0x08, 0x50, 0x83, 0xe2, 0xd0, 0xfc, 0x2d, 0x0d, 0xa6, 0xc4, - 0xbc, 0xc7, 0xd7, 0xee, 0x55, 0x28, 0x86, 0xc8, 0x8d, 0x48, 0x3d, 0xb7, 0x9a, 0xbf, 0x56, 0xdd, - 0x98, 0x49, 0xb4, 0x7b, 0xb4, 0x87, 0xdc, 0xc8, 0x12, 0xd8, 0xc4, 0x08, 0xf2, 0xa7, 0x1b, 0x81, - 0xf9, 0xef, 0x45, 0x98, 0xd9, 0x8b, 0xf0, 0x71, 0xe4, 0x52, 0x3c, 0x8e, 0x3e, 0xae, 0x43, 0xa5, - 0xdb, 0xa3, 0x88, 0xba, 0x81, 0xaf, 0x78, 0x4a, 0x06, 0xbb, 0x2f, 0x31, 0x56, 0x42, 0x63, 0x5c, - 0x81, 0xa9, 0x30, 0x72, 0xbb, 0x28, 0xea, 0xdb, 0x6c, 0xb1, 0x49, 0xe3, 0xab, 0x4a, 0xd8, 0x4e, - 0xe0, 0x1c, 0x1a, 0x2f, 0xc2, 0xb4, 0xd0, 0x71, 0x56, 0x6d, 0x53, 0x1c, 0xf8, 0x30, 0xd1, 0x1d, - 0x6b, 0x6f, 0x53, 0xea, 0x71, 0xdd, 0x15, 0xac, 0x12, 0xfb, 0x6e, 0x52, 0xcf, 0xd8, 0x80, 0x05, - 0x72, 0xe8, 0x86, 0xb6, 0x13, 0xf8, 0x84, 0x46, 0xc8, 0xf5, 0xa9, 0xed, 0x74, 0xb0, 0x73, 0x28, - 0x35, 0x39, 0xc7, 0x90, 0x9b, 0x31, 0x6e, 0x93, 0xa1, 0x8c, 0xff, 0x03, 0x73, 0x21, 0x26, 0xc4, - 0xed, 0xba, 0x84, 0xba, 0x8e, 0x8d, 0x1c, 0x31, 0xa3, 0xd2, 0x6a, 0xfe, 0x5a, 0x6d, 0x63, 0x2d, - 0x9e, 0xd1, 0x80, 0xa8, 0xd6, 0xf7, 0x92, 0x36, 0x37, 0x78, 0x13, 0xcb, 0x08, 0x07, 0x41, 0x84, - 0xf1, 0x4a, 0x4f, 0x7c, 0x9b, 0xb8, 0x5f, 0xc5, 0xdc, 0x2c, 0x0a, 0x56, 0x89, 0x9e, 0xf8, 0x0d, - 0xf7, 0xab, 0xd8, 0x30, 0x61, 0xfa, 0x20, 0x88, 0xec, 0x5e, 0xd8, 0x42, 0x14, 0xdb, 0x94, 0xd4, - 0x2b, 0x1c, 0x5f, 0x3d, 0x08, 0xa2, 0x77, 0x39, 0xac, 0x49, 0x18, 0x4d, 0xd7, 0xf5, 0x6d, 0x27, - 0xe8, 0x76, 0x5d, 0xca, 0x68, 0x40, 0xd0, 0x74, 0x5d, 0x7f, 0x93, 0xc3, 0x9a, 0xc4, 0xb8, 0x06, - 0x7a, 0x8f, 0x60, 0x1b, 0x91, 0xbe, 0xef, 0x48, 0xca, 0x7a, 0x95, 0x4f, 0xb7, 0xd6, 0x23, 0xf8, - 0x06, 0x03, 0x0b, 0x5a, 0x63, 0x15, 0xaa, 0x04, 0x3b, 0x81, 0xdf, 0x42, 0x91, 0x8b, 0x49, 0x7d, - 0x6a, 0x35, 0xcf, 0xe4, 0x9f, 0x02, 0x19, 0x17, 0x01, 0x68, 0xc4, 0x96, 0x05, 0xb6, 0x43, 0xa7, - 0x3e, 0x2d, 0x7c, 0x00, 0x8d, 0xfa, 0xbb, 0x3e, 0xde, 0x73, 0x38, 0x37, 0xe8, 0x24, 0xc5, 0x4d, - 0x4d, 0x72, 0x83, 0x4e, 0x62, 0x6e, 0xde, 0x86, 0x19, 0x44, 0x08, 0x8e, 0xd8, 0xf4, 0x6d, 0x0f, - 0x1f, 0x61, 0xaf, 0x3e, 0xb3, 0xaa, 0x5d, 0xab, 0x6d, 0x2c, 0xc5, 0x92, 0xbc, 0xa1, 0xf0, 0x3b, - 0x0c, 0x6d, 0xd5, 0x50, 0xe6, 0xdb, 0xdc, 0x87, 0xd9, 0x21, 0xd9, 0x1a, 0x2b, 0xb0, 0xd8, 0xb8, - 0xb7, 0xbd, 0x67, 0xef, 0xdd, 0x6a, 0x34, 0xb6, 0xef, 0x6f, 0x37, 0x9a, 0xdb, 0x9b, 0xf6, 0xe6, - 0xdd, 0x5b, 0x9b, 0xf7, 0xf4, 0x09, 0xa3, 0x0e, 0xf3, 0x5b, 0xbb, 0x23, 0x30, 0x9a, 0xb1, 0x04, - 0x73, 0x5b, 0xbb, 0xf6, 0xe6, 0xee, 0x83, 0x46, 0xd3, 0xba, 0xb1, 0xfd, 0xa0, 0x29, 0x11, 0x39, - 0xf3, 0x3f, 0x34, 0xd0, 0x13, 0x85, 0x8e, 0xbf, 0x26, 0x3f, 0x0e, 0x93, 0x1c, 0x3b, 0xbc, 0x00, - 0xe2, 0xd5, 0x26, 0x09, 0x86, 0x55, 0x99, 0x1f, 0x56, 0xe5, 0xcb, 0xa0, 0x0b, 0xd1, 0xa7, 0xc8, - 0xc4, 0x0a, 0x98, 0x0e, 0x98, 0x06, 0x62, 0xc2, 0x11, 0xde, 0xb8, 0xf8, 0x04, 0xde, 0xd8, 0xfc, - 0x7e, 0x01, 0x16, 0x53, 0x42, 0x66, 0x6b, 0xef, 0x7f, 0x8a, 0x0b, 0x18, 0x5a, 0x56, 0x93, 0x23, - 0x97, 0x95, 0x4b, 0xec, 0x03, 0x37, 0x22, 0x54, 0xf0, 0x51, 0xe2, 0x96, 0x5e, 0x75, 0xc9, 0x6d, - 0x06, 0xe3, 0x7c, 0x5c, 0x81, 0xa9, 0x63, 0xc4, 0x54, 0xe0, 0x76, 0x71, 0xd0, 0xa3, 0x7c, 0xf5, - 0xe6, 0xad, 0x2a, 0x83, 0x35, 0x05, 0xc8, 0xa8, 0x43, 0xf1, 0x20, 0x88, 0x1c, 0xcc, 0x57, 0x6e, - 0xf9, 0x66, 0xae, 0xae, 0x59, 0x02, 0xc0, 0x26, 0x11, 0x61, 0xda, 0x8b, 0x7c, 0x9b, 0x6f, 0xad, - 0x62, 0xdd, 0x96, 0xad, 0x29, 0x01, 0x7c, 0xc8, 0x61, 0xc3, 0x16, 0x51, 0x1d, 0x65, 0x11, 0x33, - 0xdc, 0x81, 0xd9, 0xf8, 0xc4, 0x25, 0x14, 0xfb, 0x0e, 0xae, 0x4f, 0x89, 0xb5, 0xcd, 0xc1, 0xb7, - 0x14, 0xd4, 0x78, 0x05, 0xe6, 0xb8, 0x44, 0xd8, 0x8e, 0x66, 0xbb, 0x07, 0x82, 0x9e, 0xc8, 0x25, - 0xac, 0x33, 0x14, 0xdb, 0xdc, 0xb6, 0x0f, 0x78, 0x0b, 0x62, 0x6c, 0xb1, 0xd9, 0x1d, 0x62, 0xbb, - 0x17, 0xda, 0xdd, 0xa0, 0x85, 0xf9, 0x4a, 0xae, 0x6d, 0x98, 0x89, 0xb7, 0xcb, 0x1a, 0xc7, 0x7b, - 0xe8, 0x10, 0xbf, 0x1b, 0xde, 0x0f, 0x5a, 0xd8, 0x82, 0xe3, 0xf8, 0xb7, 0xf9, 0xcf, 0x1a, 0xd4, - 0x07, 0x28, 0xef, 0xe1, 0xbe, 0x85, 0x49, 0xcf, 0xa3, 0xc6, 0x67, 0xa1, 0x40, 0xfb, 0x21, 0xe6, - 0x56, 0x54, 0xdb, 0xb8, 0xfa, 0xa8, 0xae, 0xe3, 0x06, 0xcd, 0x7e, 0x88, 0x2d, 0xde, 0x24, 0x89, - 0x4f, 0x72, 0xe9, 0xf8, 0xe4, 0x22, 0x54, 0x12, 0x29, 0xe4, 0xf9, 0xc4, 0x12, 0x80, 0xf1, 0x06, - 0x2c, 0xb1, 0x59, 0xe2, 0x96, 0x7d, 0xec, 0xd2, 0x0e, 0xdb, 0x01, 0x0e, 0x3c, 0xd7, 0x49, 0x2d, - 0xa1, 0x79, 0x81, 0x7e, 0xcf, 0xa5, 0x9d, 0x4d, 0x89, 0x6c, 0x12, 0x63, 0x1d, 0xf8, 0xa6, 0x60, - 0x47, 0x98, 0x04, 0xde, 0x91, 0xeb, 0xb7, 0x85, 0x41, 0x08, 0x07, 0x3a, 0xcb, 0x50, 0x96, 0xc2, - 0x30, 0x6e, 0xcd, 0x7f, 0xca, 0xc1, 0xd2, 0xd0, 0xca, 0x79, 0x2e, 0x0e, 0xe4, 0x32, 0x54, 0x06, - 0x9c, 0x07, 0xb7, 0xb8, 0xb2, 0xa3, 0x6c, 0xa5, 0xae, 0xa4, 0xc6, 0xe6, 0x3b, 0x25, 0xcc, 0x51, - 0x48, 0x6e, 0x11, 0x26, 0xa5, 0x1d, 0x16, 0xb9, 0xcf, 0x97, 0x5f, 0xc6, 0x25, 0x80, 0x38, 0xe2, - 0x63, 0x0b, 0x25, 0xcf, 0x44, 0xaa, 0x42, 0xbe, 0x91, 0x5e, 0xa6, 0xf4, 0x04, 0x5e, 0xc6, 0xf8, - 0x3c, 0x8b, 0xa4, 0x98, 0x6a, 0x49, 0xbd, 0xcc, 0x67, 0x77, 0xe5, 0xb1, 0x46, 0x60, 0xa9, 0x16, - 0xe6, 0x77, 0x35, 0x58, 0x49, 0x51, 0x59, 0x81, 0xe7, 0xed, 0xa3, 0xf1, 0xdc, 0xd4, 0x90, 0x4b, - 0xc9, 0x8d, 0x70, 0x29, 0x43, 0x7e, 0x23, 0x3f, 0xec, 0x37, 0x0c, 0x28, 0x1c, 0xe2, 0x3e, 0x33, - 0x28, 0x26, 0x45, 0xfe, 0xdb, 0xfc, 0x53, 0x0d, 0x2e, 0x8c, 0xe4, 0xf3, 0xb9, 0x18, 0xc5, 0x08, - 0x15, 0xe5, 0x9f, 0x64, 0x23, 0xf8, 0x03, 0x0d, 0xe6, 0x9a, 0x27, 0xfe, 0x5d, 0x8c, 0x22, 0x7a, - 0x13, 0xa3, 0xb1, 0x4e, 0x39, 0x83, 0x4e, 0x3d, 0x77, 0x06, 0xa7, 0x9e, 0x1f, 0xa1, 0x81, 0x97, - 0x60, 0x06, 0xb5, 0x8e, 0x5c, 0x82, 0xed, 0xd8, 0xb7, 0xcb, 0xcd, 0x4f, 0x80, 0x77, 0x84, 0x87, - 0x37, 0x7f, 0xa8, 0xc1, 0x7c, 0x96, 0xe7, 0xe7, 0x70, 0x64, 0x4a, 0xef, 0x38, 0xf9, 0xec, 0x8e, - 0x33, 0x42, 0x07, 0x85, 0x27, 0xd1, 0xc1, 0x3f, 0xe4, 0x60, 0x81, 0x87, 0xa2, 0xcd, 0x13, 0xbf, - 0x41, 0x11, 0xed, 0x91, 0x71, 0xb4, 0x70, 0x19, 0x94, 0xc4, 0x53, 0x07, 0x24, 0x90, 0x20, 0x76, - 0x48, 0x59, 0x82, 0x92, 0x98, 0x81, 0x32, 0xed, 0x49, 0x3e, 0x01, 0xc2, 0xe4, 0xee, 0x20, 0xcf, - 0xc3, 0x91, 0x2d, 0x74, 0x94, 0x04, 0x1d, 0x02, 0xdc, 0x60, 0xd0, 0x26, 0xf7, 0x16, 0x4e, 0x2f, - 0x8a, 0xb0, 0xcf, 0x49, 0xc4, 0xb6, 0x5b, 0x91, 0x90, 0x26, 0x31, 0x5e, 0x85, 0x85, 0x48, 0x1a, - 0x3f, 0xdb, 0x80, 0x98, 0x63, 0xe1, 0xde, 0x59, 0xc6, 0xde, 0x86, 0x42, 0x6e, 0x1f, 0x3c, 0x08, - 0x28, 0xdf, 0x86, 0x8c, 0x35, 0x98, 0xe5, 0xfb, 0xa5, 0x9d, 0x8e, 0x5d, 0xc5, 0x5e, 0x3c, 0xc3, - 0x11, 0x8d, 0x24, 0x78, 0xfd, 0x02, 0xac, 0x24, 0x3e, 0x3a, 0x1d, 0xb0, 0x73, 0x9b, 0x2b, 0xf3, - 0x46, 0xf5, 0x98, 0x62, 0xc0, 0xbf, 0x98, 0x3f, 0xca, 0xc1, 0xe2, 0xa0, 0x8c, 0x7f, 0xbe, 0x56, - 0x73, 0x15, 0x6a, 0xd2, 0x9d, 0x67, 0x03, 0x9d, 0x69, 0x01, 0x55, 0x8b, 0xe2, 0x65, 0x98, 0x14, - 0x27, 0x12, 0x2e, 0xf0, 0x5a, 0xea, 0xd8, 0x27, 0x4f, 0x1d, 0x12, 0x6d, 0xac, 0x43, 0x85, 0x0f, - 0xe5, 0xfa, 0x07, 0x81, 0x3c, 0x9a, 0x27, 0x7c, 0x31, 0x19, 0x6c, 0xfb, 0x07, 0x81, 0xc5, 0xd9, - 0x61, 0xbf, 0x9e, 0xd6, 0xb9, 0x9b, 0x1f, 0x6a, 0xb0, 0xc2, 0x25, 0xda, 0x90, 0xe7, 0x07, 0xbe, - 0xd2, 0xc7, 0x32, 0x5d, 0xe5, 0x56, 0x73, 0x89, 0x5b, 0x3d, 0x93, 0xc7, 0x30, 0xff, 0x53, 0x83, - 0x0b, 0x23, 0x79, 0x78, 0x0e, 0xaa, 0x7d, 0x19, 0x8a, 0x4c, 0x96, 0x6c, 0x31, 0xe5, 0x47, 0xcb, - 0x5a, 0xe0, 0x8d, 0x0b, 0xe9, 0x7d, 0x5b, 0xe8, 0x38, 0xd9, 0xb3, 0x9f, 0x36, 0x90, 0xff, 0x9e, - 0x06, 0xd3, 0x62, 0x81, 0x3c, 0xb3, 0x8d, 0x51, 0x69, 0x27, 0x9f, 0xd2, 0xce, 0xd9, 0x8c, 0x57, - 0x24, 0x7d, 0xac, 0xc9, 0x7d, 0xd7, 0xf7, 0x82, 0xb6, 0xf9, 0xd7, 0x1a, 0xd4, 0x14, 0xaf, 0xcf, - 0x41, 0x41, 0xc3, 0x3c, 0xe6, 0x47, 0x2d, 0xb0, 0xa7, 0xf5, 0xde, 0x6d, 0x98, 0xde, 0xee, 0x86, - 0x41, 0x14, 0x2b, 0x20, 0x73, 0x28, 0xd2, 0xce, 0x70, 0x28, 0x1a, 0x66, 0x34, 0x37, 0x82, 0x51, - 0xf3, 0x7d, 0xa8, 0xa9, 0x81, 0xc6, 0x97, 0xde, 0x7c, 0x5a, 0x7a, 0x15, 0x95, 0x0a, 0xfa, 0x06, - 0xd3, 0x8c, 0x87, 0x91, 0xdf, 0x0b, 0xcf, 0x27, 0xcd, 0x79, 0xa6, 0xfd, 0x3e, 0xbb, 0x9f, 0x14, - 0x06, 0xf6, 0x13, 0xf3, 0x9b, 0x1a, 0xcc, 0xc4, 0x4c, 0xfd, 0xc2, 0xd8, 0x8b, 0x79, 0x08, 0x33, - 0x37, 0x11, 0x75, 0x3a, 0x63, 0xa6, 0x84, 0x47, 0xf9, 0xba, 0x47, 0x27, 0x85, 0xff, 0x4e, 0x03, - 0x3d, 0x19, 0xed, 0x99, 0xe7, 0x0e, 0x9f, 0x72, 0x2d, 0x24, 0xb2, 0x2e, 0x9e, 0x2e, 0xeb, 0x77, - 0x0a, 0xe5, 0xbc, 0x5e, 0x30, 0xff, 0x1f, 0xcc, 0xf3, 0xc9, 0x3d, 0xf3, 0xd8, 0x7e, 0x84, 0x0b, - 0x33, 0xff, 0x50, 0x83, 0x85, 0x81, 0xd1, 0x9f, 0x83, 0x91, 0x3d, 0x6d, 0xbc, 0xfe, 0xfb, 0x1a, - 0xcc, 0x34, 0x1c, 0xe4, 0x8f, 0x9b, 0xb1, 0xb9, 0x0c, 0xd5, 0x2e, 0x3a, 0x19, 0x10, 0x16, 0x74, - 0xd1, 0x89, 0x12, 0x55, 0x26, 0xcb, 0x9e, 0x7f, 0x54, 0x96, 0xbd, 0x90, 0xce, 0xb2, 0xa7, 0xd2, - 0xe2, 0xc5, 0x74, 0x5a, 0xdc, 0xfc, 0x89, 0x06, 0x7a, 0xc2, 0xec, 0x2f, 0xd2, 0x9e, 0xfc, 0xb4, - 0x4e, 0xff, 0x47, 0x1a, 0x18, 0x22, 0x2f, 0x80, 0xc7, 0xd5, 0xc4, 0x99, 0x0c, 0xf7, 0x8c, 0x7b, - 0xd8, 0x2b, 0x50, 0xa1, 0x27, 0x3e, 0x0f, 0xfd, 0xc4, 0xe1, 0x34, 0x3d, 0x72, 0xf3, 0xc4, 0x17, - 0xa1, 0x1f, 0x15, 0x3f, 0x92, 0x63, 0x6c, 0x31, 0xb5, 0x1c, 0xd8, 0x41, 0x30, 0x33, 0xa3, 0xff, - 0x06, 0x8b, 0xe1, 0x21, 0x54, 0xee, 0x6c, 0x8e, 0x23, 0xfb, 0x4b, 0x00, 0x04, 0x1d, 0x60, 0x3b, - 0x0c, 0x5c, 0x9f, 0x4a, 0xc1, 0x57, 0x18, 0x64, 0x8f, 0x01, 0xcc, 0x0e, 0x00, 0xeb, 0xf7, 0xd9, - 0x4b, 0xc0, 0xfc, 0x96, 0x06, 0xc6, 0x16, 0xf6, 0x30, 0xc5, 0x16, 0xf2, 0xdb, 0xf8, 0xdc, 0xaf, - 0xc5, 0x52, 0x4b, 0x33, 0x3f, 0x78, 0x63, 0xe5, 0x07, 0xd4, 0x3d, 0x90, 0x57, 0x60, 0xe2, 0xb6, - 0x0f, 0x04, 0x68, 0xd7, 0xf7, 0xfa, 0xe6, 0x97, 0x61, 0x2e, 0xc3, 0xd8, 0x79, 0x87, 0x1c, 0x7f, - 0xac, 0xc1, 0xea, 0x5e, 0x84, 0x43, 0x14, 0xe1, 0xdb, 0x1e, 0x22, 0x1d, 0xe6, 0x81, 0x9b, 0x81, - 0x34, 0xe8, 0xe7, 0x27, 0x87, 0x65, 0x28, 0x0f, 0x1c, 0x7a, 0x4b, 0x44, 0x1e, 0x77, 0x53, 0xbb, - 0x72, 0x31, 0xbb, 0x2b, 0x7b, 0x70, 0xe5, 0x14, 0xd6, 0xcf, 0x5b, 0x52, 0x3f, 0xd2, 0x60, 0xf9, - 0x7c, 0x44, 0x94, 0x9a, 0x51, 0x2e, 0x7b, 0x1d, 0x7a, 0xaa, 0xd7, 0x4f, 0x09, 0xaf, 0xf0, 0x48, - 0xe1, 0x15, 0xb3, 0xc2, 0xcb, 0x1c, 0x7a, 0x26, 0xb3, 0x87, 0x1e, 0x13, 0xc3, 0xca, 0xf3, 0x10, - 0xdc, 0x97, 0x60, 0xda, 0x42, 0xc7, 0xe7, 0x76, 0x75, 0x5f, 0x83, 0x9c, 0x73, 0xc0, 0x85, 0x53, - 0xb1, 0x72, 0xce, 0x81, 0xf9, 0xeb, 0x1a, 0xd4, 0x54, 0xff, 0xe7, 0xcc, 0xfa, 0x18, 0x17, 0xf4, - 0x66, 0x0b, 0x0c, 0x0b, 0x1d, 0x9f, 0x77, 0x68, 0x3a, 0x38, 0xe9, 0x00, 0xe6, 0x32, 0xa3, 0x3c, - 0xeb, 0x90, 0xd4, 0xfc, 0x1d, 0x8d, 0x6b, 0x71, 0xaf, 0x77, 0x4e, 0x5a, 0x1c, 0x2d, 0x59, 0x31, - 0xcd, 0x82, 0x9a, 0x26, 0x6b, 0x97, 0x5c, 0x2d, 0xb1, 0x9f, 0x6c, 0x11, 0x1c, 0x04, 0x91, 0xed, - 0x20, 0x22, 0xf3, 0x59, 0x93, 0x07, 0x41, 0xb4, 0x89, 0x08, 0x3b, 0x96, 0x29, 0xfe, 0xce, 0xdb, - 0x80, 0xff, 0x44, 0x4b, 0x74, 0x3a, 0xa6, 0x00, 0xce, 0x18, 0xf8, 0x0f, 0xa8, 0xd9, 0x98, 0x17, - 0xf3, 0x2f, 0xc4, 0xb7, 0x0c, 0x83, 0x32, 0x28, 0xa6, 0x65, 0xc0, 0x2c, 0x87, 0x52, 0x4f, 0xdc, - 0x20, 0x14, 0x2c, 0xfe, 0x9b, 0x6d, 0x20, 0x19, 0xde, 0xcf, 0x5b, 0x38, 0x7d, 0xd0, 0x2d, 0x74, - 0x2c, 0xf7, 0xa8, 0x67, 0xb1, 0xc0, 0xd3, 0xd3, 0x2d, 0x64, 0x54, 0xfe, 0x7f, 0x61, 0x36, 0x35, - 0xf4, 0x79, 0x4f, 0xec, 0x97, 0x34, 0x58, 0x50, 0x92, 0x1b, 0x7f, 0x7a, 0x67, 0x58, 0xcc, 0x8f, - 0x9e, 0x20, 0x82, 0xc5, 0x41, 0x0e, 0xce, 0x7b, 0x96, 0x3f, 0x14, 0xde, 0xf3, 0x39, 0x16, 0x03, - 0xa5, 0x4b, 0x7e, 0x0a, 0xd9, 0x92, 0x1f, 0x21, 0x98, 0x62, 0x2c, 0x98, 0x27, 0x2f, 0x01, 0x32, - 0xdb, 0x30, 0x13, 0x4f, 0x67, 0x7c, 0x59, 0x5d, 0x81, 0xfc, 0xe1, 0xd1, 0x23, 0x17, 0x2b, 0xc3, - 0x99, 0x5f, 0x13, 0xe6, 0xf1, 0x73, 0x89, 0x1a, 0x07, 0xdc, 0xa4, 0xb4, 0x93, 0x67, 0x1a, 0x27, - 0xfe, 0x58, 0x4b, 0xfc, 0xc8, 0xb8, 0xc6, 0xf2, 0x71, 0x98, 0x8c, 0x18, 0x77, 0x23, 0xef, 0xd3, - 0x04, 0xdf, 0x92, 0x80, 0x9d, 0x0c, 0x30, 0x72, 0x3a, 0x76, 0xda, 0x7e, 0x2a, 0x0c, 0xb2, 0x73, - 0x6e, 0x36, 0x64, 0x7a, 0x30, 0x9f, 0x9d, 0xd1, 0x33, 0xb5, 0x97, 0xff, 0x0f, 0xcb, 0xef, 0xfa, - 0xec, 0x6c, 0xb3, 0x85, 0x09, 0x8d, 0x82, 0xfe, 0xf3, 0x35, 0x19, 0x16, 0xeb, 0x8d, 0x1a, 0xfe, - 0xbc, 0xcd, 0xe4, 0x2b, 0x70, 0xc1, 0xc2, 0x6d, 0x97, 0x50, 0x1c, 0xb1, 0xe3, 0xeb, 0xee, 0x3e, - 0xc1, 0xd1, 0x11, 0x8e, 0xc6, 0x99, 0xe7, 0x02, 0x4c, 0x76, 0xd1, 0x09, 0x8b, 0x5b, 0x45, 0x90, - 0x5c, 0xec, 0xa2, 0x93, 0x26, 0x31, 0x5f, 0x87, 0x8b, 0xa3, 0x47, 0x90, 0x53, 0x89, 0xf9, 0xd2, - 0xb2, 0x31, 0x68, 0x9d, 0x5f, 0x50, 0x3c, 0x23, 0xa6, 0x7a, 0xb0, 0x3c, 0xa2, 0xfb, 0xd3, 0x38, - 0x62, 0x26, 0xec, 0x12, 0xdb, 0xf1, 0x30, 0x12, 0xa7, 0x80, 0xb2, 0x55, 0x72, 0x09, 0xcf, 0xb3, - 0x9e, 0x39, 0x7d, 0x62, 0x7e, 0x19, 0x96, 0x2d, 0xdc, 0x0d, 0x44, 0xaa, 0xe0, 0x19, 0x4c, 0x6b, - 0x03, 0x56, 0x46, 0xf5, 0x7f, 0xaa, 0xa4, 0x7f, 0x43, 0x83, 0xa5, 0xbd, 0x4e, 0x9f, 0xb8, 0x0e, - 0xf2, 0x9e, 0x26, 0x43, 0x36, 0x9a, 0xa5, 0x31, 0xf2, 0x62, 0xe6, 0xfb, 0x50, 0x1f, 0x66, 0xe8, - 0x54, 0xdd, 0xc4, 0x0a, 0xc8, 0x3d, 0x46, 0x01, 0xdf, 0xd1, 0xc0, 0x68, 0x84, 0x9e, 0x4b, 0x2d, - 0xbe, 0x32, 0xc6, 0xcb, 0x04, 0x56, 0x08, 0xeb, 0x21, 0x59, 0xce, 0xa2, 0x9c, 0x84, 0x03, 0xd9, - 0xa4, 0x2e, 0x01, 0xc4, 0x04, 0x2a, 0x75, 0x5a, 0x51, 0x58, 0x62, 0xac, 0x40, 0xc5, 0x25, 0x76, - 0x84, 0x8e, 0xed, 0xc3, 0x23, 0xe5, 0x0b, 0x5d, 0x62, 0xa1, 0xe3, 0x7b, 0x47, 0xe6, 0xf7, 0x35, - 0x98, 0xcb, 0xb0, 0x37, 0xfe, 0x72, 0x7f, 0x09, 0x0a, 0x1e, 0x3e, 0xa0, 0x32, 0x93, 0x52, 0x5b, - 0x97, 0xe5, 0xde, 0xa2, 0x63, 0xce, 0x31, 0xc7, 0x1b, 0xd7, 0xa0, 0x18, 0xb9, 0xed, 0x0e, 0x95, - 0x19, 0xa4, 0x51, 0x84, 0x82, 0xc0, 0xb8, 0xc6, 0x1c, 0x73, 0x9b, 0xdf, 0xce, 0x88, 0x54, 0xd9, - 0x00, 0xad, 0xa5, 0xd0, 0xe6, 0xaf, 0x68, 0xa0, 0x5b, 0x18, 0xb5, 0xb6, 0xfd, 0x16, 0x3e, 0x19, - 0x47, 0xc6, 0xe9, 0x03, 0x72, 0x2e, 0x7b, 0x40, 0x4e, 0xf6, 0xa4, 0xfc, 0x63, 0xf6, 0x24, 0xf3, - 0x37, 0x35, 0x98, 0x4d, 0xb1, 0x31, 0xbe, 0x2c, 0x2f, 0x01, 0x44, 0x18, 0xb5, 0x6c, 0x97, 0x75, - 0xa4, 0xd2, 0x5e, 0x91, 0xea, 0x99, 0xb1, 0x24, 0x4a, 0xa4, 0x86, 0x4a, 0x87, 0x63, 0xf3, 0x93, - 0x04, 0x66, 0x03, 0xe6, 0xee, 0x1f, 0x39, 0xce, 0x1d, 0x4c, 0x6f, 0xf6, 0x79, 0xed, 0xce, 0x39, - 0xc4, 0xdf, 0xe6, 0xaf, 0x69, 0x30, 0x9f, 0xed, 0xf5, 0xbc, 0x8f, 0xd5, 0x57, 0xa1, 0xc0, 0xaf, - 0xc7, 0x07, 0xe7, 0xc7, 0x46, 0xe5, 0xf3, 0xe3, 0x68, 0xf3, 0x2b, 0xb0, 0x14, 0xf3, 0x21, 0x8b, - 0x1f, 0xce, 0x57, 0xfb, 0x6c, 0xfd, 0xd6, 0x87, 0x87, 0x38, 0xef, 0xe9, 0x4a, 0x11, 0xe7, 0x93, - 0x23, 0x8e, 0x12, 0x40, 0xe1, 0x74, 0x01, 0x7c, 0x58, 0x81, 0xd2, 0x66, 0xb2, 0xed, 0x4b, 0x6e, - 0xdc, 0x16, 0x67, 0xa5, 0x60, 0x95, 0x05, 0x60, 0xbb, 0x65, 0xbc, 0x99, 0xb0, 0x1a, 0x06, 0x4e, - 0x47, 0xae, 0xd2, 0xb9, 0xec, 0x82, 0xba, 0xc5, 0x50, 0x31, 0xbf, 0xec, 0xc3, 0x58, 0x85, 0x42, - 0x88, 0xb1, 0xaa, 0x51, 0x9f, 0x52, 0xf4, 0x7b, 0x18, 0x47, 0x16, 0xc7, 0xf0, 0x23, 0x25, 0x8e, - 0xba, 0xf2, 0x08, 0xce, 0x7f, 0x1b, 0xd7, 0xa1, 0x1c, 0x46, 0x6e, 0x10, 0xb9, 0xb4, 0xcf, 0x63, - 0xaa, 0xda, 0xc6, 0x5c, 0x4a, 0xfa, 0xdd, 0x2e, 0xf2, 0x5b, 0x7b, 0x91, 0x6b, 0xc5, 0x44, 0xc6, - 0xdb, 0x30, 0xe3, 0x92, 0xc0, 0x43, 0xa9, 0x62, 0xe4, 0xd2, 0x40, 0x31, 0xf2, 0xb6, 0xc2, 0xcb, - 0x62, 0x64, 0x37, 0xf3, 0x6d, 0x7c, 0x0c, 0x6a, 0x3c, 0xe5, 0xe2, 0x7a, 0x9e, 0xed, 0x20, 0xa7, - 0x83, 0x65, 0xa5, 0xc9, 0x94, 0x1f, 0xd0, 0xdb, 0xae, 0xe7, 0x6d, 0x32, 0x18, 0xd7, 0x74, 0xdf, - 0x77, 0x6c, 0x2f, 0x68, 0x8b, 0x5a, 0x50, 0xab, 0xc4, 0xbe, 0x77, 0x82, 0xb6, 0x71, 0x0d, 0xf4, - 0x08, 0x3b, 0x41, 0xd4, 0xe2, 0x85, 0xa4, 0x36, 0xa1, 0x88, 0xca, 0x62, 0xd0, 0x9a, 0x80, 0x37, - 0xdd, 0x2e, 0x6e, 0x50, 0x44, 0x53, 0x94, 0xc4, 0x41, 0xbe, 0xa0, 0xac, 0xa6, 0x29, 0xd9, 0x26, - 0xc2, 0x29, 0xaf, 0x30, 0xa9, 0x87, 0x9e, 0xeb, 0x20, 0x9b, 0xad, 0x5e, 0x59, 0x11, 0x5a, 0x95, - 0x30, 0xe6, 0x2a, 0x8c, 0xab, 0x50, 0x13, 0xb5, 0x30, 0xb8, 0x65, 0x8b, 0x2d, 0x65, 0x9a, 0x9f, - 0xcd, 0xa7, 0x15, 0x94, 0x17, 0x4a, 0x18, 0x9f, 0x85, 0x65, 0xb6, 0xd9, 0xe1, 0x13, 0xec, 0xf4, - 0xb8, 0x90, 0x5a, 0xbd, 0x48, 0x48, 0xab, 0xab, 0xaa, 0xbb, 0x17, 0xbb, 0xe8, 0xe4, 0x96, 0xc2, - 0x6f, 0x49, 0xf4, 0x7d, 0x5e, 0xa0, 0x81, 0xc2, 0xd0, 0x73, 0xb1, 0xf2, 0x27, 0x33, 0xe2, 0xfe, - 0x42, 0x02, 0x85, 0x4b, 0x59, 0x82, 0x12, 0x45, 0xe4, 0x90, 0x99, 0x8e, 0x2e, 0x6a, 0x8e, 0xd8, - 0xe7, 0x76, 0x8b, 0x6f, 0x2e, 0x14, 0x79, 0x58, 0x4c, 0x60, 0x56, 0x14, 0x73, 0x72, 0x08, 0x67, - 0xff, 0x93, 0x60, 0x30, 0x46, 0x7b, 0x91, 0x83, 0xed, 0x76, 0x14, 0xf4, 0x42, 0x9b, 0xa2, 0x76, - 0xdd, 0xe0, 0x86, 0xac, 0x2b, 0xcc, 0x1d, 0x86, 0x68, 0xa2, 0xb6, 0xf1, 0x19, 0x98, 0x6e, 0xb9, - 0xe4, 0xd0, 0x3e, 0xe8, 0x79, 0x9e, 0x1d, 0x84, 0xb4, 0x3e, 0xc7, 0x95, 0x3c, 0x1f, 0x2b, 0x79, - 0xcb, 0x25, 0x87, 0xb7, 0x7b, 0x9e, 0xb7, 0x1b, 0x52, 0xab, 0xda, 0x4a, 0x3e, 0x98, 0xcc, 0xd9, - 0x26, 0x86, 0x69, 0xd4, 0xb7, 0x23, 0xb1, 0xc4, 0xeb, 0xf3, 0x42, 0xe6, 0x2e, 0xb1, 0x18, 0x58, - 0x2d, 0xfc, 0xd7, 0xa1, 0x8a, 0x42, 0x37, 0xbe, 0x86, 0x59, 0x18, 0x30, 0xbf, 0x1b, 0x7b, 0xdb, - 0x2a, 0x8f, 0x09, 0x28, 0x74, 0x93, 0xea, 0x9d, 0x19, 0x91, 0xf5, 0xa4, 0xb1, 0x1e, 0x16, 0xb9, - 0x1e, 0x6a, 0x31, 0x58, 0x28, 0xe2, 0x73, 0x20, 0x1e, 0x1d, 0xd9, 0xca, 0xbb, 0x2c, 0xf1, 0x95, - 0xb1, 0xb0, 0xae, 0x9e, 0x22, 0x35, 0xd9, 0x5f, 0xe5, 0x62, 0xa6, 0x68, 0xea, 0x4b, 0xe8, 0x9a, - 0x73, 0x69, 0x0b, 0xc1, 0xd4, 0xeb, 0xdc, 0x0b, 0x4c, 0x4b, 0x68, 0x83, 0x03, 0x99, 0xc8, 0xf9, - 0x53, 0x04, 0x41, 0xb2, 0x2c, 0xbc, 0x3f, 0x3d, 0xf1, 0x25, 0x7a, 0x1d, 0xe6, 0x06, 0x44, 0xee, - 0xa3, 0x2e, 0xae, 0xaf, 0xf0, 0xae, 0x66, 0x33, 0x32, 0x7f, 0x80, 0xba, 0xd8, 0x58, 0x83, 0xd9, - 0xfd, 0x1e, 0xe9, 0xdb, 0xb4, 0x13, 0x61, 0xd2, 0x09, 0xbc, 0x16, 0x33, 0x99, 0x0b, 0x3c, 0xfe, - 0x99, 0x61, 0x88, 0xa6, 0x82, 0xdf, 0x27, 0xc6, 0x65, 0xa8, 0xb2, 0x20, 0x22, 0x64, 0x13, 0x74, - 0x5b, 0xf5, 0x55, 0xf1, 0x3e, 0x46, 0x81, 0xb6, 0x5b, 0xef, 0x14, 0xca, 0x05, 0xbd, 0xc8, 0x2c, - 0x18, 0xb5, 0xec, 0x0f, 0x7a, 0x41, 0xd4, 0xeb, 0x9a, 0xdf, 0xce, 0x43, 0x59, 0xed, 0x3b, 0x43, - 0x25, 0x86, 0xda, 0x70, 0x89, 0xe1, 0x15, 0x98, 0xe2, 0xf5, 0x4f, 0xd9, 0x0c, 0x77, 0x95, 0xc1, - 0x94, 0x36, 0x86, 0xfd, 0x61, 0xba, 0x3e, 0xab, 0x90, 0xad, 0xcf, 0x4a, 0xbf, 0xdc, 0x28, 0x66, - 0x5f, 0x6e, 0x5c, 0x93, 0xa5, 0x56, 0xbc, 0xbc, 0x59, 0x38, 0xa2, 0x6a, 0x6c, 0x09, 0xbb, 0xa1, - 0x28, 0xb2, 0x6a, 0xf6, 0x43, 0x6c, 0x7c, 0x02, 0x0c, 0x4e, 0x99, 0xad, 0x2c, 0x2d, 0xf1, 0xee, - 0x66, 0x18, 0xe6, 0x76, 0xaa, 0xba, 0x74, 0xd4, 0x43, 0x8e, 0xf2, 0xc8, 0x87, 0x1c, 0x43, 0x95, - 0xe3, 0x95, 0xe1, 0xca, 0xf1, 0x81, 0xc7, 0x1e, 0x30, 0xfc, 0xd8, 0xe3, 0x73, 0xb0, 0x12, 0x2f, - 0x77, 0x1a, 0xd8, 0x1e, 0x22, 0x54, 0x31, 0xd9, 0x55, 0xc5, 0xe8, 0x8b, 0x8a, 0xa2, 0x19, 0xec, - 0x20, 0x42, 0x05, 0xaf, 0xf7, 0x89, 0xf9, 0xad, 0x02, 0x94, 0xd5, 0x65, 0x56, 0x2a, 0x70, 0xd0, - 0x1e, 0x13, 0x38, 0x18, 0x17, 0xd9, 0x6e, 0x42, 0xa3, 0x3e, 0xda, 0xf7, 0xb0, 0xdc, 0xac, 0x12, - 0x00, 0xdb, 0xc6, 0xd0, 0x7e, 0x10, 0x51, 0x99, 0xa3, 0x12, 0x1f, 0xc6, 0x06, 0x94, 0x55, 0x35, - 0xf7, 0xd0, 0x2d, 0xed, 0x7b, 0x91, 0x4b, 0xb1, 0x2a, 0xe7, 0xb6, 0x62, 0x3a, 0xb6, 0x9e, 0x90, - 0xc7, 0xcc, 0xa9, 0x2f, 0x8b, 0x10, 0x8b, 0x72, 0x3d, 0xc5, 0x0b, 0x56, 0x60, 0x79, 0x1d, 0xa2, - 0x35, 0x85, 0x52, 0x5f, 0xc6, 0x2b, 0x50, 0x56, 0x0f, 0x02, 0x87, 0x0a, 0xe9, 0xb6, 0x24, 0xc2, - 0x8a, 0x49, 0x8c, 0x2d, 0x98, 0x8d, 0x15, 0x61, 0xe3, 0x93, 0xd0, 0x8d, 0x70, 0x4b, 0x96, 0xd2, - 0xd5, 0x33, 0xdb, 0x13, 0x53, 0xcb, 0x2d, 0x81, 0xb7, 0x66, 0x9c, 0x2c, 0x80, 0xf9, 0x30, 0x66, - 0x6e, 0x49, 0x7e, 0xbf, 0xcc, 0x7b, 0x98, 0x4f, 0x5f, 0xe3, 0x3e, 0x90, 0xb9, 0x7e, 0xab, 0x4a, - 0x93, 0x0f, 0xe3, 0x2e, 0xcc, 0x25, 0xe3, 0xd3, 0x80, 0x29, 0x32, 0x6a, 0x8b, 0x37, 0x09, 0xd5, - 0x8d, 0xe5, 0x21, 0x0e, 0x9a, 0x41, 0xb0, 0xc3, 0x08, 0x2c, 0xdd, 0x19, 0x80, 0x18, 0x9b, 0xa0, - 0x27, 0x6f, 0x77, 0x0e, 0x90, 0xeb, 0xe1, 0x16, 0xdf, 0xab, 0xd2, 0x13, 0x89, 0x1f, 0xef, 0xdc, - 0xe6, 0x78, 0x2b, 0x79, 0xed, 0x23, 0x00, 0xe6, 0xdf, 0xe4, 0x60, 0x3a, 0xa3, 0x95, 0x4c, 0x1c, - 0xa4, 0x65, 0xa3, 0xe0, 0xcb, 0x50, 0x4d, 0x17, 0xea, 0xcb, 0x72, 0x04, 0x27, 0x29, 0xcf, 0x1f, - 0x5e, 0xb2, 0x75, 0x28, 0xc9, 0x65, 0x2f, 0x6f, 0xa3, 0xd4, 0x27, 0xdb, 0x34, 0xe2, 0xce, 0x92, - 0xa5, 0x21, 0xd6, 0xae, 0xae, 0x30, 0xf1, 0xfa, 0x78, 0x03, 0x26, 0x23, 0x8c, 0x48, 0xe0, 0xcb, - 0x15, 0x7c, 0x69, 0xb4, 0x4d, 0xad, 0x5b, 0x9c, 0xc8, 0x92, 0xc4, 0xe6, 0x31, 0x4c, 0x0a, 0x88, - 0x51, 0x85, 0xd2, 0xbb, 0xfe, 0xa1, 0x1f, 0x1c, 0xfb, 0xfa, 0x84, 0x51, 0x03, 0xd8, 0x0d, 0xa9, - 0xac, 0x38, 0xd5, 0x35, 0x63, 0x1e, 0xf4, 0x74, 0x51, 0x38, 0xb3, 0x70, 0x3d, 0x67, 0x18, 0x50, - 0x6b, 0x60, 0xef, 0xc0, 0x0a, 0x3c, 0x0f, 0xb7, 0x6e, 0x22, 0xe7, 0x50, 0xcf, 0x1b, 0xd3, 0x50, - 0xb1, 0x1c, 0x51, 0x9a, 0x4a, 0xf4, 0x82, 0xb1, 0x04, 0x73, 0x3b, 0xe8, 0xab, 0xfd, 0x77, 0x7d, - 0xf7, 0x83, 0x1e, 0xf6, 0x31, 0x21, 0x1c, 0xa5, 0x17, 0xcd, 0x55, 0x98, 0x4a, 0xdb, 0xac, 0x92, - 0x8c, 0x96, 0xc4, 0xcf, 0xbf, 0xab, 0x41, 0x59, 0xd9, 0x67, 0xba, 0xda, 0x57, 0xcb, 0x54, 0xfb, - 0x2a, 0x97, 0x97, 0x04, 0xdf, 0x9c, 0x90, 0x9d, 0xf8, 0xd6, 0x60, 0x56, 0x59, 0x35, 0x43, 0xdb, - 0x1d, 0x44, 0x3a, 0xb2, 0xe0, 0x60, 0x46, 0x21, 0xee, 0xe1, 0xfe, 0x5d, 0x44, 0x3a, 0xc6, 0x1b, - 0x00, 0xfc, 0x79, 0x8c, 0xd3, 0x41, 0xae, 0x2f, 0x0f, 0x52, 0x8b, 0xeb, 0xf1, 0x43, 0xda, 0xf7, - 0x90, 0x4b, 0x6f, 0x07, 0xd1, 0x2d, 0x9f, 0x6d, 0xa1, 0x15, 0x46, 0xb9, 0xc9, 0x08, 0xcd, 0x6f, - 0x68, 0x30, 0x33, 0xb0, 0x16, 0x4e, 0xb3, 0x8f, 0x75, 0x98, 0x43, 0x94, 0xe2, 0x6e, 0xc8, 0xf6, - 0xcf, 0x44, 0xa7, 0xc2, 0x4e, 0x66, 0x63, 0x54, 0xac, 0xd4, 0x61, 0x73, 0x19, 0x72, 0x95, 0x85, - 0x21, 0x57, 0x69, 0x6e, 0x43, 0x35, 0xb5, 0xba, 0x1e, 0x63, 0xaf, 0xa7, 0x16, 0x59, 0x9b, 0xd7, - 0x41, 0x1f, 0x5c, 0x68, 0xd9, 0xbb, 0x50, 0x6d, 0xe0, 0x2e, 0xf4, 0x2f, 0x35, 0x98, 0x19, 0x58, - 0x53, 0xa7, 0x31, 0x30, 0x7c, 0x6b, 0xf1, 0x29, 0xa8, 0xc4, 0x4b, 0x90, 0x4f, 0xbc, 0xb6, 0x61, - 0x0c, 0xaf, 0x56, 0x2b, 0x21, 0x62, 0x6a, 0xe6, 0x3e, 0xd1, 0xf5, 0xdb, 0x83, 0x15, 0xdf, 0x33, - 0x0a, 0xa1, 0x6a, 0xbe, 0x3f, 0x09, 0x46, 0x4c, 0x3b, 0xb4, 0xa6, 0x14, 0x26, 0x16, 0xe4, 0x5f, - 0x69, 0x00, 0x2c, 0x9e, 0x15, 0x25, 0x1a, 0xc6, 0xc7, 0x61, 0x96, 0xdb, 0xc8, 0x31, 0xf2, 0x3c, - 0x11, 0xfe, 0x76, 0xd5, 0x84, 0x6a, 0x0c, 0xf1, 0x1e, 0xf2, 0x3c, 0x46, 0x7e, 0x9f, 0x18, 0xd7, - 0x61, 0x3e, 0x8c, 0x02, 0x07, 0x13, 0x92, 0xa5, 0x96, 0x9a, 0x96, 0xb8, 0x54, 0x83, 0x75, 0x98, - 0x3f, 0x3c, 0xe2, 0xd1, 0x63, 0xb6, 0x81, 0x30, 0x57, 0xfd, 0xf0, 0x88, 0xc5, 0x91, 0x29, 0xfa, - 0x0d, 0x58, 0xa4, 0x01, 0x45, 0x9e, 0x1d, 0x85, 0x4e, 0xaa, 0x85, 0xaf, 0x66, 0x6e, 0x70, 0xac, - 0x15, 0x3a, 0xaa, 0xcd, 0x03, 0x62, 0x7e, 0x3d, 0x07, 0x53, 0xc9, 0x74, 0x1e, 0x6e, 0x8c, 0x98, - 0x90, 0x3f, 0x72, 0x42, 0x0f, 0x1e, 0x31, 0x21, 0xff, 0x51, 0x13, 0x7a, 0x40, 0x8c, 0xb7, 0xe0, - 0xa2, 0x6a, 0x40, 0x7a, 0x24, 0xc4, 0x7e, 0x2b, 0xdb, 0x50, 0x4c, 0xac, 0x2e, 0x69, 0x1a, 0x82, - 0x24, 0xd5, 0x7e, 0xa4, 0x40, 0xe2, 0xe9, 0x0d, 0x08, 0xe4, 0xc1, 0x69, 0x02, 0x29, 0x3e, 0x52, - 0x20, 0x5f, 0x82, 0x32, 0x3b, 0x84, 0xf0, 0x90, 0x6c, 0x1e, 0x8a, 0x9c, 0x82, 0xcf, 0x3f, 0x6f, - 0x89, 0x0f, 0xb6, 0xbf, 0x4b, 0x0e, 0x71, 0x8b, 0xcf, 0x35, 0x6f, 0x25, 0x80, 0x38, 0x01, 0xb1, - 0xdf, 0xa7, 0x58, 0xcc, 0x28, 0x2f, 0x12, 0x10, 0x37, 0x19, 0xc0, 0xfc, 0x65, 0x0d, 0x80, 0xf5, - 0x2f, 0xcd, 0xe7, 0x65, 0x28, 0xf2, 0x07, 0x9a, 0x43, 0x51, 0x85, 0xe2, 0xc1, 0x12, 0x78, 0x76, - 0xaa, 0x8d, 0x1f, 0x9e, 0x8c, 0xa4, 0xe3, 0x68, 0x46, 0xd6, 0x42, 0x14, 0x0d, 0x9d, 0xfe, 0x13, - 0x32, 0x86, 0x36, 0xff, 0xb5, 0x28, 0xde, 0x6a, 0xc7, 0x5a, 0x7f, 0x05, 0x8c, 0x78, 0x0a, 0x2a, - 0xbc, 0x54, 0x6a, 0x9f, 0x8d, 0x31, 0x32, 0xc8, 0x24, 0xc6, 0x9b, 0xb0, 0x34, 0x4c, 0x9e, 0x7e, - 0x01, 0xbc, 0x30, 0xd4, 0x86, 0x47, 0x95, 0x57, 0xa1, 0x26, 0x14, 0x12, 0x0f, 0x21, 0xcb, 0x80, - 0x39, 0x34, 0xee, 0xfe, 0x8b, 0x70, 0x31, 0x62, 0x47, 0x86, 0xd6, 0xbe, 0xdd, 0xe2, 0x17, 0x2f, - 0x36, 0x39, 0x74, 0xc3, 0x90, 0xfb, 0xc7, 0x9e, 0x4f, 0xa5, 0x9d, 0x2c, 0x4b, 0x1a, 0x71, 0x37, - 0xd3, 0x10, 0x14, 0x9b, 0x8c, 0x80, 0x9d, 0xf9, 0x54, 0x07, 0xcc, 0xc9, 0x67, 0x5b, 0x0b, 0x6b, - 0x59, 0x94, 0x04, 0xf7, 0x70, 0x3f, 0xd3, 0xf4, 0x6d, 0xb8, 0xa4, 0x9a, 0xee, 0xf3, 0x5d, 0x82, - 0x1f, 0x89, 0xed, 0x0e, 0xdb, 0x07, 0x78, 0xf3, 0x62, 0x66, 0xf0, 0x9b, 0x8c, 0x86, 0x9f, 0x90, - 0xef, 0xba, 0x54, 0xf4, 0xf0, 0x69, 0xa8, 0x67, 0x7b, 0xe0, 0xf6, 0x20, 0x1a, 0x8b, 0x32, 0x91, - 0x85, 0x74, 0x63, 0x66, 0xb3, 0xa2, 0xe1, 0x1b, 0xb0, 0x34, 0xa2, 0x21, 0x33, 0x24, 0x19, 0x4e, - 0xcf, 0x0f, 0xb6, 0x63, 0x36, 0xf5, 0x88, 0xf1, 0x7c, 0xe4, 0x07, 0x2a, 0x68, 0x1e, 0x1a, 0xef, - 0x01, 0x43, 0x32, 0xc7, 0xd7, 0xc6, 0xd4, 0x26, 0x3e, 0x0a, 0x49, 0x27, 0xa0, 0xb2, 0x89, 0x78, - 0x7e, 0xad, 0xb7, 0x31, 0x6d, 0x48, 0x84, 0xa0, 0x66, 0x82, 0x89, 0x33, 0x6b, 0x76, 0x18, 0x05, - 0x61, 0x40, 0xb0, 0xcd, 0x7d, 0x85, 0x68, 0x58, 0x95, 0x82, 0x51, 0xc9, 0xb6, 0x3d, 0x41, 0xc2, - 0xb6, 0xc9, 0x51, 0x3d, 0xb0, 0x68, 0xc5, 0x8d, 0xba, 0xe9, 0x1e, 0xa6, 0x06, 0x7a, 0xd8, 0x14, - 0x24, 0xc3, 0x3d, 0x84, 0x41, 0xe0, 0xd9, 0xc4, 0xe9, 0xe0, 0x56, 0xcf, 0xcb, 0xf0, 0x30, 0x9d, - 0xf4, 0xb0, 0x17, 0x04, 0x5e, 0x43, 0x92, 0xc4, 0x3d, 0x98, 0xbf, 0xaa, 0x41, 0x35, 0x55, 0x70, - 0xc7, 0xce, 0xbc, 0xdc, 0x27, 0x88, 0xfa, 0x3c, 0xb9, 0x0c, 0x93, 0x33, 0x6f, 0xe2, 0x1a, 0x2d, - 0xa0, 0x89, 0xd7, 0x7f, 0x1d, 0xaa, 0x3c, 0x81, 0x21, 0x5b, 0xe5, 0x06, 0x5a, 0x25, 0x4b, 0xcb, - 0x02, 0x12, 0xff, 0x16, 0x15, 0xc1, 0xe2, 0x1c, 0x68, 0xfe, 0x9b, 0x06, 0xd3, 0x99, 0xc2, 0xbf, - 0x31, 0x39, 0xf9, 0x3c, 0xd4, 0x52, 0x9c, 0xd8, 0x47, 0x1b, 0x92, 0x99, 0x85, 0x11, 0xcc, 0x3c, - 0xdc, 0xb0, 0xa6, 0x48, 0x7a, 0xd5, 0x7f, 0x1a, 0xa6, 0xb8, 0x77, 0x51, 0x63, 0xe6, 0x07, 0xe2, - 0x71, 0x1e, 0x25, 0xca, 0x41, 0xab, 0xc7, 0xc9, 0x07, 0x1b, 0x35, 0xc5, 0x6b, 0x52, 0x5a, 0xba, - 0x30, 0x82, 0x5d, 0x36, 0x2a, 0x4d, 0x7d, 0x99, 0x1f, 0x96, 0xa0, 0x9a, 0xea, 0xd9, 0x78, 0x0d, - 0x16, 0x09, 0x0d, 0x22, 0x6c, 0xef, 0x23, 0xea, 0x74, 0xd2, 0xda, 0x14, 0xfe, 0x67, 0x8e, 0x63, - 0xf9, 0x5d, 0x62, 0x62, 0x09, 0x6f, 0x70, 0x0f, 0xc4, 0x4d, 0x90, 0x88, 0x7d, 0x24, 0x6e, 0x25, - 0x5c, 0xca, 0xbc, 0x44, 0x37, 0xf8, 0x16, 0xa2, 0x9a, 0xad, 0xc1, 0x6c, 0xc8, 0xbc, 0x0c, 0x7f, - 0x14, 0xdd, 0x96, 0x0d, 0x64, 0xf8, 0x27, 0x11, 0x3b, 0x41, 0x5b, 0xd0, 0x6e, 0xc2, 0xe5, 0x08, - 0x1d, 0x50, 0xbb, 0xb5, 0x6f, 0x0b, 0x29, 0x79, 0x18, 0xb5, 0x70, 0x94, 0x1e, 0x4a, 0xb8, 0x92, - 0x15, 0x46, 0xb6, 0xb5, 0xcf, 0xe7, 0xb4, 0xc3, 0x69, 0x92, 0x01, 0x37, 0x60, 0x51, 0x75, 0xa2, - 0xd2, 0x67, 0xb2, 0xad, 0xdc, 0x82, 0x44, 0xdb, 0x86, 0x48, 0xa5, 0x89, 0x36, 0x6f, 0xc1, 0xc5, - 0xec, 0xc0, 0x5d, 0xdc, 0xa5, 0xec, 0xf0, 0x28, 0x5b, 0x0a, 0x27, 0x52, 0x4f, 0x8d, 0x7a, 0x5f, - 0x12, 0x88, 0xf6, 0xd7, 0x40, 0x9e, 0x7b, 0x52, 0xa3, 0x09, 0x07, 0x22, 0x53, 0x32, 0xf1, 0x48, - 0xaf, 0xc1, 0x22, 0x0a, 0x43, 0xaf, 0x3f, 0x2c, 0x7a, 0xe1, 0xc6, 0xe7, 0x38, 0x76, 0x40, 0xf4, - 0x2f, 0xc1, 0x8c, 0x68, 0x94, 0xf4, 0x5e, 0x91, 0x6f, 0x18, 0x19, 0x78, 0xb8, 0xf3, 0x6e, 0x8f, - 0xe2, 0x13, 0xf1, 0xe0, 0x31, 0xed, 0x62, 0x44, 0xe7, 0xf7, 0x19, 0x92, 0x9d, 0xa1, 0xe3, 0x15, - 0x2e, 0x1a, 0x3d, 0x4a, 0xe4, 0xd2, 0xcb, 0x70, 0xa2, 0x91, 0x12, 0x7f, 0x15, 0x16, 0xd2, 0x3d, - 0x1c, 0x23, 0x2f, 0xe3, 0x5d, 0x8c, 0xa4, 0xe5, 0x7b, 0xc8, 0x13, 0x4d, 0x3e, 0x0f, 0x2b, 0xe9, - 0x26, 0x03, 0xe2, 0x16, 0x3e, 0x65, 0x29, 0x69, 0x37, 0x24, 0x6d, 0x6f, 0x50, 0x7a, 0x22, 0xad, - 0x58, 0xf3, 0xb2, 0x82, 0x7b, 0x11, 0xa6, 0x55, 0xf8, 0x23, 0xc8, 0x64, 0x3a, 0x51, 0x02, 0x05, - 0x11, 0xdb, 0x22, 0x3b, 0x51, 0x40, 0x69, 0x3c, 0xbe, 0x2e, 0xb7, 0x48, 0x09, 0x15, 0x64, 0xff, - 0x0b, 0x2e, 0x0c, 0x3e, 0x10, 0x4c, 0x33, 0x30, 0x2b, 0x23, 0xa9, 0xc1, 0x27, 0xee, 0xca, 0x0d, - 0xbe, 0x0f, 0x93, 0xe2, 0x02, 0x3d, 0xa9, 0xe3, 0xd5, 0x1e, 0x53, 0xc9, 0x7c, 0xc6, 0x3a, 0x33, - 0xf3, 0x43, 0x0d, 0xca, 0xea, 0x09, 0x90, 0x71, 0x01, 0x72, 0x41, 0x28, 0x9f, 0xc7, 0x67, 0xf2, - 0x47, 0xb9, 0x20, 0x3c, 0x73, 0xe5, 0x5a, 0x26, 0xfc, 0x2f, 0x9c, 0x21, 0xfc, 0x37, 0x7f, 0x92, - 0x83, 0xca, 0xfd, 0x23, 0xc7, 0xe1, 0xea, 0x32, 0x2e, 0x67, 0x5e, 0xe9, 0x67, 0xd8, 0x10, 0x6f, - 0xf1, 0x4f, 0xb9, 0xc3, 0xba, 0x30, 0xf4, 0x22, 0x3d, 0xf5, 0xb2, 0xed, 0x32, 0x54, 0x49, 0x27, - 0x88, 0xa8, 0x9d, 0x7a, 0x93, 0x6e, 0x01, 0x07, 0xf1, 0xff, 0x7f, 0xc0, 0xe2, 0xa4, 0x0e, 0x22, - 0x76, 0x70, 0x84, 0x23, 0x0f, 0xf1, 0x10, 0x44, 0xbd, 0x10, 0x95, 0xd5, 0x65, 0x0b, 0x1d, 0x44, - 0x76, 0x63, 0xac, 0x7a, 0xa6, 0x61, 0xac, 0xc2, 0x14, 0x6b, 0xd7, 0x76, 0xec, 0x03, 0xfe, 0x9f, - 0x00, 0x44, 0x75, 0x05, 0x74, 0x10, 0xb9, 0xe3, 0xdc, 0xe6, 0xff, 0x0a, 0x60, 0x19, 0xca, 0x31, - 0x56, 0xac, 0xed, 0x52, 0x5b, 0xa2, 0x3e, 0x06, 0x35, 0x9e, 0xe7, 0x72, 0x3a, 0xc8, 0x6f, 0xf3, - 0x64, 0x9c, 0x58, 0xcc, 0x53, 0x0c, 0xba, 0xc9, 0x81, 0x3c, 0x37, 0xb0, 0x14, 0x07, 0x6e, 0x2a, - 0x33, 0x26, 0x5a, 0xc8, 0xd5, 0x3c, 0xaf, 0xd0, 0x22, 0x2d, 0x26, 0x1a, 0x9a, 0x5f, 0x10, 0x82, - 0x15, 0xd3, 0x3b, 0xe5, 0x10, 0x37, 0xf2, 0xdf, 0x1b, 0x98, 0xdf, 0xc9, 0x43, 0x99, 0x35, 0xe7, - 0xd9, 0xcc, 0xa7, 0x51, 0x4b, 0x2a, 0x43, 0x92, 0xcf, 0x66, 0x48, 0x1e, 0xab, 0x93, 0xe1, 0xba, - 0xc7, 0xb3, 0xfc, 0x3b, 0x8d, 0x74, 0xaa, 0xb4, 0x34, 0x98, 0x2a, 0x3d, 0x6b, 0x4e, 0x73, 0x20, - 0x5f, 0x59, 0x19, 0xce, 0x57, 0x5e, 0x86, 0x6a, 0xfc, 0xc0, 0x98, 0x8a, 0x8c, 0x66, 0xc1, 0x02, - 0x05, 0x6a, 0x92, 0x11, 0xca, 0xad, 0x3e, 0x99, 0x72, 0xa7, 0x4e, 0x51, 0xee, 0xd7, 0x34, 0xa1, - 0x1e, 0x7e, 0xf8, 0x51, 0x27, 0x0e, 0x6d, 0xc4, 0x3d, 0x1a, 0xbf, 0xe7, 0x17, 0x27, 0x8e, 0x35, - 0x98, 0xe4, 0x5e, 0x53, 0x5d, 0xe8, 0x1b, 0x19, 0x42, 0xbe, 0x00, 0x2d, 0x49, 0xc1, 0x68, 0xe5, - 0xff, 0x68, 0xc8, 0x8f, 0xa0, 0xe5, 0xea, 0x51, 0xff, 0xb7, 0xc1, 0x7c, 0x0d, 0x4a, 0xf2, 0x55, - 0x07, 0xd7, 0xd8, 0x89, 0x2f, 0x2d, 0x8c, 0xfd, 0x34, 0x16, 0x61, 0x92, 0xf0, 0x17, 0xce, 0xd2, - 0x2e, 0xe4, 0x97, 0xf9, 0x36, 0xcf, 0xd8, 0xf2, 0xab, 0xe5, 0x6c, 0x35, 0x83, 0xf6, 0xe8, 0x5a, - 0x9e, 0x5c, 0xa6, 0x96, 0xe7, 0xcf, 0x35, 0x00, 0xb1, 0xa3, 0xf0, 0xa1, 0x4f, 0xbd, 0x19, 0x5c, - 0x82, 0x52, 0x88, 0x71, 0xc4, 0x50, 0x92, 0x0d, 0xf6, 0xb9, 0xdd, 0x8a, 0x2f, 0xf6, 0xf2, 0xa9, - 0x8b, 0xbd, 0xc1, 0x6b, 0xc4, 0xc2, 0x19, 0xaf, 0x11, 0x5f, 0x95, 0xe7, 0x49, 0x36, 0x43, 0x2c, - 0x53, 0xbc, 0x89, 0xdc, 0x58, 0x30, 0xdf, 0x60, 0x18, 0x71, 0xc6, 0xe4, 0x3f, 0xcd, 0x6d, 0xa8, - 0xc4, 0xf0, 0xe1, 0x3b, 0x2c, 0x6d, 0xf4, 0x1d, 0x16, 0x7f, 0x2c, 0x42, 0x13, 0x81, 0xa2, 0x03, - 0xdc, 0x24, 0x66, 0x03, 0x0c, 0x51, 0x7c, 0xc3, 0x45, 0xa2, 0x2e, 0x8a, 0x5e, 0x49, 0xca, 0x0b, - 0xc4, 0xe3, 0xcf, 0x24, 0x4c, 0x4d, 0x64, 0x17, 0xd7, 0x18, 0x18, 0x35, 0xc8, 0xc5, 0x1d, 0xe7, - 0x28, 0x31, 0xbf, 0x08, 0x73, 0x99, 0x4e, 0xe5, 0x9d, 0x70, 0x3d, 0xdb, 0x6b, 0xe1, 0xd1, 0x1d, - 0x6c, 0x81, 0xd1, 0x60, 0x31, 0x61, 0x83, 0x31, 0xd9, 0x50, 0x5c, 0xad, 0x43, 0x85, 0x1d, 0xf6, - 0x78, 0x45, 0xc1, 0xa8, 0xdd, 0x4c, 0x54, 0x1c, 0x94, 0x0f, 0xe5, 0x2f, 0x73, 0x1d, 0xe6, 0x32, - 0xbd, 0x48, 0x36, 0x52, 0xb2, 0xd0, 0x32, 0xb2, 0x70, 0x78, 0x95, 0xde, 0x1d, 0xcc, 0x0c, 0xa8, - 0xd9, 0xdc, 0x79, 0x36, 0x15, 0xf7, 0x5f, 0xd7, 0x78, 0xe5, 0x5c, 0x6a, 0x94, 0x67, 0x70, 0x63, - 0x9e, 0x3c, 0xd5, 0xe7, 0xfe, 0xef, 0xd4, 0x9a, 0xfb, 0x9f, 0x8a, 0xe2, 0xf4, 0xcd, 0x1b, 0x8d, - 0x67, 0x59, 0x9c, 0xfe, 0x49, 0x30, 0xc2, 0x08, 0x1f, 0xb9, 0x41, 0x8f, 0xa4, 0xfe, 0xab, 0x82, - 0xe0, 0x45, 0x57, 0x98, 0xf8, 0x7f, 0x2a, 0x5c, 0x85, 0x5a, 0x4c, 0x2d, 0x3a, 0x13, 0x8f, 0xf2, - 0xa6, 0x15, 0xf4, 0x61, 0xaa, 0xe2, 0x7d, 0x72, 0xb0, 0xe2, 0xbd, 0x14, 0xcf, 0xdc, 0xfc, 0x81, - 0xa8, 0xd0, 0xe5, 0x93, 0x3b, 0x6f, 0x39, 0xd7, 0xa1, 0x44, 0x7a, 0x8e, 0x83, 0x65, 0xad, 0x49, - 0xd9, 0x52, 0x9f, 0xcf, 0x64, 0xb2, 0xe6, 0x16, 0x2c, 0xde, 0xc1, 0x54, 0x45, 0x79, 0x7c, 0x01, - 0x3e, 0xb9, 0xbe, 0xcc, 0x6f, 0x6a, 0xb0, 0x34, 0xd4, 0xcd, 0x79, 0x4b, 0xe6, 0x53, 0xcc, 0xf9, - 0x52, 0xbe, 0x05, 0xe6, 0x4f, 0x4d, 0xaa, 0x2b, 0x32, 0xf3, 0x0e, 0x2c, 0xa7, 0xb8, 0xba, 0xeb, - 0xb2, 0x13, 0xe1, 0x38, 0x15, 0x39, 0xe6, 0xb7, 0x34, 0x58, 0x19, 0xd5, 0xd3, 0xcf, 0x7f, 0x8a, - 0x7f, 0x21, 0x6a, 0x9e, 0x37, 0x03, 0x79, 0x1a, 0x08, 0xa2, 0x31, 0x0b, 0x58, 0x9d, 0x20, 0x8c, - 0xc4, 0xbd, 0xb6, 0xe0, 0xa8, 0xcc, 0x00, 0xfc, 0x3a, 0x9b, 0x9f, 0x0b, 0xc3, 0x48, 0x25, 0xdf, - 0xec, 0x08, 0x7f, 0x20, 0x3d, 0x4f, 0x8d, 0xc1, 0x93, 0x57, 0x57, 0xa9, 0xca, 0xad, 0xc2, 0xe3, - 0xaa, 0x89, 0x0d, 0x99, 0x71, 0x14, 0x46, 0x29, 0xd2, 0x8b, 0x3d, 0x5e, 0x33, 0x9d, 0x99, 0xca, - 0x79, 0x0b, 0xd8, 0x48, 0x25, 0x3a, 0xd5, 0xb0, 0xdf, 0x15, 0x6f, 0x49, 0xf8, 0xde, 0x42, 0x7a, - 0xdd, 0x71, 0xe4, 0xf7, 0x19, 0xa8, 0x20, 0xaf, 0x1d, 0x44, 0x2e, 0xed, 0x74, 0xf9, 0x80, 0xb5, - 0x8d, 0x95, 0x84, 0x5a, 0x76, 0x7c, 0x43, 0x51, 0x58, 0x09, 0xf1, 0x93, 0x14, 0xbb, 0xfd, 0x91, - 0xa8, 0xf7, 0x4e, 0xf8, 0x3c, 0x6f, 0xe1, 0xac, 0x40, 0xd9, 0x91, 0x9d, 0xc7, 0x67, 0x16, 0xf9, - 0xcd, 0x2c, 0x44, 0xa4, 0x60, 0x0f, 0x8f, 0xe2, 0x7f, 0xd5, 0xc1, 0x01, 0xf7, 0x8e, 0x78, 0xf8, - 0x29, 0x90, 0x22, 0x7b, 0x2d, 0x62, 0x64, 0xe0, 0x20, 0x91, 0xbe, 0xfe, 0x5e, 0x1e, 0xa6, 0x36, - 0x83, 0x6e, 0x88, 0x1c, 0x2a, 0x18, 0x78, 0x1f, 0x16, 0x70, 0x14, 0xd9, 0xae, 0x7f, 0x84, 0x3c, - 0xb7, 0x65, 0x67, 0x23, 0xae, 0xea, 0xc6, 0xc7, 0xd2, 0x77, 0xb3, 0x71, 0xab, 0x6d, 0x41, 0xdd, - 0x90, 0xd1, 0xd8, 0xdd, 0x09, 0xcb, 0xc0, 0xd1, 0x20, 0xd4, 0xf0, 0xe0, 0x22, 0xeb, 0x3a, 0x94, - 0xf5, 0xa5, 0xb6, 0x3c, 0x93, 0xc7, 0x0e, 0x53, 0x24, 0xba, 0xd6, 0x46, 0x8e, 0xa0, 0x8a, 0x52, - 0x9b, 0xfc, 0x9c, 0x2e, 0x5d, 0xe9, 0xdd, 0x09, 0xab, 0x8e, 0xa3, 0xd1, 0x38, 0xc3, 0x86, 0x25, - 0x36, 0x9a, 0x23, 0x3a, 0xb1, 0x5d, 0xdf, 0x0e, 0xa3, 0xa0, 0x1d, 0x61, 0x42, 0x64, 0x5a, 0xec, - 0xa5, 0x91, 0x03, 0xc9, 0xdf, 0xdb, 0xfe, 0x9e, 0xa4, 0xbe, 0x3b, 0x61, 0xcd, 0xe3, 0x68, 0x18, - 0x6e, 0x1c, 0xc0, 0x0a, 0x1b, 0x80, 0x06, 0x81, 0xdd, 0x45, 0x7e, 0xdf, 0x0e, 0xb1, 0xdf, 0x72, - 0xfd, 0xb6, 0x4d, 0x11, 0x39, 0x24, 0x32, 0x1c, 0xbc, 0x36, 0x72, 0x8c, 0x66, 0x10, 0xdc, 0x47, - 0x7e, 0x7f, 0x4f, 0x34, 0x68, 0x32, 0xfa, 0xbb, 0x13, 0xd6, 0x22, 0x8e, 0x46, 0x61, 0x6e, 0x96, - 0xa4, 0x49, 0x98, 0x97, 0xe0, 0xc2, 0x29, 0x42, 0x37, 0x5f, 0x84, 0x2b, 0x8f, 0x95, 0x98, 0x79, - 0x19, 0x2e, 0x9d, 0x3a, 0x5b, 0xf3, 0x0a, 0x5c, 0x7e, 0x0c, 0xab, 0x2c, 0x82, 0xa8, 0x49, 0x1a, - 0xb5, 0x24, 0x4f, 0x8d, 0xcd, 0xd7, 0x60, 0x76, 0x40, 0xe7, 0xae, 0xba, 0x67, 0x99, 0x09, 0xd3, - 0x5c, 0x6e, 0xb7, 0x78, 0xf2, 0x25, 0x68, 0x67, 0x49, 0xc5, 0x9d, 0x4b, 0x4d, 0xc2, 0x15, 0xe5, - 0x40, 0x71, 0x53, 0xe9, 0x6c, 0xc5, 0x4d, 0x03, 0x55, 0x3d, 0xe5, 0xc1, 0xaa, 0x1e, 0xf3, 0xcf, - 0xc4, 0x65, 0xaf, 0x98, 0x9c, 0x5c, 0xc7, 0x9f, 0xc8, 0xa6, 0x54, 0x16, 0x46, 0x2a, 0x55, 0xad, - 0xd5, 0x17, 0x61, 0x9a, 0x1d, 0xf5, 0x23, 0xdc, 0x45, 0xae, 0xef, 0xfa, 0x6d, 0x59, 0xb0, 0xce, - 0xce, 0xff, 0x96, 0x82, 0x19, 0xeb, 0xbc, 0xfe, 0x81, 0xb5, 0xc5, 0xe9, 0x35, 0x26, 0x9c, 0xdf, - 0x6c, 0x8c, 0x6a, 0xa4, 0x44, 0x98, 0xd0, 0x67, 0x1f, 0xb6, 0xce, 0xc4, 0x88, 0x5b, 0xe2, 0xc4, - 0xf3, 0x0a, 0x2c, 0x37, 0x5d, 0xfe, 0x56, 0xb5, 0xd1, 0x27, 0x14, 0x77, 0xb9, 0xc0, 0x94, 0xa2, - 0x74, 0xc8, 0x93, 0x0f, 0x3c, 0x59, 0xc1, 0xcd, 0x7e, 0x9a, 0x21, 0xac, 0x8c, 0x22, 0x97, 0x53, - 0xb7, 0xa4, 0x5b, 0xe6, 0x3a, 0xbd, 0xf9, 0xd6, 0x0f, 0x7e, 0x76, 0x79, 0xe2, 0xa7, 0x3f, 0xbb, - 0xfc, 0x66, 0xdb, 0xa5, 0x9d, 0xde, 0xfe, 0xba, 0x13, 0x74, 0xaf, 0x87, 0xae, 0xdf, 0x76, 0x50, - 0x78, 0xfd, 0xf0, 0x48, 0xfc, 0xd3, 0xea, 0xf0, 0xb0, 0x7d, 0x9d, 0x74, 0x50, 0x84, 0x5b, 0xdc, - 0xe7, 0xac, 0x37, 0xf8, 0x6f, 0xee, 0x6d, 0x84, 0x5b, 0x5f, 0x7b, 0x07, 0x96, 0x1f, 0xf9, 0xaf, - 0x1a, 0x8d, 0x79, 0xd0, 0x93, 0xaf, 0x07, 0x41, 0xd4, 0x45, 0x9e, 0x3e, 0x61, 0x2c, 0xc1, 0x5c, - 0x02, 0xbd, 0x1d, 0x44, 0x0e, 0xaf, 0xb2, 0xd7, 0xb5, 0x35, 0x0f, 0x2e, 0x9e, 0xf6, 0xbf, 0x19, - 0x59, 0x77, 0xb2, 0x86, 0xbd, 0xe7, 0xd1, 0xb8, 0xbb, 0x55, 0xb8, 0x98, 0x40, 0x77, 0x86, 0xfe, - 0xc5, 0xa2, 0xa8, 0x85, 0x48, 0x28, 0xc4, 0x15, 0xb7, 0x9e, 0x5b, 0x7b, 0x19, 0x20, 0xb1, 0x2b, - 0x63, 0x12, 0x72, 0x0f, 0x5f, 0xd5, 0x27, 0x8c, 0x0a, 0x14, 0x1f, 0xbe, 0xda, 0x6c, 0xee, 0xe8, - 0x1a, 0x07, 0x6d, 0xe8, 0xb9, 0xb5, 0x4f, 0x00, 0x24, 0xc5, 0x9d, 0x06, 0xc0, 0x64, 0x3c, 0x74, - 0x09, 0xf2, 0x3b, 0xc1, 0xb1, 0xae, 0x19, 0x65, 0x28, 0xdc, 0x75, 0xdb, 0x1d, 0x3d, 0xb7, 0x76, - 0x1d, 0x6a, 0xd9, 0x8a, 0x4e, 0xd6, 0x4d, 0x63, 0x5b, 0x9f, 0x60, 0x7f, 0xad, 0x4d, 0x5d, 0xe3, - 0xf5, 0x16, 0x9b, 0xa2, 0xde, 0xa2, 0xa1, 0xe7, 0xd6, 0x1e, 0x42, 0x35, 0x55, 0x1d, 0xc8, 0x78, - 0x7d, 0x10, 0xd0, 0x1b, 0x9e, 0x17, 0x1c, 0xe3, 0xd6, 0xae, 0xcf, 0xc0, 0x42, 0x64, 0x31, 0xe8, - 0x86, 0xd7, 0x0d, 0x08, 0xe5, 0x08, 0xcd, 0xa8, 0xc3, 0x7c, 0x0a, 0xc1, 0xab, 0x33, 0x38, 0x26, - 0xb7, 0xe6, 0x40, 0x6e, 0x37, 0x64, 0x1c, 0xee, 0xf5, 0xa8, 0x60, 0x75, 0x0b, 0x7b, 0x82, 0x55, - 0x2e, 0xee, 0x9c, 0x31, 0x05, 0x65, 0x95, 0xd3, 0xd2, 0xf3, 0x6c, 0x5e, 0xdb, 0x3e, 0xc1, 0x11, - 0xd5, 0x0b, 0xc6, 0x1c, 0xcc, 0x0c, 0x28, 0x42, 0x2f, 0x1a, 0x06, 0xd4, 0x38, 0xd7, 0xca, 0xfd, - 0x10, 0x7d, 0x72, 0x6d, 0x1d, 0x2a, 0x71, 0x8a, 0x8f, 0xf5, 0xfc, 0x20, 0xf0, 0xb1, 0x10, 0x22, - 0x27, 0xd1, 0x35, 0x36, 0x88, 0x6a, 0x20, 0xa4, 0x93, 0xfd, 0xe7, 0xbb, 0x8c, 0xaf, 0xdd, 0x83, - 0x03, 0x7d, 0x82, 0xb5, 0xbe, 0x8d, 0x78, 0x13, 0x80, 0xc9, 0x06, 0x8d, 0x98, 0xea, 0x72, 0x6b, - 0xdf, 0xd6, 0x60, 0x52, 0xfe, 0x07, 0x5e, 0xde, 0x93, 0xf8, 0xad, 0x4f, 0x18, 0x0b, 0x30, 0xdb, - 0x6c, 0xee, 0x88, 0x0a, 0x8e, 0x78, 0x16, 0x5c, 0x1e, 0x3c, 0x5d, 0x2d, 0x87, 0x8c, 0x31, 0x39, - 0xd6, 0xe0, 0x7e, 0x5c, 0x72, 0xd1, 0xd8, 0xeb, 0x91, 0x0e, 0x6e, 0xe9, 0x79, 0x66, 0x3d, 0x71, - 0x3f, 0x23, 0xfe, 0x8b, 0xa2, 0x5e, 0x30, 0x96, 0x61, 0x21, 0xdd, 0xe5, 0x56, 0xf0, 0x20, 0xa0, - 0x1d, 0xd7, 0x6f, 0xeb, 0xc5, 0xb5, 0xab, 0x50, 0xba, 0x75, 0x42, 0x23, 0xb4, 0x1b, 0x8a, 0xc9, - 0x07, 0xa1, 0x3e, 0x61, 0xe8, 0x30, 0xc5, 0x0e, 0xf8, 0xbb, 0x5e, 0x8b, 0xc7, 0xfe, 0xba, 0xb6, - 0x66, 0xc2, 0xec, 0x50, 0x74, 0xc2, 0xcc, 0x60, 0x33, 0x72, 0xde, 0x7c, 0xdd, 0xfe, 0xdf, 0x41, - 0xa4, 0x4f, 0xdc, 0x7c, 0xe9, 0x6f, 0x7f, 0xaf, 0xac, 0xfd, 0xe0, 0xa3, 0x17, 0xb4, 0x1f, 0x7f, - 0xf4, 0x82, 0xf6, 0xf7, 0x1f, 0xbd, 0xa0, 0xfd, 0xf6, 0x3f, 0xbe, 0x30, 0x01, 0x7a, 0x10, 0xb5, - 0xd7, 0xa9, 0x7b, 0x78, 0xb4, 0x2e, 0x57, 0xe4, 0xfe, 0x24, 0xff, 0xf3, 0xda, 0x7f, 0x05, 0x00, - 0x00, 0xff, 0xff, 0x9e, 0xb7, 0x6a, 0x21, 0x8f, 0x5e, 0x00, 0x00, + 0xdb, 0x55, 0x43, 0x72, 0x7c, 0x71, 0x81, 0xbb, 0xb8, 0x49, 0x00, 0x03, 0x81, 0x93, 0x18, 0x06, + 0x1c, 0xc0, 0x46, 0x80, 0x7c, 0x18, 0x88, 0xf3, 0x17, 0xe4, 0x27, 0x8f, 0x8f, 0x20, 0x80, 0x3f, + 0x36, 0x41, 0x0c, 0x1b, 0x08, 0x02, 0x07, 0x0e, 0x60, 0x24, 0x1b, 0x20, 0xdf, 0xf9, 0x09, 0x92, + 0x9f, 0x20, 0x41, 0xbd, 0xfa, 0x31, 0x33, 0xa4, 0x28, 0x8a, 0x94, 0x9d, 0x7c, 0x71, 0xfa, 0x9c, + 0x53, 0x55, 0xe7, 0x55, 0xa7, 0xaa, 0x4e, 0x9d, 0x22, 0x4c, 0xee, 0x1f, 0x44, 0xa1, 0x13, 0xee, + 0xae, 0x86, 0x51, 0x40, 0x03, 0xa3, 0x24, 0x3f, 0x97, 0x26, 0xba, 0x98, 0x22, 0x05, 0x5e, 0x9a, + 0xc4, 0x51, 0x14, 0x44, 0xf1, 0xe7, 0x6c, 0x3b, 0x68, 0x07, 0xfc, 0xe7, 0x4d, 0xf6, 0x4b, 0x42, + 0xa7, 0xa2, 0x1e, 0xa1, 0xfc, 0xa7, 0x04, 0xd4, 0x5a, 0x18, 0xb5, 0xbc, 0xc0, 0xd9, 0x57, 0xbd, + 0xd0, 0x08, 0x39, 0x58, 0xf5, 0x62, 0xb6, 0x00, 0xee, 0x61, 0x6a, 0xe1, 0x0f, 0x7a, 0x98, 0x50, + 0x63, 0x05, 0x4a, 0x4e, 0xe0, 0x53, 0x7c, 0x44, 0xeb, 0xda, 0xb2, 0x76, 0xa3, 0xba, 0xa6, 0xaf, + 0x2a, 0xd6, 0xd6, 0x05, 0xdc, 0x52, 0x04, 0x86, 0x0e, 0xf9, 0x7d, 0xdc, 0xaf, 0xe7, 0x96, 0xb5, + 0x1b, 0x13, 0x16, 0xfb, 0x69, 0xd4, 0xa1, 0x74, 0x80, 0x23, 0xe2, 0x06, 0x7e, 0x3d, 0xbf, 0xac, + 0xdd, 0x28, 0x58, 0xea, 0xd3, 0xfc, 0x58, 0x83, 0x2a, 0x1f, 0x86, 0x84, 0x81, 0x4f, 0xb0, 0xf1, + 0x2a, 0x4c, 0x44, 0xb8, 0xed, 0x06, 0xbe, 0xcd, 0x65, 0x92, 0x83, 0xd5, 0x56, 0x95, 0x84, 0x77, + 0xd8, 0x5f, 0xab, 0x2a, 0x68, 0xf8, 0x87, 0xf1, 0x32, 0x14, 0x05, 0x6d, 0x8e, 0xd3, 0x4e, 0xc7, + 0x8c, 0x3d, 0xc0, 0x7d, 0x41, 0x2e, 0xf0, 0xc6, 0x2c, 0x14, 0x0f, 0x90, 0xd7, 0xc3, 0x9c, 0x87, + 0x09, 0x4b, 0x7c, 0x18, 0x97, 0xa0, 0xe2, 0x07, 0xd4, 0xde, 0x0b, 0x7a, 0x7e, 0xab, 0x5e, 0x58, + 0xd6, 0x6e, 0x94, 0xad, 0xb2, 0x1f, 0xd0, 0xbb, 0xec, 0xdb, 0x78, 0x0b, 0xa6, 0xf0, 0x11, 0x76, + 0xec, 0x16, 0xa6, 0xc8, 0xf5, 0x88, 0x7d, 0xb0, 0x56, 0x1f, 0xe7, 0xa3, 0xcc, 0xc7, 0xa3, 0xdc, + 0x39, 0xc2, 0xce, 0x86, 0x40, 0x3f, 0x5e, 0xb3, 0x26, 0x71, 0xfa, 0xf3, 0x9d, 0x42, 0xb9, 0xa8, + 0x8f, 0x9b, 0xff, 0xa2, 0x41, 0xb5, 0xe1, 0x20, 0xff, 0x2c, 0xca, 0xbc, 0x04, 0x15, 0x42, 0x51, + 0x44, 0xed, 0x44, 0xa5, 0x65, 0x0e, 0x78, 0x80, 0xfb, 0x4c, 0x22, 0xcf, 0xed, 0xba, 0x94, 0x4b, + 0x34, 0x69, 0x89, 0x8f, 0xb4, 0xb6, 0x0b, 0x19, 0x6d, 0x1b, 0x8b, 0x50, 0xde, 0xc7, 0x7d, 0x3b, + 0xf0, 0xbd, 0x7e, 0xbd, 0xc8, 0x45, 0x2d, 0xed, 0xe3, 0xfe, 0xb6, 0xef, 0x71, 0x13, 0x45, 0x98, + 0xd1, 0x61, 0x2e, 0x61, 0xd9, 0x52, 0x9f, 0xc6, 0x02, 0x94, 0xb0, 0xdf, 0xe2, 0xe3, 0x97, 0xf8, + 0xf8, 0xe3, 0xd8, 0x6f, 0xb1, 0xd1, 0xaf, 0x42, 0x95, 0xa0, 0x6e, 0xe8, 0x61, 0x9b, 0x50, 0x1c, + 0xd6, 0xcb, 0x9c, 0x07, 0x10, 0xa0, 0x06, 0xc5, 0xa1, 0xf9, 0x5b, 0x1a, 0x4c, 0x08, 0xb9, 0xcf, + 0x6e, 0xdd, 0xeb, 0x50, 0x0c, 0x91, 0x1b, 0x91, 0x7a, 0x6e, 0x39, 0x7f, 0xa3, 0xba, 0x36, 0x95, + 0x58, 0xf7, 0x60, 0x07, 0xb9, 0x91, 0x25, 0xb0, 0x89, 0x13, 0xe4, 0x4f, 0x76, 0x02, 0xf3, 0xa3, + 0x12, 0x4c, 0xed, 0x44, 0xf8, 0x30, 0x72, 0x29, 0x3e, 0x8b, 0x3d, 0x6e, 0x42, 0xa5, 0xdb, 0xa3, + 0x88, 0xba, 0x81, 0xaf, 0x78, 0x4a, 0x06, 0x7b, 0x28, 0x31, 0x56, 0x42, 0x63, 0x5c, 0x83, 0x89, + 0x30, 0x72, 0xbb, 0x28, 0xea, 0xdb, 0x6c, 0xb2, 0x49, 0xe7, 0xab, 0x4a, 0xd8, 0x56, 0xe0, 0xec, + 0x1b, 0x2f, 0xc2, 0xa4, 0xb0, 0x71, 0xd6, 0x6c, 0x13, 0x1c, 0xf8, 0x38, 0xb1, 0x1d, 0x6b, 0x6f, + 0x53, 0xea, 0x71, 0xdb, 0x15, 0xac, 0x12, 0xfb, 0x6e, 0x52, 0xcf, 0x58, 0x83, 0x39, 0xb2, 0xef, + 0x86, 0xb6, 0x13, 0xf8, 0x84, 0x46, 0xc8, 0xf5, 0xa9, 0xed, 0x74, 0xb0, 0xb3, 0x2f, 0x2d, 0x39, + 0xc3, 0x90, 0xeb, 0x31, 0x6e, 0x9d, 0xa1, 0x8c, 0xff, 0x05, 0x33, 0x21, 0x26, 0xc4, 0xed, 0xba, + 0x84, 0xba, 0x8e, 0x8d, 0x1c, 0x21, 0x51, 0x69, 0x39, 0x7f, 0xa3, 0xb6, 0xb6, 0x12, 0x4b, 0x34, + 0xa0, 0xaa, 0xd5, 0x9d, 0xa4, 0xcd, 0x2d, 0xde, 0xc4, 0x32, 0xc2, 0x41, 0x10, 0x61, 0xbc, 0xd2, + 0x23, 0xdf, 0x26, 0xee, 0xd7, 0x31, 0x77, 0x8b, 0x82, 0x55, 0xa2, 0x47, 0x7e, 0xc3, 0xfd, 0x3a, + 0x36, 0x4c, 0x98, 0xdc, 0x0b, 0x22, 0xbb, 0x17, 0xb6, 0x10, 0xc5, 0x36, 0x25, 0xf5, 0x0a, 0xc7, + 0x57, 0xf7, 0x82, 0xe8, 0x5d, 0x0e, 0x6b, 0x12, 0x46, 0xd3, 0x75, 0x7d, 0xdb, 0x09, 0xba, 0x5d, + 0x97, 0x32, 0x1a, 0x10, 0x34, 0x5d, 0xd7, 0x5f, 0xe7, 0xb0, 0x26, 0x31, 0x6e, 0x80, 0xde, 0x23, + 0xd8, 0x46, 0xa4, 0xef, 0x3b, 0x92, 0xb2, 0x5e, 0xe5, 0xe2, 0xd6, 0x7a, 0x04, 0xdf, 0x62, 0x60, + 0x41, 0x6b, 0x2c, 0x43, 0x95, 0x60, 0x27, 0xf0, 0x5b, 0x28, 0x72, 0x31, 0xa9, 0x4f, 0x2c, 0xe7, + 0x99, 0xfe, 0x53, 0x20, 0xe3, 0x32, 0x00, 0x8d, 0xd8, 0xb4, 0xc0, 0x76, 0xe8, 0xd4, 0x27, 0x45, + 0x0c, 0xa0, 0x51, 0x7f, 0xdb, 0xc7, 0x3b, 0x0e, 0xe7, 0x06, 0x1d, 0xa5, 0xb8, 0xa9, 0x49, 0x6e, + 0xd0, 0x51, 0xcc, 0xcd, 0xdb, 0x30, 0x85, 0x08, 0xc1, 0x11, 0x13, 0xdf, 0xf6, 0xf0, 0x01, 0xf6, + 0xea, 0x53, 0xcb, 0xda, 0x8d, 0xda, 0xda, 0x42, 0xac, 0xc9, 0x5b, 0x0a, 0xbf, 0xc5, 0xd0, 0x56, + 0x0d, 0x65, 0xbe, 0x0d, 0x17, 0x16, 0x33, 0x7a, 0x49, 0x19, 0x93, 0xd4, 0x75, 0xee, 0x67, 0xab, + 0xc7, 0x5a, 0xe5, 0x6e, 0xac, 0xbc, 0x46, 0x62, 0x67, 0x6b, 0x3e, 0xa5, 0xd3, 0x04, 0x4c, 0x96, + 0x76, 0x61, 0x6e, 0x64, 0x03, 0x16, 0x4e, 0x5c, 0xbf, 0x85, 0x8f, 0xf8, 0x2c, 0x98, 0xb4, 0xc4, + 0x87, 0xf1, 0x1a, 0xcc, 0xe3, 0xa3, 0x10, 0x3b, 0x14, 0xb7, 0xec, 0xac, 0xe9, 0x72, 0x5c, 0x11, + 0x33, 0x0a, 0x9b, 0x74, 0x4a, 0xcc, 0x5d, 0x98, 0x1e, 0x72, 0x15, 0x63, 0x09, 0xe6, 0x1b, 0x0f, + 0x36, 0x77, 0xec, 0x9d, 0x3b, 0x8d, 0xc6, 0xe6, 0xc3, 0xcd, 0x46, 0x73, 0x73, 0xdd, 0x5e, 0xbf, + 0x7f, 0x67, 0xfd, 0x81, 0x3e, 0x66, 0xd4, 0x61, 0x76, 0x63, 0x7b, 0x04, 0x46, 0x33, 0x16, 0x60, + 0x66, 0x63, 0xdb, 0x5e, 0xdf, 0x7e, 0xd4, 0x68, 0x5a, 0xb7, 0x36, 0x1f, 0x35, 0x25, 0x22, 0x67, + 0xfe, 0xbb, 0x06, 0x7a, 0xa2, 0x89, 0xb3, 0x87, 0x98, 0x4f, 0xc2, 0x38, 0xc7, 0x0e, 0xcf, 0xe7, + 0x38, 0x78, 0x48, 0x82, 0x61, 0xcf, 0xcc, 0x0f, 0x7b, 0xe6, 0xcb, 0xa0, 0x0b, 0x4f, 0x4a, 0x91, + 0x89, 0x09, 0x3d, 0x19, 0x30, 0x87, 0x8a, 0x09, 0x47, 0x2c, 0x2e, 0xc5, 0xa7, 0x58, 0x5c, 0xcc, + 0x1f, 0x16, 0x60, 0x3e, 0xa5, 0x64, 0x16, 0x4a, 0xfe, 0xbb, 0x44, 0xb4, 0xa1, 0x28, 0x31, 0x3e, + 0x32, 0x4a, 0xb8, 0xc4, 0xde, 0x73, 0x23, 0x42, 0x05, 0x1f, 0x25, 0x3e, 0x71, 0xab, 0x2e, 0xb9, + 0xcb, 0x60, 0x9c, 0x8f, 0x6b, 0x30, 0x71, 0x88, 0x98, 0x09, 0xdc, 0x2e, 0x0e, 0x7a, 0x94, 0x07, + 0xa3, 0xbc, 0x55, 0x65, 0xb0, 0xa6, 0x00, 0x19, 0x75, 0x28, 0xee, 0x05, 0x91, 0x83, 0x79, 0x20, + 0x2a, 0xdf, 0xce, 0xd5, 0x35, 0x4b, 0x00, 0x98, 0x10, 0x11, 0xa6, 0xbd, 0xc8, 0xb7, 0xf9, 0x4e, + 0x41, 0x84, 0xa1, 0xb2, 0x35, 0x21, 0x80, 0x8f, 0x39, 0x6c, 0xd8, 0x23, 0xaa, 0xa3, 0x3c, 0x62, + 0x8a, 0xc7, 0x63, 0x1b, 0x1f, 0xb9, 0x84, 0x62, 0xdf, 0xc1, 0xf5, 0x09, 0x11, 0xaa, 0x38, 0xf8, + 0x8e, 0x82, 0x1a, 0xaf, 0xc0, 0x0c, 0xd7, 0x08, 0x5b, 0xa0, 0x6d, 0x77, 0x4f, 0xd0, 0x13, 0x19, + 0x91, 0x74, 0x86, 0x62, 0x6b, 0xf5, 0xe6, 0x1e, 0x6f, 0x41, 0x8c, 0x0d, 0x26, 0xdd, 0x3e, 0xb6, + 0x7b, 0xa1, 0xdd, 0x0d, 0x5a, 0x98, 0x07, 0xa6, 0xda, 0x9a, 0x99, 0x84, 0x89, 0xac, 0x73, 0xbc, + 0x87, 0xf6, 0xf1, 0xbb, 0xe1, 0xc3, 0xa0, 0x85, 0x2d, 0x38, 0x8c, 0x7f, 0x9b, 0xff, 0xac, 0x41, + 0x7d, 0x80, 0xf2, 0x01, 0xee, 0x5b, 0x98, 0xf4, 0x3c, 0x6a, 0x7c, 0x1e, 0x0a, 0xb4, 0x1f, 0x62, + 0xee, 0x45, 0xb5, 0xb5, 0xeb, 0xc7, 0x75, 0x1d, 0x37, 0x68, 0xf6, 0x43, 0x6c, 0xf1, 0x26, 0xc9, + 0x76, 0x2b, 0x97, 0xde, 0x6e, 0x5d, 0x86, 0x4a, 0xa2, 0x85, 0x3c, 0x17, 0x2c, 0x01, 0x18, 0x6f, + 0xc0, 0x02, 0x93, 0x12, 0xb7, 0xec, 0x43, 0x97, 0x76, 0x58, 0x0c, 0xdc, 0xf3, 0x5c, 0x27, 0x35, + 0x85, 0x66, 0x05, 0xfa, 0x3d, 0x97, 0x76, 0xd6, 0x25, 0xb2, 0x49, 0x8c, 0x55, 0xe0, 0x6b, 0x9c, + 0x1d, 0x61, 0x12, 0x78, 0x07, 0xae, 0xdf, 0x16, 0x0e, 0x21, 0xd6, 0x83, 0x69, 0x86, 0xb2, 0x14, + 0x86, 0x71, 0x6b, 0xfe, 0x53, 0x0e, 0x16, 0x86, 0x66, 0xce, 0x73, 0x09, 0x20, 0x57, 0xa1, 0x32, + 0x10, 0x3c, 0xb8, 0xc7, 0x95, 0x1d, 0xe5, 0x2b, 0x75, 0xa5, 0x35, 0x26, 0xef, 0x84, 0x70, 0x47, + 0xa1, 0xb9, 0x79, 0x18, 0x97, 0x7e, 0x58, 0xe4, 0x4b, 0x98, 0xfc, 0x32, 0xae, 0x00, 0xc4, 0x1b, + 0x58, 0x36, 0x51, 0xf2, 0x4c, 0xa5, 0x6a, 0x07, 0x3b, 0x32, 0xca, 0x94, 0x9e, 0x22, 0xca, 0x18, + 0x5f, 0x64, 0x1b, 0x43, 0x66, 0x5a, 0x52, 0x2f, 0x73, 0xe9, 0xae, 0x3d, 0xd1, 0x09, 0x2c, 0xd5, + 0xc2, 0xfc, 0xbe, 0x06, 0x4b, 0x29, 0x2a, 0x2b, 0xf0, 0xbc, 0x5d, 0x74, 0xb6, 0x30, 0x35, 0x14, + 0x52, 0x72, 0x23, 0x42, 0xca, 0x50, 0xdc, 0xc8, 0x0f, 0xc7, 0x0d, 0x03, 0x0a, 0xfb, 0xb8, 0xcf, + 0x1c, 0x8a, 0x69, 0x91, 0xff, 0x36, 0xff, 0x54, 0x83, 0x4b, 0x23, 0xf9, 0x7c, 0x2e, 0x4e, 0x31, + 0xc2, 0x44, 0xf9, 0xa7, 0x59, 0x08, 0xfe, 0x40, 0x83, 0x99, 0xe6, 0x91, 0x7f, 0x1f, 0xa3, 0x88, + 0xde, 0xc6, 0xe8, 0x4c, 0x87, 0xb6, 0xc1, 0xa0, 0x9e, 0x3b, 0x45, 0x50, 0xcf, 0x8f, 0xb0, 0xc0, + 0x4b, 0x30, 0x85, 0x5a, 0x07, 0x2e, 0xc1, 0x76, 0x1c, 0xdb, 0xe5, 0xe2, 0x27, 0xc0, 0x5b, 0x22, + 0xc2, 0x9b, 0x3f, 0xd2, 0x60, 0x36, 0xcb, 0xf3, 0x73, 0x38, 0x01, 0xa6, 0x57, 0x9c, 0x7c, 0x76, + 0xc5, 0x19, 0x61, 0x83, 0xc2, 0xd3, 0xd8, 0xe0, 0x1f, 0x72, 0x30, 0xc7, 0x77, 0xd6, 0xcd, 0x23, + 0xbf, 0x41, 0x11, 0xed, 0x91, 0xb3, 0x58, 0xe1, 0x2a, 0x28, 0x8d, 0xa7, 0xce, 0x7b, 0x20, 0x41, + 0xec, 0xcc, 0xb5, 0x00, 0x25, 0x21, 0x81, 0x72, 0xed, 0x71, 0x2e, 0x00, 0x61, 0x7a, 0x77, 0x90, + 0xe7, 0xe1, 0xc8, 0x16, 0x36, 0x4a, 0x36, 0x1d, 0x02, 0xdc, 0x60, 0xd0, 0x26, 0x8f, 0x16, 0x4e, + 0x2f, 0x8a, 0xb0, 0xcf, 0x49, 0xc4, 0xb2, 0x5b, 0x91, 0x90, 0x26, 0x31, 0x5e, 0x85, 0xb9, 0x48, + 0x3a, 0x3f, 0x5b, 0x80, 0x58, 0x60, 0xe1, 0xd1, 0x59, 0x1e, 0x25, 0x0c, 0x85, 0xdc, 0xdc, 0x7b, + 0x14, 0x50, 0xbe, 0x0c, 0x19, 0x2b, 0x30, 0xcd, 0xd7, 0x4b, 0x3b, 0xbd, 0x15, 0x17, 0x6b, 0xf1, + 0x14, 0x47, 0x34, 0x92, 0xbd, 0xf8, 0x97, 0x60, 0x29, 0x89, 0xd1, 0xe9, 0xf3, 0x07, 0xf7, 0xb9, + 0x32, 0x6f, 0x54, 0x8f, 0x29, 0x06, 0xe2, 0x8b, 0xf9, 0xe3, 0x1c, 0xcc, 0x0f, 0xea, 0xf8, 0x17, + 0xeb, 0x35, 0xd7, 0xa1, 0x26, 0xc3, 0x79, 0x76, 0xa3, 0x33, 0x29, 0xa0, 0x6a, 0x52, 0xbc, 0x0c, + 0xe3, 0xe2, 0x80, 0xc5, 0x15, 0x5e, 0x4b, 0x9d, 0x62, 0xe5, 0x21, 0x4a, 0xa2, 0x8d, 0x55, 0xa8, + 0xf0, 0xa1, 0x5c, 0x7f, 0x2f, 0x90, 0x99, 0x86, 0x84, 0x2f, 0xa6, 0x83, 0x4d, 0x7f, 0x2f, 0xb0, + 0x38, 0x3b, 0xec, 0xd7, 0xb3, 0x06, 0x77, 0xf3, 0x43, 0x0d, 0x96, 0xb8, 0x46, 0x1b, 0xf2, 0x38, + 0xc4, 0x67, 0xfa, 0x99, 0x5c, 0x57, 0x85, 0xd5, 0x5c, 0x12, 0x56, 0x4f, 0x15, 0x31, 0xcc, 0xff, + 0xd0, 0xe0, 0xd2, 0x48, 0x1e, 0x9e, 0x83, 0x69, 0x5f, 0x86, 0x22, 0xd3, 0x25, 0x9b, 0x4c, 0xf9, + 0xd1, 0xba, 0x16, 0x78, 0xe3, 0x52, 0x7a, 0xdd, 0x16, 0x36, 0x4e, 0xd6, 0xec, 0x67, 0xdd, 0xc8, + 0xff, 0x40, 0x83, 0x49, 0x31, 0x41, 0x2e, 0x6c, 0x61, 0x54, 0xd6, 0xc9, 0xa7, 0xac, 0x73, 0x3a, + 0xe7, 0x15, 0x39, 0x2c, 0x6b, 0x7c, 0xd7, 0xf5, 0xbd, 0xa0, 0x6d, 0xfe, 0xb5, 0x06, 0x35, 0xc5, + 0xeb, 0x73, 0x30, 0xd0, 0x30, 0x8f, 0xf9, 0x51, 0x13, 0xec, 0x59, 0xa3, 0x77, 0x1b, 0x26, 0x37, + 0xbb, 0x61, 0x10, 0xc5, 0x06, 0xc8, 0x1c, 0x8a, 0xb4, 0x53, 0x1c, 0x8a, 0x86, 0x19, 0xcd, 0x8d, + 0x60, 0xd4, 0x7c, 0x1f, 0x6a, 0x6a, 0xa0, 0xb3, 0x6b, 0x6f, 0x36, 0xad, 0xbd, 0x8a, 0xca, 0x6c, + 0x7d, 0x8b, 0x59, 0xc6, 0xc3, 0xc8, 0xef, 0x85, 0xe7, 0x93, 0xb5, 0x3d, 0xd5, 0x7a, 0x9f, 0x5d, + 0x4f, 0x0a, 0x03, 0xeb, 0x89, 0xf9, 0x6d, 0x0d, 0xa6, 0x62, 0xa6, 0x7e, 0x69, 0xfc, 0xc5, 0xdc, + 0x87, 0xa9, 0xdb, 0x88, 0x3a, 0x9d, 0x33, 0x66, 0xb8, 0x47, 0xc5, 0xba, 0xe3, 0x73, 0xdc, 0x7f, + 0xa7, 0x81, 0x9e, 0x8c, 0x76, 0xe1, 0xa9, 0xd0, 0x67, 0x9c, 0x0b, 0x89, 0xae, 0x8b, 0x27, 0xeb, + 0xfa, 0x9d, 0x42, 0x39, 0xaf, 0x17, 0xcc, 0xff, 0x03, 0xb3, 0x5c, 0xb8, 0x0b, 0xdf, 0xdb, 0x8f, + 0x08, 0x61, 0xe6, 0x1f, 0x6a, 0x30, 0x37, 0x30, 0xfa, 0x73, 0x70, 0xb2, 0x67, 0xdd, 0xaf, 0xff, + 0xbe, 0x06, 0x53, 0x0d, 0x07, 0xf9, 0x67, 0xcd, 0xd8, 0x5c, 0x85, 0x6a, 0x17, 0x1d, 0x0d, 0x28, + 0x0b, 0xba, 0xe8, 0x48, 0xa9, 0x2a, 0x73, 0x69, 0x90, 0x3f, 0xee, 0xd2, 0xa0, 0x90, 0xbe, 0x34, + 0x48, 0x65, 0xf9, 0x8b, 0xe9, 0x2c, 0xbf, 0xf9, 0x53, 0x0d, 0xf4, 0x84, 0xd9, 0x5f, 0xa6, 0x35, + 0xf9, 0x59, 0x83, 0xfe, 0x8f, 0x35, 0x30, 0x44, 0x5e, 0x00, 0x9f, 0xd5, 0x12, 0xa7, 0x72, 0xdc, + 0x53, 0xae, 0x61, 0xaf, 0x40, 0x85, 0x1e, 0xf9, 0x7c, 0xeb, 0x27, 0x0e, 0xa7, 0xe9, 0x91, 0x9b, + 0x47, 0xbe, 0xd8, 0xfa, 0x51, 0xf1, 0x23, 0x39, 0xc6, 0x16, 0x53, 0xd3, 0x81, 0x1d, 0x04, 0x33, + 0x12, 0xfd, 0x17, 0x98, 0x0c, 0x8f, 0xa1, 0x72, 0x6f, 0xfd, 0x2c, 0xba, 0xbf, 0x02, 0x40, 0xd0, + 0x1e, 0xb6, 0xc3, 0xc0, 0xf5, 0xa9, 0x54, 0x7c, 0x85, 0x41, 0x76, 0x18, 0xc0, 0xec, 0x00, 0xb0, + 0x7e, 0x2f, 0x5e, 0x03, 0xe6, 0x77, 0x34, 0x30, 0x36, 0xb0, 0x87, 0x29, 0xb6, 0x90, 0xdf, 0xc6, + 0xe7, 0x7e, 0xcb, 0x97, 0x9a, 0x9a, 0xf9, 0xc1, 0x0b, 0x38, 0x3f, 0xa0, 0xee, 0x9e, 0xbc, 0xd1, + 0x13, 0x97, 0x97, 0x20, 0x40, 0xdb, 0xbe, 0xd7, 0x37, 0xbf, 0x0a, 0x33, 0x19, 0xc6, 0xce, 0x7b, + 0xcb, 0xf1, 0xc7, 0x1a, 0x2c, 0xef, 0x44, 0x38, 0x44, 0x11, 0xbe, 0xeb, 0x21, 0xd2, 0x61, 0x11, + 0xb8, 0x19, 0x48, 0x87, 0x7e, 0x7e, 0x7a, 0x58, 0x84, 0xf2, 0xc0, 0xa1, 0xb7, 0x44, 0xe4, 0x71, + 0x37, 0xb5, 0x2a, 0x17, 0xb3, 0xab, 0xb2, 0x07, 0xd7, 0x4e, 0x60, 0xfd, 0xbc, 0x35, 0xf5, 0x63, + 0x0d, 0x16, 0xcf, 0x47, 0x45, 0x29, 0x89, 0x72, 0xd9, 0xdb, 0xdd, 0x13, 0xa3, 0x7e, 0x4a, 0x79, + 0x85, 0x63, 0x95, 0x57, 0xcc, 0x2a, 0x2f, 0x73, 0xe8, 0x19, 0xcf, 0x1e, 0x7a, 0x4c, 0x0c, 0x4b, + 0xcf, 0x43, 0x71, 0x5f, 0x81, 0x49, 0x0b, 0x1d, 0x9e, 0x5b, 0x25, 0x42, 0x0d, 0x72, 0xce, 0x1e, + 0x57, 0x4e, 0xc5, 0xca, 0x39, 0x7b, 0xe6, 0xaf, 0x6b, 0x50, 0x53, 0xfd, 0x9f, 0x33, 0xeb, 0x67, + 0xa8, 0x37, 0x30, 0x5b, 0x60, 0x58, 0xe8, 0xf0, 0xbc, 0xb7, 0xa6, 0x83, 0x42, 0x07, 0x30, 0x93, + 0x19, 0xe5, 0xa2, 0xb7, 0xa4, 0xe6, 0xef, 0x68, 0xdc, 0x8a, 0x3b, 0xbd, 0x73, 0xb2, 0xe2, 0x68, + 0xcd, 0x0a, 0x31, 0x0b, 0x4a, 0x4c, 0xd6, 0x2e, 0xb9, 0x5a, 0x62, 0x3f, 0xd9, 0x24, 0xd8, 0x0b, + 0x22, 0xdb, 0x41, 0x44, 0xe6, 0xb3, 0xc6, 0xf7, 0x82, 0x68, 0x1d, 0x11, 0x76, 0x2c, 0x53, 0xfc, + 0x9d, 0xb7, 0x03, 0xff, 0x89, 0x96, 0xd8, 0xf4, 0x8c, 0x0a, 0x38, 0xe5, 0xc6, 0x7f, 0xc0, 0xcc, + 0xc6, 0xac, 0x90, 0xbf, 0x10, 0xdf, 0x32, 0x0c, 0xea, 0xa0, 0x98, 0xd6, 0x01, 0xf3, 0x1c, 0x4a, + 0x3d, 0x71, 0x83, 0x50, 0xb0, 0xf8, 0x6f, 0xb6, 0x80, 0x64, 0x78, 0x3f, 0x6f, 0xe5, 0xf4, 0x41, + 0xb7, 0xd0, 0xa1, 0x5c, 0xa3, 0x2e, 0x62, 0x82, 0xa7, 0xc5, 0x2d, 0x64, 0x4c, 0xfe, 0xbf, 0x61, + 0x3a, 0x35, 0xf4, 0x79, 0x0b, 0xf6, 0xff, 0x34, 0x98, 0x53, 0x9a, 0x3b, 0xbb, 0x78, 0xa7, 0x98, + 0xcc, 0xc7, 0x0b, 0x88, 0x60, 0x7e, 0x90, 0x83, 0xf3, 0x96, 0xf2, 0x47, 0x22, 0x7a, 0x3e, 0xc7, + 0xda, 0xa6, 0x74, 0x05, 0x53, 0x21, 0x5b, 0xc1, 0x24, 0x14, 0x53, 0x8c, 0x15, 0xf3, 0xf4, 0x15, + 0x4d, 0x66, 0x1b, 0xa6, 0x62, 0x71, 0xce, 0xae, 0xab, 0x6b, 0x90, 0xdf, 0x3f, 0x38, 0x76, 0xb2, + 0x32, 0x9c, 0xf9, 0x0d, 0xe1, 0x1e, 0xbf, 0x90, 0x5d, 0xe3, 0x40, 0x98, 0x94, 0x7e, 0x72, 0xa1, + 0xfb, 0xc4, 0x9f, 0x68, 0x49, 0x1c, 0x39, 0xab, 0xb3, 0x7c, 0x12, 0xc6, 0x23, 0xc6, 0xdd, 0xc8, + 0xfb, 0x34, 0xc1, 0xb7, 0x24, 0x60, 0x27, 0x03, 0x8c, 0x9c, 0x8e, 0x9d, 0xf6, 0x9f, 0x0a, 0x83, + 0x6c, 0x9d, 0x9b, 0x0f, 0x99, 0x1e, 0xcc, 0x66, 0x25, 0xba, 0x50, 0x7f, 0xf9, 0xbf, 0xb0, 0xf8, + 0xae, 0xcf, 0xce, 0x36, 0x1b, 0x98, 0xd0, 0x28, 0xe8, 0x3f, 0x5f, 0x97, 0x61, 0x7b, 0xbd, 0x51, + 0xc3, 0x9f, 0xb7, 0x9b, 0x7c, 0x0d, 0x2e, 0x59, 0xb8, 0xed, 0x12, 0x8a, 0x23, 0x76, 0x7c, 0xdd, + 0xde, 0x25, 0x38, 0x3a, 0xc0, 0xd1, 0x59, 0xe4, 0x9c, 0x83, 0xf1, 0x2e, 0x3a, 0x4a, 0x8a, 0x94, + 0x8a, 0x5d, 0x74, 0xd4, 0x24, 0xe6, 0xeb, 0x70, 0x79, 0xf4, 0x08, 0x52, 0x94, 0x98, 0x2f, 0x2d, + 0xbb, 0x07, 0xad, 0xf3, 0x0b, 0x8a, 0x0b, 0x62, 0xaa, 0x07, 0x8b, 0x23, 0xba, 0x3f, 0x89, 0x23, + 0xe6, 0xc2, 0x2e, 0xb1, 0x1d, 0x0f, 0x23, 0x71, 0x0a, 0x28, 0x5b, 0x25, 0x97, 0xf0, 0x3c, 0xeb, + 0xa9, 0xd3, 0x27, 0xe6, 0x57, 0x61, 0xd1, 0xc2, 0xdd, 0x40, 0xa4, 0x0a, 0x2e, 0x40, 0xac, 0x35, + 0x58, 0x1a, 0xd5, 0xff, 0x89, 0x9a, 0xfe, 0x0d, 0x0d, 0x16, 0x76, 0x3a, 0x7d, 0xe2, 0x3a, 0xc8, + 0x7b, 0x96, 0x0c, 0xd9, 0x68, 0x96, 0xce, 0x90, 0x17, 0x33, 0xdf, 0x87, 0xfa, 0x30, 0x43, 0x27, + 0xda, 0x26, 0x36, 0x40, 0xee, 0x09, 0x06, 0xf8, 0x9e, 0x06, 0x46, 0x23, 0xf4, 0x5c, 0x6a, 0xf1, + 0x99, 0x71, 0xb6, 0x4c, 0x60, 0x85, 0xb0, 0x1e, 0x92, 0xe9, 0x2c, 0xca, 0x49, 0x38, 0x90, 0x09, + 0x75, 0x05, 0x20, 0x26, 0x50, 0xa9, 0xd3, 0x8a, 0xc2, 0x12, 0x63, 0x09, 0x2a, 0x2e, 0xb1, 0x23, + 0x74, 0x68, 0xef, 0x1f, 0xa8, 0x58, 0xe8, 0x12, 0x0b, 0x1d, 0x3e, 0x38, 0x30, 0x7f, 0xa8, 0xc1, + 0x4c, 0x86, 0xbd, 0xb3, 0x4f, 0xf7, 0x97, 0xa0, 0xe0, 0xe1, 0x3d, 0x2a, 0x33, 0x29, 0xb5, 0x55, + 0x59, 0xbd, 0x2e, 0x3a, 0xe6, 0x1c, 0x73, 0xbc, 0x71, 0x03, 0x8a, 0x91, 0xdb, 0xee, 0x50, 0x99, + 0x41, 0x1a, 0x45, 0x28, 0x08, 0x8c, 0x1b, 0x2c, 0x30, 0xb7, 0xf9, 0xed, 0x8c, 0x48, 0x95, 0x0d, + 0xd0, 0x5a, 0x0a, 0x6d, 0xfe, 0x8a, 0x06, 0xba, 0x85, 0x51, 0x6b, 0xd3, 0x6f, 0xe1, 0xa3, 0xb3, + 0xe8, 0x38, 0x7d, 0x40, 0xce, 0x65, 0x0f, 0xc8, 0xc9, 0x9a, 0x94, 0x7f, 0xc2, 0x9a, 0x64, 0xfe, + 0xa6, 0x06, 0xd3, 0x29, 0x36, 0xce, 0xae, 0xcb, 0x2b, 0x00, 0x11, 0x46, 0x2d, 0x5b, 0x54, 0x6a, + 0xca, 0xb4, 0x57, 0xa4, 0x7a, 0x66, 0x2c, 0x89, 0x12, 0xa9, 0xa1, 0x4a, 0xe8, 0xd8, 0xfd, 0x24, + 0x81, 0xd9, 0x80, 0x99, 0x87, 0x07, 0x8e, 0x73, 0x0f, 0xd3, 0xdb, 0x7d, 0x5e, 0xbb, 0x73, 0x0e, + 0xfb, 0x6f, 0xf3, 0xd7, 0x34, 0x98, 0xcd, 0xf6, 0x7a, 0xde, 0xc7, 0xea, 0xeb, 0x50, 0xe0, 0xd7, + 0xe3, 0x83, 0xf2, 0xb1, 0x51, 0xb9, 0x7c, 0x1c, 0x6d, 0x7e, 0x0d, 0x16, 0x62, 0x3e, 0x64, 0xf1, + 0xc3, 0xf9, 0x5a, 0x9f, 0xcd, 0xdf, 0xfa, 0xf0, 0x10, 0xe7, 0x2d, 0xae, 0x54, 0x71, 0x3e, 0x39, + 0xe2, 0x28, 0x05, 0x14, 0x4e, 0x56, 0xc0, 0x87, 0x15, 0x28, 0xad, 0x27, 0xcb, 0xbe, 0xe4, 0xc6, + 0x6d, 0x71, 0x56, 0x0a, 0x56, 0x59, 0x00, 0x36, 0x5b, 0xc6, 0x9b, 0x09, 0xab, 0x61, 0xe0, 0x74, + 0xe4, 0x2c, 0x9d, 0xc9, 0x4e, 0xa8, 0x3b, 0x0c, 0x15, 0xf3, 0xcb, 0x3e, 0x8c, 0x65, 0x28, 0x84, + 0x18, 0xab, 0x92, 0xfb, 0x09, 0x45, 0xbf, 0x83, 0x71, 0x64, 0x71, 0x0c, 0x3f, 0x52, 0xe2, 0xa8, + 0x2b, 0x8f, 0xe0, 0xfc, 0xb7, 0x71, 0x13, 0xca, 0x61, 0xe4, 0x06, 0x91, 0x4b, 0xfb, 0x7c, 0x4f, + 0x55, 0x5b, 0x9b, 0x49, 0x69, 0xbf, 0xdb, 0x45, 0x7e, 0x6b, 0x27, 0x72, 0xad, 0x98, 0xc8, 0x78, + 0x1b, 0xa6, 0x5c, 0x12, 0x78, 0x28, 0x55, 0x5b, 0x5d, 0x1a, 0xa8, 0xad, 0xde, 0x54, 0x78, 0x59, + 0x5b, 0xed, 0x66, 0xbe, 0x8d, 0x4f, 0x40, 0x8d, 0xa7, 0x5c, 0x5c, 0xcf, 0xb3, 0x1d, 0xe4, 0x74, + 0xb0, 0xac, 0x34, 0x99, 0xf0, 0x03, 0x7a, 0xd7, 0xf5, 0xbc, 0x75, 0x06, 0xe3, 0x96, 0xee, 0xfb, + 0x8e, 0xed, 0x05, 0x6d, 0x51, 0x0b, 0x6a, 0x95, 0xd8, 0xf7, 0x56, 0xd0, 0x36, 0x6e, 0x80, 0x1e, + 0x61, 0x27, 0x88, 0x5a, 0xbc, 0x90, 0xd4, 0x26, 0x14, 0x51, 0x59, 0x0c, 0x5a, 0x13, 0xf0, 0xa6, + 0xdb, 0xc5, 0x0d, 0x8a, 0x68, 0x8a, 0x92, 0x38, 0xc8, 0x17, 0x94, 0xd5, 0x34, 0x25, 0x5b, 0x44, + 0x38, 0xe5, 0x35, 0xa6, 0xf5, 0xd0, 0x73, 0x1d, 0x64, 0xb3, 0xd9, 0x2b, 0x2b, 0x42, 0xab, 0x12, + 0xc6, 0x42, 0x85, 0x71, 0x1d, 0x6a, 0xa2, 0x16, 0x06, 0xb7, 0x6c, 0xb1, 0xa4, 0x4c, 0xf2, 0xb3, + 0xf9, 0xa4, 0x82, 0xf2, 0x42, 0x09, 0xe3, 0xf3, 0xb0, 0xc8, 0x16, 0x3b, 0x7c, 0x84, 0x9d, 0x1e, + 0x57, 0x52, 0xab, 0x17, 0x09, 0x6d, 0x75, 0x55, 0xb1, 0xfa, 0x7c, 0x17, 0x1d, 0xdd, 0x51, 0xf8, + 0x0d, 0x89, 0x7e, 0xc8, 0x0b, 0x34, 0x50, 0x18, 0x7a, 0x2e, 0x56, 0xf1, 0x64, 0x4a, 0xdc, 0x5f, + 0x48, 0xa0, 0x08, 0x29, 0x0b, 0x50, 0xa2, 0x88, 0xec, 0x33, 0xd7, 0xd1, 0x45, 0xcd, 0x11, 0xfb, + 0xdc, 0x6c, 0xf1, 0xc5, 0x85, 0x22, 0x0f, 0x0b, 0x01, 0xa6, 0x45, 0x31, 0x27, 0x87, 0x70, 0xf6, + 0x3f, 0x0d, 0x06, 0x63, 0xb4, 0x17, 0x39, 0xd8, 0x6e, 0x47, 0x41, 0x2f, 0xb4, 0x29, 0x6a, 0xd7, + 0x0d, 0xee, 0xc8, 0xba, 0xc2, 0xdc, 0x63, 0x88, 0x26, 0x6a, 0x1b, 0x9f, 0x83, 0xc9, 0x96, 0x4b, + 0xf6, 0xed, 0xbd, 0x9e, 0xe7, 0xd9, 0x41, 0x48, 0xeb, 0x33, 0xdc, 0xc8, 0xb3, 0xb1, 0x91, 0x37, + 0x5c, 0xb2, 0x7f, 0xb7, 0xe7, 0x79, 0xdb, 0x21, 0xb5, 0xaa, 0xad, 0xe4, 0x83, 0xe9, 0x9c, 0x2d, + 0x62, 0x98, 0x46, 0x7d, 0x3b, 0x12, 0x53, 0xbc, 0x3e, 0x2b, 0x74, 0xee, 0x12, 0x8b, 0x81, 0xd5, + 0xc4, 0x7f, 0x1d, 0xaa, 0x28, 0x74, 0xe3, 0x6b, 0x98, 0xb9, 0x01, 0xf7, 0xbb, 0xb5, 0xb3, 0xa9, + 0xf2, 0x98, 0x80, 0x42, 0x37, 0xa9, 0xde, 0x99, 0x12, 0x59, 0x4f, 0x1a, 0xdb, 0x61, 0x9e, 0xdb, + 0xa1, 0x16, 0x83, 0x85, 0x21, 0xbe, 0x00, 0xe2, 0x0d, 0x95, 0xad, 0xa2, 0xcb, 0x02, 0x9f, 0x19, + 0x73, 0xab, 0xea, 0x65, 0x55, 0x93, 0xfd, 0x55, 0x21, 0x66, 0x82, 0xa6, 0xbe, 0x84, 0xad, 0x39, + 0x97, 0xb6, 0x50, 0x4c, 0xbd, 0xce, 0xa3, 0xc0, 0xa4, 0x84, 0x36, 0x38, 0x90, 0xa9, 0x9c, 0xbf, + 0xac, 0x10, 0x24, 0x8b, 0x22, 0xfa, 0xd3, 0x23, 0x5f, 0xa2, 0x57, 0x61, 0x66, 0x40, 0xe5, 0x3e, + 0xea, 0xe2, 0xfa, 0x12, 0xef, 0x6a, 0x3a, 0xa3, 0xf3, 0x47, 0xa8, 0x8b, 0x8d, 0x15, 0x98, 0xde, + 0xed, 0x91, 0xbe, 0x4d, 0x3b, 0x11, 0x26, 0x9d, 0xc0, 0x6b, 0x31, 0x97, 0xb9, 0xc4, 0xf7, 0x3f, + 0x53, 0x0c, 0xd1, 0x54, 0xf0, 0x87, 0xc4, 0xb8, 0x0a, 0x55, 0xb6, 0x89, 0x08, 0x99, 0x80, 0x6e, + 0xab, 0xbe, 0x2c, 0x9e, 0xfb, 0x28, 0xd0, 0x66, 0xeb, 0x9d, 0x42, 0xb9, 0xa0, 0x17, 0x99, 0x07, + 0xa3, 0x96, 0xfd, 0x41, 0x2f, 0x88, 0x7a, 0x5d, 0xf3, 0xbb, 0x79, 0x28, 0xab, 0x75, 0x67, 0xa8, + 0xc4, 0x50, 0x1b, 0x2e, 0x31, 0xbc, 0x06, 0x13, 0xbc, 0xfe, 0x29, 0x9b, 0xe1, 0xae, 0x32, 0x98, + 0xb2, 0xc6, 0x70, 0x3c, 0x4c, 0xd7, 0x67, 0x15, 0xb2, 0xf5, 0x59, 0xe9, 0x87, 0x28, 0xc5, 0xec, + 0x43, 0x94, 0x1b, 0xb2, 0xd4, 0x8a, 0x97, 0x37, 0x8b, 0x40, 0x54, 0x8d, 0x3d, 0x61, 0x3b, 0x14, + 0x45, 0x56, 0xcd, 0x7e, 0x88, 0x8d, 0x4f, 0x81, 0xc1, 0x29, 0xb3, 0x95, 0xa5, 0x25, 0xde, 0xdd, + 0x14, 0xc3, 0xa4, 0x1e, 0x3e, 0x8c, 0x7c, 0x97, 0x52, 0x1e, 0xf9, 0x2e, 0x65, 0xa8, 0x72, 0xbc, + 0x32, 0x5c, 0x39, 0x3e, 0xf0, 0x76, 0x05, 0x86, 0xdf, 0xae, 0x7c, 0x01, 0x96, 0xe2, 0xe9, 0x4e, + 0x03, 0xdb, 0x43, 0x84, 0x2a, 0x26, 0xbb, 0xaa, 0x18, 0x7d, 0x5e, 0x51, 0x34, 0x83, 0x2d, 0x44, + 0xa8, 0xe0, 0xf5, 0x21, 0x31, 0xbf, 0x53, 0x80, 0xb2, 0xba, 0xcc, 0x4a, 0x6d, 0x1c, 0xb4, 0x27, + 0x6c, 0x1c, 0x8c, 0xcb, 0x6c, 0x35, 0xa1, 0x51, 0x1f, 0xed, 0x7a, 0x58, 0x2e, 0x56, 0x09, 0x80, + 0x2d, 0x63, 0x68, 0x37, 0x88, 0xa8, 0xcc, 0x51, 0x89, 0x0f, 0x63, 0x0d, 0xca, 0xaa, 0x9a, 0x7b, + 0xe8, 0x96, 0xf6, 0xbd, 0xc8, 0xa5, 0x58, 0x95, 0x73, 0x5b, 0x31, 0x1d, 0x9b, 0x4f, 0xc8, 0x63, + 0xee, 0xd4, 0x97, 0x45, 0x88, 0x45, 0x39, 0x9f, 0xe2, 0x09, 0x2b, 0xb0, 0xbc, 0x0e, 0xd1, 0x9a, + 0x40, 0xa9, 0x2f, 0xe3, 0x15, 0x28, 0xab, 0xf7, 0x8d, 0x43, 0x85, 0x74, 0x1b, 0x12, 0x61, 0xc5, + 0x24, 0xc6, 0x06, 0x4c, 0xc7, 0x86, 0xb0, 0xf1, 0x51, 0xe8, 0x46, 0xb8, 0x25, 0x4b, 0xe9, 0xea, + 0x99, 0xe5, 0x89, 0x99, 0xe5, 0x8e, 0xc0, 0x5b, 0x53, 0x4e, 0x16, 0xc0, 0x62, 0x18, 0x73, 0xb7, + 0x24, 0xbf, 0x5f, 0xe6, 0x3d, 0xcc, 0xa6, 0xaf, 0x71, 0x1f, 0xc9, 0x5c, 0xbf, 0x55, 0xa5, 0xc9, + 0x87, 0x71, 0x1f, 0x66, 0x92, 0xf1, 0x69, 0xc0, 0x0c, 0x19, 0xb5, 0xc5, 0x9b, 0x84, 0xea, 0xda, + 0xe2, 0x10, 0x07, 0xcd, 0x20, 0xd8, 0x62, 0x04, 0x96, 0xee, 0x0c, 0x40, 0x8c, 0x75, 0xd0, 0x93, + 0xa7, 0x48, 0x7b, 0xc8, 0xf5, 0x70, 0x8b, 0xaf, 0x55, 0x69, 0x41, 0xe2, 0xb7, 0x48, 0x77, 0x39, + 0xde, 0x4a, 0x1e, 0x2f, 0x09, 0x80, 0xf9, 0x37, 0x39, 0x98, 0xcc, 0x58, 0x25, 0xb3, 0x0f, 0xd2, + 0xb2, 0xbb, 0xe0, 0xab, 0x50, 0x4d, 0x17, 0xea, 0xcb, 0x72, 0x04, 0x27, 0x29, 0xcf, 0x1f, 0x9e, + 0xb2, 0x75, 0x28, 0xc9, 0x69, 0x2f, 0x6f, 0xa3, 0xd4, 0x27, 0x5b, 0x34, 0xe2, 0xce, 0x92, 0xa9, + 0x21, 0xe6, 0xae, 0xae, 0x30, 0xf1, 0xfc, 0x78, 0x03, 0xc6, 0x23, 0x8c, 0x48, 0xe0, 0xcb, 0x19, + 0x7c, 0x65, 0xb4, 0x4f, 0xad, 0x5a, 0x9c, 0xc8, 0x92, 0xc4, 0xe6, 0x21, 0x8c, 0x0b, 0x88, 0x51, + 0x85, 0xd2, 0xbb, 0xfe, 0xbe, 0x1f, 0x1c, 0xfa, 0xfa, 0x98, 0x51, 0x03, 0xd8, 0x0e, 0xa9, 0xac, + 0x38, 0xd5, 0x35, 0x63, 0x16, 0xf4, 0x74, 0x51, 0x38, 0xf3, 0x70, 0x3d, 0x67, 0x18, 0x50, 0x6b, + 0x60, 0x6f, 0xcf, 0x0a, 0x3c, 0x0f, 0xb7, 0x6e, 0x23, 0x67, 0x5f, 0xcf, 0x1b, 0x93, 0x50, 0xb1, + 0x1c, 0x51, 0x9a, 0x4a, 0xf4, 0x82, 0xb1, 0x00, 0x33, 0x5b, 0xe8, 0xeb, 0xfd, 0x77, 0x7d, 0xf7, + 0x83, 0x1e, 0xf6, 0x31, 0x21, 0x1c, 0xa5, 0x17, 0xcd, 0x65, 0x98, 0x48, 0xfb, 0xac, 0xd2, 0x8c, + 0x96, 0xec, 0x9f, 0x7f, 0x57, 0x83, 0xb2, 0xf2, 0xcf, 0x74, 0xb5, 0xaf, 0x96, 0xa9, 0xf6, 0x55, + 0x21, 0x2f, 0xd9, 0x7c, 0x73, 0x42, 0x76, 0xe2, 0x5b, 0x81, 0x69, 0xe5, 0xd5, 0x0c, 0x6d, 0x77, + 0x10, 0xe9, 0xc8, 0x82, 0x83, 0x29, 0x85, 0x78, 0x80, 0xfb, 0xf7, 0x11, 0xe9, 0x18, 0x6f, 0x00, + 0xf0, 0xe7, 0x31, 0x4e, 0x07, 0xb9, 0xbe, 0x3c, 0x48, 0xcd, 0xaf, 0xc6, 0xef, 0x82, 0xdf, 0x43, + 0x2e, 0xbd, 0x1b, 0x44, 0x77, 0x7c, 0xb6, 0x84, 0x56, 0x18, 0xe5, 0x3a, 0x23, 0x34, 0xbf, 0xa5, + 0xc1, 0xd4, 0xc0, 0x5c, 0x38, 0xc9, 0x3f, 0x56, 0x61, 0x06, 0x51, 0x8a, 0xbb, 0x21, 0x5b, 0x3f, + 0x13, 0x9b, 0x0a, 0x3f, 0x99, 0x8e, 0x51, 0xb1, 0x51, 0x87, 0xdd, 0x65, 0x28, 0x54, 0x16, 0x86, + 0x42, 0xa5, 0xb9, 0x09, 0xd5, 0xd4, 0xec, 0x7a, 0x82, 0xbf, 0x9e, 0x58, 0x64, 0x6d, 0xde, 0x04, + 0x7d, 0x70, 0xa2, 0x65, 0xef, 0x42, 0xb5, 0x81, 0xbb, 0xd0, 0xbf, 0xd4, 0x60, 0x6a, 0x60, 0x4e, + 0x9d, 0xc4, 0xc0, 0xf0, 0xad, 0xc5, 0x67, 0xa0, 0x12, 0x4f, 0x41, 0x2e, 0x78, 0x6d, 0xcd, 0x18, + 0x9e, 0xad, 0x56, 0x42, 0xc4, 0xcc, 0xcc, 0x63, 0xa2, 0xeb, 0xb7, 0x07, 0x2b, 0xbe, 0xa7, 0x14, + 0x42, 0xd5, 0x7c, 0x7f, 0x1a, 0x8c, 0x98, 0x76, 0x68, 0x4e, 0x29, 0x4c, 0xac, 0xc8, 0xbf, 0xd2, + 0x00, 0xd8, 0x7e, 0x56, 0x94, 0x68, 0x18, 0x9f, 0x84, 0x69, 0xee, 0x23, 0x87, 0xc8, 0xf3, 0xc4, + 0xf6, 0xb7, 0xab, 0x04, 0xaa, 0x31, 0xc4, 0x7b, 0xc8, 0xf3, 0x18, 0xf9, 0x43, 0x62, 0xdc, 0x84, + 0xd9, 0x30, 0x0a, 0x1c, 0x4c, 0x48, 0x96, 0x5a, 0x5a, 0x5a, 0xe2, 0x52, 0x0d, 0x56, 0x61, 0x76, + 0xff, 0x80, 0xef, 0x1e, 0xb3, 0x0d, 0x84, 0xbb, 0xea, 0xfb, 0x07, 0x6c, 0x1f, 0x99, 0xa2, 0x5f, + 0x83, 0x79, 0x1a, 0x50, 0xe4, 0xd9, 0x51, 0xe8, 0xa4, 0x5a, 0xf8, 0x4a, 0x72, 0x83, 0x63, 0xad, + 0xd0, 0x51, 0x6d, 0x1e, 0x11, 0xf3, 0x9b, 0x39, 0x98, 0x48, 0xc4, 0x79, 0xbc, 0x36, 0x42, 0x20, + 0x7f, 0xa4, 0x40, 0x8f, 0x8e, 0x11, 0xc8, 0x3f, 0x4e, 0xa0, 0x47, 0xc4, 0x78, 0x0b, 0x2e, 0xab, + 0x06, 0xa4, 0x47, 0x42, 0xec, 0xb7, 0xb2, 0x0d, 0x85, 0x60, 0x75, 0x49, 0xd3, 0x10, 0x24, 0xa9, + 0xf6, 0x23, 0x15, 0x12, 0x8b, 0x37, 0xa0, 0x90, 0x47, 0x27, 0x29, 0xa4, 0x78, 0xac, 0x42, 0xbe, + 0x02, 0x65, 0x76, 0x08, 0xe1, 0x5b, 0xb2, 0x59, 0x28, 0x72, 0x0a, 0x2e, 0x7f, 0xde, 0x12, 0x1f, + 0x6c, 0x7d, 0x97, 0x1c, 0xe2, 0x16, 0x97, 0x35, 0x6f, 0x25, 0x80, 0x38, 0x01, 0xb1, 0xdb, 0xa7, + 0x58, 0x48, 0x94, 0x17, 0x09, 0x88, 0xdb, 0x0c, 0x60, 0xfe, 0x7f, 0x0d, 0x80, 0xf5, 0x2f, 0xdd, + 0xe7, 0x65, 0x28, 0xf2, 0x07, 0x9a, 0x43, 0xbb, 0x0a, 0xc5, 0x83, 0x25, 0xf0, 0xec, 0x54, 0x1b, + 0x3f, 0x3c, 0x19, 0x49, 0xc7, 0xd1, 0x8c, 0xac, 0x85, 0x28, 0x1a, 0x3a, 0xfd, 0x27, 0x64, 0x0c, + 0x6d, 0xfe, 0x6b, 0x51, 0x3c, 0x3d, 0x8f, 0xad, 0xfe, 0x0a, 0x18, 0xb1, 0x08, 0x6a, 0x7b, 0xa9, + 0xcc, 0x3e, 0x1d, 0x63, 0xe4, 0x26, 0x93, 0x18, 0x6f, 0xc2, 0xc2, 0x30, 0x79, 0xfa, 0x41, 0xf3, + 0xdc, 0x50, 0x1b, 0xbe, 0xab, 0xbc, 0x0e, 0x35, 0x61, 0x90, 0x78, 0x08, 0x59, 0x06, 0xcc, 0xa1, + 0x71, 0xf7, 0x5f, 0x86, 0xcb, 0x11, 0x3b, 0x32, 0xb4, 0x76, 0xed, 0x16, 0xbf, 0x78, 0xb1, 0xc9, + 0xbe, 0x1b, 0x86, 0x3c, 0x3e, 0xf6, 0x7c, 0x2a, 0xfd, 0x64, 0x51, 0xd2, 0x88, 0xbb, 0x99, 0x86, + 0xa0, 0x58, 0x67, 0x04, 0xec, 0xcc, 0xa7, 0x3a, 0x60, 0x41, 0x3e, 0xdb, 0x5a, 0x78, 0xcb, 0xbc, + 0x24, 0x78, 0x80, 0xfb, 0x99, 0xa6, 0x6f, 0xc3, 0x15, 0xd5, 0x74, 0x97, 0xaf, 0x12, 0xfc, 0x48, + 0x6c, 0x77, 0xd8, 0x3a, 0xc0, 0x9b, 0x17, 0x33, 0x83, 0xdf, 0x66, 0x34, 0xfc, 0x84, 0x7c, 0xdf, + 0xa5, 0xa2, 0x87, 0xcf, 0x42, 0x3d, 0xdb, 0x03, 0xf7, 0x07, 0xd1, 0x58, 0x94, 0x89, 0xcc, 0xa5, + 0x1b, 0x33, 0x9f, 0x15, 0x0d, 0xdf, 0x80, 0x85, 0x11, 0x0d, 0x99, 0x23, 0xc9, 0xed, 0xf4, 0xec, + 0x60, 0x3b, 0xe6, 0x53, 0xc7, 0x8c, 0xe7, 0x23, 0x3f, 0x50, 0x9b, 0xe6, 0xa1, 0xf1, 0x1e, 0x31, + 0x24, 0x0b, 0x7c, 0x6d, 0x4c, 0x6d, 0xe2, 0xa3, 0x90, 0x74, 0x02, 0x2a, 0x9b, 0x88, 0xd7, 0xe4, + 0x7a, 0x1b, 0xd3, 0x86, 0x44, 0x08, 0x6a, 0xa6, 0x98, 0x38, 0xb3, 0x66, 0x87, 0x51, 0x10, 0x06, + 0x04, 0xdb, 0x3c, 0x56, 0x88, 0x86, 0x55, 0xa9, 0x18, 0x95, 0x6c, 0xdb, 0x11, 0x24, 0x6c, 0x99, + 0x1c, 0xd5, 0x03, 0xdb, 0xad, 0xb8, 0x51, 0x37, 0xdd, 0xc3, 0xc4, 0x40, 0x0f, 0xeb, 0x82, 0x64, + 0xb8, 0x87, 0x30, 0x08, 0x3c, 0x9b, 0x38, 0x1d, 0xdc, 0xea, 0x79, 0x19, 0x1e, 0x26, 0x93, 0x1e, + 0x76, 0x82, 0xc0, 0x6b, 0x48, 0x92, 0xb8, 0x07, 0xf3, 0x57, 0x35, 0xa8, 0xa6, 0x0a, 0xee, 0xd8, + 0x99, 0x97, 0xc7, 0x04, 0x51, 0x9f, 0x27, 0xa7, 0x61, 0x72, 0xe6, 0x4d, 0x42, 0xa3, 0x05, 0x34, + 0x89, 0xfa, 0xaf, 0x43, 0x95, 0x27, 0x30, 0x64, 0xab, 0xdc, 0x40, 0xab, 0x64, 0x6a, 0x59, 0x40, + 0xe2, 0xdf, 0xa2, 0x22, 0x58, 0x9c, 0x03, 0xcd, 0x7f, 0xd3, 0x60, 0x32, 0x53, 0xf8, 0x77, 0x46, + 0x4e, 0xbe, 0x08, 0xb5, 0x14, 0x27, 0xf6, 0xc1, 0x9a, 0x64, 0x66, 0x6e, 0x04, 0x33, 0x8f, 0xd7, + 0xac, 0x09, 0x92, 0x9e, 0xf5, 0x9f, 0x85, 0x09, 0x1e, 0x5d, 0xd4, 0x98, 0xf9, 0x81, 0xfd, 0x38, + 0xdf, 0x25, 0xca, 0x41, 0xab, 0x87, 0xc9, 0x07, 0x1b, 0x35, 0xc5, 0x6b, 0x52, 0x5a, 0x3a, 0x37, + 0x82, 0x5d, 0x36, 0x2a, 0x4d, 0x7d, 0x99, 0x1f, 0x96, 0xa0, 0x9a, 0xea, 0xd9, 0x78, 0x0d, 0xe6, + 0x09, 0x0d, 0x22, 0x6c, 0xef, 0x22, 0xea, 0x74, 0xd2, 0xd6, 0x14, 0xf1, 0x67, 0x86, 0x63, 0xf9, + 0x5d, 0x62, 0xe2, 0x09, 0x6f, 0xf0, 0x08, 0xc4, 0x5d, 0x90, 0x88, 0x75, 0x24, 0x6e, 0x25, 0x42, + 0xca, 0xac, 0x44, 0x37, 0xf8, 0x12, 0xa2, 0x9a, 0xad, 0xc0, 0x74, 0xc8, 0xa2, 0x0c, 0x7f, 0x14, + 0xdd, 0x96, 0x0d, 0xe4, 0xf6, 0x4f, 0x22, 0xb6, 0x82, 0xb6, 0xa0, 0x5d, 0x87, 0xab, 0x11, 0xda, + 0xa3, 0x76, 0x6b, 0xd7, 0x16, 0x5a, 0xf2, 0x30, 0x6a, 0xe1, 0x28, 0x3d, 0x94, 0x08, 0x25, 0x4b, + 0x8c, 0x6c, 0x63, 0x97, 0xcb, 0xb4, 0xc5, 0x69, 0x92, 0x01, 0xd7, 0x60, 0x5e, 0x75, 0xa2, 0xd2, + 0x67, 0xb2, 0xad, 0x5c, 0x82, 0x44, 0xdb, 0x86, 0x48, 0xa5, 0x89, 0x36, 0x6f, 0xc1, 0xe5, 0xec, + 0xc0, 0x5d, 0xdc, 0xa5, 0xec, 0xf0, 0x28, 0x5b, 0x8a, 0x20, 0x52, 0x4f, 0x8d, 0xfa, 0x50, 0x12, + 0x88, 0xf6, 0x37, 0x40, 0x9e, 0x7b, 0x52, 0xa3, 0x89, 0x00, 0x22, 0x53, 0x32, 0xf1, 0x48, 0xaf, + 0xc1, 0x3c, 0x0a, 0x43, 0xaf, 0x3f, 0xac, 0x7a, 0x11, 0xc6, 0x67, 0x38, 0x76, 0x40, 0xf5, 0x2f, + 0xc1, 0x94, 0x68, 0x94, 0xf4, 0x5e, 0x91, 0x6f, 0x18, 0x19, 0x78, 0xb8, 0xf3, 0x6e, 0x8f, 0xe2, + 0x23, 0xf1, 0xe0, 0x31, 0x1d, 0x62, 0x44, 0xe7, 0x0f, 0x19, 0x92, 0x9d, 0xa1, 0xe3, 0x19, 0x2e, + 0x1a, 0x1d, 0xa7, 0x72, 0x19, 0x65, 0x38, 0xd1, 0x48, 0x8d, 0xbf, 0x0a, 0x73, 0xe9, 0x1e, 0x0e, + 0x91, 0x97, 0x89, 0x2e, 0x46, 0xd2, 0xf2, 0x3d, 0xe4, 0x89, 0x26, 0x5f, 0x84, 0xa5, 0x74, 0x93, + 0x01, 0x75, 0x8b, 0x98, 0xb2, 0x90, 0xb4, 0x1b, 0xd2, 0xb6, 0x37, 0xa8, 0x3d, 0x91, 0x56, 0xac, + 0x79, 0x59, 0xc5, 0xbd, 0x08, 0x93, 0x6a, 0xfb, 0x23, 0xc8, 0x64, 0x3a, 0x51, 0x02, 0x05, 0x11, + 0x5b, 0x22, 0x3b, 0x51, 0x40, 0x69, 0x3c, 0xbe, 0x2e, 0x97, 0x48, 0x09, 0x15, 0x64, 0xff, 0x03, + 0x2e, 0x0d, 0x3e, 0x10, 0x4c, 0x33, 0x30, 0x2d, 0x77, 0x52, 0x83, 0x4f, 0xdc, 0x55, 0x18, 0x7c, + 0x1f, 0xc6, 0xc5, 0x05, 0x7a, 0x52, 0xc7, 0xab, 0x3d, 0xa1, 0x92, 0xf9, 0x94, 0x75, 0x66, 0xe6, + 0x87, 0x1a, 0x94, 0xd5, 0x13, 0x20, 0xe3, 0x12, 0xe4, 0x82, 0x50, 0x3e, 0x8f, 0xcf, 0xe4, 0x8f, + 0x72, 0x41, 0x78, 0xea, 0xca, 0xb5, 0xcc, 0xf6, 0xbf, 0x70, 0x8a, 0xed, 0xbf, 0xf9, 0xd3, 0x1c, + 0x54, 0x1e, 0x1e, 0x38, 0x0e, 0x37, 0x97, 0x71, 0x35, 0xf3, 0x4a, 0x3f, 0xc3, 0x86, 0x78, 0x8b, + 0x7f, 0xc2, 0x1d, 0xd6, 0xa5, 0xa1, 0x17, 0xe9, 0xa9, 0x97, 0x6d, 0x57, 0xa1, 0x4a, 0x3a, 0x41, + 0x44, 0xed, 0xd4, 0x9b, 0x74, 0x0b, 0x38, 0x88, 0xff, 0xff, 0x03, 0xb6, 0x4f, 0xea, 0x20, 0x62, + 0x07, 0x07, 0x38, 0xf2, 0x10, 0xdf, 0x82, 0xa8, 0x17, 0xa2, 0xb2, 0xba, 0x6c, 0xae, 0x83, 0xc8, + 0x76, 0x8c, 0x55, 0xcf, 0x34, 0x8c, 0x65, 0x98, 0x60, 0xed, 0xda, 0x8e, 0xbd, 0xc7, 0xff, 0x13, + 0x80, 0xa8, 0xae, 0x80, 0x0e, 0x22, 0xf7, 0x9c, 0xbb, 0xfc, 0x5f, 0x01, 0x2c, 0x42, 0x39, 0xc6, + 0x8a, 0xb9, 0x5d, 0x6a, 0x4b, 0xd4, 0x27, 0xa0, 0xc6, 0xf3, 0x5c, 0x4e, 0x07, 0xf9, 0x6d, 0x9e, + 0x8c, 0x13, 0x93, 0x79, 0x82, 0x41, 0xd7, 0x39, 0x90, 0xe7, 0x06, 0x16, 0xe2, 0x8d, 0x9b, 0xca, + 0x8c, 0x89, 0x16, 0x72, 0x36, 0xcf, 0x2a, 0xb4, 0x48, 0x8b, 0x89, 0x86, 0xe6, 0x97, 0x84, 0x62, + 0x85, 0x78, 0x27, 0x1c, 0xe2, 0x46, 0xfe, 0x7b, 0x03, 0xf3, 0x7b, 0x79, 0x28, 0xb3, 0xe6, 0x3c, + 0x9b, 0xf9, 0x2c, 0x66, 0x49, 0x65, 0x48, 0xf2, 0xd9, 0x0c, 0xc9, 0x13, 0x6d, 0x32, 0x5c, 0xf7, + 0x78, 0x9a, 0x7f, 0xa7, 0x91, 0x4e, 0x95, 0x96, 0x06, 0x53, 0xa5, 0xa7, 0xcd, 0x69, 0x0e, 0xe4, + 0x2b, 0x2b, 0xc3, 0xf9, 0xca, 0xab, 0x50, 0x8d, 0x1f, 0x18, 0x53, 0x91, 0xd1, 0x2c, 0x58, 0xa0, + 0x40, 0x4d, 0x32, 0xc2, 0xb8, 0xd5, 0xa7, 0x33, 0xee, 0xc4, 0x09, 0xc6, 0xfd, 0x86, 0x26, 0xcc, + 0xc3, 0x0f, 0x3f, 0xea, 0xc4, 0xa1, 0x8d, 0xb8, 0x47, 0xe3, 0xf7, 0xfc, 0xe2, 0xc4, 0xb1, 0x02, + 0xe3, 0x3c, 0x6a, 0xaa, 0x0b, 0x7d, 0x23, 0x43, 0xc8, 0x27, 0xa0, 0x25, 0x29, 0x18, 0xad, 0xfc, + 0x1f, 0x0d, 0xf9, 0x11, 0xb4, 0xdc, 0x3c, 0xea, 0xff, 0x36, 0x98, 0xaf, 0x41, 0x49, 0xbe, 0xea, + 0xe0, 0x16, 0x3b, 0xf2, 0xa5, 0x87, 0xb1, 0x9f, 0xc6, 0x3c, 0x8c, 0x13, 0xfe, 0xc2, 0x59, 0xfa, + 0x85, 0xfc, 0x32, 0xdf, 0xe6, 0x19, 0x5b, 0x7e, 0xb5, 0x9c, 0xad, 0x66, 0xd0, 0x8e, 0xaf, 0xe5, + 0xc9, 0x65, 0x6a, 0x79, 0xfe, 0x5c, 0x03, 0x10, 0x2b, 0x0a, 0x1f, 0xfa, 0xc4, 0x9b, 0xc1, 0x05, + 0x28, 0x85, 0x18, 0x47, 0x0c, 0x25, 0xd9, 0x60, 0x9f, 0x9b, 0xad, 0xf8, 0x62, 0x2f, 0x9f, 0xba, + 0xd8, 0x1b, 0xbc, 0x46, 0x2c, 0x9c, 0xf2, 0x1a, 0xf1, 0x55, 0x79, 0x9e, 0x64, 0x12, 0x62, 0x99, + 0xe2, 0x4d, 0xf4, 0xc6, 0x36, 0xf3, 0x0d, 0x86, 0x11, 0x67, 0x4c, 0xfe, 0xd3, 0xdc, 0x84, 0x4a, + 0x0c, 0x1f, 0xbe, 0xc3, 0xd2, 0x46, 0xdf, 0x61, 0xf1, 0xc7, 0x22, 0x34, 0x51, 0x28, 0xda, 0xc3, + 0x4d, 0x62, 0x36, 0xc0, 0x10, 0xc5, 0x37, 0x5c, 0x25, 0xea, 0xa2, 0xe8, 0x95, 0xa4, 0xbc, 0x40, + 0x3c, 0xfe, 0x4c, 0xb6, 0xa9, 0x89, 0xee, 0xe2, 0x1a, 0x03, 0xa3, 0x06, 0xb9, 0xb8, 0xe3, 0x1c, + 0x25, 0xe6, 0x97, 0x61, 0x26, 0xd3, 0xa9, 0xbc, 0x13, 0xae, 0x67, 0x7b, 0x2d, 0x1c, 0xdf, 0xc1, + 0x06, 0x18, 0x0d, 0xb6, 0x27, 0x6c, 0x30, 0x26, 0x1b, 0x8a, 0xab, 0x55, 0xa8, 0xb0, 0xc3, 0x1e, + 0xaf, 0x28, 0x18, 0xb5, 0x9a, 0x89, 0x8a, 0x83, 0xf2, 0xbe, 0xfc, 0x65, 0xae, 0xc2, 0x4c, 0xa6, + 0x17, 0xc9, 0x46, 0x4a, 0x17, 0x5a, 0x46, 0x17, 0x0e, 0xaf, 0xd2, 0xbb, 0x87, 0x99, 0x03, 0x35, + 0x9b, 0x5b, 0x17, 0x53, 0x71, 0xff, 0x4d, 0x8d, 0x57, 0xce, 0xa5, 0x46, 0xb9, 0x80, 0x1b, 0xf3, + 0xe4, 0xa9, 0x3e, 0x8f, 0x7f, 0x27, 0xd6, 0xdc, 0xff, 0x4c, 0x14, 0xa7, 0xaf, 0xdf, 0x6a, 0x5c, + 0x64, 0x71, 0xfa, 0xa7, 0xc1, 0x08, 0x23, 0x7c, 0xe0, 0x06, 0x3d, 0x92, 0xfa, 0xaf, 0x0a, 0x82, + 0x17, 0x5d, 0x61, 0xe2, 0xff, 0xa9, 0x70, 0x1d, 0x6a, 0x31, 0xb5, 0xe8, 0x4c, 0x3c, 0xca, 0x9b, + 0x54, 0xd0, 0xc7, 0xa9, 0x8a, 0xf7, 0xf1, 0xc1, 0x8a, 0xf7, 0x52, 0x2c, 0xb9, 0xf9, 0x91, 0xa8, + 0xd0, 0xe5, 0xc2, 0x9d, 0xb7, 0x9e, 0xeb, 0x50, 0x22, 0x3d, 0xc7, 0xc1, 0xb2, 0xd6, 0xa4, 0x6c, + 0xa9, 0xcf, 0x0b, 0x11, 0xd6, 0xdc, 0x80, 0xf9, 0x7b, 0x98, 0xaa, 0x5d, 0x1e, 0x9f, 0x80, 0x4f, + 0x6f, 0x2f, 0xf3, 0xdb, 0x1a, 0x2c, 0x0c, 0x75, 0x73, 0xde, 0x9a, 0xf9, 0x0c, 0x0b, 0xbe, 0x94, + 0x2f, 0x81, 0xf9, 0x13, 0x93, 0xea, 0x8a, 0xcc, 0xbc, 0x07, 0x8b, 0x29, 0xae, 0xee, 0xbb, 0xec, + 0x44, 0x78, 0x96, 0x8a, 0x1c, 0xf3, 0x3b, 0x1a, 0x2c, 0x8d, 0xea, 0xe9, 0x17, 0x2f, 0xe2, 0x5f, + 0x88, 0x9a, 0xe7, 0xf5, 0x40, 0x9e, 0x06, 0x82, 0xe8, 0x8c, 0x05, 0xac, 0x4e, 0x10, 0x46, 0xe2, + 0x5e, 0x5b, 0x70, 0x54, 0x66, 0x00, 0x7e, 0x9d, 0xcd, 0xcf, 0x85, 0x61, 0xa4, 0x92, 0x6f, 0x76, + 0x84, 0x3f, 0x90, 0x91, 0xa7, 0xc6, 0xe0, 0xc9, 0xab, 0xab, 0x54, 0xe5, 0x56, 0xe1, 0x49, 0xd5, + 0xc4, 0x86, 0xcc, 0x38, 0x0a, 0xa7, 0x14, 0xe9, 0xc5, 0x1e, 0xaf, 0x99, 0xce, 0x88, 0x72, 0xde, + 0x0a, 0x36, 0x52, 0x89, 0x4e, 0x35, 0xec, 0xf7, 0xc5, 0x5b, 0x12, 0xbe, 0xb6, 0x90, 0x5e, 0xf7, + 0x2c, 0xfa, 0xfb, 0x1c, 0x54, 0x90, 0xd7, 0x0e, 0x22, 0x97, 0x76, 0xba, 0x7c, 0xc0, 0xda, 0xda, + 0x52, 0x42, 0x2d, 0x3b, 0xbe, 0xa5, 0x28, 0xac, 0x84, 0xf8, 0x69, 0x8a, 0xdd, 0xfe, 0x48, 0xd4, + 0x7b, 0x27, 0x7c, 0x9e, 0xb7, 0x72, 0x96, 0xa0, 0xec, 0xc8, 0xce, 0xe3, 0x33, 0x8b, 0xfc, 0x66, + 0x1e, 0x22, 0x52, 0xb0, 0xfb, 0x07, 0xf1, 0xbf, 0xea, 0xe0, 0x80, 0x07, 0x07, 0x7c, 0xfb, 0x29, + 0x90, 0x22, 0x7b, 0x2d, 0xf6, 0xc8, 0xc0, 0x41, 0x22, 0x7d, 0xfd, 0x83, 0x3c, 0x4c, 0xac, 0x07, + 0xdd, 0x10, 0x39, 0x54, 0x30, 0xf0, 0x3e, 0xcc, 0xe1, 0x28, 0xb2, 0x5d, 0xff, 0x00, 0x79, 0x6e, + 0xcb, 0xce, 0xee, 0xb8, 0xaa, 0x6b, 0x9f, 0x48, 0xdf, 0xcd, 0xc6, 0xad, 0x36, 0x05, 0x75, 0x43, + 0xee, 0xc6, 0xee, 0x8f, 0x59, 0x06, 0x8e, 0x06, 0xa1, 0x86, 0x07, 0x97, 0x59, 0xd7, 0xa1, 0xac, + 0x2f, 0xb5, 0xe5, 0x99, 0x3c, 0x0e, 0x98, 0x22, 0xd1, 0xb5, 0x32, 0x72, 0x04, 0x55, 0x94, 0xda, + 0xe4, 0xe7, 0x74, 0x19, 0x4a, 0xef, 0x8f, 0x59, 0x75, 0x1c, 0x8d, 0xc6, 0x19, 0x36, 0x2c, 0xb0, + 0xd1, 0x1c, 0xd1, 0x89, 0xed, 0xfa, 0x76, 0x18, 0x05, 0xed, 0x08, 0x13, 0x22, 0xd3, 0x62, 0x2f, + 0x8d, 0x1c, 0x48, 0xfe, 0xde, 0xf4, 0x77, 0x24, 0xf5, 0xfd, 0x31, 0x6b, 0x16, 0x47, 0xc3, 0x70, + 0x63, 0x0f, 0x96, 0xd8, 0x00, 0x34, 0x08, 0xec, 0x2e, 0xf2, 0xfb, 0x76, 0x88, 0xfd, 0x96, 0xeb, + 0xb7, 0x6d, 0x8a, 0xc8, 0x3e, 0x91, 0xdb, 0xc1, 0x1b, 0x23, 0xc7, 0x68, 0x06, 0xc1, 0x43, 0xe4, + 0xf7, 0x77, 0x44, 0x83, 0x26, 0xa3, 0xbf, 0x3f, 0x66, 0xcd, 0xe3, 0x68, 0x14, 0xe6, 0x76, 0x49, + 0xba, 0x84, 0x79, 0x05, 0x2e, 0x9d, 0xa0, 0x74, 0xf3, 0x45, 0xb8, 0xf6, 0x44, 0x8d, 0x99, 0x57, + 0xe1, 0xca, 0x89, 0xd2, 0x9a, 0xd7, 0xe0, 0xea, 0x13, 0x58, 0x65, 0x3b, 0x88, 0x9a, 0xa4, 0x51, + 0x53, 0xf2, 0xc4, 0xbd, 0xf9, 0x0a, 0x4c, 0x0f, 0xd8, 0xdc, 0x55, 0xf7, 0x2c, 0x53, 0x61, 0x9a, + 0xcb, 0xcd, 0x16, 0x4f, 0xbe, 0x04, 0xed, 0x2c, 0xa9, 0xb8, 0x73, 0xa9, 0x49, 0xb8, 0xa2, 0x1c, + 0x28, 0x6e, 0x2a, 0x9d, 0xae, 0xb8, 0x69, 0xa0, 0xaa, 0xa7, 0x3c, 0x58, 0xd5, 0x63, 0xfe, 0x99, + 0xb8, 0xec, 0x15, 0xc2, 0xc9, 0x79, 0xfc, 0xa9, 0x6c, 0x4a, 0x65, 0x6e, 0xa4, 0x51, 0xd5, 0x5c, + 0x7d, 0x11, 0x26, 0xd9, 0x51, 0x3f, 0xc2, 0x5d, 0xe4, 0xfa, 0xae, 0xdf, 0x96, 0x05, 0xeb, 0xec, + 0xfc, 0x6f, 0x29, 0x98, 0xb1, 0xca, 0xeb, 0x1f, 0x58, 0x5b, 0x9c, 0x9e, 0x63, 0x22, 0xf8, 0x4d, + 0xc7, 0xa8, 0x46, 0x4a, 0x85, 0x09, 0x7d, 0xf6, 0x61, 0xeb, 0x54, 0x8c, 0xb8, 0x23, 0x4e, 0x3c, + 0xaf, 0xc0, 0x62, 0xd3, 0xe5, 0x6f, 0x55, 0x1b, 0x7d, 0x42, 0x71, 0x97, 0x2b, 0x4c, 0x19, 0x4a, + 0x87, 0x3c, 0xf9, 0xc0, 0x93, 0x15, 0xdc, 0xec, 0xa7, 0x19, 0xc2, 0xd2, 0x28, 0x72, 0x29, 0xba, + 0x25, 0xc3, 0x32, 0xb7, 0xe9, 0xed, 0xb7, 0x3e, 0xfa, 0xf9, 0xd5, 0xb1, 0x9f, 0xfd, 0xfc, 0xea, + 0x9b, 0x6d, 0x97, 0x76, 0x7a, 0xbb, 0xab, 0x4e, 0xd0, 0xbd, 0x19, 0xba, 0x7e, 0xdb, 0x41, 0xe1, + 0xcd, 0xfd, 0x03, 0xf1, 0x3f, 0xb8, 0xc3, 0xfd, 0xf6, 0x4d, 0xd2, 0x41, 0x11, 0x6e, 0xf1, 0x98, + 0xb3, 0xda, 0xe0, 0xbf, 0x79, 0xb4, 0x11, 0x61, 0x7d, 0xe5, 0x1d, 0x58, 0x3c, 0xf6, 0x5f, 0x35, + 0x1a, 0xb3, 0xa0, 0x27, 0x5f, 0x8f, 0x82, 0xa8, 0x8b, 0x3c, 0x7d, 0xcc, 0x58, 0x80, 0x99, 0x04, + 0x7a, 0x37, 0x88, 0x1c, 0x5e, 0x65, 0xaf, 0x6b, 0x2b, 0x1e, 0x5c, 0x3e, 0xe9, 0x7f, 0x33, 0xb2, + 0xee, 0x64, 0x0d, 0x7b, 0xcf, 0xa3, 0x71, 0x77, 0xcb, 0x70, 0x39, 0x81, 0x6e, 0x0d, 0xfd, 0x8b, + 0x45, 0x51, 0x0b, 0x91, 0x50, 0x88, 0x2b, 0x6e, 0x3d, 0xb7, 0xf2, 0x32, 0x40, 0xe2, 0x57, 0xc6, + 0x38, 0xe4, 0x1e, 0xbf, 0xaa, 0x8f, 0x19, 0x15, 0x28, 0x3e, 0x7e, 0xb5, 0xd9, 0xdc, 0xd2, 0x35, + 0x0e, 0x5a, 0xd3, 0x73, 0x2b, 0x9f, 0x02, 0x48, 0x8a, 0x3b, 0x0d, 0x80, 0xf1, 0x78, 0xe8, 0x12, + 0xe4, 0xb7, 0x82, 0x43, 0x5d, 0x33, 0xca, 0x50, 0xb8, 0xef, 0xb6, 0x3b, 0x7a, 0x6e, 0xe5, 0x26, + 0xd4, 0xb2, 0x15, 0x9d, 0xac, 0x9b, 0xc6, 0xa6, 0x3e, 0xc6, 0xfe, 0x5a, 0xeb, 0xba, 0xc6, 0xeb, + 0x2d, 0xd6, 0x45, 0xbd, 0x45, 0x43, 0xcf, 0xad, 0x3c, 0x86, 0x6a, 0xaa, 0x3a, 0x90, 0xf1, 0xfa, + 0x28, 0xa0, 0xb7, 0x3c, 0x2f, 0x38, 0xc4, 0xad, 0x6d, 0x9f, 0x81, 0x85, 0xca, 0x62, 0xd0, 0x2d, + 0xaf, 0x1b, 0x10, 0xca, 0x11, 0x9a, 0x51, 0x87, 0xd9, 0x14, 0x82, 0x57, 0x67, 0x70, 0x4c, 0x6e, + 0xc5, 0x81, 0xdc, 0x76, 0xc8, 0x38, 0xdc, 0xe9, 0x51, 0xc1, 0xea, 0x06, 0xf6, 0x04, 0xab, 0x5c, + 0xdd, 0x39, 0x63, 0x02, 0xca, 0x2a, 0xa7, 0xa5, 0xe7, 0x99, 0x5c, 0x9b, 0x3e, 0xc1, 0x11, 0xd5, + 0x0b, 0xc6, 0x0c, 0x4c, 0x0d, 0x18, 0x42, 0x2f, 0x1a, 0x06, 0xd4, 0x38, 0xd7, 0x2a, 0xfc, 0x10, + 0x7d, 0x7c, 0x65, 0x15, 0x2a, 0x71, 0x8a, 0x8f, 0xf5, 0xfc, 0x28, 0xf0, 0xb1, 0x50, 0x22, 0x27, + 0xd1, 0x35, 0x36, 0x88, 0x6a, 0x20, 0xb4, 0x93, 0xfd, 0x5f, 0xc2, 0x8c, 0xaf, 0xed, 0xbd, 0x3d, + 0x7d, 0x8c, 0xb5, 0xbe, 0x8b, 0x78, 0x13, 0x80, 0xf1, 0x06, 0x8d, 0x98, 0xe9, 0x72, 0x2b, 0xdf, + 0xd5, 0x60, 0x5c, 0xfe, 0x07, 0x5e, 0xde, 0x93, 0xf8, 0xad, 0x8f, 0x19, 0x73, 0x30, 0xdd, 0x6c, + 0x6e, 0x89, 0x0a, 0x8e, 0x58, 0x0a, 0xae, 0x0f, 0x9e, 0xae, 0x96, 0x43, 0xc6, 0x98, 0x1c, 0x6b, + 0xf0, 0x30, 0x2e, 0xb9, 0x68, 0xec, 0xf4, 0x48, 0x07, 0xb7, 0xf4, 0x3c, 0xf3, 0x9e, 0xb8, 0x9f, + 0x11, 0xff, 0x45, 0x51, 0x2f, 0x18, 0x8b, 0x30, 0x97, 0xee, 0x72, 0x23, 0x78, 0x14, 0xd0, 0x8e, + 0xeb, 0xb7, 0xf5, 0xe2, 0xca, 0x75, 0x28, 0xdd, 0x39, 0xa2, 0x11, 0xda, 0x0e, 0x85, 0xf0, 0x41, + 0xa8, 0x8f, 0x19, 0x3a, 0x4c, 0xb0, 0x03, 0xfe, 0xb6, 0xd7, 0xe2, 0x7b, 0x7f, 0x5d, 0x5b, 0x31, + 0x61, 0x7a, 0x68, 0x77, 0xc2, 0xdc, 0x60, 0x3d, 0x72, 0xde, 0x7c, 0xdd, 0xfe, 0x9f, 0x41, 0xa4, + 0x8f, 0xdd, 0x7e, 0xe9, 0x6f, 0x7f, 0xaf, 0xac, 0x7d, 0xf4, 0xf1, 0x0b, 0xda, 0x4f, 0x3e, 0x7e, + 0x41, 0xfb, 0xfb, 0x8f, 0x5f, 0xd0, 0x7e, 0xfb, 0x1f, 0x5f, 0x18, 0x03, 0x3d, 0x88, 0xda, 0xab, + 0xd4, 0xdd, 0x3f, 0x58, 0x95, 0x33, 0x72, 0x77, 0x9c, 0xff, 0x79, 0xed, 0x3f, 0x03, 0x00, 0x00, + 0xff, 0xff, 0x43, 0x78, 0x3e, 0x70, 0x5e, 0x5f, 0x00, 0x00, } func (m *GetRequest) Marshal() (dAtA []byte, err error) { @@ -10878,6 +10951,22 @@ func (m *PrewriteRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.ForUpdateTsConstraints) > 0 { + for iNdEx := len(m.ForUpdateTsConstraints) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ForUpdateTsConstraints[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintKvrpcpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + } if m.AssertionLevel != 0 { i = encodeVarintKvrpcpb(dAtA, i, uint64(m.AssertionLevel)) i-- @@ -11006,6 +11095,43 @@ func (m *PrewriteRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *PrewriteRequest_ForUpdateTSConstraint) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PrewriteRequest_ForUpdateTSConstraint) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PrewriteRequest_ForUpdateTSConstraint) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.ExpectedForUpdateTs != 0 { + i = encodeVarintKvrpcpb(dAtA, i, uint64(m.ExpectedForUpdateTs)) + i-- + dAtA[i] = 0x10 + } + if m.Index != 0 { + i = encodeVarintKvrpcpb(dAtA, i, uint64(m.Index)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *PrewriteResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -18705,6 +18831,30 @@ func (m *PrewriteRequest) Size() (n int) { if m.AssertionLevel != 0 { n += 1 + sovKvrpcpb(uint64(m.AssertionLevel)) } + if len(m.ForUpdateTsConstraints) > 0 { + for _, e := range m.ForUpdateTsConstraints { + l = e.Size() + n += 2 + l + sovKvrpcpb(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *PrewriteRequest_ForUpdateTSConstraint) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Index != 0 { + n += 1 + sovKvrpcpb(uint64(m.Index)) + } + if m.ExpectedForUpdateTs != 0 { + n += 1 + sovKvrpcpb(uint64(m.ExpectedForUpdateTs)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -23238,6 +23388,129 @@ func (m *PrewriteRequest) Unmarshal(dAtA []byte) error { break } } + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ForUpdateTsConstraints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthKvrpcpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthKvrpcpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ForUpdateTsConstraints = append(m.ForUpdateTsConstraints, &PrewriteRequest_ForUpdateTSConstraint{}) + if err := m.ForUpdateTsConstraints[len(m.ForUpdateTsConstraints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipKvrpcpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthKvrpcpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PrewriteRequest_ForUpdateTSConstraint) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ForUpdateTSConstraint: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ForUpdateTSConstraint: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + } + m.Index = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Index |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpectedForUpdateTs", wireType) + } + m.ExpectedForUpdateTs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExpectedForUpdateTs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipKvrpcpb(dAtA[iNdEx:]) diff --git a/proto/kvrpcpb.proto b/proto/kvrpcpb.proto index 482fe30..6c3bad7 100644 --- a/proto/kvrpcpb.proto +++ b/proto/kvrpcpb.proto @@ -86,6 +86,14 @@ message PrewriteRequest { DO_CONSTRAINT_CHECK = 2; } + // for_update_ts constriants that should be checked when prewriting a pessimistic transaction. + message ForUpdateTSConstraint { + // The index of key in the prewrite request that should be checked. + uint32 index = 1; + // The expected for_update_ts of the pessimistic lock of the key. + uint64 expected_for_update_ts = 2; + } + Context context = 1; // The data to be written to the database. repeated Mutation mutations = 2; @@ -120,6 +128,9 @@ message PrewriteRequest { uint64 max_commit_ts = 14; // The level of assertion to use on this prewrte request. AssertionLevel assertion_level = 15; + // for_update_ts constriants that should be checked when prewriting a pessimistic transaction. + // See https://github.com/tikv/tikv/issues/14311 + repeated ForUpdateTSConstraint for_update_ts_constraints = 16; } message PrewriteResponse { diff --git a/scripts/proto.lock b/scripts/proto.lock index 6b3bcab..4f0e7bc 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -7361,6 +7361,29 @@ "id": 15, "name": "assertion_level", "type": "AssertionLevel" + }, + { + "id": 16, + "name": "for_update_ts_constraints", + "type": "ForUpdateTSConstraint", + "is_repeated": true + } + ], + "messages": [ + { + "name": "ForUpdateTSConstraint", + "fields": [ + { + "id": 1, + "name": "index", + "type": "uint32" + }, + { + "id": 2, + "name": "expected_for_update_ts", + "type": "uint64" + } + ] } ] }, -- Gitee From 68d0eebd564a135ec46e74baec3a1bbb250a5e7e Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Fri, 7 Apr 2023 12:09:05 +0800 Subject: [PATCH 36/44] add peers info for SyncRegionResponse (#1099) Signed-off-by: iosmanthus Co-authored-by: Evan Zhou --- pkg/configpb/configpb.pb.gw.go | 22 +- pkg/pdpb/pdpb.pb.go | 1259 ++++++++++++++++++++++---------- proto/pdpb.proto | 12 +- scripts/proto.lock | 34 + 4 files changed, 934 insertions(+), 393 deletions(-) diff --git a/pkg/configpb/configpb.pb.gw.go b/pkg/configpb/configpb.pb.gw.go index 9b4675b..c0385b0 100644 --- a/pkg/configpb/configpb.pb.gw.go +++ b/pkg/configpb/configpb.pb.gw.go @@ -20,7 +20,6 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -31,7 +30,6 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage -var _ = metadata.Join var ( filter_Config_Get_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} @@ -57,10 +55,7 @@ func local_request_Config_Get_0(ctx context.Context, marshaler runtime.Marshaler var protoReq GetRequest var metadata runtime.ServerMetadata - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_Get_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Get_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -127,10 +122,7 @@ func local_request_Config_Delete_0(ctx context.Context, marshaler runtime.Marsha var protoReq DeleteRequest var metadata runtime.ServerMetadata - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_Delete_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Delete_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -142,14 +134,11 @@ func local_request_Config_Delete_0(ctx context.Context, marshaler runtime.Marsha // RegisterConfigHandlerServer registers the http handlers for service Config to "mux". // UnaryRPC :call ConfigServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterConfigHandlerFromEndpoint instead. func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ConfigServer) error { mux.Handle("GET", pattern_Config_Get_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -157,7 +146,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Get_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -171,8 +159,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser mux.Handle("POST", pattern_Config_Update_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -180,7 +166,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Update_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -194,8 +179,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser mux.Handle("DELETE", pattern_Config_Delete_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -203,7 +186,6 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Delete_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) diff --git a/pkg/pdpb/pdpb.pb.go b/pkg/pdpb/pdpb.pb.go index ec3fad7..b8124e8 100644 --- a/pkg/pdpb/pdpb.pb.go +++ b/pkg/pdpb/pdpb.pb.go @@ -5852,6 +5852,100 @@ func (m *SyncRegionRequest) GetStartIndex() uint64 { return 0 } +type PeersStats struct { + Peers []*PeerStats `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PeersStats) Reset() { *m = PeersStats{} } +func (m *PeersStats) String() string { return proto.CompactTextString(m) } +func (*PeersStats) ProtoMessage() {} +func (*PeersStats) Descriptor() ([]byte, []int) { + return fileDescriptor_78b27e6f04f44c6e, []int{85} +} +func (m *PeersStats) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PeersStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PeersStats.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PeersStats) XXX_Merge(src proto.Message) { + xxx_messageInfo_PeersStats.Merge(m, src) +} +func (m *PeersStats) XXX_Size() int { + return m.Size() +} +func (m *PeersStats) XXX_DiscardUnknown() { + xxx_messageInfo_PeersStats.DiscardUnknown(m) +} + +var xxx_messageInfo_PeersStats proto.InternalMessageInfo + +func (m *PeersStats) GetPeers() []*PeerStats { + if m != nil { + return m.Peers + } + return nil +} + +type Peers struct { + Peers []*metapb.Peer `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Peers) Reset() { *m = Peers{} } +func (m *Peers) String() string { return proto.CompactTextString(m) } +func (*Peers) ProtoMessage() {} +func (*Peers) Descriptor() ([]byte, []int) { + return fileDescriptor_78b27e6f04f44c6e, []int{86} +} +func (m *Peers) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Peers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Peers.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Peers) XXX_Merge(src proto.Message) { + xxx_messageInfo_Peers.Merge(m, src) +} +func (m *Peers) XXX_Size() int { + return m.Size() +} +func (m *Peers) XXX_DiscardUnknown() { + xxx_messageInfo_Peers.DiscardUnknown(m) +} + +var xxx_messageInfo_Peers proto.InternalMessageInfo + +func (m *Peers) GetPeers() []*metapb.Peer { + if m != nil { + return m.Peers + } + return nil +} + type SyncRegionResponse struct { Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` // the leader PD will send the repsonds include @@ -5862,6 +5956,8 @@ type SyncRegionResponse struct { RegionLeaders []*metapb.Peer `protobuf:"bytes,5,rep,name=region_leaders,json=regionLeaders,proto3" json:"region_leaders,omitempty"` // the buckets informations without stats. Buckets []*metapb.Buckets `protobuf:"bytes,6,rep,name=buckets,proto3" json:"buckets,omitempty"` + DownPeers []*PeersStats `protobuf:"bytes,16,rep,name=down_peers,json=downPeers,proto3" json:"down_peers,omitempty"` + PendingPeers []*Peers `protobuf:"bytes,17,rep,name=pending_peers,json=pendingPeers,proto3" json:"pending_peers,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5871,7 +5967,7 @@ func (m *SyncRegionResponse) Reset() { *m = SyncRegionResponse{} } func (m *SyncRegionResponse) String() string { return proto.CompactTextString(m) } func (*SyncRegionResponse) ProtoMessage() {} func (*SyncRegionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{85} + return fileDescriptor_78b27e6f04f44c6e, []int{87} } func (m *SyncRegionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5942,6 +6038,20 @@ func (m *SyncRegionResponse) GetBuckets() []*metapb.Buckets { return nil } +func (m *SyncRegionResponse) GetDownPeers() []*PeersStats { + if m != nil { + return m.DownPeers + } + return nil +} + +func (m *SyncRegionResponse) GetPendingPeers() []*Peers { + if m != nil { + return m.PendingPeers + } + return nil +} + type GetOperatorRequest struct { Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` RegionId uint64 `protobuf:"varint,2,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` @@ -5954,7 +6064,7 @@ func (m *GetOperatorRequest) Reset() { *m = GetOperatorRequest{} } func (m *GetOperatorRequest) String() string { return proto.CompactTextString(m) } func (*GetOperatorRequest) ProtoMessage() {} func (*GetOperatorRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{86} + return fileDescriptor_78b27e6f04f44c6e, []int{88} } func (m *GetOperatorRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6012,7 +6122,7 @@ func (m *GetOperatorResponse) Reset() { *m = GetOperatorResponse{} } func (m *GetOperatorResponse) String() string { return proto.CompactTextString(m) } func (*GetOperatorResponse) ProtoMessage() {} func (*GetOperatorResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{87} + return fileDescriptor_78b27e6f04f44c6e, []int{89} } func (m *GetOperatorResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6090,7 +6200,7 @@ func (m *SyncMaxTSRequest) Reset() { *m = SyncMaxTSRequest{} } func (m *SyncMaxTSRequest) String() string { return proto.CompactTextString(m) } func (*SyncMaxTSRequest) ProtoMessage() {} func (*SyncMaxTSRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{88} + return fileDescriptor_78b27e6f04f44c6e, []int{90} } func (m *SyncMaxTSRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6153,7 +6263,7 @@ func (m *SyncMaxTSResponse) Reset() { *m = SyncMaxTSResponse{} } func (m *SyncMaxTSResponse) String() string { return proto.CompactTextString(m) } func (*SyncMaxTSResponse) ProtoMessage() {} func (*SyncMaxTSResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{89} + return fileDescriptor_78b27e6f04f44c6e, []int{91} } func (m *SyncMaxTSResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6216,7 +6326,7 @@ func (m *SplitRegionsRequest) Reset() { *m = SplitRegionsRequest{} } func (m *SplitRegionsRequest) String() string { return proto.CompactTextString(m) } func (*SplitRegionsRequest) ProtoMessage() {} func (*SplitRegionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{90} + return fileDescriptor_78b27e6f04f44c6e, []int{92} } func (m *SplitRegionsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6279,7 +6389,7 @@ func (m *SplitRegionsResponse) Reset() { *m = SplitRegionsResponse{} } func (m *SplitRegionsResponse) String() string { return proto.CompactTextString(m) } func (*SplitRegionsResponse) ProtoMessage() {} func (*SplitRegionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{91} + return fileDescriptor_78b27e6f04f44c6e, []int{93} } func (m *SplitRegionsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6343,7 +6453,7 @@ func (m *SplitAndScatterRegionsRequest) Reset() { *m = SplitAndScatterRe func (m *SplitAndScatterRegionsRequest) String() string { return proto.CompactTextString(m) } func (*SplitAndScatterRegionsRequest) ProtoMessage() {} func (*SplitAndScatterRegionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{92} + return fileDescriptor_78b27e6f04f44c6e, []int{94} } func (m *SplitAndScatterRegionsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6414,7 +6524,7 @@ func (m *SplitAndScatterRegionsResponse) Reset() { *m = SplitAndScatterR func (m *SplitAndScatterRegionsResponse) String() string { return proto.CompactTextString(m) } func (*SplitAndScatterRegionsResponse) ProtoMessage() {} func (*SplitAndScatterRegionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{93} + return fileDescriptor_78b27e6f04f44c6e, []int{95} } func (m *SplitAndScatterRegionsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6483,7 +6593,7 @@ func (m *GetDCLocationInfoRequest) Reset() { *m = GetDCLocationInfoReque func (m *GetDCLocationInfoRequest) String() string { return proto.CompactTextString(m) } func (*GetDCLocationInfoRequest) ProtoMessage() {} func (*GetDCLocationInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{94} + return fileDescriptor_78b27e6f04f44c6e, []int{96} } func (m *GetDCLocationInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6542,7 +6652,7 @@ func (m *GetDCLocationInfoResponse) Reset() { *m = GetDCLocationInfoResp func (m *GetDCLocationInfoResponse) String() string { return proto.CompactTextString(m) } func (*GetDCLocationInfoResponse) ProtoMessage() {} func (*GetDCLocationInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{95} + return fileDescriptor_78b27e6f04f44c6e, []int{97} } func (m *GetDCLocationInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6613,7 +6723,7 @@ func (m *QueryStats) Reset() { *m = QueryStats{} } func (m *QueryStats) String() string { return proto.CompactTextString(m) } func (*QueryStats) ProtoMessage() {} func (*QueryStats) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{96} + return fileDescriptor_78b27e6f04f44c6e, []int{98} } func (m *QueryStats) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6732,7 +6842,7 @@ func (m *ReportBucketsRequest) Reset() { *m = ReportBucketsRequest{} } func (m *ReportBucketsRequest) String() string { return proto.CompactTextString(m) } func (*ReportBucketsRequest) ProtoMessage() {} func (*ReportBucketsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{97} + return fileDescriptor_78b27e6f04f44c6e, []int{99} } func (m *ReportBucketsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6793,7 +6903,7 @@ func (m *ReportBucketsResponse) Reset() { *m = ReportBucketsResponse{} } func (m *ReportBucketsResponse) String() string { return proto.CompactTextString(m) } func (*ReportBucketsResponse) ProtoMessage() {} func (*ReportBucketsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{98} + return fileDescriptor_78b27e6f04f44c6e, []int{100} } func (m *ReportBucketsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6842,7 +6952,7 @@ func (m *ReportMinResolvedTsRequest) Reset() { *m = ReportMinResolvedTsR func (m *ReportMinResolvedTsRequest) String() string { return proto.CompactTextString(m) } func (*ReportMinResolvedTsRequest) ProtoMessage() {} func (*ReportMinResolvedTsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{99} + return fileDescriptor_78b27e6f04f44c6e, []int{101} } func (m *ReportMinResolvedTsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6903,7 +7013,7 @@ func (m *ReportMinResolvedTsResponse) Reset() { *m = ReportMinResolvedTs func (m *ReportMinResolvedTsResponse) String() string { return proto.CompactTextString(m) } func (*ReportMinResolvedTsResponse) ProtoMessage() {} func (*ReportMinResolvedTsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{100} + return fileDescriptor_78b27e6f04f44c6e, []int{102} } func (m *ReportMinResolvedTsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6951,7 +7061,7 @@ func (m *SetExternalTimestampRequest) Reset() { *m = SetExternalTimestam func (m *SetExternalTimestampRequest) String() string { return proto.CompactTextString(m) } func (*SetExternalTimestampRequest) ProtoMessage() {} func (*SetExternalTimestampRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{101} + return fileDescriptor_78b27e6f04f44c6e, []int{103} } func (m *SetExternalTimestampRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7005,7 +7115,7 @@ func (m *SetExternalTimestampResponse) Reset() { *m = SetExternalTimesta func (m *SetExternalTimestampResponse) String() string { return proto.CompactTextString(m) } func (*SetExternalTimestampResponse) ProtoMessage() {} func (*SetExternalTimestampResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{102} + return fileDescriptor_78b27e6f04f44c6e, []int{104} } func (m *SetExternalTimestampResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7052,7 +7162,7 @@ func (m *GetExternalTimestampRequest) Reset() { *m = GetExternalTimestam func (m *GetExternalTimestampRequest) String() string { return proto.CompactTextString(m) } func (*GetExternalTimestampRequest) ProtoMessage() {} func (*GetExternalTimestampRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{103} + return fileDescriptor_78b27e6f04f44c6e, []int{105} } func (m *GetExternalTimestampRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7100,7 +7210,7 @@ func (m *GetExternalTimestampResponse) Reset() { *m = GetExternalTimesta func (m *GetExternalTimestampResponse) String() string { return proto.CompactTextString(m) } func (*GetExternalTimestampResponse) ProtoMessage() {} func (*GetExternalTimestampResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{104} + return fileDescriptor_78b27e6f04f44c6e, []int{106} } func (m *GetExternalTimestampResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7236,6 +7346,8 @@ func init() { proto.RegisterType((*UpdateServiceGCSafePointResponse)(nil), "pdpb.UpdateServiceGCSafePointResponse") proto.RegisterType((*RegionStat)(nil), "pdpb.RegionStat") proto.RegisterType((*SyncRegionRequest)(nil), "pdpb.SyncRegionRequest") + proto.RegisterType((*PeersStats)(nil), "pdpb.PeersStats") + proto.RegisterType((*Peers)(nil), "pdpb.Peers") proto.RegisterType((*SyncRegionResponse)(nil), "pdpb.SyncRegionResponse") proto.RegisterType((*GetOperatorRequest)(nil), "pdpb.GetOperatorRequest") proto.RegisterType((*GetOperatorResponse)(nil), "pdpb.GetOperatorResponse") @@ -7261,358 +7373,361 @@ func init() { func init() { proto.RegisterFile("pdpb.proto", fileDescriptor_78b27e6f04f44c6e) } var fileDescriptor_78b27e6f04f44c6e = []byte{ - // 5603 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3c, 0x4d, 0x8f, 0x23, 0x49, - 0x56, 0x95, 0x2e, 0xdb, 0x65, 0x3f, 0x7f, 0x54, 0x56, 0x74, 0x75, 0x97, 0xdb, 0xfd, 0x39, 0xd9, - 0x33, 0x43, 0x4f, 0xef, 0x6c, 0xcf, 0x4c, 0xef, 0xb0, 0x0c, 0x03, 0x3b, 0xc2, 0x65, 0xbb, 0x6b, - 0x3c, 0x5d, 0x1f, 0x26, 0xed, 0xee, 0xd9, 0x41, 0x2b, 0x52, 0x59, 0x99, 0x51, 0x55, 0xb9, 0x65, - 0x67, 0x7a, 0x32, 0xd2, 0x55, 0xed, 0x15, 0x48, 0x7c, 0xac, 0x60, 0x11, 0xbb, 0x02, 0x89, 0xcf, - 0xd3, 0x1e, 0x16, 0x04, 0x5c, 0x10, 0x37, 0x04, 0x7f, 0x00, 0x71, 0xe4, 0xc8, 0x09, 0xad, 0x96, - 0x13, 0xe2, 0xbe, 0x17, 0x38, 0xa0, 0xf8, 0x4a, 0x67, 0xa6, 0xd3, 0x55, 0xdd, 0xd9, 0x33, 0x68, - 0x4f, 0xce, 0x78, 0xef, 0xc5, 0x8b, 0x17, 0x2f, 0x5e, 0x44, 0xbc, 0xf7, 0x22, 0xc2, 0x00, 0x13, - 0x7b, 0x72, 0xf8, 0x70, 0xe2, 0x7b, 0x81, 0x87, 0xf2, 0xf4, 0xbb, 0x59, 0x1d, 0xe3, 0xc0, 0x94, - 0xb0, 0x66, 0x0d, 0xfb, 0xe6, 0x51, 0x10, 0x16, 0xaf, 0xd0, 0x92, 0x41, 0xb0, 0x7f, 0x86, 0xfd, - 0x10, 0xd8, 0xf0, 0xf1, 0x64, 0xe4, 0x58, 0x66, 0xe0, 0x78, 0xae, 0x31, 0xf6, 0x6c, 0x1c, 0x62, - 0x36, 0x8f, 0xbd, 0x63, 0x8f, 0x7d, 0xbe, 0x43, 0xbf, 0x04, 0x74, 0xdd, 0x9f, 0x92, 0x80, 0x7d, - 0x72, 0x80, 0xf6, 0x29, 0x34, 0x3e, 0x35, 0x03, 0xeb, 0x64, 0x67, 0xe4, 0x1d, 0x9a, 0xa3, 0xb6, - 0xe7, 0x1e, 0x39, 0xc7, 0x3a, 0xfe, 0x7c, 0x8a, 0x49, 0x80, 0xee, 0x40, 0xc5, 0x62, 0x00, 0x63, - 0x62, 0x06, 0x27, 0x0d, 0xe5, 0xae, 0x72, 0xbf, 0xac, 0x03, 0x07, 0xf5, 0xcd, 0xe0, 0x04, 0x35, - 0xa1, 0xe4, 0xe3, 0x33, 0x87, 0x38, 0x9e, 0xdb, 0xc8, 0xdd, 0x55, 0xee, 0xaf, 0xea, 0x61, 0x59, - 0xfb, 0x0b, 0x05, 0xae, 0xa7, 0x70, 0x26, 0x13, 0xcf, 0x25, 0x18, 0xbd, 0x0b, 0x6b, 0xd6, 0x89, - 0xe9, 0x1e, 0x63, 0xd2, 0x50, 0xee, 0xae, 0xde, 0xaf, 0x3c, 0xba, 0xf6, 0x90, 0x69, 0x23, 0x4a, - 0xdc, 0x0b, 0xf0, 0x58, 0x97, 0x64, 0x17, 0xb5, 0x85, 0xde, 0x86, 0xe2, 0x09, 0x36, 0x6d, 0xec, - 0x37, 0x56, 0xef, 0x2a, 0xf7, 0x2b, 0x8f, 0x36, 0x39, 0x33, 0xd9, 0xda, 0xc7, 0x0c, 0xa7, 0x0b, - 0x1a, 0x6d, 0x0c, 0x8d, 0x41, 0xe0, 0xf9, 0x38, 0xad, 0xcb, 0x2f, 0x2f, 0x57, 0x42, 0x49, 0xb9, - 0xa4, 0x92, 0xb4, 0x8f, 0xe0, 0x7a, 0x4a, 0x73, 0x42, 0x0f, 0xaf, 0x41, 0x01, 0xfb, 0xbe, 0xe7, - 0x33, 0xe5, 0x56, 0x1e, 0x55, 0x78, 0x6b, 0x5d, 0x0a, 0xd2, 0x39, 0x46, 0xeb, 0xc3, 0xd6, 0xae, - 0x67, 0xda, 0x69, 0xd2, 0x6e, 0x42, 0xc1, 0x35, 0xc7, 0x42, 0xd6, 0xb2, 0xce, 0x0b, 0x97, 0x4b, - 0x64, 0x43, 0x63, 0x91, 0xa3, 0x10, 0xe8, 0x6d, 0x28, 0x38, 0x01, 0x1e, 0x5f, 0xd6, 0x7d, 0x4e, - 0x74, 0xa1, 0x01, 0xfc, 0x50, 0x01, 0x35, 0x59, 0x0f, 0x21, 0xc8, 0x53, 0x21, 0x85, 0x2d, 0xb1, - 0x6f, 0xda, 0x8b, 0x33, 0x73, 0x34, 0xc5, 0x42, 0x52, 0x5e, 0x98, 0x6b, 0x66, 0x75, 0x99, 0x66, - 0xd0, 0x3d, 0xc8, 0x9f, 0x3a, 0xae, 0xdd, 0xc8, 0xdf, 0x55, 0xee, 0xd7, 0x1f, 0xad, 0x0b, 0x8a, - 0x33, 0xec, 0x06, 0xc3, 0xd9, 0x04, 0xeb, 0x0c, 0x89, 0x1a, 0xb0, 0x36, 0x31, 0x67, 0x23, 0xcf, - 0xb4, 0x1b, 0x85, 0xbb, 0xca, 0xfd, 0xaa, 0x2e, 0x8b, 0xda, 0x13, 0xa8, 0x09, 0x45, 0x72, 0x03, - 0x41, 0xb7, 0x00, 0xac, 0xd1, 0x94, 0x04, 0xd8, 0x37, 0x1c, 0x9b, 0x89, 0x98, 0xd7, 0xcb, 0x02, - 0xd2, 0xb3, 0xd1, 0x0d, 0x28, 0x13, 0xec, 0xda, 0x1c, 0x9b, 0x63, 0xd8, 0x12, 0x07, 0xf4, 0x6c, - 0x4d, 0x87, 0x7a, 0xdc, 0xdc, 0x2e, 0xe3, 0x16, 0xf6, 0x2f, 0xb7, 0x74, 0xe4, 0x1f, 0x43, 0xa1, - 0x2b, 0x3b, 0x1a, 0xcc, 0x26, 0x5c, 0x6b, 0xf3, 0x8e, 0x52, 0x14, 0xef, 0x28, 0x45, 0xd2, 0x8e, - 0x8e, 0x31, 0x21, 0xe6, 0xb1, 0x54, 0xa4, 0x2c, 0x6a, 0x13, 0x80, 0x21, 0xf1, 0xa4, 0xd1, 0x7c, - 0x25, 0x9c, 0x2c, 0xdc, 0xe6, 0xae, 0xc8, 0xc9, 0x12, 0x51, 0x85, 0x9c, 0x2b, 0x74, 0x6c, 0x2c, - 0x6f, 0xea, 0x06, 0x8c, 0x65, 0x4d, 0xe7, 0x05, 0x6a, 0x61, 0xb6, 0x65, 0x8c, 0x3c, 0xbe, 0xee, - 0xb0, 0x11, 0x2a, 0xeb, 0x60, 0x5b, 0xbb, 0x02, 0xa2, 0x1d, 0x42, 0x79, 0xe8, 0x8c, 0x31, 0x09, - 0xcc, 0xf1, 0x84, 0x1a, 0xc9, 0xe4, 0x64, 0x46, 0x1c, 0xcb, 0x1c, 0xb1, 0x26, 0x57, 0xf5, 0xb0, - 0x4c, 0x85, 0x1e, 0x79, 0xc7, 0x0c, 0xc5, 0xed, 0x47, 0x16, 0x69, 0x1b, 0x64, 0x7a, 0x74, 0xe4, - 0x3c, 0x37, 0x0e, 0x9d, 0x80, 0xb0, 0x36, 0x6a, 0x3a, 0x70, 0xd0, 0xb6, 0x13, 0x10, 0xed, 0xb7, - 0x14, 0xa8, 0xb0, 0x6e, 0x85, 0x96, 0x1b, 0xef, 0xd7, 0x85, 0x8b, 0xc0, 0x92, 0x8e, 0x7d, 0x15, - 0xca, 0x81, 0x94, 0x5b, 0x18, 0x9e, 0xd0, 0x76, 0xd8, 0x1d, 0x7d, 0x4e, 0xa1, 0x7d, 0x5f, 0x01, - 0x75, 0xdb, 0xf3, 0x02, 0x12, 0xf8, 0xe6, 0x24, 0x93, 0x7e, 0xef, 0x41, 0x81, 0xd0, 0xc5, 0x41, - 0x58, 0x41, 0xed, 0xa1, 0xd8, 0x01, 0xd8, 0x8a, 0xa1, 0x73, 0x1c, 0x7a, 0x13, 0x8a, 0x3e, 0x3e, - 0x96, 0x9a, 0xae, 0x3c, 0xaa, 0x4b, 0x2a, 0x9d, 0x41, 0x75, 0x81, 0xa5, 0x4b, 0xee, 0x46, 0x44, - 0x9c, 0x4c, 0x7a, 0x19, 0x02, 0x8a, 0x6e, 0x29, 0x24, 0x30, 0x83, 0x29, 0x11, 0xd2, 0xbd, 0xf1, - 0x30, 0x65, 0xb7, 0xd1, 0xe7, 0xa0, 0x01, 0x23, 0xd6, 0x37, 0xfc, 0x24, 0x48, 0xeb, 0xc0, 0xd5, - 0x1e, 0x09, 0x45, 0x9b, 0x60, 0x3b, 0x8b, 0xb2, 0xb4, 0x6f, 0xc3, 0xb5, 0x24, 0x97, 0x4c, 0x7d, - 0xd4, 0xa0, 0x7a, 0x18, 0xe1, 0xc2, 0x7a, 0x57, 0xd2, 0x63, 0x30, 0xed, 0x1b, 0x50, 0x6f, 0x8d, - 0x46, 0x9e, 0xd5, 0xeb, 0x64, 0x12, 0xf5, 0x00, 0xd6, 0xc3, 0xea, 0x99, 0x64, 0xac, 0x43, 0x2e, - 0x5c, 0x65, 0x72, 0x8e, 0xad, 0x7d, 0x02, 0x37, 0x7a, 0x64, 0xe0, 0x9a, 0x13, 0x72, 0xe2, 0x05, - 0x3a, 0xb6, 0xbc, 0x33, 0xec, 0x3b, 0xee, 0x71, 0x26, 0xe1, 0x6c, 0xb8, 0x99, 0xce, 0x2b, 0x93, - 0xa4, 0xd7, 0xa0, 0x38, 0x36, 0xfd, 0xd3, 0x50, 0x8f, 0xa2, 0xa4, 0x7d, 0x06, 0xeb, 0x3b, 0x38, - 0xe0, 0x86, 0x9c, 0x65, 0x6a, 0x5c, 0x87, 0x12, 0x33, 0xff, 0xf9, 0x6a, 0xbb, 0xc6, 0xca, 0x3d, - 0x5b, 0xfb, 0x01, 0xdd, 0x5a, 0x42, 0xde, 0x99, 0xa4, 0x7e, 0xc1, 0x89, 0x57, 0xa0, 0x13, 0x80, - 0x88, 0x79, 0xa7, 0x72, 0x8e, 0x8c, 0x84, 0x1a, 0x36, 0xd1, 0x39, 0x5a, 0xb3, 0x60, 0xbd, 0x3f, - 0x7d, 0x85, 0xae, 0xbe, 0x88, 0x30, 0xda, 0x9f, 0x2b, 0xa0, 0xce, 0x5b, 0xf9, 0x19, 0x9a, 0xdc, - 0xbf, 0x01, 0x57, 0x76, 0x70, 0xd0, 0x1a, 0x8d, 0x98, 0x68, 0x24, 0x93, 0x06, 0x3e, 0x80, 0x06, - 0x7e, 0x6e, 0x8d, 0xa6, 0x36, 0x36, 0x02, 0x6f, 0x7c, 0x48, 0x02, 0xcf, 0xc5, 0x06, 0xeb, 0x37, - 0x11, 0x66, 0x75, 0x4d, 0xe0, 0x87, 0x12, 0xcd, 0x5b, 0xd3, 0x4e, 0x61, 0x33, 0xde, 0x7a, 0x26, - 0xcd, 0xbc, 0x01, 0xc5, 0xb0, 0xb5, 0xd5, 0xc5, 0x21, 0x10, 0x48, 0xed, 0xb7, 0xb9, 0xe1, 0x89, - 0x75, 0x37, 0x4b, 0x47, 0x6f, 0x01, 0xf0, 0xd5, 0xda, 0x38, 0xc5, 0x33, 0xd6, 0xb5, 0xaa, 0x5e, - 0xe6, 0x90, 0x27, 0x78, 0x86, 0x5e, 0x83, 0xaa, 0x8b, 0xb1, 0x6d, 0x1c, 0x4e, 0xad, 0x53, 0x2c, - 0x0c, 0xaf, 0xa4, 0x57, 0x28, 0x6c, 0x9b, 0x83, 0xb4, 0xbf, 0xca, 0xc1, 0x46, 0x44, 0x86, 0x4c, - 0xdd, 0x9d, 0xef, 0x28, 0xb9, 0x8b, 0x76, 0x14, 0xf4, 0x3a, 0x14, 0x47, 0x51, 0xc7, 0xba, 0x2a, - 0xe9, 0xfa, 0x98, 0x72, 0xe3, 0x38, 0xf4, 0x10, 0xc0, 0xf6, 0xce, 0x5d, 0x63, 0x82, 0xb1, 0x4f, - 0x1a, 0x05, 0xa6, 0x40, 0xb1, 0x6d, 0x52, 0x3a, 0x3e, 0x55, 0xca, 0x94, 0x84, 0x16, 0x09, 0x7a, - 0x0f, 0x6a, 0x13, 0xec, 0xda, 0x8e, 0x7b, 0x2c, 0xaa, 0x14, 0x59, 0x95, 0x38, 0xf3, 0xaa, 0x20, - 0xe1, 0x55, 0xde, 0x82, 0x35, 0xa9, 0x92, 0x35, 0xb1, 0x2d, 0x0b, 0x62, 0xa1, 0x16, 0x5d, 0xe2, - 0x3f, 0xc9, 0x97, 0xf2, 0x6a, 0x41, 0xfb, 0x5d, 0x85, 0xd9, 0x05, 0xef, 0xcf, 0xf6, 0x2c, 0xdb, - 0x32, 0x4e, 0x5d, 0x3e, 0x31, 0x5a, 0x73, 0x97, 0x8f, 0x03, 0x98, 0x07, 0x77, 0xe9, 0x58, 0xfd, - 0x40, 0x01, 0x34, 0xb0, 0x4c, 0x97, 0x8b, 0x41, 0xb2, 0xca, 0x40, 0x02, 0xd3, 0x0f, 0x22, 0x06, - 0x53, 0x62, 0x00, 0x6a, 0x2f, 0x9b, 0x50, 0x18, 0x39, 0x63, 0x27, 0x60, 0x8d, 0x17, 0x74, 0x5e, - 0x40, 0x5b, 0xb0, 0x86, 0x5d, 0x9b, 0x55, 0xc8, 0xb3, 0x0a, 0x45, 0xec, 0xda, 0x4f, 0xf0, 0x4c, - 0xfb, 0x67, 0x05, 0x8a, 0x5c, 0x96, 0x88, 0x09, 0x28, 0x2f, 0x68, 0x02, 0xb9, 0x17, 0x36, 0x81, - 0xd5, 0x97, 0x37, 0x81, 0xfc, 0x65, 0x26, 0xa0, 0xfd, 0x8b, 0x02, 0x57, 0x62, 0xba, 0xcc, 0x64, - 0xf9, 0xef, 0x41, 0x55, 0x8c, 0x28, 0x6d, 0x49, 0x4e, 0xf7, 0x64, 0xe7, 0x2b, 0x9c, 0x66, 0x8f, - 0x92, 0xa0, 0x37, 0x61, 0x8d, 0xf7, 0x52, 0x76, 0x2c, 0x2e, 0xa5, 0x44, 0x52, 0x3a, 0x5e, 0x6d, - 0xde, 0x1b, 0x21, 0x09, 0xe3, 0x29, 0x91, 0xda, 0x63, 0xd8, 0xda, 0xc1, 0x41, 0x9b, 0x47, 0x02, - 0xf1, 0x80, 0xee, 0xa5, 0xb6, 0x71, 0x02, 0x8d, 0x45, 0x3e, 0x99, 0x94, 0xf2, 0x16, 0xac, 0x89, - 0xc0, 0x44, 0x0c, 0x72, 0x38, 0xbb, 0x04, 0x77, 0x5d, 0xe2, 0xb5, 0xcf, 0x61, 0xab, 0x3f, 0x7d, - 0x75, 0xe1, 0x5f, 0xa6, 0xc9, 0x8f, 0xa1, 0xb1, 0xd8, 0x64, 0x96, 0x7e, 0x6a, 0x7f, 0x9d, 0x83, - 0xe2, 0x1e, 0x1e, 0x1f, 0x62, 0x3f, 0x35, 0x10, 0xbd, 0x01, 0xe5, 0x31, 0xc3, 0x46, 0x66, 0x3b, - 0x07, 0xf0, 0xe8, 0x8f, 0x5a, 0xaa, 0x31, 0xf5, 0x47, 0xdc, 0x0e, 0xca, 0x7a, 0x89, 0x02, 0x9e, - 0xfa, 0x23, 0x1e, 0x72, 0x8f, 0x1c, 0xec, 0x06, 0x1c, 0x9d, 0x67, 0x68, 0xe0, 0x20, 0x46, 0xf0, - 0x73, 0xb0, 0xce, 0xcd, 0xc4, 0x98, 0xf8, 0x8e, 0xe7, 0x3b, 0xc1, 0x8c, 0x45, 0xa3, 0x05, 0xbd, - 0xce, 0xc1, 0x7d, 0x01, 0x65, 0xa1, 0x15, 0x9e, 0x8c, 0xbc, 0x19, 0x0f, 0xde, 0x8b, 0x22, 0xb4, - 0x62, 0x20, 0x96, 0x73, 0x79, 0x03, 0xea, 0x87, 0x8e, 0x6b, 0xfa, 0x33, 0xe3, 0x0c, 0xfb, 0x2c, - 0xf0, 0x5e, 0x63, 0x34, 0x35, 0x0e, 0x7d, 0xc6, 0x81, 0xd4, 0x7b, 0x3a, 0x76, 0x02, 0xe3, 0xc4, - 0x24, 0x27, 0x8d, 0x12, 0x0f, 0x07, 0x8f, 0x9d, 0xe0, 0x63, 0x93, 0x9c, 0x24, 0xa3, 0xb7, 0xf2, - 0x42, 0xf4, 0xf6, 0x2b, 0x6c, 0x83, 0xe1, 0x8a, 0xca, 0xb4, 0x66, 0x69, 0xff, 0x9b, 0x03, 0x14, - 0x65, 0x91, 0x71, 0x93, 0x5a, 0xe3, 0xda, 0x97, 0xb3, 0x54, 0xcc, 0x27, 0xce, 0x55, 0x97, 0xc8, - 0x94, 0x4d, 0x2a, 0x4a, 0x26, 0x57, 0xa8, 0xaf, 0x42, 0x05, 0x07, 0x96, 0x6d, 0x08, 0xd2, 0x7c, - 0x0a, 0x29, 0x50, 0x82, 0x5d, 0x4e, 0x8e, 0xe1, 0x6a, 0x40, 0x3c, 0xc3, 0x1c, 0x31, 0x3d, 0x79, - 0xbe, 0x21, 0x97, 0x00, 0xbe, 0xbd, 0xbd, 0x27, 0xf2, 0x22, 0x0b, 0x7d, 0x7c, 0x38, 0x24, 0x5e, - 0x4b, 0x56, 0xe2, 0xbc, 0x48, 0xd7, 0x0d, 0xfc, 0x99, 0x7e, 0x25, 0x58, 0xc4, 0x34, 0x87, 0xd0, - 0x58, 0x56, 0x01, 0xa9, 0xb0, 0x4a, 0x57, 0x70, 0x6e, 0xa1, 0xf4, 0x13, 0x69, 0xd1, 0x4c, 0x49, - 0x52, 0x7a, 0x8e, 0xfa, 0x30, 0xf7, 0x81, 0xa2, 0x75, 0xe1, 0xea, 0x7c, 0x65, 0xe8, 0xb9, 0x47, - 0x61, 0xec, 0xff, 0x72, 0xd3, 0xe5, 0x37, 0xe1, 0x5a, 0x92, 0x4d, 0xa6, 0x81, 0xfc, 0x79, 0xa8, - 0x12, 0xec, 0x9f, 0x39, 0x16, 0xde, 0xf3, 0x6c, 0xe1, 0x62, 0xd5, 0x1f, 0x6d, 0x08, 0x6f, 0x7a, - 0x8e, 0xd1, 0x63, 0x64, 0x5a, 0x1f, 0xca, 0xe1, 0xde, 0x81, 0xee, 0x42, 0x9e, 0xce, 0x36, 0xd1, - 0x5e, 0x7c, 0x05, 0x66, 0x18, 0xba, 0x1d, 0xb3, 0x2d, 0x88, 0x60, 0xcb, 0x73, 0x6d, 0x22, 0x26, - 0x70, 0x85, 0xc2, 0x06, 0x1c, 0xa4, 0xfd, 0xb4, 0x00, 0xd7, 0xf8, 0x6a, 0xfc, 0x31, 0x36, 0xfd, - 0xe0, 0x10, 0x9b, 0x41, 0xa6, 0xc5, 0xeb, 0xcb, 0x74, 0x9f, 0xf2, 0x2f, 0xbf, 0x77, 0x16, 0x2e, - 0x75, 0x9f, 0xee, 0x41, 0xed, 0x70, 0x16, 0x60, 0x62, 0x9c, 0xfb, 0x4e, 0x10, 0x60, 0x97, 0xad, - 0x2b, 0x79, 0xbd, 0xca, 0x80, 0x9f, 0x72, 0x18, 0x75, 0x4d, 0x39, 0x91, 0x8f, 0x4d, 0x9b, 0xad, - 0x2a, 0x79, 0xbd, 0xcc, 0x20, 0x3a, 0x36, 0x99, 0xbb, 0x73, 0x8a, 0x67, 0x73, 0x16, 0x25, 0xae, - 0x5f, 0x0a, 0x93, 0x1c, 0x6e, 0x40, 0x99, 0x91, 0x30, 0x06, 0x65, 0xbe, 0x80, 0x52, 0x00, 0xab, - 0xff, 0x16, 0xa8, 0xe6, 0x64, 0xe2, 0x7b, 0xcf, 0x9d, 0xb1, 0x19, 0x60, 0x83, 0x38, 0xdf, 0xc1, - 0x0d, 0x60, 0x34, 0xeb, 0x11, 0xf8, 0xc0, 0xf9, 0x0e, 0x46, 0x0f, 0xa1, 0xe4, 0xb8, 0x01, 0xf6, - 0xcf, 0xcc, 0x51, 0xa3, 0xca, 0x34, 0x87, 0xe6, 0x59, 0x98, 0x9e, 0xc0, 0xe8, 0x21, 0x4d, 0x92, - 0x35, 0x6d, 0xb2, 0x51, 0x5b, 0x60, 0xfd, 0x04, 0xcf, 0x08, 0x5d, 0xf7, 0x03, 0xec, 0x8f, 0x1b, - 0x75, 0x86, 0x66, 0xdf, 0xe8, 0xd7, 0x52, 0xc3, 0xa2, 0x75, 0xd6, 0xf0, 0x57, 0xd2, 0xc3, 0x22, - 0xee, 0x7b, 0x5f, 0x1e, 0x1c, 0xa1, 0xf7, 0xa0, 0xf2, 0xf9, 0x14, 0xfb, 0x33, 0x83, 0x07, 0x92, - 0x6a, 0x34, 0x90, 0xfc, 0x55, 0x8a, 0xe0, 0xc3, 0x0b, 0x9f, 0x87, 0xdf, 0x54, 0x8b, 0xd6, 0x64, - 0x6a, 0x4c, 0x59, 0x2a, 0x6f, 0x83, 0x6b, 0xd1, 0x9a, 0x4c, 0x9f, 0xd2, 0x32, 0x7a, 0x08, 0x57, - 0x62, 0x5d, 0x3d, 0xe3, 0x8a, 0x44, 0x8c, 0x6c, 0x23, 0xda, 0xdb, 0x33, 0xaa, 0xca, 0x4f, 0xf2, - 0xa5, 0x8a, 0x5a, 0xd5, 0x4e, 0x00, 0xda, 0x2c, 0x5f, 0x4d, 0xcd, 0xe1, 0x05, 0xe6, 0xd2, 0x07, - 0x50, 0xe1, 0xf9, 0x6d, 0x83, 0xe5, 0x1d, 0x73, 0x2c, 0xef, 0xb8, 0xf5, 0x50, 0x1e, 0x48, 0xd0, - 0x4d, 0x98, 0xf3, 0x63, 0xf9, 0x47, 0xb0, 0xc2, 0x6f, 0xed, 0x43, 0xa8, 0xce, 0x5b, 0x7a, 0xf6, - 0x08, 0x3d, 0x48, 0x26, 0xd4, 0x45, 0xdf, 0xe7, 0x44, 0x61, 0x2a, 0x5d, 0x7b, 0x06, 0xf5, 0xa1, - 0x6f, 0xba, 0xe4, 0x08, 0x8b, 0x85, 0xf0, 0x05, 0x24, 0xd5, 0xa0, 0xc0, 0x27, 0x41, 0x2e, 0x65, - 0x12, 0x70, 0x94, 0xf6, 0x0e, 0x14, 0xf6, 0xb0, 0x7f, 0xcc, 0x12, 0x69, 0x81, 0xe9, 0x1f, 0xe3, - 0x60, 0x99, 0xcf, 0xcb, 0xb1, 0xda, 0x2e, 0x54, 0x06, 0x93, 0x91, 0x23, 0xa2, 0x07, 0xf4, 0x16, - 0x14, 0x27, 0xde, 0xc8, 0xb1, 0x66, 0x22, 0x01, 0xbb, 0x21, 0xbb, 0x80, 0xad, 0xd3, 0x3e, 0x43, - 0xe8, 0x82, 0x80, 0x9a, 0x17, 0xb3, 0x3e, 0x2a, 0x4d, 0x55, 0x67, 0xdf, 0xda, 0x0e, 0xd4, 0x06, - 0xe7, 0x4e, 0x60, 0x9d, 0x7c, 0xea, 0x04, 0x2e, 0x26, 0x84, 0xba, 0xe7, 0xcc, 0x95, 0x08, 0xd3, - 0xc2, 0x45, 0x5a, 0xec, 0xd9, 0x74, 0x06, 0x3a, 0xc4, 0x38, 0xe7, 0x64, 0x22, 0xee, 0x2d, 0x3b, - 0x44, 0xd4, 0xd3, 0x86, 0x80, 0xb6, 0xcd, 0xc0, 0x3a, 0x89, 0x73, 0xfb, 0x08, 0x54, 0xc2, 0x00, - 0xb2, 0x62, 0xa8, 0x6a, 0xb1, 0x86, 0xc5, 0xc8, 0xf5, 0x75, 0x12, 0x2d, 0x62, 0xa2, 0xfd, 0x59, - 0x1e, 0xb6, 0x16, 0x16, 0xc5, 0x8c, 0xbe, 0xb5, 0xb4, 0x1a, 0x36, 0x68, 0xb9, 0xa8, 0xad, 0x47, - 0xc6, 0x5b, 0x98, 0x0b, 0x33, 0xc5, 0x6f, 0xc0, 0x7a, 0x20, 0x86, 0xdc, 0x18, 0xa5, 0x1c, 0xe1, - 0xc4, 0xed, 0x41, 0xaf, 0x07, 0x71, 0xfb, 0x88, 0xc5, 0x67, 0xf9, 0x44, 0x7c, 0xf6, 0xf5, 0xd0, - 0xd5, 0xc7, 0x13, 0xcf, 0x3a, 0x61, 0x0e, 0x17, 0x55, 0x4a, 0x6c, 0xcc, 0xbb, 0x14, 0x25, 0xfd, - 0x7d, 0x56, 0xa0, 0x9e, 0x02, 0xb7, 0x03, 0xde, 0x8d, 0x62, 0x8a, 0xed, 0x01, 0x27, 0xe8, 0xf3, - 0x7d, 0xa7, 0x30, 0xa6, 0xd6, 0x25, 0x02, 0xd3, 0x8a, 0xdc, 0x94, 0xfd, 0x63, 0xac, 0x73, 0x0c, - 0x7a, 0x1f, 0xaa, 0x84, 0xda, 0x93, 0x21, 0x76, 0x8d, 0x12, 0xa3, 0x94, 0x1b, 0xe0, 0xdc, 0xd2, - 0xf4, 0x0a, 0x89, 0x98, 0xdd, 0x07, 0x50, 0x8f, 0xa8, 0xd3, 0x38, 0x7b, 0xc4, 0x96, 0xd4, 0x70, - 0x2d, 0x8c, 0x4e, 0x33, 0xbd, 0x6a, 0x45, 0x27, 0x5d, 0x3b, 0xc5, 0x24, 0x80, 0xd5, 0x6d, 0xf0, - 0xba, 0x8b, 0x66, 0xb4, 0x68, 0x17, 0x47, 0xb0, 0xde, 0x22, 0xa7, 0x42, 0xba, 0x2f, 0x6f, 0x93, - 0xd4, 0x7e, 0x4f, 0x01, 0x75, 0xde, 0x50, 0xc6, 0x84, 0x6e, 0xcd, 0xc5, 0xe7, 0x46, 0x32, 0x54, - 0xaf, 0xb8, 0xf8, 0x5c, 0x97, 0xd6, 0x70, 0x97, 0x46, 0xeb, 0xe7, 0x86, 0x98, 0x78, 0xdc, 0x85, - 0xcf, 0xeb, 0xe0, 0xe2, 0xf3, 0x3e, 0x9b, 0x7c, 0x44, 0xfb, 0x43, 0x05, 0x90, 0x8e, 0x27, 0x9e, - 0x1f, 0x64, 0xef, 0xb4, 0x06, 0xf9, 0x11, 0x3e, 0x0a, 0x96, 0x74, 0x99, 0xe1, 0xd0, 0xeb, 0x50, - 0xf0, 0x9d, 0xe3, 0x93, 0x60, 0x49, 0x36, 0x9f, 0x23, 0xb5, 0x36, 0x5c, 0x89, 0x09, 0x93, 0x29, - 0xe0, 0xf9, 0xbe, 0x02, 0x9b, 0x2d, 0x72, 0xca, 0x87, 0xfb, 0xcb, 0x1e, 0x49, 0x76, 0x64, 0xc3, - 0xcc, 0x9c, 0x9f, 0xac, 0xc8, 0x23, 0x1b, 0x0a, 0x6a, 0x53, 0x88, 0x76, 0x00, 0x6b, 0x4c, 0x8a, - 0x5e, 0x67, 0x71, 0xc8, 0x94, 0xcb, 0x87, 0x2c, 0xb7, 0x30, 0x64, 0x47, 0x70, 0x35, 0xd1, 0xbd, - 0x4c, 0xf6, 0x73, 0x07, 0x56, 0x25, 0xff, 0xca, 0xa3, 0x5a, 0x64, 0x5a, 0xf6, 0x3a, 0x3a, 0xc5, - 0x68, 0x13, 0xba, 0x44, 0xd2, 0xc1, 0x78, 0x45, 0x4d, 0xde, 0x9f, 0xa7, 0x08, 0xd2, 0x13, 0x0f, - 0x61, 0x92, 0xe0, 0x63, 0x68, 0x2c, 0xb6, 0x98, 0xc9, 0x06, 0xbe, 0x05, 0xd5, 0xa8, 0xdb, 0x44, - 0x43, 0x51, 0x9e, 0x4f, 0x9a, 0x9f, 0x74, 0x71, 0xdd, 0xd7, 0x19, 0x78, 0x7e, 0x6e, 0x77, 0x0f, - 0x6a, 0xd8, 0xb5, 0x23, 0x64, 0x7c, 0x56, 0x55, 0xb1, 0x6b, 0x87, 0x44, 0xda, 0xfb, 0x00, 0x3a, - 0xb6, 0x3c, 0xdf, 0xee, 0x9b, 0x8e, 0x9f, 0x12, 0xb2, 0xc4, 0x0e, 0x77, 0xf3, 0x22, 0x48, 0xd1, - 0xfe, 0x43, 0x81, 0x92, 0xf4, 0x6d, 0xe3, 0x8b, 0xb8, 0x92, 0x58, 0xc4, 0x19, 0xd2, 0xb4, 0x0d, - 0xb1, 0xab, 0x0a, 0xa4, 0x69, 0x33, 0x67, 0x8e, 0x25, 0x53, 0x4d, 0xdb, 0x60, 0x4e, 0x2a, 0xb3, - 0xb7, 0xbc, 0xce, 0xc8, 0xb7, 0x29, 0x20, 0xe9, 0x7b, 0xe5, 0x5f, 0xc0, 0xf7, 0x7a, 0x0d, 0xaa, - 0xc2, 0xbf, 0xe5, 0x2d, 0x16, 0xb8, 0x55, 0x0a, 0x18, 0x6b, 0xf4, 0x1e, 0xd4, 0x24, 0x09, 0x6f, - 0x57, 0xf8, 0xd2, 0x02, 0xc8, 0x9a, 0xd6, 0xfe, 0xa1, 0x04, 0x30, 0x3f, 0x27, 0x88, 0x9d, 0x65, - 0x28, 0xb1, 0xb3, 0x0c, 0xd4, 0x84, 0x92, 0x65, 0x4e, 0x4c, 0xcb, 0x09, 0x66, 0xb2, 0x7f, 0xb2, - 0x8c, 0x6e, 0x42, 0xd9, 0x3c, 0x33, 0x9d, 0x91, 0x79, 0x38, 0xc2, 0xb2, 0x7b, 0x21, 0x80, 0xca, - 0x2a, 0xf4, 0xc6, 0xe7, 0x5b, 0x9e, 0xcd, 0x37, 0xb1, 0x95, 0xb1, 0x09, 0x87, 0xde, 0x06, 0x44, - 0x44, 0xa8, 0x40, 0x5c, 0x73, 0x22, 0x08, 0x0b, 0x8c, 0x50, 0x15, 0x98, 0x81, 0x6b, 0x4e, 0x38, - 0xf5, 0xbb, 0xb0, 0xe9, 0x63, 0x0b, 0x3b, 0x67, 0x09, 0xfa, 0x22, 0xa3, 0x47, 0x21, 0x6e, 0x5e, - 0xe3, 0x16, 0xc0, 0xdc, 0x96, 0xd8, 0x06, 0x58, 0xd3, 0xcb, 0xa1, 0x19, 0x09, 0x67, 0x75, 0x34, - 0x4b, 0xf0, 0x2b, 0x31, 0xba, 0x0d, 0x89, 0x9a, 0xb3, 0xdb, 0x82, 0x35, 0x87, 0x18, 0x87, 0x53, - 0x32, 0x63, 0x5b, 0x5d, 0x49, 0x2f, 0x3a, 0x64, 0x7b, 0x4a, 0x66, 0xd4, 0x0a, 0xa6, 0x04, 0xdb, - 0xd1, 0xa0, 0xa1, 0x44, 0x01, 0x2c, 0x5a, 0x58, 0x08, 0x6e, 0x2a, 0x29, 0xc1, 0x4d, 0x32, 0x7a, - 0xa9, 0x2e, 0x46, 0x2f, 0xf1, 0xf8, 0xa7, 0x96, 0x8c, 0x7f, 0x62, 0xc1, 0x4d, 0x3d, 0x11, 0xdc, - 0x44, 0x23, 0x96, 0xf5, 0x17, 0x88, 0x58, 0xde, 0x01, 0x08, 0x7d, 0x7c, 0x1a, 0x15, 0x44, 0x3c, - 0xe3, 0xf9, 0x74, 0xd2, 0xcb, 0xd2, 0xed, 0x27, 0xe8, 0x7d, 0xa8, 0x31, 0x53, 0x77, 0x3c, 0xc3, - 0x37, 0xa9, 0xd5, 0x6d, 0x2c, 0xa9, 0x53, 0xa1, 0x64, 0x3d, 0x4f, 0xa7, 0x44, 0xe8, 0xeb, 0x50, - 0xa7, 0x1d, 0xc6, 0xf3, 0x6a, 0x68, 0x49, 0x35, 0x66, 0xbe, 0x58, 0xd6, 0xfb, 0x1a, 0x54, 0xbd, - 0x89, 0x31, 0x32, 0x03, 0xec, 0x5a, 0x0e, 0x26, 0x8d, 0x2b, 0xcb, 0x1a, 0xf3, 0x26, 0xbb, 0x92, - 0x08, 0x7d, 0x15, 0x80, 0x2d, 0xd5, 0x7c, 0xb6, 0x6d, 0x8a, 0xf5, 0x2d, 0x16, 0xc7, 0xea, 0x2c, - 0x87, 0xc6, 0xe7, 0x44, 0x62, 0x76, 0x5e, 0x7d, 0x81, 0xd9, 0x49, 0xcd, 0x6d, 0xe4, 0x9d, 0x1b, - 0xc4, 0xf2, 0x7c, 0xdc, 0xb8, 0xc6, 0x47, 0x88, 0x42, 0x06, 0x14, 0x40, 0xad, 0xdd, 0x36, 0xc7, - 0xe6, 0x31, 0xb6, 0xc5, 0xbe, 0x42, 0xe8, 0x7c, 0xdb, 0x62, 0xbb, 0x86, 0x2a, 0x30, 0x22, 0x7b, - 0xdc, 0xb3, 0xe9, 0x0e, 0xe4, 0x10, 0x83, 0x19, 0x21, 0x37, 0xb9, 0x06, 0xcf, 0xdf, 0x3b, 0xa4, - 0x45, 0x61, 0xcc, 0xee, 0x7e, 0x11, 0xea, 0x44, 0x9c, 0x93, 0x0a, 0x31, 0xaf, 0xb3, 0x6e, 0x89, - 0xc1, 0x95, 0x67, 0xa8, 0xac, 0x6b, 0x35, 0x12, 0x29, 0x11, 0x1a, 0xd5, 0x33, 0x59, 0x03, 0x1f, - 0xbb, 0x76, 0xa3, 0x19, 0xbd, 0x4b, 0x30, 0x18, 0x79, 0xe7, 0x43, 0x0a, 0xe6, 0xc2, 0xb3, 0x4f, - 0xed, 0x8f, 0x14, 0x28, 0x87, 0x08, 0x96, 0x50, 0x34, 0xa7, 0x04, 0x1b, 0x7c, 0xf1, 0xa4, 0x6b, - 0x86, 0xa2, 0x03, 0x03, 0x3d, 0x63, 0xd7, 0x63, 0x6e, 0x01, 0x2f, 0xb1, 0x61, 0x65, 0x0b, 0x87, - 0xa2, 0x97, 0x19, 0x84, 0x8e, 0x20, 0x5f, 0x1b, 0xc8, 0x74, 0x14, 0x08, 0x06, 0xab, 0x8c, 0xa0, - 0xc2, 0x61, 0x9c, 0xc3, 0x1d, 0x10, 0x45, 0xce, 0x22, 0xcf, 0x9b, 0xe0, 0x20, 0xca, 0x43, 0xfb, - 0xb1, 0x02, 0xd5, 0x68, 0x0f, 0x2f, 0x5e, 0xa8, 0x1f, 0xc1, 0xd5, 0x63, 0xec, 0x62, 0xca, 0xcb, - 0xb0, 0xa7, 0xbe, 0x08, 0xa5, 0xb1, 0x25, 0x16, 0xb5, 0x2b, 0x12, 0xd9, 0x11, 0xb8, 0x01, 0xb6, - 0xd0, 0x03, 0xd8, 0xa0, 0x8b, 0x50, 0x9c, 0x9e, 0xaf, 0x73, 0xeb, 0x14, 0x11, 0xa5, 0x7d, 0x1b, - 0x50, 0xe0, 0x05, 0xe6, 0x28, 0x4e, 0xcc, 0x7d, 0x7e, 0x95, 0x61, 0xa2, 0xd4, 0x6f, 0x00, 0x0f, - 0x15, 0xe8, 0x0e, 0xca, 0x57, 0x0d, 0xbe, 0x92, 0xd7, 0x42, 0x28, 0x5d, 0x3a, 0x68, 0x17, 0x81, - 0x39, 0xf4, 0x6c, 0xab, 0x45, 0xbf, 0x0c, 0xc0, 0x2f, 0xd9, 0x05, 0x54, 0x23, 0x7c, 0x73, 0xbd, - 0xf5, 0x30, 0x7e, 0xef, 0x4e, 0x37, 0x8f, 0x82, 0x5d, 0xcf, 0x32, 0x47, 0x54, 0x25, 0x58, 0x2f, - 0x53, 0x2c, 0xfb, 0x44, 0xdb, 0xe1, 0x7a, 0xcc, 0xeb, 0x73, 0x67, 0xe9, 0x4e, 0xb2, 0x3e, 0x23, - 0x89, 0x70, 0x10, 0x0b, 0x36, 0xe7, 0xf1, 0x26, 0xac, 0x3b, 0xc4, 0x38, 0xf2, 0x7c, 0x0b, 0x47, - 0xe3, 0xa1, 0x92, 0x5e, 0x73, 0xc8, 0x63, 0x0a, 0xdd, 0x95, 0x8e, 0x84, 0x7a, 0x62, 0x12, 0xc3, - 0xf2, 0xc6, 0x63, 0x27, 0x30, 0x78, 0xfc, 0x91, 0x67, 0x84, 0xf5, 0x13, 0x93, 0xb4, 0x19, 0x98, - 0x85, 0x20, 0xda, 0x33, 0xa8, 0x88, 0x23, 0x63, 0xd6, 0xc5, 0xaf, 0x41, 0x95, 0x4d, 0x52, 0x9f, - 0x15, 0x13, 0x41, 0xf9, 0x5c, 0x15, 0x7a, 0x65, 0x12, 0x7e, 0xb3, 0xa4, 0x09, 0x09, 0xb0, 0x74, - 0x00, 0xd8, 0xb7, 0xf6, 0x3f, 0x0a, 0x5c, 0x65, 0x8c, 0x5f, 0x35, 0x95, 0x26, 0x8e, 0xd8, 0x73, - 0x17, 0x1e, 0xb1, 0xb3, 0x10, 0x8a, 0xed, 0xa0, 0x5c, 0x70, 0xe1, 0x3b, 0x6f, 0x44, 0xc8, 0xa5, - 0xe0, 0x24, 0xd2, 0xdb, 0x4f, 0x01, 0xd9, 0xbe, 0x61, 0x4e, 0x03, 0x8f, 0xcc, 0x5c, 0x4b, 0x66, - 0x76, 0xb8, 0x23, 0xf0, 0x56, 0x5a, 0x66, 0x87, 0x71, 0xea, 0xe8, 0xad, 0x69, 0xe0, 0x0d, 0x66, - 0xae, 0x25, 0xf2, 0x3a, 0xaa, 0xed, 0xb7, 0x04, 0x0f, 0x71, 0xe6, 0x6d, 0x03, 0xea, 0xe0, 0xb1, - 0x17, 0xe0, 0xc7, 0xa6, 0x33, 0xc2, 0xf6, 0x33, 0x2f, 0xc0, 0x3e, 0xb9, 0x78, 0x82, 0xbc, 0x07, - 0xb5, 0x23, 0x46, 0x6c, 0x9c, 0x31, 0xea, 0xd4, 0x8c, 0x45, 0xf5, 0x28, 0xc2, 0x4f, 0x3b, 0x84, - 0x4a, 0x74, 0xd0, 0xef, 0x85, 0x1c, 0xc4, 0x59, 0xb5, 0xc2, 0x96, 0x36, 0x51, 0x87, 0x9f, 0x7f, - 0xd3, 0x3d, 0x17, 0xd3, 0x5d, 0x26, 0x66, 0x44, 0xd2, 0x77, 0xde, 0x60, 0xa8, 0x08, 0x4f, 0xa2, - 0x7d, 0x37, 0x07, 0x55, 0x71, 0x07, 0x64, 0xd6, 0x1f, 0x99, 0x2e, 0xf5, 0x51, 0x2d, 0x1f, 0xb3, - 0xcd, 0x42, 0x49, 0xf7, 0x51, 0x05, 0x1a, 0xbd, 0x0d, 0x6b, 0xd3, 0x89, 0xcd, 0x28, 0x53, 0xbd, - 0xd9, 0xed, 0x5c, 0x43, 0xd1, 0x25, 0x09, 0xba, 0x0d, 0x10, 0x1e, 0xed, 0x87, 0xe1, 0xd7, 0x1c, - 0x82, 0x1e, 0xc1, 0x9a, 0xcd, 0x54, 0x2a, 0x73, 0xa0, 0x22, 0x56, 0x5d, 0xd4, 0xb3, 0x2e, 0x09, - 0xa9, 0x55, 0xc4, 0xe6, 0x4a, 0x21, 0x6a, 0x15, 0x91, 0x6e, 0xea, 0x95, 0xa3, 0x88, 0x1e, 0xa5, - 0x39, 0x17, 0x23, 0xe6, 0xfc, 0x01, 0xd4, 0x5a, 0xe7, 0xe6, 0x29, 0x96, 0xc7, 0x8b, 0xd4, 0x4d, - 0x36, 0x0f, 0x5d, 0xcf, 0x1f, 0x9b, 0xa3, 0xb8, 0xba, 0xeb, 0x12, 0x2c, 0x2e, 0x20, 0xfc, 0x34, - 0x07, 0xd7, 0x92, 0x13, 0xe1, 0x67, 0xe7, 0x76, 0x06, 0xed, 0x87, 0xbc, 0x86, 0x28, 0x0f, 0x8c, - 0xf8, 0x7d, 0xbd, 0xba, 0x00, 0xcb, 0x13, 0xa3, 0x0f, 0x61, 0xcb, 0xc7, 0x9f, 0x4f, 0x1d, 0x1f, - 0x1b, 0x36, 0x0e, 0xb8, 0x9d, 0x89, 0xc9, 0xc6, 0x56, 0x16, 0x36, 0x9a, 0x57, 0x05, 0x49, 0x47, - 0x50, 0x88, 0x79, 0xf6, 0x0b, 0xd4, 0x3b, 0xe1, 0x36, 0x64, 0x4c, 0x46, 0xa6, 0x2b, 0x06, 0x02, - 0xcd, 0x1d, 0x06, 0x69, 0x5e, 0x7a, 0xd5, 0x8f, 0x1a, 0xdb, 0x87, 0x50, 0x37, 0x99, 0xda, 0xe5, - 0x8e, 0x2d, 0xd2, 0x2d, 0x62, 0xcd, 0x88, 0x0d, 0x89, 0x5e, 0x33, 0xa3, 0x45, 0xed, 0x7b, 0x39, - 0xd8, 0x1c, 0x58, 0x66, 0x10, 0xd0, 0x85, 0x2a, 0xf3, 0x85, 0x8c, 0x3b, 0x0b, 0x47, 0xfc, 0xac, - 0xa3, 0xf3, 0x79, 0xfb, 0x82, 0xb7, 0xef, 0x22, 0xc9, 0xfe, 0xfc, 0x05, 0xc9, 0xfe, 0x4d, 0x28, - 0x1c, 0xfb, 0xde, 0x74, 0xc2, 0x34, 0x54, 0xd6, 0x79, 0x61, 0x7e, 0x2b, 0x84, 0x79, 0x2c, 0x45, - 0x66, 0x67, 0x42, 0x2c, 0xea, 0xaa, 0xb0, 0xad, 0x3a, 0xf0, 0x67, 0x06, 0x3f, 0xeb, 0xe7, 0xa9, - 0x79, 0x60, 0xa0, 0x5d, 0x0a, 0xd1, 0xce, 0xe0, 0x6a, 0x42, 0x13, 0x99, 0x2c, 0xf0, 0x1d, 0xb8, - 0x72, 0xe4, 0xb8, 0x0e, 0x39, 0xc1, 0xb6, 0x31, 0xc1, 0xbe, 0x85, 0xdd, 0x40, 0x5e, 0x27, 0xcd, - 0xeb, 0x48, 0xa2, 0xfa, 0x21, 0x46, 0xeb, 0xb0, 0x83, 0xa6, 0x9d, 0xf6, 0xc0, 0x3c, 0xc2, 0x7d, - 0xcf, 0x71, 0x33, 0xed, 0x01, 0x1a, 0x66, 0xe7, 0x4c, 0x31, 0x2e, 0x99, 0xc4, 0xa7, 0xee, 0xa1, - 0x79, 0x84, 0x8d, 0x09, 0xe5, 0x21, 0xa4, 0x2e, 0x13, 0xc9, 0x54, 0x3b, 0x82, 0xc6, 0x53, 0xb6, - 0x16, 0xbd, 0xa2, 0xbc, 0x97, 0xb5, 0xe3, 0xc1, 0xf5, 0x94, 0x76, 0x32, 0xf5, 0xe8, 0x75, 0xa8, - 0xbb, 0xf8, 0xdc, 0x58, 0x68, 0xad, 0xea, 0xe2, 0xf3, 0x90, 0xb7, 0xf6, 0x43, 0x05, 0xee, 0xf0, - 0x16, 0xc5, 0x61, 0xda, 0x17, 0xd1, 0x41, 0xce, 0x49, 0x4e, 0x8a, 0xaa, 0x5e, 0x16, 0x90, 0x9e, - 0x4d, 0xa3, 0xfc, 0xe1, 0x70, 0x97, 0x4d, 0x87, 0x55, 0x9d, 0x7e, 0x26, 0x34, 0x92, 0x4f, 0x6a, - 0xe4, 0x6f, 0x15, 0xb8, 0xbb, 0x5c, 0xc0, 0xcc, 0x63, 0xfd, 0x52, 0x22, 0xbe, 0x0e, 0xf5, 0xb1, - 0xe3, 0x1a, 0x0b, 0x62, 0x56, 0xc7, 0x8e, 0x3b, 0x57, 0xe5, 0x1f, 0x2b, 0x00, 0x7a, 0xe8, 0x8f, - 0x2d, 0x86, 0x96, 0xca, 0xa5, 0xe7, 0x66, 0xb9, 0xcb, 0xce, 0xcd, 0x56, 0x2f, 0x39, 0x37, 0xcb, - 0xc7, 0x43, 0x4b, 0xed, 0xf7, 0x15, 0xd8, 0xa0, 0xbe, 0xc8, 0x2b, 0xac, 0x71, 0xaf, 0x43, 0x91, - 0x1f, 0x96, 0xa7, 0x1e, 0x1c, 0x0b, 0x1c, 0x4b, 0xdf, 0xb1, 0x60, 0xde, 0x71, 0x6d, 0xfc, 0x5c, - 0xc8, 0xc9, 0xe3, 0xfb, 0x1e, 0x85, 0x68, 0x3f, 0xca, 0x01, 0x8a, 0x4a, 0x92, 0x69, 0xe0, 0x5e, - 0x38, 0x05, 0x76, 0xa9, 0x3c, 0xd4, 0x97, 0x8d, 0x38, 0xdc, 0xd2, 0x6d, 0x50, 0xa3, 0xb7, 0x6e, - 0x58, 0x64, 0x16, 0xf1, 0xb0, 0x69, 0x68, 0x5b, 0x17, 0x95, 0xe2, 0x27, 0xfa, 0xf1, 0xe5, 0xba, - 0xc6, 0x69, 0x84, 0x93, 0x14, 0xbd, 0x7e, 0x56, 0x14, 0xe7, 0xb3, 0x4b, 0xae, 0x9f, 0x69, 0xbf, - 0xce, 0x6e, 0x3e, 0x1c, 0x4c, 0x68, 0xb0, 0xe3, 0xf9, 0x5f, 0xf8, 0xad, 0x33, 0xed, 0x1f, 0x15, - 0x76, 0xdd, 0x72, 0xde, 0x40, 0xa6, 0x51, 0xb8, 0xf0, 0x62, 0x1b, 0x82, 0xbc, 0x8d, 0x09, 0x8f, - 0xc4, 0xaa, 0x3a, 0xfb, 0xa6, 0xec, 0x23, 0xde, 0x73, 0x5d, 0xb2, 0x97, 0x62, 0x08, 0xff, 0x43, - 0xd0, 0xb0, 0x63, 0x30, 0xc7, 0x95, 0x2f, 0x2e, 0xd8, 0x37, 0xcb, 0xf3, 0x53, 0xeb, 0xd9, 0x33, - 0x9f, 0x0f, 0x07, 0x59, 0xf3, 0xd0, 0x63, 0xf3, 0xb9, 0x11, 0x06, 0x0b, 0x0b, 0x57, 0xf3, 0x0b, - 0x63, 0xf3, 0xf9, 0x90, 0xa7, 0x09, 0x4e, 0x9d, 0x89, 0x61, 0x9d, 0x60, 0xeb, 0x54, 0xc4, 0x4f, - 0x65, 0x0a, 0x61, 0x27, 0x76, 0xda, 0x9f, 0x88, 0x09, 0x25, 0x04, 0xc9, 0x7a, 0x8d, 0x8c, 0x8a, - 0x32, 0xa2, 0x61, 0xdc, 0x05, 0x02, 0xc1, 0xd8, 0x7c, 0xce, 0x42, 0x3d, 0x21, 0xd5, 0xcc, 0xb5, - 0xb0, 0x6d, 0xd8, 0x96, 0xbc, 0x41, 0x54, 0xe6, 0x90, 0x8e, 0x45, 0xb4, 0xdf, 0x51, 0xe0, 0x4a, - 0xe4, 0x28, 0x88, 0x64, 0x5e, 0xb8, 0x59, 0x06, 0x3e, 0x72, 0x08, 0x59, 0x66, 0x10, 0x96, 0xba, - 0x4c, 0xf8, 0x11, 0xab, 0x0b, 0x7e, 0xc4, 0x9f, 0x2a, 0xb0, 0x19, 0x17, 0xe2, 0xff, 0xc5, 0x8f, - 0x48, 0xf8, 0x3f, 0xab, 0x09, 0xff, 0x47, 0xfb, 0x91, 0x02, 0xb7, 0x98, 0x58, 0x2d, 0xd7, 0x8e, - 0xf9, 0x39, 0x5f, 0x8a, 0x96, 0x42, 0x17, 0x6d, 0x35, 0xea, 0xa2, 0x25, 0x74, 0x97, 0x5f, 0xd0, - 0xdd, 0x7f, 0x29, 0x70, 0x7b, 0x99, 0x90, 0x99, 0xb4, 0xf8, 0x21, 0x5c, 0xe7, 0x62, 0x2e, 0xd7, - 0xe5, 0x16, 0x23, 0x78, 0xbc, 0xa8, 0xd0, 0x8f, 0xe0, 0x06, 0xe1, 0x32, 0xa4, 0xd6, 0xe6, 0x23, - 0x7f, 0x5d, 0x90, 0x3c, 0xbe, 0x6c, 0x40, 0xf2, 0xc9, 0x01, 0x39, 0x61, 0x57, 0x0f, 0x3b, 0x6d, - 0x79, 0x65, 0x2c, 0x7a, 0xc7, 0xe8, 0x25, 0xbd, 0xef, 0xd8, 0x5d, 0xb4, 0xdc, 0xc2, 0x5d, 0xb4, - 0x3f, 0x50, 0xe0, 0x7a, 0x4a, 0x53, 0x59, 0x5f, 0x2a, 0xf0, 0xf7, 0x43, 0xac, 0x9d, 0x82, 0x2e, - 0x4a, 0x91, 0x75, 0x65, 0xf5, 0xa2, 0x75, 0x45, 0xfb, 0xa7, 0x1c, 0xc0, 0x3c, 0x33, 0x89, 0xea, - 0x90, 0xdb, 0x69, 0x0b, 0x8f, 0x20, 0xb7, 0xd3, 0xa6, 0x3e, 0xc7, 0x0e, 0x96, 0x1e, 0x1a, 0xfd, - 0xa4, 0xcb, 0xe0, 0xc0, 0x32, 0xe5, 0x96, 0xcf, 0xbe, 0xd1, 0x5d, 0xa8, 0xb4, 0xbd, 0x89, 0xef, - 0x59, 0x98, 0x10, 0xcf, 0x17, 0x76, 0x14, 0x05, 0x51, 0x31, 0x3b, 0x78, 0x84, 0x03, 0x99, 0xb3, - 0x12, 0x25, 0x5a, 0x93, 0x7f, 0xe9, 0xa6, 0x7b, 0x8c, 0x45, 0xf4, 0x1a, 0x05, 0x51, 0x09, 0xfa, - 0x53, 0x19, 0x1f, 0xd0, 0x4f, 0xd4, 0x84, 0x52, 0xdf, 0xc7, 0x2c, 0xb7, 0x2b, 0x2e, 0xec, 0x84, - 0x65, 0xf4, 0x75, 0xb8, 0xd6, 0xb2, 0x58, 0x34, 0xd7, 0xc7, 0x84, 0x38, 0x63, 0x87, 0x04, 0x0e, - 0x55, 0xfc, 0xa9, 0xb8, 0xba, 0xb3, 0x04, 0x4b, 0xe5, 0xe3, 0x09, 0x26, 0x91, 0x89, 0x17, 0x25, - 0xda, 0x96, 0xee, 0x8d, 0x46, 0x87, 0xa6, 0x75, 0x2a, 0x52, 0xf0, 0x61, 0x59, 0xfb, 0x1b, 0x05, - 0x36, 0xc5, 0x79, 0x96, 0xd8, 0x30, 0xb3, 0x58, 0x4b, 0xf2, 0x44, 0x3f, 0xf7, 0x82, 0x27, 0xfa, - 0x91, 0xed, 0x7b, 0xf5, 0xe2, 0xdb, 0xe3, 0x5a, 0x17, 0xae, 0x26, 0xe4, 0xcc, 0x7a, 0xf0, 0xda, - 0xe4, 0x7c, 0xf6, 0x1c, 0xea, 0x29, 0x79, 0xa3, 0x33, 0x6c, 0x0f, 0xc9, 0x17, 0xfc, 0x10, 0x06, - 0xbd, 0x09, 0xeb, 0xd4, 0xa9, 0xf5, 0x45, 0x03, 0xd2, 0x84, 0xf3, 0x7a, 0x6d, 0x1c, 0x6d, 0x56, - 0x7b, 0x02, 0x37, 0x52, 0xa5, 0xc9, 0xd4, 0xb7, 0x13, 0xb8, 0x31, 0xc0, 0x41, 0xf7, 0x79, 0x80, - 0x7d, 0xd7, 0x1c, 0xcd, 0x67, 0x49, 0x96, 0xbe, 0xdd, 0x8c, 0x3e, 0xb8, 0x13, 0xae, 0xf3, 0xfc, - 0x7d, 0xdd, 0x2e, 0xdc, 0x4c, 0x6f, 0x29, 0x93, 0xdc, 0x9f, 0xc0, 0x8d, 0x9d, 0x2f, 0x48, 0x6e, - 0xed, 0xdb, 0x70, 0x73, 0xe7, 0x0b, 0x93, 0xec, 0x62, 0x2d, 0x3c, 0xb8, 0x0b, 0xe5, 0xf0, 0x51, - 0x2b, 0x5a, 0x83, 0xd5, 0xfe, 0xd3, 0xa1, 0xba, 0x82, 0x00, 0x8a, 0x9d, 0xee, 0x6e, 0x77, 0xd8, - 0x55, 0x95, 0x07, 0xdf, 0xcd, 0x41, 0x39, 0x7c, 0x0e, 0x8a, 0x8a, 0x90, 0x3b, 0x78, 0xa2, 0xae, - 0xa0, 0x0a, 0xac, 0x3d, 0xdd, 0x7f, 0xb2, 0x7f, 0xf0, 0xe9, 0xbe, 0xaa, 0xa0, 0x4d, 0x50, 0xf7, - 0x0f, 0x86, 0xc6, 0xf6, 0xc1, 0xc1, 0x70, 0x30, 0xd4, 0x5b, 0xfd, 0x7e, 0xb7, 0xa3, 0xe6, 0xd0, - 0x15, 0x58, 0x1f, 0x0c, 0x0f, 0xf4, 0xae, 0x31, 0x3c, 0xd8, 0xdb, 0x1e, 0x0c, 0x0f, 0xf6, 0xbb, - 0xea, 0x2a, 0x6a, 0xc0, 0x66, 0x6b, 0x57, 0xef, 0xb6, 0x3a, 0x9f, 0xc5, 0xc9, 0xf3, 0x14, 0xd3, - 0xdb, 0x6f, 0x1f, 0xec, 0xf5, 0x5b, 0xc3, 0xde, 0xf6, 0x6e, 0xd7, 0x78, 0xd6, 0xd5, 0x07, 0xbd, - 0x83, 0x7d, 0xb5, 0x40, 0xd9, 0xeb, 0xdd, 0x9d, 0xde, 0xc1, 0xbe, 0x41, 0x5b, 0x79, 0x7c, 0xf0, - 0x74, 0xbf, 0xa3, 0x16, 0xd1, 0x0d, 0xd8, 0xda, 0xd9, 0x3d, 0xd8, 0x6e, 0xed, 0x1a, 0xed, 0x83, - 0xfd, 0xc7, 0xbd, 0x9d, 0x08, 0x72, 0x8d, 0x56, 0xe9, 0x3c, 0xed, 0xef, 0xf6, 0xda, 0xad, 0x61, - 0xb7, 0x63, 0x74, 0xf7, 0x87, 0xfa, 0x67, 0x6a, 0x89, 0x4a, 0xc4, 0x3e, 0x23, 0xa4, 0x65, 0xb4, - 0x01, 0xb5, 0xde, 0xfe, 0xb3, 0xd6, 0x6e, 0xaf, 0x63, 0x3c, 0x6b, 0xed, 0x3e, 0xed, 0xaa, 0x80, - 0x10, 0xd4, 0x3b, 0xad, 0x61, 0xcb, 0x60, 0xd2, 0xb4, 0x87, 0xdd, 0x8e, 0x5a, 0x79, 0xf0, 0x18, - 0x2a, 0x91, 0xdb, 0xa4, 0xb4, 0x01, 0xd1, 0x7f, 0x63, 0xf0, 0xac, 0x6d, 0xec, 0x1d, 0x74, 0xba, - 0xea, 0x0a, 0x5a, 0x87, 0x4a, 0xbf, 0x33, 0x07, 0x28, 0x48, 0x85, 0x6a, 0xab, 0xdf, 0x9b, 0x43, - 0x72, 0x0f, 0xde, 0x87, 0x4a, 0xe4, 0x6e, 0x17, 0x2a, 0x41, 0x7e, 0xd0, 0x6e, 0xed, 0xf3, 0xba, - 0xad, 0x7e, 0x5f, 0x3f, 0xf8, 0x66, 0x6f, 0xaf, 0x45, 0x15, 0x4f, 0x07, 0xe1, 0xe9, 0xa0, 0xfb, - 0xa4, 0xfb, 0x99, 0x9a, 0x7b, 0xd0, 0x87, 0x7a, 0xdc, 0x1b, 0xa6, 0x03, 0x30, 0x78, 0xda, 0x6e, - 0x77, 0x07, 0x03, 0x3e, 0x1a, 0xc3, 0xde, 0x5e, 0xf7, 0xe0, 0xe9, 0x90, 0xd7, 0x6b, 0xb7, 0xf6, - 0xdb, 0xdd, 0x5d, 0x35, 0x47, 0x11, 0x7a, 0xb7, 0xbf, 0xdb, 0x6a, 0x53, 0xdd, 0xd3, 0xc2, 0xd3, - 0xfd, 0xfd, 0xde, 0xfe, 0x8e, 0x9a, 0x7f, 0xf0, 0xf7, 0x0a, 0x94, 0xd9, 0x7e, 0xf3, 0xc4, 0x71, - 0x6d, 0x5a, 0xe7, 0x20, 0x38, 0xc1, 0x3e, 0x51, 0x57, 0xe8, 0x10, 0xef, 0xb4, 0x55, 0x85, 0x5a, - 0xc3, 0x0e, 0x0e, 0xd4, 0x1c, 0x93, 0xd1, 0x32, 0x5d, 0x75, 0x95, 0xca, 0x18, 0xd9, 0x4c, 0xd4, - 0x3c, 0x33, 0x14, 0xb6, 0x47, 0xa8, 0x05, 0x8a, 0x8c, 0xec, 0x17, 0x6a, 0x91, 0x99, 0xd3, 0x34, - 0x50, 0xd7, 0x50, 0x75, 0xbe, 0x51, 0xa8, 0x25, 0xd4, 0x5c, 0xb6, 0x35, 0xa8, 0x65, 0x26, 0x3b, - 0x5b, 0xf0, 0x55, 0xa0, 0xb5, 0xe4, 0x12, 0xaf, 0x56, 0x1e, 0xfd, 0xf7, 0x16, 0xe4, 0xfa, 0x1d, - 0xb4, 0x07, 0xf5, 0xf8, 0xb5, 0x61, 0x74, 0x23, 0xbc, 0x2d, 0xbd, 0x78, 0x27, 0xb9, 0x79, 0x33, - 0x1d, 0xc9, 0x27, 0x8a, 0xb6, 0x82, 0x5a, 0x00, 0xf3, 0x6b, 0xd6, 0x68, 0x6b, 0xf1, 0xe2, 0x35, - 0x67, 0xd3, 0x58, 0x76, 0x23, 0x5b, 0x5b, 0x41, 0xef, 0xc2, 0xea, 0x90, 0x78, 0x48, 0x44, 0x86, - 0xf3, 0xb7, 0xd0, 0xcd, 0x8d, 0x08, 0x44, 0x52, 0xdf, 0x57, 0xde, 0x55, 0xd0, 0x47, 0x50, 0x0e, - 0x1f, 0x9a, 0x22, 0xf1, 0x08, 0x3e, 0xf9, 0xd2, 0xb7, 0xb9, 0xb5, 0x00, 0x0f, 0x5b, 0xdc, 0x83, - 0x7a, 0xfc, 0xa9, 0xaa, 0xd4, 0x41, 0xea, 0x33, 0x58, 0xa9, 0x83, 0xf4, 0xd7, 0xad, 0xda, 0x0a, - 0xfa, 0x00, 0xd6, 0xc4, 0x73, 0x52, 0x24, 0x56, 0x92, 0xf8, 0xe3, 0xd4, 0xe6, 0xd5, 0x04, 0x34, - 0xac, 0x69, 0xc0, 0x66, 0xda, 0x5b, 0x4f, 0xf4, 0x9a, 0x6c, 0x71, 0xe9, 0x9b, 0xd2, 0xa6, 0x76, - 0x11, 0x49, 0xd8, 0xc0, 0x2f, 0x41, 0x49, 0x3e, 0xc5, 0x44, 0x57, 0xc3, 0x31, 0x88, 0xbe, 0x85, - 0x6c, 0x5e, 0x4b, 0x82, 0xa3, 0x95, 0xe5, 0x93, 0x46, 0x59, 0x39, 0xf1, 0x90, 0x52, 0x56, 0x4e, - 0xbe, 0x7c, 0xd4, 0x56, 0xd0, 0x0e, 0x54, 0xa3, 0x2f, 0xff, 0xd0, 0xf5, 0xb0, 0x99, 0xe4, 0x5b, - 0xc4, 0x66, 0x33, 0x0d, 0x15, 0x1d, 0xac, 0x78, 0x02, 0x5f, 0x0e, 0x56, 0xea, 0xf9, 0x96, 0x1c, - 0xac, 0xf4, 0x9c, 0xbf, 0xb6, 0x82, 0x86, 0xb0, 0x9e, 0xb8, 0x4f, 0x89, 0x6e, 0x46, 0x73, 0x12, - 0x0b, 0x0c, 0x6f, 0x2d, 0xc1, 0x26, 0x2d, 0x32, 0x7c, 0xcf, 0x86, 0xe6, 0x1a, 0x8d, 0x65, 0x85, - 0x9a, 0x5b, 0x0b, 0xf0, 0x50, 0xaa, 0x6d, 0xa8, 0xed, 0xe0, 0xa0, 0xef, 0xe3, 0xb3, 0xec, 0x3c, - 0x1e, 0x33, 0x1e, 0xf3, 0x37, 0x75, 0xa8, 0x99, 0xa0, 0x8d, 0x3c, 0xb4, 0xbb, 0x88, 0x4f, 0x07, - 0x2a, 0x91, 0x97, 0x5c, 0x48, 0x4c, 0xdd, 0xc5, 0x87, 0x72, 0xcd, 0xeb, 0x29, 0x98, 0x90, 0xcb, - 0x47, 0x50, 0x92, 0xf7, 0x06, 0xa5, 0xf1, 0x24, 0x2e, 0x2c, 0x4a, 0xe3, 0x49, 0x5e, 0x2f, 0xd4, - 0x56, 0xbf, 0x97, 0x53, 0xd0, 0x0e, 0x54, 0x22, 0x37, 0xec, 0xa4, 0x14, 0x8b, 0x37, 0x00, 0xa5, - 0x14, 0x29, 0xd7, 0xf1, 0x38, 0xa3, 0x4f, 0xa0, 0x16, 0xbb, 0x85, 0x26, 0xd5, 0x92, 0x76, 0xf3, - 0xae, 0x79, 0x23, 0x15, 0x17, 0x76, 0x6a, 0x00, 0x6a, 0xf2, 0xde, 0x17, 0xba, 0x15, 0x6d, 0x7f, - 0x91, 0xe3, 0xed, 0x65, 0xe8, 0x28, 0xd3, 0xe4, 0x4b, 0x31, 0xc9, 0x74, 0xc9, 0x4b, 0x34, 0xc9, - 0x74, 0xd9, 0x03, 0x33, 0xce, 0x34, 0xf9, 0x2c, 0x4b, 0x32, 0x5d, 0xf2, 0x42, 0x4c, 0x32, 0x5d, - 0xf6, 0x9a, 0x4b, 0x5b, 0xa1, 0xaa, 0x8c, 0xc5, 0xce, 0x52, 0x95, 0x69, 0xe7, 0x3c, 0x52, 0x95, - 0xa9, 0x27, 0x1f, 0x7c, 0x5a, 0xc7, 0x8f, 0x15, 0x22, 0xfb, 0xd0, 0x62, 0x86, 0x3c, 0xb2, 0x0f, - 0xa5, 0x64, 0xa7, 0xb5, 0x15, 0xf4, 0x0c, 0x36, 0x16, 0xd2, 0xfa, 0x48, 0xf4, 0x68, 0xd9, 0xb9, - 0x42, 0xf3, 0xce, 0x52, 0x7c, 0xc8, 0xf7, 0x54, 0x1e, 0x4b, 0x2c, 0xe6, 0xc6, 0xd1, 0x1b, 0xd1, - 0xea, 0x4b, 0x93, 0xfb, 0xcd, 0x37, 0x2f, 0x23, 0x8b, 0xcc, 0xe0, 0xca, 0x3c, 0x83, 0x1b, 0xee, - 0xa6, 0x0b, 0xe9, 0x65, 0xb9, 0x9b, 0x2e, 0x66, 0x7b, 0xc5, 0x6a, 0xd4, 0x81, 0x4a, 0x24, 0x09, - 0x89, 0xe6, 0x9b, 0x6f, 0x22, 0xf1, 0xd9, 0xbc, 0x9e, 0x82, 0x89, 0xcc, 0xe0, 0x72, 0x98, 0x88, - 0x93, 0xeb, 0x51, 0x32, 0x45, 0xd8, 0xdc, 0x5a, 0x80, 0x47, 0x77, 0x80, 0x68, 0xb6, 0x4a, 0xee, - 0x00, 0x29, 0x69, 0x34, 0xb9, 0x03, 0xa4, 0x25, 0xb7, 0xb4, 0x15, 0x84, 0xe1, 0x5a, 0x7a, 0xea, - 0x06, 0xdd, 0x8b, 0xd4, 0x5b, 0x96, 0x7d, 0x6a, 0xbe, 0x7e, 0x31, 0x51, 0xd4, 0x84, 0x16, 0x72, - 0x19, 0x68, 0x3e, 0xd3, 0x52, 0xf3, 0x29, 0xd2, 0x84, 0x96, 0x26, 0x41, 0x38, 0xdf, 0x85, 0xbf, - 0x18, 0x92, 0x7c, 0x97, 0xfd, 0xd5, 0x91, 0xe4, 0xbb, 0xf4, 0xbf, 0x89, 0xf8, 0x14, 0x4f, 0xfe, - 0x51, 0x90, 0x9c, 0xe2, 0x4b, 0xfe, 0x92, 0x48, 0x4e, 0xf1, 0x65, 0xff, 0x2f, 0xa4, 0xad, 0xa0, - 0x6f, 0xc2, 0xc6, 0xc2, 0xff, 0x42, 0x49, 0x61, 0x97, 0xfd, 0x15, 0x95, 0x14, 0x76, 0xe9, 0x1f, - 0x4a, 0x69, 0x2b, 0xef, 0x2a, 0x68, 0x17, 0x6a, 0xb1, 0xd8, 0x5d, 0x2e, 0x1e, 0x69, 0x89, 0x07, - 0xb9, 0x78, 0xa4, 0x06, 0xfb, 0xd4, 0xc8, 0xd1, 0xb7, 0xe4, 0x05, 0xec, 0x68, 0xcc, 0x3c, 0x40, - 0x77, 0xa3, 0xf5, 0xd2, 0x82, 0xfb, 0xe6, 0x6b, 0x17, 0x50, 0x44, 0xfd, 0xb2, 0xb4, 0xd0, 0x56, - 0xfa, 0x65, 0x17, 0x04, 0xd8, 0xd2, 0x2f, 0xbb, 0x28, 0x32, 0xe6, 0x0d, 0xec, 0x5c, 0xd0, 0xc0, - 0xce, 0xe5, 0x0d, 0xec, 0x5c, 0xd8, 0xc0, 0xf6, 0x9b, 0xff, 0xfe, 0x77, 0x25, 0xe5, 0x5f, 0x7f, - 0x72, 0x5b, 0xf9, 0xb7, 0x9f, 0xdc, 0x56, 0x7e, 0xfc, 0x93, 0xdb, 0xca, 0x5f, 0xfe, 0xe7, 0xed, - 0x15, 0x50, 0x3d, 0xff, 0xf8, 0x61, 0xe0, 0x9c, 0x9e, 0x3d, 0x3c, 0x3d, 0x63, 0xff, 0x30, 0x76, - 0x58, 0x64, 0x3f, 0x5f, 0xfb, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x42, 0x88, 0xe9, 0xef, - 0x4c, 0x00, 0x00, + // 5654 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3c, 0x4d, 0x93, 0x23, 0x47, + 0x56, 0x5d, 0x6a, 0x49, 0x2d, 0x3d, 0x7d, 0x74, 0x75, 0x4e, 0xcf, 0xb4, 0x46, 0xf3, 0xe9, 0x1a, + 0xdb, 0x8c, 0x67, 0xbd, 0x63, 0x7b, 0x6c, 0x16, 0x63, 0x58, 0x07, 0x6a, 0x49, 0xd3, 0x96, 0xa7, + 0x3f, 0x44, 0x49, 0x33, 0x5e, 0x13, 0x1b, 0x54, 0x54, 0x57, 0x65, 0x77, 0xd7, 0xb6, 0x54, 0x25, + 0x57, 0x96, 0xba, 0x47, 0x1b, 0x10, 0xc1, 0xc7, 0x02, 0x4b, 0xb0, 0x1b, 0x10, 0xc1, 0xe7, 0x69, + 0x0f, 0x40, 0x00, 0x17, 0x82, 0x1b, 0x01, 0x7f, 0x80, 0xe0, 0xc8, 0x91, 0x13, 0xb1, 0x61, 0x4e, + 0x04, 0xf7, 0xbd, 0xc0, 0x81, 0xc8, 0xaf, 0x52, 0x55, 0xa9, 0xd4, 0x3d, 0x53, 0xb6, 0x89, 0x3d, + 0xa9, 0xf2, 0xbd, 0x97, 0x2f, 0x5f, 0xbe, 0x7c, 0x99, 0xf9, 0xde, 0xcb, 0x4c, 0x01, 0x4c, 0xec, + 0xc9, 0xe1, 0xc3, 0x89, 0xef, 0x05, 0x1e, 0xca, 0xd3, 0xef, 0x66, 0x75, 0x8c, 0x03, 0x53, 0xc2, + 0x9a, 0x35, 0xec, 0x9b, 0x47, 0x41, 0x58, 0xbc, 0x42, 0x4b, 0x06, 0xc1, 0xfe, 0x19, 0xf6, 0x43, + 0x60, 0xc3, 0xc7, 0x93, 0x91, 0x63, 0x99, 0x81, 0xe3, 0xb9, 0xc6, 0xd8, 0xb3, 0x71, 0x88, 0xd9, + 0x3c, 0xf6, 0x8e, 0x3d, 0xf6, 0xf9, 0x16, 0xfd, 0x12, 0xd0, 0x75, 0x7f, 0x4a, 0x02, 0xf6, 0xc9, + 0x01, 0xda, 0x27, 0xd0, 0xf8, 0xc4, 0x0c, 0xac, 0x93, 0x9d, 0x91, 0x77, 0x68, 0x8e, 0xda, 0x9e, + 0x7b, 0xe4, 0x1c, 0xeb, 0xf8, 0xb3, 0x29, 0x26, 0x01, 0xba, 0x03, 0x15, 0x8b, 0x01, 0x8c, 0x89, + 0x19, 0x9c, 0x34, 0x94, 0xbb, 0xca, 0xfd, 0xb2, 0x0e, 0x1c, 0xd4, 0x37, 0x83, 0x13, 0xd4, 0x84, + 0x92, 0x8f, 0xcf, 0x1c, 0xe2, 0x78, 0x6e, 0x23, 0x77, 0x57, 0xb9, 0xbf, 0xaa, 0x87, 0x65, 0xed, + 0xcf, 0x15, 0xb8, 0x9e, 0xc2, 0x99, 0x4c, 0x3c, 0x97, 0x60, 0xf4, 0x36, 0xac, 0x59, 0x27, 0xa6, + 0x7b, 0x8c, 0x49, 0x43, 0xb9, 0xbb, 0x7a, 0xbf, 0xf2, 0xe8, 0xda, 0x43, 0xa6, 0x8d, 0x28, 0x71, + 0x2f, 0xc0, 0x63, 0x5d, 0x92, 0x5d, 0xd4, 0x16, 0x7a, 0x13, 0x8a, 0x27, 0xd8, 0xb4, 0xb1, 0xdf, + 0x58, 0xbd, 0xab, 0xdc, 0xaf, 0x3c, 0xda, 0xe4, 0xcc, 0x64, 0x6b, 0x1f, 0x31, 0x9c, 0x2e, 0x68, + 0xb4, 0x31, 0x34, 0x06, 0x81, 0xe7, 0xe3, 0xb4, 0x2e, 0xbf, 0xbc, 0x5c, 0x09, 0x25, 0xe5, 0x92, + 0x4a, 0xd2, 0x3e, 0x84, 0xeb, 0x29, 0xcd, 0x09, 0x3d, 0xbc, 0x02, 0x05, 0xec, 0xfb, 0x9e, 0xcf, + 0x94, 0x5b, 0x79, 0x54, 0xe1, 0xad, 0x75, 0x29, 0x48, 0xe7, 0x18, 0xad, 0x0f, 0x5b, 0xbb, 0x9e, + 0x69, 0xa7, 0x49, 0xbb, 0x09, 0x05, 0xd7, 0x1c, 0x0b, 0x59, 0xcb, 0x3a, 0x2f, 0x5c, 0x2e, 0x91, + 0x0d, 0x8d, 0x45, 0x8e, 0x42, 0xa0, 0x37, 0xa1, 0xe0, 0x04, 0x78, 0x7c, 0x59, 0xf7, 0x39, 0xd1, + 0x85, 0x06, 0xf0, 0x23, 0x05, 0xd4, 0x64, 0x3d, 0x84, 0x20, 0x4f, 0x85, 0x14, 0xb6, 0xc4, 0xbe, + 0x69, 0x2f, 0xce, 0xcc, 0xd1, 0x14, 0x0b, 0x49, 0x79, 0x61, 0xae, 0x99, 0xd5, 0x65, 0x9a, 0x41, + 0xf7, 0x20, 0x7f, 0xea, 0xb8, 0x76, 0x23, 0x7f, 0x57, 0xb9, 0x5f, 0x7f, 0xb4, 0x2e, 0x28, 0xce, + 0xb0, 0x1b, 0x0c, 0x67, 0x13, 0xac, 0x33, 0x24, 0x6a, 0xc0, 0xda, 0xc4, 0x9c, 0x8d, 0x3c, 0xd3, + 0x6e, 0x14, 0xee, 0x2a, 0xf7, 0xab, 0xba, 0x2c, 0x6a, 0x4f, 0xa0, 0x26, 0x14, 0xc9, 0x0d, 0x04, + 0xdd, 0x02, 0xb0, 0x46, 0x53, 0x12, 0x60, 0xdf, 0x70, 0x6c, 0x26, 0x62, 0x5e, 0x2f, 0x0b, 0x48, + 0xcf, 0x46, 0x37, 0xa0, 0x4c, 0xb0, 0x6b, 0x73, 0x6c, 0x8e, 0x61, 0x4b, 0x1c, 0xd0, 0xb3, 0x35, + 0x1d, 0xea, 0x71, 0x73, 0xbb, 0x8c, 0x5b, 0xd8, 0xbf, 0xdc, 0xd2, 0x91, 0x7f, 0x0c, 0x85, 0xae, + 0xec, 0x68, 0x30, 0x9b, 0x70, 0xad, 0xcd, 0x3b, 0x4a, 0x51, 0xbc, 0xa3, 0x14, 0x49, 0x3b, 0x3a, + 0xc6, 0x84, 0x98, 0xc7, 0x52, 0x91, 0xb2, 0xa8, 0x4d, 0x00, 0x86, 0xc4, 0x93, 0x46, 0xf3, 0xb5, + 0x70, 0xb2, 0x70, 0x9b, 0xbb, 0x22, 0x27, 0x4b, 0x44, 0x15, 0x72, 0xae, 0xd0, 0xb1, 0xb1, 0xbc, + 0xa9, 0x1b, 0x30, 0x96, 0x35, 0x9d, 0x17, 0xa8, 0x85, 0xd9, 0x96, 0x31, 0xf2, 0xf8, 0xba, 0xc3, + 0x46, 0xa8, 0xac, 0x83, 0x6d, 0xed, 0x0a, 0x88, 0x76, 0x08, 0xe5, 0xa1, 0x33, 0xc6, 0x24, 0x30, + 0xc7, 0x13, 0x6a, 0x24, 0x93, 0x93, 0x19, 0x71, 0x2c, 0x73, 0xc4, 0x9a, 0x5c, 0xd5, 0xc3, 0x32, + 0x15, 0x7a, 0xe4, 0x1d, 0x33, 0x14, 0xb7, 0x1f, 0x59, 0xa4, 0x6d, 0x90, 0xe9, 0xd1, 0x91, 0xf3, + 0xdc, 0x38, 0x74, 0x02, 0xc2, 0xda, 0xa8, 0xe9, 0xc0, 0x41, 0xdb, 0x4e, 0x40, 0xb4, 0xdf, 0x50, + 0xa0, 0xc2, 0xba, 0x15, 0x5a, 0x6e, 0xbc, 0x5f, 0x17, 0x2e, 0x02, 0x4b, 0x3a, 0xf6, 0x75, 0x28, + 0x07, 0x52, 0x6e, 0x61, 0x78, 0x42, 0xdb, 0x61, 0x77, 0xf4, 0x39, 0x85, 0xf6, 0x03, 0x05, 0xd4, + 0x6d, 0xcf, 0x0b, 0x48, 0xe0, 0x9b, 0x93, 0x4c, 0xfa, 0xbd, 0x07, 0x05, 0x42, 0x17, 0x07, 0x61, + 0x05, 0xb5, 0x87, 0x62, 0x07, 0x60, 0x2b, 0x86, 0xce, 0x71, 0xe8, 0x75, 0x28, 0xfa, 0xf8, 0x58, + 0x6a, 0xba, 0xf2, 0xa8, 0x2e, 0xa9, 0x74, 0x06, 0xd5, 0x05, 0x96, 0x2e, 0xb9, 0x1b, 0x11, 0x71, + 0x32, 0xe9, 0x65, 0x08, 0x28, 0xba, 0xa5, 0x90, 0xc0, 0x0c, 0xa6, 0x44, 0x48, 0xf7, 0xda, 0xc3, + 0x94, 0xdd, 0x46, 0x9f, 0x83, 0x06, 0x8c, 0x58, 0xdf, 0xf0, 0x93, 0x20, 0xad, 0x03, 0x57, 0x7b, + 0x24, 0x14, 0x6d, 0x82, 0xed, 0x2c, 0xca, 0xd2, 0xbe, 0x03, 0xd7, 0x92, 0x5c, 0x32, 0xf5, 0x51, + 0x83, 0xea, 0x61, 0x84, 0x0b, 0xeb, 0x5d, 0x49, 0x8f, 0xc1, 0xb4, 0x6f, 0x42, 0xbd, 0x35, 0x1a, + 0x79, 0x56, 0xaf, 0x93, 0x49, 0xd4, 0x03, 0x58, 0x0f, 0xab, 0x67, 0x92, 0xb1, 0x0e, 0xb9, 0x70, + 0x95, 0xc9, 0x39, 0xb6, 0xf6, 0x31, 0xdc, 0xe8, 0x91, 0x81, 0x6b, 0x4e, 0xc8, 0x89, 0x17, 0xe8, + 0xd8, 0xf2, 0xce, 0xb0, 0xef, 0xb8, 0xc7, 0x99, 0x84, 0xb3, 0xe1, 0x66, 0x3a, 0xaf, 0x4c, 0x92, + 0x5e, 0x83, 0xe2, 0xd8, 0xf4, 0x4f, 0x43, 0x3d, 0x8a, 0x92, 0xf6, 0x29, 0xac, 0xef, 0xe0, 0x80, + 0x1b, 0x72, 0x96, 0xa9, 0x71, 0x1d, 0x4a, 0xcc, 0xfc, 0xe7, 0xab, 0xed, 0x1a, 0x2b, 0xf7, 0x6c, + 0xed, 0x87, 0x74, 0x6b, 0x09, 0x79, 0x67, 0x92, 0xfa, 0x05, 0x27, 0x5e, 0x81, 0x4e, 0x00, 0x22, + 0xe6, 0x9d, 0xca, 0x39, 0x32, 0x12, 0x6a, 0xd8, 0x44, 0xe7, 0x68, 0xcd, 0x82, 0xf5, 0xfe, 0xf4, + 0x0b, 0x74, 0xf5, 0x45, 0x84, 0xd1, 0xfe, 0x4c, 0x01, 0x75, 0xde, 0xca, 0x4f, 0xd1, 0xe4, 0xfe, + 0x35, 0xb8, 0xb2, 0x83, 0x83, 0xd6, 0x68, 0xc4, 0x44, 0x23, 0x99, 0x34, 0xf0, 0x3e, 0x34, 0xf0, + 0x73, 0x6b, 0x34, 0xb5, 0xb1, 0x11, 0x78, 0xe3, 0x43, 0x12, 0x78, 0x2e, 0x36, 0x58, 0xbf, 0x89, + 0x30, 0xab, 0x6b, 0x02, 0x3f, 0x94, 0x68, 0xde, 0x9a, 0x76, 0x0a, 0x9b, 0xf1, 0xd6, 0x33, 0x69, + 0xe6, 0x35, 0x28, 0x86, 0xad, 0xad, 0x2e, 0x0e, 0x81, 0x40, 0x6a, 0xbf, 0xc9, 0x0d, 0x4f, 0xac, + 0xbb, 0x59, 0x3a, 0x7a, 0x0b, 0x80, 0xaf, 0xd6, 0xc6, 0x29, 0x9e, 0xb1, 0xae, 0x55, 0xf5, 0x32, + 0x87, 0x3c, 0xc1, 0x33, 0xf4, 0x0a, 0x54, 0x5d, 0x8c, 0x6d, 0xe3, 0x70, 0x6a, 0x9d, 0x62, 0x61, + 0x78, 0x25, 0xbd, 0x42, 0x61, 0xdb, 0x1c, 0xa4, 0xfd, 0x55, 0x0e, 0x36, 0x22, 0x32, 0x64, 0xea, + 0xee, 0x7c, 0x47, 0xc9, 0x5d, 0xb4, 0xa3, 0xa0, 0x57, 0xa1, 0x38, 0x8a, 0x3a, 0xd6, 0x55, 0x49, + 0xd7, 0xc7, 0x94, 0x1b, 0xc7, 0xa1, 0x87, 0x00, 0xb6, 0x77, 0xee, 0x1a, 0x13, 0x8c, 0x7d, 0xd2, + 0x28, 0x30, 0x05, 0x8a, 0x6d, 0x93, 0xd2, 0xf1, 0xa9, 0x52, 0xa6, 0x24, 0xb4, 0x48, 0xd0, 0x3b, + 0x50, 0x9b, 0x60, 0xd7, 0x76, 0xdc, 0x63, 0x51, 0xa5, 0xc8, 0xaa, 0xc4, 0x99, 0x57, 0x05, 0x09, + 0xaf, 0xf2, 0x06, 0xac, 0x49, 0x95, 0xac, 0x89, 0x6d, 0x59, 0x10, 0x0b, 0xb5, 0xe8, 0x12, 0xff, + 0x71, 0xbe, 0x94, 0x57, 0x0b, 0xda, 0x6f, 0x2b, 0xcc, 0x2e, 0x78, 0x7f, 0xb6, 0x67, 0xd9, 0x96, + 0x71, 0xea, 0xf2, 0x89, 0xd1, 0x9a, 0xbb, 0x7c, 0x1c, 0xc0, 0x3c, 0xb8, 0x4b, 0xc7, 0xea, 0x87, + 0x0a, 0xa0, 0x81, 0x65, 0xba, 0x5c, 0x0c, 0x92, 0x55, 0x06, 0x12, 0x98, 0x7e, 0x10, 0x31, 0x98, + 0x12, 0x03, 0x50, 0x7b, 0xd9, 0x84, 0xc2, 0xc8, 0x19, 0x3b, 0x01, 0x6b, 0xbc, 0xa0, 0xf3, 0x02, + 0xda, 0x82, 0x35, 0xec, 0xda, 0xac, 0x42, 0x9e, 0x55, 0x28, 0x62, 0xd7, 0x7e, 0x82, 0x67, 0xda, + 0x3f, 0x2b, 0x50, 0xe4, 0xb2, 0x44, 0x4c, 0x40, 0x79, 0x41, 0x13, 0xc8, 0xbd, 0xb0, 0x09, 0xac, + 0xbe, 0xbc, 0x09, 0xe4, 0x2f, 0x33, 0x01, 0xed, 0x5f, 0x14, 0xb8, 0x12, 0xd3, 0x65, 0x26, 0xcb, + 0x7f, 0x07, 0xaa, 0x62, 0x44, 0x69, 0x4b, 0x72, 0xba, 0x27, 0x3b, 0x5f, 0xe1, 0x34, 0x7b, 0x94, + 0x04, 0xbd, 0x0e, 0x6b, 0xbc, 0x97, 0xb2, 0x63, 0x71, 0x29, 0x25, 0x92, 0xd2, 0xf1, 0x6a, 0xf3, + 0xde, 0x08, 0x49, 0x18, 0x4f, 0x89, 0xd4, 0x1e, 0xc3, 0xd6, 0x0e, 0x0e, 0xda, 0x3c, 0x12, 0x88, + 0x07, 0x74, 0x2f, 0xb5, 0x8d, 0x13, 0x68, 0x2c, 0xf2, 0xc9, 0xa4, 0x94, 0x37, 0x60, 0x4d, 0x04, + 0x26, 0x62, 0x90, 0xc3, 0xd9, 0x25, 0xb8, 0xeb, 0x12, 0xaf, 0x7d, 0x06, 0x5b, 0xfd, 0xe9, 0x17, + 0x17, 0xfe, 0x65, 0x9a, 0xfc, 0x08, 0x1a, 0x8b, 0x4d, 0x66, 0xe9, 0xa7, 0xf6, 0xd7, 0x39, 0x28, + 0xee, 0xe1, 0xf1, 0x21, 0xf6, 0x53, 0x03, 0xd1, 0x1b, 0x50, 0x1e, 0x33, 0x6c, 0x64, 0xb6, 0x73, + 0x00, 0x8f, 0xfe, 0xa8, 0xa5, 0x1a, 0x53, 0x7f, 0xc4, 0xed, 0xa0, 0xac, 0x97, 0x28, 0xe0, 0xa9, + 0x3f, 0xe2, 0x21, 0xf7, 0xc8, 0xc1, 0x6e, 0xc0, 0xd1, 0x79, 0x86, 0x06, 0x0e, 0x62, 0x04, 0x3f, + 0x03, 0xeb, 0xdc, 0x4c, 0x8c, 0x89, 0xef, 0x78, 0xbe, 0x13, 0xcc, 0x58, 0x34, 0x5a, 0xd0, 0xeb, + 0x1c, 0xdc, 0x17, 0x50, 0x16, 0x5a, 0xe1, 0xc9, 0xc8, 0x9b, 0xf1, 0xe0, 0xbd, 0x28, 0x42, 0x2b, + 0x06, 0x62, 0x39, 0x97, 0xd7, 0xa0, 0x7e, 0xe8, 0xb8, 0xa6, 0x3f, 0x33, 0xce, 0xb0, 0xcf, 0x02, + 0xef, 0x35, 0x46, 0x53, 0xe3, 0xd0, 0x67, 0x1c, 0x48, 0xbd, 0xa7, 0x63, 0x27, 0x30, 0x4e, 0x4c, + 0x72, 0xd2, 0x28, 0xf1, 0x70, 0xf0, 0xd8, 0x09, 0x3e, 0x32, 0xc9, 0x49, 0x32, 0x7a, 0x2b, 0x2f, + 0x44, 0x6f, 0xbf, 0xc4, 0x36, 0x18, 0xae, 0xa8, 0x4c, 0x6b, 0x96, 0xf6, 0xbf, 0x39, 0x40, 0x51, + 0x16, 0x19, 0x37, 0xa9, 0x35, 0xae, 0x7d, 0x39, 0x4b, 0xc5, 0x7c, 0xe2, 0x5c, 0x75, 0x89, 0x4c, + 0xd9, 0xa4, 0xa2, 0x64, 0x72, 0x85, 0xfa, 0x3a, 0x54, 0x70, 0x60, 0xd9, 0x86, 0x20, 0xcd, 0xa7, + 0x90, 0x02, 0x25, 0xd8, 0xe5, 0xe4, 0x18, 0xae, 0x06, 0xc4, 0x33, 0xcc, 0x11, 0xd3, 0x93, 0xe7, + 0x1b, 0x72, 0x09, 0xe0, 0xdb, 0xdb, 0x3b, 0x22, 0x2f, 0xb2, 0xd0, 0xc7, 0x87, 0x43, 0xe2, 0xb5, + 0x64, 0x25, 0xce, 0x8b, 0x74, 0xdd, 0xc0, 0x9f, 0xe9, 0x57, 0x82, 0x45, 0x4c, 0x73, 0x08, 0x8d, + 0x65, 0x15, 0x90, 0x0a, 0xab, 0x74, 0x05, 0xe7, 0x16, 0x4a, 0x3f, 0x91, 0x16, 0xcd, 0x94, 0x24, + 0xa5, 0xe7, 0xa8, 0x0f, 0x72, 0xef, 0x2b, 0x5a, 0x17, 0xae, 0xce, 0x57, 0x86, 0x9e, 0x7b, 0x14, + 0xc6, 0xfe, 0x2f, 0x37, 0x5d, 0x7e, 0x1d, 0xae, 0x25, 0xd9, 0x64, 0x1a, 0xc8, 0x9f, 0x85, 0x2a, + 0xc1, 0xfe, 0x99, 0x63, 0xe1, 0x3d, 0xcf, 0x16, 0x2e, 0x56, 0xfd, 0xd1, 0x86, 0xf0, 0xa6, 0xe7, + 0x18, 0x3d, 0x46, 0xa6, 0xf5, 0xa1, 0x1c, 0xee, 0x1d, 0xe8, 0x2e, 0xe4, 0xe9, 0x6c, 0x13, 0xed, + 0xc5, 0x57, 0x60, 0x86, 0xa1, 0xdb, 0x31, 0xdb, 0x82, 0x08, 0xb6, 0x3c, 0xd7, 0x26, 0x62, 0x02, + 0x57, 0x28, 0x6c, 0xc0, 0x41, 0xda, 0x4f, 0x0a, 0x70, 0x8d, 0xaf, 0xc6, 0x1f, 0x61, 0xd3, 0x0f, + 0x0e, 0xb1, 0x19, 0x64, 0x5a, 0xbc, 0xbe, 0x4a, 0xf7, 0x29, 0xff, 0xf2, 0x7b, 0x67, 0xe1, 0x52, + 0xf7, 0xe9, 0x1e, 0xd4, 0x0e, 0x67, 0x01, 0x26, 0xc6, 0xb9, 0xef, 0x04, 0x01, 0x76, 0xd9, 0xba, + 0x92, 0xd7, 0xab, 0x0c, 0xf8, 0x09, 0x87, 0x51, 0xd7, 0x94, 0x13, 0xf9, 0xd8, 0xb4, 0xd9, 0xaa, + 0x92, 0xd7, 0xcb, 0x0c, 0xa2, 0x63, 0x93, 0xb9, 0x3b, 0xa7, 0x78, 0x36, 0x67, 0x51, 0xe2, 0xfa, + 0xa5, 0x30, 0xc9, 0xe1, 0x06, 0x94, 0x19, 0x09, 0x63, 0x50, 0xe6, 0x0b, 0x28, 0x05, 0xb0, 0xfa, + 0x6f, 0x80, 0x6a, 0x4e, 0x26, 0xbe, 0xf7, 0xdc, 0x19, 0x9b, 0x01, 0x36, 0x88, 0xf3, 0x5d, 0xdc, + 0x00, 0x46, 0xb3, 0x1e, 0x81, 0x0f, 0x9c, 0xef, 0x62, 0xf4, 0x10, 0x4a, 0x8e, 0x1b, 0x60, 0xff, + 0xcc, 0x1c, 0x35, 0xaa, 0x4c, 0x73, 0x68, 0x9e, 0x85, 0xe9, 0x09, 0x8c, 0x1e, 0xd2, 0x24, 0x59, + 0xd3, 0x26, 0x1b, 0xb5, 0x05, 0xd6, 0x4f, 0xf0, 0x8c, 0xd0, 0x75, 0x3f, 0xc0, 0xfe, 0xb8, 0x51, + 0x67, 0x68, 0xf6, 0x8d, 0x7e, 0x25, 0x35, 0x2c, 0x5a, 0x67, 0x0d, 0x7f, 0x2d, 0x3d, 0x2c, 0xe2, + 0xbe, 0xf7, 0xe5, 0xc1, 0x11, 0x7a, 0x07, 0x2a, 0x9f, 0x4d, 0xb1, 0x3f, 0x33, 0x78, 0x20, 0xa9, + 0x46, 0x03, 0xc9, 0x5f, 0xa6, 0x08, 0x3e, 0xbc, 0xf0, 0x59, 0xf8, 0x4d, 0xb5, 0x68, 0x4d, 0xa6, + 0xc6, 0x94, 0xa5, 0xf2, 0x36, 0xb8, 0x16, 0xad, 0xc9, 0xf4, 0x29, 0x2d, 0xa3, 0x87, 0x70, 0x25, + 0xd6, 0xd5, 0x33, 0xae, 0x48, 0xc4, 0xc8, 0x36, 0xa2, 0xbd, 0x3d, 0xa3, 0xaa, 0xfc, 0x38, 0x5f, + 0xaa, 0xa8, 0x55, 0xed, 0x04, 0xa0, 0xcd, 0xf2, 0xd5, 0xd4, 0x1c, 0x5e, 0x60, 0x2e, 0xbd, 0x0f, + 0x15, 0x9e, 0xdf, 0x36, 0x58, 0xde, 0x31, 0xc7, 0xf2, 0x8e, 0x5b, 0x0f, 0xe5, 0x81, 0x04, 0xdd, + 0x84, 0x39, 0x3f, 0x96, 0x7f, 0x04, 0x2b, 0xfc, 0xd6, 0x3e, 0x80, 0xea, 0xbc, 0xa5, 0x67, 0x8f, + 0xd0, 0x83, 0x64, 0x42, 0x5d, 0xf4, 0x7d, 0x4e, 0x14, 0xa6, 0xd2, 0xb5, 0x67, 0x50, 0x1f, 0xfa, + 0xa6, 0x4b, 0x8e, 0xb0, 0x58, 0x08, 0x5f, 0x40, 0x52, 0x0d, 0x0a, 0x7c, 0x12, 0xe4, 0x52, 0x26, + 0x01, 0x47, 0x69, 0x6f, 0x41, 0x61, 0x0f, 0xfb, 0xc7, 0x2c, 0x91, 0x16, 0x98, 0xfe, 0x31, 0x0e, + 0x96, 0xf9, 0xbc, 0x1c, 0xab, 0xed, 0x42, 0x65, 0x30, 0x19, 0x39, 0x22, 0x7a, 0x40, 0x6f, 0x40, + 0x71, 0xe2, 0x8d, 0x1c, 0x6b, 0x26, 0x12, 0xb0, 0x1b, 0xb2, 0x0b, 0xd8, 0x3a, 0xed, 0x33, 0x84, + 0x2e, 0x08, 0xa8, 0x79, 0x31, 0xeb, 0xa3, 0xd2, 0x54, 0x75, 0xf6, 0xad, 0xed, 0x40, 0x6d, 0x70, + 0xee, 0x04, 0xd6, 0xc9, 0x27, 0x4e, 0xe0, 0x62, 0x42, 0xa8, 0x7b, 0xce, 0x5c, 0x89, 0x30, 0x2d, + 0x5c, 0xa4, 0xc5, 0x9e, 0x4d, 0x67, 0xa0, 0x43, 0x8c, 0x73, 0x4e, 0x26, 0xe2, 0xde, 0xb2, 0x43, + 0x44, 0x3d, 0x6d, 0x08, 0x68, 0xdb, 0x0c, 0xac, 0x93, 0x38, 0xb7, 0x0f, 0x41, 0x25, 0x0c, 0x20, + 0x2b, 0x86, 0xaa, 0x16, 0x6b, 0x58, 0x8c, 0x5c, 0x5f, 0x27, 0xd1, 0x22, 0x26, 0xda, 0x9f, 0xe6, + 0x61, 0x6b, 0x61, 0x51, 0xcc, 0xe8, 0x5b, 0x4b, 0xab, 0x61, 0x83, 0x96, 0x8b, 0xda, 0x7a, 0x64, + 0xbc, 0x85, 0xb9, 0x30, 0x53, 0xfc, 0x26, 0xac, 0x07, 0x62, 0xc8, 0x8d, 0x51, 0xca, 0x11, 0x4e, + 0xdc, 0x1e, 0xf4, 0x7a, 0x10, 0xb7, 0x8f, 0x58, 0x7c, 0x96, 0x4f, 0xc4, 0x67, 0xdf, 0x08, 0x5d, + 0x7d, 0x3c, 0xf1, 0xac, 0x13, 0xe6, 0x70, 0x51, 0xa5, 0xc4, 0xc6, 0xbc, 0x4b, 0x51, 0xd2, 0xdf, + 0x67, 0x05, 0xea, 0x29, 0x70, 0x3b, 0xe0, 0xdd, 0x28, 0xa6, 0xd8, 0x1e, 0x70, 0x82, 0x3e, 0xdf, + 0x77, 0x0a, 0x63, 0x6a, 0x5d, 0x22, 0x30, 0xad, 0xc8, 0x4d, 0xd9, 0x3f, 0xc6, 0x3a, 0xc7, 0xa0, + 0xf7, 0xa0, 0x4a, 0xa8, 0x3d, 0x19, 0x62, 0xd7, 0x28, 0x31, 0x4a, 0xb9, 0x01, 0xce, 0x2d, 0x4d, + 0xaf, 0x90, 0x88, 0xd9, 0xbd, 0x0f, 0xf5, 0x88, 0x3a, 0x8d, 0xb3, 0x47, 0x6c, 0x49, 0x0d, 0xd7, + 0xc2, 0xe8, 0x34, 0xd3, 0xab, 0x56, 0x74, 0xd2, 0xb5, 0x53, 0x4c, 0x02, 0x58, 0xdd, 0x06, 0xaf, + 0xbb, 0x68, 0x46, 0x8b, 0x76, 0x71, 0x04, 0xeb, 0x2d, 0x72, 0x2a, 0xa4, 0xfb, 0xea, 0x36, 0x49, + 0xed, 0x77, 0x15, 0x50, 0xe7, 0x0d, 0x65, 0x4c, 0xe8, 0xd6, 0x5c, 0x7c, 0x6e, 0x24, 0x43, 0xf5, + 0x8a, 0x8b, 0xcf, 0x75, 0x69, 0x0d, 0x77, 0x69, 0xb4, 0x7e, 0x6e, 0x88, 0x89, 0xc7, 0x5d, 0xf8, + 0xbc, 0x0e, 0x2e, 0x3e, 0xef, 0xb3, 0xc9, 0x47, 0xb4, 0x3f, 0x50, 0x00, 0xe9, 0x78, 0xe2, 0xf9, + 0x41, 0xf6, 0x4e, 0x6b, 0x90, 0x1f, 0xe1, 0xa3, 0x60, 0x49, 0x97, 0x19, 0x0e, 0xbd, 0x0a, 0x05, + 0xdf, 0x39, 0x3e, 0x09, 0x96, 0x64, 0xf3, 0x39, 0x52, 0x6b, 0xc3, 0x95, 0x98, 0x30, 0x99, 0x02, + 0x9e, 0x1f, 0x28, 0xb0, 0xd9, 0x22, 0xa7, 0x7c, 0xb8, 0xbf, 0xea, 0x91, 0x64, 0x47, 0x36, 0xcc, + 0xcc, 0xf9, 0xc9, 0x8a, 0x3c, 0xb2, 0xa1, 0xa0, 0x36, 0x85, 0x68, 0x07, 0xb0, 0xc6, 0xa4, 0xe8, + 0x75, 0x16, 0x87, 0x4c, 0xb9, 0x7c, 0xc8, 0x72, 0x0b, 0x43, 0x76, 0x04, 0x57, 0x13, 0xdd, 0xcb, + 0x64, 0x3f, 0x77, 0x60, 0x55, 0xf2, 0xaf, 0x3c, 0xaa, 0x45, 0xa6, 0x65, 0xaf, 0xa3, 0x53, 0x8c, + 0x36, 0xa1, 0x4b, 0x24, 0x1d, 0x8c, 0x2f, 0xa8, 0xc9, 0xfb, 0xf3, 0x14, 0x41, 0x7a, 0xe2, 0x21, + 0x4c, 0x12, 0x7c, 0x04, 0x8d, 0xc5, 0x16, 0x33, 0xd9, 0xc0, 0xb7, 0xa1, 0x1a, 0x75, 0x9b, 0x68, + 0x28, 0xca, 0xf3, 0x49, 0xf3, 0x93, 0x2e, 0xae, 0xfb, 0x3a, 0x03, 0xcf, 0xcf, 0xed, 0xee, 0x41, + 0x0d, 0xbb, 0x76, 0x84, 0x8c, 0xcf, 0xaa, 0x2a, 0x76, 0xed, 0x90, 0x48, 0x7b, 0x0f, 0x40, 0xc7, + 0x96, 0xe7, 0xdb, 0x7d, 0xd3, 0xf1, 0x53, 0x42, 0x96, 0xd8, 0xe1, 0x6e, 0x5e, 0x04, 0x29, 0xda, + 0x7f, 0x28, 0x50, 0x92, 0xbe, 0x6d, 0x7c, 0x11, 0x57, 0x12, 0x8b, 0x38, 0x43, 0x9a, 0xb6, 0x21, + 0x76, 0x55, 0x81, 0x34, 0x6d, 0xe6, 0xcc, 0xb1, 0x64, 0xaa, 0x69, 0x1b, 0xcc, 0x49, 0x65, 0xf6, + 0x96, 0xd7, 0x19, 0xf9, 0x36, 0x05, 0x24, 0x7d, 0xaf, 0xfc, 0x0b, 0xf8, 0x5e, 0xaf, 0x40, 0x55, + 0xf8, 0xb7, 0xbc, 0xc5, 0x02, 0xb7, 0x4a, 0x01, 0x63, 0x8d, 0xde, 0x83, 0x9a, 0x24, 0xe1, 0xed, + 0x0a, 0x5f, 0x5a, 0x00, 0x59, 0xd3, 0xda, 0x3f, 0x94, 0x00, 0xe6, 0xe7, 0x04, 0xb1, 0xb3, 0x0c, + 0x25, 0x76, 0x96, 0x81, 0x9a, 0x50, 0xb2, 0xcc, 0x89, 0x69, 0x39, 0xc1, 0x4c, 0xf6, 0x4f, 0x96, + 0xd1, 0x4d, 0x28, 0x9b, 0x67, 0xa6, 0x33, 0x32, 0x0f, 0x47, 0x58, 0x76, 0x2f, 0x04, 0x50, 0x59, + 0x85, 0xde, 0xf8, 0x7c, 0xcb, 0xb3, 0xf9, 0x26, 0xb6, 0x32, 0x36, 0xe1, 0xd0, 0x9b, 0x80, 0x88, + 0x08, 0x15, 0x88, 0x6b, 0x4e, 0x04, 0x61, 0x81, 0x11, 0xaa, 0x02, 0x33, 0x70, 0xcd, 0x09, 0xa7, + 0x7e, 0x1b, 0x36, 0x7d, 0x6c, 0x61, 0xe7, 0x2c, 0x41, 0x5f, 0x64, 0xf4, 0x28, 0xc4, 0xcd, 0x6b, + 0xdc, 0x02, 0x98, 0xdb, 0x12, 0xdb, 0x00, 0x6b, 0x7a, 0x39, 0x34, 0x23, 0xe1, 0xac, 0x8e, 0x66, + 0x09, 0x7e, 0x25, 0x46, 0xb7, 0x21, 0x51, 0x73, 0x76, 0x5b, 0xb0, 0xe6, 0x10, 0xe3, 0x70, 0x4a, + 0x66, 0x6c, 0xab, 0x2b, 0xe9, 0x45, 0x87, 0x6c, 0x4f, 0xc9, 0x8c, 0x5a, 0xc1, 0x94, 0x60, 0x3b, + 0x1a, 0x34, 0x94, 0x28, 0x80, 0x45, 0x0b, 0x0b, 0xc1, 0x4d, 0x25, 0x25, 0xb8, 0x49, 0x46, 0x2f, + 0xd5, 0xc5, 0xe8, 0x25, 0x1e, 0xff, 0xd4, 0x92, 0xf1, 0x4f, 0x2c, 0xb8, 0xa9, 0x27, 0x82, 0x9b, + 0x68, 0xc4, 0xb2, 0xfe, 0x02, 0x11, 0xcb, 0x5b, 0x00, 0xa1, 0x8f, 0x4f, 0xa3, 0x82, 0x88, 0x67, + 0x3c, 0x9f, 0x4e, 0x7a, 0x59, 0xba, 0xfd, 0x04, 0xbd, 0x07, 0x35, 0x66, 0xea, 0x8e, 0x67, 0xf8, + 0x26, 0xb5, 0xba, 0x8d, 0x25, 0x75, 0x2a, 0x94, 0xac, 0xe7, 0xe9, 0x94, 0x08, 0x7d, 0x03, 0xea, + 0xb4, 0xc3, 0x78, 0x5e, 0x0d, 0x2d, 0xa9, 0xc6, 0xcc, 0x17, 0xcb, 0x7a, 0xef, 0x42, 0xd5, 0x9b, + 0x18, 0x23, 0x33, 0xc0, 0xae, 0xe5, 0x60, 0xd2, 0xb8, 0xb2, 0xac, 0x31, 0x6f, 0xb2, 0x2b, 0x89, + 0xd0, 0xd7, 0x01, 0xd8, 0x52, 0xcd, 0x67, 0xdb, 0xa6, 0x58, 0xdf, 0x62, 0x71, 0xac, 0xce, 0x72, + 0x68, 0x7c, 0x4e, 0x24, 0x66, 0xe7, 0xd5, 0x17, 0x98, 0x9d, 0xd4, 0xdc, 0x46, 0xde, 0xb9, 0x41, + 0x2c, 0xcf, 0xc7, 0x8d, 0x6b, 0x7c, 0x84, 0x28, 0x64, 0x40, 0x01, 0xd4, 0xda, 0x6d, 0x73, 0x6c, + 0x1e, 0x63, 0x5b, 0xec, 0x2b, 0x84, 0xce, 0xb7, 0x2d, 0xb6, 0x6b, 0xa8, 0x02, 0x23, 0xb2, 0xc7, + 0x3d, 0x9b, 0xee, 0x40, 0x0e, 0x31, 0x98, 0x11, 0x72, 0x93, 0x6b, 0xf0, 0xfc, 0xbd, 0x43, 0x5a, + 0x14, 0xc6, 0xec, 0xee, 0xe7, 0xa1, 0x4e, 0xc4, 0x39, 0xa9, 0x10, 0xf3, 0x3a, 0xeb, 0x96, 0x18, + 0x5c, 0x79, 0x86, 0xca, 0xba, 0x56, 0x23, 0x91, 0x12, 0xa1, 0x51, 0x3d, 0x93, 0x35, 0xf0, 0xb1, + 0x6b, 0x37, 0x9a, 0xd1, 0xbb, 0x04, 0x83, 0x91, 0x77, 0x3e, 0xa4, 0x60, 0x2e, 0x3c, 0xfb, 0xd4, + 0xfe, 0x50, 0x81, 0x72, 0x88, 0x60, 0x09, 0x45, 0x73, 0x4a, 0xb0, 0xc1, 0x17, 0x4f, 0xba, 0x66, + 0x28, 0x3a, 0x30, 0xd0, 0x33, 0x76, 0x3d, 0xe6, 0x16, 0xf0, 0x12, 0x1b, 0x56, 0xb6, 0x70, 0x28, + 0x7a, 0x99, 0x41, 0xe8, 0x08, 0xf2, 0xb5, 0x81, 0x4c, 0x47, 0x81, 0x60, 0xb0, 0xca, 0x08, 0x2a, + 0x1c, 0xc6, 0x39, 0xdc, 0x01, 0x51, 0xe4, 0x2c, 0xf2, 0xbc, 0x09, 0x0e, 0xa2, 0x3c, 0xb4, 0x1f, + 0x2b, 0x50, 0x8d, 0xf6, 0xf0, 0xe2, 0x85, 0xfa, 0x11, 0x5c, 0x3d, 0xc6, 0x2e, 0xa6, 0xbc, 0x0c, + 0x7b, 0xea, 0x8b, 0x50, 0x1a, 0x5b, 0x62, 0x51, 0xbb, 0x22, 0x91, 0x1d, 0x81, 0x1b, 0x60, 0x0b, + 0x3d, 0x80, 0x0d, 0xba, 0x08, 0xc5, 0xe9, 0xf9, 0x3a, 0xb7, 0x4e, 0x11, 0x51, 0xda, 0x37, 0x01, + 0x05, 0x5e, 0x60, 0x8e, 0xe2, 0xc4, 0xdc, 0xe7, 0x57, 0x19, 0x26, 0x4a, 0xfd, 0x1a, 0xf0, 0x50, + 0x81, 0xee, 0xa0, 0x7c, 0xd5, 0xe0, 0x2b, 0x79, 0x2d, 0x84, 0xd2, 0xa5, 0x83, 0x76, 0x11, 0x98, + 0x43, 0xcf, 0xb6, 0x5a, 0xf4, 0x8b, 0x00, 0xfc, 0x92, 0x5d, 0x40, 0x35, 0xc2, 0x37, 0xd7, 0x5b, + 0x0f, 0xe3, 0xf7, 0xee, 0x74, 0xf3, 0x28, 0xd8, 0xf5, 0x2c, 0x73, 0x44, 0x55, 0x82, 0xf5, 0x32, + 0xc5, 0xb2, 0x4f, 0xb4, 0x1d, 0xae, 0xc7, 0xbc, 0x3e, 0x77, 0x96, 0xee, 0x24, 0xeb, 0x33, 0x92, + 0x08, 0x07, 0xb1, 0x60, 0x73, 0x1e, 0xaf, 0xc3, 0xba, 0x43, 0x8c, 0x23, 0xcf, 0xb7, 0x70, 0x34, + 0x1e, 0x2a, 0xe9, 0x35, 0x87, 0x3c, 0xa6, 0xd0, 0x5d, 0xe9, 0x48, 0xa8, 0x27, 0x26, 0x31, 0x2c, + 0x6f, 0x3c, 0x76, 0x02, 0x83, 0xc7, 0x1f, 0x79, 0x46, 0x58, 0x3f, 0x31, 0x49, 0x9b, 0x81, 0x59, + 0x08, 0xa2, 0x3d, 0x83, 0x8a, 0x38, 0x32, 0x66, 0x5d, 0x7c, 0x17, 0xaa, 0x6c, 0x92, 0xfa, 0xac, + 0x98, 0x08, 0xca, 0xe7, 0xaa, 0xd0, 0x2b, 0x93, 0xf0, 0x9b, 0x25, 0x4d, 0x48, 0x80, 0xa5, 0x03, + 0xc0, 0xbe, 0xb5, 0xff, 0x51, 0xe0, 0x2a, 0x63, 0xfc, 0x45, 0x53, 0x69, 0xe2, 0x88, 0x3d, 0x77, + 0xe1, 0x11, 0x3b, 0x0b, 0xa1, 0xd8, 0x0e, 0xca, 0x05, 0x17, 0xbe, 0xf3, 0x46, 0x84, 0x5c, 0x0a, + 0x4e, 0x22, 0xbd, 0xfd, 0x04, 0x90, 0xed, 0x1b, 0xe6, 0x34, 0xf0, 0xc8, 0xcc, 0xb5, 0x64, 0x66, + 0x87, 0x3b, 0x02, 0x6f, 0xa4, 0x65, 0x76, 0x18, 0xa7, 0x8e, 0xde, 0x9a, 0x06, 0xde, 0x60, 0xe6, + 0x5a, 0x22, 0xaf, 0xa3, 0xda, 0x7e, 0x4b, 0xf0, 0x10, 0x67, 0xde, 0x36, 0xa0, 0x0e, 0x1e, 0x7b, + 0x01, 0x7e, 0x6c, 0x3a, 0x23, 0x6c, 0x3f, 0xf3, 0x02, 0xec, 0x93, 0x8b, 0x27, 0xc8, 0x3b, 0x50, + 0x3b, 0x62, 0xc4, 0xc6, 0x19, 0xa3, 0x4e, 0xcd, 0x58, 0x54, 0x8f, 0x22, 0xfc, 0xb4, 0x43, 0xa8, + 0x44, 0x07, 0xfd, 0x5e, 0xc8, 0x41, 0x9c, 0x55, 0x2b, 0x6c, 0x69, 0x13, 0x75, 0xf8, 0xf9, 0x37, + 0xdd, 0x73, 0x31, 0xdd, 0x65, 0x62, 0x46, 0x24, 0x7d, 0xe7, 0x0d, 0x86, 0x8a, 0xf0, 0x24, 0xda, + 0xf7, 0x72, 0x50, 0x15, 0x77, 0x40, 0x66, 0xfd, 0x91, 0xe9, 0x52, 0x1f, 0xd5, 0xf2, 0x31, 0xdb, + 0x2c, 0x94, 0x74, 0x1f, 0x55, 0xa0, 0xd1, 0x9b, 0xb0, 0x36, 0x9d, 0xd8, 0x8c, 0x32, 0xd5, 0x9b, + 0xdd, 0xce, 0x35, 0x14, 0x5d, 0x92, 0xa0, 0xdb, 0x00, 0xe1, 0xd1, 0x7e, 0x18, 0x7e, 0xcd, 0x21, + 0xe8, 0x11, 0xac, 0xd9, 0x4c, 0xa5, 0x32, 0x07, 0x2a, 0x62, 0xd5, 0x45, 0x3d, 0xeb, 0x92, 0x90, + 0x5a, 0x45, 0x6c, 0xae, 0x14, 0xa2, 0x56, 0x11, 0xe9, 0xa6, 0x5e, 0x39, 0x8a, 0xe8, 0x51, 0x9a, + 0x73, 0x31, 0x62, 0xce, 0xef, 0x43, 0xad, 0x75, 0x6e, 0x9e, 0x62, 0x79, 0xbc, 0x48, 0xdd, 0x64, + 0xf3, 0xd0, 0xf5, 0xfc, 0xb1, 0x39, 0x8a, 0xab, 0xbb, 0x2e, 0xc1, 0xe2, 0x02, 0xc2, 0x4f, 0x72, + 0x70, 0x2d, 0x39, 0x11, 0x7e, 0x7a, 0x6e, 0x67, 0xd0, 0x7e, 0xc8, 0x6b, 0x88, 0xf2, 0xc0, 0x88, + 0xdf, 0xd7, 0xab, 0x0b, 0xb0, 0x3c, 0x31, 0xfa, 0x00, 0xb6, 0x7c, 0xfc, 0xd9, 0xd4, 0xf1, 0xb1, + 0x61, 0xe3, 0x80, 0xdb, 0x99, 0x98, 0x6c, 0x6c, 0x65, 0x61, 0xa3, 0x79, 0x55, 0x90, 0x74, 0x04, + 0x85, 0x98, 0x67, 0x3f, 0x47, 0xbd, 0x13, 0x6e, 0x43, 0xc6, 0x64, 0x64, 0xba, 0x62, 0x20, 0xd0, + 0xdc, 0x61, 0x90, 0xe6, 0xa5, 0x57, 0xfd, 0xa8, 0xb1, 0x7d, 0x00, 0x75, 0x93, 0xa9, 0x5d, 0xee, + 0xd8, 0x22, 0xdd, 0x22, 0xd6, 0x8c, 0xd8, 0x90, 0xe8, 0x35, 0x33, 0x5a, 0xd4, 0xbe, 0x9f, 0x83, + 0xcd, 0x81, 0x65, 0x06, 0x01, 0x5d, 0xa8, 0x32, 0x5f, 0xc8, 0xb8, 0xb3, 0x70, 0xc4, 0xcf, 0x3a, + 0x3a, 0x9f, 0xb7, 0x2f, 0x78, 0xfb, 0x2e, 0x92, 0xec, 0xcf, 0x5f, 0x90, 0xec, 0xdf, 0x84, 0xc2, + 0xb1, 0xef, 0x4d, 0x27, 0x4c, 0x43, 0x65, 0x9d, 0x17, 0xe6, 0xb7, 0x42, 0x98, 0xc7, 0x52, 0x64, + 0x76, 0x26, 0xc4, 0xa2, 0xae, 0x0a, 0xdb, 0xaa, 0x03, 0x7f, 0x66, 0xf0, 0xb3, 0x7e, 0x9e, 0x9a, + 0x07, 0x06, 0xda, 0xa5, 0x10, 0xed, 0x0c, 0xae, 0x26, 0x34, 0x91, 0xc9, 0x02, 0xdf, 0x82, 0x2b, + 0x47, 0x8e, 0xeb, 0x90, 0x13, 0x6c, 0x1b, 0x13, 0xec, 0x5b, 0xd8, 0x0d, 0xe4, 0x75, 0xd2, 0xbc, + 0x8e, 0x24, 0xaa, 0x1f, 0x62, 0xb4, 0x0e, 0x3b, 0x68, 0xda, 0x69, 0x0f, 0xcc, 0x23, 0xdc, 0xf7, + 0x1c, 0x37, 0xd3, 0x1e, 0xa0, 0x61, 0x76, 0xce, 0x14, 0xe3, 0x92, 0x49, 0x7c, 0xea, 0x1e, 0x9a, + 0x47, 0xd8, 0x98, 0x50, 0x1e, 0x42, 0xea, 0x32, 0x91, 0x4c, 0xb5, 0x23, 0x68, 0x3c, 0x65, 0x6b, + 0xd1, 0x17, 0x94, 0xf7, 0xb2, 0x76, 0x3c, 0xb8, 0x9e, 0xd2, 0x4e, 0xa6, 0x1e, 0xbd, 0x0a, 0x75, + 0x17, 0x9f, 0x1b, 0x0b, 0xad, 0x55, 0x5d, 0x7c, 0x1e, 0xf2, 0xd6, 0x7e, 0xa4, 0xc0, 0x1d, 0xde, + 0xa2, 0x38, 0x4c, 0xfb, 0x32, 0x3a, 0xc8, 0x39, 0xc9, 0x49, 0x51, 0xd5, 0xcb, 0x02, 0xd2, 0xb3, + 0x69, 0x94, 0x3f, 0x1c, 0xee, 0xb2, 0xe9, 0xb0, 0xaa, 0xd3, 0xcf, 0x84, 0x46, 0xf2, 0x49, 0x8d, + 0xfc, 0xad, 0x02, 0x77, 0x97, 0x0b, 0x98, 0x79, 0xac, 0x5f, 0x4a, 0xc4, 0x57, 0xa1, 0x3e, 0x76, + 0x5c, 0x63, 0x41, 0xcc, 0xea, 0xd8, 0x71, 0xe7, 0xaa, 0xfc, 0x23, 0x05, 0x40, 0x0f, 0xfd, 0xb1, + 0xc5, 0xd0, 0x52, 0xb9, 0xf4, 0xdc, 0x2c, 0x77, 0xd9, 0xb9, 0xd9, 0xea, 0x25, 0xe7, 0x66, 0xf9, + 0x78, 0x68, 0xa9, 0xfd, 0x9e, 0x02, 0x1b, 0xd4, 0x17, 0xf9, 0x02, 0x6b, 0xdc, 0xab, 0x50, 0xe4, + 0x87, 0xe5, 0xa9, 0x07, 0xc7, 0x02, 0xc7, 0xd2, 0x77, 0x2c, 0x98, 0x77, 0x5c, 0x1b, 0x3f, 0x17, + 0x72, 0xf2, 0xf8, 0xbe, 0x47, 0x21, 0xda, 0xbb, 0xdc, 0x59, 0x26, 0x3c, 0xc0, 0x79, 0x4d, 0x9e, + 0xbc, 0x28, 0xe9, 0x27, 0x96, 0xe2, 0xf0, 0xe5, 0x6b, 0x50, 0xe0, 0x67, 0x90, 0x5a, 0x9c, 0x3e, + 0xf5, 0xa4, 0xe6, 0x77, 0x56, 0x01, 0x45, 0xfb, 0x9a, 0xc9, 0x34, 0x5e, 0x38, 0xc9, 0x76, 0x69, + 0x8f, 0xa9, 0xb7, 0x1c, 0x71, 0xe9, 0xa5, 0x63, 0xa2, 0x46, 0xef, 0xf5, 0xb0, 0xd8, 0x2f, 0xe2, + 0xc3, 0xd3, 0xe0, 0xb9, 0x2e, 0x2a, 0xc5, 0xef, 0x0c, 0xc4, 0x7b, 0x5c, 0xe3, 0x34, 0xc2, 0x0d, + 0x8b, 0x5e, 0x70, 0x2b, 0x0a, 0x7d, 0x2e, 0xb9, 0xe0, 0x86, 0xde, 0x8a, 0x9d, 0x17, 0xab, 0x49, + 0x07, 0x9e, 0x2c, 0x1c, 0x18, 0xbf, 0x9d, 0x3c, 0x30, 0xe6, 0xb9, 0x83, 0x4a, 0xa4, 0x4e, 0xe2, + 0xae, 0xd5, 0xaf, 0xb2, 0xeb, 0x1b, 0x07, 0x13, 0x1a, 0xb1, 0x79, 0xfe, 0x97, 0x7e, 0x75, 0x4e, + 0xfb, 0x47, 0x85, 0xdd, 0x19, 0x9d, 0x37, 0x90, 0x69, 0xa0, 0x2f, 0xbc, 0x9d, 0x87, 0x20, 0x6f, + 0x63, 0xc2, 0xc3, 0xc9, 0xaa, 0xce, 0xbe, 0x29, 0xfb, 0x48, 0x08, 0x50, 0x97, 0xec, 0xa5, 0x18, + 0xc2, 0x89, 0x12, 0x34, 0xec, 0x2c, 0xcf, 0x71, 0xe5, 0xb3, 0x11, 0xf6, 0xcd, 0x0e, 0x2b, 0xa8, + 0x81, 0xee, 0x99, 0xcf, 0x87, 0x83, 0xac, 0xc9, 0xf4, 0xb1, 0xf9, 0xdc, 0x08, 0x23, 0x9e, 0x85, + 0xf7, 0x05, 0x85, 0xb1, 0xf9, 0x7c, 0xc8, 0x73, 0x1d, 0xa7, 0xce, 0xc4, 0xb0, 0x4e, 0xb0, 0x75, + 0x2a, 0x82, 0xc0, 0x32, 0x85, 0xb0, 0x63, 0x47, 0xed, 0x8f, 0xc5, 0xaa, 0x20, 0x04, 0xc9, 0x7a, + 0x17, 0x8e, 0x8a, 0x32, 0xa2, 0xb1, 0xe8, 0x05, 0x02, 0xc1, 0xd8, 0x7c, 0xce, 0xe2, 0x55, 0x21, + 0xd5, 0xcc, 0xb5, 0xb0, 0x6d, 0xd8, 0x96, 0xbc, 0x06, 0x55, 0xe6, 0x90, 0x8e, 0x45, 0xb4, 0xdf, + 0x52, 0xe0, 0x4a, 0xe4, 0x3c, 0x8b, 0x64, 0xde, 0x7d, 0xd8, 0x31, 0x42, 0xe4, 0x24, 0xb5, 0xcc, + 0x20, 0x2c, 0xff, 0x9a, 0x70, 0x86, 0x56, 0x17, 0x9c, 0xa1, 0x3f, 0x51, 0x60, 0x33, 0x2e, 0xc4, + 0xff, 0x8b, 0x33, 0x94, 0x70, 0xe2, 0x56, 0x13, 0x4e, 0x9c, 0xf6, 0x97, 0x0a, 0xdc, 0x62, 0x62, + 0xb5, 0x5c, 0x3b, 0xe6, 0xac, 0x7d, 0x25, 0x5a, 0x0a, 0xfd, 0xcc, 0xd5, 0xa8, 0x9f, 0x99, 0xd0, + 0x5d, 0x7e, 0x41, 0x77, 0xff, 0xa5, 0xc0, 0xed, 0x65, 0x42, 0x66, 0xd2, 0xe2, 0x07, 0x70, 0x9d, + 0x8b, 0xb9, 0x5c, 0x97, 0x5b, 0x8c, 0xe0, 0xf1, 0xa2, 0x42, 0x3f, 0x84, 0x1b, 0x84, 0xcb, 0x90, + 0x5a, 0x9b, 0x8f, 0xfc, 0x75, 0x41, 0xf2, 0xf8, 0xb2, 0x01, 0xc9, 0x27, 0x07, 0xe4, 0x84, 0xdd, + 0x9f, 0xec, 0xb4, 0xe5, 0xbd, 0xb7, 0xe8, 0x45, 0xa9, 0x97, 0x0c, 0x21, 0x62, 0x17, 0xea, 0x72, + 0x0b, 0x17, 0xea, 0x7e, 0x5f, 0x81, 0xeb, 0x29, 0x4d, 0x65, 0x7d, 0x6e, 0xc1, 0x1f, 0x41, 0xb1, + 0x76, 0x0a, 0xba, 0x28, 0x45, 0xd6, 0x95, 0xd5, 0x8b, 0xd6, 0x15, 0xed, 0x9f, 0x72, 0x00, 0xf3, + 0xf4, 0x2a, 0xaa, 0x43, 0x6e, 0xa7, 0x2d, 0xdc, 0x9a, 0xdc, 0x4e, 0x9b, 0x3a, 0x4e, 0x3b, 0x58, + 0xba, 0x99, 0xf4, 0x93, 0x2e, 0x83, 0x03, 0xcb, 0x94, 0x7e, 0x0b, 0xfb, 0x46, 0x77, 0xa1, 0xd2, + 0xf6, 0x26, 0xbe, 0x67, 0x61, 0x42, 0x3c, 0x5f, 0xd8, 0x51, 0x14, 0x44, 0xc5, 0xec, 0xe0, 0x11, + 0x0e, 0x64, 0xe2, 0x4d, 0x94, 0x68, 0x4d, 0xfe, 0xa5, 0x9b, 0xee, 0x31, 0x16, 0x21, 0x78, 0x14, + 0x44, 0x25, 0xe8, 0x4f, 0x65, 0x90, 0x43, 0x3f, 0x51, 0x13, 0x4a, 0x7d, 0x1f, 0xb3, 0x04, 0xb5, + 0xb8, 0x75, 0x14, 0x96, 0xd1, 0x37, 0xe0, 0x5a, 0xcb, 0x62, 0x21, 0x69, 0x1f, 0x13, 0xe2, 0x8c, + 0x1d, 0x12, 0x38, 0x54, 0xf1, 0xa7, 0xe2, 0xfe, 0xd1, 0x12, 0x2c, 0x95, 0x8f, 0x67, 0xc9, 0xc4, + 0x71, 0x82, 0x28, 0xd1, 0xb6, 0x74, 0x6f, 0x34, 0x3a, 0x34, 0xad, 0x53, 0x71, 0x8e, 0x10, 0x96, + 0xb5, 0xbf, 0x51, 0x60, 0x53, 0x1c, 0xca, 0x89, 0x3d, 0x39, 0x8b, 0xb5, 0x24, 0xaf, 0x25, 0xe4, + 0x5e, 0xf0, 0x5a, 0x42, 0xc4, 0x43, 0x58, 0xbd, 0xf8, 0x0a, 0xbc, 0xd6, 0x85, 0xab, 0x09, 0x39, + 0xb3, 0x9e, 0x1e, 0x37, 0x39, 0x9f, 0x3d, 0x87, 0x3a, 0x63, 0xde, 0xe8, 0x0c, 0xdb, 0x43, 0xf2, + 0x25, 0xbf, 0xe6, 0x41, 0xaf, 0xc3, 0x3a, 0xf5, 0xcc, 0x7d, 0xd1, 0x80, 0x34, 0xe1, 0xbc, 0x5e, + 0x1b, 0x47, 0x9b, 0xd5, 0x9e, 0xc0, 0x8d, 0x54, 0x69, 0x32, 0xf5, 0xed, 0x04, 0x6e, 0x0c, 0x70, + 0xd0, 0x7d, 0x1e, 0x60, 0xdf, 0x35, 0x47, 0xf3, 0x59, 0x92, 0xa5, 0x6f, 0x37, 0xa3, 0xaf, 0x06, + 0x85, 0xff, 0x3f, 0x7f, 0x24, 0xb8, 0x0b, 0x37, 0xd3, 0x5b, 0xca, 0x24, 0xf7, 0xc7, 0x70, 0x63, + 0xe7, 0x4b, 0x92, 0x5b, 0xfb, 0x0e, 0xdc, 0xdc, 0xf9, 0xd2, 0x24, 0xbb, 0x58, 0x0b, 0x0f, 0xee, + 0x42, 0x39, 0x7c, 0x99, 0x8b, 0xd6, 0x60, 0xb5, 0xff, 0x74, 0xa8, 0xae, 0x20, 0x80, 0x62, 0xa7, + 0xbb, 0xdb, 0x1d, 0x76, 0x55, 0xe5, 0xc1, 0xf7, 0x72, 0x50, 0x0e, 0xdf, 0xb4, 0xa2, 0x22, 0xe4, + 0x0e, 0x9e, 0xa8, 0x2b, 0xa8, 0x02, 0x6b, 0x4f, 0xf7, 0x9f, 0xec, 0x1f, 0x7c, 0xb2, 0xaf, 0x2a, + 0x68, 0x13, 0xd4, 0xfd, 0x83, 0xa1, 0xb1, 0x7d, 0x70, 0x30, 0x1c, 0x0c, 0xf5, 0x56, 0xbf, 0xdf, + 0xed, 0xa8, 0x39, 0x74, 0x05, 0xd6, 0x07, 0xc3, 0x03, 0xbd, 0x6b, 0x0c, 0x0f, 0xf6, 0xb6, 0x07, + 0xc3, 0x83, 0xfd, 0xae, 0xba, 0x8a, 0x1a, 0xb0, 0xd9, 0xda, 0xd5, 0xbb, 0xad, 0xce, 0xa7, 0x71, + 0xf2, 0x3c, 0xc5, 0xf4, 0xf6, 0xdb, 0x07, 0x7b, 0xfd, 0xd6, 0xb0, 0xb7, 0xbd, 0xdb, 0x35, 0x9e, + 0x75, 0xf5, 0x41, 0xef, 0x60, 0x5f, 0x2d, 0x50, 0xf6, 0x7a, 0x77, 0xa7, 0x77, 0xb0, 0x6f, 0xd0, + 0x56, 0x1e, 0x1f, 0x3c, 0xdd, 0xef, 0xa8, 0x45, 0x74, 0x03, 0xb6, 0x76, 0x76, 0x0f, 0xb6, 0x5b, + 0xbb, 0x46, 0xfb, 0x60, 0xff, 0x71, 0x6f, 0x27, 0x82, 0x5c, 0xa3, 0x55, 0x3a, 0x4f, 0xfb, 0xbb, + 0xbd, 0x76, 0x6b, 0xd8, 0xed, 0x18, 0xdd, 0xfd, 0xa1, 0xfe, 0xa9, 0x5a, 0xa2, 0x12, 0xb1, 0xcf, + 0x08, 0x69, 0x19, 0x6d, 0x40, 0xad, 0xb7, 0xff, 0xac, 0xb5, 0xdb, 0xeb, 0x18, 0xcf, 0x5a, 0xbb, + 0x4f, 0xbb, 0x2a, 0x20, 0x04, 0xf5, 0x4e, 0x6b, 0xd8, 0x32, 0x98, 0x34, 0xed, 0x61, 0xb7, 0xa3, + 0x56, 0x1e, 0x3c, 0x86, 0x4a, 0xe4, 0x4a, 0x2c, 0x6d, 0x40, 0xf4, 0xdf, 0x18, 0x3c, 0x6b, 0x1b, + 0x7b, 0x07, 0x9d, 0xae, 0xba, 0x82, 0xd6, 0xa1, 0xd2, 0xef, 0xcc, 0x01, 0x0a, 0x52, 0xa1, 0xda, + 0xea, 0xf7, 0xe6, 0x90, 0xdc, 0x83, 0xf7, 0xa0, 0x12, 0xb9, 0xa0, 0x86, 0x4a, 0x90, 0x1f, 0xb4, + 0x5b, 0xfb, 0xbc, 0x6e, 0xab, 0xdf, 0xd7, 0x0f, 0xbe, 0xd5, 0xdb, 0x6b, 0x51, 0xc5, 0xd3, 0x41, + 0x78, 0x3a, 0xe8, 0x3e, 0xe9, 0x7e, 0xaa, 0xe6, 0x1e, 0xf4, 0xa1, 0x1e, 0xf7, 0x86, 0xe9, 0x00, + 0x0c, 0x9e, 0xb6, 0xdb, 0xdd, 0xc1, 0x80, 0x8f, 0xc6, 0xb0, 0xb7, 0xd7, 0x3d, 0x78, 0x3a, 0xe4, + 0xf5, 0xda, 0xad, 0xfd, 0x76, 0x77, 0x57, 0xcd, 0x51, 0x84, 0xde, 0xed, 0xef, 0xb6, 0xda, 0x54, + 0xf7, 0xb4, 0xf0, 0x74, 0x7f, 0xbf, 0xb7, 0xbf, 0xa3, 0xe6, 0x1f, 0xfc, 0xbd, 0x02, 0x65, 0xb6, + 0xdf, 0x3c, 0x71, 0x5c, 0x9b, 0xd6, 0x39, 0x08, 0x4e, 0xb0, 0x4f, 0xd4, 0x15, 0x3a, 0xc4, 0x3b, + 0x6d, 0x55, 0xa1, 0xd6, 0xb0, 0x83, 0x03, 0x35, 0xc7, 0x64, 0xb4, 0x4c, 0x57, 0x5d, 0xa5, 0x32, + 0x46, 0x36, 0x13, 0x35, 0xcf, 0x0c, 0x85, 0xed, 0x11, 0x6a, 0x81, 0x22, 0x23, 0xfb, 0x85, 0x5a, + 0x64, 0xe6, 0x34, 0x0d, 0xd4, 0x35, 0x54, 0x9d, 0x6f, 0x14, 0x6a, 0x09, 0x35, 0x97, 0x6d, 0x0d, + 0x6a, 0x99, 0xc9, 0xce, 0x16, 0x7c, 0x15, 0x68, 0x2d, 0xb9, 0xc4, 0xab, 0x95, 0x47, 0xff, 0xbd, + 0x05, 0xb9, 0x7e, 0x07, 0xed, 0x41, 0x3d, 0x7e, 0xf7, 0x19, 0xdd, 0x08, 0xaf, 0x7c, 0x2f, 0x5e, + 0xac, 0x6e, 0xde, 0x4c, 0x47, 0xf2, 0x89, 0xa2, 0xad, 0xa0, 0x16, 0xc0, 0xfc, 0xae, 0x38, 0xda, + 0x5a, 0xbc, 0x3d, 0xce, 0xd9, 0x34, 0x96, 0x5d, 0x2b, 0xd7, 0x56, 0xd0, 0xdb, 0xb0, 0x3a, 0x24, + 0x1e, 0x12, 0x91, 0xde, 0xfc, 0x41, 0x77, 0x73, 0x23, 0x02, 0x91, 0xd4, 0xf7, 0x95, 0xb7, 0x15, + 0xf4, 0x21, 0x94, 0xc3, 0xd7, 0xb2, 0x48, 0xbc, 0xe4, 0x4f, 0x3e, 0x57, 0x6e, 0x6e, 0x2d, 0xc0, + 0xc3, 0x16, 0xf7, 0xa0, 0x1e, 0x7f, 0x6f, 0x2b, 0x75, 0x90, 0xfa, 0x96, 0x57, 0xea, 0x20, 0xfd, + 0x89, 0xae, 0xb6, 0x82, 0xde, 0x87, 0x35, 0xf1, 0x26, 0x16, 0x89, 0x95, 0x24, 0xfe, 0xc2, 0xb6, + 0x79, 0x35, 0x01, 0x0d, 0x6b, 0x1a, 0xb0, 0x99, 0xf6, 0x60, 0x15, 0xbd, 0x22, 0x5b, 0x5c, 0xfa, + 0x30, 0xb6, 0xa9, 0x5d, 0x44, 0x12, 0x36, 0xf0, 0x0b, 0x50, 0x92, 0xef, 0x49, 0xd1, 0xd5, 0x70, + 0x0c, 0xa2, 0x0f, 0x3a, 0x9b, 0xd7, 0x92, 0xe0, 0x68, 0x65, 0xf9, 0x2e, 0x53, 0x56, 0x4e, 0xbc, + 0x06, 0x95, 0x95, 0x93, 0xcf, 0x37, 0xb5, 0x15, 0xb4, 0x03, 0xd5, 0xe8, 0xf3, 0x45, 0x74, 0x3d, + 0x6c, 0x26, 0xf9, 0xa0, 0xb2, 0xd9, 0x4c, 0x43, 0x45, 0x07, 0x2b, 0x7e, 0x0a, 0x21, 0x07, 0x2b, + 0xf5, 0x90, 0x4e, 0x0e, 0x56, 0xfa, 0xc1, 0x85, 0xb6, 0x82, 0x86, 0xb0, 0x9e, 0xb8, 0x14, 0x8a, + 0x6e, 0x46, 0xd3, 0x1e, 0x0b, 0x0c, 0x6f, 0x2d, 0xc1, 0x26, 0x2d, 0x32, 0x7c, 0x94, 0x87, 0xe6, + 0x1a, 0x8d, 0xa5, 0xb6, 0x9a, 0x5b, 0x0b, 0xf0, 0x50, 0xaa, 0x6d, 0xa8, 0xed, 0xe0, 0xa0, 0xef, + 0xe3, 0xb3, 0xec, 0x3c, 0x1e, 0x33, 0x1e, 0xf3, 0x87, 0x81, 0xa8, 0x99, 0xa0, 0x8d, 0xbc, 0x16, + 0xbc, 0x88, 0x4f, 0x07, 0x2a, 0x91, 0xe7, 0x68, 0x48, 0x4c, 0xdd, 0xc5, 0xd7, 0x7e, 0xcd, 0xeb, + 0x29, 0x98, 0x90, 0xcb, 0x87, 0x50, 0x92, 0x97, 0x1f, 0xa5, 0xf1, 0x24, 0x6e, 0x5d, 0x4a, 0xe3, + 0x49, 0xde, 0x91, 0xd4, 0x56, 0xbf, 0x9f, 0x53, 0xd0, 0x0e, 0x54, 0x22, 0xd7, 0x04, 0xa5, 0x14, + 0x8b, 0xd7, 0x18, 0xa5, 0x14, 0x29, 0x77, 0x0a, 0x39, 0xa3, 0x8f, 0xa1, 0x16, 0xbb, 0x4a, 0x27, + 0xd5, 0x92, 0x76, 0x7d, 0xb0, 0x79, 0x23, 0x15, 0x17, 0x76, 0x6a, 0x00, 0x6a, 0xf2, 0xf2, 0x1a, + 0xba, 0x15, 0x6d, 0x7f, 0x91, 0xe3, 0xed, 0x65, 0xe8, 0x28, 0xd3, 0xe4, 0x73, 0x37, 0xc9, 0x74, + 0xc9, 0x73, 0x3a, 0xc9, 0x74, 0xd9, 0x2b, 0x39, 0xce, 0x34, 0xf9, 0xb6, 0x4c, 0x32, 0x5d, 0xf2, + 0xcc, 0x4d, 0x32, 0x5d, 0xf6, 0x24, 0x4d, 0x5b, 0xa1, 0xaa, 0x8c, 0xc5, 0xce, 0x52, 0x95, 0x69, + 0x87, 0x55, 0x52, 0x95, 0xa9, 0xc7, 0x37, 0x7c, 0x5a, 0xc7, 0xcf, 0x46, 0x22, 0xfb, 0xd0, 0x62, + 0x9a, 0x3f, 0xb2, 0x0f, 0xa5, 0xa4, 0xd8, 0xb5, 0x15, 0xf4, 0x0c, 0x36, 0x16, 0xce, 0x26, 0x90, + 0xe8, 0xd1, 0xb2, 0xc3, 0x91, 0xe6, 0x9d, 0xa5, 0xf8, 0x90, 0xef, 0xa9, 0x3c, 0x5b, 0x59, 0x4c, + 0xf0, 0xa3, 0xd7, 0xa2, 0xd5, 0x97, 0x9e, 0x50, 0x34, 0x5f, 0xbf, 0x8c, 0x2c, 0x32, 0x83, 0x2b, + 0xf3, 0x24, 0x71, 0xb8, 0x9b, 0x2e, 0xe4, 0xc8, 0xe5, 0x6e, 0xba, 0x98, 0x50, 0x16, 0xab, 0x51, + 0x07, 0x2a, 0x91, 0x24, 0x24, 0x9a, 0x6f, 0xbe, 0x89, 0xc4, 0x67, 0xf3, 0x7a, 0x0a, 0x26, 0x32, + 0x83, 0xcb, 0x61, 0x22, 0x4e, 0xae, 0x47, 0xc9, 0x14, 0x61, 0x73, 0x6b, 0x01, 0x1e, 0xdd, 0x01, + 0xa2, 0xd9, 0x2a, 0xb9, 0x03, 0xa4, 0xa4, 0xd1, 0xe4, 0x0e, 0x90, 0x96, 0xdc, 0xd2, 0x56, 0x10, + 0x86, 0x6b, 0xe9, 0xa9, 0x1b, 0x74, 0x2f, 0x52, 0x6f, 0x59, 0xf6, 0xa9, 0xf9, 0xea, 0xc5, 0x44, + 0x51, 0x13, 0x5a, 0xc8, 0x65, 0xa0, 0xf9, 0x4c, 0x4b, 0xcd, 0xa7, 0x48, 0x13, 0x5a, 0x9a, 0x04, + 0xe1, 0x7c, 0x17, 0xfe, 0x27, 0x49, 0xf2, 0x5d, 0xf6, 0x7f, 0x4d, 0x92, 0xef, 0xd2, 0x3f, 0x58, + 0xe2, 0x53, 0x3c, 0xf9, 0x6f, 0x47, 0x72, 0x8a, 0x2f, 0xf9, 0x5f, 0x25, 0x39, 0xc5, 0x97, 0xfd, + 0x49, 0x92, 0xb6, 0x82, 0xbe, 0x05, 0x1b, 0x0b, 0x7f, 0x6e, 0x25, 0x85, 0x5d, 0xf6, 0x7f, 0x5a, + 0x52, 0xd8, 0xa5, 0xff, 0x8a, 0xa5, 0xad, 0xbc, 0xad, 0xa0, 0x5d, 0xa8, 0xc5, 0x62, 0x77, 0xb9, + 0x78, 0xa4, 0x25, 0x1e, 0xe4, 0xe2, 0x91, 0x1a, 0xec, 0x53, 0x23, 0x47, 0xdf, 0x96, 0xb7, 0xc8, + 0xa3, 0x31, 0xf3, 0x00, 0xdd, 0x8d, 0xd6, 0x4b, 0x0b, 0xee, 0x9b, 0xaf, 0x5c, 0x40, 0x11, 0xf5, + 0xcb, 0xd2, 0x42, 0x5b, 0xe9, 0x97, 0x5d, 0x10, 0x60, 0x4b, 0xbf, 0xec, 0xa2, 0xc8, 0x98, 0x37, + 0xb0, 0x73, 0x41, 0x03, 0x3b, 0x97, 0x37, 0xb0, 0x73, 0x61, 0x03, 0xdb, 0xaf, 0xff, 0xfb, 0xdf, + 0x95, 0x94, 0x7f, 0xfd, 0xfc, 0xb6, 0xf2, 0x6f, 0x9f, 0xdf, 0x56, 0x7e, 0xfc, 0xf9, 0x6d, 0xe5, + 0x2f, 0xfe, 0xf3, 0xf6, 0x0a, 0xa8, 0x9e, 0x7f, 0xfc, 0x30, 0x70, 0x4e, 0xcf, 0x1e, 0x9e, 0x9e, + 0xb1, 0xbf, 0x49, 0x3b, 0x2c, 0xb2, 0x9f, 0x77, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x30, 0x32, + 0x94, 0xae, 0xb4, 0x4d, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -14180,6 +14295,88 @@ func (m *SyncRegionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *PeersStats) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PeersStats) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PeersStats) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Peers) > 0 { + for iNdEx := len(m.Peers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Peers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Peers) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Peers) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Peers) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Peers) > 0 { + for iNdEx := len(m.Peers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Peers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func (m *SyncRegionResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -14204,6 +14401,38 @@ func (m *SyncRegionResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.PendingPeers) > 0 { + for iNdEx := len(m.PendingPeers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PendingPeers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + } + if len(m.DownPeers) > 0 { + for iNdEx := len(m.DownPeers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DownPeers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + } if len(m.Buckets) > 0 { for iNdEx := len(m.Buckets) - 1; iNdEx >= 0; iNdEx-- { { @@ -17405,6 +17634,42 @@ func (m *SyncRegionRequest) Size() (n int) { return n } +func (m *PeersStats) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Peers) > 0 { + for _, e := range m.Peers { + l = e.Size() + n += 1 + l + sovPdpb(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Peers) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Peers) > 0 { + for _, e := range m.Peers { + l = e.Size() + n += 1 + l + sovPdpb(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *SyncRegionResponse) Size() (n int) { if m == nil { return 0 @@ -17442,6 +17707,18 @@ func (m *SyncRegionResponse) Size() (n int) { n += 1 + l + sovPdpb(uint64(l)) } } + if len(m.DownPeers) > 0 { + for _, e := range m.DownPeers { + l = e.Size() + n += 2 + l + sovPdpb(uint64(l)) + } + } + if len(m.PendingPeers) > 0 { + for _, e := range m.PendingPeers { + l = e.Size() + n += 2 + l + sovPdpb(uint64(l)) + } + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -30561,6 +30838,176 @@ func (m *SyncRegionRequest) Unmarshal(dAtA []byte) error { } return nil } +func (m *PeersStats) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PeersStats: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PeersStats: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Peers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Peers = append(m.Peers, &PeerStats{}) + if err := m.Peers[len(m.Peers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPdpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPdpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Peers) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Peers: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Peers: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Peers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Peers = append(m.Peers, &metapb.Peer{}) + if err := m.Peers[len(m.Peers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPdpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPdpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *SyncRegionResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -30781,6 +31228,74 @@ func (m *SyncRegionResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DownPeers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DownPeers = append(m.DownPeers, &PeersStats{}) + if err := m.DownPeers[len(m.DownPeers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PendingPeers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PendingPeers = append(m.PendingPeers, &Peers{}) + if err := m.PendingPeers[len(m.PendingPeers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipPdpb(dAtA[iNdEx:]) diff --git a/proto/pdpb.proto b/proto/pdpb.proto index 56ede1e..a824a1d 100644 --- a/proto/pdpb.proto +++ b/proto/pdpb.proto @@ -829,6 +829,14 @@ message SyncRegionRequest{ uint64 start_index = 3; } +message PeersStats { + repeated PeerStats peers = 1; +} + +message Peers { + repeated metapb.Peer peers = 1; +} + message SyncRegionResponse{ ResponseHeader header = 1; // the leader PD will send the repsonds include @@ -838,7 +846,9 @@ message SyncRegionResponse{ repeated RegionStat region_stats = 4; repeated metapb.Peer region_leaders = 5; // the buckets informations without stats. - repeated metapb.Buckets buckets =6; + repeated metapb.Buckets buckets = 6; + repeated PeersStats down_peers = 16; + repeated Peers pending_peers = 17; } message GetOperatorRequest { diff --git a/scripts/proto.lock b/scripts/proto.lock index 4f0e7bc..4ee277a 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -13732,6 +13732,28 @@ } ] }, + { + "name": "PeersStats", + "fields": [ + { + "id": 1, + "name": "peers", + "type": "PeerStats", + "is_repeated": true + } + ] + }, + { + "name": "Peers", + "fields": [ + { + "id": 1, + "name": "peers", + "type": "metapb.Peer", + "is_repeated": true + } + ] + }, { "name": "SyncRegionResponse", "fields": [ @@ -13768,6 +13790,18 @@ "name": "buckets", "type": "metapb.Buckets", "is_repeated": true + }, + { + "id": 16, + "name": "down_peers", + "type": "PeersStats", + "is_repeated": true + }, + { + "id": 17, + "name": "pending_peers", + "type": "Peers", + "is_repeated": true } ] }, -- Gitee From dc3cd8784a19bc7f058dbeb19cd8cc4672ee9aad Mon Sep 17 00:00:00 2001 From: Connor Date: Wed, 19 Apr 2023 15:26:53 +0800 Subject: [PATCH 37/44] Add resource group penalty (#1102) * add resource group penalty Signed-off-by: Connor1996 --- pkg/kvrpcpb/kvrpcpb.pb.go | 1351 ++++++++++++++++++++++--------------- pkg/tracepb/tracepb.pb.go | 1 + proto/kvrpcpb.proto | 16 +- scripts/proto.lock | 31 +- 4 files changed, 846 insertions(+), 553 deletions(-) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index 74b0a17..e99f1d5 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -14,6 +14,7 @@ import ( deadlock "github.com/pingcap/kvproto/pkg/deadlock" errorpb "github.com/pingcap/kvproto/pkg/errorpb" metapb "github.com/pingcap/kvproto/pkg/metapb" + resource_manager "github.com/pingcap/kvproto/pkg/resource_manager" github_com_pingcap_kvproto_pkg_sharedbytes "github.com/pingcap/kvproto/pkg/sharedbytes" tracepb "github.com/pingcap/kvproto/pkg/tracepb" ) @@ -504,7 +505,7 @@ func (x WriteConflict_Reason) String() string { } func (WriteConflict_Reason) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{78, 0} + return fileDescriptor_1afe832be69693c7, []int{79, 0} } // A transactional get command. Lookup a value for `key` in the transaction with @@ -1957,9 +1958,10 @@ type CheckTxnStatusResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Error *KeyError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Three kinds of transaction status: - // locked: lock_ttl > 0 - // committed: commit_version > 0 - // rollbacked: lock_ttl = 0 && commit_version = 0 + // + // locked: lock_ttl > 0 + // committed: commit_version > 0 + // rollbacked: lock_ttl = 0 && commit_version = 0 LockTtl uint64 `protobuf:"varint,3,opt,name=lock_ttl,json=lockTtl,proto3" json:"lock_ttl,omitempty"` CommitVersion uint64 `protobuf:"varint,4,opt,name=commit_version,json=commitVersion,proto3" json:"commit_version,omitempty"` // The action performed by TiKV (and why if the action is to rollback). @@ -6057,11 +6059,11 @@ type Context struct { RequestSource string `protobuf:"bytes,24,opt,name=request_source,json=requestSource,proto3" json:"request_source,omitempty"` // The source of the current transaction. TxnSource uint64 `protobuf:"varint,25,opt,name=txn_source,json=txnSource,proto3" json:"txn_source,omitempty"` - // Different from resource_group_tag, it's used for resource control for each resource group - ResourceGroupName string `protobuf:"bytes,26,opt,name=resource_group_name,json=resourceGroupName,proto3" json:"resource_group_name,omitempty"` // If `busy_threshold_ms` is given, TiKV can reject the request and return a `ServerIsBusy` // error before processing if the estimated waiting duration exceeds the threshold. BusyThresholdMs uint32 `protobuf:"varint,27,opt,name=busy_threshold_ms,json=busyThresholdMs,proto3" json:"busy_threshold_ms,omitempty"` + // Some information used for resource control. + ResourceControlContext *ResourceControlContext `protobuf:"bytes,28,opt,name=resource_control_context,json=resourceControlContext,proto3" json:"resource_control_context,omitempty"` // The keyspace that the request is sent to. // NOTE: This field is only meaningful while the api_version is V2. KeyspaceId uint32 `protobuf:"varint,32,opt,name=keyspace_id,json=keyspaceId,proto3" json:"keyspace_id,omitempty"` @@ -6271,18 +6273,18 @@ func (m *Context) GetTxnSource() uint64 { return 0 } -func (m *Context) GetResourceGroupName() string { +func (m *Context) GetBusyThresholdMs() uint32 { if m != nil { - return m.ResourceGroupName + return m.BusyThresholdMs } - return "" + return 0 } -func (m *Context) GetBusyThresholdMs() uint32 { +func (m *Context) GetResourceControlContext() *ResourceControlContext { if m != nil { - return m.BusyThresholdMs + return m.ResourceControlContext } - return 0 + return nil } func (m *Context) GetKeyspaceId() uint32 { @@ -6292,6 +6294,64 @@ func (m *Context) GetKeyspaceId() uint32 { return 0 } +type ResourceControlContext struct { + // It's used to identify which resource group the request belongs to. + ResourceGroupName string `protobuf:"bytes,1,opt,name=resource_group_name,json=resourceGroupName,proto3" json:"resource_group_name,omitempty"` + // The resource consumption of the resource group that have completed at all TiKVs between the previous request to this TiKV and current request. + // It's used as penalty to make the local resource scheduling on one TiKV takes the gloabl resource consumption into consideration. + Penalty *resource_manager.Consumption `protobuf:"bytes,2,opt,name=penalty,proto3" json:"penalty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResourceControlContext) Reset() { *m = ResourceControlContext{} } +func (m *ResourceControlContext) String() string { return proto.CompactTextString(m) } +func (*ResourceControlContext) ProtoMessage() {} +func (*ResourceControlContext) Descriptor() ([]byte, []int) { + return fileDescriptor_1afe832be69693c7, []int{76} +} +func (m *ResourceControlContext) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResourceControlContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResourceControlContext.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResourceControlContext) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResourceControlContext.Merge(m, src) +} +func (m *ResourceControlContext) XXX_Size() int { + return m.Size() +} +func (m *ResourceControlContext) XXX_DiscardUnknown() { + xxx_messageInfo_ResourceControlContext.DiscardUnknown(m) +} + +var xxx_messageInfo_ResourceControlContext proto.InternalMessageInfo + +func (m *ResourceControlContext) GetResourceGroupName() string { + if m != nil { + return m.ResourceGroupName + } + return "" +} + +func (m *ResourceControlContext) GetPenalty() *resource_manager.Consumption { + if m != nil { + return m.Penalty + } + return nil +} + type LockInfo struct { PrimaryLock []byte `protobuf:"bytes,1,opt,name=primary_lock,json=primaryLock,proto3" json:"primary_lock,omitempty"` LockVersion uint64 `protobuf:"varint,2,opt,name=lock_version,json=lockVersion,proto3" json:"lock_version,omitempty"` @@ -6318,7 +6378,7 @@ func (m *LockInfo) Reset() { *m = LockInfo{} } func (m *LockInfo) String() string { return proto.CompactTextString(m) } func (*LockInfo) ProtoMessage() {} func (*LockInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{76} + return fileDescriptor_1afe832be69693c7, []int{77} } func (m *LockInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6444,7 +6504,7 @@ func (m *KeyError) Reset() { *m = KeyError{} } func (m *KeyError) String() string { return proto.CompactTextString(m) } func (*KeyError) ProtoMessage() {} func (*KeyError) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{77} + return fileDescriptor_1afe832be69693c7, []int{78} } func (m *KeyError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6559,7 +6619,7 @@ func (m *WriteConflict) Reset() { *m = WriteConflict{} } func (m *WriteConflict) String() string { return proto.CompactTextString(m) } func (*WriteConflict) ProtoMessage() {} func (*WriteConflict) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{78} + return fileDescriptor_1afe832be69693c7, []int{79} } func (m *WriteConflict) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6641,7 +6701,7 @@ func (m *AlreadyExist) Reset() { *m = AlreadyExist{} } func (m *AlreadyExist) String() string { return proto.CompactTextString(m) } func (*AlreadyExist) ProtoMessage() {} func (*AlreadyExist) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{79} + return fileDescriptor_1afe832be69693c7, []int{80} } func (m *AlreadyExist) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6691,7 +6751,7 @@ func (m *Deadlock) Reset() { *m = Deadlock{} } func (m *Deadlock) String() string { return proto.CompactTextString(m) } func (*Deadlock) ProtoMessage() {} func (*Deadlock) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{80} + return fileDescriptor_1afe832be69693c7, []int{81} } func (m *Deadlock) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6762,7 +6822,7 @@ func (m *CommitTsExpired) Reset() { *m = CommitTsExpired{} } func (m *CommitTsExpired) String() string { return proto.CompactTextString(m) } func (*CommitTsExpired) ProtoMessage() {} func (*CommitTsExpired) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{81} + return fileDescriptor_1afe832be69693c7, []int{82} } func (m *CommitTsExpired) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6831,7 +6891,7 @@ func (m *TxnNotFound) Reset() { *m = TxnNotFound{} } func (m *TxnNotFound) String() string { return proto.CompactTextString(m) } func (*TxnNotFound) ProtoMessage() {} func (*TxnNotFound) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{82} + return fileDescriptor_1afe832be69693c7, []int{83} } func (m *TxnNotFound) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6885,7 +6945,7 @@ func (m *CommitTsTooLarge) Reset() { *m = CommitTsTooLarge{} } func (m *CommitTsTooLarge) String() string { return proto.CompactTextString(m) } func (*CommitTsTooLarge) ProtoMessage() {} func (*CommitTsTooLarge) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{83} + return fileDescriptor_1afe832be69693c7, []int{84} } func (m *CommitTsTooLarge) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6936,7 +6996,7 @@ func (m *AssertionFailed) Reset() { *m = AssertionFailed{} } func (m *AssertionFailed) String() string { return proto.CompactTextString(m) } func (*AssertionFailed) ProtoMessage() {} func (*AssertionFailed) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{84} + return fileDescriptor_1afe832be69693c7, []int{85} } func (m *AssertionFailed) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7023,7 +7083,7 @@ func (m *TimeDetail) Reset() { *m = TimeDetail{} } func (m *TimeDetail) String() string { return proto.CompactTextString(m) } func (*TimeDetail) ProtoMessage() {} func (*TimeDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{85} + return fileDescriptor_1afe832be69693c7, []int{86} } func (m *TimeDetail) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7105,7 +7165,7 @@ func (m *TimeDetailV2) Reset() { *m = TimeDetailV2{} } func (m *TimeDetailV2) String() string { return proto.CompactTextString(m) } func (*TimeDetailV2) ProtoMessage() {} func (*TimeDetailV2) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{86} + return fileDescriptor_1afe832be69693c7, []int{87} } func (m *TimeDetailV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7182,7 +7242,7 @@ func (m *ScanInfo) Reset() { *m = ScanInfo{} } func (m *ScanInfo) String() string { return proto.CompactTextString(m) } func (*ScanInfo) ProtoMessage() {} func (*ScanInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{87} + return fileDescriptor_1afe832be69693c7, []int{88} } func (m *ScanInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7246,7 +7306,7 @@ func (m *ScanDetail) Reset() { *m = ScanDetail{} } func (m *ScanDetail) String() string { return proto.CompactTextString(m) } func (*ScanDetail) ProtoMessage() {} func (*ScanDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{88} + return fileDescriptor_1afe832be69693c7, []int{89} } func (m *ScanDetail) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7342,7 +7402,7 @@ func (m *ScanDetailV2) Reset() { *m = ScanDetailV2{} } func (m *ScanDetailV2) String() string { return proto.CompactTextString(m) } func (*ScanDetailV2) ProtoMessage() {} func (*ScanDetailV2) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{89} + return fileDescriptor_1afe832be69693c7, []int{90} } func (m *ScanDetailV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7476,7 +7536,7 @@ func (m *ExecDetails) Reset() { *m = ExecDetails{} } func (m *ExecDetails) String() string { return proto.CompactTextString(m) } func (*ExecDetails) ProtoMessage() {} func (*ExecDetails) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{90} + return fileDescriptor_1afe832be69693c7, []int{91} } func (m *ExecDetails) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7538,7 +7598,7 @@ func (m *ExecDetailsV2) Reset() { *m = ExecDetailsV2{} } func (m *ExecDetailsV2) String() string { return proto.CompactTextString(m) } func (*ExecDetailsV2) ProtoMessage() {} func (*ExecDetailsV2) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{91} + return fileDescriptor_1afe832be69693c7, []int{92} } func (m *ExecDetailsV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7639,7 +7699,7 @@ func (m *WriteDetail) Reset() { *m = WriteDetail{} } func (m *WriteDetail) String() string { return proto.CompactTextString(m) } func (*WriteDetail) ProtoMessage() {} func (*WriteDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{92} + return fileDescriptor_1afe832be69693c7, []int{93} } func (m *WriteDetail) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7800,7 +7860,7 @@ func (m *KvPair) Reset() { *m = KvPair{} } func (m *KvPair) String() string { return proto.CompactTextString(m) } func (*KvPair) ProtoMessage() {} func (*KvPair) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{93} + return fileDescriptor_1afe832be69693c7, []int{94} } func (m *KvPair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7864,7 +7924,7 @@ func (m *Mutation) Reset() { *m = Mutation{} } func (m *Mutation) String() string { return proto.CompactTextString(m) } func (*Mutation) ProtoMessage() {} func (*Mutation) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{94} + return fileDescriptor_1afe832be69693c7, []int{95} } func (m *Mutation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7940,7 +8000,7 @@ func (m *MvccWrite) Reset() { *m = MvccWrite{} } func (m *MvccWrite) String() string { return proto.CompactTextString(m) } func (*MvccWrite) ProtoMessage() {} func (*MvccWrite) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{95} + return fileDescriptor_1afe832be69693c7, []int{96} } func (m *MvccWrite) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8044,7 +8104,7 @@ func (m *MvccValue) Reset() { *m = MvccValue{} } func (m *MvccValue) String() string { return proto.CompactTextString(m) } func (*MvccValue) ProtoMessage() {} func (*MvccValue) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{96} + return fileDescriptor_1afe832be69693c7, []int{97} } func (m *MvccValue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8109,7 +8169,7 @@ func (m *MvccLock) Reset() { *m = MvccLock{} } func (m *MvccLock) String() string { return proto.CompactTextString(m) } func (*MvccLock) ProtoMessage() {} func (*MvccLock) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{97} + return fileDescriptor_1afe832be69693c7, []int{98} } func (m *MvccLock) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8235,7 +8295,7 @@ func (m *MvccInfo) Reset() { *m = MvccInfo{} } func (m *MvccInfo) String() string { return proto.CompactTextString(m) } func (*MvccInfo) ProtoMessage() {} func (*MvccInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{98} + return fileDescriptor_1afe832be69693c7, []int{99} } func (m *MvccInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8297,7 +8357,7 @@ func (m *TxnInfo) Reset() { *m = TxnInfo{} } func (m *TxnInfo) String() string { return proto.CompactTextString(m) } func (*TxnInfo) ProtoMessage() {} func (*TxnInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{99} + return fileDescriptor_1afe832be69693c7, []int{100} } func (m *TxnInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8352,7 +8412,7 @@ func (m *KeyRange) Reset() { *m = KeyRange{} } func (m *KeyRange) String() string { return proto.CompactTextString(m) } func (*KeyRange) ProtoMessage() {} func (*KeyRange) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{100} + return fileDescriptor_1afe832be69693c7, []int{101} } func (m *KeyRange) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8410,7 +8470,7 @@ func (m *LeaderInfo) Reset() { *m = LeaderInfo{} } func (m *LeaderInfo) String() string { return proto.CompactTextString(m) } func (*LeaderInfo) ProtoMessage() {} func (*LeaderInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{101} + return fileDescriptor_1afe832be69693c7, []int{102} } func (m *LeaderInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8486,7 +8546,7 @@ func (m *ReadState) Reset() { *m = ReadState{} } func (m *ReadState) String() string { return proto.CompactTextString(m) } func (*ReadState) ProtoMessage() {} func (*ReadState) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{102} + return fileDescriptor_1afe832be69693c7, []int{103} } func (m *ReadState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8541,7 +8601,7 @@ func (m *CheckLeaderRequest) Reset() { *m = CheckLeaderRequest{} } func (m *CheckLeaderRequest) String() string { return proto.CompactTextString(m) } func (*CheckLeaderRequest) ProtoMessage() {} func (*CheckLeaderRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{103} + return fileDescriptor_1afe832be69693c7, []int{104} } func (m *CheckLeaderRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8596,7 +8656,7 @@ func (m *CheckLeaderResponse) Reset() { *m = CheckLeaderResponse{} } func (m *CheckLeaderResponse) String() string { return proto.CompactTextString(m) } func (*CheckLeaderResponse) ProtoMessage() {} func (*CheckLeaderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{104} + return fileDescriptor_1afe832be69693c7, []int{105} } func (m *CheckLeaderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8652,7 +8712,7 @@ func (m *StoreSafeTSRequest) Reset() { *m = StoreSafeTSRequest{} } func (m *StoreSafeTSRequest) String() string { return proto.CompactTextString(m) } func (*StoreSafeTSRequest) ProtoMessage() {} func (*StoreSafeTSRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{105} + return fileDescriptor_1afe832be69693c7, []int{106} } func (m *StoreSafeTSRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8699,7 +8759,7 @@ func (m *StoreSafeTSResponse) Reset() { *m = StoreSafeTSResponse{} } func (m *StoreSafeTSResponse) String() string { return proto.CompactTextString(m) } func (*StoreSafeTSResponse) ProtoMessage() {} func (*StoreSafeTSResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{106} + return fileDescriptor_1afe832be69693c7, []int{107} } func (m *StoreSafeTSResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8748,7 +8808,7 @@ func (m *RawGetKeyTTLRequest) Reset() { *m = RawGetKeyTTLRequest{} } func (m *RawGetKeyTTLRequest) String() string { return proto.CompactTextString(m) } func (*RawGetKeyTTLRequest) ProtoMessage() {} func (*RawGetKeyTTLRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{107} + return fileDescriptor_1afe832be69693c7, []int{108} } func (m *RawGetKeyTTLRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8812,7 +8872,7 @@ func (m *RawGetKeyTTLResponse) Reset() { *m = RawGetKeyTTLResponse{} } func (m *RawGetKeyTTLResponse) String() string { return proto.CompactTextString(m) } func (*RawGetKeyTTLResponse) ProtoMessage() {} func (*RawGetKeyTTLResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{108} + return fileDescriptor_1afe832be69693c7, []int{109} } func (m *RawGetKeyTTLResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8886,7 +8946,7 @@ func (m *RawCASRequest) Reset() { *m = RawCASRequest{} } func (m *RawCASRequest) String() string { return proto.CompactTextString(m) } func (*RawCASRequest) ProtoMessage() {} func (*RawCASRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{109} + return fileDescriptor_1afe832be69693c7, []int{110} } func (m *RawCASRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8980,7 +9040,7 @@ func (m *RawCASResponse) Reset() { *m = RawCASResponse{} } func (m *RawCASResponse) String() string { return proto.CompactTextString(m) } func (*RawCASResponse) ProtoMessage() {} func (*RawCASResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{110} + return fileDescriptor_1afe832be69693c7, []int{111} } func (m *RawCASResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9055,7 +9115,7 @@ func (m *GetLockWaitInfoRequest) Reset() { *m = GetLockWaitInfoRequest{} func (m *GetLockWaitInfoRequest) String() string { return proto.CompactTextString(m) } func (*GetLockWaitInfoRequest) ProtoMessage() {} func (*GetLockWaitInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{111} + return fileDescriptor_1afe832be69693c7, []int{112} } func (m *GetLockWaitInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9104,7 +9164,7 @@ func (m *GetLockWaitInfoResponse) Reset() { *m = GetLockWaitInfoResponse func (m *GetLockWaitInfoResponse) String() string { return proto.CompactTextString(m) } func (*GetLockWaitInfoResponse) ProtoMessage() {} func (*GetLockWaitInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{112} + return fileDescriptor_1afe832be69693c7, []int{113} } func (m *GetLockWaitInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9165,7 +9225,7 @@ func (m *GetLockWaitHistoryRequest) Reset() { *m = GetLockWaitHistoryReq func (m *GetLockWaitHistoryRequest) String() string { return proto.CompactTextString(m) } func (*GetLockWaitHistoryRequest) ProtoMessage() {} func (*GetLockWaitHistoryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{113} + return fileDescriptor_1afe832be69693c7, []int{114} } func (m *GetLockWaitHistoryRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9214,7 +9274,7 @@ func (m *GetLockWaitHistoryResponse) Reset() { *m = GetLockWaitHistoryRe func (m *GetLockWaitHistoryResponse) String() string { return proto.CompactTextString(m) } func (*GetLockWaitHistoryResponse) ProtoMessage() {} func (*GetLockWaitHistoryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{114} + return fileDescriptor_1afe832be69693c7, []int{115} } func (m *GetLockWaitHistoryResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9280,7 +9340,7 @@ func (m *RawCoprocessorRequest) Reset() { *m = RawCoprocessorRequest{} } func (m *RawCoprocessorRequest) String() string { return proto.CompactTextString(m) } func (*RawCoprocessorRequest) ProtoMessage() {} func (*RawCoprocessorRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{115} + return fileDescriptor_1afe832be69693c7, []int{116} } func (m *RawCoprocessorRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9359,7 +9419,7 @@ func (m *RawCoprocessorResponse) Reset() { *m = RawCoprocessorResponse{} func (m *RawCoprocessorResponse) String() string { return proto.CompactTextString(m) } func (*RawCoprocessorResponse) ProtoMessage() {} func (*RawCoprocessorResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{116} + return fileDescriptor_1afe832be69693c7, []int{117} } func (m *RawCoprocessorResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9422,7 +9482,7 @@ func (m *RawChecksumRequest) Reset() { *m = RawChecksumRequest{} } func (m *RawChecksumRequest) String() string { return proto.CompactTextString(m) } func (*RawChecksumRequest) ProtoMessage() {} func (*RawChecksumRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{117} + return fileDescriptor_1afe832be69693c7, []int{118} } func (m *RawChecksumRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9487,7 +9547,7 @@ func (m *RawChecksumResponse) Reset() { *m = RawChecksumResponse{} } func (m *RawChecksumResponse) String() string { return proto.CompactTextString(m) } func (*RawChecksumResponse) ProtoMessage() {} func (*RawChecksumResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{118} + return fileDescriptor_1afe832be69693c7, []int{119} } func (m *RawChecksumResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9553,6 +9613,7 @@ func (m *RawChecksumResponse) GetTotalBytes() uint64 { type CompactError struct { // Types that are valid to be assigned to Error: + // // *CompactError_ErrInvalidStartKey // *CompactError_ErrPhysicalTableNotExist // *CompactError_ErrCompactInProgress @@ -9567,7 +9628,7 @@ func (m *CompactError) Reset() { *m = CompactError{} } func (m *CompactError) String() string { return proto.CompactTextString(m) } func (*CompactError) ProtoMessage() {} func (*CompactError) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{119} + return fileDescriptor_1afe832be69693c7, []int{120} } func (m *CompactError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9675,7 +9736,7 @@ func (m *CompactErrorInvalidStartKey) Reset() { *m = CompactErrorInvalid func (m *CompactErrorInvalidStartKey) String() string { return proto.CompactTextString(m) } func (*CompactErrorInvalidStartKey) ProtoMessage() {} func (*CompactErrorInvalidStartKey) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{120} + return fileDescriptor_1afe832be69693c7, []int{121} } func (m *CompactErrorInvalidStartKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9714,7 +9775,7 @@ func (m *CompactErrorPhysicalTableNotExist) Reset() { *m = CompactErrorP func (m *CompactErrorPhysicalTableNotExist) String() string { return proto.CompactTextString(m) } func (*CompactErrorPhysicalTableNotExist) ProtoMessage() {} func (*CompactErrorPhysicalTableNotExist) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{121} + return fileDescriptor_1afe832be69693c7, []int{122} } func (m *CompactErrorPhysicalTableNotExist) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9753,7 +9814,7 @@ func (m *CompactErrorCompactInProgress) Reset() { *m = CompactErrorCompa func (m *CompactErrorCompactInProgress) String() string { return proto.CompactTextString(m) } func (*CompactErrorCompactInProgress) ProtoMessage() {} func (*CompactErrorCompactInProgress) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{122} + return fileDescriptor_1afe832be69693c7, []int{123} } func (m *CompactErrorCompactInProgress) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9792,7 +9853,7 @@ func (m *CompactErrorTooManyPendingTasks) Reset() { *m = CompactErrorToo func (m *CompactErrorTooManyPendingTasks) String() string { return proto.CompactTextString(m) } func (*CompactErrorTooManyPendingTasks) ProtoMessage() {} func (*CompactErrorTooManyPendingTasks) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{123} + return fileDescriptor_1afe832be69693c7, []int{124} } func (m *CompactErrorTooManyPendingTasks) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9852,7 +9913,7 @@ func (m *CompactRequest) Reset() { *m = CompactRequest{} } func (m *CompactRequest) String() string { return proto.CompactTextString(m) } func (*CompactRequest) ProtoMessage() {} func (*CompactRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{124} + return fileDescriptor_1afe832be69693c7, []int{125} } func (m *CompactRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9932,7 +9993,7 @@ func (m *CompactResponse) Reset() { *m = CompactResponse{} } func (m *CompactResponse) String() string { return proto.CompactTextString(m) } func (*CompactResponse) ProtoMessage() {} func (*CompactResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{125} + return fileDescriptor_1afe832be69693c7, []int{126} } func (m *CompactResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10000,7 +10061,7 @@ func (m *TiFlashSystemTableRequest) Reset() { *m = TiFlashSystemTableReq func (m *TiFlashSystemTableRequest) String() string { return proto.CompactTextString(m) } func (*TiFlashSystemTableRequest) ProtoMessage() {} func (*TiFlashSystemTableRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{126} + return fileDescriptor_1afe832be69693c7, []int{127} } func (m *TiFlashSystemTableRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10047,7 +10108,7 @@ func (m *TiFlashSystemTableResponse) Reset() { *m = TiFlashSystemTableRe func (m *TiFlashSystemTableResponse) String() string { return proto.CompactTextString(m) } func (*TiFlashSystemTableResponse) ProtoMessage() {} func (*TiFlashSystemTableResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{127} + return fileDescriptor_1afe832be69693c7, []int{128} } func (m *TiFlashSystemTableResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10168,6 +10229,7 @@ func init() { proto.RegisterType((*MvccGetByStartTsRequest)(nil), "kvrpcpb.MvccGetByStartTsRequest") proto.RegisterType((*MvccGetByStartTsResponse)(nil), "kvrpcpb.MvccGetByStartTsResponse") proto.RegisterType((*Context)(nil), "kvrpcpb.Context") + proto.RegisterType((*ResourceControlContext)(nil), "kvrpcpb.ResourceControlContext") proto.RegisterType((*LockInfo)(nil), "kvrpcpb.LockInfo") proto.RegisterType((*KeyError)(nil), "kvrpcpb.KeyError") proto.RegisterType((*WriteConflict)(nil), "kvrpcpb.WriteConflict") @@ -10225,422 +10287,427 @@ func init() { func init() { proto.RegisterFile("kvrpcpb.proto", fileDescriptor_1afe832be69693c7) } var fileDescriptor_1afe832be69693c7 = []byte{ - // 6634 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0x5b, 0x6c, 0x1c, 0xc9, - 0x75, 0x28, 0x7b, 0x1e, 0x9c, 0x99, 0x33, 0xe4, 0xb0, 0xd9, 0x7c, 0x0d, 0x29, 0x69, 0x45, 0xf5, - 0x5a, 0xbb, 0x32, 0xed, 0xa5, 0xbc, 0xdc, 0x87, 0x9f, 0x77, 0xbd, 0x12, 0xa9, 0x07, 0x57, 0x94, - 0x48, 0xf4, 0xcc, 0x6a, 0xef, 0xe2, 0x5e, 0xbb, 0x5d, 0xec, 0x29, 0xce, 0x34, 0xd8, 0xd3, 0xdd, - 0xdb, 0x55, 0x43, 0x72, 0x7c, 0x71, 0x81, 0xbb, 0xb8, 0x49, 0x00, 0x03, 0x81, 0x93, 0x18, 0x06, - 0x1c, 0xc0, 0x46, 0x80, 0x7c, 0x18, 0x88, 0xf3, 0x17, 0xe4, 0x27, 0x8f, 0x8f, 0x20, 0x80, 0x3f, - 0x36, 0x41, 0x0c, 0x1b, 0x08, 0x02, 0x07, 0x0e, 0x60, 0x24, 0x1b, 0x20, 0xdf, 0xf9, 0x09, 0x92, - 0x9f, 0x20, 0x41, 0xbd, 0xfa, 0x31, 0x33, 0xa4, 0x28, 0x8a, 0x94, 0x9d, 0x7c, 0x71, 0xfa, 0x9c, - 0x53, 0x55, 0xe7, 0x55, 0xa7, 0xaa, 0x4e, 0x9d, 0x22, 0x4c, 0xee, 0x1f, 0x44, 0xa1, 0x13, 0xee, - 0xae, 0x86, 0x51, 0x40, 0x03, 0xa3, 0x24, 0x3f, 0x97, 0x26, 0xba, 0x98, 0x22, 0x05, 0x5e, 0x9a, - 0xc4, 0x51, 0x14, 0x44, 0xf1, 0xe7, 0x6c, 0x3b, 0x68, 0x07, 0xfc, 0xe7, 0x4d, 0xf6, 0x4b, 0x42, - 0xa7, 0xa2, 0x1e, 0xa1, 0xfc, 0xa7, 0x04, 0xd4, 0x5a, 0x18, 0xb5, 0xbc, 0xc0, 0xd9, 0x57, 0xbd, - 0xd0, 0x08, 0x39, 0x58, 0xf5, 0x62, 0xb6, 0x00, 0xee, 0x61, 0x6a, 0xe1, 0x0f, 0x7a, 0x98, 0x50, - 0x63, 0x05, 0x4a, 0x4e, 0xe0, 0x53, 0x7c, 0x44, 0xeb, 0xda, 0xb2, 0x76, 0xa3, 0xba, 0xa6, 0xaf, - 0x2a, 0xd6, 0xd6, 0x05, 0xdc, 0x52, 0x04, 0x86, 0x0e, 0xf9, 0x7d, 0xdc, 0xaf, 0xe7, 0x96, 0xb5, - 0x1b, 0x13, 0x16, 0xfb, 0x69, 0xd4, 0xa1, 0x74, 0x80, 0x23, 0xe2, 0x06, 0x7e, 0x3d, 0xbf, 0xac, - 0xdd, 0x28, 0x58, 0xea, 0xd3, 0xfc, 0x58, 0x83, 0x2a, 0x1f, 0x86, 0x84, 0x81, 0x4f, 0xb0, 0xf1, - 0x2a, 0x4c, 0x44, 0xb8, 0xed, 0x06, 0xbe, 0xcd, 0x65, 0x92, 0x83, 0xd5, 0x56, 0x95, 0x84, 0x77, - 0xd8, 0x5f, 0xab, 0x2a, 0x68, 0xf8, 0x87, 0xf1, 0x32, 0x14, 0x05, 0x6d, 0x8e, 0xd3, 0x4e, 0xc7, - 0x8c, 0x3d, 0xc0, 0x7d, 0x41, 0x2e, 0xf0, 0xc6, 0x2c, 0x14, 0x0f, 0x90, 0xd7, 0xc3, 0x9c, 0x87, - 0x09, 0x4b, 0x7c, 0x18, 0x97, 0xa0, 0xe2, 0x07, 0xd4, 0xde, 0x0b, 0x7a, 0x7e, 0xab, 0x5e, 0x58, - 0xd6, 0x6e, 0x94, 0xad, 0xb2, 0x1f, 0xd0, 0xbb, 0xec, 0xdb, 0x78, 0x0b, 0xa6, 0xf0, 0x11, 0x76, - 0xec, 0x16, 0xa6, 0xc8, 0xf5, 0x88, 0x7d, 0xb0, 0x56, 0x1f, 0xe7, 0xa3, 0xcc, 0xc7, 0xa3, 0xdc, - 0x39, 0xc2, 0xce, 0x86, 0x40, 0x3f, 0x5e, 0xb3, 0x26, 0x71, 0xfa, 0xf3, 0x9d, 0x42, 0xb9, 0xa8, - 0x8f, 0x9b, 0xff, 0xa2, 0x41, 0xb5, 0xe1, 0x20, 0xff, 0x2c, 0xca, 0xbc, 0x04, 0x15, 0x42, 0x51, - 0x44, 0xed, 0x44, 0xa5, 0x65, 0x0e, 0x78, 0x80, 0xfb, 0x4c, 0x22, 0xcf, 0xed, 0xba, 0x94, 0x4b, - 0x34, 0x69, 0x89, 0x8f, 0xb4, 0xb6, 0x0b, 0x19, 0x6d, 0x1b, 0x8b, 0x50, 0xde, 0xc7, 0x7d, 0x3b, - 0xf0, 0xbd, 0x7e, 0xbd, 0xc8, 0x45, 0x2d, 0xed, 0xe3, 0xfe, 0xb6, 0xef, 0x71, 0x13, 0x45, 0x98, - 0xd1, 0x61, 0x2e, 0x61, 0xd9, 0x52, 0x9f, 0xc6, 0x02, 0x94, 0xb0, 0xdf, 0xe2, 0xe3, 0x97, 0xf8, - 0xf8, 0xe3, 0xd8, 0x6f, 0xb1, 0xd1, 0xaf, 0x42, 0x95, 0xa0, 0x6e, 0xe8, 0x61, 0x9b, 0x50, 0x1c, - 0xd6, 0xcb, 0x9c, 0x07, 0x10, 0xa0, 0x06, 0xc5, 0xa1, 0xf9, 0x5b, 0x1a, 0x4c, 0x08, 0xb9, 0xcf, - 0x6e, 0xdd, 0xeb, 0x50, 0x0c, 0x91, 0x1b, 0x91, 0x7a, 0x6e, 0x39, 0x7f, 0xa3, 0xba, 0x36, 0x95, - 0x58, 0xf7, 0x60, 0x07, 0xb9, 0x91, 0x25, 0xb0, 0x89, 0x13, 0xe4, 0x4f, 0x76, 0x02, 0xf3, 0xa3, - 0x12, 0x4c, 0xed, 0x44, 0xf8, 0x30, 0x72, 0x29, 0x3e, 0x8b, 0x3d, 0x6e, 0x42, 0xa5, 0xdb, 0xa3, - 0x88, 0xba, 0x81, 0xaf, 0x78, 0x4a, 0x06, 0x7b, 0x28, 0x31, 0x56, 0x42, 0x63, 0x5c, 0x83, 0x89, - 0x30, 0x72, 0xbb, 0x28, 0xea, 0xdb, 0x6c, 0xb2, 0x49, 0xe7, 0xab, 0x4a, 0xd8, 0x56, 0xe0, 0xec, - 0x1b, 0x2f, 0xc2, 0xa4, 0xb0, 0x71, 0xd6, 0x6c, 0x13, 0x1c, 0xf8, 0x38, 0xb1, 0x1d, 0x6b, 0x6f, - 0x53, 0xea, 0x71, 0xdb, 0x15, 0xac, 0x12, 0xfb, 0x6e, 0x52, 0xcf, 0x58, 0x83, 0x39, 0xb2, 0xef, - 0x86, 0xb6, 0x13, 0xf8, 0x84, 0x46, 0xc8, 0xf5, 0xa9, 0xed, 0x74, 0xb0, 0xb3, 0x2f, 0x2d, 0x39, - 0xc3, 0x90, 0xeb, 0x31, 0x6e, 0x9d, 0xa1, 0x8c, 0xff, 0x05, 0x33, 0x21, 0x26, 0xc4, 0xed, 0xba, - 0x84, 0xba, 0x8e, 0x8d, 0x1c, 0x21, 0x51, 0x69, 0x39, 0x7f, 0xa3, 0xb6, 0xb6, 0x12, 0x4b, 0x34, - 0xa0, 0xaa, 0xd5, 0x9d, 0xa4, 0xcd, 0x2d, 0xde, 0xc4, 0x32, 0xc2, 0x41, 0x10, 0x61, 0xbc, 0xd2, - 0x23, 0xdf, 0x26, 0xee, 0xd7, 0x31, 0x77, 0x8b, 0x82, 0x55, 0xa2, 0x47, 0x7e, 0xc3, 0xfd, 0x3a, - 0x36, 0x4c, 0x98, 0xdc, 0x0b, 0x22, 0xbb, 0x17, 0xb6, 0x10, 0xc5, 0x36, 0x25, 0xf5, 0x0a, 0xc7, - 0x57, 0xf7, 0x82, 0xe8, 0x5d, 0x0e, 0x6b, 0x12, 0x46, 0xd3, 0x75, 0x7d, 0xdb, 0x09, 0xba, 0x5d, - 0x97, 0x32, 0x1a, 0x10, 0x34, 0x5d, 0xd7, 0x5f, 0xe7, 0xb0, 0x26, 0x31, 0x6e, 0x80, 0xde, 0x23, - 0xd8, 0x46, 0xa4, 0xef, 0x3b, 0x92, 0xb2, 0x5e, 0xe5, 0xe2, 0xd6, 0x7a, 0x04, 0xdf, 0x62, 0x60, - 0x41, 0x6b, 0x2c, 0x43, 0x95, 0x60, 0x27, 0xf0, 0x5b, 0x28, 0x72, 0x31, 0xa9, 0x4f, 0x2c, 0xe7, - 0x99, 0xfe, 0x53, 0x20, 0xe3, 0x32, 0x00, 0x8d, 0xd8, 0xb4, 0xc0, 0x76, 0xe8, 0xd4, 0x27, 0x45, - 0x0c, 0xa0, 0x51, 0x7f, 0xdb, 0xc7, 0x3b, 0x0e, 0xe7, 0x06, 0x1d, 0xa5, 0xb8, 0xa9, 0x49, 0x6e, - 0xd0, 0x51, 0xcc, 0xcd, 0xdb, 0x30, 0x85, 0x08, 0xc1, 0x11, 0x13, 0xdf, 0xf6, 0xf0, 0x01, 0xf6, - 0xea, 0x53, 0xcb, 0xda, 0x8d, 0xda, 0xda, 0x42, 0xac, 0xc9, 0x5b, 0x0a, 0xbf, 0xc5, 0xd0, 0x56, - 0x0d, 0x65, 0xbe, 0x0d, 0x17, 0x16, 0x33, 0x7a, 0x49, 0x19, 0x93, 0xd4, 0x75, 0xee, 0x67, 0xab, - 0xc7, 0x5a, 0xe5, 0x6e, 0xac, 0xbc, 0x46, 0x62, 0x67, 0x6b, 0x3e, 0xa5, 0xd3, 0x04, 0x4c, 0x96, - 0x76, 0x61, 0x6e, 0x64, 0x03, 0x16, 0x4e, 0x5c, 0xbf, 0x85, 0x8f, 0xf8, 0x2c, 0x98, 0xb4, 0xc4, - 0x87, 0xf1, 0x1a, 0xcc, 0xe3, 0xa3, 0x10, 0x3b, 0x14, 0xb7, 0xec, 0xac, 0xe9, 0x72, 0x5c, 0x11, - 0x33, 0x0a, 0x9b, 0x74, 0x4a, 0xcc, 0x5d, 0x98, 0x1e, 0x72, 0x15, 0x63, 0x09, 0xe6, 0x1b, 0x0f, - 0x36, 0x77, 0xec, 0x9d, 0x3b, 0x8d, 0xc6, 0xe6, 0xc3, 0xcd, 0x46, 0x73, 0x73, 0xdd, 0x5e, 0xbf, - 0x7f, 0x67, 0xfd, 0x81, 0x3e, 0x66, 0xd4, 0x61, 0x76, 0x63, 0x7b, 0x04, 0x46, 0x33, 0x16, 0x60, - 0x66, 0x63, 0xdb, 0x5e, 0xdf, 0x7e, 0xd4, 0x68, 0x5a, 0xb7, 0x36, 0x1f, 0x35, 0x25, 0x22, 0x67, - 0xfe, 0xbb, 0x06, 0x7a, 0xa2, 0x89, 0xb3, 0x87, 0x98, 0x4f, 0xc2, 0x38, 0xc7, 0x0e, 0xcf, 0xe7, - 0x38, 0x78, 0x48, 0x82, 0x61, 0xcf, 0xcc, 0x0f, 0x7b, 0xe6, 0xcb, 0xa0, 0x0b, 0x4f, 0x4a, 0x91, - 0x89, 0x09, 0x3d, 0x19, 0x30, 0x87, 0x8a, 0x09, 0x47, 0x2c, 0x2e, 0xc5, 0xa7, 0x58, 0x5c, 0xcc, - 0x1f, 0x16, 0x60, 0x3e, 0xa5, 0x64, 0x16, 0x4a, 0xfe, 0xbb, 0x44, 0xb4, 0xa1, 0x28, 0x31, 0x3e, - 0x32, 0x4a, 0xb8, 0xc4, 0xde, 0x73, 0x23, 0x42, 0x05, 0x1f, 0x25, 0x3e, 0x71, 0xab, 0x2e, 0xb9, - 0xcb, 0x60, 0x9c, 0x8f, 0x6b, 0x30, 0x71, 0x88, 0x98, 0x09, 0xdc, 0x2e, 0x0e, 0x7a, 0x94, 0x07, - 0xa3, 0xbc, 0x55, 0x65, 0xb0, 0xa6, 0x00, 0x19, 0x75, 0x28, 0xee, 0x05, 0x91, 0x83, 0x79, 0x20, - 0x2a, 0xdf, 0xce, 0xd5, 0x35, 0x4b, 0x00, 0x98, 0x10, 0x11, 0xa6, 0xbd, 0xc8, 0xb7, 0xf9, 0x4e, - 0x41, 0x84, 0xa1, 0xb2, 0x35, 0x21, 0x80, 0x8f, 0x39, 0x6c, 0xd8, 0x23, 0xaa, 0xa3, 0x3c, 0x62, - 0x8a, 0xc7, 0x63, 0x1b, 0x1f, 0xb9, 0x84, 0x62, 0xdf, 0xc1, 0xf5, 0x09, 0x11, 0xaa, 0x38, 0xf8, - 0x8e, 0x82, 0x1a, 0xaf, 0xc0, 0x0c, 0xd7, 0x08, 0x5b, 0xa0, 0x6d, 0x77, 0x4f, 0xd0, 0x13, 0x19, - 0x91, 0x74, 0x86, 0x62, 0x6b, 0xf5, 0xe6, 0x1e, 0x6f, 0x41, 0x8c, 0x0d, 0x26, 0xdd, 0x3e, 0xb6, - 0x7b, 0xa1, 0xdd, 0x0d, 0x5a, 0x98, 0x07, 0xa6, 0xda, 0x9a, 0x99, 0x84, 0x89, 0xac, 0x73, 0xbc, - 0x87, 0xf6, 0xf1, 0xbb, 0xe1, 0xc3, 0xa0, 0x85, 0x2d, 0x38, 0x8c, 0x7f, 0x9b, 0xff, 0xac, 0x41, - 0x7d, 0x80, 0xf2, 0x01, 0xee, 0x5b, 0x98, 0xf4, 0x3c, 0x6a, 0x7c, 0x1e, 0x0a, 0xb4, 0x1f, 0x62, - 0xee, 0x45, 0xb5, 0xb5, 0xeb, 0xc7, 0x75, 0x1d, 0x37, 0x68, 0xf6, 0x43, 0x6c, 0xf1, 0x26, 0xc9, - 0x76, 0x2b, 0x97, 0xde, 0x6e, 0x5d, 0x86, 0x4a, 0xa2, 0x85, 0x3c, 0x17, 0x2c, 0x01, 0x18, 0x6f, - 0xc0, 0x02, 0x93, 0x12, 0xb7, 0xec, 0x43, 0x97, 0x76, 0x58, 0x0c, 0xdc, 0xf3, 0x5c, 0x27, 0x35, - 0x85, 0x66, 0x05, 0xfa, 0x3d, 0x97, 0x76, 0xd6, 0x25, 0xb2, 0x49, 0x8c, 0x55, 0xe0, 0x6b, 0x9c, - 0x1d, 0x61, 0x12, 0x78, 0x07, 0xae, 0xdf, 0x16, 0x0e, 0x21, 0xd6, 0x83, 0x69, 0x86, 0xb2, 0x14, - 0x86, 0x71, 0x6b, 0xfe, 0x53, 0x0e, 0x16, 0x86, 0x66, 0xce, 0x73, 0x09, 0x20, 0x57, 0xa1, 0x32, - 0x10, 0x3c, 0xb8, 0xc7, 0x95, 0x1d, 0xe5, 0x2b, 0x75, 0xa5, 0x35, 0x26, 0xef, 0x84, 0x70, 0x47, - 0xa1, 0xb9, 0x79, 0x18, 0x97, 0x7e, 0x58, 0xe4, 0x4b, 0x98, 0xfc, 0x32, 0xae, 0x00, 0xc4, 0x1b, - 0x58, 0x36, 0x51, 0xf2, 0x4c, 0xa5, 0x6a, 0x07, 0x3b, 0x32, 0xca, 0x94, 0x9e, 0x22, 0xca, 0x18, - 0x5f, 0x64, 0x1b, 0x43, 0x66, 0x5a, 0x52, 0x2f, 0x73, 0xe9, 0xae, 0x3d, 0xd1, 0x09, 0x2c, 0xd5, - 0xc2, 0xfc, 0xbe, 0x06, 0x4b, 0x29, 0x2a, 0x2b, 0xf0, 0xbc, 0x5d, 0x74, 0xb6, 0x30, 0x35, 0x14, - 0x52, 0x72, 0x23, 0x42, 0xca, 0x50, 0xdc, 0xc8, 0x0f, 0xc7, 0x0d, 0x03, 0x0a, 0xfb, 0xb8, 0xcf, - 0x1c, 0x8a, 0x69, 0x91, 0xff, 0x36, 0xff, 0x54, 0x83, 0x4b, 0x23, 0xf9, 0x7c, 0x2e, 0x4e, 0x31, - 0xc2, 0x44, 0xf9, 0xa7, 0x59, 0x08, 0xfe, 0x40, 0x83, 0x99, 0xe6, 0x91, 0x7f, 0x1f, 0xa3, 0x88, - 0xde, 0xc6, 0xe8, 0x4c, 0x87, 0xb6, 0xc1, 0xa0, 0x9e, 0x3b, 0x45, 0x50, 0xcf, 0x8f, 0xb0, 0xc0, - 0x4b, 0x30, 0x85, 0x5a, 0x07, 0x2e, 0xc1, 0x76, 0x1c, 0xdb, 0xe5, 0xe2, 0x27, 0xc0, 0x5b, 0x22, - 0xc2, 0x9b, 0x3f, 0xd2, 0x60, 0x36, 0xcb, 0xf3, 0x73, 0x38, 0x01, 0xa6, 0x57, 0x9c, 0x7c, 0x76, - 0xc5, 0x19, 0x61, 0x83, 0xc2, 0xd3, 0xd8, 0xe0, 0x1f, 0x72, 0x30, 0xc7, 0x77, 0xd6, 0xcd, 0x23, - 0xbf, 0x41, 0x11, 0xed, 0x91, 0xb3, 0x58, 0xe1, 0x2a, 0x28, 0x8d, 0xa7, 0xce, 0x7b, 0x20, 0x41, - 0xec, 0xcc, 0xb5, 0x00, 0x25, 0x21, 0x81, 0x72, 0xed, 0x71, 0x2e, 0x00, 0x61, 0x7a, 0x77, 0x90, - 0xe7, 0xe1, 0xc8, 0x16, 0x36, 0x4a, 0x36, 0x1d, 0x02, 0xdc, 0x60, 0xd0, 0x26, 0x8f, 0x16, 0x4e, - 0x2f, 0x8a, 0xb0, 0xcf, 0x49, 0xc4, 0xb2, 0x5b, 0x91, 0x90, 0x26, 0x31, 0x5e, 0x85, 0xb9, 0x48, - 0x3a, 0x3f, 0x5b, 0x80, 0x58, 0x60, 0xe1, 0xd1, 0x59, 0x1e, 0x25, 0x0c, 0x85, 0xdc, 0xdc, 0x7b, - 0x14, 0x50, 0xbe, 0x0c, 0x19, 0x2b, 0x30, 0xcd, 0xd7, 0x4b, 0x3b, 0xbd, 0x15, 0x17, 0x6b, 0xf1, - 0x14, 0x47, 0x34, 0x92, 0xbd, 0xf8, 0x97, 0x60, 0x29, 0x89, 0xd1, 0xe9, 0xf3, 0x07, 0xf7, 0xb9, - 0x32, 0x6f, 0x54, 0x8f, 0x29, 0x06, 0xe2, 0x8b, 0xf9, 0xe3, 0x1c, 0xcc, 0x0f, 0xea, 0xf8, 0x17, - 0xeb, 0x35, 0xd7, 0xa1, 0x26, 0xc3, 0x79, 0x76, 0xa3, 0x33, 0x29, 0xa0, 0x6a, 0x52, 0xbc, 0x0c, - 0xe3, 0xe2, 0x80, 0xc5, 0x15, 0x5e, 0x4b, 0x9d, 0x62, 0xe5, 0x21, 0x4a, 0xa2, 0x8d, 0x55, 0xa8, - 0xf0, 0xa1, 0x5c, 0x7f, 0x2f, 0x90, 0x99, 0x86, 0x84, 0x2f, 0xa6, 0x83, 0x4d, 0x7f, 0x2f, 0xb0, - 0x38, 0x3b, 0xec, 0xd7, 0xb3, 0x06, 0x77, 0xf3, 0x43, 0x0d, 0x96, 0xb8, 0x46, 0x1b, 0xf2, 0x38, - 0xc4, 0x67, 0xfa, 0x99, 0x5c, 0x57, 0x85, 0xd5, 0x5c, 0x12, 0x56, 0x4f, 0x15, 0x31, 0xcc, 0xff, - 0xd0, 0xe0, 0xd2, 0x48, 0x1e, 0x9e, 0x83, 0x69, 0x5f, 0x86, 0x22, 0xd3, 0x25, 0x9b, 0x4c, 0xf9, - 0xd1, 0xba, 0x16, 0x78, 0xe3, 0x52, 0x7a, 0xdd, 0x16, 0x36, 0x4e, 0xd6, 0xec, 0x67, 0xdd, 0xc8, - 0xff, 0x40, 0x83, 0x49, 0x31, 0x41, 0x2e, 0x6c, 0x61, 0x54, 0xd6, 0xc9, 0xa7, 0xac, 0x73, 0x3a, - 0xe7, 0x15, 0x39, 0x2c, 0x6b, 0x7c, 0xd7, 0xf5, 0xbd, 0xa0, 0x6d, 0xfe, 0xb5, 0x06, 0x35, 0xc5, - 0xeb, 0x73, 0x30, 0xd0, 0x30, 0x8f, 0xf9, 0x51, 0x13, 0xec, 0x59, 0xa3, 0x77, 0x1b, 0x26, 0x37, - 0xbb, 0x61, 0x10, 0xc5, 0x06, 0xc8, 0x1c, 0x8a, 0xb4, 0x53, 0x1c, 0x8a, 0x86, 0x19, 0xcd, 0x8d, - 0x60, 0xd4, 0x7c, 0x1f, 0x6a, 0x6a, 0xa0, 0xb3, 0x6b, 0x6f, 0x36, 0xad, 0xbd, 0x8a, 0xca, 0x6c, - 0x7d, 0x8b, 0x59, 0xc6, 0xc3, 0xc8, 0xef, 0x85, 0xe7, 0x93, 0xb5, 0x3d, 0xd5, 0x7a, 0x9f, 0x5d, - 0x4f, 0x0a, 0x03, 0xeb, 0x89, 0xf9, 0x6d, 0x0d, 0xa6, 0x62, 0xa6, 0x7e, 0x69, 0xfc, 0xc5, 0xdc, - 0x87, 0xa9, 0xdb, 0x88, 0x3a, 0x9d, 0x33, 0x66, 0xb8, 0x47, 0xc5, 0xba, 0xe3, 0x73, 0xdc, 0x7f, - 0xa7, 0x81, 0x9e, 0x8c, 0x76, 0xe1, 0xa9, 0xd0, 0x67, 0x9c, 0x0b, 0x89, 0xae, 0x8b, 0x27, 0xeb, - 0xfa, 0x9d, 0x42, 0x39, 0xaf, 0x17, 0xcc, 0xff, 0x03, 0xb3, 0x5c, 0xb8, 0x0b, 0xdf, 0xdb, 0x8f, - 0x08, 0x61, 0xe6, 0x1f, 0x6a, 0x30, 0x37, 0x30, 0xfa, 0x73, 0x70, 0xb2, 0x67, 0xdd, 0xaf, 0xff, - 0xbe, 0x06, 0x53, 0x0d, 0x07, 0xf9, 0x67, 0xcd, 0xd8, 0x5c, 0x85, 0x6a, 0x17, 0x1d, 0x0d, 0x28, - 0x0b, 0xba, 0xe8, 0x48, 0xa9, 0x2a, 0x73, 0x69, 0x90, 0x3f, 0xee, 0xd2, 0xa0, 0x90, 0xbe, 0x34, - 0x48, 0x65, 0xf9, 0x8b, 0xe9, 0x2c, 0xbf, 0xf9, 0x53, 0x0d, 0xf4, 0x84, 0xd9, 0x5f, 0xa6, 0x35, - 0xf9, 0x59, 0x83, 0xfe, 0x8f, 0x35, 0x30, 0x44, 0x5e, 0x00, 0x9f, 0xd5, 0x12, 0xa7, 0x72, 0xdc, - 0x53, 0xae, 0x61, 0xaf, 0x40, 0x85, 0x1e, 0xf9, 0x7c, 0xeb, 0x27, 0x0e, 0xa7, 0xe9, 0x91, 0x9b, - 0x47, 0xbe, 0xd8, 0xfa, 0x51, 0xf1, 0x23, 0x39, 0xc6, 0x16, 0x53, 0xd3, 0x81, 0x1d, 0x04, 0x33, - 0x12, 0xfd, 0x17, 0x98, 0x0c, 0x8f, 0xa1, 0x72, 0x6f, 0xfd, 0x2c, 0xba, 0xbf, 0x02, 0x40, 0xd0, - 0x1e, 0xb6, 0xc3, 0xc0, 0xf5, 0xa9, 0x54, 0x7c, 0x85, 0x41, 0x76, 0x18, 0xc0, 0xec, 0x00, 0xb0, - 0x7e, 0x2f, 0x5e, 0x03, 0xe6, 0x77, 0x34, 0x30, 0x36, 0xb0, 0x87, 0x29, 0xb6, 0x90, 0xdf, 0xc6, - 0xe7, 0x7e, 0xcb, 0x97, 0x9a, 0x9a, 0xf9, 0xc1, 0x0b, 0x38, 0x3f, 0xa0, 0xee, 0x9e, 0xbc, 0xd1, - 0x13, 0x97, 0x97, 0x20, 0x40, 0xdb, 0xbe, 0xd7, 0x37, 0xbf, 0x0a, 0x33, 0x19, 0xc6, 0xce, 0x7b, - 0xcb, 0xf1, 0xc7, 0x1a, 0x2c, 0xef, 0x44, 0x38, 0x44, 0x11, 0xbe, 0xeb, 0x21, 0xd2, 0x61, 0x11, - 0xb8, 0x19, 0x48, 0x87, 0x7e, 0x7e, 0x7a, 0x58, 0x84, 0xf2, 0xc0, 0xa1, 0xb7, 0x44, 0xe4, 0x71, - 0x37, 0xb5, 0x2a, 0x17, 0xb3, 0xab, 0xb2, 0x07, 0xd7, 0x4e, 0x60, 0xfd, 0xbc, 0x35, 0xf5, 0x63, - 0x0d, 0x16, 0xcf, 0x47, 0x45, 0x29, 0x89, 0x72, 0xd9, 0xdb, 0xdd, 0x13, 0xa3, 0x7e, 0x4a, 0x79, - 0x85, 0x63, 0x95, 0x57, 0xcc, 0x2a, 0x2f, 0x73, 0xe8, 0x19, 0xcf, 0x1e, 0x7a, 0x4c, 0x0c, 0x4b, - 0xcf, 0x43, 0x71, 0x5f, 0x81, 0x49, 0x0b, 0x1d, 0x9e, 0x5b, 0x25, 0x42, 0x0d, 0x72, 0xce, 0x1e, - 0x57, 0x4e, 0xc5, 0xca, 0x39, 0x7b, 0xe6, 0xaf, 0x6b, 0x50, 0x53, 0xfd, 0x9f, 0x33, 0xeb, 0x67, - 0xa8, 0x37, 0x30, 0x5b, 0x60, 0x58, 0xe8, 0xf0, 0xbc, 0xb7, 0xa6, 0x83, 0x42, 0x07, 0x30, 0x93, - 0x19, 0xe5, 0xa2, 0xb7, 0xa4, 0xe6, 0xef, 0x68, 0xdc, 0x8a, 0x3b, 0xbd, 0x73, 0xb2, 0xe2, 0x68, - 0xcd, 0x0a, 0x31, 0x0b, 0x4a, 0x4c, 0xd6, 0x2e, 0xb9, 0x5a, 0x62, 0x3f, 0xd9, 0x24, 0xd8, 0x0b, - 0x22, 0xdb, 0x41, 0x44, 0xe6, 0xb3, 0xc6, 0xf7, 0x82, 0x68, 0x1d, 0x11, 0x76, 0x2c, 0x53, 0xfc, - 0x9d, 0xb7, 0x03, 0xff, 0x89, 0x96, 0xd8, 0xf4, 0x8c, 0x0a, 0x38, 0xe5, 0xc6, 0x7f, 0xc0, 0xcc, - 0xc6, 0xac, 0x90, 0xbf, 0x10, 0xdf, 0x32, 0x0c, 0xea, 0xa0, 0x98, 0xd6, 0x01, 0xf3, 0x1c, 0x4a, - 0x3d, 0x71, 0x83, 0x50, 0xb0, 0xf8, 0x6f, 0xb6, 0x80, 0x64, 0x78, 0x3f, 0x6f, 0xe5, 0xf4, 0x41, - 0xb7, 0xd0, 0xa1, 0x5c, 0xa3, 0x2e, 0x62, 0x82, 0xa7, 0xc5, 0x2d, 0x64, 0x4c, 0xfe, 0xbf, 0x61, - 0x3a, 0x35, 0xf4, 0x79, 0x0b, 0xf6, 0xff, 0x34, 0x98, 0x53, 0x9a, 0x3b, 0xbb, 0x78, 0xa7, 0x98, - 0xcc, 0xc7, 0x0b, 0x88, 0x60, 0x7e, 0x90, 0x83, 0xf3, 0x96, 0xf2, 0x47, 0x22, 0x7a, 0x3e, 0xc7, - 0xda, 0xa6, 0x74, 0x05, 0x53, 0x21, 0x5b, 0xc1, 0x24, 0x14, 0x53, 0x8c, 0x15, 0xf3, 0xf4, 0x15, - 0x4d, 0x66, 0x1b, 0xa6, 0x62, 0x71, 0xce, 0xae, 0xab, 0x6b, 0x90, 0xdf, 0x3f, 0x38, 0x76, 0xb2, - 0x32, 0x9c, 0xf9, 0x0d, 0xe1, 0x1e, 0xbf, 0x90, 0x5d, 0xe3, 0x40, 0x98, 0x94, 0x7e, 0x72, 0xa1, - 0xfb, 0xc4, 0x9f, 0x68, 0x49, 0x1c, 0x39, 0xab, 0xb3, 0x7c, 0x12, 0xc6, 0x23, 0xc6, 0xdd, 0xc8, - 0xfb, 0x34, 0xc1, 0xb7, 0x24, 0x60, 0x27, 0x03, 0x8c, 0x9c, 0x8e, 0x9d, 0xf6, 0x9f, 0x0a, 0x83, - 0x6c, 0x9d, 0x9b, 0x0f, 0x99, 0x1e, 0xcc, 0x66, 0x25, 0xba, 0x50, 0x7f, 0xf9, 0xbf, 0xb0, 0xf8, - 0xae, 0xcf, 0xce, 0x36, 0x1b, 0x98, 0xd0, 0x28, 0xe8, 0x3f, 0x5f, 0x97, 0x61, 0x7b, 0xbd, 0x51, - 0xc3, 0x9f, 0xb7, 0x9b, 0x7c, 0x0d, 0x2e, 0x59, 0xb8, 0xed, 0x12, 0x8a, 0x23, 0x76, 0x7c, 0xdd, - 0xde, 0x25, 0x38, 0x3a, 0xc0, 0xd1, 0x59, 0xe4, 0x9c, 0x83, 0xf1, 0x2e, 0x3a, 0x4a, 0x8a, 0x94, - 0x8a, 0x5d, 0x74, 0xd4, 0x24, 0xe6, 0xeb, 0x70, 0x79, 0xf4, 0x08, 0x52, 0x94, 0x98, 0x2f, 0x2d, - 0xbb, 0x07, 0xad, 0xf3, 0x0b, 0x8a, 0x0b, 0x62, 0xaa, 0x07, 0x8b, 0x23, 0xba, 0x3f, 0x89, 0x23, - 0xe6, 0xc2, 0x2e, 0xb1, 0x1d, 0x0f, 0x23, 0x71, 0x0a, 0x28, 0x5b, 0x25, 0x97, 0xf0, 0x3c, 0xeb, - 0xa9, 0xd3, 0x27, 0xe6, 0x57, 0x61, 0xd1, 0xc2, 0xdd, 0x40, 0xa4, 0x0a, 0x2e, 0x40, 0xac, 0x35, - 0x58, 0x1a, 0xd5, 0xff, 0x89, 0x9a, 0xfe, 0x0d, 0x0d, 0x16, 0x76, 0x3a, 0x7d, 0xe2, 0x3a, 0xc8, - 0x7b, 0x96, 0x0c, 0xd9, 0x68, 0x96, 0xce, 0x90, 0x17, 0x33, 0xdf, 0x87, 0xfa, 0x30, 0x43, 0x27, - 0xda, 0x26, 0x36, 0x40, 0xee, 0x09, 0x06, 0xf8, 0x9e, 0x06, 0x46, 0x23, 0xf4, 0x5c, 0x6a, 0xf1, - 0x99, 0x71, 0xb6, 0x4c, 0x60, 0x85, 0xb0, 0x1e, 0x92, 0xe9, 0x2c, 0xca, 0x49, 0x38, 0x90, 0x09, - 0x75, 0x05, 0x20, 0x26, 0x50, 0xa9, 0xd3, 0x8a, 0xc2, 0x12, 0x63, 0x09, 0x2a, 0x2e, 0xb1, 0x23, - 0x74, 0x68, 0xef, 0x1f, 0xa8, 0x58, 0xe8, 0x12, 0x0b, 0x1d, 0x3e, 0x38, 0x30, 0x7f, 0xa8, 0xc1, - 0x4c, 0x86, 0xbd, 0xb3, 0x4f, 0xf7, 0x97, 0xa0, 0xe0, 0xe1, 0x3d, 0x2a, 0x33, 0x29, 0xb5, 0x55, - 0x59, 0xbd, 0x2e, 0x3a, 0xe6, 0x1c, 0x73, 0xbc, 0x71, 0x03, 0x8a, 0x91, 0xdb, 0xee, 0x50, 0x99, - 0x41, 0x1a, 0x45, 0x28, 0x08, 0x8c, 0x1b, 0x2c, 0x30, 0xb7, 0xf9, 0xed, 0x8c, 0x48, 0x95, 0x0d, - 0xd0, 0x5a, 0x0a, 0x6d, 0xfe, 0x8a, 0x06, 0xba, 0x85, 0x51, 0x6b, 0xd3, 0x6f, 0xe1, 0xa3, 0xb3, - 0xe8, 0x38, 0x7d, 0x40, 0xce, 0x65, 0x0f, 0xc8, 0xc9, 0x9a, 0x94, 0x7f, 0xc2, 0x9a, 0x64, 0xfe, - 0xa6, 0x06, 0xd3, 0x29, 0x36, 0xce, 0xae, 0xcb, 0x2b, 0x00, 0x11, 0x46, 0x2d, 0x5b, 0x54, 0x6a, - 0xca, 0xb4, 0x57, 0xa4, 0x7a, 0x66, 0x2c, 0x89, 0x12, 0xa9, 0xa1, 0x4a, 0xe8, 0xd8, 0xfd, 0x24, - 0x81, 0xd9, 0x80, 0x99, 0x87, 0x07, 0x8e, 0x73, 0x0f, 0xd3, 0xdb, 0x7d, 0x5e, 0xbb, 0x73, 0x0e, - 0xfb, 0x6f, 0xf3, 0xd7, 0x34, 0x98, 0xcd, 0xf6, 0x7a, 0xde, 0xc7, 0xea, 0xeb, 0x50, 0xe0, 0xd7, - 0xe3, 0x83, 0xf2, 0xb1, 0x51, 0xb9, 0x7c, 0x1c, 0x6d, 0x7e, 0x0d, 0x16, 0x62, 0x3e, 0x64, 0xf1, - 0xc3, 0xf9, 0x5a, 0x9f, 0xcd, 0xdf, 0xfa, 0xf0, 0x10, 0xe7, 0x2d, 0xae, 0x54, 0x71, 0x3e, 0x39, - 0xe2, 0x28, 0x05, 0x14, 0x4e, 0x56, 0xc0, 0x87, 0x15, 0x28, 0xad, 0x27, 0xcb, 0xbe, 0xe4, 0xc6, - 0x6d, 0x71, 0x56, 0x0a, 0x56, 0x59, 0x00, 0x36, 0x5b, 0xc6, 0x9b, 0x09, 0xab, 0x61, 0xe0, 0x74, - 0xe4, 0x2c, 0x9d, 0xc9, 0x4e, 0xa8, 0x3b, 0x0c, 0x15, 0xf3, 0xcb, 0x3e, 0x8c, 0x65, 0x28, 0x84, - 0x18, 0xab, 0x92, 0xfb, 0x09, 0x45, 0xbf, 0x83, 0x71, 0x64, 0x71, 0x0c, 0x3f, 0x52, 0xe2, 0xa8, - 0x2b, 0x8f, 0xe0, 0xfc, 0xb7, 0x71, 0x13, 0xca, 0x61, 0xe4, 0x06, 0x91, 0x4b, 0xfb, 0x7c, 0x4f, - 0x55, 0x5b, 0x9b, 0x49, 0x69, 0xbf, 0xdb, 0x45, 0x7e, 0x6b, 0x27, 0x72, 0xad, 0x98, 0xc8, 0x78, - 0x1b, 0xa6, 0x5c, 0x12, 0x78, 0x28, 0x55, 0x5b, 0x5d, 0x1a, 0xa8, 0xad, 0xde, 0x54, 0x78, 0x59, - 0x5b, 0xed, 0x66, 0xbe, 0x8d, 0x4f, 0x40, 0x8d, 0xa7, 0x5c, 0x5c, 0xcf, 0xb3, 0x1d, 0xe4, 0x74, - 0xb0, 0xac, 0x34, 0x99, 0xf0, 0x03, 0x7a, 0xd7, 0xf5, 0xbc, 0x75, 0x06, 0xe3, 0x96, 0xee, 0xfb, - 0x8e, 0xed, 0x05, 0x6d, 0x51, 0x0b, 0x6a, 0x95, 0xd8, 0xf7, 0x56, 0xd0, 0x36, 0x6e, 0x80, 0x1e, - 0x61, 0x27, 0x88, 0x5a, 0xbc, 0x90, 0xd4, 0x26, 0x14, 0x51, 0x59, 0x0c, 0x5a, 0x13, 0xf0, 0xa6, - 0xdb, 0xc5, 0x0d, 0x8a, 0x68, 0x8a, 0x92, 0x38, 0xc8, 0x17, 0x94, 0xd5, 0x34, 0x25, 0x5b, 0x44, - 0x38, 0xe5, 0x35, 0xa6, 0xf5, 0xd0, 0x73, 0x1d, 0x64, 0xb3, 0xd9, 0x2b, 0x2b, 0x42, 0xab, 0x12, - 0xc6, 0x42, 0x85, 0x71, 0x1d, 0x6a, 0xa2, 0x16, 0x06, 0xb7, 0x6c, 0xb1, 0xa4, 0x4c, 0xf2, 0xb3, - 0xf9, 0xa4, 0x82, 0xf2, 0x42, 0x09, 0xe3, 0xf3, 0xb0, 0xc8, 0x16, 0x3b, 0x7c, 0x84, 0x9d, 0x1e, - 0x57, 0x52, 0xab, 0x17, 0x09, 0x6d, 0x75, 0x55, 0xb1, 0xfa, 0x7c, 0x17, 0x1d, 0xdd, 0x51, 0xf8, - 0x0d, 0x89, 0x7e, 0xc8, 0x0b, 0x34, 0x50, 0x18, 0x7a, 0x2e, 0x56, 0xf1, 0x64, 0x4a, 0xdc, 0x5f, - 0x48, 0xa0, 0x08, 0x29, 0x0b, 0x50, 0xa2, 0x88, 0xec, 0x33, 0xd7, 0xd1, 0x45, 0xcd, 0x11, 0xfb, - 0xdc, 0x6c, 0xf1, 0xc5, 0x85, 0x22, 0x0f, 0x0b, 0x01, 0xa6, 0x45, 0x31, 0x27, 0x87, 0x70, 0xf6, - 0x3f, 0x0d, 0x06, 0x63, 0xb4, 0x17, 0x39, 0xd8, 0x6e, 0x47, 0x41, 0x2f, 0xb4, 0x29, 0x6a, 0xd7, - 0x0d, 0xee, 0xc8, 0xba, 0xc2, 0xdc, 0x63, 0x88, 0x26, 0x6a, 0x1b, 0x9f, 0x83, 0xc9, 0x96, 0x4b, - 0xf6, 0xed, 0xbd, 0x9e, 0xe7, 0xd9, 0x41, 0x48, 0xeb, 0x33, 0xdc, 0xc8, 0xb3, 0xb1, 0x91, 0x37, - 0x5c, 0xb2, 0x7f, 0xb7, 0xe7, 0x79, 0xdb, 0x21, 0xb5, 0xaa, 0xad, 0xe4, 0x83, 0xe9, 0x9c, 0x2d, - 0x62, 0x98, 0x46, 0x7d, 0x3b, 0x12, 0x53, 0xbc, 0x3e, 0x2b, 0x74, 0xee, 0x12, 0x8b, 0x81, 0xd5, - 0xc4, 0x7f, 0x1d, 0xaa, 0x28, 0x74, 0xe3, 0x6b, 0x98, 0xb9, 0x01, 0xf7, 0xbb, 0xb5, 0xb3, 0xa9, - 0xf2, 0x98, 0x80, 0x42, 0x37, 0xa9, 0xde, 0x99, 0x12, 0x59, 0x4f, 0x1a, 0xdb, 0x61, 0x9e, 0xdb, - 0xa1, 0x16, 0x83, 0x85, 0x21, 0xbe, 0x00, 0xe2, 0x0d, 0x95, 0xad, 0xa2, 0xcb, 0x02, 0x9f, 0x19, - 0x73, 0xab, 0xea, 0x65, 0x55, 0x93, 0xfd, 0x55, 0x21, 0x66, 0x82, 0xa6, 0xbe, 0x84, 0xad, 0x39, - 0x97, 0xb6, 0x50, 0x4c, 0xbd, 0xce, 0xa3, 0xc0, 0xa4, 0x84, 0x36, 0x38, 0x90, 0xa9, 0x9c, 0xbf, - 0xac, 0x10, 0x24, 0x8b, 0x22, 0xfa, 0xd3, 0x23, 0x5f, 0xa2, 0x57, 0x61, 0x66, 0x40, 0xe5, 0x3e, - 0xea, 0xe2, 0xfa, 0x12, 0xef, 0x6a, 0x3a, 0xa3, 0xf3, 0x47, 0xa8, 0x8b, 0x8d, 0x15, 0x98, 0xde, - 0xed, 0x91, 0xbe, 0x4d, 0x3b, 0x11, 0x26, 0x9d, 0xc0, 0x6b, 0x31, 0x97, 0xb9, 0xc4, 0xf7, 0x3f, - 0x53, 0x0c, 0xd1, 0x54, 0xf0, 0x87, 0xc4, 0xb8, 0x0a, 0x55, 0xb6, 0x89, 0x08, 0x99, 0x80, 0x6e, - 0xab, 0xbe, 0x2c, 0x9e, 0xfb, 0x28, 0xd0, 0x66, 0xeb, 0x9d, 0x42, 0xb9, 0xa0, 0x17, 0x99, 0x07, - 0xa3, 0x96, 0xfd, 0x41, 0x2f, 0x88, 0x7a, 0x5d, 0xf3, 0xbb, 0x79, 0x28, 0xab, 0x75, 0x67, 0xa8, - 0xc4, 0x50, 0x1b, 0x2e, 0x31, 0xbc, 0x06, 0x13, 0xbc, 0xfe, 0x29, 0x9b, 0xe1, 0xae, 0x32, 0x98, - 0xb2, 0xc6, 0x70, 0x3c, 0x4c, 0xd7, 0x67, 0x15, 0xb2, 0xf5, 0x59, 0xe9, 0x87, 0x28, 0xc5, 0xec, - 0x43, 0x94, 0x1b, 0xb2, 0xd4, 0x8a, 0x97, 0x37, 0x8b, 0x40, 0x54, 0x8d, 0x3d, 0x61, 0x3b, 0x14, - 0x45, 0x56, 0xcd, 0x7e, 0x88, 0x8d, 0x4f, 0x81, 0xc1, 0x29, 0xb3, 0x95, 0xa5, 0x25, 0xde, 0xdd, - 0x14, 0xc3, 0xa4, 0x1e, 0x3e, 0x8c, 0x7c, 0x97, 0x52, 0x1e, 0xf9, 0x2e, 0x65, 0xa8, 0x72, 0xbc, - 0x32, 0x5c, 0x39, 0x3e, 0xf0, 0x76, 0x05, 0x86, 0xdf, 0xae, 0x7c, 0x01, 0x96, 0xe2, 0xe9, 0x4e, - 0x03, 0xdb, 0x43, 0x84, 0x2a, 0x26, 0xbb, 0xaa, 0x18, 0x7d, 0x5e, 0x51, 0x34, 0x83, 0x2d, 0x44, - 0xa8, 0xe0, 0xf5, 0x21, 0x31, 0xbf, 0x53, 0x80, 0xb2, 0xba, 0xcc, 0x4a, 0x6d, 0x1c, 0xb4, 0x27, - 0x6c, 0x1c, 0x8c, 0xcb, 0x6c, 0x35, 0xa1, 0x51, 0x1f, 0xed, 0x7a, 0x58, 0x2e, 0x56, 0x09, 0x80, - 0x2d, 0x63, 0x68, 0x37, 0x88, 0xa8, 0xcc, 0x51, 0x89, 0x0f, 0x63, 0x0d, 0xca, 0xaa, 0x9a, 0x7b, - 0xe8, 0x96, 0xf6, 0xbd, 0xc8, 0xa5, 0x58, 0x95, 0x73, 0x5b, 0x31, 0x1d, 0x9b, 0x4f, 0xc8, 0x63, - 0xee, 0xd4, 0x97, 0x45, 0x88, 0x45, 0x39, 0x9f, 0xe2, 0x09, 0x2b, 0xb0, 0xbc, 0x0e, 0xd1, 0x9a, - 0x40, 0xa9, 0x2f, 0xe3, 0x15, 0x28, 0xab, 0xf7, 0x8d, 0x43, 0x85, 0x74, 0x1b, 0x12, 0x61, 0xc5, - 0x24, 0xc6, 0x06, 0x4c, 0xc7, 0x86, 0xb0, 0xf1, 0x51, 0xe8, 0x46, 0xb8, 0x25, 0x4b, 0xe9, 0xea, - 0x99, 0xe5, 0x89, 0x99, 0xe5, 0x8e, 0xc0, 0x5b, 0x53, 0x4e, 0x16, 0xc0, 0x62, 0x18, 0x73, 0xb7, - 0x24, 0xbf, 0x5f, 0xe6, 0x3d, 0xcc, 0xa6, 0xaf, 0x71, 0x1f, 0xc9, 0x5c, 0xbf, 0x55, 0xa5, 0xc9, - 0x87, 0x71, 0x1f, 0x66, 0x92, 0xf1, 0x69, 0xc0, 0x0c, 0x19, 0xb5, 0xc5, 0x9b, 0x84, 0xea, 0xda, - 0xe2, 0x10, 0x07, 0xcd, 0x20, 0xd8, 0x62, 0x04, 0x96, 0xee, 0x0c, 0x40, 0x8c, 0x75, 0xd0, 0x93, - 0xa7, 0x48, 0x7b, 0xc8, 0xf5, 0x70, 0x8b, 0xaf, 0x55, 0x69, 0x41, 0xe2, 0xb7, 0x48, 0x77, 0x39, - 0xde, 0x4a, 0x1e, 0x2f, 0x09, 0x80, 0xf9, 0x37, 0x39, 0x98, 0xcc, 0x58, 0x25, 0xb3, 0x0f, 0xd2, - 0xb2, 0xbb, 0xe0, 0xab, 0x50, 0x4d, 0x17, 0xea, 0xcb, 0x72, 0x04, 0x27, 0x29, 0xcf, 0x1f, 0x9e, - 0xb2, 0x75, 0x28, 0xc9, 0x69, 0x2f, 0x6f, 0xa3, 0xd4, 0x27, 0x5b, 0x34, 0xe2, 0xce, 0x92, 0xa9, - 0x21, 0xe6, 0xae, 0xae, 0x30, 0xf1, 0xfc, 0x78, 0x03, 0xc6, 0x23, 0x8c, 0x48, 0xe0, 0xcb, 0x19, - 0x7c, 0x65, 0xb4, 0x4f, 0xad, 0x5a, 0x9c, 0xc8, 0x92, 0xc4, 0xe6, 0x21, 0x8c, 0x0b, 0x88, 0x51, - 0x85, 0xd2, 0xbb, 0xfe, 0xbe, 0x1f, 0x1c, 0xfa, 0xfa, 0x98, 0x51, 0x03, 0xd8, 0x0e, 0xa9, 0xac, - 0x38, 0xd5, 0x35, 0x63, 0x16, 0xf4, 0x74, 0x51, 0x38, 0xf3, 0x70, 0x3d, 0x67, 0x18, 0x50, 0x6b, - 0x60, 0x6f, 0xcf, 0x0a, 0x3c, 0x0f, 0xb7, 0x6e, 0x23, 0x67, 0x5f, 0xcf, 0x1b, 0x93, 0x50, 0xb1, - 0x1c, 0x51, 0x9a, 0x4a, 0xf4, 0x82, 0xb1, 0x00, 0x33, 0x5b, 0xe8, 0xeb, 0xfd, 0x77, 0x7d, 0xf7, - 0x83, 0x1e, 0xf6, 0x31, 0x21, 0x1c, 0xa5, 0x17, 0xcd, 0x65, 0x98, 0x48, 0xfb, 0xac, 0xd2, 0x8c, - 0x96, 0xec, 0x9f, 0x7f, 0x57, 0x83, 0xb2, 0xf2, 0xcf, 0x74, 0xb5, 0xaf, 0x96, 0xa9, 0xf6, 0x55, - 0x21, 0x2f, 0xd9, 0x7c, 0x73, 0x42, 0x76, 0xe2, 0x5b, 0x81, 0x69, 0xe5, 0xd5, 0x0c, 0x6d, 0x77, - 0x10, 0xe9, 0xc8, 0x82, 0x83, 0x29, 0x85, 0x78, 0x80, 0xfb, 0xf7, 0x11, 0xe9, 0x18, 0x6f, 0x00, - 0xf0, 0xe7, 0x31, 0x4e, 0x07, 0xb9, 0xbe, 0x3c, 0x48, 0xcd, 0xaf, 0xc6, 0xef, 0x82, 0xdf, 0x43, - 0x2e, 0xbd, 0x1b, 0x44, 0x77, 0x7c, 0xb6, 0x84, 0x56, 0x18, 0xe5, 0x3a, 0x23, 0x34, 0xbf, 0xa5, - 0xc1, 0xd4, 0xc0, 0x5c, 0x38, 0xc9, 0x3f, 0x56, 0x61, 0x06, 0x51, 0x8a, 0xbb, 0x21, 0x5b, 0x3f, - 0x13, 0x9b, 0x0a, 0x3f, 0x99, 0x8e, 0x51, 0xb1, 0x51, 0x87, 0xdd, 0x65, 0x28, 0x54, 0x16, 0x86, - 0x42, 0xa5, 0xb9, 0x09, 0xd5, 0xd4, 0xec, 0x7a, 0x82, 0xbf, 0x9e, 0x58, 0x64, 0x6d, 0xde, 0x04, - 0x7d, 0x70, 0xa2, 0x65, 0xef, 0x42, 0xb5, 0x81, 0xbb, 0xd0, 0xbf, 0xd4, 0x60, 0x6a, 0x60, 0x4e, - 0x9d, 0xc4, 0xc0, 0xf0, 0xad, 0xc5, 0x67, 0xa0, 0x12, 0x4f, 0x41, 0x2e, 0x78, 0x6d, 0xcd, 0x18, - 0x9e, 0xad, 0x56, 0x42, 0xc4, 0xcc, 0xcc, 0x63, 0xa2, 0xeb, 0xb7, 0x07, 0x2b, 0xbe, 0xa7, 0x14, - 0x42, 0xd5, 0x7c, 0x7f, 0x1a, 0x8c, 0x98, 0x76, 0x68, 0x4e, 0x29, 0x4c, 0xac, 0xc8, 0xbf, 0xd2, - 0x00, 0xd8, 0x7e, 0x56, 0x94, 0x68, 0x18, 0x9f, 0x84, 0x69, 0xee, 0x23, 0x87, 0xc8, 0xf3, 0xc4, - 0xf6, 0xb7, 0xab, 0x04, 0xaa, 0x31, 0xc4, 0x7b, 0xc8, 0xf3, 0x18, 0xf9, 0x43, 0x62, 0xdc, 0x84, - 0xd9, 0x30, 0x0a, 0x1c, 0x4c, 0x48, 0x96, 0x5a, 0x5a, 0x5a, 0xe2, 0x52, 0x0d, 0x56, 0x61, 0x76, - 0xff, 0x80, 0xef, 0x1e, 0xb3, 0x0d, 0x84, 0xbb, 0xea, 0xfb, 0x07, 0x6c, 0x1f, 0x99, 0xa2, 0x5f, - 0x83, 0x79, 0x1a, 0x50, 0xe4, 0xd9, 0x51, 0xe8, 0xa4, 0x5a, 0xf8, 0x4a, 0x72, 0x83, 0x63, 0xad, - 0xd0, 0x51, 0x6d, 0x1e, 0x11, 0xf3, 0x9b, 0x39, 0x98, 0x48, 0xc4, 0x79, 0xbc, 0x36, 0x42, 0x20, - 0x7f, 0xa4, 0x40, 0x8f, 0x8e, 0x11, 0xc8, 0x3f, 0x4e, 0xa0, 0x47, 0xc4, 0x78, 0x0b, 0x2e, 0xab, - 0x06, 0xa4, 0x47, 0x42, 0xec, 0xb7, 0xb2, 0x0d, 0x85, 0x60, 0x75, 0x49, 0xd3, 0x10, 0x24, 0xa9, - 0xf6, 0x23, 0x15, 0x12, 0x8b, 0x37, 0xa0, 0x90, 0x47, 0x27, 0x29, 0xa4, 0x78, 0xac, 0x42, 0xbe, - 0x02, 0x65, 0x76, 0x08, 0xe1, 0x5b, 0xb2, 0x59, 0x28, 0x72, 0x0a, 0x2e, 0x7f, 0xde, 0x12, 0x1f, - 0x6c, 0x7d, 0x97, 0x1c, 0xe2, 0x16, 0x97, 0x35, 0x6f, 0x25, 0x80, 0x38, 0x01, 0xb1, 0xdb, 0xa7, - 0x58, 0x48, 0x94, 0x17, 0x09, 0x88, 0xdb, 0x0c, 0x60, 0xfe, 0x7f, 0x0d, 0x80, 0xf5, 0x2f, 0xdd, - 0xe7, 0x65, 0x28, 0xf2, 0x07, 0x9a, 0x43, 0xbb, 0x0a, 0xc5, 0x83, 0x25, 0xf0, 0xec, 0x54, 0x1b, - 0x3f, 0x3c, 0x19, 0x49, 0xc7, 0xd1, 0x8c, 0xac, 0x85, 0x28, 0x1a, 0x3a, 0xfd, 0x27, 0x64, 0x0c, - 0x6d, 0xfe, 0x6b, 0x51, 0x3c, 0x3d, 0x8f, 0xad, 0xfe, 0x0a, 0x18, 0xb1, 0x08, 0x6a, 0x7b, 0xa9, - 0xcc, 0x3e, 0x1d, 0x63, 0xe4, 0x26, 0x93, 0x18, 0x6f, 0xc2, 0xc2, 0x30, 0x79, 0xfa, 0x41, 0xf3, - 0xdc, 0x50, 0x1b, 0xbe, 0xab, 0xbc, 0x0e, 0x35, 0x61, 0x90, 0x78, 0x08, 0x59, 0x06, 0xcc, 0xa1, - 0x71, 0xf7, 0x5f, 0x86, 0xcb, 0x11, 0x3b, 0x32, 0xb4, 0x76, 0xed, 0x16, 0xbf, 0x78, 0xb1, 0xc9, - 0xbe, 0x1b, 0x86, 0x3c, 0x3e, 0xf6, 0x7c, 0x2a, 0xfd, 0x64, 0x51, 0xd2, 0x88, 0xbb, 0x99, 0x86, - 0xa0, 0x58, 0x67, 0x04, 0xec, 0xcc, 0xa7, 0x3a, 0x60, 0x41, 0x3e, 0xdb, 0x5a, 0x78, 0xcb, 0xbc, - 0x24, 0x78, 0x80, 0xfb, 0x99, 0xa6, 0x6f, 0xc3, 0x15, 0xd5, 0x74, 0x97, 0xaf, 0x12, 0xfc, 0x48, - 0x6c, 0x77, 0xd8, 0x3a, 0xc0, 0x9b, 0x17, 0x33, 0x83, 0xdf, 0x66, 0x34, 0xfc, 0x84, 0x7c, 0xdf, - 0xa5, 0xa2, 0x87, 0xcf, 0x42, 0x3d, 0xdb, 0x03, 0xf7, 0x07, 0xd1, 0x58, 0x94, 0x89, 0xcc, 0xa5, - 0x1b, 0x33, 0x9f, 0x15, 0x0d, 0xdf, 0x80, 0x85, 0x11, 0x0d, 0x99, 0x23, 0xc9, 0xed, 0xf4, 0xec, - 0x60, 0x3b, 0xe6, 0x53, 0xc7, 0x8c, 0xe7, 0x23, 0x3f, 0x50, 0x9b, 0xe6, 0xa1, 0xf1, 0x1e, 0x31, - 0x24, 0x0b, 0x7c, 0x6d, 0x4c, 0x6d, 0xe2, 0xa3, 0x90, 0x74, 0x02, 0x2a, 0x9b, 0x88, 0xd7, 0xe4, - 0x7a, 0x1b, 0xd3, 0x86, 0x44, 0x08, 0x6a, 0xa6, 0x98, 0x38, 0xb3, 0x66, 0x87, 0x51, 0x10, 0x06, - 0x04, 0xdb, 0x3c, 0x56, 0x88, 0x86, 0x55, 0xa9, 0x18, 0x95, 0x6c, 0xdb, 0x11, 0x24, 0x6c, 0x99, - 0x1c, 0xd5, 0x03, 0xdb, 0xad, 0xb8, 0x51, 0x37, 0xdd, 0xc3, 0xc4, 0x40, 0x0f, 0xeb, 0x82, 0x64, - 0xb8, 0x87, 0x30, 0x08, 0x3c, 0x9b, 0x38, 0x1d, 0xdc, 0xea, 0x79, 0x19, 0x1e, 0x26, 0x93, 0x1e, - 0x76, 0x82, 0xc0, 0x6b, 0x48, 0x92, 0xb8, 0x07, 0xf3, 0x57, 0x35, 0xa8, 0xa6, 0x0a, 0xee, 0xd8, - 0x99, 0x97, 0xc7, 0x04, 0x51, 0x9f, 0x27, 0xa7, 0x61, 0x72, 0xe6, 0x4d, 0x42, 0xa3, 0x05, 0x34, - 0x89, 0xfa, 0xaf, 0x43, 0x95, 0x27, 0x30, 0x64, 0xab, 0xdc, 0x40, 0xab, 0x64, 0x6a, 0x59, 0x40, - 0xe2, 0xdf, 0xa2, 0x22, 0x58, 0x9c, 0x03, 0xcd, 0x7f, 0xd3, 0x60, 0x32, 0x53, 0xf8, 0x77, 0x46, - 0x4e, 0xbe, 0x08, 0xb5, 0x14, 0x27, 0xf6, 0xc1, 0x9a, 0x64, 0x66, 0x6e, 0x04, 0x33, 0x8f, 0xd7, - 0xac, 0x09, 0x92, 0x9e, 0xf5, 0x9f, 0x85, 0x09, 0x1e, 0x5d, 0xd4, 0x98, 0xf9, 0x81, 0xfd, 0x38, - 0xdf, 0x25, 0xca, 0x41, 0xab, 0x87, 0xc9, 0x07, 0x1b, 0x35, 0xc5, 0x6b, 0x52, 0x5a, 0x3a, 0x37, - 0x82, 0x5d, 0x36, 0x2a, 0x4d, 0x7d, 0x99, 0x1f, 0x96, 0xa0, 0x9a, 0xea, 0xd9, 0x78, 0x0d, 0xe6, - 0x09, 0x0d, 0x22, 0x6c, 0xef, 0x22, 0xea, 0x74, 0xd2, 0xd6, 0x14, 0xf1, 0x67, 0x86, 0x63, 0xf9, - 0x5d, 0x62, 0xe2, 0x09, 0x6f, 0xf0, 0x08, 0xc4, 0x5d, 0x90, 0x88, 0x75, 0x24, 0x6e, 0x25, 0x42, - 0xca, 0xac, 0x44, 0x37, 0xf8, 0x12, 0xa2, 0x9a, 0xad, 0xc0, 0x74, 0xc8, 0xa2, 0x0c, 0x7f, 0x14, - 0xdd, 0x96, 0x0d, 0xe4, 0xf6, 0x4f, 0x22, 0xb6, 0x82, 0xb6, 0xa0, 0x5d, 0x87, 0xab, 0x11, 0xda, - 0xa3, 0x76, 0x6b, 0xd7, 0x16, 0x5a, 0xf2, 0x30, 0x6a, 0xe1, 0x28, 0x3d, 0x94, 0x08, 0x25, 0x4b, - 0x8c, 0x6c, 0x63, 0x97, 0xcb, 0xb4, 0xc5, 0x69, 0x92, 0x01, 0xd7, 0x60, 0x5e, 0x75, 0xa2, 0xd2, - 0x67, 0xb2, 0xad, 0x5c, 0x82, 0x44, 0xdb, 0x86, 0x48, 0xa5, 0x89, 0x36, 0x6f, 0xc1, 0xe5, 0xec, - 0xc0, 0x5d, 0xdc, 0xa5, 0xec, 0xf0, 0x28, 0x5b, 0x8a, 0x20, 0x52, 0x4f, 0x8d, 0xfa, 0x50, 0x12, - 0x88, 0xf6, 0x37, 0x40, 0x9e, 0x7b, 0x52, 0xa3, 0x89, 0x00, 0x22, 0x53, 0x32, 0xf1, 0x48, 0xaf, - 0xc1, 0x3c, 0x0a, 0x43, 0xaf, 0x3f, 0xac, 0x7a, 0x11, 0xc6, 0x67, 0x38, 0x76, 0x40, 0xf5, 0x2f, - 0xc1, 0x94, 0x68, 0x94, 0xf4, 0x5e, 0x91, 0x6f, 0x18, 0x19, 0x78, 0xb8, 0xf3, 0x6e, 0x8f, 0xe2, - 0x23, 0xf1, 0xe0, 0x31, 0x1d, 0x62, 0x44, 0xe7, 0x0f, 0x19, 0x92, 0x9d, 0xa1, 0xe3, 0x19, 0x2e, - 0x1a, 0x1d, 0xa7, 0x72, 0x19, 0x65, 0x38, 0xd1, 0x48, 0x8d, 0xbf, 0x0a, 0x73, 0xe9, 0x1e, 0x0e, - 0x91, 0x97, 0x89, 0x2e, 0x46, 0xd2, 0xf2, 0x3d, 0xe4, 0x89, 0x26, 0x5f, 0x84, 0xa5, 0x74, 0x93, - 0x01, 0x75, 0x8b, 0x98, 0xb2, 0x90, 0xb4, 0x1b, 0xd2, 0xb6, 0x37, 0xa8, 0x3d, 0x91, 0x56, 0xac, - 0x79, 0x59, 0xc5, 0xbd, 0x08, 0x93, 0x6a, 0xfb, 0x23, 0xc8, 0x64, 0x3a, 0x51, 0x02, 0x05, 0x11, - 0x5b, 0x22, 0x3b, 0x51, 0x40, 0x69, 0x3c, 0xbe, 0x2e, 0x97, 0x48, 0x09, 0x15, 0x64, 0xff, 0x03, - 0x2e, 0x0d, 0x3e, 0x10, 0x4c, 0x33, 0x30, 0x2d, 0x77, 0x52, 0x83, 0x4f, 0xdc, 0x55, 0x18, 0x7c, - 0x1f, 0xc6, 0xc5, 0x05, 0x7a, 0x52, 0xc7, 0xab, 0x3d, 0xa1, 0x92, 0xf9, 0x94, 0x75, 0x66, 0xe6, - 0x87, 0x1a, 0x94, 0xd5, 0x13, 0x20, 0xe3, 0x12, 0xe4, 0x82, 0x50, 0x3e, 0x8f, 0xcf, 0xe4, 0x8f, - 0x72, 0x41, 0x78, 0xea, 0xca, 0xb5, 0xcc, 0xf6, 0xbf, 0x70, 0x8a, 0xed, 0xbf, 0xf9, 0xd3, 0x1c, - 0x54, 0x1e, 0x1e, 0x38, 0x0e, 0x37, 0x97, 0x71, 0x35, 0xf3, 0x4a, 0x3f, 0xc3, 0x86, 0x78, 0x8b, - 0x7f, 0xc2, 0x1d, 0xd6, 0xa5, 0xa1, 0x17, 0xe9, 0xa9, 0x97, 0x6d, 0x57, 0xa1, 0x4a, 0x3a, 0x41, - 0x44, 0xed, 0xd4, 0x9b, 0x74, 0x0b, 0x38, 0x88, 0xff, 0xff, 0x03, 0xb6, 0x4f, 0xea, 0x20, 0x62, - 0x07, 0x07, 0x38, 0xf2, 0x10, 0xdf, 0x82, 0xa8, 0x17, 0xa2, 0xb2, 0xba, 0x6c, 0xae, 0x83, 0xc8, - 0x76, 0x8c, 0x55, 0xcf, 0x34, 0x8c, 0x65, 0x98, 0x60, 0xed, 0xda, 0x8e, 0xbd, 0xc7, 0xff, 0x13, - 0x80, 0xa8, 0xae, 0x80, 0x0e, 0x22, 0xf7, 0x9c, 0xbb, 0xfc, 0x5f, 0x01, 0x2c, 0x42, 0x39, 0xc6, - 0x8a, 0xb9, 0x5d, 0x6a, 0x4b, 0xd4, 0x27, 0xa0, 0xc6, 0xf3, 0x5c, 0x4e, 0x07, 0xf9, 0x6d, 0x9e, - 0x8c, 0x13, 0x93, 0x79, 0x82, 0x41, 0xd7, 0x39, 0x90, 0xe7, 0x06, 0x16, 0xe2, 0x8d, 0x9b, 0xca, - 0x8c, 0x89, 0x16, 0x72, 0x36, 0xcf, 0x2a, 0xb4, 0x48, 0x8b, 0x89, 0x86, 0xe6, 0x97, 0x84, 0x62, - 0x85, 0x78, 0x27, 0x1c, 0xe2, 0x46, 0xfe, 0x7b, 0x03, 0xf3, 0x7b, 0x79, 0x28, 0xb3, 0xe6, 0x3c, - 0x9b, 0xf9, 0x2c, 0x66, 0x49, 0x65, 0x48, 0xf2, 0xd9, 0x0c, 0xc9, 0x13, 0x6d, 0x32, 0x5c, 0xf7, - 0x78, 0x9a, 0x7f, 0xa7, 0x91, 0x4e, 0x95, 0x96, 0x06, 0x53, 0xa5, 0xa7, 0xcd, 0x69, 0x0e, 0xe4, - 0x2b, 0x2b, 0xc3, 0xf9, 0xca, 0xab, 0x50, 0x8d, 0x1f, 0x18, 0x53, 0x91, 0xd1, 0x2c, 0x58, 0xa0, - 0x40, 0x4d, 0x32, 0xc2, 0xb8, 0xd5, 0xa7, 0x33, 0xee, 0xc4, 0x09, 0xc6, 0xfd, 0x86, 0x26, 0xcc, - 0xc3, 0x0f, 0x3f, 0xea, 0xc4, 0xa1, 0x8d, 0xb8, 0x47, 0xe3, 0xf7, 0xfc, 0xe2, 0xc4, 0xb1, 0x02, - 0xe3, 0x3c, 0x6a, 0xaa, 0x0b, 0x7d, 0x23, 0x43, 0xc8, 0x27, 0xa0, 0x25, 0x29, 0x18, 0xad, 0xfc, - 0x1f, 0x0d, 0xf9, 0x11, 0xb4, 0xdc, 0x3c, 0xea, 0xff, 0x36, 0x98, 0xaf, 0x41, 0x49, 0xbe, 0xea, - 0xe0, 0x16, 0x3b, 0xf2, 0xa5, 0x87, 0xb1, 0x9f, 0xc6, 0x3c, 0x8c, 0x13, 0xfe, 0xc2, 0x59, 0xfa, - 0x85, 0xfc, 0x32, 0xdf, 0xe6, 0x19, 0x5b, 0x7e, 0xb5, 0x9c, 0xad, 0x66, 0xd0, 0x8e, 0xaf, 0xe5, - 0xc9, 0x65, 0x6a, 0x79, 0xfe, 0x5c, 0x03, 0x10, 0x2b, 0x0a, 0x1f, 0xfa, 0xc4, 0x9b, 0xc1, 0x05, - 0x28, 0x85, 0x18, 0x47, 0x0c, 0x25, 0xd9, 0x60, 0x9f, 0x9b, 0xad, 0xf8, 0x62, 0x2f, 0x9f, 0xba, - 0xd8, 0x1b, 0xbc, 0x46, 0x2c, 0x9c, 0xf2, 0x1a, 0xf1, 0x55, 0x79, 0x9e, 0x64, 0x12, 0x62, 0x99, - 0xe2, 0x4d, 0xf4, 0xc6, 0x36, 0xf3, 0x0d, 0x86, 0x11, 0x67, 0x4c, 0xfe, 0xd3, 0xdc, 0x84, 0x4a, - 0x0c, 0x1f, 0xbe, 0xc3, 0xd2, 0x46, 0xdf, 0x61, 0xf1, 0xc7, 0x22, 0x34, 0x51, 0x28, 0xda, 0xc3, - 0x4d, 0x62, 0x36, 0xc0, 0x10, 0xc5, 0x37, 0x5c, 0x25, 0xea, 0xa2, 0xe8, 0x95, 0xa4, 0xbc, 0x40, - 0x3c, 0xfe, 0x4c, 0xb6, 0xa9, 0x89, 0xee, 0xe2, 0x1a, 0x03, 0xa3, 0x06, 0xb9, 0xb8, 0xe3, 0x1c, - 0x25, 0xe6, 0x97, 0x61, 0x26, 0xd3, 0xa9, 0xbc, 0x13, 0xae, 0x67, 0x7b, 0x2d, 0x1c, 0xdf, 0xc1, - 0x06, 0x18, 0x0d, 0xb6, 0x27, 0x6c, 0x30, 0x26, 0x1b, 0x8a, 0xab, 0x55, 0xa8, 0xb0, 0xc3, 0x1e, - 0xaf, 0x28, 0x18, 0xb5, 0x9a, 0x89, 0x8a, 0x83, 0xf2, 0xbe, 0xfc, 0x65, 0xae, 0xc2, 0x4c, 0xa6, - 0x17, 0xc9, 0x46, 0x4a, 0x17, 0x5a, 0x46, 0x17, 0x0e, 0xaf, 0xd2, 0xbb, 0x87, 0x99, 0x03, 0x35, - 0x9b, 0x5b, 0x17, 0x53, 0x71, 0xff, 0x4d, 0x8d, 0x57, 0xce, 0xa5, 0x46, 0xb9, 0x80, 0x1b, 0xf3, - 0xe4, 0xa9, 0x3e, 0x8f, 0x7f, 0x27, 0xd6, 0xdc, 0xff, 0x4c, 0x14, 0xa7, 0xaf, 0xdf, 0x6a, 0x5c, - 0x64, 0x71, 0xfa, 0xa7, 0xc1, 0x08, 0x23, 0x7c, 0xe0, 0x06, 0x3d, 0x92, 0xfa, 0xaf, 0x0a, 0x82, - 0x17, 0x5d, 0x61, 0xe2, 0xff, 0xa9, 0x70, 0x1d, 0x6a, 0x31, 0xb5, 0xe8, 0x4c, 0x3c, 0xca, 0x9b, - 0x54, 0xd0, 0xc7, 0xa9, 0x8a, 0xf7, 0xf1, 0xc1, 0x8a, 0xf7, 0x52, 0x2c, 0xb9, 0xf9, 0x91, 0xa8, - 0xd0, 0xe5, 0xc2, 0x9d, 0xb7, 0x9e, 0xeb, 0x50, 0x22, 0x3d, 0xc7, 0xc1, 0xb2, 0xd6, 0xa4, 0x6c, - 0xa9, 0xcf, 0x0b, 0x11, 0xd6, 0xdc, 0x80, 0xf9, 0x7b, 0x98, 0xaa, 0x5d, 0x1e, 0x9f, 0x80, 0x4f, - 0x6f, 0x2f, 0xf3, 0xdb, 0x1a, 0x2c, 0x0c, 0x75, 0x73, 0xde, 0x9a, 0xf9, 0x0c, 0x0b, 0xbe, 0x94, - 0x2f, 0x81, 0xf9, 0x13, 0x93, 0xea, 0x8a, 0xcc, 0xbc, 0x07, 0x8b, 0x29, 0xae, 0xee, 0xbb, 0xec, - 0x44, 0x78, 0x96, 0x8a, 0x1c, 0xf3, 0x3b, 0x1a, 0x2c, 0x8d, 0xea, 0xe9, 0x17, 0x2f, 0xe2, 0x5f, - 0x88, 0x9a, 0xe7, 0xf5, 0x40, 0x9e, 0x06, 0x82, 0xe8, 0x8c, 0x05, 0xac, 0x4e, 0x10, 0x46, 0xe2, - 0x5e, 0x5b, 0x70, 0x54, 0x66, 0x00, 0x7e, 0x9d, 0xcd, 0xcf, 0x85, 0x61, 0xa4, 0x92, 0x6f, 0x76, - 0x84, 0x3f, 0x90, 0x91, 0xa7, 0xc6, 0xe0, 0xc9, 0xab, 0xab, 0x54, 0xe5, 0x56, 0xe1, 0x49, 0xd5, - 0xc4, 0x86, 0xcc, 0x38, 0x0a, 0xa7, 0x14, 0xe9, 0xc5, 0x1e, 0xaf, 0x99, 0xce, 0x88, 0x72, 0xde, - 0x0a, 0x36, 0x52, 0x89, 0x4e, 0x35, 0xec, 0xf7, 0xc5, 0x5b, 0x12, 0xbe, 0xb6, 0x90, 0x5e, 0xf7, - 0x2c, 0xfa, 0xfb, 0x1c, 0x54, 0x90, 0xd7, 0x0e, 0x22, 0x97, 0x76, 0xba, 0x7c, 0xc0, 0xda, 0xda, - 0x52, 0x42, 0x2d, 0x3b, 0xbe, 0xa5, 0x28, 0xac, 0x84, 0xf8, 0x69, 0x8a, 0xdd, 0xfe, 0x48, 0xd4, - 0x7b, 0x27, 0x7c, 0x9e, 0xb7, 0x72, 0x96, 0xa0, 0xec, 0xc8, 0xce, 0xe3, 0x33, 0x8b, 0xfc, 0x66, - 0x1e, 0x22, 0x52, 0xb0, 0xfb, 0x07, 0xf1, 0xbf, 0xea, 0xe0, 0x80, 0x07, 0x07, 0x7c, 0xfb, 0x29, - 0x90, 0x22, 0x7b, 0x2d, 0xf6, 0xc8, 0xc0, 0x41, 0x22, 0x7d, 0xfd, 0x83, 0x3c, 0x4c, 0xac, 0x07, - 0xdd, 0x10, 0x39, 0x54, 0x30, 0xf0, 0x3e, 0xcc, 0xe1, 0x28, 0xb2, 0x5d, 0xff, 0x00, 0x79, 0x6e, - 0xcb, 0xce, 0xee, 0xb8, 0xaa, 0x6b, 0x9f, 0x48, 0xdf, 0xcd, 0xc6, 0xad, 0x36, 0x05, 0x75, 0x43, - 0xee, 0xc6, 0xee, 0x8f, 0x59, 0x06, 0x8e, 0x06, 0xa1, 0x86, 0x07, 0x97, 0x59, 0xd7, 0xa1, 0xac, - 0x2f, 0xb5, 0xe5, 0x99, 0x3c, 0x0e, 0x98, 0x22, 0xd1, 0xb5, 0x32, 0x72, 0x04, 0x55, 0x94, 0xda, - 0xe4, 0xe7, 0x74, 0x19, 0x4a, 0xef, 0x8f, 0x59, 0x75, 0x1c, 0x8d, 0xc6, 0x19, 0x36, 0x2c, 0xb0, - 0xd1, 0x1c, 0xd1, 0x89, 0xed, 0xfa, 0x76, 0x18, 0x05, 0xed, 0x08, 0x13, 0x22, 0xd3, 0x62, 0x2f, - 0x8d, 0x1c, 0x48, 0xfe, 0xde, 0xf4, 0x77, 0x24, 0xf5, 0xfd, 0x31, 0x6b, 0x16, 0x47, 0xc3, 0x70, - 0x63, 0x0f, 0x96, 0xd8, 0x00, 0x34, 0x08, 0xec, 0x2e, 0xf2, 0xfb, 0x76, 0x88, 0xfd, 0x96, 0xeb, - 0xb7, 0x6d, 0x8a, 0xc8, 0x3e, 0x91, 0xdb, 0xc1, 0x1b, 0x23, 0xc7, 0x68, 0x06, 0xc1, 0x43, 0xe4, - 0xf7, 0x77, 0x44, 0x83, 0x26, 0xa3, 0xbf, 0x3f, 0x66, 0xcd, 0xe3, 0x68, 0x14, 0xe6, 0x76, 0x49, - 0xba, 0x84, 0x79, 0x05, 0x2e, 0x9d, 0xa0, 0x74, 0xf3, 0x45, 0xb8, 0xf6, 0x44, 0x8d, 0x99, 0x57, - 0xe1, 0xca, 0x89, 0xd2, 0x9a, 0xd7, 0xe0, 0xea, 0x13, 0x58, 0x65, 0x3b, 0x88, 0x9a, 0xa4, 0x51, - 0x53, 0xf2, 0xc4, 0xbd, 0xf9, 0x0a, 0x4c, 0x0f, 0xd8, 0xdc, 0x55, 0xf7, 0x2c, 0x53, 0x61, 0x9a, - 0xcb, 0xcd, 0x16, 0x4f, 0xbe, 0x04, 0xed, 0x2c, 0xa9, 0xb8, 0x73, 0xa9, 0x49, 0xb8, 0xa2, 0x1c, - 0x28, 0x6e, 0x2a, 0x9d, 0xae, 0xb8, 0x69, 0xa0, 0xaa, 0xa7, 0x3c, 0x58, 0xd5, 0x63, 0xfe, 0x99, - 0xb8, 0xec, 0x15, 0xc2, 0xc9, 0x79, 0xfc, 0xa9, 0x6c, 0x4a, 0x65, 0x6e, 0xa4, 0x51, 0xd5, 0x5c, - 0x7d, 0x11, 0x26, 0xd9, 0x51, 0x3f, 0xc2, 0x5d, 0xe4, 0xfa, 0xae, 0xdf, 0x96, 0x05, 0xeb, 0xec, - 0xfc, 0x6f, 0x29, 0x98, 0xb1, 0xca, 0xeb, 0x1f, 0x58, 0x5b, 0x9c, 0x9e, 0x63, 0x22, 0xf8, 0x4d, - 0xc7, 0xa8, 0x46, 0x4a, 0x85, 0x09, 0x7d, 0xf6, 0x61, 0xeb, 0x54, 0x8c, 0xb8, 0x23, 0x4e, 0x3c, - 0xaf, 0xc0, 0x62, 0xd3, 0xe5, 0x6f, 0x55, 0x1b, 0x7d, 0x42, 0x71, 0x97, 0x2b, 0x4c, 0x19, 0x4a, - 0x87, 0x3c, 0xf9, 0xc0, 0x93, 0x15, 0xdc, 0xec, 0xa7, 0x19, 0xc2, 0xd2, 0x28, 0x72, 0x29, 0xba, - 0x25, 0xc3, 0x32, 0xb7, 0xe9, 0xed, 0xb7, 0x3e, 0xfa, 0xf9, 0xd5, 0xb1, 0x9f, 0xfd, 0xfc, 0xea, - 0x9b, 0x6d, 0x97, 0x76, 0x7a, 0xbb, 0xab, 0x4e, 0xd0, 0xbd, 0x19, 0xba, 0x7e, 0xdb, 0x41, 0xe1, - 0xcd, 0xfd, 0x03, 0xf1, 0x3f, 0xb8, 0xc3, 0xfd, 0xf6, 0x4d, 0xd2, 0x41, 0x11, 0x6e, 0xf1, 0x98, - 0xb3, 0xda, 0xe0, 0xbf, 0x79, 0xb4, 0x11, 0x61, 0x7d, 0xe5, 0x1d, 0x58, 0x3c, 0xf6, 0x5f, 0x35, - 0x1a, 0xb3, 0xa0, 0x27, 0x5f, 0x8f, 0x82, 0xa8, 0x8b, 0x3c, 0x7d, 0xcc, 0x58, 0x80, 0x99, 0x04, - 0x7a, 0x37, 0x88, 0x1c, 0x5e, 0x65, 0xaf, 0x6b, 0x2b, 0x1e, 0x5c, 0x3e, 0xe9, 0x7f, 0x33, 0xb2, - 0xee, 0x64, 0x0d, 0x7b, 0xcf, 0xa3, 0x71, 0x77, 0xcb, 0x70, 0x39, 0x81, 0x6e, 0x0d, 0xfd, 0x8b, - 0x45, 0x51, 0x0b, 0x91, 0x50, 0x88, 0x2b, 0x6e, 0x3d, 0xb7, 0xf2, 0x32, 0x40, 0xe2, 0x57, 0xc6, - 0x38, 0xe4, 0x1e, 0xbf, 0xaa, 0x8f, 0x19, 0x15, 0x28, 0x3e, 0x7e, 0xb5, 0xd9, 0xdc, 0xd2, 0x35, - 0x0e, 0x5a, 0xd3, 0x73, 0x2b, 0x9f, 0x02, 0x48, 0x8a, 0x3b, 0x0d, 0x80, 0xf1, 0x78, 0xe8, 0x12, - 0xe4, 0xb7, 0x82, 0x43, 0x5d, 0x33, 0xca, 0x50, 0xb8, 0xef, 0xb6, 0x3b, 0x7a, 0x6e, 0xe5, 0x26, - 0xd4, 0xb2, 0x15, 0x9d, 0xac, 0x9b, 0xc6, 0xa6, 0x3e, 0xc6, 0xfe, 0x5a, 0xeb, 0xba, 0xc6, 0xeb, - 0x2d, 0xd6, 0x45, 0xbd, 0x45, 0x43, 0xcf, 0xad, 0x3c, 0x86, 0x6a, 0xaa, 0x3a, 0x90, 0xf1, 0xfa, - 0x28, 0xa0, 0xb7, 0x3c, 0x2f, 0x38, 0xc4, 0xad, 0x6d, 0x9f, 0x81, 0x85, 0xca, 0x62, 0xd0, 0x2d, - 0xaf, 0x1b, 0x10, 0xca, 0x11, 0x9a, 0x51, 0x87, 0xd9, 0x14, 0x82, 0x57, 0x67, 0x70, 0x4c, 0x6e, - 0xc5, 0x81, 0xdc, 0x76, 0xc8, 0x38, 0xdc, 0xe9, 0x51, 0xc1, 0xea, 0x06, 0xf6, 0x04, 0xab, 0x5c, - 0xdd, 0x39, 0x63, 0x02, 0xca, 0x2a, 0xa7, 0xa5, 0xe7, 0x99, 0x5c, 0x9b, 0x3e, 0xc1, 0x11, 0xd5, - 0x0b, 0xc6, 0x0c, 0x4c, 0x0d, 0x18, 0x42, 0x2f, 0x1a, 0x06, 0xd4, 0x38, 0xd7, 0x2a, 0xfc, 0x10, - 0x7d, 0x7c, 0x65, 0x15, 0x2a, 0x71, 0x8a, 0x8f, 0xf5, 0xfc, 0x28, 0xf0, 0xb1, 0x50, 0x22, 0x27, - 0xd1, 0x35, 0x36, 0x88, 0x6a, 0x20, 0xb4, 0x93, 0xfd, 0x5f, 0xc2, 0x8c, 0xaf, 0xed, 0xbd, 0x3d, - 0x7d, 0x8c, 0xb5, 0xbe, 0x8b, 0x78, 0x13, 0x80, 0xf1, 0x06, 0x8d, 0x98, 0xe9, 0x72, 0x2b, 0xdf, - 0xd5, 0x60, 0x5c, 0xfe, 0x07, 0x5e, 0xde, 0x93, 0xf8, 0xad, 0x8f, 0x19, 0x73, 0x30, 0xdd, 0x6c, - 0x6e, 0x89, 0x0a, 0x8e, 0x58, 0x0a, 0xae, 0x0f, 0x9e, 0xae, 0x96, 0x43, 0xc6, 0x98, 0x1c, 0x6b, - 0xf0, 0x30, 0x2e, 0xb9, 0x68, 0xec, 0xf4, 0x48, 0x07, 0xb7, 0xf4, 0x3c, 0xf3, 0x9e, 0xb8, 0x9f, - 0x11, 0xff, 0x45, 0x51, 0x2f, 0x18, 0x8b, 0x30, 0x97, 0xee, 0x72, 0x23, 0x78, 0x14, 0xd0, 0x8e, - 0xeb, 0xb7, 0xf5, 0xe2, 0xca, 0x75, 0x28, 0xdd, 0x39, 0xa2, 0x11, 0xda, 0x0e, 0x85, 0xf0, 0x41, - 0xa8, 0x8f, 0x19, 0x3a, 0x4c, 0xb0, 0x03, 0xfe, 0xb6, 0xd7, 0xe2, 0x7b, 0x7f, 0x5d, 0x5b, 0x31, - 0x61, 0x7a, 0x68, 0x77, 0xc2, 0xdc, 0x60, 0x3d, 0x72, 0xde, 0x7c, 0xdd, 0xfe, 0x9f, 0x41, 0xa4, - 0x8f, 0xdd, 0x7e, 0xe9, 0x6f, 0x7f, 0xaf, 0xac, 0x7d, 0xf4, 0xf1, 0x0b, 0xda, 0x4f, 0x3e, 0x7e, - 0x41, 0xfb, 0xfb, 0x8f, 0x5f, 0xd0, 0x7e, 0xfb, 0x1f, 0x5f, 0x18, 0x03, 0x3d, 0x88, 0xda, 0xab, - 0xd4, 0xdd, 0x3f, 0x58, 0x95, 0x33, 0x72, 0x77, 0x9c, 0xff, 0x79, 0xed, 0x3f, 0x03, 0x00, 0x00, - 0xff, 0xff, 0x43, 0x78, 0x3e, 0x70, 0x5e, 0x5f, 0x00, 0x00, + // 6717 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0x5b, 0x6c, 0x24, 0xc9, + 0x71, 0x20, 0xab, 0x1f, 0xec, 0xee, 0x68, 0xb2, 0x59, 0x4c, 0xbe, 0x9a, 0x9c, 0x99, 0x25, 0xa7, + 0x56, 0xb3, 0x3b, 0xa2, 0xb4, 0x1c, 0x2d, 0xf7, 0xa1, 0xe7, 0xad, 0x76, 0x86, 0x9c, 0x07, 0x77, + 0x38, 0x43, 0xa2, 0xba, 0x77, 0xf6, 0x16, 0x77, 0x52, 0x29, 0x59, 0x9d, 0xec, 0x2e, 0xb0, 0xba, + 0xaa, 0xb6, 0x32, 0x9b, 0x64, 0xeb, 0x70, 0xc0, 0x2d, 0xee, 0xce, 0x80, 0x00, 0x43, 0xb6, 0x05, + 0x01, 0x32, 0x20, 0xc1, 0x80, 0x3f, 0x04, 0x58, 0xfe, 0xb3, 0xfd, 0xe3, 0xc7, 0x87, 0x61, 0x40, + 0x1f, 0x6b, 0xc3, 0x82, 0x04, 0x18, 0x86, 0x0c, 0x19, 0x10, 0xec, 0x35, 0xe0, 0x6f, 0xff, 0x18, + 0xf6, 0x8f, 0x61, 0x23, 0x1f, 0xf5, 0xea, 0x6e, 0x72, 0x38, 0x1c, 0xce, 0x48, 0xf6, 0x57, 0x77, + 0x46, 0x44, 0x66, 0x46, 0x46, 0x44, 0x46, 0x66, 0x46, 0x46, 0x16, 0x4c, 0x1e, 0x1c, 0x86, 0x81, + 0x1d, 0xec, 0xad, 0x05, 0xa1, 0xcf, 0x7c, 0x54, 0x52, 0xc5, 0xa5, 0x89, 0x2e, 0x61, 0x38, 0x02, + 0x2f, 0x4d, 0x92, 0x30, 0xf4, 0xc3, 0xb8, 0x38, 0xdb, 0xf6, 0xdb, 0xbe, 0xf8, 0x7b, 0x83, 0xff, + 0x53, 0xd0, 0xa9, 0xb0, 0x47, 0x99, 0xf8, 0xab, 0x00, 0xb5, 0x16, 0xc1, 0x2d, 0xd7, 0xb7, 0x0f, + 0xa2, 0x56, 0x58, 0x88, 0x6d, 0x12, 0xb7, 0x32, 0x1f, 0x12, 0xea, 0xf7, 0x42, 0x9b, 0x58, 0x5d, + 0xec, 0xe1, 0x36, 0x09, 0x25, 0xdc, 0x68, 0x01, 0xdc, 0x25, 0xcc, 0x24, 0x1f, 0xf4, 0x08, 0x65, + 0x68, 0x15, 0x4a, 0xb6, 0xef, 0x31, 0x72, 0xcc, 0xea, 0xda, 0x8a, 0x76, 0xbd, 0xba, 0xae, 0xaf, + 0x45, 0x2c, 0x6f, 0x48, 0xb8, 0x19, 0x11, 0x20, 0x1d, 0xf2, 0x07, 0xa4, 0x5f, 0xcf, 0xad, 0x68, + 0xd7, 0x27, 0x4c, 0xfe, 0x17, 0xd5, 0xa1, 0x74, 0x48, 0x42, 0xea, 0xf8, 0x5e, 0x3d, 0xbf, 0xa2, + 0x5d, 0x2f, 0x98, 0x51, 0xd1, 0xf8, 0x58, 0x83, 0xaa, 0xe8, 0x86, 0x06, 0xbe, 0x47, 0x09, 0x7a, + 0x15, 0x26, 0x42, 0xd2, 0x76, 0x7c, 0xcf, 0x12, 0x63, 0x55, 0x9d, 0xd5, 0xd6, 0xa2, 0x91, 0xdf, + 0xe6, 0xbf, 0x66, 0x55, 0xd2, 0x88, 0x02, 0x7a, 0x19, 0x8a, 0x92, 0x36, 0x27, 0x68, 0xa7, 0x63, + 0xc6, 0xee, 0x93, 0xbe, 0x24, 0x97, 0x78, 0x34, 0x0b, 0xc5, 0x43, 0xec, 0xf6, 0x88, 0xe0, 0x61, + 0xc2, 0x94, 0x05, 0x74, 0x09, 0x2a, 0x9e, 0xcf, 0xac, 0x7d, 0xbf, 0xe7, 0xb5, 0xea, 0x85, 0x15, + 0xed, 0x7a, 0xd9, 0x2c, 0x7b, 0x3e, 0xbb, 0xc3, 0xcb, 0xe8, 0x2d, 0x98, 0x22, 0xc7, 0xc4, 0xb6, + 0x5a, 0x84, 0x61, 0xc7, 0xa5, 0xd6, 0xe1, 0x7a, 0x7d, 0x5c, 0xf4, 0x32, 0x1f, 0xf7, 0x72, 0xfb, + 0x98, 0xd8, 0x9b, 0x12, 0xfd, 0x68, 0xdd, 0x9c, 0x24, 0xe9, 0xe2, 0x3b, 0x85, 0x72, 0x51, 0x1f, + 0x37, 0xfe, 0x59, 0x83, 0x6a, 0xc3, 0xc6, 0xde, 0x79, 0x84, 0x79, 0x09, 0x2a, 0x94, 0xe1, 0x90, + 0x59, 0x89, 0x48, 0xcb, 0x02, 0x70, 0x9f, 0xf4, 0xf9, 0x88, 0x5c, 0xa7, 0xeb, 0x30, 0x31, 0xa2, + 0x49, 0x53, 0x16, 0xd2, 0xd2, 0x2e, 0x64, 0xa4, 0x8d, 0x16, 0xa1, 0x7c, 0x40, 0xfa, 0x96, 0xef, + 0xb9, 0xfd, 0x7a, 0x51, 0x0c, 0xb5, 0x74, 0x40, 0xfa, 0x3b, 0x9e, 0x2b, 0x54, 0x14, 0x12, 0x4e, + 0x47, 0xc4, 0x08, 0xcb, 0x66, 0x54, 0x44, 0x0b, 0x50, 0x22, 0x5e, 0x4b, 0xf4, 0x5f, 0x12, 0xfd, + 0x8f, 0x13, 0xaf, 0xc5, 0x7b, 0x5f, 0x86, 0x2a, 0xc5, 0xdd, 0xc0, 0x25, 0x16, 0x65, 0x24, 0xa8, + 0x97, 0x05, 0x0f, 0x20, 0x41, 0x0d, 0x46, 0x02, 0xe3, 0x37, 0x34, 0x98, 0x90, 0xe3, 0x3e, 0xbf, + 0x76, 0xaf, 0x41, 0x31, 0xc0, 0x4e, 0x48, 0xeb, 0xb9, 0x95, 0xfc, 0xf5, 0xea, 0xfa, 0x54, 0xa2, + 0xdd, 0xc3, 0x5d, 0xec, 0x84, 0xa6, 0xc4, 0x26, 0x46, 0x90, 0x3f, 0xdd, 0x08, 0x8c, 0x8f, 0x4a, + 0x30, 0xb5, 0x1b, 0x92, 0xa3, 0xd0, 0x61, 0xe4, 0x3c, 0xfa, 0xb8, 0x01, 0x95, 0x6e, 0x8f, 0x61, + 0xe6, 0xf8, 0x5e, 0xc4, 0x53, 0xd2, 0xd9, 0x03, 0x85, 0x31, 0x13, 0x1a, 0x74, 0x15, 0x26, 0x82, + 0xd0, 0xe9, 0xe2, 0xb0, 0x6f, 0xf1, 0x49, 0xa8, 0x8c, 0xaf, 0xaa, 0x60, 0xdb, 0xbe, 0x7d, 0x80, + 0x5e, 0x84, 0x49, 0xa9, 0xe3, 0xac, 0xda, 0x26, 0x04, 0xf0, 0x51, 0xa2, 0x3b, 0x5e, 0xdf, 0x62, + 0xcc, 0x15, 0xba, 0x2b, 0x98, 0x25, 0x5e, 0x6e, 0x32, 0x17, 0xad, 0xc3, 0x1c, 0x3d, 0x70, 0x02, + 0xcb, 0xf6, 0x3d, 0xca, 0x42, 0xec, 0x78, 0xcc, 0xb2, 0x3b, 0xc4, 0x3e, 0x50, 0x9a, 0x9c, 0xe1, + 0xc8, 0x8d, 0x18, 0xb7, 0xc1, 0x51, 0xe8, 0x7f, 0xc0, 0x4c, 0x40, 0x28, 0x75, 0xba, 0x0e, 0x65, + 0x8e, 0x6d, 0x61, 0x5b, 0x8e, 0xa8, 0xb4, 0x92, 0xbf, 0x5e, 0x5b, 0x5f, 0x8d, 0x47, 0x34, 0x20, + 0xaa, 0xb5, 0xdd, 0xa4, 0xce, 0x4d, 0x51, 0xc5, 0x44, 0xc1, 0x20, 0x88, 0x72, 0x5e, 0xd9, 0xb1, + 0x67, 0x51, 0xe7, 0xeb, 0x44, 0x98, 0x45, 0xc1, 0x2c, 0xb1, 0x63, 0xaf, 0xe1, 0x7c, 0x9d, 0x20, + 0x03, 0x26, 0xf7, 0xfd, 0xd0, 0xea, 0x05, 0x2d, 0xcc, 0x88, 0xc5, 0x68, 0xbd, 0x22, 0xf0, 0xd5, + 0x7d, 0x3f, 0x7c, 0x57, 0xc0, 0x9a, 0x94, 0xd3, 0x74, 0x1d, 0xcf, 0xb2, 0xfd, 0x6e, 0xd7, 0x61, + 0x9c, 0x06, 0x24, 0x4d, 0xd7, 0xf1, 0x36, 0x04, 0xac, 0x49, 0xd1, 0x75, 0xd0, 0x7b, 0x94, 0x58, + 0x98, 0xf6, 0x3d, 0x5b, 0x51, 0xd6, 0xab, 0x62, 0xb8, 0xb5, 0x1e, 0x25, 0x37, 0x39, 0x58, 0xd2, + 0xa2, 0x15, 0xa8, 0x52, 0x62, 0xfb, 0x5e, 0x0b, 0x87, 0x0e, 0xa1, 0xf5, 0x89, 0x95, 0x3c, 0x97, + 0x7f, 0x0a, 0x84, 0x2e, 0x03, 0xb0, 0x90, 0x4f, 0x0b, 0x62, 0x05, 0x76, 0x7d, 0x52, 0xfa, 0x00, + 0x16, 0xf6, 0x77, 0x3c, 0xb2, 0x6b, 0x0b, 0x6e, 0xf0, 0x71, 0x8a, 0x9b, 0x9a, 0xe2, 0x06, 0x1f, + 0xc7, 0xdc, 0xbc, 0x0d, 0x53, 0x98, 0x52, 0x12, 0xf2, 0xe1, 0x5b, 0x2e, 0x39, 0x24, 0x6e, 0x7d, + 0x6a, 0x45, 0xbb, 0x5e, 0x5b, 0x5f, 0x88, 0x25, 0x79, 0x33, 0xc2, 0x6f, 0x73, 0xb4, 0x59, 0xc3, + 0x99, 0x32, 0x72, 0x60, 0x31, 0x23, 0x97, 0x94, 0x32, 0x69, 0x5d, 0x17, 0x76, 0xb6, 0x76, 0xa2, + 0x56, 0xee, 0xc4, 0xc2, 0x6b, 0x24, 0x7a, 0x36, 0xe7, 0x53, 0x32, 0x4d, 0xc0, 0x74, 0x69, 0x0f, + 0xe6, 0x46, 0x56, 0xe0, 0xee, 0xc4, 0xf1, 0x5a, 0xe4, 0x58, 0xcc, 0x82, 0x49, 0x53, 0x16, 0xd0, + 0x6b, 0x30, 0x4f, 0x8e, 0x03, 0x62, 0x33, 0xd2, 0xb2, 0xb2, 0xaa, 0xcb, 0x09, 0x41, 0xcc, 0x44, + 0xd8, 0xa4, 0x51, 0x6a, 0xec, 0xc1, 0xf4, 0x90, 0xa9, 0xa0, 0x25, 0x98, 0x6f, 0xdc, 0xdf, 0xda, + 0xb5, 0x76, 0x6f, 0x37, 0x1a, 0x5b, 0x0f, 0xb6, 0x1a, 0xcd, 0xad, 0x0d, 0x6b, 0xe3, 0xde, 0xed, + 0x8d, 0xfb, 0xfa, 0x18, 0xaa, 0xc3, 0xec, 0xe6, 0xce, 0x08, 0x8c, 0x86, 0x16, 0x60, 0x66, 0x73, + 0xc7, 0xda, 0xd8, 0x79, 0xd8, 0x68, 0x9a, 0x37, 0xb7, 0x1e, 0x36, 0x15, 0x22, 0x67, 0xfc, 0x9b, + 0x06, 0x7a, 0x22, 0x89, 0xf3, 0xbb, 0x98, 0x4f, 0xc2, 0xb8, 0xc0, 0x0e, 0xcf, 0xe7, 0xd8, 0x79, + 0x28, 0x82, 0x61, 0xcb, 0xcc, 0x0f, 0x5b, 0xe6, 0xcb, 0xa0, 0x4b, 0x4b, 0x4a, 0x91, 0xc9, 0x09, + 0x3d, 0xe9, 0x73, 0x83, 0x8a, 0x09, 0x47, 0x2c, 0x2e, 0xc5, 0x27, 0x58, 0x5c, 0x8c, 0x1f, 0x16, + 0x60, 0x3e, 0x25, 0x64, 0xee, 0x4a, 0xfe, 0xab, 0x78, 0xb4, 0x21, 0x2f, 0x31, 0x3e, 0xd2, 0x4b, + 0x38, 0xd4, 0xda, 0x77, 0x42, 0xca, 0x24, 0x1f, 0x25, 0x31, 0x71, 0xab, 0x0e, 0xbd, 0xc3, 0x61, + 0x82, 0x8f, 0xab, 0x30, 0x71, 0x84, 0xb9, 0x0a, 0x9c, 0x2e, 0xf1, 0x7b, 0x4c, 0x38, 0xa3, 0xbc, + 0x59, 0xe5, 0xb0, 0xa6, 0x04, 0xa1, 0x3a, 0x14, 0xf7, 0xfd, 0xd0, 0x26, 0xc2, 0x11, 0x95, 0x6f, + 0xe5, 0xea, 0x9a, 0x29, 0x01, 0x7c, 0x10, 0x21, 0x61, 0xbd, 0xd0, 0xb3, 0xc4, 0x4e, 0x41, 0xba, + 0xa1, 0xb2, 0x39, 0x21, 0x81, 0x8f, 0x04, 0x6c, 0xd8, 0x22, 0xaa, 0xa3, 0x2c, 0x62, 0x4a, 0xf8, + 0x63, 0x8b, 0x1c, 0x3b, 0x94, 0x11, 0xcf, 0x26, 0xf5, 0x09, 0xe9, 0xaa, 0x04, 0xf8, 0x76, 0x04, + 0x45, 0xaf, 0xc0, 0x8c, 0x90, 0x08, 0x5f, 0xa0, 0x2d, 0x67, 0x5f, 0xd2, 0x53, 0xe5, 0x91, 0x74, + 0x8e, 0xe2, 0x6b, 0xf5, 0xd6, 0xbe, 0xa8, 0x41, 0xd1, 0x26, 0x1f, 0xdd, 0x01, 0xb1, 0x7a, 0x81, + 0xd5, 0xf5, 0x5b, 0x44, 0x38, 0xa6, 0xda, 0xba, 0x91, 0xb8, 0x89, 0xac, 0x71, 0xbc, 0x87, 0x0f, + 0xc8, 0xbb, 0xc1, 0x03, 0xbf, 0x45, 0x4c, 0x38, 0x8a, 0xff, 0x1b, 0xff, 0xa4, 0x41, 0x7d, 0x80, + 0xf2, 0x3e, 0xe9, 0x9b, 0x84, 0xf6, 0x5c, 0x86, 0x3e, 0x0f, 0x05, 0xd6, 0x0f, 0x88, 0xb0, 0xa2, + 0xda, 0xfa, 0xb5, 0x93, 0x9a, 0x8e, 0x2b, 0x34, 0xfb, 0x01, 0x31, 0x45, 0x95, 0x64, 0xbb, 0x95, + 0x4b, 0x6f, 0xb7, 0x2e, 0x43, 0x25, 0x91, 0x42, 0x5e, 0x0c, 0x2c, 0x01, 0xa0, 0x37, 0x60, 0x81, + 0x8f, 0x92, 0xb4, 0xac, 0x23, 0x87, 0x75, 0xb8, 0x0f, 0xdc, 0x77, 0x1d, 0x3b, 0x35, 0x85, 0x66, + 0x25, 0xfa, 0x3d, 0x87, 0x75, 0x36, 0x14, 0xb2, 0x49, 0xd1, 0x1a, 0x88, 0x35, 0xce, 0xe2, 0x5b, + 0x59, 0xf7, 0xd0, 0xf1, 0xda, 0xd2, 0x20, 0xe4, 0x7a, 0x30, 0xcd, 0x51, 0x66, 0x84, 0xe1, 0xdc, + 0x1a, 0xff, 0x98, 0x83, 0x85, 0xa1, 0x99, 0xf3, 0x5c, 0x1c, 0xc8, 0x32, 0x54, 0x06, 0x9c, 0x87, + 0xb0, 0xb8, 0xb2, 0x1d, 0xd9, 0x4a, 0x3d, 0x92, 0x1a, 0x1f, 0xef, 0x84, 0x34, 0x47, 0x29, 0xb9, + 0x79, 0x18, 0x57, 0x76, 0x58, 0x14, 0x4b, 0x98, 0x2a, 0xa1, 0x2b, 0x00, 0xf1, 0x06, 0x96, 0x4f, + 0x94, 0x3c, 0x17, 0x69, 0xb4, 0x83, 0x1d, 0xe9, 0x65, 0x4a, 0x4f, 0xe0, 0x65, 0xd0, 0x17, 0xf9, + 0xc6, 0x90, 0xab, 0x96, 0xd6, 0xcb, 0x62, 0x74, 0x57, 0x1f, 0x6b, 0x04, 0x66, 0x54, 0xc3, 0xf8, + 0xbe, 0x06, 0x4b, 0x29, 0x2a, 0xd3, 0x77, 0xdd, 0x3d, 0x7c, 0x3e, 0x37, 0x35, 0xe4, 0x52, 0x72, + 0x23, 0x5c, 0xca, 0x90, 0xdf, 0xc8, 0x0f, 0xfb, 0x0d, 0x04, 0x85, 0x03, 0xd2, 0xe7, 0x06, 0xc5, + 0xa5, 0x28, 0xfe, 0x1b, 0x7f, 0xa2, 0xc1, 0xa5, 0x91, 0x7c, 0x3e, 0x17, 0xa3, 0x18, 0xa1, 0xa2, + 0xfc, 0x93, 0x2c, 0x04, 0xbf, 0xa7, 0xc1, 0x4c, 0xf3, 0xd8, 0xbb, 0x47, 0x70, 0xc8, 0x6e, 0x11, + 0x7c, 0xae, 0x43, 0xdb, 0xa0, 0x53, 0xcf, 0x9d, 0xc1, 0xa9, 0xe7, 0x47, 0x68, 0xe0, 0x25, 0x98, + 0xc2, 0xad, 0x43, 0x87, 0x12, 0x2b, 0xf6, 0xed, 0x6a, 0xf1, 0x93, 0xe0, 0x6d, 0xe9, 0xe1, 0x8d, + 0x1f, 0x69, 0x30, 0x9b, 0xe5, 0xf9, 0x39, 0x9c, 0x00, 0xd3, 0x2b, 0x4e, 0x3e, 0xbb, 0xe2, 0x8c, + 0xd0, 0x41, 0xe1, 0x49, 0x74, 0xf0, 0xf7, 0x39, 0x98, 0x13, 0x3b, 0xeb, 0xe6, 0xb1, 0xd7, 0x60, + 0x98, 0xf5, 0xe8, 0x79, 0xb4, 0xb0, 0x0c, 0x91, 0xc4, 0x53, 0xe7, 0x3d, 0x50, 0x20, 0x7e, 0xe6, + 0x5a, 0x80, 0x92, 0x1c, 0x41, 0x64, 0xda, 0xe3, 0x62, 0x00, 0x94, 0xcb, 0xdd, 0xc6, 0xae, 0x4b, + 0x42, 0x4b, 0xea, 0x28, 0xd9, 0x74, 0x48, 0x70, 0x83, 0x43, 0x9b, 0xc2, 0x5b, 0xd8, 0xbd, 0x30, + 0x24, 0x9e, 0x20, 0x91, 0xcb, 0x6e, 0x45, 0x41, 0x9a, 0x14, 0xbd, 0x0a, 0x73, 0xa1, 0x32, 0x7e, + 0xbe, 0x00, 0x71, 0xc7, 0x22, 0xbc, 0xb3, 0x3a, 0x4a, 0xa0, 0x08, 0xb9, 0xb5, 0xff, 0xd0, 0x67, + 0x62, 0x19, 0x42, 0xab, 0x30, 0x2d, 0xd6, 0x4b, 0x2b, 0xbd, 0x15, 0x97, 0x6b, 0xf1, 0x94, 0x40, + 0x34, 0x92, 0xbd, 0xf8, 0x97, 0x60, 0x29, 0xf1, 0xd1, 0xe9, 0xf3, 0x87, 0xb0, 0xb9, 0xb2, 0xa8, + 0x54, 0x8f, 0x29, 0x06, 0xfc, 0x8b, 0xf1, 0xe3, 0x1c, 0xcc, 0x0f, 0xca, 0xf8, 0x17, 0x6b, 0x35, + 0xd7, 0xa0, 0xa6, 0xdc, 0x79, 0x76, 0xa3, 0x33, 0x29, 0xa1, 0xd1, 0xa4, 0x78, 0x19, 0xc6, 0xe5, + 0x01, 0x4b, 0x08, 0xbc, 0x96, 0x3a, 0xc5, 0xaa, 0x43, 0x94, 0x42, 0xa3, 0x35, 0xa8, 0x88, 0xae, + 0x1c, 0x6f, 0xdf, 0x57, 0x91, 0x86, 0x84, 0x2f, 0x2e, 0x83, 0x2d, 0x6f, 0xdf, 0x37, 0x05, 0x3b, + 0xfc, 0xdf, 0xd3, 0x3a, 0x77, 0xe3, 0x43, 0x0d, 0x96, 0x84, 0x44, 0x1b, 0xea, 0x38, 0x24, 0x66, + 0xfa, 0xb9, 0x4c, 0x37, 0x72, 0xab, 0xb9, 0xc4, 0xad, 0x9e, 0xc9, 0x63, 0x18, 0xff, 0xae, 0xc1, + 0xa5, 0x91, 0x3c, 0x3c, 0x07, 0xd5, 0xbe, 0x0c, 0x45, 0x2e, 0x4b, 0x3e, 0x99, 0xf2, 0xa3, 0x65, + 0x2d, 0xf1, 0xe8, 0x52, 0x7a, 0xdd, 0x96, 0x3a, 0x4e, 0xd6, 0xec, 0xa7, 0xdd, 0xc8, 0xff, 0x40, + 0x83, 0x49, 0x39, 0x41, 0x9e, 0xd9, 0xc2, 0x18, 0x69, 0x27, 0x9f, 0xd2, 0xce, 0xd9, 0x8c, 0x57, + 0xc6, 0xb0, 0xcc, 0xf1, 0x3d, 0xc7, 0x73, 0xfd, 0xb6, 0xf1, 0x57, 0x1a, 0xd4, 0x22, 0x5e, 0x9f, + 0x83, 0x82, 0x86, 0x79, 0xcc, 0x8f, 0x9a, 0x60, 0x4f, 0xeb, 0xbd, 0xdb, 0x30, 0xb9, 0xd5, 0x0d, + 0xfc, 0x30, 0x56, 0x40, 0xe6, 0x50, 0xa4, 0x9d, 0xe1, 0x50, 0x34, 0xcc, 0x68, 0x6e, 0x04, 0xa3, + 0xc6, 0xfb, 0x50, 0x8b, 0x3a, 0x3a, 0xbf, 0xf4, 0x66, 0xd3, 0xd2, 0xab, 0x44, 0x91, 0xad, 0x6f, + 0x71, 0xcd, 0xb8, 0x04, 0x7b, 0xbd, 0xe0, 0x62, 0xa2, 0xb6, 0x67, 0x5a, 0xef, 0xb3, 0xeb, 0x49, + 0x61, 0x60, 0x3d, 0x31, 0xbe, 0xad, 0xc1, 0x54, 0xcc, 0xd4, 0x2f, 0x8d, 0xbd, 0x18, 0x07, 0x30, + 0x75, 0x0b, 0x33, 0xbb, 0x73, 0xce, 0x08, 0xf7, 0x28, 0x5f, 0x77, 0x72, 0x8c, 0xfb, 0x6f, 0x35, + 0xd0, 0x93, 0xde, 0x9e, 0x79, 0x28, 0xf4, 0x29, 0xe7, 0x42, 0x22, 0xeb, 0xe2, 0xe9, 0xb2, 0x7e, + 0xa7, 0x50, 0xce, 0xeb, 0x05, 0xe3, 0x7f, 0xc1, 0xac, 0x18, 0xdc, 0x33, 0xdf, 0xdb, 0x8f, 0x70, + 0x61, 0xc6, 0x1f, 0x68, 0x30, 0x37, 0xd0, 0xfb, 0x73, 0x30, 0xb2, 0xa7, 0xdd, 0xaf, 0xff, 0xae, + 0x06, 0x53, 0x0d, 0x1b, 0x7b, 0xe7, 0x8d, 0xd8, 0x2c, 0x43, 0xb5, 0x8b, 0x8f, 0x07, 0x84, 0x05, + 0x5d, 0x7c, 0x1c, 0x89, 0x2a, 0x73, 0x69, 0x90, 0x3f, 0xe9, 0xd2, 0xa0, 0x90, 0xbe, 0x34, 0x48, + 0x45, 0xf9, 0x8b, 0xe9, 0x28, 0xbf, 0xf1, 0x53, 0x0d, 0xf4, 0x84, 0xd9, 0x5f, 0xa6, 0x35, 0xf9, + 0x69, 0x9d, 0xfe, 0x8f, 0x35, 0x40, 0x32, 0x2e, 0x40, 0xce, 0xab, 0x89, 0x33, 0x19, 0xee, 0x19, + 0xd7, 0xb0, 0x57, 0xa0, 0xc2, 0x8e, 0x3d, 0xb1, 0xf5, 0x93, 0x87, 0xd3, 0x74, 0xcf, 0xcd, 0x63, + 0x4f, 0x6e, 0xfd, 0x98, 0xfc, 0x93, 0x1c, 0x63, 0x8b, 0xa9, 0xe9, 0xc0, 0x0f, 0x82, 0x99, 0x11, + 0xfd, 0x27, 0x98, 0x0c, 0x8f, 0xa0, 0x72, 0x77, 0xe3, 0x3c, 0xb2, 0xbf, 0x02, 0x40, 0xf1, 0x3e, + 0xb1, 0x02, 0xdf, 0xf1, 0x98, 0x12, 0x7c, 0x85, 0x43, 0x76, 0x39, 0xc0, 0xe8, 0x00, 0xf0, 0x76, + 0x9f, 0xbd, 0x04, 0x8c, 0xef, 0x68, 0x80, 0x36, 0x89, 0x4b, 0x18, 0x31, 0xb1, 0xd7, 0x26, 0x17, + 0x7e, 0xcb, 0x97, 0x9a, 0x9a, 0xf9, 0xc1, 0x0b, 0x38, 0xcf, 0x67, 0xce, 0xbe, 0xba, 0xd1, 0x93, + 0x97, 0x97, 0x20, 0x41, 0x3b, 0x9e, 0xdb, 0x37, 0xbe, 0x0a, 0x33, 0x19, 0xc6, 0x2e, 0x7a, 0xcb, + 0xf1, 0x47, 0x1a, 0xac, 0xec, 0x86, 0x24, 0xc0, 0x21, 0xb9, 0xe3, 0x62, 0xda, 0xe1, 0x1e, 0xb8, + 0xe9, 0x2b, 0x83, 0x7e, 0x7e, 0x72, 0x58, 0x84, 0xf2, 0xc0, 0xa1, 0xb7, 0x44, 0xd5, 0x71, 0x37, + 0xb5, 0x2a, 0x17, 0xb3, 0xab, 0xb2, 0x0b, 0x57, 0x4f, 0x61, 0xfd, 0xa2, 0x25, 0xf5, 0x63, 0x0d, + 0x16, 0x2f, 0x46, 0x44, 0xa9, 0x11, 0xe5, 0xb2, 0xb7, 0xbb, 0xa7, 0x7a, 0xfd, 0x94, 0xf0, 0x0a, + 0x27, 0x0a, 0xaf, 0x98, 0x15, 0x5e, 0xe6, 0xd0, 0x33, 0x9e, 0x3d, 0xf4, 0x18, 0x04, 0x96, 0x9e, + 0x87, 0xe0, 0xbe, 0x02, 0x93, 0x26, 0x3e, 0xba, 0xb0, 0x4c, 0x84, 0x1a, 0xe4, 0xec, 0x7d, 0x21, + 0x9c, 0x8a, 0x99, 0xb3, 0xf7, 0x8d, 0x5f, 0xd5, 0xa0, 0x16, 0xb5, 0x7f, 0xc1, 0xac, 0x9f, 0x23, + 0xdf, 0xc0, 0x68, 0x01, 0x32, 0xf1, 0xd1, 0x45, 0x6f, 0x4d, 0x07, 0x07, 0xed, 0xc3, 0x4c, 0xa6, + 0x97, 0x67, 0xbd, 0x25, 0x35, 0x7e, 0x4b, 0x13, 0x5a, 0xdc, 0xed, 0x5d, 0x90, 0x16, 0x47, 0x4b, + 0x56, 0x0e, 0xb3, 0x10, 0x0d, 0x93, 0xd7, 0x4b, 0xae, 0x96, 0xf8, 0x5f, 0x3e, 0x09, 0xf6, 0xfd, + 0xd0, 0xb2, 0x31, 0x55, 0xf1, 0xac, 0xf1, 0x7d, 0x3f, 0xdc, 0xc0, 0x94, 0x1f, 0xcb, 0x22, 0xfe, + 0x2e, 0xda, 0x80, 0xff, 0x58, 0x4b, 0x74, 0x7a, 0x4e, 0x01, 0x9c, 0x71, 0xe3, 0x3f, 0xa0, 0x66, + 0x34, 0x2b, 0xc7, 0x5f, 0x88, 0x6f, 0x19, 0x06, 0x65, 0x50, 0x4c, 0xcb, 0x80, 0x5b, 0x0e, 0x63, + 0xae, 0xbc, 0x41, 0x28, 0x98, 0xe2, 0x3f, 0x5f, 0x40, 0x32, 0xbc, 0x5f, 0xb4, 0x70, 0xfa, 0xa0, + 0x9b, 0xf8, 0x48, 0xad, 0x51, 0xcf, 0x62, 0x82, 0xa7, 0x87, 0x5b, 0xc8, 0xa8, 0xfc, 0x7f, 0xc2, + 0x74, 0xaa, 0xeb, 0x8b, 0x1e, 0xd8, 0xff, 0xd1, 0x60, 0x2e, 0x92, 0xdc, 0xf9, 0x87, 0x77, 0x86, + 0xc9, 0x7c, 0xf2, 0x00, 0x31, 0xcc, 0x0f, 0x72, 0x70, 0xd1, 0xa3, 0xfc, 0x91, 0xf4, 0x9e, 0xcf, + 0x31, 0xb7, 0x29, 0x9d, 0xc1, 0x54, 0xc8, 0x66, 0x30, 0x49, 0xc1, 0x14, 0x63, 0xc1, 0x3c, 0x79, + 0x46, 0x93, 0xd1, 0x86, 0xa9, 0x78, 0x38, 0xe7, 0x97, 0xd5, 0x55, 0xc8, 0x1f, 0x1c, 0x9e, 0x38, + 0x59, 0x39, 0xce, 0xf8, 0x86, 0x34, 0x8f, 0x5f, 0xc8, 0xae, 0x71, 0xc0, 0x4d, 0x2a, 0x3b, 0x79, + 0xa6, 0xfb, 0xc4, 0x9f, 0x68, 0x89, 0x1f, 0x39, 0xaf, 0xb1, 0x7c, 0x12, 0xc6, 0x43, 0xce, 0xdd, + 0xc8, 0xfb, 0x34, 0xc9, 0xb7, 0x22, 0xe0, 0x27, 0x03, 0x82, 0xed, 0x8e, 0x95, 0xb6, 0x9f, 0x0a, + 0x87, 0x6c, 0x5f, 0x98, 0x0d, 0x19, 0x2e, 0xcc, 0x66, 0x47, 0xf4, 0x4c, 0xed, 0xe5, 0x7f, 0xc3, + 0xe2, 0xbb, 0x1e, 0x3f, 0xdb, 0x6c, 0x12, 0xca, 0x42, 0xbf, 0xff, 0x7c, 0x4d, 0x86, 0xef, 0xf5, + 0x46, 0x75, 0x7f, 0xd1, 0x66, 0xf2, 0x35, 0xb8, 0x64, 0x92, 0xb6, 0x43, 0x19, 0x09, 0xf9, 0xf1, + 0x75, 0x67, 0x8f, 0x92, 0xf0, 0x90, 0x84, 0xe7, 0x19, 0xe7, 0x1c, 0x8c, 0x77, 0xf1, 0x71, 0x92, + 0xa4, 0x54, 0xec, 0xe2, 0xe3, 0x26, 0x35, 0x5e, 0x87, 0xcb, 0xa3, 0x7b, 0x50, 0x43, 0x89, 0xf9, + 0xd2, 0xb2, 0x7b, 0xd0, 0xba, 0xb8, 0xa0, 0x78, 0x46, 0x4c, 0xf5, 0x60, 0x71, 0x44, 0xf3, 0xa7, + 0x71, 0xc4, 0x4d, 0xd8, 0xa1, 0x96, 0xed, 0x12, 0x2c, 0x4f, 0x01, 0x65, 0xb3, 0xe4, 0x50, 0x11, + 0x67, 0x3d, 0x73, 0xf8, 0xc4, 0xf8, 0x2a, 0x2c, 0x9a, 0xa4, 0xeb, 0xcb, 0x50, 0xc1, 0x33, 0x18, + 0xd6, 0x3a, 0x2c, 0x8d, 0x6a, 0xff, 0x54, 0x49, 0xff, 0x9a, 0x06, 0x0b, 0xbb, 0x9d, 0x3e, 0x75, + 0x6c, 0xec, 0x3e, 0x4d, 0x84, 0x6c, 0x34, 0x4b, 0xe7, 0x88, 0x8b, 0x19, 0xef, 0x43, 0x7d, 0x98, + 0xa1, 0x53, 0x75, 0x13, 0x2b, 0x20, 0xf7, 0x18, 0x05, 0x7c, 0x4f, 0x03, 0xd4, 0x08, 0x5c, 0x87, + 0x99, 0x62, 0x66, 0x9c, 0x2f, 0x12, 0x58, 0xa1, 0xbc, 0x85, 0x64, 0x3a, 0xcb, 0x74, 0x12, 0x01, + 0xe4, 0x83, 0xba, 0x02, 0x10, 0x13, 0x44, 0xa1, 0xd3, 0x4a, 0x84, 0xa5, 0x68, 0x09, 0x2a, 0x0e, + 0xb5, 0x42, 0x7c, 0x64, 0x1d, 0x1c, 0x46, 0xbe, 0xd0, 0xa1, 0x26, 0x3e, 0xba, 0x7f, 0x68, 0xfc, + 0x50, 0x83, 0x99, 0x0c, 0x7b, 0xe7, 0x9f, 0xee, 0x2f, 0x41, 0xc1, 0x25, 0xfb, 0x4c, 0x45, 0x52, + 0x6a, 0x6b, 0x2a, 0xab, 0x5d, 0x36, 0x2c, 0x38, 0x16, 0x78, 0x74, 0x1d, 0x8a, 0xa1, 0xd3, 0xee, + 0x30, 0x15, 0x41, 0x1a, 0x45, 0x28, 0x09, 0xd0, 0x75, 0xee, 0x98, 0xdb, 0xe2, 0x76, 0x46, 0x86, + 0xca, 0x06, 0x68, 0xcd, 0x08, 0x6d, 0xfc, 0x3f, 0x0d, 0x74, 0x93, 0xe0, 0xd6, 0x96, 0xd7, 0x22, + 0xc7, 0xe7, 0x91, 0x71, 0xfa, 0x80, 0x9c, 0xcb, 0x1e, 0x90, 0x93, 0x35, 0x29, 0xff, 0x98, 0x35, + 0xc9, 0xf8, 0x75, 0x0d, 0xa6, 0x53, 0x6c, 0x9c, 0x5f, 0x96, 0x57, 0x00, 0x42, 0x82, 0x5b, 0x96, + 0xcc, 0xd4, 0x54, 0x61, 0xaf, 0x30, 0x6a, 0x99, 0xb3, 0x24, 0x53, 0xa4, 0x86, 0x32, 0xa1, 0x63, + 0xf3, 0x53, 0x04, 0x46, 0x03, 0x66, 0x1e, 0x1c, 0xda, 0xf6, 0x5d, 0xc2, 0x6e, 0xf5, 0x45, 0xee, + 0xce, 0x05, 0xec, 0xbf, 0x8d, 0x5f, 0xd1, 0x60, 0x36, 0xdb, 0xea, 0x45, 0x1f, 0xab, 0xaf, 0x41, + 0x41, 0x5c, 0x8f, 0x0f, 0x8e, 0x8f, 0xf7, 0x2a, 0xc6, 0x27, 0xd0, 0xc6, 0xd7, 0x60, 0x21, 0xe6, + 0x43, 0x25, 0x3f, 0x5c, 0xac, 0xf6, 0xf9, 0xfc, 0xad, 0x0f, 0x77, 0x71, 0xd1, 0xc3, 0x55, 0x22, + 0xce, 0x27, 0x47, 0x9c, 0x48, 0x00, 0x85, 0xd3, 0x05, 0xf0, 0xfb, 0x15, 0x28, 0x6d, 0x24, 0xcb, + 0xbe, 0xe2, 0xc6, 0x69, 0x09, 0x56, 0x0a, 0x66, 0x59, 0x02, 0xb6, 0x5a, 0xe8, 0xcd, 0x84, 0xd5, + 0xc0, 0xb7, 0x3b, 0x6a, 0x96, 0xce, 0x64, 0x27, 0xd4, 0x6d, 0x8e, 0x8a, 0xf9, 0xe5, 0x05, 0xb4, + 0x02, 0x85, 0x80, 0x90, 0x28, 0xe5, 0x7e, 0x22, 0xa2, 0xdf, 0x25, 0x24, 0x34, 0x05, 0x46, 0x1c, + 0x29, 0x49, 0xd8, 0x55, 0x47, 0x70, 0xf1, 0x1f, 0xdd, 0x80, 0x72, 0x10, 0x3a, 0x7e, 0xe8, 0xb0, + 0xbe, 0xd8, 0x53, 0xd5, 0xd6, 0x67, 0x52, 0xd2, 0xef, 0x76, 0xb1, 0xd7, 0xda, 0x0d, 0x1d, 0x33, + 0x26, 0x42, 0x6f, 0xc3, 0x94, 0x43, 0x7d, 0x17, 0xa7, 0x72, 0xab, 0x4b, 0x03, 0xb9, 0xd5, 0x5b, + 0x11, 0x5e, 0xe5, 0x56, 0x3b, 0x99, 0x32, 0xfa, 0x04, 0xd4, 0x44, 0xc8, 0xc5, 0x71, 0x5d, 0xcb, + 0xc6, 0x76, 0x87, 0xa8, 0x4c, 0x93, 0x09, 0xcf, 0x67, 0x77, 0x1c, 0xd7, 0xdd, 0xe0, 0x30, 0xa1, + 0xe9, 0xbe, 0x67, 0x5b, 0xae, 0xdf, 0x96, 0xb9, 0xa0, 0x66, 0x89, 0x97, 0xb7, 0xfd, 0x36, 0xba, + 0x0e, 0x7a, 0x48, 0x6c, 0x3f, 0x6c, 0x89, 0x44, 0x52, 0x8b, 0x32, 0xcc, 0x54, 0x32, 0x68, 0x4d, + 0xc2, 0x9b, 0x4e, 0x97, 0x34, 0x18, 0x66, 0x29, 0x4a, 0x6a, 0x63, 0x4f, 0x52, 0x56, 0xd3, 0x94, + 0x7c, 0x11, 0x11, 0x94, 0x57, 0xb9, 0xd4, 0x03, 0xd7, 0xb1, 0xb1, 0xc5, 0x67, 0xaf, 0xca, 0x08, + 0xad, 0x2a, 0x18, 0x77, 0x15, 0xe8, 0x1a, 0xd4, 0x64, 0x2e, 0x0c, 0x69, 0x59, 0x72, 0x49, 0x99, + 0x14, 0x67, 0xf3, 0xc9, 0x08, 0x2a, 0x12, 0x25, 0xd0, 0xe7, 0x61, 0x91, 0x2f, 0x76, 0xe4, 0x98, + 0xd8, 0x3d, 0x21, 0xa4, 0x56, 0x2f, 0x94, 0xd2, 0xea, 0x46, 0xc9, 0xea, 0xf3, 0x5d, 0x7c, 0x7c, + 0x3b, 0xc2, 0x6f, 0x2a, 0xf4, 0x03, 0x91, 0xa0, 0x81, 0x83, 0xc0, 0x75, 0x48, 0xe4, 0x4f, 0xa6, + 0xe4, 0xfd, 0x85, 0x02, 0x4a, 0x97, 0xb2, 0x00, 0x25, 0x86, 0xe9, 0x01, 0x37, 0x1d, 0x5d, 0xe6, + 0x1c, 0xf1, 0xe2, 0x56, 0x4b, 0x2c, 0x2e, 0x0c, 0xbb, 0x44, 0x0e, 0x60, 0x5a, 0x26, 0x73, 0x0a, + 0x88, 0x60, 0xff, 0xd3, 0x80, 0xe2, 0xb7, 0x45, 0xed, 0xd0, 0xef, 0x05, 0x16, 0xc3, 0xed, 0x3a, + 0x12, 0x86, 0xac, 0x47, 0x98, 0xbb, 0x1c, 0xd1, 0xc4, 0x6d, 0xf4, 0x39, 0x98, 0x6c, 0x39, 0xf4, + 0xc0, 0xda, 0xef, 0xb9, 0xae, 0xe5, 0x07, 0xac, 0x3e, 0x23, 0x94, 0x3c, 0x1b, 0x2b, 0x79, 0xd3, + 0xa1, 0x07, 0x77, 0x7a, 0xae, 0xbb, 0x13, 0x30, 0xb3, 0xda, 0x4a, 0x0a, 0x5c, 0xe6, 0x7c, 0x11, + 0x23, 0x2c, 0xec, 0x5b, 0xa1, 0x9c, 0xe2, 0xf5, 0x59, 0x29, 0x73, 0x87, 0x9a, 0x1c, 0x1c, 0x4d, + 0xfc, 0xd7, 0xa1, 0x8a, 0x03, 0x27, 0xbe, 0x86, 0x99, 0x1b, 0x30, 0xbf, 0x9b, 0xbb, 0x5b, 0x51, + 0x1c, 0x13, 0x70, 0xe0, 0x24, 0xd9, 0x3b, 0x53, 0x32, 0xea, 0xc9, 0x62, 0x3d, 0xcc, 0x0b, 0x3d, + 0xd4, 0x62, 0xb0, 0x54, 0xc4, 0x17, 0x40, 0xbe, 0xad, 0xb2, 0x22, 0xef, 0xb2, 0x20, 0x66, 0xc6, + 0xdc, 0x5a, 0xf4, 0xe2, 0xaa, 0xc9, 0x7f, 0x23, 0x17, 0x33, 0xc1, 0x52, 0x25, 0xa9, 0x6b, 0xc1, + 0xa5, 0x25, 0x05, 0x53, 0xaf, 0x0b, 0x2f, 0x30, 0xa9, 0xa0, 0x0d, 0x01, 0xe4, 0x22, 0x17, 0x2f, + 0x2b, 0x24, 0xc9, 0xa2, 0xf4, 0xfe, 0xec, 0xd8, 0x53, 0xe8, 0x55, 0x98, 0xde, 0xeb, 0xd1, 0xbe, + 0xc5, 0x3a, 0x21, 0xa1, 0x1d, 0xdf, 0x6d, 0x71, 0x13, 0xb8, 0x24, 0xf6, 0x33, 0x53, 0x1c, 0xd1, + 0x8c, 0xe0, 0x0f, 0x28, 0x7a, 0x1f, 0xea, 0xb1, 0x7a, 0x38, 0xc3, 0xa1, 0xef, 0xc6, 0x8c, 0x5f, + 0x16, 0x8c, 0x2f, 0xc7, 0x92, 0x31, 0x15, 0xe1, 0x86, 0xa4, 0x8b, 0x86, 0x10, 0xbf, 0x1d, 0xcb, + 0xc2, 0xd1, 0x32, 0x54, 0xf9, 0x7e, 0x23, 0xe0, 0xb2, 0x70, 0x5a, 0xf5, 0x15, 0xf9, 0x32, 0x28, + 0x02, 0x6d, 0xb5, 0xde, 0x29, 0x94, 0x0b, 0x7a, 0xf1, 0x9d, 0x42, 0x79, 0x49, 0xbf, 0xc4, 0x4d, + 0x1e, 0xb7, 0xac, 0x0f, 0x7a, 0x7e, 0xd8, 0xeb, 0x1a, 0x1f, 0x6a, 0x30, 0x3f, 0xba, 0x33, 0xb4, + 0x06, 0x33, 0x03, 0xe6, 0xe4, 0xe1, 0x2e, 0x51, 0x7b, 0xaf, 0xe9, 0x8c, 0x3d, 0x3d, 0xc4, 0x5d, + 0x82, 0x3e, 0x0b, 0xa5, 0x80, 0x78, 0xd8, 0x65, 0x7d, 0xe5, 0xd1, 0xae, 0xac, 0x0d, 0x3d, 0x75, + 0xdb, 0xf0, 0x3d, 0xda, 0xeb, 0x06, 0x22, 0x99, 0x23, 0xa2, 0x36, 0xbe, 0x9b, 0x87, 0x72, 0xb4, + 0x58, 0x0e, 0xe5, 0x45, 0x6a, 0xc3, 0x79, 0x91, 0x57, 0x61, 0x42, 0x24, 0x6d, 0x65, 0xc3, 0xf2, + 0x55, 0x0e, 0x8b, 0x4c, 0x68, 0xd8, 0x89, 0xa7, 0x93, 0xca, 0x0a, 0xd9, 0xa4, 0xb2, 0xf4, 0xeb, + 0x99, 0x62, 0xf6, 0xf5, 0xcc, 0x75, 0x95, 0x1f, 0x26, 0x72, 0xb2, 0xa5, 0xf7, 0xac, 0xc6, 0x4a, + 0xda, 0x09, 0x64, 0x66, 0x58, 0xb3, 0x1f, 0x10, 0xf4, 0x29, 0x40, 0x82, 0x32, 0x9b, 0x0e, 0x5b, + 0x12, 0xcd, 0x4d, 0x71, 0x4c, 0xea, 0xb5, 0xc6, 0xc8, 0xc7, 0x34, 0xe5, 0x91, 0x8f, 0x69, 0x86, + 0xd2, 0xdd, 0x2b, 0xc3, 0xe9, 0xee, 0x03, 0x0f, 0x6e, 0x60, 0xf8, 0xc1, 0xcd, 0x17, 0x60, 0x29, + 0xf6, 0x51, 0xcc, 0xb7, 0x5c, 0x4c, 0x59, 0xc4, 0x64, 0x37, 0xca, 0xa0, 0x9f, 0x8f, 0x28, 0x9a, + 0xfe, 0x36, 0xa6, 0x4c, 0xf2, 0xfa, 0x80, 0x1a, 0xdf, 0x29, 0x40, 0x39, 0xba, 0x81, 0x4b, 0xed, + 0x76, 0xb4, 0xc7, 0xec, 0x76, 0xd0, 0x65, 0xbe, 0x04, 0xb2, 0xb0, 0x8f, 0xf7, 0x5c, 0xa2, 0x56, + 0xd8, 0x04, 0xc0, 0xd7, 0x5e, 0xbc, 0xe7, 0x87, 0x4c, 0x05, 0xd6, 0x64, 0x01, 0xad, 0x43, 0x39, + 0x4a, 0x41, 0x1f, 0xba, 0x5a, 0x7e, 0x2f, 0x74, 0x18, 0x89, 0x72, 0xd0, 0xcd, 0x98, 0x8e, 0x3b, + 0x01, 0xec, 0x72, 0x93, 0xee, 0xab, 0xcc, 0xc9, 0xa2, 0x72, 0x02, 0xb1, 0x97, 0x91, 0x58, 0x91, + 0x3c, 0x69, 0x4e, 0xe0, 0x54, 0x09, 0xbd, 0x02, 0xe5, 0xe8, 0xb1, 0xe6, 0x50, 0xf6, 0xdf, 0xa6, + 0x42, 0x98, 0x31, 0x09, 0xda, 0x84, 0xe9, 0x58, 0x11, 0x16, 0x39, 0x0e, 0x9c, 0x90, 0xb4, 0x54, + 0xfe, 0x5f, 0x3d, 0xb3, 0xa6, 0x72, 0xb5, 0xdc, 0x96, 0x78, 0x73, 0xca, 0xce, 0x02, 0xb8, 0xe3, + 0xe5, 0xe6, 0x96, 0x5c, 0x4a, 0x94, 0x45, 0x0b, 0xb3, 0xe9, 0xbb, 0xe7, 0x87, 0xea, 0x82, 0xc2, + 0xac, 0xb2, 0xa4, 0x80, 0xee, 0xc1, 0x4c, 0xd2, 0x3f, 0xf3, 0xb9, 0x22, 0xc3, 0xb6, 0x7c, 0x48, + 0x51, 0x5d, 0x5f, 0x1c, 0xe2, 0xa0, 0xe9, 0xfb, 0xdb, 0x9c, 0xc0, 0xd4, 0xed, 0x01, 0x08, 0xda, + 0x00, 0x3d, 0x79, 0x3f, 0xb5, 0x8f, 0x1d, 0x97, 0xb4, 0xc4, 0x02, 0x9b, 0x1e, 0x48, 0xfc, 0x80, + 0xea, 0x8e, 0xc0, 0x9b, 0xc9, 0x8b, 0x2b, 0x09, 0x30, 0xfe, 0x3a, 0x07, 0x93, 0x19, 0xad, 0x64, + 0x36, 0x6f, 0x5a, 0x76, 0xeb, 0xbe, 0x0c, 0xd5, 0xf4, 0xeb, 0x02, 0x95, 0x43, 0x61, 0x27, 0x6f, + 0x0a, 0x86, 0xa7, 0x6c, 0x1d, 0x4a, 0x6a, 0xda, 0xab, 0x2b, 0xb4, 0xa8, 0xc8, 0x57, 0xba, 0xb8, + 0xb1, 0x64, 0x6a, 0xc8, 0xb9, 0xab, 0x47, 0x98, 0x78, 0x7e, 0xbc, 0x01, 0xe3, 0x21, 0xc1, 0xd4, + 0xf7, 0xd4, 0x0c, 0xbe, 0x32, 0xda, 0xa6, 0xd6, 0x4c, 0x41, 0x64, 0x2a, 0x62, 0xe3, 0x08, 0xc6, + 0x25, 0x04, 0x55, 0xa1, 0xf4, 0xae, 0x77, 0xe0, 0xf9, 0x47, 0x9e, 0x3e, 0x86, 0x6a, 0x00, 0x3b, + 0x01, 0x53, 0x69, 0xb2, 0xba, 0x86, 0x66, 0x41, 0x4f, 0x67, 0xb2, 0x73, 0x0b, 0xd7, 0x73, 0x08, + 0x41, 0xad, 0x41, 0xdc, 0x7d, 0xd3, 0x77, 0x5d, 0xd2, 0xba, 0x85, 0xed, 0x03, 0x3d, 0x8f, 0x26, + 0xa1, 0x62, 0xda, 0x32, 0x9f, 0x96, 0xea, 0x05, 0xb4, 0x00, 0x33, 0xdb, 0xf8, 0xeb, 0xfd, 0x77, + 0x3d, 0xe7, 0x83, 0x1e, 0xf1, 0x08, 0xa5, 0x02, 0xa5, 0x17, 0x8d, 0x15, 0x98, 0x48, 0xdb, 0x6c, + 0x24, 0x19, 0x2d, 0xd9, 0xf4, 0xff, 0xb6, 0x06, 0xe5, 0xc8, 0x3e, 0xd3, 0x29, 0xca, 0x5a, 0x26, + 0x45, 0x39, 0x72, 0x79, 0xc9, 0x89, 0x41, 0x10, 0xf2, 0x63, 0xea, 0x2a, 0x4c, 0x47, 0x56, 0xcd, + 0xd1, 0x56, 0x07, 0xd3, 0x8e, 0xca, 0x92, 0x98, 0x8a, 0x10, 0xf7, 0x49, 0xff, 0x1e, 0xa6, 0x1d, + 0xf4, 0x06, 0x80, 0x78, 0xd3, 0x63, 0x77, 0xb0, 0xe3, 0xa9, 0xd3, 0xdf, 0xfc, 0x5a, 0xfc, 0xc8, + 0xf9, 0x3d, 0xec, 0xb0, 0x3b, 0x7e, 0x78, 0xdb, 0xe3, 0xeb, 0x7e, 0x85, 0x53, 0x6e, 0x70, 0x42, + 0xe3, 0x5b, 0x1a, 0x4c, 0x0d, 0xcc, 0x85, 0xd3, 0xec, 0x63, 0x0d, 0x66, 0x30, 0x63, 0xa4, 0x1b, + 0xf0, 0x45, 0x3f, 0xd1, 0xa9, 0xb4, 0x93, 0xe9, 0x18, 0x15, 0x2b, 0x75, 0xd8, 0x5c, 0x86, 0x5c, + 0x65, 0x61, 0xc8, 0x55, 0x1a, 0x5b, 0x50, 0x4d, 0xcd, 0xae, 0xc7, 0xd8, 0xeb, 0xa9, 0x99, 0xe1, + 0xc6, 0x0d, 0xd0, 0x07, 0x27, 0x5a, 0xf6, 0x02, 0x57, 0x1b, 0xb8, 0xc0, 0xfd, 0x0b, 0x0d, 0xa6, + 0x06, 0xe6, 0xd4, 0x69, 0x0c, 0x0c, 0x5f, 0xb5, 0x7c, 0x06, 0x2a, 0xf1, 0x14, 0x14, 0x03, 0xaf, + 0xad, 0xa3, 0xe1, 0xd9, 0x6a, 0x26, 0x44, 0x5c, 0xcd, 0xc2, 0x27, 0x3a, 0x5e, 0x7b, 0x30, 0x4d, + 0x7d, 0x2a, 0x42, 0x44, 0x89, 0xea, 0x9f, 0x06, 0x14, 0xd3, 0x0e, 0xcd, 0xa9, 0x08, 0x13, 0x0b, + 0xf2, 0x2f, 0x35, 0x00, 0xbe, 0x09, 0x97, 0x79, 0x25, 0xe8, 0x93, 0x30, 0x2d, 0x6c, 0xe4, 0x08, + 0xbb, 0xae, 0xdc, 0xb3, 0x77, 0xa3, 0x01, 0xd5, 0x38, 0xe2, 0x3d, 0xec, 0xba, 0x9c, 0xfc, 0x01, + 0x45, 0x37, 0x60, 0x36, 0x08, 0x7d, 0x9b, 0x50, 0x9a, 0xa5, 0x56, 0x9a, 0x56, 0xb8, 0x54, 0x85, + 0x35, 0x98, 0x3d, 0x38, 0x14, 0x5b, 0xde, 0x6c, 0x05, 0x69, 0xae, 0xfa, 0xc1, 0x21, 0xdf, 0xfc, + 0xa6, 0xe8, 0xd7, 0x61, 0x9e, 0xf9, 0x0c, 0xbb, 0x56, 0x18, 0xd8, 0xa9, 0x1a, 0x5e, 0x34, 0x72, + 0x24, 0xb0, 0x66, 0x60, 0x47, 0x75, 0x1e, 0x52, 0xe3, 0x9b, 0x39, 0x98, 0x48, 0x86, 0xf3, 0x68, + 0x7d, 0xc4, 0x80, 0xbc, 0x91, 0x03, 0x7a, 0x78, 0xc2, 0x80, 0xbc, 0x93, 0x06, 0xf4, 0x90, 0xa2, + 0xb7, 0xe0, 0x72, 0x54, 0x81, 0xf6, 0x68, 0x40, 0xbc, 0x56, 0xb6, 0xa2, 0x1c, 0x58, 0x5d, 0xd1, + 0x34, 0x24, 0x49, 0xaa, 0xfe, 0x48, 0x81, 0xc4, 0xc3, 0x1b, 0x10, 0xc8, 0xc3, 0xd3, 0x04, 0x52, + 0x3c, 0x51, 0x20, 0x5f, 0x81, 0x32, 0x3f, 0x39, 0x89, 0x2d, 0xd9, 0x2c, 0x14, 0x05, 0x85, 0x18, + 0x7f, 0xde, 0x94, 0x05, 0xbe, 0xbe, 0x2b, 0x0e, 0x49, 0x4b, 0x8c, 0x35, 0x6f, 0x26, 0x80, 0x38, + 0x6a, 0xb2, 0xd7, 0x67, 0x44, 0x8e, 0x28, 0x2f, 0xa3, 0x26, 0xb7, 0x38, 0xc0, 0xf8, 0xbf, 0x1a, + 0x00, 0x6f, 0x5f, 0x99, 0xcf, 0xcb, 0x50, 0x14, 0xaf, 0x4a, 0x87, 0x76, 0x15, 0x11, 0x0f, 0xa6, + 0xc4, 0xf3, 0xa3, 0x78, 0xfc, 0x5a, 0x66, 0x24, 0x9d, 0x40, 0x73, 0xb2, 0x16, 0x66, 0x78, 0x28, + 0x64, 0x91, 0x90, 0x71, 0xb4, 0xf1, 0x2f, 0x45, 0xf9, 0x5e, 0x3e, 0xd6, 0xfa, 0x2b, 0x80, 0xe2, + 0x21, 0x44, 0xdb, 0xcb, 0x48, 0xed, 0xd3, 0x31, 0x46, 0x6d, 0x32, 0x29, 0x7a, 0x13, 0x16, 0x86, + 0xc9, 0xd3, 0xaf, 0xb0, 0xe7, 0x86, 0xea, 0x88, 0x5d, 0xe5, 0x35, 0xa8, 0x49, 0x85, 0xc4, 0x5d, + 0xa8, 0xdc, 0x65, 0x01, 0x8d, 0x9b, 0xff, 0x32, 0x5c, 0x0e, 0xf9, 0x39, 0xa7, 0xb5, 0x67, 0xb5, + 0xc4, 0x6d, 0x91, 0x45, 0x0f, 0x9c, 0x20, 0x10, 0xfe, 0xb1, 0xe7, 0x31, 0x65, 0x27, 0x8b, 0x8a, + 0x46, 0x5e, 0x28, 0x35, 0x24, 0xc5, 0x06, 0x27, 0xe0, 0x07, 0xd5, 0xa8, 0x01, 0xee, 0xe4, 0xb3, + 0xb5, 0xa5, 0xb5, 0xcc, 0x2b, 0x82, 0xfb, 0xa4, 0x9f, 0xa9, 0xfa, 0x36, 0x5c, 0x89, 0xaa, 0xee, + 0x89, 0x55, 0x42, 0x9c, 0xe3, 0xad, 0x0e, 0x5f, 0x07, 0x44, 0xf5, 0x62, 0xa6, 0xf3, 0x5b, 0x9c, + 0x46, 0x1c, 0xeb, 0xef, 0x39, 0x4c, 0xb6, 0xf0, 0x59, 0xa8, 0x67, 0x5b, 0x10, 0xf6, 0x20, 0x2b, + 0xcb, 0xdc, 0x96, 0xb9, 0x74, 0x65, 0x6e, 0xb3, 0xb2, 0xe2, 0x1b, 0xb0, 0x30, 0xa2, 0x22, 0x37, + 0x24, 0xb5, 0x9d, 0x9e, 0x1d, 0xac, 0xc7, 0x6d, 0xea, 0x84, 0xfe, 0x3c, 0xec, 0xf9, 0xd1, 0xa6, + 0x79, 0xa8, 0xbf, 0x87, 0x1c, 0xc9, 0x1d, 0x5f, 0x9b, 0x30, 0x8b, 0x7a, 0x38, 0xa0, 0x1d, 0x9f, + 0xa9, 0x2a, 0xf2, 0x09, 0xbc, 0xde, 0x26, 0xac, 0xa1, 0x10, 0x92, 0x9a, 0x0b, 0x26, 0x0e, 0x07, + 0x5a, 0x41, 0xe8, 0x07, 0x3e, 0x25, 0x96, 0xf0, 0x15, 0xb2, 0x62, 0x55, 0x09, 0x26, 0x8a, 0x10, + 0xee, 0x4a, 0x12, 0xbe, 0x4c, 0x8e, 0x6a, 0x81, 0xef, 0x56, 0x9c, 0xb0, 0x9b, 0x6e, 0x61, 0x62, + 0xa0, 0x85, 0x0d, 0x49, 0x32, 0xdc, 0x42, 0xe0, 0xfb, 0xae, 0x45, 0xed, 0x0e, 0x69, 0xf5, 0xdc, + 0x0c, 0x0f, 0x93, 0x49, 0x0b, 0xbb, 0xbe, 0xef, 0x36, 0x14, 0x49, 0xdc, 0x82, 0xf1, 0xff, 0x35, + 0xa8, 0xa6, 0xb2, 0x04, 0xf9, 0x41, 0x5d, 0xf8, 0x04, 0x99, 0x54, 0xa8, 0xa6, 0x61, 0x72, 0x50, + 0x4f, 0x5c, 0xa3, 0x09, 0x2c, 0xf1, 0xfa, 0xaf, 0x43, 0x55, 0x44, 0x5d, 0x54, 0xad, 0xdc, 0x40, + 0xad, 0x64, 0x6a, 0x99, 0x40, 0xe3, 0xff, 0x32, 0x8d, 0x59, 0x9e, 0x48, 0x8d, 0x7f, 0xd5, 0x60, + 0x32, 0x93, 0xad, 0x78, 0x4e, 0x4e, 0xbe, 0x08, 0xb5, 0x14, 0x27, 0xd6, 0xe1, 0xba, 0x62, 0x66, + 0x6e, 0x04, 0x33, 0x8f, 0xd6, 0xcd, 0x09, 0x9a, 0x9e, 0xf5, 0x9f, 0x85, 0x09, 0xe1, 0x5d, 0xa2, + 0x3e, 0xf3, 0x03, 0xfb, 0x71, 0xb1, 0x4b, 0x54, 0x9d, 0x56, 0x8f, 0x92, 0x02, 0xef, 0x35, 0xc5, + 0x6b, 0x92, 0x0f, 0x3b, 0x37, 0x82, 0x5d, 0xde, 0x2b, 0x4b, 0x95, 0x8c, 0x0f, 0x4b, 0x50, 0x4d, + 0xb5, 0x8c, 0x5e, 0x83, 0x79, 0xca, 0xfc, 0x90, 0x58, 0x7b, 0x98, 0xd9, 0x9d, 0xb4, 0x36, 0xa5, + 0xff, 0x99, 0x11, 0x58, 0x71, 0x01, 0x9a, 0x58, 0xc2, 0x1b, 0xc2, 0x03, 0x09, 0x13, 0xa4, 0x72, + 0x1d, 0x89, 0x6b, 0x49, 0x97, 0x32, 0xab, 0xd0, 0x0d, 0xb1, 0x84, 0x44, 0xd5, 0x56, 0x61, 0x3a, + 0xe0, 0x5e, 0x46, 0xbc, 0xe4, 0x6e, 0xab, 0x0a, 0x6a, 0xfb, 0xa7, 0x10, 0xdb, 0x7e, 0x5b, 0xd2, + 0x6e, 0xc0, 0x72, 0x88, 0xf7, 0x99, 0xd5, 0xda, 0xb3, 0xa4, 0x94, 0x5c, 0x82, 0x5b, 0x24, 0x4c, + 0x77, 0x25, 0x5d, 0xc9, 0x12, 0x27, 0xdb, 0xdc, 0x13, 0x63, 0xda, 0x16, 0x34, 0x49, 0x87, 0xeb, + 0x30, 0x1f, 0x35, 0x12, 0xc5, 0xfc, 0x54, 0x5d, 0xb5, 0x04, 0xc9, 0xba, 0x0d, 0x19, 0xff, 0x93, + 0x75, 0xde, 0x82, 0xcb, 0xd9, 0x8e, 0xbb, 0xa4, 0xcb, 0xf8, 0xe1, 0x51, 0xd5, 0x94, 0x4e, 0xa4, + 0x9e, 0xea, 0xf5, 0x81, 0x22, 0x90, 0xf5, 0xaf, 0x83, 0x3a, 0xf7, 0xa4, 0x7a, 0x93, 0x0e, 0x44, + 0xc5, 0x91, 0xe2, 0x9e, 0x5e, 0x83, 0x79, 0x1c, 0x04, 0x6e, 0x7f, 0x58, 0xf4, 0xd2, 0x8d, 0xcf, + 0x08, 0xec, 0x80, 0xe8, 0x5f, 0x82, 0x29, 0x59, 0x29, 0x69, 0xbd, 0xa2, 0x1e, 0x5e, 0x72, 0xf0, + 0x70, 0xe3, 0xdd, 0x1e, 0x23, 0xc7, 0xf2, 0x95, 0x66, 0xda, 0xc5, 0xc8, 0xc6, 0x1f, 0x70, 0x24, + 0x3f, 0x43, 0xc7, 0x33, 0x5c, 0x56, 0x3a, 0x49, 0xe4, 0xca, 0xcb, 0x08, 0xa2, 0x91, 0x12, 0x7f, + 0x15, 0xe6, 0xd2, 0x2d, 0x1c, 0x61, 0x37, 0xe3, 0x5d, 0x50, 0x52, 0xf3, 0x3d, 0xec, 0xca, 0x2a, + 0x5f, 0x84, 0xa5, 0x74, 0x95, 0x01, 0x71, 0x4b, 0x9f, 0xb2, 0x90, 0xd4, 0x1b, 0x92, 0xb6, 0x3b, + 0x28, 0x3d, 0x19, 0x0b, 0xad, 0xb9, 0x59, 0xc1, 0xbd, 0x08, 0x93, 0xd1, 0xf6, 0x47, 0x92, 0xa9, + 0x18, 0xa8, 0x02, 0x4a, 0x22, 0xbe, 0x44, 0x76, 0x42, 0x9f, 0xb1, 0xb8, 0x7f, 0x5d, 0x2d, 0x91, + 0x0a, 0x2a, 0xc9, 0xfe, 0x1b, 0x5c, 0x1a, 0x7c, 0xd5, 0x98, 0x66, 0x60, 0x5a, 0xed, 0xa4, 0x06, + 0xdf, 0xe5, 0x47, 0x6e, 0xf0, 0x7d, 0x18, 0x97, 0xb7, 0xfe, 0x49, 0xf2, 0xb1, 0xf6, 0x98, 0xf4, + 0xeb, 0x33, 0x26, 0xc7, 0x19, 0x1f, 0x6a, 0x50, 0x8e, 0xde, 0x2d, 0xa1, 0x4b, 0x90, 0xf3, 0x03, + 0xf5, 0xa6, 0x3f, 0x13, 0x3f, 0xca, 0xf9, 0xc1, 0x99, 0xd3, 0xed, 0x32, 0xdb, 0xff, 0xc2, 0x19, + 0xb6, 0xff, 0xc6, 0x4f, 0x73, 0x50, 0x79, 0x70, 0x68, 0xdb, 0x42, 0x5d, 0x68, 0x39, 0xf3, 0x69, + 0x81, 0x0c, 0x1b, 0xf2, 0x03, 0x02, 0xa7, 0x5c, 0xbc, 0x5d, 0x1a, 0x7a, 0x46, 0x9f, 0x7a, 0x8e, + 0xb7, 0x0c, 0x55, 0xda, 0xf1, 0x43, 0x66, 0xa5, 0x1e, 0xd2, 0x9b, 0x20, 0x40, 0xe2, 0xa3, 0x0d, + 0x7c, 0x9f, 0xd4, 0xc1, 0xd4, 0xf2, 0x0f, 0x49, 0xe8, 0x62, 0xb1, 0x05, 0x89, 0x9e, 0xb5, 0xaa, + 0x94, 0xb8, 0xb9, 0x0e, 0xa6, 0x3b, 0x31, 0x36, 0x7a, 0x5b, 0x82, 0x56, 0x60, 0x82, 0xd7, 0x6b, + 0xdb, 0xd6, 0xbe, 0xf8, 0x7c, 0x81, 0x4c, 0x09, 0x81, 0x0e, 0xa6, 0x77, 0xed, 0x3b, 0xe2, 0xfb, + 0x05, 0x8b, 0x50, 0x8e, 0xb1, 0x72, 0x6e, 0x97, 0xda, 0x0a, 0xf5, 0x09, 0xa8, 0x89, 0x38, 0x97, + 0xdd, 0xc1, 0x5e, 0x5b, 0x04, 0xe3, 0xe4, 0x64, 0x9e, 0xe0, 0xd0, 0x0d, 0x01, 0x14, 0xb1, 0x81, + 0x85, 0x78, 0xe3, 0x16, 0x45, 0xc6, 0x64, 0x0d, 0x35, 0x9b, 0x67, 0x23, 0xb4, 0x0c, 0x8b, 0xc9, + 0x8a, 0xc6, 0x97, 0xa4, 0x60, 0xe5, 0xf0, 0x4e, 0x39, 0xc4, 0x8d, 0xfc, 0x26, 0x83, 0xf1, 0xbd, + 0x3c, 0x94, 0x79, 0x75, 0x11, 0xcd, 0x7c, 0x1a, 0xb5, 0xa4, 0x22, 0x24, 0xf9, 0x6c, 0x84, 0xe4, + 0xb1, 0x3a, 0x19, 0x4e, 0xd6, 0x3c, 0xcb, 0x37, 0x40, 0xd2, 0xa1, 0xd2, 0xd2, 0x60, 0xa8, 0xf4, + 0xac, 0x31, 0xcd, 0x81, 0x78, 0x65, 0x65, 0x38, 0x5e, 0xb9, 0x0c, 0xd5, 0xf8, 0x55, 0x34, 0x93, + 0x11, 0xcd, 0x82, 0x09, 0x11, 0xa8, 0x49, 0x47, 0x28, 0xb7, 0xfa, 0x64, 0xca, 0x9d, 0x38, 0x45, + 0xb9, 0xdf, 0xd0, 0xa4, 0x7a, 0xc4, 0xe1, 0x27, 0x3a, 0x71, 0x68, 0x23, 0x2e, 0xff, 0x44, 0x72, + 0x82, 0x3c, 0x71, 0xac, 0xc2, 0xb8, 0xf0, 0x9a, 0x51, 0x16, 0x02, 0xca, 0x10, 0x8a, 0x09, 0x68, + 0x2a, 0x0a, 0x4e, 0xab, 0x3e, 0x2c, 0x91, 0x1f, 0x41, 0x2b, 0xd4, 0x13, 0x7d, 0x6c, 0xc2, 0x78, + 0x0d, 0x4a, 0xea, 0x29, 0x8a, 0xd0, 0xd8, 0xb1, 0xa7, 0x2c, 0x8c, 0xff, 0x45, 0xf3, 0x30, 0x4e, + 0xc5, 0xb3, 0x6c, 0x65, 0x17, 0xaa, 0x64, 0xbc, 0x2d, 0x22, 0xb6, 0xe2, 0x3e, 0x3c, 0x9b, 0x82, + 0xa1, 0x9d, 0x9c, 0x80, 0x94, 0xcb, 0x24, 0x20, 0xfd, 0x99, 0x06, 0x20, 0x57, 0x14, 0xd1, 0xf5, + 0xa9, 0xd7, 0x99, 0x0b, 0x50, 0x0a, 0x08, 0x09, 0x39, 0x4a, 0xb1, 0xc1, 0x8b, 0x5b, 0xad, 0xf8, + 0x36, 0x32, 0x9f, 0xba, 0x8d, 0x1c, 0xbc, 0xfb, 0x2c, 0x9c, 0xf1, 0xee, 0xf3, 0x55, 0x75, 0x9e, + 0xe4, 0x23, 0x24, 0x2a, 0xc4, 0x8b, 0x52, 0xd7, 0x25, 0xb8, 0xd5, 0xe0, 0x18, 0x79, 0xc6, 0x14, + 0x7f, 0x8d, 0x2d, 0xa8, 0xc4, 0xf0, 0xe1, 0x8b, 0x37, 0x6d, 0xf4, 0xc5, 0x9b, 0x78, 0xe1, 0xc2, + 0x12, 0x81, 0xe2, 0x7d, 0xd2, 0xa4, 0x46, 0x03, 0x90, 0xcc, 0x18, 0x12, 0x22, 0x89, 0x6e, 0xb7, + 0x5e, 0x49, 0x72, 0x22, 0xe4, 0x8b, 0xd5, 0x64, 0x9b, 0x9a, 0xc8, 0x2e, 0x4e, 0x8c, 0x40, 0x35, + 0xc8, 0xc5, 0x0d, 0xe7, 0x18, 0x35, 0xbe, 0x0c, 0x33, 0x99, 0x46, 0xd5, 0x45, 0x76, 0x3d, 0xdb, + 0x6a, 0xe1, 0xe4, 0x06, 0x36, 0x01, 0x35, 0xf8, 0x9e, 0xb0, 0xc1, 0x99, 0x6c, 0x44, 0x5c, 0xad, + 0x41, 0x85, 0x1f, 0xf6, 0x44, 0x1a, 0xc4, 0xa8, 0xd5, 0x4c, 0xa6, 0x49, 0x94, 0x0f, 0xd4, 0x3f, + 0x63, 0x0d, 0x66, 0x32, 0xad, 0x28, 0x36, 0x52, 0xb2, 0xd0, 0x32, 0xb2, 0xb0, 0x45, 0x6a, 0xe1, + 0x5d, 0xc2, 0x0d, 0xa8, 0xd9, 0xdc, 0x7e, 0x36, 0xcf, 0x04, 0xbe, 0xa9, 0x89, 0x74, 0xbf, 0x54, + 0x2f, 0xcf, 0xe0, 0x9a, 0x3f, 0xf9, 0xbe, 0x80, 0xf0, 0x7f, 0xa7, 0x3e, 0x14, 0xf8, 0x99, 0xcc, + 0xa8, 0xdf, 0xb8, 0xd9, 0x78, 0x96, 0x19, 0xf5, 0x9f, 0x06, 0x14, 0x84, 0xe4, 0xd0, 0xf1, 0x7b, + 0x34, 0xf5, 0x29, 0x08, 0xc9, 0x8b, 0x1e, 0x61, 0xe2, 0x0f, 0x41, 0x5c, 0x83, 0x5a, 0x4c, 0x2d, + 0x1b, 0x93, 0x2f, 0x09, 0x27, 0x23, 0xe8, 0xa3, 0x54, 0x9a, 0xfe, 0xf8, 0x60, 0x9a, 0x7e, 0x29, + 0x1e, 0xb9, 0xf1, 0x91, 0x4c, 0x2b, 0x16, 0x83, 0xbb, 0x68, 0x39, 0xd7, 0xa1, 0x44, 0x7b, 0xb6, + 0x4d, 0x54, 0x82, 0x4c, 0xd9, 0x8c, 0x8a, 0xcf, 0x64, 0xb0, 0xc6, 0x26, 0xcc, 0xdf, 0x25, 0x2c, + 0xda, 0xe5, 0x89, 0x09, 0xf8, 0xe4, 0xfa, 0x32, 0xbe, 0xad, 0xc1, 0xc2, 0x50, 0x33, 0x17, 0x2d, + 0x99, 0xcf, 0x70, 0xe7, 0xcb, 0xc4, 0x12, 0x98, 0x3f, 0x35, 0xa8, 0x1e, 0x91, 0x19, 0x77, 0x61, + 0x31, 0xc5, 0xd5, 0x3d, 0x87, 0x9f, 0x08, 0xcf, 0x93, 0x46, 0x64, 0x7c, 0x47, 0x83, 0xa5, 0x51, + 0x2d, 0xfd, 0xe2, 0x87, 0xf8, 0xe7, 0x32, 0x51, 0x7b, 0xc3, 0x57, 0xa7, 0x01, 0x3f, 0x3c, 0x67, + 0xd6, 0xad, 0xed, 0x07, 0xa1, 0xbc, 0xb0, 0x96, 0x1c, 0x95, 0x39, 0x40, 0xdc, 0x53, 0x8b, 0x73, + 0x61, 0x10, 0x46, 0xc1, 0x37, 0x2b, 0x24, 0x1f, 0x28, 0xcf, 0x53, 0xe3, 0xf0, 0xe4, 0xa9, 0x58, + 0x2a, 0xdd, 0xac, 0xf0, 0xb8, 0x14, 0x68, 0xa4, 0x22, 0x8e, 0xd2, 0x28, 0x65, 0x78, 0xb1, 0x27, + 0x12, 0xbd, 0x33, 0x43, 0xb9, 0x68, 0x01, 0xa3, 0x54, 0xa0, 0x33, 0xea, 0xf6, 0xfb, 0xf2, 0x01, + 0x8c, 0x58, 0x5b, 0x68, 0xaf, 0x7b, 0x1e, 0xf9, 0x7d, 0x0e, 0x2a, 0xd8, 0x6d, 0xfb, 0xa1, 0xc3, + 0x3a, 0x5d, 0xd1, 0x61, 0x6d, 0x7d, 0x29, 0xa1, 0x56, 0x0d, 0xdf, 0x8c, 0x28, 0xcc, 0x84, 0xf8, + 0x49, 0x32, 0xf4, 0xfe, 0x50, 0x26, 0xa9, 0x27, 0x7c, 0x5e, 0xb4, 0x70, 0x96, 0xa0, 0x6c, 0xab, + 0xc6, 0xe3, 0x33, 0x8b, 0x2a, 0x73, 0x0b, 0x91, 0x21, 0xd8, 0x83, 0xc3, 0xf8, 0xfb, 0x22, 0x02, + 0x70, 0xff, 0x50, 0x6c, 0x3f, 0x25, 0x52, 0x46, 0xaf, 0xe5, 0x1e, 0x19, 0x04, 0x48, 0x86, 0xaf, + 0x7f, 0x90, 0x87, 0x89, 0x0d, 0xbf, 0x1b, 0x60, 0x9b, 0x49, 0x06, 0xde, 0x87, 0x39, 0x12, 0x86, + 0x96, 0xe3, 0x1d, 0x62, 0xd7, 0x69, 0x59, 0xd9, 0x1d, 0x57, 0x75, 0xfd, 0x13, 0xe9, 0xbb, 0xd9, + 0xb8, 0xd6, 0x96, 0xa4, 0x6e, 0xa8, 0xdd, 0xd8, 0xbd, 0x31, 0x13, 0x91, 0x70, 0x10, 0x8a, 0x5c, + 0xb8, 0xcc, 0x9b, 0x0e, 0x54, 0x52, 0xac, 0xa5, 0xce, 0xe4, 0xb1, 0xc3, 0x94, 0x81, 0xae, 0xd5, + 0x91, 0x3d, 0x44, 0x99, 0xb4, 0x4d, 0x71, 0x4e, 0x57, 0xae, 0xf4, 0xde, 0x98, 0x59, 0x27, 0xe1, + 0x68, 0x1c, 0xb2, 0x60, 0x81, 0xf7, 0x66, 0xcb, 0x46, 0x2c, 0xc7, 0xb3, 0x82, 0xd0, 0x6f, 0x87, + 0x84, 0x52, 0x15, 0x16, 0x7b, 0x69, 0x64, 0x47, 0xea, 0xff, 0x96, 0xb7, 0xab, 0xa8, 0xef, 0x8d, + 0x99, 0xb3, 0x24, 0x1c, 0x86, 0xa3, 0x7d, 0x58, 0xe2, 0x1d, 0x30, 0xdf, 0xb7, 0xba, 0xd8, 0xeb, + 0x5b, 0x01, 0xf1, 0x5a, 0x8e, 0xd7, 0xb6, 0x18, 0xa6, 0x07, 0x54, 0x6d, 0x07, 0xaf, 0x8f, 0xec, + 0xa3, 0xe9, 0xfb, 0x0f, 0xb0, 0xd7, 0xdf, 0x95, 0x15, 0x9a, 0x9c, 0xfe, 0xde, 0x98, 0x39, 0x4f, + 0xc2, 0x51, 0x98, 0x5b, 0x25, 0x65, 0x12, 0xc6, 0x15, 0xb8, 0x74, 0x8a, 0xd0, 0x8d, 0x17, 0xe1, + 0xea, 0x63, 0x25, 0x66, 0x2c, 0xc3, 0x95, 0x53, 0x47, 0x6b, 0x5c, 0x85, 0xe5, 0xc7, 0xb0, 0xca, + 0x77, 0x10, 0x35, 0x45, 0x13, 0x4d, 0xc9, 0x53, 0xf7, 0xe6, 0xab, 0x30, 0x3d, 0xa0, 0x73, 0x27, + 0xba, 0x67, 0x99, 0x0a, 0xd2, 0x5c, 0x6e, 0xb5, 0x44, 0xf0, 0xc5, 0x6f, 0x67, 0x49, 0xe5, 0x9d, + 0x4b, 0x4d, 0xc1, 0x23, 0xca, 0x81, 0x8c, 0xac, 0xd2, 0xd9, 0x32, 0xb2, 0x06, 0xf2, 0x8b, 0xca, + 0x83, 0xf9, 0x45, 0xc6, 0x9f, 0xca, 0xcb, 0x5e, 0x39, 0x38, 0x35, 0x8f, 0x3f, 0x95, 0x0d, 0xa9, + 0xcc, 0x8d, 0x54, 0x6a, 0x34, 0x57, 0x5f, 0x84, 0x49, 0x7e, 0xd4, 0x0f, 0x49, 0x17, 0x3b, 0x9e, + 0xe3, 0xb5, 0x55, 0x96, 0x3d, 0x3f, 0xff, 0x9b, 0x11, 0x0c, 0xad, 0x89, 0xfc, 0x07, 0x5e, 0x97, + 0xa4, 0xe7, 0x98, 0x74, 0x7e, 0xd3, 0x31, 0xaa, 0x91, 0x12, 0x61, 0x42, 0x9f, 0x7d, 0x8d, 0x3b, + 0x15, 0x23, 0x6e, 0xcb, 0x13, 0xcf, 0x2b, 0xb0, 0xd8, 0x74, 0xc4, 0x03, 0xdb, 0x46, 0x9f, 0x32, + 0xd2, 0x15, 0x02, 0x8b, 0x14, 0xa5, 0x43, 0x9e, 0x7e, 0xe0, 0xaa, 0xd4, 0x27, 0xfe, 0xd7, 0x08, + 0x60, 0x69, 0x14, 0xb9, 0x1a, 0xba, 0xa9, 0xdc, 0xb2, 0xd0, 0xe9, 0xad, 0xb7, 0x3e, 0xfa, 0xf9, + 0xf2, 0xd8, 0xcf, 0x7e, 0xbe, 0xfc, 0x66, 0xdb, 0x61, 0x9d, 0xde, 0xde, 0x9a, 0xed, 0x77, 0x6f, + 0x04, 0x8e, 0xd7, 0xb6, 0x71, 0x70, 0xe3, 0xe0, 0x50, 0x7e, 0x50, 0x3c, 0x38, 0x68, 0xdf, 0xa0, + 0x1d, 0x1c, 0x92, 0x96, 0xf0, 0x39, 0x6b, 0x0d, 0xf1, 0x5f, 0x78, 0x1b, 0xe9, 0xd6, 0x57, 0xdf, + 0x81, 0xc5, 0x13, 0xbf, 0x2f, 0x89, 0x66, 0x41, 0x4f, 0x4a, 0x0f, 0xfd, 0xb0, 0x8b, 0x5d, 0x7d, + 0x0c, 0x2d, 0xc0, 0x4c, 0x02, 0xbd, 0xe3, 0x87, 0xb6, 0x78, 0x1a, 0xa0, 0x6b, 0xab, 0x2e, 0x5c, + 0x3e, 0xed, 0x83, 0x92, 0xbc, 0x39, 0x95, 0x78, 0xdf, 0x73, 0x59, 0xdc, 0xdc, 0x0a, 0x5c, 0x4e, + 0xa0, 0xdb, 0x43, 0xdf, 0x85, 0x94, 0xb9, 0x10, 0x09, 0x85, 0xbc, 0xe2, 0xd6, 0x73, 0xab, 0x2f, + 0x03, 0x24, 0x76, 0x85, 0xc6, 0x21, 0xf7, 0xe8, 0x55, 0x7d, 0x0c, 0x55, 0xa0, 0xf8, 0xe8, 0xd5, + 0x66, 0x73, 0x5b, 0xd7, 0x04, 0x68, 0x5d, 0xcf, 0xad, 0x7e, 0x0a, 0x20, 0xc9, 0x48, 0x45, 0x00, + 0xe3, 0x71, 0xd7, 0x25, 0xc8, 0x6f, 0xfb, 0x47, 0xba, 0x86, 0xca, 0x50, 0xb8, 0xe7, 0xb4, 0x3b, + 0x7a, 0x6e, 0xf5, 0x06, 0xd4, 0xb2, 0x69, 0xa8, 0xbc, 0x99, 0xc6, 0x96, 0x3e, 0xc6, 0x7f, 0xcd, + 0x0d, 0x5d, 0x13, 0xf9, 0x16, 0x1b, 0x32, 0xdf, 0xa2, 0xa1, 0xe7, 0x56, 0x1f, 0x41, 0x35, 0x95, + 0xd2, 0xc8, 0x79, 0x7d, 0xe8, 0xb3, 0x9b, 0xae, 0xeb, 0x1f, 0x91, 0xd6, 0x8e, 0xc7, 0xc1, 0x52, + 0x64, 0x31, 0xe8, 0xa6, 0xdb, 0xf5, 0x29, 0x13, 0x08, 0x0d, 0xd5, 0x61, 0x36, 0x85, 0x10, 0xd9, + 0x19, 0x02, 0x93, 0x5b, 0xb5, 0x21, 0xb7, 0x13, 0x70, 0x0e, 0x77, 0x7b, 0x4c, 0xb2, 0xba, 0x49, + 0x5c, 0xc9, 0xaa, 0x10, 0x77, 0x0e, 0x4d, 0x40, 0x39, 0x8a, 0x69, 0xe9, 0x79, 0x3e, 0xae, 0x2d, + 0x8f, 0x92, 0x90, 0xe9, 0x05, 0x34, 0x03, 0x53, 0x03, 0x8a, 0xd0, 0x8b, 0x08, 0x41, 0x4d, 0x70, + 0x1d, 0xb9, 0x1f, 0xaa, 0x8f, 0xaf, 0xae, 0x41, 0x25, 0x0e, 0xf1, 0xf1, 0x96, 0x1f, 0xfa, 0x1e, + 0x91, 0x42, 0x14, 0x24, 0xba, 0xc6, 0x3b, 0x89, 0x2a, 0x48, 0xe9, 0x64, 0x3f, 0x80, 0xcc, 0xf9, + 0xda, 0xd9, 0xdf, 0xd7, 0xc7, 0x78, 0xed, 0x3b, 0x58, 0x54, 0x01, 0x18, 0x6f, 0xb0, 0x90, 0xab, + 0x2e, 0xb7, 0xfa, 0x5d, 0x0d, 0xc6, 0xd5, 0x67, 0x83, 0x45, 0x4b, 0xf2, 0xbf, 0x3e, 0x86, 0xe6, + 0x60, 0xba, 0xd9, 0xdc, 0x96, 0x19, 0x1c, 0xf1, 0x28, 0x84, 0x3c, 0x44, 0xb8, 0x5a, 0x75, 0x19, + 0x63, 0x72, 0xbc, 0xc2, 0x83, 0x38, 0xe5, 0xa2, 0xb1, 0xdb, 0xa3, 0x1d, 0xd2, 0xd2, 0xf3, 0xdc, + 0x7a, 0xe2, 0x76, 0x46, 0x7c, 0xfa, 0x51, 0x2f, 0xa0, 0x45, 0x98, 0x4b, 0x37, 0xb9, 0xe9, 0x3f, + 0xf4, 0x59, 0xc7, 0xf1, 0xda, 0x7a, 0x71, 0xf5, 0x1a, 0x94, 0x6e, 0x1f, 0xb3, 0x10, 0xef, 0x04, + 0x72, 0xf0, 0x7e, 0xa0, 0x8f, 0x21, 0x1d, 0x26, 0xf8, 0x01, 0x7f, 0xc7, 0x6d, 0x89, 0xbd, 0xbf, + 0xae, 0xad, 0x1a, 0x30, 0x3d, 0xb4, 0x3b, 0xe1, 0x66, 0xb0, 0x11, 0xda, 0x6f, 0xbe, 0x6e, 0xfd, + 0x77, 0x3f, 0xd4, 0xc7, 0x6e, 0xbd, 0xf4, 0x37, 0xbf, 0x53, 0xd6, 0x3e, 0xfa, 0xf8, 0x05, 0xed, + 0x27, 0x1f, 0xbf, 0xa0, 0xfd, 0xdd, 0xc7, 0x2f, 0x68, 0xbf, 0xf9, 0x0f, 0x2f, 0x8c, 0x81, 0xee, + 0x87, 0xed, 0x35, 0xe6, 0x1c, 0x1c, 0xae, 0xa9, 0x19, 0xb9, 0x37, 0x2e, 0x7e, 0x5e, 0xfb, 0x8f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x5e, 0xa9, 0x08, 0xf8, 0x2b, 0x60, 0x00, 0x00, } func (m *GetRequest) Marshal() (dAtA []byte, err error) { @@ -15412,21 +15479,26 @@ func (m *Context) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x80 } - if m.BusyThresholdMs != 0 { - i = encodeVarintKvrpcpb(dAtA, i, uint64(m.BusyThresholdMs)) + if m.ResourceControlContext != nil { + { + size, err := m.ResourceControlContext.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintKvrpcpb(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xd8 + dAtA[i] = 0xe2 } - if len(m.ResourceGroupName) > 0 { - i -= len(m.ResourceGroupName) - copy(dAtA[i:], m.ResourceGroupName) - i = encodeVarintKvrpcpb(dAtA, i, uint64(len(m.ResourceGroupName))) + if m.BusyThresholdMs != 0 { + i = encodeVarintKvrpcpb(dAtA, i, uint64(m.BusyThresholdMs)) i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xd2 + dAtA[i] = 0xd8 } if m.TxnSource != 0 { i = encodeVarintKvrpcpb(dAtA, i, uint64(m.TxnSource)) @@ -15459,20 +15531,20 @@ func (m *Context) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0xba } if len(m.CommittedLocks) > 0 { - dAtA106 := make([]byte, len(m.CommittedLocks)*10) - var j105 int + dAtA107 := make([]byte, len(m.CommittedLocks)*10) + var j106 int for _, num := range m.CommittedLocks { for num >= 1<<7 { - dAtA106[j105] = uint8(uint64(num)&0x7f | 0x80) + dAtA107[j106] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j105++ + j106++ } - dAtA106[j105] = uint8(num) - j105++ + dAtA107[j106] = uint8(num) + j106++ } - i -= j105 - copy(dAtA[i:], dAtA106[:j105]) - i = encodeVarintKvrpcpb(dAtA, i, uint64(j105)) + i -= j106 + copy(dAtA[i:], dAtA107[:j106]) + i = encodeVarintKvrpcpb(dAtA, i, uint64(j106)) i-- dAtA[i] = 0x1 i-- @@ -15543,20 +15615,20 @@ func (m *Context) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x70 } if len(m.ResolvedLocks) > 0 { - dAtA108 := make([]byte, len(m.ResolvedLocks)*10) - var j107 int + dAtA109 := make([]byte, len(m.ResolvedLocks)*10) + var j108 int for _, num := range m.ResolvedLocks { for num >= 1<<7 { - dAtA108[j107] = uint8(uint64(num)&0x7f | 0x80) + dAtA109[j108] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j107++ + j108++ } - dAtA108[j107] = uint8(num) - j107++ + dAtA109[j108] = uint8(num) + j108++ } - i -= j107 - copy(dAtA[i:], dAtA108[:j107]) - i = encodeVarintKvrpcpb(dAtA, i, uint64(j107)) + i -= j108 + copy(dAtA[i:], dAtA109[:j108]) + i = encodeVarintKvrpcpb(dAtA, i, uint64(j108)) i-- dAtA[i] = 0x6a } @@ -15657,6 +15729,52 @@ func (m *Context) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ResourceControlContext) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResourceControlContext) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResourceControlContext) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Penalty != nil { + { + size, err := m.Penalty.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintKvrpcpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.ResourceGroupName) > 0 { + i -= len(m.ResourceGroupName) + copy(dAtA[i:], m.ResourceGroupName) + i = encodeVarintKvrpcpb(dAtA, i, uint64(len(m.ResourceGroupName))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *LockInfo) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -17016,20 +17134,20 @@ func (m *MvccLock) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x58 } if len(m.RollbackTs) > 0 { - dAtA130 := make([]byte, len(m.RollbackTs)*10) - var j129 int + dAtA132 := make([]byte, len(m.RollbackTs)*10) + var j131 int for _, num := range m.RollbackTs { for num >= 1<<7 { - dAtA130[j129] = uint8(uint64(num)&0x7f | 0x80) + dAtA132[j131] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j129++ + j131++ } - dAtA130[j129] = uint8(num) - j129++ + dAtA132[j131] = uint8(num) + j131++ } - i -= j129 - copy(dAtA[i:], dAtA130[:j129]) - i = encodeVarintKvrpcpb(dAtA, i, uint64(j129)) + i -= j131 + copy(dAtA[i:], dAtA132[:j131]) + i = encodeVarintKvrpcpb(dAtA, i, uint64(j131)) i-- dAtA[i] = 0x52 } @@ -17418,20 +17536,20 @@ func (m *CheckLeaderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x10 } if len(m.Regions) > 0 { - dAtA135 := make([]byte, len(m.Regions)*10) - var j134 int + dAtA137 := make([]byte, len(m.Regions)*10) + var j136 int for _, num := range m.Regions { for num >= 1<<7 { - dAtA135[j134] = uint8(uint64(num)&0x7f | 0x80) + dAtA137[j136] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j134++ + j136++ } - dAtA135[j134] = uint8(num) - j134++ + dAtA137[j136] = uint8(num) + j136++ } - i -= j134 - copy(dAtA[i:], dAtA135[:j134]) - i = encodeVarintKvrpcpb(dAtA, i, uint64(j134)) + i -= j136 + copy(dAtA[i:], dAtA137[:j136]) + i = encodeVarintKvrpcpb(dAtA, i, uint64(j136)) i-- dAtA[i] = 0xa } @@ -20791,13 +20909,13 @@ func (m *Context) Size() (n int) { if m.TxnSource != 0 { n += 2 + sovKvrpcpb(uint64(m.TxnSource)) } - l = len(m.ResourceGroupName) - if l > 0 { - n += 2 + l + sovKvrpcpb(uint64(l)) - } if m.BusyThresholdMs != 0 { n += 2 + sovKvrpcpb(uint64(m.BusyThresholdMs)) } + if m.ResourceControlContext != nil { + l = m.ResourceControlContext.Size() + n += 2 + l + sovKvrpcpb(uint64(l)) + } if m.KeyspaceId != 0 { n += 2 + sovKvrpcpb(uint64(m.KeyspaceId)) } @@ -20807,6 +20925,26 @@ func (m *Context) Size() (n int) { return n } +func (m *ResourceControlContext) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ResourceGroupName) + if l > 0 { + n += 1 + l + sovKvrpcpb(uint64(l)) + } + if m.Penalty != nil { + l = m.Penalty.Size() + n += 1 + l + sovKvrpcpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *LockInfo) Size() (n int) { if m == nil { return 0 @@ -35479,11 +35617,30 @@ func (m *Context) Unmarshal(dAtA []byte) error { break } } - case 26: + case 27: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BusyThresholdMs", wireType) + } + m.BusyThresholdMs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BusyThresholdMs |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 28: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ResourceGroupName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ResourceControlContext", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowKvrpcpb @@ -35493,29 +35650,33 @@ func (m *Context) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthKvrpcpb } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthKvrpcpb } if postIndex > l { return io.ErrUnexpectedEOF } - m.ResourceGroupName = string(dAtA[iNdEx:postIndex]) + if m.ResourceControlContext == nil { + m.ResourceControlContext = &ResourceControlContext{} + } + if err := m.ResourceControlContext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 27: + case 32: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BusyThresholdMs", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field KeyspaceId", wireType) } - m.BusyThresholdMs = 0 + m.KeyspaceId = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowKvrpcpb @@ -35525,16 +35686,67 @@ func (m *Context) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.BusyThresholdMs |= uint32(b&0x7F) << shift + m.KeyspaceId |= uint32(b&0x7F) << shift if b < 0x80 { break } } - case 32: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field KeyspaceId", wireType) + default: + iNdEx = preIndex + skippy, err := skipKvrpcpb(dAtA[iNdEx:]) + if err != nil { + return err } - m.KeyspaceId = 0 + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthKvrpcpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResourceControlContext) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResourceControlContext: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResourceControlContext: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResourceGroupName", wireType) + } + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowKvrpcpb @@ -35544,11 +35756,60 @@ func (m *Context) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.KeyspaceId |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthKvrpcpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthKvrpcpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ResourceGroupName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Penalty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthKvrpcpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthKvrpcpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Penalty == nil { + m.Penalty = &resource_manager.Consumption{} + } + if err := m.Penalty.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipKvrpcpb(dAtA[iNdEx:]) diff --git a/pkg/tracepb/tracepb.pb.go b/pkg/tracepb/tracepb.pb.go index e5b4919..55cf091 100644 --- a/pkg/tracepb/tracepb.pb.go +++ b/pkg/tracepb/tracepb.pb.go @@ -68,6 +68,7 @@ var xxx_messageInfo_TraceRecordRequest proto.InternalMessageInfo type TraceRecord struct { // Types that are valid to be assigned to RecordOneof: + // // *TraceRecord_Report // *TraceRecord_NotifyCollect RecordOneof isTraceRecord_RecordOneof `protobuf_oneof:"record_oneof"` diff --git a/proto/kvrpcpb.proto b/proto/kvrpcpb.proto index 6c3bad7..2820abb 100644 --- a/proto/kvrpcpb.proto +++ b/proto/kvrpcpb.proto @@ -7,6 +7,7 @@ import "gogoproto/gogo.proto"; import "rustproto.proto"; import "deadlock.proto"; import "tracepb.proto"; +import "resource_manager.proto"; option (gogoproto.marshaler_all) = true; option (gogoproto.sizer_all) = true; @@ -849,18 +850,29 @@ message Context { // The source of the current transaction. uint64 txn_source = 25; - // Different from resource_group_tag, it's used for resource control for each resource group - string resource_group_name = 26; + reserved 26; // Used for resource_group_name, now it's moved into ResourceControlContext. // If `busy_threshold_ms` is given, TiKV can reject the request and return a `ServerIsBusy` // error before processing if the estimated waiting duration exceeds the threshold. uint32 busy_threshold_ms = 27; + // Some information used for resource control. + ResourceControlContext resource_control_context = 28; + // The keyspace that the request is sent to. // NOTE: This field is only meaningful while the api_version is V2. uint32 keyspace_id = 32; } +message ResourceControlContext { + // It's used to identify which resource group the request belongs to. + string resource_group_name = 1; + + // The resource consumption of the resource group that have completed at all TiKVs between the previous request to this TiKV and current request. + // It's used as penalty to make the local resource scheduling on one TiKV takes the gloabl resource consumption into consideration. + resource_manager.Consumption penalty = 2; +} + // The API version the server and the client is using. // See more details in https://github.com/tikv/rfcs/blob/master/text/0069-api-v2.md. enum APIVersion { diff --git a/scripts/proto.lock b/scripts/proto.lock index 4ee277a..fd8f305 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -9214,16 +9214,16 @@ "name": "txn_source", "type": "uint64" }, - { - "id": 26, - "name": "resource_group_name", - "type": "string" - }, { "id": 27, "name": "busy_threshold_ms", "type": "uint32" }, + { + "id": 28, + "name": "resource_control_context", + "type": "ResourceControlContext" + }, { "id": 32, "name": "keyspace_id", @@ -9231,12 +9231,28 @@ } ], "reserved_ids": [ - 4 + 4, + 26 ], "reserved_names": [ "read_quorum" ] }, + { + "name": "ResourceControlContext", + "fields": [ + { + "id": 1, + "name": "resource_group_name", + "type": "string" + }, + { + "id": 2, + "name": "penalty", + "type": "resource_manager.Consumption" + } + ] + }, { "name": "LockInfo", "fields": [ @@ -10549,6 +10565,9 @@ }, { "path": "tracepb.proto" + }, + { + "path": "resource_manager.proto" } ], "package": { -- Gitee From 10e7620a630db63d769503ba99c7389f19fb6516 Mon Sep 17 00:00:00 2001 From: Spade A <71589810+SpadeA-Tang@users.noreply.github.com> Date: Wed, 19 Apr 2023 17:04:15 +0800 Subject: [PATCH 38/44] update (#1104) Signed-off-by: Spade A --- pkg/raft_serverpb/raft_serverpb.pb.go | 315 +++++++++++++++----------- proto/raft_serverpb.proto | 2 + scripts/proto.lock | 5 + 3 files changed, 191 insertions(+), 131 deletions(-) diff --git a/pkg/raft_serverpb/raft_serverpb.pb.go b/pkg/raft_serverpb/raft_serverpb.pb.go index ee704f5..727e709 100644 --- a/pkg/raft_serverpb/raft_serverpb.pb.go +++ b/pkg/raft_serverpb/raft_serverpb.pb.go @@ -394,7 +394,9 @@ type SnapshotMeta struct { // the timestamp second to generate snapshot Start uint64 `protobuf:"varint,4,opt,name=start,proto3" json:"start,omitempty"` // the duration of generating snapshot - GenerateDurationSec uint64 `protobuf:"varint,5,opt,name=generate_duration_sec,json=generateDurationSec,proto3" json:"generate_duration_sec,omitempty"` + GenerateDurationSec uint64 `protobuf:"varint,5,opt,name=generate_duration_sec,json=generateDurationSec,proto3" json:"generate_duration_sec,omitempty"` + // the path of the tablet snapshot, it should only be used for v1 to receive snapshot from v2 + TabletSnapPath string `protobuf:"bytes,6,opt,name=tablet_snap_path,json=tabletSnapPath,proto3" json:"tablet_snap_path,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -468,6 +470,13 @@ func (m *SnapshotMeta) GetGenerateDurationSec() uint64 { return 0 } +func (m *SnapshotMeta) GetTabletSnapPath() string { + if m != nil { + return m.TabletSnapPath + } + return "" +} + type SnapshotChunk struct { Message *RaftMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` @@ -2131,141 +2140,142 @@ func init() { func init() { proto.RegisterFile("raft_serverpb.proto", fileDescriptor_130ebc2f2c37a342) } var fileDescriptor_130ebc2f2c37a342 = []byte{ - // 2133 bytes of a gzipped FileDescriptorProto + // 2158 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x4b, 0x73, 0x1b, 0xb9, 0xf1, 0xd7, 0x90, 0x14, 0x1f, 0xcd, 0x87, 0x68, 0xc8, 0x0f, 0xda, 0x5a, 0xdb, 0xf2, 0x78, 0xed, 0xd5, 0x7a, 0xff, 0x7f, 0xb9, 0x56, 0xeb, 0x6c, 0xb6, 0x36, 0x55, 0x4e, 0x24, 0xd9, 0x8e, 0x9c, 0x0d, 0x5d, 0xae, 0x91, 0x6c, 0x57, 0x4e, 0x53, 0xd0, 0x0c, 0x38, 0x9a, 0x70, 0x5e, 0x0b, 0x80, 0xb2, 0x99, 0xca, 0xb7, 0xc8, 0xc5, 0x1f, 0x61, 0x3f, 0x42, 0x3e, 0x40, 0x0e, 0xa9, 0xe4, 0x92, - 0x43, 0x0e, 0x39, 0xa6, 0x9c, 0x4b, 0xae, 0x39, 0xe6, 0x96, 0x02, 0x1a, 0x43, 0xce, 0x50, 0xb4, - 0x9c, 0xf8, 0x44, 0xa0, 0xfb, 0xd7, 0x40, 0xbf, 0xd1, 0x43, 0x58, 0xe7, 0x74, 0x24, 0x5d, 0xc1, - 0xf8, 0x29, 0xe3, 0xd9, 0xf1, 0x76, 0xc6, 0x53, 0x99, 0x92, 0x6e, 0x89, 0x78, 0xad, 0xcb, 0xd4, - 0x3e, 0xe7, 0x5e, 0xeb, 0xc4, 0x4c, 0xd2, 0xd9, 0xae, 0x3b, 0x3e, 0xe5, 0x99, 0x37, 0xdb, 0xf6, - 0xfd, 0x50, 0x8c, 0xdd, 0x89, 0xa0, 0x01, 0x33, 0x94, 0x35, 0x3e, 0x11, 0x52, 0x2f, 0x91, 0x60, - 0xff, 0xbb, 0x0a, 0x6d, 0x87, 0x8e, 0xe4, 0x90, 0x09, 0x05, 0x23, 0x1b, 0xd0, 0xe2, 0x2c, 0x08, - 0xd3, 0xc4, 0x0d, 0xfd, 0x81, 0xb5, 0x69, 0x6d, 0xd5, 0x9c, 0x26, 0x12, 0x9e, 0xfa, 0xe4, 0x73, - 0x68, 0x8d, 0x78, 0x1a, 0xbb, 0x19, 0x63, 0x7c, 0x50, 0xd9, 0xb4, 0xb6, 0xda, 0x3b, 0x9d, 0x6d, - 0xa3, 0xc0, 0x73, 0xc6, 0xb8, 0xd3, 0x54, 0x6c, 0xb5, 0x22, 0x77, 0xa0, 0x21, 0x53, 0x04, 0x56, - 0x97, 0x00, 0xeb, 0x32, 0xd5, 0xb0, 0x7b, 0xd0, 0x88, 0xf1, 0xe6, 0x41, 0x4d, 0xc3, 0xfa, 0xdb, - 0xb9, 0x7d, 0x46, 0x23, 0x27, 0x07, 0x90, 0xaf, 0xa1, 0x63, 0x54, 0x63, 0x59, 0xea, 0x9d, 0x0c, - 0x56, 0xb5, 0xc0, 0x7a, 0x7e, 0xae, 0xa3, 0x79, 0x8f, 0x15, 0xcb, 0x69, 0xf3, 0xf9, 0x86, 0xdc, - 0x82, 0x4e, 0x28, 0x5c, 0x99, 0xc6, 0xc7, 0x42, 0xa6, 0x09, 0x1b, 0xd4, 0x37, 0xad, 0xad, 0xa6, - 0xd3, 0x0e, 0xc5, 0x51, 0x4e, 0x52, 0x56, 0x0b, 0x49, 0xb9, 0x74, 0xc7, 0x6c, 0x3a, 0x68, 0x6c, - 0x5a, 0x5b, 0x1d, 0xa7, 0xa9, 0x09, 0xdf, 0xb1, 0x29, 0xb9, 0x02, 0x0d, 0x96, 0xf8, 0x9a, 0xd5, - 0xd4, 0xac, 0x3a, 0x4b, 0x7c, 0xc5, 0xf8, 0x12, 0x3a, 0x31, 0xe3, 0x01, 0x73, 0x25, 0xe5, 0x01, - 0x93, 0x83, 0x96, 0x56, 0xa8, 0x57, 0x56, 0xc8, 0x69, 0x6b, 0xcc, 0x91, 0x86, 0x90, 0x6f, 0xa0, - 0xc5, 0xde, 0x48, 0x4e, 0xdd, 0x58, 0x04, 0x03, 0xd0, 0xf8, 0x8d, 0xed, 0x72, 0xd4, 0x1f, 0x2b, - 0x7e, 0x6e, 0x7c, 0x53, 0xa3, 0x87, 0x22, 0x50, 0x2a, 0xa2, 0xa4, 0x27, 0xdf, 0x0c, 0xda, 0xa8, - 0xa2, 0x26, 0xec, 0xcb, 0x37, 0xe4, 0x01, 0xc0, 0x3c, 0xd4, 0x83, 0xce, 0xa6, 0xb5, 0xd5, 0xdb, - 0xb9, 0xb4, 0x5d, 0x88, 0xfe, 0xa3, 0x50, 0x8c, 0x5f, 0xe8, 0x13, 0x5b, 0x7e, 0xbe, 0xb4, 0x1f, - 0x02, 0x51, 0xa1, 0x3f, 0xe2, 0x93, 0xc4, 0xa3, 0x92, 0xf9, 0x87, 0x92, 0x4a, 0x46, 0x2e, 0xc2, - 0x6a, 0x98, 0xf8, 0xec, 0x8d, 0x89, 0x3e, 0x6e, 0x08, 0x81, 0x9a, 0x64, 0x3c, 0xd6, 0x51, 0xaf, - 0x39, 0x7a, 0x6d, 0x3f, 0x87, 0xde, 0x61, 0x42, 0x33, 0x71, 0x92, 0xca, 0xfd, 0x27, 0x4f, 0xc2, - 0x88, 0x91, 0x1e, 0x54, 0xbc, 0x91, 0x16, 0x6c, 0x39, 0x15, 0x6f, 0xa4, 0xa4, 0x44, 0xf8, 0x1b, - 0x96, 0x4b, 0xa9, 0x35, 0xb9, 0x06, 0x4d, 0xef, 0x84, 0x79, 0x63, 0x31, 0x89, 0x75, 0x6a, 0x74, - 0x9d, 0xd9, 0xde, 0xfe, 0xab, 0x05, 0x9d, 0xfc, 0xc8, 0x21, 0x93, 0x94, 0x7c, 0x03, 0x4d, 0x6f, - 0xe4, 0x8e, 0xc2, 0x88, 0x89, 0x81, 0xb5, 0x59, 0xdd, 0x6a, 0xef, 0x5c, 0x5f, 0x70, 0x57, 0x59, - 0x03, 0xa7, 0xe1, 0x8d, 0xd4, 0xaf, 0x20, 0x37, 0xa1, 0x3d, 0x4a, 0xb9, 0x7b, 0x4c, 0x23, 0x9a, - 0x78, 0xa8, 0x41, 0xd3, 0x81, 0x51, 0xca, 0xf7, 0x90, 0x92, 0x03, 0x5e, 0x87, 0x32, 0x61, 0x42, - 0x68, 0x55, 0x10, 0xf0, 0x0a, 0x29, 0xca, 0x11, 0x3a, 0x07, 0x74, 0x66, 0xd6, 0x1c, 0xdc, 0x90, - 0x1d, 0xb8, 0x14, 0xb0, 0x84, 0x71, 0x2a, 0x99, 0xeb, 0x4f, 0x38, 0x95, 0x2a, 0x21, 0x05, 0xf3, - 0x74, 0x3a, 0xd6, 0x9c, 0xf5, 0x9c, 0xf9, 0xc8, 0xf0, 0x0e, 0x99, 0x67, 0xff, 0x0a, 0xba, 0x33, - 0x35, 0x4f, 0x26, 0xc9, 0x98, 0x3c, 0x98, 0xa7, 0xbd, 0xa5, 0x93, 0xe0, 0xda, 0x82, 0x55, 0x85, - 0x92, 0x9c, 0x17, 0x00, 0x81, 0x9a, 0x4f, 0x25, 0xd5, 0xb6, 0x74, 0x1c, 0xbd, 0xb6, 0xeb, 0x50, - 0x7b, 0x94, 0x26, 0xcc, 0x7e, 0x6b, 0xc1, 0xe5, 0x23, 0x7a, 0x1c, 0x31, 0x99, 0xdf, 0xa4, 0xdc, - 0xa0, 0x7d, 0xb8, 0x01, 0x2d, 0xe5, 0x40, 0x57, 0x47, 0xc2, 0x94, 0xb4, 0x22, 0x1c, 0xaa, 0x68, - 0xe4, 0xcc, 0x84, 0xc6, 0xe8, 0xa4, 0x16, 0x32, 0x9f, 0xd1, 0x98, 0x91, 0xeb, 0x00, 0x27, 0x8c, - 0xfa, 0xae, 0xa7, 0x94, 0xd6, 0x1e, 0xea, 0x38, 0x2d, 0x45, 0x41, 0x2b, 0xee, 0x40, 0x4f, 0x72, - 0x1a, 0x46, 0x61, 0x12, 0x18, 0x48, 0x4d, 0x43, 0xba, 0x39, 0x55, 0xc3, 0xec, 0x11, 0x5c, 0x2a, - 0x6b, 0xf6, 0x9c, 0xb3, 0xd3, 0x90, 0xbd, 0x26, 0x3f, 0x81, 0x55, 0x55, 0x2a, 0x79, 0x64, 0xef, - 0x2c, 0xf8, 0x60, 0xb9, 0x39, 0x0e, 0xca, 0x90, 0x3e, 0x54, 0x59, 0xe2, 0x9b, 0xb8, 0xaa, 0xa5, - 0x1d, 0xc0, 0x95, 0xb3, 0x22, 0xa8, 0xe9, 0xc7, 0xbb, 0x20, 0xf7, 0x79, 0xb5, 0xe0, 0xf3, 0x00, - 0x48, 0xf9, 0xa2, 0x03, 0x46, 0xfd, 0x8f, 0x8c, 0xe9, 0x06, 0xb4, 0x26, 0x82, 0xb9, 0x1e, 0xf5, - 0x4e, 0xf2, 0x24, 0x6d, 0x4e, 0x04, 0xdb, 0x57, 0x7b, 0xfb, 0x3e, 0x5c, 0x28, 0x5f, 0xf4, 0x38, - 0xf1, 0x4b, 0xf5, 0x63, 0x4c, 0x99, 0xd5, 0xcf, 0xef, 0x2a, 0x8b, 0xbe, 0x76, 0xd8, 0xf7, 0x13, - 0x26, 0x24, 0xf9, 0x31, 0xd4, 0x54, 0xe0, 0x8c, 0x6a, 0xb7, 0xce, 0x75, 0xb5, 0x32, 0xe7, 0x60, - 0xc5, 0xd1, 0x02, 0xe4, 0x67, 0xd0, 0xc8, 0x30, 0x5e, 0xa6, 0xe3, 0x7f, 0x7a, 0xae, 0xac, 0x89, - 0xed, 0xc1, 0x8a, 0x93, 0x8b, 0x91, 0x87, 0xb0, 0x3a, 0x4f, 0xa0, 0xf6, 0xce, 0xdd, 0x0f, 0x86, - 0x59, 0xc7, 0xec, 0x60, 0xc5, 0x41, 0x31, 0xf2, 0x00, 0x23, 0x8d, 0xef, 0xc3, 0xe6, 0xb9, 0xd2, - 0x8f, 0x13, 0xa5, 0xb8, 0x82, 0xef, 0xb5, 0xa0, 0x91, 0xd1, 0x69, 0x94, 0x52, 0xdf, 0x7e, 0x00, - 0x97, 0x76, 0x3d, 0x8f, 0x65, 0xaa, 0xc5, 0x15, 0xae, 0x11, 0xe5, 0xc8, 0xab, 0x24, 0x2c, 0x44, - 0xde, 0x3e, 0x5a, 0x2c, 0x28, 0x87, 0x89, 0x2c, 0x4d, 0x04, 0x23, 0xdf, 0xc2, 0x6a, 0xde, 0x91, - 0x96, 0x39, 0x64, 0xe9, 0x5d, 0x0e, 0x8a, 0xd8, 0x3b, 0xd0, 0xfc, 0x8e, 0x4d, 0x5f, 0xd2, 0x68, - 0xc2, 0x54, 0x0a, 0xab, 0x47, 0xc5, 0xd2, 0xa9, 0xa5, 0x96, 0xaa, 0xe5, 0x9c, 0x2a, 0x96, 0x29, - 0x71, 0xdc, 0xd8, 0x7f, 0xaa, 0x40, 0x5f, 0x25, 0x4f, 0x7e, 0xe0, 0x23, 0x2a, 0x29, 0xb9, 0x0b, - 0x75, 0x7c, 0xe4, 0x8c, 0x16, 0x8b, 0xcf, 0x8e, 0xe1, 0x96, 0x53, 0xbf, 0xb2, 0x90, 0xfa, 0x5f, - 0xcc, 0xb2, 0x5b, 0x15, 0xe0, 0x95, 0x05, 0x43, 0x72, 0x45, 0x31, 0xed, 0xc9, 0x00, 0x1a, 0xa7, - 0x8c, 0x0b, 0x75, 0x25, 0x76, 0xc4, 0x7c, 0x4b, 0xee, 0x43, 0x4d, 0x5d, 0x6e, 0x5e, 0xe4, 0x8d, - 0xf7, 0x74, 0x68, 0x5d, 0xbd, 0x1a, 0x48, 0x7e, 0x04, 0x6b, 0x9c, 0xc5, 0xe9, 0x29, 0xf3, 0x5d, - 0xce, 0xbc, 0x94, 0xfb, 0x62, 0x50, 0xd7, 0x2a, 0x94, 0xa7, 0x84, 0x9e, 0x01, 0x39, 0x88, 0x21, - 0x7b, 0xd0, 0xd3, 0x8f, 0xe9, 0x5c, 0xaa, 0xa1, 0xa5, 0x16, 0x6f, 0x1c, 0x6a, 0x10, 0x4a, 0x39, - 0xdd, 0xb8, 0xb0, 0x13, 0xf6, 0x6f, 0x01, 0x0e, 0x65, 0xca, 0xd9, 0x53, 0x9f, 0x25, 0x52, 0x75, - 0x38, 0x2f, 0x9a, 0x08, 0xc9, 0xf8, 0x7c, 0xde, 0x69, 0x19, 0xca, 0x53, 0x9f, 0x5c, 0x85, 0xa6, - 0x50, 0x60, 0xc5, 0x44, 0xdf, 0x35, 0x04, 0x0a, 0x93, 0x07, 0xd0, 0xa6, 0x59, 0xe8, 0xe6, 0x1e, - 0xa9, 0xea, 0x37, 0x77, 0x7d, 0x3b, 0x1f, 0xc0, 0x76, 0x9f, 0x3f, 0x7d, 0x89, 0x2c, 0x07, 0x68, - 0x16, 0x9a, 0xb5, 0xfd, 0x39, 0x5c, 0xd0, 0xb7, 0x2b, 0x6d, 0x4e, 0x19, 0x9f, 0xbd, 0xb8, 0x82, - 0x7d, 0x9f, 0xa4, 0xf9, 0x8b, 0xab, 0x37, 0xf6, 0x31, 0xf4, 0x54, 0xd0, 0x7f, 0x99, 0x7a, 0x34, - 0x42, 0xdc, 0x97, 0x00, 0x27, 0x94, 0xfb, 0xae, 0x50, 0x3b, 0x13, 0x76, 0x32, 0x9b, 0x97, 0x0e, - 0x28, 0xc7, 0x17, 0xdc, 0x69, 0x9d, 0xe4, 0x4b, 0x65, 0x5f, 0x44, 0x85, 0x74, 0xf1, 0x45, 0x47, - 0x13, 0x5a, 0x8a, 0xf2, 0x54, 0x11, 0xec, 0x7f, 0x59, 0x78, 0xc9, 0x6e, 0x96, 0x45, 0x53, 0x94, - 0xb8, 0x0d, 0x5d, 0x9a, 0x65, 0x51, 0xc8, 0x7c, 0xb7, 0x38, 0x06, 0x74, 0x0c, 0x51, 0xcb, 0x91, - 0x7b, 0x70, 0x41, 0x1f, 0xeb, 0xa5, 0x71, 0x1c, 0xe6, 0xa7, 0x57, 0x35, 0x70, 0x4d, 0x31, 0xf6, - 0x35, 0x1d, 0xb1, 0xb7, 0xa0, 0x53, 0x82, 0x61, 0xee, 0xb4, 0xbd, 0x02, 0xe4, 0x26, 0x98, 0xad, - 0xab, 0x67, 0x0c, 0x7c, 0x49, 0x01, 0x49, 0x47, 0x8c, 0xc7, 0xe4, 0x17, 0xb0, 0x26, 0xf3, 0x29, - 0xc5, 0x98, 0x5f, 0x59, 0xda, 0xc8, 0xce, 0xce, 0x33, 0x4e, 0x4f, 0x96, 0xf6, 0x76, 0x08, 0xa0, - 0xf3, 0x03, 0xcd, 0xdd, 0x80, 0x56, 0x1c, 0x26, 0x25, 0x53, 0x9b, 0x71, 0x98, 0xa0, 0x5e, 0x77, - 0xa1, 0x6e, 0x46, 0xbb, 0xca, 0xf2, 0x1a, 0x43, 0x2e, 0xb9, 0x0c, 0x75, 0x54, 0xd6, 0xf8, 0xc0, - 0xec, 0x54, 0xe1, 0x76, 0x8a, 0xb9, 0x48, 0xb6, 0xa0, 0x2f, 0xd2, 0x09, 0xf7, 0x98, 0xbb, 0x38, - 0x64, 0xf7, 0x90, 0xee, 0xe4, 0xa3, 0xf6, 0xd7, 0xd0, 0x31, 0x48, 0x1c, 0x76, 0x2b, 0xe7, 0x0c, - 0xbb, 0x08, 0xc4, 0x61, 0xf7, 0xfe, 0x4c, 0x4e, 0xcd, 0xde, 0xc2, 0x54, 0x76, 0xb9, 0xac, 0x8c, - 0x80, 0x5a, 0x0b, 0xa5, 0x12, 0x5a, 0x51, 0x50, 0x09, 0x43, 0xd4, 0x43, 0x7a, 0x51, 0x25, 0x83, - 0xfc, 0xf0, 0xfc, 0x8d, 0xc0, 0x99, 0x4a, 0x46, 0x0e, 0x55, 0x5a, 0x56, 0xe9, 0x46, 0x00, 0x55, - 0x9a, 0x4d, 0xa0, 0x8d, 0xc2, 0x04, 0x6a, 0xff, 0x41, 0x75, 0x41, 0x7d, 0x47, 0xa1, 0x24, 0xb6, - 0xf5, 0x8c, 0x66, 0xaa, 0xa1, 0xb7, 0x33, 0x58, 0x48, 0x07, 0x75, 0x1e, 0x66, 0x01, 0xc2, 0x0a, - 0x5d, 0xb3, 0x72, 0x6e, 0xd7, 0xfc, 0x16, 0x70, 0x6c, 0x37, 0xc9, 0x86, 0x2f, 0xd7, 0xd5, 0x65, - 0x6d, 0x06, 0x8f, 0x87, 0x78, 0x9e, 0x52, 0xb7, 0x94, 0xbd, 0xea, 0xe1, 0x28, 0x27, 0x3c, 0xd2, - 0x30, 0xb1, 0x96, 0xf4, 0xbf, 0xd5, 0x8f, 0xea, 0x7f, 0xf5, 0xff, 0xb9, 0xff, 0xfd, 0xd3, 0x82, - 0x4f, 0xd0, 0xd8, 0x43, 0x35, 0x1a, 0x24, 0x1e, 0x7b, 0x36, 0x89, 0x8f, 0x19, 0x77, 0x58, 0xa4, - 0xe7, 0xd5, 0xf3, 0xbf, 0x00, 0x3f, 0x83, 0x35, 0x61, 0xc4, 0xdc, 0x44, 0xcb, 0x99, 0xa6, 0xd2, - 0x13, 0xa5, 0xd3, 0xc8, 0x43, 0xd5, 0x1e, 0xb3, 0x68, 0x5a, 0x72, 0xe0, 0xf5, 0x25, 0xd5, 0x3a, - 0x6f, 0x3d, 0xaa, 0x51, 0xce, 0xda, 0xd0, 0xde, 0xec, 0x63, 0x0f, 0x0f, 0xc0, 0xd7, 0xff, 0xe6, - 0xe2, 0x01, 0x0b, 0xf9, 0x90, 0x7f, 0xf8, 0x61, 0xa5, 0xff, 0xde, 0x82, 0xf5, 0xdd, 0x53, 0x1a, - 0x46, 0xf4, 0x38, 0x8c, 0x42, 0x39, 0xdd, 0x4f, 0x13, 0xc9, 0xde, 0x48, 0xf2, 0x29, 0xf4, 0xf4, - 0x67, 0xec, 0xa2, 0x99, 0x1d, 0x45, 0x9d, 0xa5, 0xfb, 0x4f, 0xe1, 0x42, 0x11, 0xf5, 0xc1, 0x32, - 0x5c, 0x9b, 0x4b, 0x63, 0xde, 0x6f, 0x42, 0x7b, 0x92, 0x50, 0xbc, 0x3f, 0x62, 0xe6, 0x03, 0xa3, - 0x48, 0x52, 0x2f, 0xaa, 0xe4, 0x61, 0x1c, 0x33, 0x2c, 0xb9, 0xa6, 0x93, 0x6f, 0xed, 0xff, 0x83, - 0xee, 0x93, 0x68, 0x22, 0x4e, 0x86, 0x2c, 0xd6, 0x79, 0x73, 0x6e, 0x54, 0xec, 0x3f, 0x5b, 0xd0, - 0xde, 0x57, 0x33, 0xe0, 0xcf, 0x3d, 0xfd, 0x55, 0xfd, 0xdf, 0x19, 0x78, 0x17, 0xd6, 0xf4, 0xe0, - 0x58, 0x80, 0x61, 0x2c, 0xbb, 0x9a, 0x3c, 0xc3, 0xed, 0x02, 0x29, 0xe1, 0xd0, 0x13, 0xd5, 0xf7, - 0x7b, 0xa2, 0x5f, 0x90, 0x47, 0x57, 0x7c, 0x01, 0x80, 0x47, 0xe8, 0x3f, 0x04, 0x6a, 0x4b, 0xfe, - 0x10, 0x68, 0x69, 0xbe, 0x5a, 0xda, 0x3f, 0x54, 0xa1, 0x53, 0xfc, 0x08, 0x26, 0x5f, 0x41, 0x4d, - 0x4e, 0xb3, 0xbc, 0xc6, 0x6f, 0x9e, 0xf3, 0xbd, 0x7c, 0x34, 0xcd, 0x98, 0xa3, 0xc1, 0xf3, 0x26, - 0x52, 0x29, 0x7e, 0xc6, 0xfe, 0x3f, 0xb4, 0xe7, 0x8a, 0x2c, 0xef, 0x8e, 0x30, 0xd3, 0x44, 0x0f, - 0x88, 0xaf, 0x69, 0x28, 0x5d, 0x3d, 0x24, 0x61, 0x88, 0x9a, 0x8a, 0xa0, 0x27, 0xb0, 0x3b, 0xd0, - 0x1b, 0xa5, 0xdc, 0x63, 0xd1, 0xd4, 0xa5, 0xaf, 0xe9, 0x98, 0x25, 0xba, 0x23, 0x36, 0x9d, 0xae, - 0xa1, 0xee, 0x6a, 0x22, 0x79, 0x08, 0xe8, 0x4f, 0x37, 0xf0, 0xd0, 0xfc, 0xfa, 0xd2, 0xaf, 0x83, - 0x42, 0xfc, 0x1c, 0xd4, 0xd1, 0x04, 0x73, 0x1f, 0x7a, 0x23, 0x95, 0x0a, 0x6e, 0x6c, 0x72, 0x41, - 0xb7, 0xc5, 0xf6, 0xce, 0x27, 0x0b, 0x07, 0x94, 0xf2, 0xc5, 0xe9, 0x8e, 0x4a, 0xe9, 0xf3, 0x02, - 0x2e, 0xd2, 0x42, 0x25, 0xb8, 0x1e, 0x96, 0x82, 0xfe, 0x43, 0xa3, 0xbd, 0x63, 0x2f, 0x4e, 0xb0, - 0x67, 0x8b, 0xc6, 0x59, 0xa7, 0x67, 0x89, 0xf7, 0x1c, 0x68, 0xcd, 0x5a, 0x2c, 0x01, 0xa8, 0x3f, - 0x4b, 0x79, 0x4c, 0xa3, 0xfe, 0x0a, 0xe9, 0x40, 0x53, 0x17, 0x76, 0x98, 0x04, 0x7d, 0x8b, 0x74, - 0xa1, 0x35, 0xfb, 0xaf, 0xa5, 0x5f, 0x21, 0x6d, 0x68, 0xa8, 0x0e, 0xa5, 0x78, 0x55, 0xb2, 0x06, - 0xed, 0x17, 0xf3, 0x92, 0xe8, 0xd7, 0xee, 0xbd, 0xad, 0x42, 0x7f, 0x31, 0xa6, 0x64, 0x1d, 0xd6, - 0x86, 0x22, 0xc0, 0x94, 0x7a, 0x45, 0xc7, 0xec, 0x45, 0xd6, 0x5f, 0x21, 0x03, 0xb8, 0x38, 0x14, - 0xc1, 0x2b, 0x9a, 0x48, 0x27, 0x8d, 0xa2, 0x63, 0xea, 0x8d, 0x75, 0xe3, 0xeb, 0x5b, 0xe4, 0x12, - 0x5c, 0x18, 0x8a, 0x40, 0xbb, 0xf4, 0x50, 0xd2, 0x48, 0x3f, 0x75, 0xfd, 0x0a, 0xb9, 0x0e, 0x57, - 0xcf, 0x90, 0xf3, 0xa9, 0xbe, 0x5f, 0x25, 0x57, 0x60, 0x7d, 0x28, 0x82, 0x83, 0xf0, 0x98, 0xf1, - 0x44, 0x35, 0x13, 0xfc, 0x74, 0xea, 0xd7, 0xcc, 0x45, 0x05, 0x86, 0x11, 0x59, 0x25, 0x9f, 0xc1, - 0x6d, 0xad, 0xd7, 0xaf, 0x99, 0x27, 0x71, 0x5a, 0x0b, 0xf6, 0xe9, 0x44, 0x30, 0x7f, 0x6f, 0x3a, - 0x64, 0x71, 0xca, 0xa7, 0xfa, 0x9f, 0x96, 0x7e, 0x9d, 0x5c, 0x83, 0xcb, 0x43, 0x11, 0x14, 0x1d, - 0x9b, 0x1f, 0xdf, 0x20, 0x1b, 0x70, 0xe5, 0x0c, 0xcf, 0xdc, 0xd0, 0x24, 0x36, 0xdc, 0x18, 0x8a, - 0xe0, 0x65, 0x2a, 0x95, 0xaa, 0x59, 0x14, 0xea, 0x49, 0x46, 0xbf, 0x22, 0xf9, 0x01, 0x2d, 0x72, - 0x1b, 0x6e, 0xbe, 0x17, 0x63, 0x0e, 0x02, 0x72, 0x11, 0xfa, 0x43, 0x11, 0x98, 0x0c, 0x33, 0xa2, - 0x6d, 0xe3, 0xa9, 0x9c, 0x6a, 0xc0, 0x1d, 0x03, 0x2e, 0xa5, 0x54, 0xbf, 0xbb, 0x77, 0xf7, 0x6f, - 0x3f, 0x34, 0xad, 0x3f, 0xbe, 0xbb, 0x61, 0xfd, 0xe5, 0xdd, 0x0d, 0xeb, 0xef, 0xef, 0x6e, 0x58, - 0x6f, 0xff, 0x71, 0x63, 0x05, 0xfa, 0x29, 0x0f, 0xb6, 0x65, 0x38, 0x3e, 0xdd, 0x1e, 0x9f, 0xea, - 0x3f, 0x15, 0x8f, 0xeb, 0xfa, 0xe7, 0xab, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xa5, 0xb2, 0x08, - 0x1b, 0xd0, 0x14, 0x00, 0x00, + 0x63, 0x8e, 0x29, 0xe7, 0x92, 0x6b, 0x8e, 0xb9, 0xa4, 0x52, 0x40, 0x63, 0xc8, 0x19, 0x8a, 0x96, + 0x13, 0x9f, 0x08, 0xf4, 0x03, 0xe8, 0xc7, 0xaf, 0x1b, 0x3d, 0x84, 0x75, 0x4e, 0x47, 0xd2, 0x15, + 0x8c, 0x9f, 0x32, 0x9e, 0x1d, 0x6f, 0x67, 0x3c, 0x95, 0x29, 0xe9, 0x96, 0x88, 0xd7, 0xba, 0x4c, + 0xed, 0x73, 0xee, 0xb5, 0x4e, 0xcc, 0x24, 0x9d, 0xed, 0xba, 0xe3, 0x53, 0x9e, 0x79, 0xb3, 0x6d, + 0xdf, 0x0f, 0xc5, 0xd8, 0x9d, 0x08, 0x1a, 0x30, 0x43, 0x59, 0xe3, 0x13, 0x21, 0xf5, 0x12, 0x09, + 0xf6, 0xbf, 0xaa, 0xd0, 0x76, 0xe8, 0x48, 0x0e, 0x99, 0x50, 0x62, 0x64, 0x03, 0x5a, 0x9c, 0x05, + 0x61, 0x9a, 0xb8, 0xa1, 0x3f, 0xb0, 0x36, 0xad, 0xad, 0x9a, 0xd3, 0x44, 0xc2, 0x53, 0x9f, 0x7c, + 0x0e, 0xad, 0x11, 0x4f, 0x63, 0x37, 0x63, 0x8c, 0x0f, 0x2a, 0x9b, 0xd6, 0x56, 0x7b, 0xa7, 0xb3, + 0x6d, 0x0c, 0x78, 0xce, 0x18, 0x77, 0x9a, 0x8a, 0xad, 0x56, 0xe4, 0x0e, 0x34, 0x64, 0x8a, 0x82, + 0xd5, 0x25, 0x82, 0x75, 0x99, 0x6a, 0xb1, 0x7b, 0xd0, 0x88, 0xf1, 0xe6, 0x41, 0x4d, 0x8b, 0xf5, + 0xb7, 0x73, 0xff, 0x8c, 0x45, 0x4e, 0x2e, 0x40, 0xbe, 0x86, 0x8e, 0x31, 0x8d, 0x65, 0xa9, 0x77, + 0x32, 0x58, 0xd5, 0x0a, 0xeb, 0xf9, 0xb9, 0x8e, 0xe6, 0x3d, 0x56, 0x2c, 0xa7, 0xcd, 0xe7, 0x1b, + 0x72, 0x0b, 0x3a, 0xa1, 0x70, 0x65, 0x1a, 0x1f, 0x0b, 0x99, 0x26, 0x6c, 0x50, 0xdf, 0xb4, 0xb6, + 0x9a, 0x4e, 0x3b, 0x14, 0x47, 0x39, 0x49, 0x79, 0x2d, 0x24, 0xe5, 0xd2, 0x1d, 0xb3, 0xe9, 0xa0, + 0xb1, 0x69, 0x6d, 0x75, 0x9c, 0xa6, 0x26, 0x7c, 0xc7, 0xa6, 0xe4, 0x0a, 0x34, 0x58, 0xe2, 0x6b, + 0x56, 0x53, 0xb3, 0xea, 0x2c, 0xf1, 0x15, 0xe3, 0x4b, 0xe8, 0xc4, 0x8c, 0x07, 0xcc, 0x95, 0x94, + 0x07, 0x4c, 0x0e, 0x5a, 0xda, 0xa0, 0x5e, 0xd9, 0x20, 0xa7, 0xad, 0x65, 0x8e, 0xb4, 0x08, 0xf9, + 0x06, 0x5a, 0xec, 0x8d, 0xe4, 0xd4, 0x8d, 0x45, 0x30, 0x00, 0x2d, 0xbf, 0xb1, 0x5d, 0xce, 0xfa, + 0x63, 0xc5, 0xcf, 0x9d, 0x6f, 0x6a, 0xe9, 0xa1, 0x08, 0x94, 0x89, 0xa8, 0xe9, 0xc9, 0x37, 0x83, + 0x36, 0x9a, 0xa8, 0x09, 0xfb, 0xf2, 0x0d, 0x79, 0x00, 0x30, 0x4f, 0xf5, 0xa0, 0xb3, 0x69, 0x6d, + 0xf5, 0x76, 0x2e, 0x6d, 0x17, 0xb2, 0xff, 0x28, 0x14, 0xe3, 0x17, 0xfa, 0xc4, 0x96, 0x9f, 0x2f, + 0xed, 0x87, 0x40, 0x54, 0xea, 0x8f, 0xf8, 0x24, 0xf1, 0xa8, 0x64, 0xfe, 0xa1, 0xa4, 0x92, 0x91, + 0x8b, 0xb0, 0x1a, 0x26, 0x3e, 0x7b, 0x63, 0xb2, 0x8f, 0x1b, 0x42, 0xa0, 0x26, 0x19, 0x8f, 0x75, + 0xd6, 0x6b, 0x8e, 0x5e, 0xdb, 0xcf, 0xa1, 0x77, 0x98, 0xd0, 0x4c, 0x9c, 0xa4, 0x72, 0xff, 0xc9, + 0x93, 0x30, 0x62, 0xa4, 0x07, 0x15, 0x6f, 0xa4, 0x15, 0x5b, 0x4e, 0xc5, 0x1b, 0x29, 0x2d, 0x11, + 0xfe, 0x86, 0xe5, 0x5a, 0x6a, 0x4d, 0xae, 0x41, 0xd3, 0x3b, 0x61, 0xde, 0x58, 0x4c, 0x62, 0x0d, + 0x8d, 0xae, 0x33, 0xdb, 0xdb, 0xff, 0xb6, 0xa0, 0x93, 0x1f, 0x39, 0x64, 0x92, 0x92, 0x6f, 0xa0, + 0xe9, 0x8d, 0xdc, 0x51, 0x18, 0x31, 0x31, 0xb0, 0x36, 0xab, 0x5b, 0xed, 0x9d, 0xeb, 0x0b, 0xe1, + 0x2a, 0x5b, 0xe0, 0x34, 0xbc, 0x91, 0xfa, 0x15, 0xe4, 0x26, 0xb4, 0x47, 0x29, 0x77, 0x8f, 0x69, + 0x44, 0x13, 0x0f, 0x2d, 0x68, 0x3a, 0x30, 0x4a, 0xf9, 0x1e, 0x52, 0x72, 0x81, 0xd7, 0xa1, 0x4c, + 0x98, 0x10, 0xda, 0x14, 0x14, 0x78, 0x85, 0x14, 0x15, 0x08, 0x8d, 0x01, 0x8d, 0xcc, 0x9a, 0x83, + 0x1b, 0xb2, 0x03, 0x97, 0x02, 0x96, 0x30, 0x4e, 0x25, 0x73, 0xfd, 0x09, 0xa7, 0x52, 0x01, 0x52, + 0x30, 0x4f, 0xc3, 0xb1, 0xe6, 0xac, 0xe7, 0xcc, 0x47, 0x86, 0x77, 0xc8, 0x3c, 0xb2, 0x05, 0x7d, + 0x49, 0x8f, 0x23, 0x26, 0x5d, 0x91, 0xd0, 0xcc, 0xcd, 0xa8, 0x3c, 0xd1, 0x28, 0x6c, 0x39, 0x3d, + 0xa4, 0x2b, 0x27, 0x9e, 0x53, 0x79, 0x62, 0xff, 0x0a, 0xba, 0x33, 0x87, 0x4e, 0x26, 0xc9, 0x98, + 0x3c, 0x98, 0x17, 0x88, 0xa5, 0xe1, 0x72, 0x6d, 0xc1, 0xff, 0x42, 0xf1, 0xce, 0x4b, 0x85, 0x40, + 0xcd, 0xa7, 0x92, 0x6a, 0xaf, 0x3b, 0x8e, 0x5e, 0xdb, 0x75, 0xa8, 0x3d, 0x4a, 0x13, 0x66, 0xbf, + 0xb5, 0xe0, 0xf2, 0xd1, 0xec, 0x56, 0x75, 0x93, 0x0a, 0x98, 0x8e, 0xf6, 0x06, 0xb4, 0x54, 0xa8, + 0x5d, 0x9d, 0x33, 0x53, 0xfc, 0x8a, 0x70, 0xa8, 0xf2, 0x96, 0x33, 0x13, 0x1a, 0x63, 0x38, 0x5b, + 0xc8, 0x7c, 0x46, 0x63, 0x46, 0xae, 0x03, 0x9c, 0x30, 0xea, 0xbb, 0x9e, 0x32, 0x5a, 0xc7, 0xb2, + 0xe3, 0xb4, 0x14, 0x05, 0xbd, 0xb8, 0x03, 0x3d, 0xc9, 0x69, 0x18, 0x85, 0x49, 0x60, 0x44, 0x6a, + 0x5a, 0xa4, 0x9b, 0x53, 0xb5, 0x98, 0x3d, 0x82, 0x4b, 0x65, 0xcb, 0x9e, 0x73, 0x76, 0x1a, 0xb2, + 0xd7, 0xe4, 0x27, 0xb0, 0xaa, 0x8a, 0x2a, 0xc7, 0xc0, 0x9d, 0x85, 0x18, 0x2c, 0x77, 0xc7, 0x41, + 0x1d, 0xd2, 0x87, 0x2a, 0x4b, 0x7c, 0x83, 0x00, 0xb5, 0xb4, 0x03, 0xb8, 0x72, 0x56, 0x05, 0x2d, + 0xfd, 0xf8, 0x10, 0xe4, 0x31, 0xaf, 0x16, 0x62, 0x1e, 0x00, 0x29, 0x5f, 0x74, 0xc0, 0xa8, 0xff, + 0x91, 0x39, 0xdd, 0x80, 0xd6, 0x44, 0x30, 0xd7, 0xa3, 0xde, 0x49, 0x0e, 0xe7, 0xe6, 0x44, 0xb0, + 0x7d, 0xb5, 0xb7, 0xef, 0xc3, 0x85, 0xf2, 0x45, 0x8f, 0x13, 0xbf, 0x54, 0x69, 0xc6, 0x95, 0x59, + 0xa5, 0xfd, 0xae, 0xb2, 0x18, 0x6b, 0x87, 0x7d, 0x3f, 0x61, 0x42, 0x92, 0x1f, 0x43, 0x4d, 0x25, + 0xce, 0x98, 0x76, 0xeb, 0xdc, 0x50, 0x2b, 0x77, 0x0e, 0x56, 0x1c, 0xad, 0x40, 0x7e, 0x06, 0x8d, + 0x0c, 0xf3, 0x65, 0xde, 0x86, 0x4f, 0xcf, 0xd5, 0x35, 0xb9, 0x3d, 0x58, 0x71, 0x72, 0x35, 0xf2, + 0x10, 0x56, 0xe7, 0x00, 0x6a, 0xef, 0xdc, 0xfd, 0x60, 0x9a, 0x75, 0xce, 0x0e, 0x56, 0x1c, 0x54, + 0x23, 0x0f, 0x30, 0xd3, 0xf8, 0x92, 0x6c, 0x9e, 0xab, 0xfd, 0x38, 0x51, 0x86, 0x2b, 0xf1, 0xbd, + 0x16, 0x34, 0x32, 0x3a, 0x8d, 0x52, 0xea, 0xdb, 0x0f, 0xe0, 0xd2, 0xae, 0xe7, 0xb1, 0x4c, 0x35, + 0xc3, 0xc2, 0x35, 0xa2, 0x9c, 0x79, 0x05, 0xc2, 0x42, 0xe6, 0xed, 0xa3, 0xc5, 0x82, 0x72, 0x98, + 0xc8, 0xd2, 0x44, 0x30, 0xf2, 0x2d, 0xac, 0xe6, 0xbd, 0x6b, 0x59, 0x40, 0x96, 0xde, 0xe5, 0xa0, + 0x8a, 0xbd, 0x03, 0xcd, 0xef, 0xd8, 0xf4, 0x25, 0x8d, 0x26, 0x4c, 0x41, 0x58, 0x3d, 0x3f, 0x96, + 0x86, 0x96, 0x5a, 0xaa, 0xe6, 0x74, 0xaa, 0x58, 0xa6, 0xc4, 0x71, 0x63, 0xff, 0xa9, 0x02, 0x7d, + 0x05, 0x9e, 0xfc, 0xc0, 0x47, 0x54, 0x52, 0x72, 0x17, 0xea, 0xf8, 0x1c, 0x1a, 0x2b, 0x16, 0x1f, + 0x28, 0xc3, 0x2d, 0x43, 0xbf, 0xb2, 0x00, 0xfd, 0x2f, 0x66, 0xe8, 0x56, 0x05, 0x78, 0x65, 0xc1, + 0x91, 0xdc, 0x50, 0x84, 0x3d, 0x19, 0x40, 0xe3, 0x94, 0x71, 0xa1, 0xae, 0xc4, 0xde, 0x99, 0x6f, + 0xc9, 0x7d, 0xa8, 0xa9, 0xcb, 0xcd, 0xdb, 0xbd, 0xf1, 0x9e, 0x5e, 0xae, 0xab, 0x57, 0x0b, 0x92, + 0x1f, 0xc1, 0x1a, 0x67, 0x71, 0x7a, 0xca, 0x7c, 0x97, 0x33, 0x2f, 0xe5, 0xbe, 0x18, 0xd4, 0xb5, + 0x09, 0xe5, 0x79, 0xa2, 0x67, 0x84, 0x1c, 0x94, 0x21, 0x7b, 0xd0, 0xd3, 0xcf, 0xee, 0x5c, 0xab, + 0xa1, 0xb5, 0x16, 0x6f, 0x1c, 0x6a, 0x21, 0xd4, 0x72, 0xba, 0x71, 0x61, 0x27, 0xec, 0xdf, 0x02, + 0x1c, 0xca, 0x94, 0xb3, 0xa7, 0x3e, 0x4b, 0xa4, 0xea, 0x70, 0x5e, 0x34, 0x11, 0x92, 0xf1, 0xf9, + 0x64, 0xd4, 0x32, 0x94, 0xa7, 0x3e, 0xb9, 0x0a, 0x4d, 0xa1, 0x84, 0x15, 0x13, 0x63, 0xd7, 0x10, + 0xa8, 0x4c, 0x1e, 0x40, 0x9b, 0x66, 0xa1, 0x9b, 0x47, 0xa4, 0xaa, 0x5f, 0xe7, 0xf5, 0xed, 0x7c, + 0x54, 0xdb, 0x7d, 0xfe, 0xf4, 0x25, 0xb2, 0x1c, 0xa0, 0x59, 0x68, 0xd6, 0xf6, 0xe7, 0x70, 0x41, + 0xdf, 0xae, 0xac, 0x39, 0x65, 0x7c, 0xf6, 0x36, 0x0b, 0xf6, 0x7d, 0x92, 0xe6, 0x6f, 0xb3, 0xde, + 0xd8, 0xc7, 0xd0, 0x53, 0x49, 0xff, 0x65, 0xea, 0xd1, 0x08, 0xe5, 0xbe, 0x04, 0x38, 0xa1, 0xdc, + 0x77, 0x85, 0xda, 0x99, 0xb4, 0x93, 0xd9, 0x64, 0x75, 0x40, 0x39, 0xbe, 0xf5, 0x4e, 0xeb, 0x24, + 0x5f, 0x2a, 0xff, 0x22, 0x2a, 0xa4, 0x8b, 0x6f, 0x3f, 0xba, 0xd0, 0x52, 0x94, 0xa7, 0x8a, 0x60, + 0xff, 0xd3, 0xc2, 0x4b, 0x76, 0xb3, 0x2c, 0x9a, 0xa2, 0xc6, 0x6d, 0xe8, 0xd2, 0x2c, 0x8b, 0x42, + 0xe6, 0xbb, 0xc5, 0x81, 0xa1, 0x63, 0x88, 0x5a, 0x8f, 0xdc, 0x83, 0x0b, 0xfa, 0x58, 0x2f, 0x8d, + 0xe3, 0x30, 0x3f, 0xbd, 0xaa, 0x05, 0xd7, 0x14, 0x63, 0x5f, 0xd3, 0x51, 0xf6, 0x16, 0x74, 0x4a, + 0x62, 0x88, 0x9d, 0xb6, 0x57, 0x10, 0xb9, 0x09, 0x66, 0xeb, 0xea, 0x69, 0x04, 0xdf, 0x5c, 0x40, + 0xd2, 0x11, 0xe3, 0x31, 0xf9, 0x05, 0xac, 0xc9, 0x7c, 0x9e, 0x31, 0xee, 0x57, 0x96, 0x36, 0xb2, + 0xb3, 0x93, 0x8f, 0xd3, 0x93, 0xa5, 0xbd, 0x1d, 0x02, 0x68, 0x7c, 0xa0, 0xbb, 0x1b, 0xd0, 0x8a, + 0xc3, 0xa4, 0xe4, 0x6a, 0x33, 0x0e, 0x13, 0xb4, 0xeb, 0x2e, 0xd4, 0xcd, 0x10, 0x58, 0x59, 0x5e, + 0x63, 0xc8, 0x25, 0x97, 0xa1, 0x8e, 0xc6, 0x9a, 0x18, 0x98, 0x9d, 0x2a, 0xdc, 0x4e, 0x11, 0x8b, + 0x6a, 0x64, 0x10, 0xe9, 0x84, 0x7b, 0xcc, 0x5d, 0x1c, 0xc7, 0x7b, 0x48, 0x77, 0xf2, 0xa1, 0xfc, + 0x6b, 0xe8, 0x18, 0x49, 0x1c, 0x8b, 0x2b, 0xe7, 0x8c, 0xc5, 0x28, 0x88, 0x63, 0xf1, 0xfd, 0x99, + 0x9e, 0x9a, 0xd2, 0x85, 0xa9, 0xec, 0x72, 0x59, 0x19, 0x05, 0xb5, 0x16, 0x38, 0xc5, 0x28, 0x2f, + 0x0a, 0x26, 0x61, 0x8a, 0x7a, 0x48, 0x2f, 0x9a, 0x64, 0x24, 0x3f, 0x3c, 0xa9, 0xa3, 0xe0, 0xcc, + 0x24, 0xa3, 0x87, 0x26, 0x2d, 0xab, 0x74, 0xa3, 0x80, 0x26, 0xcd, 0x66, 0xd5, 0x46, 0x61, 0x56, + 0xb5, 0xff, 0xa0, 0xba, 0xa0, 0xbe, 0xa3, 0x50, 0x12, 0xdb, 0x7a, 0x9a, 0x33, 0xd5, 0xd0, 0xdb, + 0x19, 0x2c, 0xc0, 0x41, 0x9d, 0x87, 0x28, 0x40, 0xb1, 0x42, 0xd7, 0xac, 0x9c, 0xdb, 0x35, 0xbf, + 0x05, 0x1c, 0xf0, 0x0d, 0xd8, 0xf0, 0xe5, 0xba, 0xba, 0xac, 0xcd, 0xe0, 0xf1, 0x10, 0xcf, 0x21, + 0x75, 0x4b, 0xf9, 0xab, 0xe7, 0xc2, 0x12, 0xe0, 0x91, 0x86, 0xc0, 0x5a, 0xd2, 0xff, 0x56, 0x3f, + 0xaa, 0xff, 0xd5, 0xff, 0xe7, 0xfe, 0xf7, 0x0f, 0x0b, 0x3e, 0x41, 0x67, 0x0f, 0xd5, 0x68, 0x90, + 0x78, 0xec, 0xd9, 0x24, 0x3e, 0x66, 0xdc, 0x61, 0x91, 0x9e, 0x6c, 0xcf, 0xff, 0x56, 0xfc, 0x0c, + 0xd6, 0x84, 0x51, 0x73, 0x13, 0xad, 0x67, 0x9a, 0x4a, 0x4f, 0x94, 0x4e, 0x23, 0x0f, 0x55, 0x7b, + 0xcc, 0xa2, 0x69, 0x29, 0x80, 0xd7, 0x97, 0x54, 0xeb, 0xbc, 0xf5, 0xa8, 0x46, 0x39, 0x6b, 0x43, + 0x7b, 0xb3, 0xcf, 0x42, 0x3c, 0x00, 0x5f, 0xff, 0x9b, 0x8b, 0x07, 0x2c, 0xe0, 0x21, 0xff, 0x44, + 0xc4, 0x4a, 0xff, 0xbd, 0x05, 0xeb, 0xbb, 0xa7, 0x34, 0x8c, 0xe8, 0x71, 0x18, 0x85, 0x72, 0xba, + 0x9f, 0x26, 0x92, 0xbd, 0x91, 0xe4, 0x53, 0xe8, 0xe9, 0x0f, 0xde, 0x45, 0x37, 0x3b, 0x8a, 0x3a, + 0x83, 0xfb, 0x4f, 0xe1, 0x42, 0x51, 0xea, 0x83, 0x65, 0xb8, 0x36, 0xd7, 0x46, 0xdc, 0x6f, 0x42, + 0x7b, 0x92, 0x50, 0xbc, 0x3f, 0x62, 0xe6, 0x53, 0xa4, 0x48, 0x52, 0x2f, 0xaa, 0xe4, 0x61, 0x1c, + 0x33, 0x2c, 0xb9, 0xa6, 0x93, 0x6f, 0xed, 0xff, 0x83, 0xee, 0x93, 0x68, 0x22, 0x4e, 0x86, 0x2c, + 0xd6, 0xb8, 0x39, 0x37, 0x2b, 0xf6, 0x9f, 0x2d, 0x68, 0xef, 0xab, 0x19, 0xf0, 0xe7, 0x9e, 0xfe, + 0xfe, 0xfe, 0xef, 0x1c, 0xbc, 0x0b, 0x6b, 0x7a, 0x70, 0x2c, 0x88, 0x61, 0x2e, 0xbb, 0x9a, 0x3c, + 0x93, 0xdb, 0x05, 0x52, 0x92, 0xc3, 0x48, 0x54, 0xdf, 0x1f, 0x89, 0x7e, 0x41, 0x1f, 0x43, 0xf1, + 0x05, 0x00, 0x1e, 0xa1, 0xff, 0x3a, 0xa8, 0x2d, 0xf9, 0xeb, 0xa0, 0xa5, 0xf9, 0x6a, 0x69, 0xff, + 0x50, 0x85, 0x4e, 0xf1, 0x73, 0x99, 0x7c, 0x05, 0x35, 0x39, 0xcd, 0xf2, 0x1a, 0xbf, 0x79, 0xce, + 0x97, 0xf5, 0xd1, 0x34, 0x63, 0x8e, 0x16, 0x9e, 0x37, 0x91, 0x4a, 0xf1, 0x83, 0xf7, 0xff, 0xa1, + 0x3d, 0x37, 0x64, 0x79, 0x77, 0x84, 0x99, 0x25, 0x7a, 0x40, 0x7c, 0x4d, 0x43, 0xe9, 0xea, 0x21, + 0x09, 0x53, 0xd4, 0x54, 0x04, 0x3d, 0x81, 0xdd, 0x81, 0xde, 0x28, 0xe5, 0x1e, 0x8b, 0xa6, 0x2e, + 0x7d, 0x4d, 0xc7, 0x2c, 0xd1, 0x1d, 0xb1, 0xe9, 0x74, 0x0d, 0x75, 0x57, 0x13, 0xc9, 0x43, 0xc0, + 0x78, 0xba, 0x81, 0x87, 0xee, 0xd7, 0x97, 0x7e, 0x1d, 0x14, 0xf2, 0xe7, 0xa0, 0x8d, 0x26, 0x99, + 0xfb, 0xd0, 0x1b, 0x29, 0x28, 0xb8, 0xb1, 0xc1, 0x82, 0x6e, 0x8b, 0xed, 0x9d, 0x4f, 0x16, 0x0e, + 0x28, 0xe1, 0xc5, 0xe9, 0x8e, 0x4a, 0xf0, 0x79, 0x01, 0x17, 0x69, 0xa1, 0x12, 0x5c, 0x0f, 0x4b, + 0x41, 0xff, 0xf5, 0xd1, 0xde, 0xb1, 0x17, 0x27, 0xd8, 0xb3, 0x45, 0xe3, 0xac, 0xd3, 0xb3, 0xc4, + 0x7b, 0x0e, 0xb4, 0x66, 0x2d, 0x96, 0x00, 0xd4, 0x9f, 0xa5, 0x3c, 0xa6, 0x51, 0x7f, 0x85, 0x74, + 0xa0, 0xa9, 0x0b, 0x3b, 0x4c, 0x82, 0xbe, 0x45, 0xba, 0xd0, 0x9a, 0xfd, 0x2b, 0xd3, 0xaf, 0x90, + 0x36, 0x34, 0x54, 0x87, 0x52, 0xbc, 0x2a, 0x59, 0x83, 0xf6, 0x8b, 0x79, 0x49, 0xf4, 0x6b, 0xf7, + 0xde, 0x56, 0xa1, 0xbf, 0x98, 0x53, 0xb2, 0x0e, 0x6b, 0x43, 0x11, 0x20, 0xa4, 0x5e, 0xd1, 0x31, + 0x7b, 0x91, 0xf5, 0x57, 0xc8, 0x00, 0x2e, 0x0e, 0x45, 0xf0, 0x8a, 0x26, 0xd2, 0x49, 0xa3, 0xe8, + 0x98, 0x7a, 0x63, 0xdd, 0xf8, 0xfa, 0x16, 0xb9, 0x04, 0x17, 0x86, 0x22, 0xd0, 0x21, 0x3d, 0x94, + 0x34, 0xd2, 0x4f, 0x5d, 0xbf, 0x42, 0xae, 0xc3, 0xd5, 0x33, 0xe4, 0x7c, 0xaa, 0xef, 0x57, 0xc9, + 0x15, 0x58, 0x1f, 0x8a, 0xe0, 0x20, 0x3c, 0x66, 0x3c, 0x51, 0xcd, 0x04, 0x3f, 0x9d, 0xfa, 0x35, + 0x73, 0x51, 0x81, 0x61, 0x54, 0x56, 0xc9, 0x67, 0x70, 0x5b, 0xdb, 0xf5, 0x6b, 0xe6, 0x49, 0x9c, + 0xd6, 0x82, 0x7d, 0x3a, 0x11, 0xcc, 0xdf, 0x9b, 0x0e, 0x59, 0x9c, 0xf2, 0xa9, 0xfe, 0x4f, 0xa6, + 0x5f, 0x27, 0xd7, 0xe0, 0xf2, 0x50, 0x04, 0xc5, 0xc0, 0xe6, 0xc7, 0x37, 0xc8, 0x06, 0x5c, 0x39, + 0xc3, 0x33, 0x37, 0x34, 0x89, 0x0d, 0x37, 0x86, 0x22, 0x78, 0x99, 0x4a, 0x65, 0x6a, 0x16, 0x85, + 0x7a, 0x92, 0xd1, 0xaf, 0x48, 0x7e, 0x40, 0x8b, 0xdc, 0x86, 0x9b, 0xef, 0x95, 0x31, 0x07, 0x01, + 0xb9, 0x08, 0xfd, 0xa1, 0x08, 0x0c, 0xc2, 0x8c, 0x6a, 0xdb, 0x44, 0x2a, 0xa7, 0x1a, 0xe1, 0x8e, + 0x11, 0x2e, 0x41, 0xaa, 0xdf, 0xdd, 0xbb, 0xfb, 0xd7, 0x1f, 0x9a, 0xd6, 0x1f, 0xdf, 0xdd, 0xb0, + 0xfe, 0xf2, 0xee, 0x86, 0xf5, 0xb7, 0x77, 0x37, 0xac, 0xb7, 0x7f, 0xbf, 0xb1, 0x02, 0xfd, 0x94, + 0x07, 0xdb, 0x32, 0x1c, 0x9f, 0x6e, 0x8f, 0x4f, 0xf5, 0xdf, 0x8f, 0xc7, 0x75, 0xfd, 0xf3, 0xd5, + 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x58, 0xbe, 0xbb, 0x88, 0xfa, 0x14, 0x00, 0x00, } func (m *RaftMessage) Marshal() (dAtA []byte, err error) { @@ -2513,6 +2523,13 @@ func (m *SnapshotMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.TabletSnapPath) > 0 { + i -= len(m.TabletSnapPath) + copy(dAtA[i:], m.TabletSnapPath) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.TabletSnapPath))) + i-- + dAtA[i] = 0x32 + } if m.GenerateDurationSec != 0 { i = encodeVarintRaftServerpb(dAtA, i, uint64(m.GenerateDurationSec)) i-- @@ -4069,6 +4086,10 @@ func (m *SnapshotMeta) Size() (n int) { if m.GenerateDurationSec != 0 { n += 1 + sovRaftServerpb(uint64(m.GenerateDurationSec)) } + l = len(m.TabletSnapPath) + if l > 0 { + n += 1 + l + sovRaftServerpb(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -5475,6 +5496,38 @@ func (m *SnapshotMeta) Unmarshal(dAtA []byte) error { break } } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TabletSnapPath", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TabletSnapPath = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipRaftServerpb(dAtA[iNdEx:]) diff --git a/proto/raft_serverpb.proto b/proto/raft_serverpb.proto index f18580e..b9722be 100644 --- a/proto/raft_serverpb.proto +++ b/proto/raft_serverpb.proto @@ -51,6 +51,8 @@ message SnapshotMeta { uint64 start = 4; // the duration of generating snapshot uint64 generate_duration_sec = 5; + // the path of the tablet snapshot, it should only be used for v1 to receive snapshot from v2 + string tablet_snap_path = 6; } message SnapshotChunk { diff --git a/scripts/proto.lock b/scripts/proto.lock index fd8f305..1fb1e93 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -15845,6 +15845,11 @@ "id": 5, "name": "generate_duration_sec", "type": "uint64" + }, + { + "id": 6, + "name": "tablet_snap_path", + "type": "string" } ] }, -- Gitee From 0af0becd87ae89dfd48ef313a4fca7e04688b2b2 Mon Sep 17 00:00:00 2001 From: zyguan Date: Wed, 10 May 2023 15:14:51 +0800 Subject: [PATCH 39/44] cherry pick #1105 & #1107 to release 7.1 (#1113) * Add a flag to CheckTxnStatusRequest to tell TiKV to check whether the lock on the key (if any) is a real primary lock (#1105) * Change implementation * Fix typo in comment Signed-off-by: MyonKeminta * Update proto/kvrpcpb.proto Co-authored-by: ekexium --------- Signed-off-by: MyonKeminta Co-authored-by: MyonKeminta Co-authored-by: ekexium * Add error type for primary mismatch (#1107) Signed-off-by: MyonKeminta Co-authored-by: MyonKeminta --------- Signed-off-by: MyonKeminta Co-authored-by: MyonKeminta <9948422+MyonKeminta@users.noreply.github.com> Co-authored-by: MyonKeminta Co-authored-by: ekexium --- pkg/kvrpcpb/kvrpcpb.pb.go | 1280 +++++++++++++++++++++++-------------- pkg/tracepb/tracepb.pb.go | 1 - proto/kvrpcpb.proto | 11 + scripts/proto.lock | 20 + 4 files changed, 820 insertions(+), 492 deletions(-) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index e99f1d5..2f2cb70 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -1859,10 +1859,16 @@ type CheckTxnStatusRequest struct { // If the check request is used to resolve or decide the transaction status for a input pessimistic // lock, the transaction status could not be decided if the primary lock is pessimistic too and // it's still uncertain. - ResolvingPessimisticLock bool `protobuf:"varint,8,opt,name=resolving_pessimistic_lock,json=resolvingPessimisticLock,proto3" json:"resolving_pessimistic_lock,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ResolvingPessimisticLock bool `protobuf:"varint,8,opt,name=resolving_pessimistic_lock,json=resolvingPessimisticLock,proto3" json:"resolving_pessimistic_lock,omitempty"` + // Whether it's needed to check if the lock on the key (if any) is the primary lock. + // This is for handling some corner cases when a pessimistic transaction changes its primary + // (see https://github.com/pingcap/tidb/issues/42937 for details). This field is necessary + // because the old versions of clients cannot handle some results returned from TiKV correctly. + // For new versions, this field should always be set to true. + VerifyIsPrimary bool `protobuf:"varint,9,opt,name=verify_is_primary,json=verifyIsPrimary,proto3" json:"verify_is_primary,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *CheckTxnStatusRequest) Reset() { *m = CheckTxnStatusRequest{} } @@ -1954,14 +1960,20 @@ func (m *CheckTxnStatusRequest) GetResolvingPessimisticLock() bool { return false } +func (m *CheckTxnStatusRequest) GetVerifyIsPrimary() bool { + if m != nil { + return m.VerifyIsPrimary + } + return false +} + type CheckTxnStatusResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Error *KeyError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Three kinds of transaction status: - // - // locked: lock_ttl > 0 - // committed: commit_version > 0 - // rollbacked: lock_ttl = 0 && commit_version = 0 + // locked: lock_ttl > 0 + // committed: commit_version > 0 + // rollbacked: lock_ttl = 0 && commit_version = 0 LockTtl uint64 `protobuf:"varint,3,opt,name=lock_ttl,json=lockTtl,proto3" json:"lock_ttl,omitempty"` CommitVersion uint64 `protobuf:"varint,4,opt,name=commit_version,json=commitVersion,proto3" json:"commit_version,omitempty"` // The action performed by TiKV (and why if the action is to rollback). @@ -6495,6 +6507,7 @@ type KeyError struct { TxnNotFound *TxnNotFound `protobuf:"bytes,8,opt,name=txn_not_found,json=txnNotFound,proto3" json:"txn_not_found,omitempty"` CommitTsTooLarge *CommitTsTooLarge `protobuf:"bytes,9,opt,name=commit_ts_too_large,json=commitTsTooLarge,proto3" json:"commit_ts_too_large,omitempty"` AssertionFailed *AssertionFailed `protobuf:"bytes,10,opt,name=assertion_failed,json=assertionFailed,proto3" json:"assertion_failed,omitempty"` + PrimaryMismatch *PrimaryMismatch `protobuf:"bytes,11,opt,name=primary_mismatch,json=primaryMismatch,proto3" json:"primary_mismatch,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -6603,6 +6616,13 @@ func (m *KeyError) GetAssertionFailed() *AssertionFailed { return nil } +func (m *KeyError) GetPrimaryMismatch() *PrimaryMismatch { + if m != nil { + return m.PrimaryMismatch + } + return nil +} + type WriteConflict struct { StartTs uint64 `protobuf:"varint,1,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"` ConflictTs uint64 `protobuf:"varint,2,opt,name=conflict_ts,json=conflictTs,proto3" json:"conflict_ts,omitempty"` @@ -7060,6 +7080,53 @@ func (m *AssertionFailed) GetExistingCommitTs() uint64 { return 0 } +type PrimaryMismatch struct { + LockInfo *LockInfo `protobuf:"bytes,1,opt,name=lock_info,json=lockInfo,proto3" json:"lock_info,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PrimaryMismatch) Reset() { *m = PrimaryMismatch{} } +func (m *PrimaryMismatch) String() string { return proto.CompactTextString(m) } +func (*PrimaryMismatch) ProtoMessage() {} +func (*PrimaryMismatch) Descriptor() ([]byte, []int) { + return fileDescriptor_1afe832be69693c7, []int{86} +} +func (m *PrimaryMismatch) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PrimaryMismatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PrimaryMismatch.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PrimaryMismatch) XXX_Merge(src proto.Message) { + xxx_messageInfo_PrimaryMismatch.Merge(m, src) +} +func (m *PrimaryMismatch) XXX_Size() int { + return m.Size() +} +func (m *PrimaryMismatch) XXX_DiscardUnknown() { + xxx_messageInfo_PrimaryMismatch.DiscardUnknown(m) +} + +var xxx_messageInfo_PrimaryMismatch proto.InternalMessageInfo + +func (m *PrimaryMismatch) GetLockInfo() *LockInfo { + if m != nil { + return m.LockInfo + } + return nil +} + type TimeDetail struct { // Off-cpu wall time elapsed in TiKV side. Usually this includes queue waiting time and // other kind of waitings in series. (Wait time in the raftstore is not included.) @@ -7083,7 +7150,7 @@ func (m *TimeDetail) Reset() { *m = TimeDetail{} } func (m *TimeDetail) String() string { return proto.CompactTextString(m) } func (*TimeDetail) ProtoMessage() {} func (*TimeDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{86} + return fileDescriptor_1afe832be69693c7, []int{87} } func (m *TimeDetail) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7165,7 +7232,7 @@ func (m *TimeDetailV2) Reset() { *m = TimeDetailV2{} } func (m *TimeDetailV2) String() string { return proto.CompactTextString(m) } func (*TimeDetailV2) ProtoMessage() {} func (*TimeDetailV2) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{87} + return fileDescriptor_1afe832be69693c7, []int{88} } func (m *TimeDetailV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7242,7 +7309,7 @@ func (m *ScanInfo) Reset() { *m = ScanInfo{} } func (m *ScanInfo) String() string { return proto.CompactTextString(m) } func (*ScanInfo) ProtoMessage() {} func (*ScanInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{88} + return fileDescriptor_1afe832be69693c7, []int{89} } func (m *ScanInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7306,7 +7373,7 @@ func (m *ScanDetail) Reset() { *m = ScanDetail{} } func (m *ScanDetail) String() string { return proto.CompactTextString(m) } func (*ScanDetail) ProtoMessage() {} func (*ScanDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{89} + return fileDescriptor_1afe832be69693c7, []int{90} } func (m *ScanDetail) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7402,7 +7469,7 @@ func (m *ScanDetailV2) Reset() { *m = ScanDetailV2{} } func (m *ScanDetailV2) String() string { return proto.CompactTextString(m) } func (*ScanDetailV2) ProtoMessage() {} func (*ScanDetailV2) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{90} + return fileDescriptor_1afe832be69693c7, []int{91} } func (m *ScanDetailV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7536,7 +7603,7 @@ func (m *ExecDetails) Reset() { *m = ExecDetails{} } func (m *ExecDetails) String() string { return proto.CompactTextString(m) } func (*ExecDetails) ProtoMessage() {} func (*ExecDetails) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{91} + return fileDescriptor_1afe832be69693c7, []int{92} } func (m *ExecDetails) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7598,7 +7665,7 @@ func (m *ExecDetailsV2) Reset() { *m = ExecDetailsV2{} } func (m *ExecDetailsV2) String() string { return proto.CompactTextString(m) } func (*ExecDetailsV2) ProtoMessage() {} func (*ExecDetailsV2) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{92} + return fileDescriptor_1afe832be69693c7, []int{93} } func (m *ExecDetailsV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7699,7 +7766,7 @@ func (m *WriteDetail) Reset() { *m = WriteDetail{} } func (m *WriteDetail) String() string { return proto.CompactTextString(m) } func (*WriteDetail) ProtoMessage() {} func (*WriteDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{93} + return fileDescriptor_1afe832be69693c7, []int{94} } func (m *WriteDetail) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7860,7 +7927,7 @@ func (m *KvPair) Reset() { *m = KvPair{} } func (m *KvPair) String() string { return proto.CompactTextString(m) } func (*KvPair) ProtoMessage() {} func (*KvPair) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{94} + return fileDescriptor_1afe832be69693c7, []int{95} } func (m *KvPair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7924,7 +7991,7 @@ func (m *Mutation) Reset() { *m = Mutation{} } func (m *Mutation) String() string { return proto.CompactTextString(m) } func (*Mutation) ProtoMessage() {} func (*Mutation) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{95} + return fileDescriptor_1afe832be69693c7, []int{96} } func (m *Mutation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8000,7 +8067,7 @@ func (m *MvccWrite) Reset() { *m = MvccWrite{} } func (m *MvccWrite) String() string { return proto.CompactTextString(m) } func (*MvccWrite) ProtoMessage() {} func (*MvccWrite) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{96} + return fileDescriptor_1afe832be69693c7, []int{97} } func (m *MvccWrite) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8104,7 +8171,7 @@ func (m *MvccValue) Reset() { *m = MvccValue{} } func (m *MvccValue) String() string { return proto.CompactTextString(m) } func (*MvccValue) ProtoMessage() {} func (*MvccValue) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{97} + return fileDescriptor_1afe832be69693c7, []int{98} } func (m *MvccValue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8169,7 +8236,7 @@ func (m *MvccLock) Reset() { *m = MvccLock{} } func (m *MvccLock) String() string { return proto.CompactTextString(m) } func (*MvccLock) ProtoMessage() {} func (*MvccLock) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{98} + return fileDescriptor_1afe832be69693c7, []int{99} } func (m *MvccLock) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8295,7 +8362,7 @@ func (m *MvccInfo) Reset() { *m = MvccInfo{} } func (m *MvccInfo) String() string { return proto.CompactTextString(m) } func (*MvccInfo) ProtoMessage() {} func (*MvccInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{99} + return fileDescriptor_1afe832be69693c7, []int{100} } func (m *MvccInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8357,7 +8424,7 @@ func (m *TxnInfo) Reset() { *m = TxnInfo{} } func (m *TxnInfo) String() string { return proto.CompactTextString(m) } func (*TxnInfo) ProtoMessage() {} func (*TxnInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{100} + return fileDescriptor_1afe832be69693c7, []int{101} } func (m *TxnInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8412,7 +8479,7 @@ func (m *KeyRange) Reset() { *m = KeyRange{} } func (m *KeyRange) String() string { return proto.CompactTextString(m) } func (*KeyRange) ProtoMessage() {} func (*KeyRange) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{101} + return fileDescriptor_1afe832be69693c7, []int{102} } func (m *KeyRange) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8470,7 +8537,7 @@ func (m *LeaderInfo) Reset() { *m = LeaderInfo{} } func (m *LeaderInfo) String() string { return proto.CompactTextString(m) } func (*LeaderInfo) ProtoMessage() {} func (*LeaderInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{102} + return fileDescriptor_1afe832be69693c7, []int{103} } func (m *LeaderInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8546,7 +8613,7 @@ func (m *ReadState) Reset() { *m = ReadState{} } func (m *ReadState) String() string { return proto.CompactTextString(m) } func (*ReadState) ProtoMessage() {} func (*ReadState) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{103} + return fileDescriptor_1afe832be69693c7, []int{104} } func (m *ReadState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8601,7 +8668,7 @@ func (m *CheckLeaderRequest) Reset() { *m = CheckLeaderRequest{} } func (m *CheckLeaderRequest) String() string { return proto.CompactTextString(m) } func (*CheckLeaderRequest) ProtoMessage() {} func (*CheckLeaderRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{104} + return fileDescriptor_1afe832be69693c7, []int{105} } func (m *CheckLeaderRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8656,7 +8723,7 @@ func (m *CheckLeaderResponse) Reset() { *m = CheckLeaderResponse{} } func (m *CheckLeaderResponse) String() string { return proto.CompactTextString(m) } func (*CheckLeaderResponse) ProtoMessage() {} func (*CheckLeaderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{105} + return fileDescriptor_1afe832be69693c7, []int{106} } func (m *CheckLeaderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8712,7 +8779,7 @@ func (m *StoreSafeTSRequest) Reset() { *m = StoreSafeTSRequest{} } func (m *StoreSafeTSRequest) String() string { return proto.CompactTextString(m) } func (*StoreSafeTSRequest) ProtoMessage() {} func (*StoreSafeTSRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{106} + return fileDescriptor_1afe832be69693c7, []int{107} } func (m *StoreSafeTSRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8759,7 +8826,7 @@ func (m *StoreSafeTSResponse) Reset() { *m = StoreSafeTSResponse{} } func (m *StoreSafeTSResponse) String() string { return proto.CompactTextString(m) } func (*StoreSafeTSResponse) ProtoMessage() {} func (*StoreSafeTSResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{107} + return fileDescriptor_1afe832be69693c7, []int{108} } func (m *StoreSafeTSResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8808,7 +8875,7 @@ func (m *RawGetKeyTTLRequest) Reset() { *m = RawGetKeyTTLRequest{} } func (m *RawGetKeyTTLRequest) String() string { return proto.CompactTextString(m) } func (*RawGetKeyTTLRequest) ProtoMessage() {} func (*RawGetKeyTTLRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{108} + return fileDescriptor_1afe832be69693c7, []int{109} } func (m *RawGetKeyTTLRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8872,7 +8939,7 @@ func (m *RawGetKeyTTLResponse) Reset() { *m = RawGetKeyTTLResponse{} } func (m *RawGetKeyTTLResponse) String() string { return proto.CompactTextString(m) } func (*RawGetKeyTTLResponse) ProtoMessage() {} func (*RawGetKeyTTLResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{109} + return fileDescriptor_1afe832be69693c7, []int{110} } func (m *RawGetKeyTTLResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8946,7 +9013,7 @@ func (m *RawCASRequest) Reset() { *m = RawCASRequest{} } func (m *RawCASRequest) String() string { return proto.CompactTextString(m) } func (*RawCASRequest) ProtoMessage() {} func (*RawCASRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{110} + return fileDescriptor_1afe832be69693c7, []int{111} } func (m *RawCASRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9040,7 +9107,7 @@ func (m *RawCASResponse) Reset() { *m = RawCASResponse{} } func (m *RawCASResponse) String() string { return proto.CompactTextString(m) } func (*RawCASResponse) ProtoMessage() {} func (*RawCASResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{111} + return fileDescriptor_1afe832be69693c7, []int{112} } func (m *RawCASResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9115,7 +9182,7 @@ func (m *GetLockWaitInfoRequest) Reset() { *m = GetLockWaitInfoRequest{} func (m *GetLockWaitInfoRequest) String() string { return proto.CompactTextString(m) } func (*GetLockWaitInfoRequest) ProtoMessage() {} func (*GetLockWaitInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{112} + return fileDescriptor_1afe832be69693c7, []int{113} } func (m *GetLockWaitInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9164,7 +9231,7 @@ func (m *GetLockWaitInfoResponse) Reset() { *m = GetLockWaitInfoResponse func (m *GetLockWaitInfoResponse) String() string { return proto.CompactTextString(m) } func (*GetLockWaitInfoResponse) ProtoMessage() {} func (*GetLockWaitInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{113} + return fileDescriptor_1afe832be69693c7, []int{114} } func (m *GetLockWaitInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9225,7 +9292,7 @@ func (m *GetLockWaitHistoryRequest) Reset() { *m = GetLockWaitHistoryReq func (m *GetLockWaitHistoryRequest) String() string { return proto.CompactTextString(m) } func (*GetLockWaitHistoryRequest) ProtoMessage() {} func (*GetLockWaitHistoryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{114} + return fileDescriptor_1afe832be69693c7, []int{115} } func (m *GetLockWaitHistoryRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9274,7 +9341,7 @@ func (m *GetLockWaitHistoryResponse) Reset() { *m = GetLockWaitHistoryRe func (m *GetLockWaitHistoryResponse) String() string { return proto.CompactTextString(m) } func (*GetLockWaitHistoryResponse) ProtoMessage() {} func (*GetLockWaitHistoryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{115} + return fileDescriptor_1afe832be69693c7, []int{116} } func (m *GetLockWaitHistoryResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9340,7 +9407,7 @@ func (m *RawCoprocessorRequest) Reset() { *m = RawCoprocessorRequest{} } func (m *RawCoprocessorRequest) String() string { return proto.CompactTextString(m) } func (*RawCoprocessorRequest) ProtoMessage() {} func (*RawCoprocessorRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{116} + return fileDescriptor_1afe832be69693c7, []int{117} } func (m *RawCoprocessorRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9419,7 +9486,7 @@ func (m *RawCoprocessorResponse) Reset() { *m = RawCoprocessorResponse{} func (m *RawCoprocessorResponse) String() string { return proto.CompactTextString(m) } func (*RawCoprocessorResponse) ProtoMessage() {} func (*RawCoprocessorResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{117} + return fileDescriptor_1afe832be69693c7, []int{118} } func (m *RawCoprocessorResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9482,7 +9549,7 @@ func (m *RawChecksumRequest) Reset() { *m = RawChecksumRequest{} } func (m *RawChecksumRequest) String() string { return proto.CompactTextString(m) } func (*RawChecksumRequest) ProtoMessage() {} func (*RawChecksumRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{118} + return fileDescriptor_1afe832be69693c7, []int{119} } func (m *RawChecksumRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9547,7 +9614,7 @@ func (m *RawChecksumResponse) Reset() { *m = RawChecksumResponse{} } func (m *RawChecksumResponse) String() string { return proto.CompactTextString(m) } func (*RawChecksumResponse) ProtoMessage() {} func (*RawChecksumResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{119} + return fileDescriptor_1afe832be69693c7, []int{120} } func (m *RawChecksumResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9613,7 +9680,6 @@ func (m *RawChecksumResponse) GetTotalBytes() uint64 { type CompactError struct { // Types that are valid to be assigned to Error: - // // *CompactError_ErrInvalidStartKey // *CompactError_ErrPhysicalTableNotExist // *CompactError_ErrCompactInProgress @@ -9628,7 +9694,7 @@ func (m *CompactError) Reset() { *m = CompactError{} } func (m *CompactError) String() string { return proto.CompactTextString(m) } func (*CompactError) ProtoMessage() {} func (*CompactError) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{120} + return fileDescriptor_1afe832be69693c7, []int{121} } func (m *CompactError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9736,7 +9802,7 @@ func (m *CompactErrorInvalidStartKey) Reset() { *m = CompactErrorInvalid func (m *CompactErrorInvalidStartKey) String() string { return proto.CompactTextString(m) } func (*CompactErrorInvalidStartKey) ProtoMessage() {} func (*CompactErrorInvalidStartKey) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{121} + return fileDescriptor_1afe832be69693c7, []int{122} } func (m *CompactErrorInvalidStartKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9775,7 +9841,7 @@ func (m *CompactErrorPhysicalTableNotExist) Reset() { *m = CompactErrorP func (m *CompactErrorPhysicalTableNotExist) String() string { return proto.CompactTextString(m) } func (*CompactErrorPhysicalTableNotExist) ProtoMessage() {} func (*CompactErrorPhysicalTableNotExist) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{122} + return fileDescriptor_1afe832be69693c7, []int{123} } func (m *CompactErrorPhysicalTableNotExist) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9814,7 +9880,7 @@ func (m *CompactErrorCompactInProgress) Reset() { *m = CompactErrorCompa func (m *CompactErrorCompactInProgress) String() string { return proto.CompactTextString(m) } func (*CompactErrorCompactInProgress) ProtoMessage() {} func (*CompactErrorCompactInProgress) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{123} + return fileDescriptor_1afe832be69693c7, []int{124} } func (m *CompactErrorCompactInProgress) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9853,7 +9919,7 @@ func (m *CompactErrorTooManyPendingTasks) Reset() { *m = CompactErrorToo func (m *CompactErrorTooManyPendingTasks) String() string { return proto.CompactTextString(m) } func (*CompactErrorTooManyPendingTasks) ProtoMessage() {} func (*CompactErrorTooManyPendingTasks) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{124} + return fileDescriptor_1afe832be69693c7, []int{125} } func (m *CompactErrorTooManyPendingTasks) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9913,7 +9979,7 @@ func (m *CompactRequest) Reset() { *m = CompactRequest{} } func (m *CompactRequest) String() string { return proto.CompactTextString(m) } func (*CompactRequest) ProtoMessage() {} func (*CompactRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{125} + return fileDescriptor_1afe832be69693c7, []int{126} } func (m *CompactRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9993,7 +10059,7 @@ func (m *CompactResponse) Reset() { *m = CompactResponse{} } func (m *CompactResponse) String() string { return proto.CompactTextString(m) } func (*CompactResponse) ProtoMessage() {} func (*CompactResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{126} + return fileDescriptor_1afe832be69693c7, []int{127} } func (m *CompactResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10061,7 +10127,7 @@ func (m *TiFlashSystemTableRequest) Reset() { *m = TiFlashSystemTableReq func (m *TiFlashSystemTableRequest) String() string { return proto.CompactTextString(m) } func (*TiFlashSystemTableRequest) ProtoMessage() {} func (*TiFlashSystemTableRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{127} + return fileDescriptor_1afe832be69693c7, []int{128} } func (m *TiFlashSystemTableRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10108,7 +10174,7 @@ func (m *TiFlashSystemTableResponse) Reset() { *m = TiFlashSystemTableRe func (m *TiFlashSystemTableResponse) String() string { return proto.CompactTextString(m) } func (*TiFlashSystemTableResponse) ProtoMessage() {} func (*TiFlashSystemTableResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1afe832be69693c7, []int{128} + return fileDescriptor_1afe832be69693c7, []int{129} } func (m *TiFlashSystemTableResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10239,6 +10305,7 @@ func init() { proto.RegisterType((*TxnNotFound)(nil), "kvrpcpb.TxnNotFound") proto.RegisterType((*CommitTsTooLarge)(nil), "kvrpcpb.CommitTsTooLarge") proto.RegisterType((*AssertionFailed)(nil), "kvrpcpb.AssertionFailed") + proto.RegisterType((*PrimaryMismatch)(nil), "kvrpcpb.PrimaryMismatch") proto.RegisterType((*TimeDetail)(nil), "kvrpcpb.TimeDetail") proto.RegisterType((*TimeDetailV2)(nil), "kvrpcpb.TimeDetailV2") proto.RegisterType((*ScanInfo)(nil), "kvrpcpb.ScanInfo") @@ -10287,427 +10354,431 @@ func init() { func init() { proto.RegisterFile("kvrpcpb.proto", fileDescriptor_1afe832be69693c7) } var fileDescriptor_1afe832be69693c7 = []byte{ - // 6717 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0x5b, 0x6c, 0x24, 0xc9, - 0x71, 0x20, 0xab, 0x1f, 0xec, 0xee, 0x68, 0xb2, 0x59, 0x4c, 0xbe, 0x9a, 0x9c, 0x99, 0x25, 0xa7, - 0x56, 0xb3, 0x3b, 0xa2, 0xb4, 0x1c, 0x2d, 0xf7, 0xa1, 0xe7, 0xad, 0x76, 0x86, 0x9c, 0x07, 0x77, - 0x38, 0x43, 0xa2, 0xba, 0x77, 0xf6, 0x16, 0x77, 0x52, 0x29, 0x59, 0x9d, 0xec, 0x2e, 0xb0, 0xba, - 0xaa, 0xb6, 0x32, 0x9b, 0x64, 0xeb, 0x70, 0xc0, 0x2d, 0xee, 0xce, 0x80, 0x00, 0x43, 0xb6, 0x05, - 0x01, 0x32, 0x20, 0xc1, 0x80, 0x3f, 0x04, 0x58, 0xfe, 0xb3, 0xfd, 0xe3, 0xc7, 0x87, 0x61, 0x40, - 0x1f, 0x6b, 0xc3, 0x82, 0x04, 0x18, 0x86, 0x0c, 0x19, 0x10, 0xec, 0x35, 0xe0, 0x6f, 0xff, 0x18, - 0xf6, 0x8f, 0x61, 0x23, 0x1f, 0xf5, 0xea, 0x6e, 0x72, 0x38, 0x1c, 0xce, 0x48, 0xf6, 0x57, 0x77, - 0x46, 0x44, 0x66, 0x46, 0x46, 0x44, 0x46, 0x66, 0x46, 0x46, 0x16, 0x4c, 0x1e, 0x1c, 0x86, 0x81, - 0x1d, 0xec, 0xad, 0x05, 0xa1, 0xcf, 0x7c, 0x54, 0x52, 0xc5, 0xa5, 0x89, 0x2e, 0x61, 0x38, 0x02, - 0x2f, 0x4d, 0x92, 0x30, 0xf4, 0xc3, 0xb8, 0x38, 0xdb, 0xf6, 0xdb, 0xbe, 0xf8, 0x7b, 0x83, 0xff, - 0x53, 0xd0, 0xa9, 0xb0, 0x47, 0x99, 0xf8, 0xab, 0x00, 0xb5, 0x16, 0xc1, 0x2d, 0xd7, 0xb7, 0x0f, - 0xa2, 0x56, 0x58, 0x88, 0x6d, 0x12, 0xb7, 0x32, 0x1f, 0x12, 0xea, 0xf7, 0x42, 0x9b, 0x58, 0x5d, - 0xec, 0xe1, 0x36, 0x09, 0x25, 0xdc, 0x68, 0x01, 0xdc, 0x25, 0xcc, 0x24, 0x1f, 0xf4, 0x08, 0x65, - 0x68, 0x15, 0x4a, 0xb6, 0xef, 0x31, 0x72, 0xcc, 0xea, 0xda, 0x8a, 0x76, 0xbd, 0xba, 0xae, 0xaf, - 0x45, 0x2c, 0x6f, 0x48, 0xb8, 0x19, 0x11, 0x20, 0x1d, 0xf2, 0x07, 0xa4, 0x5f, 0xcf, 0xad, 0x68, - 0xd7, 0x27, 0x4c, 0xfe, 0x17, 0xd5, 0xa1, 0x74, 0x48, 0x42, 0xea, 0xf8, 0x5e, 0x3d, 0xbf, 0xa2, - 0x5d, 0x2f, 0x98, 0x51, 0xd1, 0xf8, 0x58, 0x83, 0xaa, 0xe8, 0x86, 0x06, 0xbe, 0x47, 0x09, 0x7a, - 0x15, 0x26, 0x42, 0xd2, 0x76, 0x7c, 0xcf, 0x12, 0x63, 0x55, 0x9d, 0xd5, 0xd6, 0xa2, 0x91, 0xdf, - 0xe6, 0xbf, 0x66, 0x55, 0xd2, 0x88, 0x02, 0x7a, 0x19, 0x8a, 0x92, 0x36, 0x27, 0x68, 0xa7, 0x63, - 0xc6, 0xee, 0x93, 0xbe, 0x24, 0x97, 0x78, 0x34, 0x0b, 0xc5, 0x43, 0xec, 0xf6, 0x88, 0xe0, 0x61, - 0xc2, 0x94, 0x05, 0x74, 0x09, 0x2a, 0x9e, 0xcf, 0xac, 0x7d, 0xbf, 0xe7, 0xb5, 0xea, 0x85, 0x15, - 0xed, 0x7a, 0xd9, 0x2c, 0x7b, 0x3e, 0xbb, 0xc3, 0xcb, 0xe8, 0x2d, 0x98, 0x22, 0xc7, 0xc4, 0xb6, - 0x5a, 0x84, 0x61, 0xc7, 0xa5, 0xd6, 0xe1, 0x7a, 0x7d, 0x5c, 0xf4, 0x32, 0x1f, 0xf7, 0x72, 0xfb, - 0x98, 0xd8, 0x9b, 0x12, 0xfd, 0x68, 0xdd, 0x9c, 0x24, 0xe9, 0xe2, 0x3b, 0x85, 0x72, 0x51, 0x1f, - 0x37, 0xfe, 0x59, 0x83, 0x6a, 0xc3, 0xc6, 0xde, 0x79, 0x84, 0x79, 0x09, 0x2a, 0x94, 0xe1, 0x90, - 0x59, 0x89, 0x48, 0xcb, 0x02, 0x70, 0x9f, 0xf4, 0xf9, 0x88, 0x5c, 0xa7, 0xeb, 0x30, 0x31, 0xa2, - 0x49, 0x53, 0x16, 0xd2, 0xd2, 0x2e, 0x64, 0xa4, 0x8d, 0x16, 0xa1, 0x7c, 0x40, 0xfa, 0x96, 0xef, - 0xb9, 0xfd, 0x7a, 0x51, 0x0c, 0xb5, 0x74, 0x40, 0xfa, 0x3b, 0x9e, 0x2b, 0x54, 0x14, 0x12, 0x4e, - 0x47, 0xc4, 0x08, 0xcb, 0x66, 0x54, 0x44, 0x0b, 0x50, 0x22, 0x5e, 0x4b, 0xf4, 0x5f, 0x12, 0xfd, - 0x8f, 0x13, 0xaf, 0xc5, 0x7b, 0x5f, 0x86, 0x2a, 0xc5, 0xdd, 0xc0, 0x25, 0x16, 0x65, 0x24, 0xa8, - 0x97, 0x05, 0x0f, 0x20, 0x41, 0x0d, 0x46, 0x02, 0xe3, 0x37, 0x34, 0x98, 0x90, 0xe3, 0x3e, 0xbf, - 0x76, 0xaf, 0x41, 0x31, 0xc0, 0x4e, 0x48, 0xeb, 0xb9, 0x95, 0xfc, 0xf5, 0xea, 0xfa, 0x54, 0xa2, - 0xdd, 0xc3, 0x5d, 0xec, 0x84, 0xa6, 0xc4, 0x26, 0x46, 0x90, 0x3f, 0xdd, 0x08, 0x8c, 0x8f, 0x4a, - 0x30, 0xb5, 0x1b, 0x92, 0xa3, 0xd0, 0x61, 0xe4, 0x3c, 0xfa, 0xb8, 0x01, 0x95, 0x6e, 0x8f, 0x61, - 0xe6, 0xf8, 0x5e, 0xc4, 0x53, 0xd2, 0xd9, 0x03, 0x85, 0x31, 0x13, 0x1a, 0x74, 0x15, 0x26, 0x82, - 0xd0, 0xe9, 0xe2, 0xb0, 0x6f, 0xf1, 0x49, 0xa8, 0x8c, 0xaf, 0xaa, 0x60, 0xdb, 0xbe, 0x7d, 0x80, - 0x5e, 0x84, 0x49, 0xa9, 0xe3, 0xac, 0xda, 0x26, 0x04, 0xf0, 0x51, 0xa2, 0x3b, 0x5e, 0xdf, 0x62, - 0xcc, 0x15, 0xba, 0x2b, 0x98, 0x25, 0x5e, 0x6e, 0x32, 0x17, 0xad, 0xc3, 0x1c, 0x3d, 0x70, 0x02, - 0xcb, 0xf6, 0x3d, 0xca, 0x42, 0xec, 0x78, 0xcc, 0xb2, 0x3b, 0xc4, 0x3e, 0x50, 0x9a, 0x9c, 0xe1, - 0xc8, 0x8d, 0x18, 0xb7, 0xc1, 0x51, 0xe8, 0x7f, 0xc0, 0x4c, 0x40, 0x28, 0x75, 0xba, 0x0e, 0x65, - 0x8e, 0x6d, 0x61, 0x5b, 0x8e, 0xa8, 0xb4, 0x92, 0xbf, 0x5e, 0x5b, 0x5f, 0x8d, 0x47, 0x34, 0x20, - 0xaa, 0xb5, 0xdd, 0xa4, 0xce, 0x4d, 0x51, 0xc5, 0x44, 0xc1, 0x20, 0x88, 0x72, 0x5e, 0xd9, 0xb1, - 0x67, 0x51, 0xe7, 0xeb, 0x44, 0x98, 0x45, 0xc1, 0x2c, 0xb1, 0x63, 0xaf, 0xe1, 0x7c, 0x9d, 0x20, - 0x03, 0x26, 0xf7, 0xfd, 0xd0, 0xea, 0x05, 0x2d, 0xcc, 0x88, 0xc5, 0x68, 0xbd, 0x22, 0xf0, 0xd5, - 0x7d, 0x3f, 0x7c, 0x57, 0xc0, 0x9a, 0x94, 0xd3, 0x74, 0x1d, 0xcf, 0xb2, 0xfd, 0x6e, 0xd7, 0x61, - 0x9c, 0x06, 0x24, 0x4d, 0xd7, 0xf1, 0x36, 0x04, 0xac, 0x49, 0xd1, 0x75, 0xd0, 0x7b, 0x94, 0x58, - 0x98, 0xf6, 0x3d, 0x5b, 0x51, 0xd6, 0xab, 0x62, 0xb8, 0xb5, 0x1e, 0x25, 0x37, 0x39, 0x58, 0xd2, - 0xa2, 0x15, 0xa8, 0x52, 0x62, 0xfb, 0x5e, 0x0b, 0x87, 0x0e, 0xa1, 0xf5, 0x89, 0x95, 0x3c, 0x97, - 0x7f, 0x0a, 0x84, 0x2e, 0x03, 0xb0, 0x90, 0x4f, 0x0b, 0x62, 0x05, 0x76, 0x7d, 0x52, 0xfa, 0x00, - 0x16, 0xf6, 0x77, 0x3c, 0xb2, 0x6b, 0x0b, 0x6e, 0xf0, 0x71, 0x8a, 0x9b, 0x9a, 0xe2, 0x06, 0x1f, - 0xc7, 0xdc, 0xbc, 0x0d, 0x53, 0x98, 0x52, 0x12, 0xf2, 0xe1, 0x5b, 0x2e, 0x39, 0x24, 0x6e, 0x7d, - 0x6a, 0x45, 0xbb, 0x5e, 0x5b, 0x5f, 0x88, 0x25, 0x79, 0x33, 0xc2, 0x6f, 0x73, 0xb4, 0x59, 0xc3, - 0x99, 0x32, 0x72, 0x60, 0x31, 0x23, 0x97, 0x94, 0x32, 0x69, 0x5d, 0x17, 0x76, 0xb6, 0x76, 0xa2, - 0x56, 0xee, 0xc4, 0xc2, 0x6b, 0x24, 0x7a, 0x36, 0xe7, 0x53, 0x32, 0x4d, 0xc0, 0x74, 0x69, 0x0f, - 0xe6, 0x46, 0x56, 0xe0, 0xee, 0xc4, 0xf1, 0x5a, 0xe4, 0x58, 0xcc, 0x82, 0x49, 0x53, 0x16, 0xd0, - 0x6b, 0x30, 0x4f, 0x8e, 0x03, 0x62, 0x33, 0xd2, 0xb2, 0xb2, 0xaa, 0xcb, 0x09, 0x41, 0xcc, 0x44, - 0xd8, 0xa4, 0x51, 0x6a, 0xec, 0xc1, 0xf4, 0x90, 0xa9, 0xa0, 0x25, 0x98, 0x6f, 0xdc, 0xdf, 0xda, - 0xb5, 0x76, 0x6f, 0x37, 0x1a, 0x5b, 0x0f, 0xb6, 0x1a, 0xcd, 0xad, 0x0d, 0x6b, 0xe3, 0xde, 0xed, - 0x8d, 0xfb, 0xfa, 0x18, 0xaa, 0xc3, 0xec, 0xe6, 0xce, 0x08, 0x8c, 0x86, 0x16, 0x60, 0x66, 0x73, - 0xc7, 0xda, 0xd8, 0x79, 0xd8, 0x68, 0x9a, 0x37, 0xb7, 0x1e, 0x36, 0x15, 0x22, 0x67, 0xfc, 0x9b, - 0x06, 0x7a, 0x22, 0x89, 0xf3, 0xbb, 0x98, 0x4f, 0xc2, 0xb8, 0xc0, 0x0e, 0xcf, 0xe7, 0xd8, 0x79, - 0x28, 0x82, 0x61, 0xcb, 0xcc, 0x0f, 0x5b, 0xe6, 0xcb, 0xa0, 0x4b, 0x4b, 0x4a, 0x91, 0xc9, 0x09, - 0x3d, 0xe9, 0x73, 0x83, 0x8a, 0x09, 0x47, 0x2c, 0x2e, 0xc5, 0x27, 0x58, 0x5c, 0x8c, 0x1f, 0x16, - 0x60, 0x3e, 0x25, 0x64, 0xee, 0x4a, 0xfe, 0xab, 0x78, 0xb4, 0x21, 0x2f, 0x31, 0x3e, 0xd2, 0x4b, - 0x38, 0xd4, 0xda, 0x77, 0x42, 0xca, 0x24, 0x1f, 0x25, 0x31, 0x71, 0xab, 0x0e, 0xbd, 0xc3, 0x61, - 0x82, 0x8f, 0xab, 0x30, 0x71, 0x84, 0xb9, 0x0a, 0x9c, 0x2e, 0xf1, 0x7b, 0x4c, 0x38, 0xa3, 0xbc, - 0x59, 0xe5, 0xb0, 0xa6, 0x04, 0xa1, 0x3a, 0x14, 0xf7, 0xfd, 0xd0, 0x26, 0xc2, 0x11, 0x95, 0x6f, - 0xe5, 0xea, 0x9a, 0x29, 0x01, 0x7c, 0x10, 0x21, 0x61, 0xbd, 0xd0, 0xb3, 0xc4, 0x4e, 0x41, 0xba, - 0xa1, 0xb2, 0x39, 0x21, 0x81, 0x8f, 0x04, 0x6c, 0xd8, 0x22, 0xaa, 0xa3, 0x2c, 0x62, 0x4a, 0xf8, - 0x63, 0x8b, 0x1c, 0x3b, 0x94, 0x11, 0xcf, 0x26, 0xf5, 0x09, 0xe9, 0xaa, 0x04, 0xf8, 0x76, 0x04, - 0x45, 0xaf, 0xc0, 0x8c, 0x90, 0x08, 0x5f, 0xa0, 0x2d, 0x67, 0x5f, 0xd2, 0x53, 0xe5, 0x91, 0x74, - 0x8e, 0xe2, 0x6b, 0xf5, 0xd6, 0xbe, 0xa8, 0x41, 0xd1, 0x26, 0x1f, 0xdd, 0x01, 0xb1, 0x7a, 0x81, - 0xd5, 0xf5, 0x5b, 0x44, 0x38, 0xa6, 0xda, 0xba, 0x91, 0xb8, 0x89, 0xac, 0x71, 0xbc, 0x87, 0x0f, - 0xc8, 0xbb, 0xc1, 0x03, 0xbf, 0x45, 0x4c, 0x38, 0x8a, 0xff, 0x1b, 0xff, 0xa4, 0x41, 0x7d, 0x80, - 0xf2, 0x3e, 0xe9, 0x9b, 0x84, 0xf6, 0x5c, 0x86, 0x3e, 0x0f, 0x05, 0xd6, 0x0f, 0x88, 0xb0, 0xa2, - 0xda, 0xfa, 0xb5, 0x93, 0x9a, 0x8e, 0x2b, 0x34, 0xfb, 0x01, 0x31, 0x45, 0x95, 0x64, 0xbb, 0x95, - 0x4b, 0x6f, 0xb7, 0x2e, 0x43, 0x25, 0x91, 0x42, 0x5e, 0x0c, 0x2c, 0x01, 0xa0, 0x37, 0x60, 0x81, - 0x8f, 0x92, 0xb4, 0xac, 0x23, 0x87, 0x75, 0xb8, 0x0f, 0xdc, 0x77, 0x1d, 0x3b, 0x35, 0x85, 0x66, - 0x25, 0xfa, 0x3d, 0x87, 0x75, 0x36, 0x14, 0xb2, 0x49, 0xd1, 0x1a, 0x88, 0x35, 0xce, 0xe2, 0x5b, - 0x59, 0xf7, 0xd0, 0xf1, 0xda, 0xd2, 0x20, 0xe4, 0x7a, 0x30, 0xcd, 0x51, 0x66, 0x84, 0xe1, 0xdc, - 0x1a, 0xff, 0x98, 0x83, 0x85, 0xa1, 0x99, 0xf3, 0x5c, 0x1c, 0xc8, 0x32, 0x54, 0x06, 0x9c, 0x87, - 0xb0, 0xb8, 0xb2, 0x1d, 0xd9, 0x4a, 0x3d, 0x92, 0x1a, 0x1f, 0xef, 0x84, 0x34, 0x47, 0x29, 0xb9, - 0x79, 0x18, 0x57, 0x76, 0x58, 0x14, 0x4b, 0x98, 0x2a, 0xa1, 0x2b, 0x00, 0xf1, 0x06, 0x96, 0x4f, - 0x94, 0x3c, 0x17, 0x69, 0xb4, 0x83, 0x1d, 0xe9, 0x65, 0x4a, 0x4f, 0xe0, 0x65, 0xd0, 0x17, 0xf9, - 0xc6, 0x90, 0xab, 0x96, 0xd6, 0xcb, 0x62, 0x74, 0x57, 0x1f, 0x6b, 0x04, 0x66, 0x54, 0xc3, 0xf8, - 0xbe, 0x06, 0x4b, 0x29, 0x2a, 0xd3, 0x77, 0xdd, 0x3d, 0x7c, 0x3e, 0x37, 0x35, 0xe4, 0x52, 0x72, - 0x23, 0x5c, 0xca, 0x90, 0xdf, 0xc8, 0x0f, 0xfb, 0x0d, 0x04, 0x85, 0x03, 0xd2, 0xe7, 0x06, 0xc5, - 0xa5, 0x28, 0xfe, 0x1b, 0x7f, 0xa2, 0xc1, 0xa5, 0x91, 0x7c, 0x3e, 0x17, 0xa3, 0x18, 0xa1, 0xa2, - 0xfc, 0x93, 0x2c, 0x04, 0xbf, 0xa7, 0xc1, 0x4c, 0xf3, 0xd8, 0xbb, 0x47, 0x70, 0xc8, 0x6e, 0x11, - 0x7c, 0xae, 0x43, 0xdb, 0xa0, 0x53, 0xcf, 0x9d, 0xc1, 0xa9, 0xe7, 0x47, 0x68, 0xe0, 0x25, 0x98, - 0xc2, 0xad, 0x43, 0x87, 0x12, 0x2b, 0xf6, 0xed, 0x6a, 0xf1, 0x93, 0xe0, 0x6d, 0xe9, 0xe1, 0x8d, - 0x1f, 0x69, 0x30, 0x9b, 0xe5, 0xf9, 0x39, 0x9c, 0x00, 0xd3, 0x2b, 0x4e, 0x3e, 0xbb, 0xe2, 0x8c, - 0xd0, 0x41, 0xe1, 0x49, 0x74, 0xf0, 0xf7, 0x39, 0x98, 0x13, 0x3b, 0xeb, 0xe6, 0xb1, 0xd7, 0x60, - 0x98, 0xf5, 0xe8, 0x79, 0xb4, 0xb0, 0x0c, 0x91, 0xc4, 0x53, 0xe7, 0x3d, 0x50, 0x20, 0x7e, 0xe6, - 0x5a, 0x80, 0x92, 0x1c, 0x41, 0x64, 0xda, 0xe3, 0x62, 0x00, 0x94, 0xcb, 0xdd, 0xc6, 0xae, 0x4b, - 0x42, 0x4b, 0xea, 0x28, 0xd9, 0x74, 0x48, 0x70, 0x83, 0x43, 0x9b, 0xc2, 0x5b, 0xd8, 0xbd, 0x30, - 0x24, 0x9e, 0x20, 0x91, 0xcb, 0x6e, 0x45, 0x41, 0x9a, 0x14, 0xbd, 0x0a, 0x73, 0xa1, 0x32, 0x7e, - 0xbe, 0x00, 0x71, 0xc7, 0x22, 0xbc, 0xb3, 0x3a, 0x4a, 0xa0, 0x08, 0xb9, 0xb5, 0xff, 0xd0, 0x67, - 0x62, 0x19, 0x42, 0xab, 0x30, 0x2d, 0xd6, 0x4b, 0x2b, 0xbd, 0x15, 0x97, 0x6b, 0xf1, 0x94, 0x40, - 0x34, 0x92, 0xbd, 0xf8, 0x97, 0x60, 0x29, 0xf1, 0xd1, 0xe9, 0xf3, 0x87, 0xb0, 0xb9, 0xb2, 0xa8, - 0x54, 0x8f, 0x29, 0x06, 0xfc, 0x8b, 0xf1, 0xe3, 0x1c, 0xcc, 0x0f, 0xca, 0xf8, 0x17, 0x6b, 0x35, - 0xd7, 0xa0, 0xa6, 0xdc, 0x79, 0x76, 0xa3, 0x33, 0x29, 0xa1, 0xd1, 0xa4, 0x78, 0x19, 0xc6, 0xe5, - 0x01, 0x4b, 0x08, 0xbc, 0x96, 0x3a, 0xc5, 0xaa, 0x43, 0x94, 0x42, 0xa3, 0x35, 0xa8, 0x88, 0xae, - 0x1c, 0x6f, 0xdf, 0x57, 0x91, 0x86, 0x84, 0x2f, 0x2e, 0x83, 0x2d, 0x6f, 0xdf, 0x37, 0x05, 0x3b, - 0xfc, 0xdf, 0xd3, 0x3a, 0x77, 0xe3, 0x43, 0x0d, 0x96, 0x84, 0x44, 0x1b, 0xea, 0x38, 0x24, 0x66, - 0xfa, 0xb9, 0x4c, 0x37, 0x72, 0xab, 0xb9, 0xc4, 0xad, 0x9e, 0xc9, 0x63, 0x18, 0xff, 0xae, 0xc1, - 0xa5, 0x91, 0x3c, 0x3c, 0x07, 0xd5, 0xbe, 0x0c, 0x45, 0x2e, 0x4b, 0x3e, 0x99, 0xf2, 0xa3, 0x65, - 0x2d, 0xf1, 0xe8, 0x52, 0x7a, 0xdd, 0x96, 0x3a, 0x4e, 0xd6, 0xec, 0xa7, 0xdd, 0xc8, 0xff, 0x40, - 0x83, 0x49, 0x39, 0x41, 0x9e, 0xd9, 0xc2, 0x18, 0x69, 0x27, 0x9f, 0xd2, 0xce, 0xd9, 0x8c, 0x57, - 0xc6, 0xb0, 0xcc, 0xf1, 0x3d, 0xc7, 0x73, 0xfd, 0xb6, 0xf1, 0x57, 0x1a, 0xd4, 0x22, 0x5e, 0x9f, - 0x83, 0x82, 0x86, 0x79, 0xcc, 0x8f, 0x9a, 0x60, 0x4f, 0xeb, 0xbd, 0xdb, 0x30, 0xb9, 0xd5, 0x0d, - 0xfc, 0x30, 0x56, 0x40, 0xe6, 0x50, 0xa4, 0x9d, 0xe1, 0x50, 0x34, 0xcc, 0x68, 0x6e, 0x04, 0xa3, - 0xc6, 0xfb, 0x50, 0x8b, 0x3a, 0x3a, 0xbf, 0xf4, 0x66, 0xd3, 0xd2, 0xab, 0x44, 0x91, 0xad, 0x6f, - 0x71, 0xcd, 0xb8, 0x04, 0x7b, 0xbd, 0xe0, 0x62, 0xa2, 0xb6, 0x67, 0x5a, 0xef, 0xb3, 0xeb, 0x49, - 0x61, 0x60, 0x3d, 0x31, 0xbe, 0xad, 0xc1, 0x54, 0xcc, 0xd4, 0x2f, 0x8d, 0xbd, 0x18, 0x07, 0x30, - 0x75, 0x0b, 0x33, 0xbb, 0x73, 0xce, 0x08, 0xf7, 0x28, 0x5f, 0x77, 0x72, 0x8c, 0xfb, 0x6f, 0x35, - 0xd0, 0x93, 0xde, 0x9e, 0x79, 0x28, 0xf4, 0x29, 0xe7, 0x42, 0x22, 0xeb, 0xe2, 0xe9, 0xb2, 0x7e, - 0xa7, 0x50, 0xce, 0xeb, 0x05, 0xe3, 0x7f, 0xc1, 0xac, 0x18, 0xdc, 0x33, 0xdf, 0xdb, 0x8f, 0x70, - 0x61, 0xc6, 0x1f, 0x68, 0x30, 0x37, 0xd0, 0xfb, 0x73, 0x30, 0xb2, 0xa7, 0xdd, 0xaf, 0xff, 0xae, - 0x06, 0x53, 0x0d, 0x1b, 0x7b, 0xe7, 0x8d, 0xd8, 0x2c, 0x43, 0xb5, 0x8b, 0x8f, 0x07, 0x84, 0x05, - 0x5d, 0x7c, 0x1c, 0x89, 0x2a, 0x73, 0x69, 0x90, 0x3f, 0xe9, 0xd2, 0xa0, 0x90, 0xbe, 0x34, 0x48, - 0x45, 0xf9, 0x8b, 0xe9, 0x28, 0xbf, 0xf1, 0x53, 0x0d, 0xf4, 0x84, 0xd9, 0x5f, 0xa6, 0x35, 0xf9, - 0x69, 0x9d, 0xfe, 0x8f, 0x35, 0x40, 0x32, 0x2e, 0x40, 0xce, 0xab, 0x89, 0x33, 0x19, 0xee, 0x19, - 0xd7, 0xb0, 0x57, 0xa0, 0xc2, 0x8e, 0x3d, 0xb1, 0xf5, 0x93, 0x87, 0xd3, 0x74, 0xcf, 0xcd, 0x63, - 0x4f, 0x6e, 0xfd, 0x98, 0xfc, 0x93, 0x1c, 0x63, 0x8b, 0xa9, 0xe9, 0xc0, 0x0f, 0x82, 0x99, 0x11, - 0xfd, 0x27, 0x98, 0x0c, 0x8f, 0xa0, 0x72, 0x77, 0xe3, 0x3c, 0xb2, 0xbf, 0x02, 0x40, 0xf1, 0x3e, - 0xb1, 0x02, 0xdf, 0xf1, 0x98, 0x12, 0x7c, 0x85, 0x43, 0x76, 0x39, 0xc0, 0xe8, 0x00, 0xf0, 0x76, - 0x9f, 0xbd, 0x04, 0x8c, 0xef, 0x68, 0x80, 0x36, 0x89, 0x4b, 0x18, 0x31, 0xb1, 0xd7, 0x26, 0x17, - 0x7e, 0xcb, 0x97, 0x9a, 0x9a, 0xf9, 0xc1, 0x0b, 0x38, 0xcf, 0x67, 0xce, 0xbe, 0xba, 0xd1, 0x93, - 0x97, 0x97, 0x20, 0x41, 0x3b, 0x9e, 0xdb, 0x37, 0xbe, 0x0a, 0x33, 0x19, 0xc6, 0x2e, 0x7a, 0xcb, - 0xf1, 0x47, 0x1a, 0xac, 0xec, 0x86, 0x24, 0xc0, 0x21, 0xb9, 0xe3, 0x62, 0xda, 0xe1, 0x1e, 0xb8, - 0xe9, 0x2b, 0x83, 0x7e, 0x7e, 0x72, 0x58, 0x84, 0xf2, 0xc0, 0xa1, 0xb7, 0x44, 0xd5, 0x71, 0x37, - 0xb5, 0x2a, 0x17, 0xb3, 0xab, 0xb2, 0x0b, 0x57, 0x4f, 0x61, 0xfd, 0xa2, 0x25, 0xf5, 0x63, 0x0d, - 0x16, 0x2f, 0x46, 0x44, 0xa9, 0x11, 0xe5, 0xb2, 0xb7, 0xbb, 0xa7, 0x7a, 0xfd, 0x94, 0xf0, 0x0a, - 0x27, 0x0a, 0xaf, 0x98, 0x15, 0x5e, 0xe6, 0xd0, 0x33, 0x9e, 0x3d, 0xf4, 0x18, 0x04, 0x96, 0x9e, - 0x87, 0xe0, 0xbe, 0x02, 0x93, 0x26, 0x3e, 0xba, 0xb0, 0x4c, 0x84, 0x1a, 0xe4, 0xec, 0x7d, 0x21, - 0x9c, 0x8a, 0x99, 0xb3, 0xf7, 0x8d, 0x5f, 0xd5, 0xa0, 0x16, 0xb5, 0x7f, 0xc1, 0xac, 0x9f, 0x23, - 0xdf, 0xc0, 0x68, 0x01, 0x32, 0xf1, 0xd1, 0x45, 0x6f, 0x4d, 0x07, 0x07, 0xed, 0xc3, 0x4c, 0xa6, - 0x97, 0x67, 0xbd, 0x25, 0x35, 0x7e, 0x4b, 0x13, 0x5a, 0xdc, 0xed, 0x5d, 0x90, 0x16, 0x47, 0x4b, - 0x56, 0x0e, 0xb3, 0x10, 0x0d, 0x93, 0xd7, 0x4b, 0xae, 0x96, 0xf8, 0x5f, 0x3e, 0x09, 0xf6, 0xfd, - 0xd0, 0xb2, 0x31, 0x55, 0xf1, 0xac, 0xf1, 0x7d, 0x3f, 0xdc, 0xc0, 0x94, 0x1f, 0xcb, 0x22, 0xfe, - 0x2e, 0xda, 0x80, 0xff, 0x58, 0x4b, 0x74, 0x7a, 0x4e, 0x01, 0x9c, 0x71, 0xe3, 0x3f, 0xa0, 0x66, - 0x34, 0x2b, 0xc7, 0x5f, 0x88, 0x6f, 0x19, 0x06, 0x65, 0x50, 0x4c, 0xcb, 0x80, 0x5b, 0x0e, 0x63, - 0xae, 0xbc, 0x41, 0x28, 0x98, 0xe2, 0x3f, 0x5f, 0x40, 0x32, 0xbc, 0x5f, 0xb4, 0x70, 0xfa, 0xa0, - 0x9b, 0xf8, 0x48, 0xad, 0x51, 0xcf, 0x62, 0x82, 0xa7, 0x87, 0x5b, 0xc8, 0xa8, 0xfc, 0x7f, 0xc2, - 0x74, 0xaa, 0xeb, 0x8b, 0x1e, 0xd8, 0xff, 0xd1, 0x60, 0x2e, 0x92, 0xdc, 0xf9, 0x87, 0x77, 0x86, - 0xc9, 0x7c, 0xf2, 0x00, 0x31, 0xcc, 0x0f, 0x72, 0x70, 0xd1, 0xa3, 0xfc, 0x91, 0xf4, 0x9e, 0xcf, - 0x31, 0xb7, 0x29, 0x9d, 0xc1, 0x54, 0xc8, 0x66, 0x30, 0x49, 0xc1, 0x14, 0x63, 0xc1, 0x3c, 0x79, - 0x46, 0x93, 0xd1, 0x86, 0xa9, 0x78, 0x38, 0xe7, 0x97, 0xd5, 0x55, 0xc8, 0x1f, 0x1c, 0x9e, 0x38, - 0x59, 0x39, 0xce, 0xf8, 0x86, 0x34, 0x8f, 0x5f, 0xc8, 0xae, 0x71, 0xc0, 0x4d, 0x2a, 0x3b, 0x79, - 0xa6, 0xfb, 0xc4, 0x9f, 0x68, 0x89, 0x1f, 0x39, 0xaf, 0xb1, 0x7c, 0x12, 0xc6, 0x43, 0xce, 0xdd, - 0xc8, 0xfb, 0x34, 0xc9, 0xb7, 0x22, 0xe0, 0x27, 0x03, 0x82, 0xed, 0x8e, 0x95, 0xb6, 0x9f, 0x0a, - 0x87, 0x6c, 0x5f, 0x98, 0x0d, 0x19, 0x2e, 0xcc, 0x66, 0x47, 0xf4, 0x4c, 0xed, 0xe5, 0x7f, 0xc3, - 0xe2, 0xbb, 0x1e, 0x3f, 0xdb, 0x6c, 0x12, 0xca, 0x42, 0xbf, 0xff, 0x7c, 0x4d, 0x86, 0xef, 0xf5, - 0x46, 0x75, 0x7f, 0xd1, 0x66, 0xf2, 0x35, 0xb8, 0x64, 0x92, 0xb6, 0x43, 0x19, 0x09, 0xf9, 0xf1, - 0x75, 0x67, 0x8f, 0x92, 0xf0, 0x90, 0x84, 0xe7, 0x19, 0xe7, 0x1c, 0x8c, 0x77, 0xf1, 0x71, 0x92, - 0xa4, 0x54, 0xec, 0xe2, 0xe3, 0x26, 0x35, 0x5e, 0x87, 0xcb, 0xa3, 0x7b, 0x50, 0x43, 0x89, 0xf9, - 0xd2, 0xb2, 0x7b, 0xd0, 0xba, 0xb8, 0xa0, 0x78, 0x46, 0x4c, 0xf5, 0x60, 0x71, 0x44, 0xf3, 0xa7, - 0x71, 0xc4, 0x4d, 0xd8, 0xa1, 0x96, 0xed, 0x12, 0x2c, 0x4f, 0x01, 0x65, 0xb3, 0xe4, 0x50, 0x11, - 0x67, 0x3d, 0x73, 0xf8, 0xc4, 0xf8, 0x2a, 0x2c, 0x9a, 0xa4, 0xeb, 0xcb, 0x50, 0xc1, 0x33, 0x18, - 0xd6, 0x3a, 0x2c, 0x8d, 0x6a, 0xff, 0x54, 0x49, 0xff, 0x9a, 0x06, 0x0b, 0xbb, 0x9d, 0x3e, 0x75, - 0x6c, 0xec, 0x3e, 0x4d, 0x84, 0x6c, 0x34, 0x4b, 0xe7, 0x88, 0x8b, 0x19, 0xef, 0x43, 0x7d, 0x98, - 0xa1, 0x53, 0x75, 0x13, 0x2b, 0x20, 0xf7, 0x18, 0x05, 0x7c, 0x4f, 0x03, 0xd4, 0x08, 0x5c, 0x87, - 0x99, 0x62, 0x66, 0x9c, 0x2f, 0x12, 0x58, 0xa1, 0xbc, 0x85, 0x64, 0x3a, 0xcb, 0x74, 0x12, 0x01, - 0xe4, 0x83, 0xba, 0x02, 0x10, 0x13, 0x44, 0xa1, 0xd3, 0x4a, 0x84, 0xa5, 0x68, 0x09, 0x2a, 0x0e, - 0xb5, 0x42, 0x7c, 0x64, 0x1d, 0x1c, 0x46, 0xbe, 0xd0, 0xa1, 0x26, 0x3e, 0xba, 0x7f, 0x68, 0xfc, - 0x50, 0x83, 0x99, 0x0c, 0x7b, 0xe7, 0x9f, 0xee, 0x2f, 0x41, 0xc1, 0x25, 0xfb, 0x4c, 0x45, 0x52, - 0x6a, 0x6b, 0x2a, 0xab, 0x5d, 0x36, 0x2c, 0x38, 0x16, 0x78, 0x74, 0x1d, 0x8a, 0xa1, 0xd3, 0xee, - 0x30, 0x15, 0x41, 0x1a, 0x45, 0x28, 0x09, 0xd0, 0x75, 0xee, 0x98, 0xdb, 0xe2, 0x76, 0x46, 0x86, - 0xca, 0x06, 0x68, 0xcd, 0x08, 0x6d, 0xfc, 0x3f, 0x0d, 0x74, 0x93, 0xe0, 0xd6, 0x96, 0xd7, 0x22, - 0xc7, 0xe7, 0x91, 0x71, 0xfa, 0x80, 0x9c, 0xcb, 0x1e, 0x90, 0x93, 0x35, 0x29, 0xff, 0x98, 0x35, - 0xc9, 0xf8, 0x75, 0x0d, 0xa6, 0x53, 0x6c, 0x9c, 0x5f, 0x96, 0x57, 0x00, 0x42, 0x82, 0x5b, 0x96, - 0xcc, 0xd4, 0x54, 0x61, 0xaf, 0x30, 0x6a, 0x99, 0xb3, 0x24, 0x53, 0xa4, 0x86, 0x32, 0xa1, 0x63, - 0xf3, 0x53, 0x04, 0x46, 0x03, 0x66, 0x1e, 0x1c, 0xda, 0xf6, 0x5d, 0xc2, 0x6e, 0xf5, 0x45, 0xee, - 0xce, 0x05, 0xec, 0xbf, 0x8d, 0x5f, 0xd1, 0x60, 0x36, 0xdb, 0xea, 0x45, 0x1f, 0xab, 0xaf, 0x41, - 0x41, 0x5c, 0x8f, 0x0f, 0x8e, 0x8f, 0xf7, 0x2a, 0xc6, 0x27, 0xd0, 0xc6, 0xd7, 0x60, 0x21, 0xe6, - 0x43, 0x25, 0x3f, 0x5c, 0xac, 0xf6, 0xf9, 0xfc, 0xad, 0x0f, 0x77, 0x71, 0xd1, 0xc3, 0x55, 0x22, - 0xce, 0x27, 0x47, 0x9c, 0x48, 0x00, 0x85, 0xd3, 0x05, 0xf0, 0xfb, 0x15, 0x28, 0x6d, 0x24, 0xcb, - 0xbe, 0xe2, 0xc6, 0x69, 0x09, 0x56, 0x0a, 0x66, 0x59, 0x02, 0xb6, 0x5a, 0xe8, 0xcd, 0x84, 0xd5, - 0xc0, 0xb7, 0x3b, 0x6a, 0x96, 0xce, 0x64, 0x27, 0xd4, 0x6d, 0x8e, 0x8a, 0xf9, 0xe5, 0x05, 0xb4, - 0x02, 0x85, 0x80, 0x90, 0x28, 0xe5, 0x7e, 0x22, 0xa2, 0xdf, 0x25, 0x24, 0x34, 0x05, 0x46, 0x1c, - 0x29, 0x49, 0xd8, 0x55, 0x47, 0x70, 0xf1, 0x1f, 0xdd, 0x80, 0x72, 0x10, 0x3a, 0x7e, 0xe8, 0xb0, - 0xbe, 0xd8, 0x53, 0xd5, 0xd6, 0x67, 0x52, 0xd2, 0xef, 0x76, 0xb1, 0xd7, 0xda, 0x0d, 0x1d, 0x33, - 0x26, 0x42, 0x6f, 0xc3, 0x94, 0x43, 0x7d, 0x17, 0xa7, 0x72, 0xab, 0x4b, 0x03, 0xb9, 0xd5, 0x5b, - 0x11, 0x5e, 0xe5, 0x56, 0x3b, 0x99, 0x32, 0xfa, 0x04, 0xd4, 0x44, 0xc8, 0xc5, 0x71, 0x5d, 0xcb, - 0xc6, 0x76, 0x87, 0xa8, 0x4c, 0x93, 0x09, 0xcf, 0x67, 0x77, 0x1c, 0xd7, 0xdd, 0xe0, 0x30, 0xa1, - 0xe9, 0xbe, 0x67, 0x5b, 0xae, 0xdf, 0x96, 0xb9, 0xa0, 0x66, 0x89, 0x97, 0xb7, 0xfd, 0x36, 0xba, - 0x0e, 0x7a, 0x48, 0x6c, 0x3f, 0x6c, 0x89, 0x44, 0x52, 0x8b, 0x32, 0xcc, 0x54, 0x32, 0x68, 0x4d, - 0xc2, 0x9b, 0x4e, 0x97, 0x34, 0x18, 0x66, 0x29, 0x4a, 0x6a, 0x63, 0x4f, 0x52, 0x56, 0xd3, 0x94, - 0x7c, 0x11, 0x11, 0x94, 0x57, 0xb9, 0xd4, 0x03, 0xd7, 0xb1, 0xb1, 0xc5, 0x67, 0xaf, 0xca, 0x08, - 0xad, 0x2a, 0x18, 0x77, 0x15, 0xe8, 0x1a, 0xd4, 0x64, 0x2e, 0x0c, 0x69, 0x59, 0x72, 0x49, 0x99, - 0x14, 0x67, 0xf3, 0xc9, 0x08, 0x2a, 0x12, 0x25, 0xd0, 0xe7, 0x61, 0x91, 0x2f, 0x76, 0xe4, 0x98, - 0xd8, 0x3d, 0x21, 0xa4, 0x56, 0x2f, 0x94, 0xd2, 0xea, 0x46, 0xc9, 0xea, 0xf3, 0x5d, 0x7c, 0x7c, - 0x3b, 0xc2, 0x6f, 0x2a, 0xf4, 0x03, 0x91, 0xa0, 0x81, 0x83, 0xc0, 0x75, 0x48, 0xe4, 0x4f, 0xa6, - 0xe4, 0xfd, 0x85, 0x02, 0x4a, 0x97, 0xb2, 0x00, 0x25, 0x86, 0xe9, 0x01, 0x37, 0x1d, 0x5d, 0xe6, - 0x1c, 0xf1, 0xe2, 0x56, 0x4b, 0x2c, 0x2e, 0x0c, 0xbb, 0x44, 0x0e, 0x60, 0x5a, 0x26, 0x73, 0x0a, - 0x88, 0x60, 0xff, 0xd3, 0x80, 0xe2, 0xb7, 0x45, 0xed, 0xd0, 0xef, 0x05, 0x16, 0xc3, 0xed, 0x3a, - 0x12, 0x86, 0xac, 0x47, 0x98, 0xbb, 0x1c, 0xd1, 0xc4, 0x6d, 0xf4, 0x39, 0x98, 0x6c, 0x39, 0xf4, - 0xc0, 0xda, 0xef, 0xb9, 0xae, 0xe5, 0x07, 0xac, 0x3e, 0x23, 0x94, 0x3c, 0x1b, 0x2b, 0x79, 0xd3, - 0xa1, 0x07, 0x77, 0x7a, 0xae, 0xbb, 0x13, 0x30, 0xb3, 0xda, 0x4a, 0x0a, 0x5c, 0xe6, 0x7c, 0x11, - 0x23, 0x2c, 0xec, 0x5b, 0xa1, 0x9c, 0xe2, 0xf5, 0x59, 0x29, 0x73, 0x87, 0x9a, 0x1c, 0x1c, 0x4d, - 0xfc, 0xd7, 0xa1, 0x8a, 0x03, 0x27, 0xbe, 0x86, 0x99, 0x1b, 0x30, 0xbf, 0x9b, 0xbb, 0x5b, 0x51, - 0x1c, 0x13, 0x70, 0xe0, 0x24, 0xd9, 0x3b, 0x53, 0x32, 0xea, 0xc9, 0x62, 0x3d, 0xcc, 0x0b, 0x3d, - 0xd4, 0x62, 0xb0, 0x54, 0xc4, 0x17, 0x40, 0xbe, 0xad, 0xb2, 0x22, 0xef, 0xb2, 0x20, 0x66, 0xc6, - 0xdc, 0x5a, 0xf4, 0xe2, 0xaa, 0xc9, 0x7f, 0x23, 0x17, 0x33, 0xc1, 0x52, 0x25, 0xa9, 0x6b, 0xc1, - 0xa5, 0x25, 0x05, 0x53, 0xaf, 0x0b, 0x2f, 0x30, 0xa9, 0xa0, 0x0d, 0x01, 0xe4, 0x22, 0x17, 0x2f, - 0x2b, 0x24, 0xc9, 0xa2, 0xf4, 0xfe, 0xec, 0xd8, 0x53, 0xe8, 0x55, 0x98, 0xde, 0xeb, 0xd1, 0xbe, - 0xc5, 0x3a, 0x21, 0xa1, 0x1d, 0xdf, 0x6d, 0x71, 0x13, 0xb8, 0x24, 0xf6, 0x33, 0x53, 0x1c, 0xd1, - 0x8c, 0xe0, 0x0f, 0x28, 0x7a, 0x1f, 0xea, 0xb1, 0x7a, 0x38, 0xc3, 0xa1, 0xef, 0xc6, 0x8c, 0x5f, - 0x16, 0x8c, 0x2f, 0xc7, 0x92, 0x31, 0x15, 0xe1, 0x86, 0xa4, 0x8b, 0x86, 0x10, 0xbf, 0x1d, 0xcb, - 0xc2, 0xd1, 0x32, 0x54, 0xf9, 0x7e, 0x23, 0xe0, 0xb2, 0x70, 0x5a, 0xf5, 0x15, 0xf9, 0x32, 0x28, - 0x02, 0x6d, 0xb5, 0xde, 0x29, 0x94, 0x0b, 0x7a, 0xf1, 0x9d, 0x42, 0x79, 0x49, 0xbf, 0xc4, 0x4d, - 0x1e, 0xb7, 0xac, 0x0f, 0x7a, 0x7e, 0xd8, 0xeb, 0x1a, 0x1f, 0x6a, 0x30, 0x3f, 0xba, 0x33, 0xb4, - 0x06, 0x33, 0x03, 0xe6, 0xe4, 0xe1, 0x2e, 0x51, 0x7b, 0xaf, 0xe9, 0x8c, 0x3d, 0x3d, 0xc4, 0x5d, - 0x82, 0x3e, 0x0b, 0xa5, 0x80, 0x78, 0xd8, 0x65, 0x7d, 0xe5, 0xd1, 0xae, 0xac, 0x0d, 0x3d, 0x75, - 0xdb, 0xf0, 0x3d, 0xda, 0xeb, 0x06, 0x22, 0x99, 0x23, 0xa2, 0x36, 0xbe, 0x9b, 0x87, 0x72, 0xb4, - 0x58, 0x0e, 0xe5, 0x45, 0x6a, 0xc3, 0x79, 0x91, 0x57, 0x61, 0x42, 0x24, 0x6d, 0x65, 0xc3, 0xf2, - 0x55, 0x0e, 0x8b, 0x4c, 0x68, 0xd8, 0x89, 0xa7, 0x93, 0xca, 0x0a, 0xd9, 0xa4, 0xb2, 0xf4, 0xeb, - 0x99, 0x62, 0xf6, 0xf5, 0xcc, 0x75, 0x95, 0x1f, 0x26, 0x72, 0xb2, 0xa5, 0xf7, 0xac, 0xc6, 0x4a, - 0xda, 0x09, 0x64, 0x66, 0x58, 0xb3, 0x1f, 0x10, 0xf4, 0x29, 0x40, 0x82, 0x32, 0x9b, 0x0e, 0x5b, - 0x12, 0xcd, 0x4d, 0x71, 0x4c, 0xea, 0xb5, 0xc6, 0xc8, 0xc7, 0x34, 0xe5, 0x91, 0x8f, 0x69, 0x86, - 0xd2, 0xdd, 0x2b, 0xc3, 0xe9, 0xee, 0x03, 0x0f, 0x6e, 0x60, 0xf8, 0xc1, 0xcd, 0x17, 0x60, 0x29, - 0xf6, 0x51, 0xcc, 0xb7, 0x5c, 0x4c, 0x59, 0xc4, 0x64, 0x37, 0xca, 0xa0, 0x9f, 0x8f, 0x28, 0x9a, - 0xfe, 0x36, 0xa6, 0x4c, 0xf2, 0xfa, 0x80, 0x1a, 0xdf, 0x29, 0x40, 0x39, 0xba, 0x81, 0x4b, 0xed, - 0x76, 0xb4, 0xc7, 0xec, 0x76, 0xd0, 0x65, 0xbe, 0x04, 0xb2, 0xb0, 0x8f, 0xf7, 0x5c, 0xa2, 0x56, - 0xd8, 0x04, 0xc0, 0xd7, 0x5e, 0xbc, 0xe7, 0x87, 0x4c, 0x05, 0xd6, 0x64, 0x01, 0xad, 0x43, 0x39, - 0x4a, 0x41, 0x1f, 0xba, 0x5a, 0x7e, 0x2f, 0x74, 0x18, 0x89, 0x72, 0xd0, 0xcd, 0x98, 0x8e, 0x3b, - 0x01, 0xec, 0x72, 0x93, 0xee, 0xab, 0xcc, 0xc9, 0xa2, 0x72, 0x02, 0xb1, 0x97, 0x91, 0x58, 0x91, - 0x3c, 0x69, 0x4e, 0xe0, 0x54, 0x09, 0xbd, 0x02, 0xe5, 0xe8, 0xb1, 0xe6, 0x50, 0xf6, 0xdf, 0xa6, - 0x42, 0x98, 0x31, 0x09, 0xda, 0x84, 0xe9, 0x58, 0x11, 0x16, 0x39, 0x0e, 0x9c, 0x90, 0xb4, 0x54, - 0xfe, 0x5f, 0x3d, 0xb3, 0xa6, 0x72, 0xb5, 0xdc, 0x96, 0x78, 0x73, 0xca, 0xce, 0x02, 0xb8, 0xe3, - 0xe5, 0xe6, 0x96, 0x5c, 0x4a, 0x94, 0x45, 0x0b, 0xb3, 0xe9, 0xbb, 0xe7, 0x87, 0xea, 0x82, 0xc2, - 0xac, 0xb2, 0xa4, 0x80, 0xee, 0xc1, 0x4c, 0xd2, 0x3f, 0xf3, 0xb9, 0x22, 0xc3, 0xb6, 0x7c, 0x48, - 0x51, 0x5d, 0x5f, 0x1c, 0xe2, 0xa0, 0xe9, 0xfb, 0xdb, 0x9c, 0xc0, 0xd4, 0xed, 0x01, 0x08, 0xda, - 0x00, 0x3d, 0x79, 0x3f, 0xb5, 0x8f, 0x1d, 0x97, 0xb4, 0xc4, 0x02, 0x9b, 0x1e, 0x48, 0xfc, 0x80, - 0xea, 0x8e, 0xc0, 0x9b, 0xc9, 0x8b, 0x2b, 0x09, 0x30, 0xfe, 0x3a, 0x07, 0x93, 0x19, 0xad, 0x64, - 0x36, 0x6f, 0x5a, 0x76, 0xeb, 0xbe, 0x0c, 0xd5, 0xf4, 0xeb, 0x02, 0x95, 0x43, 0x61, 0x27, 0x6f, - 0x0a, 0x86, 0xa7, 0x6c, 0x1d, 0x4a, 0x6a, 0xda, 0xab, 0x2b, 0xb4, 0xa8, 0xc8, 0x57, 0xba, 0xb8, - 0xb1, 0x64, 0x6a, 0xc8, 0xb9, 0xab, 0x47, 0x98, 0x78, 0x7e, 0xbc, 0x01, 0xe3, 0x21, 0xc1, 0xd4, - 0xf7, 0xd4, 0x0c, 0xbe, 0x32, 0xda, 0xa6, 0xd6, 0x4c, 0x41, 0x64, 0x2a, 0x62, 0xe3, 0x08, 0xc6, - 0x25, 0x04, 0x55, 0xa1, 0xf4, 0xae, 0x77, 0xe0, 0xf9, 0x47, 0x9e, 0x3e, 0x86, 0x6a, 0x00, 0x3b, - 0x01, 0x53, 0x69, 0xb2, 0xba, 0x86, 0x66, 0x41, 0x4f, 0x67, 0xb2, 0x73, 0x0b, 0xd7, 0x73, 0x08, - 0x41, 0xad, 0x41, 0xdc, 0x7d, 0xd3, 0x77, 0x5d, 0xd2, 0xba, 0x85, 0xed, 0x03, 0x3d, 0x8f, 0x26, - 0xa1, 0x62, 0xda, 0x32, 0x9f, 0x96, 0xea, 0x05, 0xb4, 0x00, 0x33, 0xdb, 0xf8, 0xeb, 0xfd, 0x77, - 0x3d, 0xe7, 0x83, 0x1e, 0xf1, 0x08, 0xa5, 0x02, 0xa5, 0x17, 0x8d, 0x15, 0x98, 0x48, 0xdb, 0x6c, - 0x24, 0x19, 0x2d, 0xd9, 0xf4, 0xff, 0xb6, 0x06, 0xe5, 0xc8, 0x3e, 0xd3, 0x29, 0xca, 0x5a, 0x26, - 0x45, 0x39, 0x72, 0x79, 0xc9, 0x89, 0x41, 0x10, 0xf2, 0x63, 0xea, 0x2a, 0x4c, 0x47, 0x56, 0xcd, - 0xd1, 0x56, 0x07, 0xd3, 0x8e, 0xca, 0x92, 0x98, 0x8a, 0x10, 0xf7, 0x49, 0xff, 0x1e, 0xa6, 0x1d, - 0xf4, 0x06, 0x80, 0x78, 0xd3, 0x63, 0x77, 0xb0, 0xe3, 0xa9, 0xd3, 0xdf, 0xfc, 0x5a, 0xfc, 0xc8, - 0xf9, 0x3d, 0xec, 0xb0, 0x3b, 0x7e, 0x78, 0xdb, 0xe3, 0xeb, 0x7e, 0x85, 0x53, 0x6e, 0x70, 0x42, - 0xe3, 0x5b, 0x1a, 0x4c, 0x0d, 0xcc, 0x85, 0xd3, 0xec, 0x63, 0x0d, 0x66, 0x30, 0x63, 0xa4, 0x1b, - 0xf0, 0x45, 0x3f, 0xd1, 0xa9, 0xb4, 0x93, 0xe9, 0x18, 0x15, 0x2b, 0x75, 0xd8, 0x5c, 0x86, 0x5c, - 0x65, 0x61, 0xc8, 0x55, 0x1a, 0x5b, 0x50, 0x4d, 0xcd, 0xae, 0xc7, 0xd8, 0xeb, 0xa9, 0x99, 0xe1, - 0xc6, 0x0d, 0xd0, 0x07, 0x27, 0x5a, 0xf6, 0x02, 0x57, 0x1b, 0xb8, 0xc0, 0xfd, 0x0b, 0x0d, 0xa6, - 0x06, 0xe6, 0xd4, 0x69, 0x0c, 0x0c, 0x5f, 0xb5, 0x7c, 0x06, 0x2a, 0xf1, 0x14, 0x14, 0x03, 0xaf, - 0xad, 0xa3, 0xe1, 0xd9, 0x6a, 0x26, 0x44, 0x5c, 0xcd, 0xc2, 0x27, 0x3a, 0x5e, 0x7b, 0x30, 0x4d, - 0x7d, 0x2a, 0x42, 0x44, 0x89, 0xea, 0x9f, 0x06, 0x14, 0xd3, 0x0e, 0xcd, 0xa9, 0x08, 0x13, 0x0b, - 0xf2, 0x2f, 0x35, 0x00, 0xbe, 0x09, 0x97, 0x79, 0x25, 0xe8, 0x93, 0x30, 0x2d, 0x6c, 0xe4, 0x08, - 0xbb, 0xae, 0xdc, 0xb3, 0x77, 0xa3, 0x01, 0xd5, 0x38, 0xe2, 0x3d, 0xec, 0xba, 0x9c, 0xfc, 0x01, - 0x45, 0x37, 0x60, 0x36, 0x08, 0x7d, 0x9b, 0x50, 0x9a, 0xa5, 0x56, 0x9a, 0x56, 0xb8, 0x54, 0x85, - 0x35, 0x98, 0x3d, 0x38, 0x14, 0x5b, 0xde, 0x6c, 0x05, 0x69, 0xae, 0xfa, 0xc1, 0x21, 0xdf, 0xfc, - 0xa6, 0xe8, 0xd7, 0x61, 0x9e, 0xf9, 0x0c, 0xbb, 0x56, 0x18, 0xd8, 0xa9, 0x1a, 0x5e, 0x34, 0x72, - 0x24, 0xb0, 0x66, 0x60, 0x47, 0x75, 0x1e, 0x52, 0xe3, 0x9b, 0x39, 0x98, 0x48, 0x86, 0xf3, 0x68, - 0x7d, 0xc4, 0x80, 0xbc, 0x91, 0x03, 0x7a, 0x78, 0xc2, 0x80, 0xbc, 0x93, 0x06, 0xf4, 0x90, 0xa2, - 0xb7, 0xe0, 0x72, 0x54, 0x81, 0xf6, 0x68, 0x40, 0xbc, 0x56, 0xb6, 0xa2, 0x1c, 0x58, 0x5d, 0xd1, - 0x34, 0x24, 0x49, 0xaa, 0xfe, 0x48, 0x81, 0xc4, 0xc3, 0x1b, 0x10, 0xc8, 0xc3, 0xd3, 0x04, 0x52, - 0x3c, 0x51, 0x20, 0x5f, 0x81, 0x32, 0x3f, 0x39, 0x89, 0x2d, 0xd9, 0x2c, 0x14, 0x05, 0x85, 0x18, - 0x7f, 0xde, 0x94, 0x05, 0xbe, 0xbe, 0x2b, 0x0e, 0x49, 0x4b, 0x8c, 0x35, 0x6f, 0x26, 0x80, 0x38, - 0x6a, 0xb2, 0xd7, 0x67, 0x44, 0x8e, 0x28, 0x2f, 0xa3, 0x26, 0xb7, 0x38, 0xc0, 0xf8, 0xbf, 0x1a, - 0x00, 0x6f, 0x5f, 0x99, 0xcf, 0xcb, 0x50, 0x14, 0xaf, 0x4a, 0x87, 0x76, 0x15, 0x11, 0x0f, 0xa6, - 0xc4, 0xf3, 0xa3, 0x78, 0xfc, 0x5a, 0x66, 0x24, 0x9d, 0x40, 0x73, 0xb2, 0x16, 0x66, 0x78, 0x28, - 0x64, 0x91, 0x90, 0x71, 0xb4, 0xf1, 0x2f, 0x45, 0xf9, 0x5e, 0x3e, 0xd6, 0xfa, 0x2b, 0x80, 0xe2, - 0x21, 0x44, 0xdb, 0xcb, 0x48, 0xed, 0xd3, 0x31, 0x46, 0x6d, 0x32, 0x29, 0x7a, 0x13, 0x16, 0x86, - 0xc9, 0xd3, 0xaf, 0xb0, 0xe7, 0x86, 0xea, 0x88, 0x5d, 0xe5, 0x35, 0xa8, 0x49, 0x85, 0xc4, 0x5d, - 0xa8, 0xdc, 0x65, 0x01, 0x8d, 0x9b, 0xff, 0x32, 0x5c, 0x0e, 0xf9, 0x39, 0xa7, 0xb5, 0x67, 0xb5, - 0xc4, 0x6d, 0x91, 0x45, 0x0f, 0x9c, 0x20, 0x10, 0xfe, 0xb1, 0xe7, 0x31, 0x65, 0x27, 0x8b, 0x8a, - 0x46, 0x5e, 0x28, 0x35, 0x24, 0xc5, 0x06, 0x27, 0xe0, 0x07, 0xd5, 0xa8, 0x01, 0xee, 0xe4, 0xb3, - 0xb5, 0xa5, 0xb5, 0xcc, 0x2b, 0x82, 0xfb, 0xa4, 0x9f, 0xa9, 0xfa, 0x36, 0x5c, 0x89, 0xaa, 0xee, - 0x89, 0x55, 0x42, 0x9c, 0xe3, 0xad, 0x0e, 0x5f, 0x07, 0x44, 0xf5, 0x62, 0xa6, 0xf3, 0x5b, 0x9c, - 0x46, 0x1c, 0xeb, 0xef, 0x39, 0x4c, 0xb6, 0xf0, 0x59, 0xa8, 0x67, 0x5b, 0x10, 0xf6, 0x20, 0x2b, - 0xcb, 0xdc, 0x96, 0xb9, 0x74, 0x65, 0x6e, 0xb3, 0xb2, 0xe2, 0x1b, 0xb0, 0x30, 0xa2, 0x22, 0x37, - 0x24, 0xb5, 0x9d, 0x9e, 0x1d, 0xac, 0xc7, 0x6d, 0xea, 0x84, 0xfe, 0x3c, 0xec, 0xf9, 0xd1, 0xa6, - 0x79, 0xa8, 0xbf, 0x87, 0x1c, 0xc9, 0x1d, 0x5f, 0x9b, 0x30, 0x8b, 0x7a, 0x38, 0xa0, 0x1d, 0x9f, - 0xa9, 0x2a, 0xf2, 0x09, 0xbc, 0xde, 0x26, 0xac, 0xa1, 0x10, 0x92, 0x9a, 0x0b, 0x26, 0x0e, 0x07, - 0x5a, 0x41, 0xe8, 0x07, 0x3e, 0x25, 0x96, 0xf0, 0x15, 0xb2, 0x62, 0x55, 0x09, 0x26, 0x8a, 0x10, - 0xee, 0x4a, 0x12, 0xbe, 0x4c, 0x8e, 0x6a, 0x81, 0xef, 0x56, 0x9c, 0xb0, 0x9b, 0x6e, 0x61, 0x62, - 0xa0, 0x85, 0x0d, 0x49, 0x32, 0xdc, 0x42, 0xe0, 0xfb, 0xae, 0x45, 0xed, 0x0e, 0x69, 0xf5, 0xdc, - 0x0c, 0x0f, 0x93, 0x49, 0x0b, 0xbb, 0xbe, 0xef, 0x36, 0x14, 0x49, 0xdc, 0x82, 0xf1, 0xff, 0x35, - 0xa8, 0xa6, 0xb2, 0x04, 0xf9, 0x41, 0x5d, 0xf8, 0x04, 0x99, 0x54, 0xa8, 0xa6, 0x61, 0x72, 0x50, - 0x4f, 0x5c, 0xa3, 0x09, 0x2c, 0xf1, 0xfa, 0xaf, 0x43, 0x55, 0x44, 0x5d, 0x54, 0xad, 0xdc, 0x40, - 0xad, 0x64, 0x6a, 0x99, 0x40, 0xe3, 0xff, 0x32, 0x8d, 0x59, 0x9e, 0x48, 0x8d, 0x7f, 0xd5, 0x60, - 0x32, 0x93, 0xad, 0x78, 0x4e, 0x4e, 0xbe, 0x08, 0xb5, 0x14, 0x27, 0xd6, 0xe1, 0xba, 0x62, 0x66, - 0x6e, 0x04, 0x33, 0x8f, 0xd6, 0xcd, 0x09, 0x9a, 0x9e, 0xf5, 0x9f, 0x85, 0x09, 0xe1, 0x5d, 0xa2, - 0x3e, 0xf3, 0x03, 0xfb, 0x71, 0xb1, 0x4b, 0x54, 0x9d, 0x56, 0x8f, 0x92, 0x02, 0xef, 0x35, 0xc5, - 0x6b, 0x92, 0x0f, 0x3b, 0x37, 0x82, 0x5d, 0xde, 0x2b, 0x4b, 0x95, 0x8c, 0x0f, 0x4b, 0x50, 0x4d, - 0xb5, 0x8c, 0x5e, 0x83, 0x79, 0xca, 0xfc, 0x90, 0x58, 0x7b, 0x98, 0xd9, 0x9d, 0xb4, 0x36, 0xa5, - 0xff, 0x99, 0x11, 0x58, 0x71, 0x01, 0x9a, 0x58, 0xc2, 0x1b, 0xc2, 0x03, 0x09, 0x13, 0xa4, 0x72, - 0x1d, 0x89, 0x6b, 0x49, 0x97, 0x32, 0xab, 0xd0, 0x0d, 0xb1, 0x84, 0x44, 0xd5, 0x56, 0x61, 0x3a, - 0xe0, 0x5e, 0x46, 0xbc, 0xe4, 0x6e, 0xab, 0x0a, 0x6a, 0xfb, 0xa7, 0x10, 0xdb, 0x7e, 0x5b, 0xd2, - 0x6e, 0xc0, 0x72, 0x88, 0xf7, 0x99, 0xd5, 0xda, 0xb3, 0xa4, 0x94, 0x5c, 0x82, 0x5b, 0x24, 0x4c, - 0x77, 0x25, 0x5d, 0xc9, 0x12, 0x27, 0xdb, 0xdc, 0x13, 0x63, 0xda, 0x16, 0x34, 0x49, 0x87, 0xeb, - 0x30, 0x1f, 0x35, 0x12, 0xc5, 0xfc, 0x54, 0x5d, 0xb5, 0x04, 0xc9, 0xba, 0x0d, 0x19, 0xff, 0x93, - 0x75, 0xde, 0x82, 0xcb, 0xd9, 0x8e, 0xbb, 0xa4, 0xcb, 0xf8, 0xe1, 0x51, 0xd5, 0x94, 0x4e, 0xa4, - 0x9e, 0xea, 0xf5, 0x81, 0x22, 0x90, 0xf5, 0xaf, 0x83, 0x3a, 0xf7, 0xa4, 0x7a, 0x93, 0x0e, 0x44, - 0xc5, 0x91, 0xe2, 0x9e, 0x5e, 0x83, 0x79, 0x1c, 0x04, 0x6e, 0x7f, 0x58, 0xf4, 0xd2, 0x8d, 0xcf, - 0x08, 0xec, 0x80, 0xe8, 0x5f, 0x82, 0x29, 0x59, 0x29, 0x69, 0xbd, 0xa2, 0x1e, 0x5e, 0x72, 0xf0, - 0x70, 0xe3, 0xdd, 0x1e, 0x23, 0xc7, 0xf2, 0x95, 0x66, 0xda, 0xc5, 0xc8, 0xc6, 0x1f, 0x70, 0x24, - 0x3f, 0x43, 0xc7, 0x33, 0x5c, 0x56, 0x3a, 0x49, 0xe4, 0xca, 0xcb, 0x08, 0xa2, 0x91, 0x12, 0x7f, - 0x15, 0xe6, 0xd2, 0x2d, 0x1c, 0x61, 0x37, 0xe3, 0x5d, 0x50, 0x52, 0xf3, 0x3d, 0xec, 0xca, 0x2a, - 0x5f, 0x84, 0xa5, 0x74, 0x95, 0x01, 0x71, 0x4b, 0x9f, 0xb2, 0x90, 0xd4, 0x1b, 0x92, 0xb6, 0x3b, - 0x28, 0x3d, 0x19, 0x0b, 0xad, 0xb9, 0x59, 0xc1, 0xbd, 0x08, 0x93, 0xd1, 0xf6, 0x47, 0x92, 0xa9, - 0x18, 0xa8, 0x02, 0x4a, 0x22, 0xbe, 0x44, 0x76, 0x42, 0x9f, 0xb1, 0xb8, 0x7f, 0x5d, 0x2d, 0x91, - 0x0a, 0x2a, 0xc9, 0xfe, 0x1b, 0x5c, 0x1a, 0x7c, 0xd5, 0x98, 0x66, 0x60, 0x5a, 0xed, 0xa4, 0x06, - 0xdf, 0xe5, 0x47, 0x6e, 0xf0, 0x7d, 0x18, 0x97, 0xb7, 0xfe, 0x49, 0xf2, 0xb1, 0xf6, 0x98, 0xf4, - 0xeb, 0x33, 0x26, 0xc7, 0x19, 0x1f, 0x6a, 0x50, 0x8e, 0xde, 0x2d, 0xa1, 0x4b, 0x90, 0xf3, 0x03, - 0xf5, 0xa6, 0x3f, 0x13, 0x3f, 0xca, 0xf9, 0xc1, 0x99, 0xd3, 0xed, 0x32, 0xdb, 0xff, 0xc2, 0x19, - 0xb6, 0xff, 0xc6, 0x4f, 0x73, 0x50, 0x79, 0x70, 0x68, 0xdb, 0x42, 0x5d, 0x68, 0x39, 0xf3, 0x69, - 0x81, 0x0c, 0x1b, 0xf2, 0x03, 0x02, 0xa7, 0x5c, 0xbc, 0x5d, 0x1a, 0x7a, 0x46, 0x9f, 0x7a, 0x8e, - 0xb7, 0x0c, 0x55, 0xda, 0xf1, 0x43, 0x66, 0xa5, 0x1e, 0xd2, 0x9b, 0x20, 0x40, 0xe2, 0xa3, 0x0d, - 0x7c, 0x9f, 0xd4, 0xc1, 0xd4, 0xf2, 0x0f, 0x49, 0xe8, 0x62, 0xb1, 0x05, 0x89, 0x9e, 0xb5, 0xaa, - 0x94, 0xb8, 0xb9, 0x0e, 0xa6, 0x3b, 0x31, 0x36, 0x7a, 0x5b, 0x82, 0x56, 0x60, 0x82, 0xd7, 0x6b, - 0xdb, 0xd6, 0xbe, 0xf8, 0x7c, 0x81, 0x4c, 0x09, 0x81, 0x0e, 0xa6, 0x77, 0xed, 0x3b, 0xe2, 0xfb, - 0x05, 0x8b, 0x50, 0x8e, 0xb1, 0x72, 0x6e, 0x97, 0xda, 0x0a, 0xf5, 0x09, 0xa8, 0x89, 0x38, 0x97, - 0xdd, 0xc1, 0x5e, 0x5b, 0x04, 0xe3, 0xe4, 0x64, 0x9e, 0xe0, 0xd0, 0x0d, 0x01, 0x14, 0xb1, 0x81, - 0x85, 0x78, 0xe3, 0x16, 0x45, 0xc6, 0x64, 0x0d, 0x35, 0x9b, 0x67, 0x23, 0xb4, 0x0c, 0x8b, 0xc9, - 0x8a, 0xc6, 0x97, 0xa4, 0x60, 0xe5, 0xf0, 0x4e, 0x39, 0xc4, 0x8d, 0xfc, 0x26, 0x83, 0xf1, 0xbd, - 0x3c, 0x94, 0x79, 0x75, 0x11, 0xcd, 0x7c, 0x1a, 0xb5, 0xa4, 0x22, 0x24, 0xf9, 0x6c, 0x84, 0xe4, - 0xb1, 0x3a, 0x19, 0x4e, 0xd6, 0x3c, 0xcb, 0x37, 0x40, 0xd2, 0xa1, 0xd2, 0xd2, 0x60, 0xa8, 0xf4, - 0xac, 0x31, 0xcd, 0x81, 0x78, 0x65, 0x65, 0x38, 0x5e, 0xb9, 0x0c, 0xd5, 0xf8, 0x55, 0x34, 0x93, - 0x11, 0xcd, 0x82, 0x09, 0x11, 0xa8, 0x49, 0x47, 0x28, 0xb7, 0xfa, 0x64, 0xca, 0x9d, 0x38, 0x45, - 0xb9, 0xdf, 0xd0, 0xa4, 0x7a, 0xc4, 0xe1, 0x27, 0x3a, 0x71, 0x68, 0x23, 0x2e, 0xff, 0x44, 0x72, - 0x82, 0x3c, 0x71, 0xac, 0xc2, 0xb8, 0xf0, 0x9a, 0x51, 0x16, 0x02, 0xca, 0x10, 0x8a, 0x09, 0x68, - 0x2a, 0x0a, 0x4e, 0xab, 0x3e, 0x2c, 0x91, 0x1f, 0x41, 0x2b, 0xd4, 0x13, 0x7d, 0x6c, 0xc2, 0x78, - 0x0d, 0x4a, 0xea, 0x29, 0x8a, 0xd0, 0xd8, 0xb1, 0xa7, 0x2c, 0x8c, 0xff, 0x45, 0xf3, 0x30, 0x4e, - 0xc5, 0xb3, 0x6c, 0x65, 0x17, 0xaa, 0x64, 0xbc, 0x2d, 0x22, 0xb6, 0xe2, 0x3e, 0x3c, 0x9b, 0x82, - 0xa1, 0x9d, 0x9c, 0x80, 0x94, 0xcb, 0x24, 0x20, 0xfd, 0x99, 0x06, 0x20, 0x57, 0x14, 0xd1, 0xf5, - 0xa9, 0xd7, 0x99, 0x0b, 0x50, 0x0a, 0x08, 0x09, 0x39, 0x4a, 0xb1, 0xc1, 0x8b, 0x5b, 0xad, 0xf8, - 0x36, 0x32, 0x9f, 0xba, 0x8d, 0x1c, 0xbc, 0xfb, 0x2c, 0x9c, 0xf1, 0xee, 0xf3, 0x55, 0x75, 0x9e, - 0xe4, 0x23, 0x24, 0x2a, 0xc4, 0x8b, 0x52, 0xd7, 0x25, 0xb8, 0xd5, 0xe0, 0x18, 0x79, 0xc6, 0x14, - 0x7f, 0x8d, 0x2d, 0xa8, 0xc4, 0xf0, 0xe1, 0x8b, 0x37, 0x6d, 0xf4, 0xc5, 0x9b, 0x78, 0xe1, 0xc2, - 0x12, 0x81, 0xe2, 0x7d, 0xd2, 0xa4, 0x46, 0x03, 0x90, 0xcc, 0x18, 0x12, 0x22, 0x89, 0x6e, 0xb7, - 0x5e, 0x49, 0x72, 0x22, 0xe4, 0x8b, 0xd5, 0x64, 0x9b, 0x9a, 0xc8, 0x2e, 0x4e, 0x8c, 0x40, 0x35, - 0xc8, 0xc5, 0x0d, 0xe7, 0x18, 0x35, 0xbe, 0x0c, 0x33, 0x99, 0x46, 0xd5, 0x45, 0x76, 0x3d, 0xdb, - 0x6a, 0xe1, 0xe4, 0x06, 0x36, 0x01, 0x35, 0xf8, 0x9e, 0xb0, 0xc1, 0x99, 0x6c, 0x44, 0x5c, 0xad, - 0x41, 0x85, 0x1f, 0xf6, 0x44, 0x1a, 0xc4, 0xa8, 0xd5, 0x4c, 0xa6, 0x49, 0x94, 0x0f, 0xd4, 0x3f, - 0x63, 0x0d, 0x66, 0x32, 0xad, 0x28, 0x36, 0x52, 0xb2, 0xd0, 0x32, 0xb2, 0xb0, 0x45, 0x6a, 0xe1, - 0x5d, 0xc2, 0x0d, 0xa8, 0xd9, 0xdc, 0x7e, 0x36, 0xcf, 0x04, 0xbe, 0xa9, 0x89, 0x74, 0xbf, 0x54, - 0x2f, 0xcf, 0xe0, 0x9a, 0x3f, 0xf9, 0xbe, 0x80, 0xf0, 0x7f, 0xa7, 0x3e, 0x14, 0xf8, 0x99, 0xcc, - 0xa8, 0xdf, 0xb8, 0xd9, 0x78, 0x96, 0x19, 0xf5, 0x9f, 0x06, 0x14, 0x84, 0xe4, 0xd0, 0xf1, 0x7b, - 0x34, 0xf5, 0x29, 0x08, 0xc9, 0x8b, 0x1e, 0x61, 0xe2, 0x0f, 0x41, 0x5c, 0x83, 0x5a, 0x4c, 0x2d, - 0x1b, 0x93, 0x2f, 0x09, 0x27, 0x23, 0xe8, 0xa3, 0x54, 0x9a, 0xfe, 0xf8, 0x60, 0x9a, 0x7e, 0x29, - 0x1e, 0xb9, 0xf1, 0x91, 0x4c, 0x2b, 0x16, 0x83, 0xbb, 0x68, 0x39, 0xd7, 0xa1, 0x44, 0x7b, 0xb6, - 0x4d, 0x54, 0x82, 0x4c, 0xd9, 0x8c, 0x8a, 0xcf, 0x64, 0xb0, 0xc6, 0x26, 0xcc, 0xdf, 0x25, 0x2c, - 0xda, 0xe5, 0x89, 0x09, 0xf8, 0xe4, 0xfa, 0x32, 0xbe, 0xad, 0xc1, 0xc2, 0x50, 0x33, 0x17, 0x2d, - 0x99, 0xcf, 0x70, 0xe7, 0xcb, 0xc4, 0x12, 0x98, 0x3f, 0x35, 0xa8, 0x1e, 0x91, 0x19, 0x77, 0x61, - 0x31, 0xc5, 0xd5, 0x3d, 0x87, 0x9f, 0x08, 0xcf, 0x93, 0x46, 0x64, 0x7c, 0x47, 0x83, 0xa5, 0x51, - 0x2d, 0xfd, 0xe2, 0x87, 0xf8, 0xe7, 0x32, 0x51, 0x7b, 0xc3, 0x57, 0xa7, 0x01, 0x3f, 0x3c, 0x67, - 0xd6, 0xad, 0xed, 0x07, 0xa1, 0xbc, 0xb0, 0x96, 0x1c, 0x95, 0x39, 0x40, 0xdc, 0x53, 0x8b, 0x73, - 0x61, 0x10, 0x46, 0xc1, 0x37, 0x2b, 0x24, 0x1f, 0x28, 0xcf, 0x53, 0xe3, 0xf0, 0xe4, 0xa9, 0x58, - 0x2a, 0xdd, 0xac, 0xf0, 0xb8, 0x14, 0x68, 0xa4, 0x22, 0x8e, 0xd2, 0x28, 0x65, 0x78, 0xb1, 0x27, - 0x12, 0xbd, 0x33, 0x43, 0xb9, 0x68, 0x01, 0xa3, 0x54, 0xa0, 0x33, 0xea, 0xf6, 0xfb, 0xf2, 0x01, - 0x8c, 0x58, 0x5b, 0x68, 0xaf, 0x7b, 0x1e, 0xf9, 0x7d, 0x0e, 0x2a, 0xd8, 0x6d, 0xfb, 0xa1, 0xc3, - 0x3a, 0x5d, 0xd1, 0x61, 0x6d, 0x7d, 0x29, 0xa1, 0x56, 0x0d, 0xdf, 0x8c, 0x28, 0xcc, 0x84, 0xf8, - 0x49, 0x32, 0xf4, 0xfe, 0x50, 0x26, 0xa9, 0x27, 0x7c, 0x5e, 0xb4, 0x70, 0x96, 0xa0, 0x6c, 0xab, - 0xc6, 0xe3, 0x33, 0x8b, 0x2a, 0x73, 0x0b, 0x91, 0x21, 0xd8, 0x83, 0xc3, 0xf8, 0xfb, 0x22, 0x02, - 0x70, 0xff, 0x50, 0x6c, 0x3f, 0x25, 0x52, 0x46, 0xaf, 0xe5, 0x1e, 0x19, 0x04, 0x48, 0x86, 0xaf, - 0x7f, 0x90, 0x87, 0x89, 0x0d, 0xbf, 0x1b, 0x60, 0x9b, 0x49, 0x06, 0xde, 0x87, 0x39, 0x12, 0x86, - 0x96, 0xe3, 0x1d, 0x62, 0xd7, 0x69, 0x59, 0xd9, 0x1d, 0x57, 0x75, 0xfd, 0x13, 0xe9, 0xbb, 0xd9, - 0xb8, 0xd6, 0x96, 0xa4, 0x6e, 0xa8, 0xdd, 0xd8, 0xbd, 0x31, 0x13, 0x91, 0x70, 0x10, 0x8a, 0x5c, - 0xb8, 0xcc, 0x9b, 0x0e, 0x54, 0x52, 0xac, 0xa5, 0xce, 0xe4, 0xb1, 0xc3, 0x94, 0x81, 0xae, 0xd5, - 0x91, 0x3d, 0x44, 0x99, 0xb4, 0x4d, 0x71, 0x4e, 0x57, 0xae, 0xf4, 0xde, 0x98, 0x59, 0x27, 0xe1, - 0x68, 0x1c, 0xb2, 0x60, 0x81, 0xf7, 0x66, 0xcb, 0x46, 0x2c, 0xc7, 0xb3, 0x82, 0xd0, 0x6f, 0x87, - 0x84, 0x52, 0x15, 0x16, 0x7b, 0x69, 0x64, 0x47, 0xea, 0xff, 0x96, 0xb7, 0xab, 0xa8, 0xef, 0x8d, - 0x99, 0xb3, 0x24, 0x1c, 0x86, 0xa3, 0x7d, 0x58, 0xe2, 0x1d, 0x30, 0xdf, 0xb7, 0xba, 0xd8, 0xeb, - 0x5b, 0x01, 0xf1, 0x5a, 0x8e, 0xd7, 0xb6, 0x18, 0xa6, 0x07, 0x54, 0x6d, 0x07, 0xaf, 0x8f, 0xec, - 0xa3, 0xe9, 0xfb, 0x0f, 0xb0, 0xd7, 0xdf, 0x95, 0x15, 0x9a, 0x9c, 0xfe, 0xde, 0x98, 0x39, 0x4f, - 0xc2, 0x51, 0x98, 0x5b, 0x25, 0x65, 0x12, 0xc6, 0x15, 0xb8, 0x74, 0x8a, 0xd0, 0x8d, 0x17, 0xe1, - 0xea, 0x63, 0x25, 0x66, 0x2c, 0xc3, 0x95, 0x53, 0x47, 0x6b, 0x5c, 0x85, 0xe5, 0xc7, 0xb0, 0xca, - 0x77, 0x10, 0x35, 0x45, 0x13, 0x4d, 0xc9, 0x53, 0xf7, 0xe6, 0xab, 0x30, 0x3d, 0xa0, 0x73, 0x27, - 0xba, 0x67, 0x99, 0x0a, 0xd2, 0x5c, 0x6e, 0xb5, 0x44, 0xf0, 0xc5, 0x6f, 0x67, 0x49, 0xe5, 0x9d, - 0x4b, 0x4d, 0xc1, 0x23, 0xca, 0x81, 0x8c, 0xac, 0xd2, 0xd9, 0x32, 0xb2, 0x06, 0xf2, 0x8b, 0xca, - 0x83, 0xf9, 0x45, 0xc6, 0x9f, 0xca, 0xcb, 0x5e, 0x39, 0x38, 0x35, 0x8f, 0x3f, 0x95, 0x0d, 0xa9, - 0xcc, 0x8d, 0x54, 0x6a, 0x34, 0x57, 0x5f, 0x84, 0x49, 0x7e, 0xd4, 0x0f, 0x49, 0x17, 0x3b, 0x9e, - 0xe3, 0xb5, 0x55, 0x96, 0x3d, 0x3f, 0xff, 0x9b, 0x11, 0x0c, 0xad, 0x89, 0xfc, 0x07, 0x5e, 0x97, - 0xa4, 0xe7, 0x98, 0x74, 0x7e, 0xd3, 0x31, 0xaa, 0x91, 0x12, 0x61, 0x42, 0x9f, 0x7d, 0x8d, 0x3b, - 0x15, 0x23, 0x6e, 0xcb, 0x13, 0xcf, 0x2b, 0xb0, 0xd8, 0x74, 0xc4, 0x03, 0xdb, 0x46, 0x9f, 0x32, - 0xd2, 0x15, 0x02, 0x8b, 0x14, 0xa5, 0x43, 0x9e, 0x7e, 0xe0, 0xaa, 0xd4, 0x27, 0xfe, 0xd7, 0x08, - 0x60, 0x69, 0x14, 0xb9, 0x1a, 0xba, 0xa9, 0xdc, 0xb2, 0xd0, 0xe9, 0xad, 0xb7, 0x3e, 0xfa, 0xf9, - 0xf2, 0xd8, 0xcf, 0x7e, 0xbe, 0xfc, 0x66, 0xdb, 0x61, 0x9d, 0xde, 0xde, 0x9a, 0xed, 0x77, 0x6f, - 0x04, 0x8e, 0xd7, 0xb6, 0x71, 0x70, 0xe3, 0xe0, 0x50, 0x7e, 0x50, 0x3c, 0x38, 0x68, 0xdf, 0xa0, - 0x1d, 0x1c, 0x92, 0x96, 0xf0, 0x39, 0x6b, 0x0d, 0xf1, 0x5f, 0x78, 0x1b, 0xe9, 0xd6, 0x57, 0xdf, - 0x81, 0xc5, 0x13, 0xbf, 0x2f, 0x89, 0x66, 0x41, 0x4f, 0x4a, 0x0f, 0xfd, 0xb0, 0x8b, 0x5d, 0x7d, - 0x0c, 0x2d, 0xc0, 0x4c, 0x02, 0xbd, 0xe3, 0x87, 0xb6, 0x78, 0x1a, 0xa0, 0x6b, 0xab, 0x2e, 0x5c, - 0x3e, 0xed, 0x83, 0x92, 0xbc, 0x39, 0x95, 0x78, 0xdf, 0x73, 0x59, 0xdc, 0xdc, 0x0a, 0x5c, 0x4e, - 0xa0, 0xdb, 0x43, 0xdf, 0x85, 0x94, 0xb9, 0x10, 0x09, 0x85, 0xbc, 0xe2, 0xd6, 0x73, 0xab, 0x2f, - 0x03, 0x24, 0x76, 0x85, 0xc6, 0x21, 0xf7, 0xe8, 0x55, 0x7d, 0x0c, 0x55, 0xa0, 0xf8, 0xe8, 0xd5, - 0x66, 0x73, 0x5b, 0xd7, 0x04, 0x68, 0x5d, 0xcf, 0xad, 0x7e, 0x0a, 0x20, 0xc9, 0x48, 0x45, 0x00, - 0xe3, 0x71, 0xd7, 0x25, 0xc8, 0x6f, 0xfb, 0x47, 0xba, 0x86, 0xca, 0x50, 0xb8, 0xe7, 0xb4, 0x3b, - 0x7a, 0x6e, 0xf5, 0x06, 0xd4, 0xb2, 0x69, 0xa8, 0xbc, 0x99, 0xc6, 0x96, 0x3e, 0xc6, 0x7f, 0xcd, - 0x0d, 0x5d, 0x13, 0xf9, 0x16, 0x1b, 0x32, 0xdf, 0xa2, 0xa1, 0xe7, 0x56, 0x1f, 0x41, 0x35, 0x95, - 0xd2, 0xc8, 0x79, 0x7d, 0xe8, 0xb3, 0x9b, 0xae, 0xeb, 0x1f, 0x91, 0xd6, 0x8e, 0xc7, 0xc1, 0x52, - 0x64, 0x31, 0xe8, 0xa6, 0xdb, 0xf5, 0x29, 0x13, 0x08, 0x0d, 0xd5, 0x61, 0x36, 0x85, 0x10, 0xd9, - 0x19, 0x02, 0x93, 0x5b, 0xb5, 0x21, 0xb7, 0x13, 0x70, 0x0e, 0x77, 0x7b, 0x4c, 0xb2, 0xba, 0x49, - 0x5c, 0xc9, 0xaa, 0x10, 0x77, 0x0e, 0x4d, 0x40, 0x39, 0x8a, 0x69, 0xe9, 0x79, 0x3e, 0xae, 0x2d, - 0x8f, 0x92, 0x90, 0xe9, 0x05, 0x34, 0x03, 0x53, 0x03, 0x8a, 0xd0, 0x8b, 0x08, 0x41, 0x4d, 0x70, - 0x1d, 0xb9, 0x1f, 0xaa, 0x8f, 0xaf, 0xae, 0x41, 0x25, 0x0e, 0xf1, 0xf1, 0x96, 0x1f, 0xfa, 0x1e, - 0x91, 0x42, 0x14, 0x24, 0xba, 0xc6, 0x3b, 0x89, 0x2a, 0x48, 0xe9, 0x64, 0x3f, 0x80, 0xcc, 0xf9, - 0xda, 0xd9, 0xdf, 0xd7, 0xc7, 0x78, 0xed, 0x3b, 0x58, 0x54, 0x01, 0x18, 0x6f, 0xb0, 0x90, 0xab, - 0x2e, 0xb7, 0xfa, 0x5d, 0x0d, 0xc6, 0xd5, 0x67, 0x83, 0x45, 0x4b, 0xf2, 0xbf, 0x3e, 0x86, 0xe6, - 0x60, 0xba, 0xd9, 0xdc, 0x96, 0x19, 0x1c, 0xf1, 0x28, 0x84, 0x3c, 0x44, 0xb8, 0x5a, 0x75, 0x19, - 0x63, 0x72, 0xbc, 0xc2, 0x83, 0x38, 0xe5, 0xa2, 0xb1, 0xdb, 0xa3, 0x1d, 0xd2, 0xd2, 0xf3, 0xdc, - 0x7a, 0xe2, 0x76, 0x46, 0x7c, 0xfa, 0x51, 0x2f, 0xa0, 0x45, 0x98, 0x4b, 0x37, 0xb9, 0xe9, 0x3f, - 0xf4, 0x59, 0xc7, 0xf1, 0xda, 0x7a, 0x71, 0xf5, 0x1a, 0x94, 0x6e, 0x1f, 0xb3, 0x10, 0xef, 0x04, - 0x72, 0xf0, 0x7e, 0xa0, 0x8f, 0x21, 0x1d, 0x26, 0xf8, 0x01, 0x7f, 0xc7, 0x6d, 0x89, 0xbd, 0xbf, - 0xae, 0xad, 0x1a, 0x30, 0x3d, 0xb4, 0x3b, 0xe1, 0x66, 0xb0, 0x11, 0xda, 0x6f, 0xbe, 0x6e, 0xfd, - 0x77, 0x3f, 0xd4, 0xc7, 0x6e, 0xbd, 0xf4, 0x37, 0xbf, 0x53, 0xd6, 0x3e, 0xfa, 0xf8, 0x05, 0xed, - 0x27, 0x1f, 0xbf, 0xa0, 0xfd, 0xdd, 0xc7, 0x2f, 0x68, 0xbf, 0xf9, 0x0f, 0x2f, 0x8c, 0x81, 0xee, - 0x87, 0xed, 0x35, 0xe6, 0x1c, 0x1c, 0xae, 0xa9, 0x19, 0xb9, 0x37, 0x2e, 0x7e, 0x5e, 0xfb, 0x8f, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x5e, 0xa9, 0x08, 0xf8, 0x2b, 0x60, 0x00, 0x00, + // 6778 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0x5b, 0x6c, 0x23, 0xc9, + 0x75, 0xe8, 0x34, 0x49, 0x89, 0xd4, 0xa1, 0x44, 0xb6, 0x4a, 0x2f, 0x4a, 0x33, 0xb3, 0x33, 0xd3, + 0xeb, 0xd9, 0x1d, 0xcb, 0x5e, 0x8d, 0x57, 0xfb, 0xf0, 0xf3, 0xae, 0x77, 0x46, 0xf3, 0xd2, 0xce, + 0x43, 0x42, 0x93, 0x3b, 0x7b, 0x17, 0xf7, 0xda, 0xed, 0x52, 0xb3, 0x44, 0x36, 0xd4, 0xec, 0xee, + 0xed, 0x2a, 0x4a, 0xa2, 0x2f, 0x2e, 0x70, 0x17, 0xf7, 0x01, 0x18, 0xb8, 0x71, 0x12, 0xc3, 0x80, + 0x03, 0xd8, 0x08, 0x90, 0x0f, 0x03, 0x71, 0xfe, 0x92, 0xfc, 0xe4, 0xf1, 0x11, 0x04, 0xf0, 0xc7, + 0x26, 0x88, 0x61, 0x03, 0x41, 0xe0, 0xc0, 0x09, 0x8c, 0x60, 0x03, 0xe4, 0x3b, 0x3f, 0x41, 0xf2, + 0x13, 0x24, 0xa8, 0x57, 0x3f, 0x48, 0x8e, 0x46, 0xa3, 0xd1, 0x8c, 0x9d, 0x7c, 0x91, 0x75, 0xce, + 0xa9, 0xaa, 0x53, 0xe7, 0x9c, 0x3a, 0x55, 0x75, 0xea, 0x54, 0xc3, 0xcc, 0xde, 0x7e, 0x1c, 0xb9, + 0xd1, 0xce, 0x5a, 0x14, 0x87, 0x2c, 0x44, 0x65, 0x55, 0x5c, 0x99, 0xee, 0x11, 0x86, 0x35, 0x78, + 0x65, 0x86, 0xc4, 0x71, 0x18, 0x27, 0xc5, 0xf9, 0x4e, 0xd8, 0x09, 0xc5, 0xdf, 0xab, 0xfc, 0x9f, + 0x82, 0xd6, 0xe3, 0x3e, 0x65, 0xe2, 0xaf, 0x02, 0xd4, 0xda, 0x04, 0xb7, 0xfd, 0xd0, 0xdd, 0xd3, + 0xad, 0xb0, 0x18, 0xbb, 0x24, 0x69, 0x65, 0x31, 0x26, 0x34, 0xec, 0xc7, 0x2e, 0x71, 0x7a, 0x38, + 0xc0, 0x1d, 0x12, 0x4b, 0xb8, 0xd5, 0x06, 0xb8, 0x4d, 0x98, 0x4d, 0x3e, 0xe8, 0x13, 0xca, 0xd0, + 0x2a, 0x94, 0xdd, 0x30, 0x60, 0xe4, 0x90, 0x35, 0x8c, 0x8b, 0xc6, 0x95, 0xea, 0xba, 0xb9, 0xa6, + 0x59, 0xde, 0x90, 0x70, 0x5b, 0x13, 0x20, 0x13, 0x8a, 0x7b, 0x64, 0xd0, 0x28, 0x5c, 0x34, 0xae, + 0x4c, 0xdb, 0xfc, 0x2f, 0x6a, 0x40, 0x79, 0x9f, 0xc4, 0xd4, 0x0b, 0x83, 0x46, 0xf1, 0xa2, 0x71, + 0xa5, 0x64, 0xeb, 0xa2, 0xf5, 0xb1, 0x01, 0x55, 0xd1, 0x0d, 0x8d, 0xc2, 0x80, 0x12, 0xf4, 0x2a, + 0x4c, 0xc7, 0xa4, 0xe3, 0x85, 0x81, 0x23, 0xc6, 0xaa, 0x3a, 0xab, 0xad, 0xe9, 0x91, 0xdf, 0xe4, + 0xbf, 0x76, 0x55, 0xd2, 0x88, 0x02, 0x7a, 0x19, 0x26, 0x24, 0x6d, 0x41, 0xd0, 0xce, 0x26, 0x8c, + 0xdd, 0x25, 0x03, 0x49, 0x2e, 0xf1, 0x68, 0x1e, 0x26, 0xf6, 0xb1, 0xdf, 0x27, 0x82, 0x87, 0x69, + 0x5b, 0x16, 0xd0, 0x59, 0x98, 0x0a, 0x42, 0xe6, 0xec, 0x86, 0xfd, 0xa0, 0xdd, 0x28, 0x5d, 0x34, + 0xae, 0x54, 0xec, 0x4a, 0x10, 0xb2, 0x5b, 0xbc, 0x8c, 0xde, 0x82, 0x3a, 0x39, 0x24, 0xae, 0xd3, + 0x26, 0x0c, 0x7b, 0x3e, 0x75, 0xf6, 0xd7, 0x1b, 0x93, 0xa2, 0x97, 0xc5, 0xa4, 0x97, 0x9b, 0x87, + 0xc4, 0xbd, 0x21, 0xd1, 0x0f, 0xd7, 0xed, 0x19, 0x92, 0x2d, 0xbe, 0x53, 0xaa, 0x4c, 0x98, 0x93, + 0xd6, 0x3f, 0x19, 0x50, 0x6d, 0xba, 0x38, 0x38, 0x89, 0x30, 0xcf, 0xc2, 0x14, 0x65, 0x38, 0x66, + 0x4e, 0x2a, 0xd2, 0x8a, 0x00, 0xdc, 0x25, 0x03, 0x3e, 0x22, 0xdf, 0xeb, 0x79, 0x4c, 0x8c, 0x68, + 0xc6, 0x96, 0x85, 0xac, 0xb4, 0x4b, 0x39, 0x69, 0xa3, 0x65, 0xa8, 0xec, 0x91, 0x81, 0x13, 0x06, + 0xfe, 0xa0, 0x31, 0x21, 0x86, 0x5a, 0xde, 0x23, 0x83, 0xad, 0xc0, 0x17, 0x2a, 0x8a, 0x09, 0xa7, + 0x23, 0x62, 0x84, 0x15, 0x5b, 0x17, 0xd1, 0x12, 0x94, 0x49, 0xd0, 0x16, 0xfd, 0x97, 0x45, 0xff, + 0x93, 0x24, 0x68, 0xf3, 0xde, 0x2f, 0x40, 0x95, 0xe2, 0x5e, 0xe4, 0x13, 0x87, 0x32, 0x12, 0x35, + 0x2a, 0x82, 0x07, 0x90, 0xa0, 0x26, 0x23, 0x91, 0xf5, 0xeb, 0x06, 0x4c, 0xcb, 0x71, 0x9f, 0x5c, + 0xbb, 0x97, 0x61, 0x22, 0xc2, 0x5e, 0x4c, 0x1b, 0x85, 0x8b, 0xc5, 0x2b, 0xd5, 0xf5, 0x7a, 0xaa, + 0xdd, 0xfd, 0x6d, 0xec, 0xc5, 0xb6, 0xc4, 0xa6, 0x46, 0x50, 0x3c, 0xda, 0x08, 0xac, 0x8f, 0xca, + 0x50, 0xdf, 0x8e, 0xc9, 0x41, 0xec, 0x31, 0x72, 0x12, 0x7d, 0x5c, 0x85, 0xa9, 0x5e, 0x9f, 0x61, + 0xe6, 0x85, 0x81, 0xe6, 0x29, 0xed, 0xec, 0xbe, 0xc2, 0xd8, 0x29, 0x0d, 0xba, 0x04, 0xd3, 0x51, + 0xec, 0xf5, 0x70, 0x3c, 0x70, 0xf8, 0x24, 0x54, 0xc6, 0x57, 0x55, 0xb0, 0x7b, 0xa1, 0xbb, 0x87, + 0x5e, 0x84, 0x19, 0xa9, 0xe3, 0xbc, 0xda, 0xa6, 0x05, 0xf0, 0x61, 0xaa, 0x3b, 0x5e, 0xdf, 0x61, + 0xcc, 0x17, 0xba, 0x2b, 0xd9, 0x65, 0x5e, 0x6e, 0x31, 0x1f, 0xad, 0xc3, 0x02, 0xdd, 0xf3, 0x22, + 0xc7, 0x0d, 0x03, 0xca, 0x62, 0xec, 0x05, 0xcc, 0x71, 0xbb, 0xc4, 0xdd, 0x53, 0x9a, 0x9c, 0xe3, + 0xc8, 0x8d, 0x04, 0xb7, 0xc1, 0x51, 0xe8, 0xbf, 0xc1, 0x5c, 0x44, 0x28, 0xf5, 0x7a, 0x1e, 0x65, + 0x9e, 0xeb, 0x60, 0x57, 0x8e, 0xa8, 0x7c, 0xb1, 0x78, 0xa5, 0xb6, 0xbe, 0x9a, 0x8c, 0x68, 0x48, + 0x54, 0x6b, 0xdb, 0x69, 0x9d, 0x6b, 0xa2, 0x8a, 0x8d, 0xa2, 0x61, 0x10, 0xe5, 0xbc, 0xb2, 0xc3, + 0xc0, 0xa1, 0xde, 0xd7, 0x89, 0x30, 0x8b, 0x92, 0x5d, 0x66, 0x87, 0x41, 0xd3, 0xfb, 0x3a, 0x41, + 0x16, 0xcc, 0xec, 0x86, 0xb1, 0xd3, 0x8f, 0xda, 0x98, 0x11, 0x87, 0xd1, 0xc6, 0x94, 0xc0, 0x57, + 0x77, 0xc3, 0xf8, 0x5d, 0x01, 0x6b, 0x51, 0x4e, 0xd3, 0xf3, 0x02, 0xc7, 0x0d, 0x7b, 0x3d, 0x8f, + 0x71, 0x1a, 0x90, 0x34, 0x3d, 0x2f, 0xd8, 0x10, 0xb0, 0x16, 0x45, 0x57, 0xc0, 0xec, 0x53, 0xe2, + 0x60, 0x3a, 0x08, 0x5c, 0x45, 0xd9, 0xa8, 0x8a, 0xe1, 0xd6, 0xfa, 0x94, 0x5c, 0xe3, 0x60, 0x49, + 0x8b, 0x2e, 0x42, 0x95, 0x12, 0x37, 0x0c, 0xda, 0x38, 0xf6, 0x08, 0x6d, 0x4c, 0x5f, 0x2c, 0x72, + 0xf9, 0x67, 0x40, 0xe8, 0x1c, 0x00, 0x8b, 0xf9, 0xb4, 0x20, 0x4e, 0xe4, 0x36, 0x66, 0xa4, 0x0f, + 0x60, 0xf1, 0x60, 0x2b, 0x20, 0xdb, 0xae, 0xe0, 0x06, 0x1f, 0x66, 0xb8, 0xa9, 0x29, 0x6e, 0xf0, + 0x61, 0xc2, 0xcd, 0xdb, 0x50, 0xc7, 0x94, 0x92, 0x98, 0x0f, 0xdf, 0xf1, 0xc9, 0x3e, 0xf1, 0x1b, + 0xf5, 0x8b, 0xc6, 0x95, 0xda, 0xfa, 0x52, 0x22, 0xc9, 0x6b, 0x1a, 0x7f, 0x8f, 0xa3, 0xed, 0x1a, + 0xce, 0x95, 0x91, 0x07, 0xcb, 0x39, 0xb9, 0x64, 0x94, 0x49, 0x1b, 0xa6, 0xb0, 0xb3, 0xb5, 0x47, + 0x6a, 0xe5, 0x56, 0x22, 0xbc, 0x66, 0xaa, 0x67, 0x7b, 0x31, 0x23, 0xd3, 0x14, 0x4c, 0x57, 0x76, + 0x60, 0x61, 0x6c, 0x05, 0xee, 0x4e, 0xbc, 0xa0, 0x4d, 0x0e, 0xc5, 0x2c, 0x98, 0xb1, 0x65, 0x01, + 0xbd, 0x06, 0x8b, 0xe4, 0x30, 0x22, 0x2e, 0x23, 0x6d, 0x27, 0xaf, 0xba, 0x82, 0x10, 0xc4, 0x9c, + 0xc6, 0xa6, 0x8d, 0x52, 0x6b, 0x07, 0x66, 0x47, 0x4c, 0x05, 0xad, 0xc0, 0x62, 0xf3, 0xee, 0xe6, + 0xb6, 0xb3, 0x7d, 0xb3, 0xd9, 0xdc, 0xbc, 0xbf, 0xd9, 0x6c, 0x6d, 0x6e, 0x38, 0x1b, 0x77, 0x6e, + 0x6e, 0xdc, 0x35, 0xcf, 0xa0, 0x06, 0xcc, 0xdf, 0xd8, 0x1a, 0x83, 0x31, 0xd0, 0x12, 0xcc, 0xdd, + 0xd8, 0x72, 0x36, 0xb6, 0x1e, 0x34, 0x5b, 0xf6, 0xb5, 0xcd, 0x07, 0x2d, 0x85, 0x28, 0x58, 0xff, + 0x6a, 0x80, 0x99, 0x4a, 0xe2, 0xe4, 0x2e, 0xe6, 0x93, 0x30, 0x29, 0xb0, 0xa3, 0xf3, 0x39, 0x71, + 0x1e, 0x8a, 0x60, 0xd4, 0x32, 0x8b, 0xa3, 0x96, 0xf9, 0x32, 0x98, 0xd2, 0x92, 0x32, 0x64, 0x72, + 0x42, 0xcf, 0x84, 0xdc, 0xa0, 0x12, 0xc2, 0x31, 0x8b, 0xcb, 0xc4, 0x13, 0x2c, 0x2e, 0xd6, 0x0f, + 0x4b, 0xb0, 0x98, 0x11, 0x32, 0x77, 0x25, 0xff, 0x59, 0x3c, 0xda, 0x88, 0x97, 0x98, 0x1c, 0xeb, + 0x25, 0x3c, 0xea, 0xec, 0x7a, 0x31, 0x65, 0x92, 0x8f, 0xb2, 0x98, 0xb8, 0x55, 0x8f, 0xde, 0xe2, + 0x30, 0xc1, 0xc7, 0x25, 0x98, 0x3e, 0xc0, 0x5c, 0x05, 0x5e, 0x8f, 0x84, 0x7d, 0x26, 0x9c, 0x51, + 0xd1, 0xae, 0x72, 0x58, 0x4b, 0x82, 0x50, 0x03, 0x26, 0x76, 0xc3, 0xd8, 0x25, 0xc2, 0x11, 0x55, + 0xae, 0x17, 0x1a, 0x86, 0x2d, 0x01, 0x7c, 0x10, 0x31, 0x61, 0xfd, 0x38, 0x70, 0xc4, 0x4e, 0x41, + 0xba, 0xa1, 0x8a, 0x3d, 0x2d, 0x81, 0x0f, 0x05, 0x6c, 0xd4, 0x22, 0xaa, 0xe3, 0x2c, 0xa2, 0x2e, + 0xfc, 0xb1, 0x43, 0x0e, 0x3d, 0xca, 0x48, 0xe0, 0x92, 0xc6, 0xb4, 0x74, 0x55, 0x02, 0x7c, 0x53, + 0x43, 0xd1, 0x2b, 0x30, 0x27, 0x24, 0xc2, 0x17, 0x68, 0xc7, 0xdb, 0x95, 0xf4, 0x54, 0x79, 0x24, + 0x93, 0xa3, 0xf8, 0x5a, 0xbd, 0xb9, 0x2b, 0x6a, 0x50, 0x74, 0x83, 0x8f, 0x6e, 0x8f, 0x38, 0xfd, + 0xc8, 0xe9, 0x85, 0x6d, 0x22, 0x1c, 0x53, 0x6d, 0xdd, 0x4a, 0xdd, 0x44, 0xde, 0x38, 0xde, 0xc3, + 0x7b, 0xe4, 0xdd, 0xe8, 0x7e, 0xd8, 0x26, 0x36, 0x1c, 0x24, 0xff, 0xad, 0x7f, 0x34, 0xa0, 0x31, + 0x44, 0x79, 0x97, 0x0c, 0x6c, 0x42, 0xfb, 0x3e, 0x43, 0x9f, 0x87, 0x12, 0x1b, 0x44, 0x44, 0x58, + 0x51, 0x6d, 0xfd, 0xf2, 0xa3, 0x9a, 0x4e, 0x2a, 0xb4, 0x06, 0x11, 0xb1, 0x45, 0x95, 0x74, 0xbb, + 0x55, 0xc8, 0x6e, 0xb7, 0xce, 0xc1, 0x54, 0x2a, 0x85, 0xa2, 0x18, 0x58, 0x0a, 0x40, 0x6f, 0xc0, + 0x12, 0x1f, 0x25, 0x69, 0x3b, 0x07, 0x1e, 0xeb, 0x72, 0x1f, 0xb8, 0xeb, 0x7b, 0x6e, 0x66, 0x0a, + 0xcd, 0x4b, 0xf4, 0x7b, 0x1e, 0xeb, 0x6e, 0x28, 0x64, 0x8b, 0xa2, 0x35, 0x10, 0x6b, 0x9c, 0xc3, + 0xb7, 0xb2, 0xfe, 0xbe, 0x17, 0x74, 0xa4, 0x41, 0xc8, 0xf5, 0x60, 0x96, 0xa3, 0x6c, 0x8d, 0xe1, + 0xdc, 0x5a, 0xff, 0x50, 0x80, 0xa5, 0x91, 0x99, 0xf3, 0x5c, 0x1c, 0xc8, 0x05, 0x98, 0x1a, 0x72, + 0x1e, 0xc2, 0xe2, 0x2a, 0xae, 0xb6, 0x95, 0x86, 0x96, 0x1a, 0x1f, 0xef, 0xb4, 0x34, 0x47, 0x29, + 0xb9, 0x45, 0x98, 0x54, 0x76, 0x38, 0x21, 0x96, 0x30, 0x55, 0x42, 0xe7, 0x01, 0x92, 0x0d, 0x2c, + 0x9f, 0x28, 0x45, 0x2e, 0x52, 0xbd, 0x83, 0x1d, 0xeb, 0x65, 0xca, 0x4f, 0xe0, 0x65, 0xd0, 0x17, + 0xf9, 0xc6, 0x90, 0xab, 0x96, 0x36, 0x2a, 0x62, 0x74, 0x97, 0x1e, 0x6b, 0x04, 0xb6, 0xae, 0x61, + 0x7d, 0xdf, 0x80, 0x95, 0x0c, 0x95, 0x1d, 0xfa, 0xfe, 0x0e, 0x3e, 0x99, 0x9b, 0x1a, 0x71, 0x29, + 0x85, 0x31, 0x2e, 0x65, 0xc4, 0x6f, 0x14, 0x47, 0xfd, 0x06, 0x82, 0xd2, 0x1e, 0x19, 0x70, 0x83, + 0xe2, 0x52, 0x14, 0xff, 0xad, 0x3f, 0x36, 0xe0, 0xec, 0x58, 0x3e, 0x9f, 0x8b, 0x51, 0x8c, 0x51, + 0x51, 0xf1, 0x49, 0x16, 0x82, 0xdf, 0x35, 0x60, 0xae, 0x75, 0x18, 0xdc, 0x21, 0x38, 0x66, 0xd7, + 0x09, 0x3e, 0xd1, 0xa1, 0x6d, 0xd8, 0xa9, 0x17, 0x8e, 0xe1, 0xd4, 0x8b, 0x63, 0x34, 0xf0, 0x12, + 0xd4, 0x71, 0x7b, 0xdf, 0xa3, 0xc4, 0x49, 0x7c, 0xbb, 0x5a, 0xfc, 0x24, 0xf8, 0x9e, 0xf4, 0xf0, + 0xd6, 0x8f, 0x0c, 0x98, 0xcf, 0xf3, 0xfc, 0x1c, 0x4e, 0x80, 0xd9, 0x15, 0xa7, 0x98, 0x5f, 0x71, + 0xc6, 0xe8, 0xa0, 0xf4, 0x24, 0x3a, 0xf8, 0x95, 0x22, 0x2c, 0x88, 0x9d, 0x75, 0xeb, 0x30, 0x68, + 0x32, 0xcc, 0xfa, 0xf4, 0x24, 0x5a, 0xb8, 0x00, 0x5a, 0xe2, 0x99, 0xf3, 0x1e, 0x28, 0x10, 0x3f, + 0x73, 0x2d, 0x41, 0x59, 0x8e, 0x40, 0x9b, 0xf6, 0xa4, 0x18, 0x00, 0xe5, 0x72, 0x77, 0xb1, 0xef, + 0x93, 0xd8, 0x91, 0x3a, 0x4a, 0x37, 0x1d, 0x12, 0xdc, 0xe4, 0xd0, 0x96, 0xf0, 0x16, 0x6e, 0x3f, + 0x8e, 0x49, 0x20, 0x48, 0xe4, 0xb2, 0x3b, 0xa5, 0x20, 0x2d, 0x8a, 0x5e, 0x85, 0x85, 0x58, 0x19, + 0x3f, 0x5f, 0x80, 0xb8, 0x63, 0x11, 0xde, 0x59, 0x1d, 0x25, 0x90, 0x46, 0x6e, 0xee, 0x3e, 0x08, + 0x99, 0x58, 0x86, 0xd0, 0x2a, 0xcc, 0x8a, 0xf5, 0xd2, 0xc9, 0x6e, 0xc5, 0xe5, 0x5a, 0x5c, 0x17, + 0x88, 0x66, 0xba, 0x17, 0xff, 0x12, 0xac, 0xa4, 0x3e, 0x3a, 0x7b, 0xfe, 0x10, 0x36, 0x57, 0x11, + 0x95, 0x1a, 0x09, 0xc5, 0x90, 0x7f, 0xe1, 0x3d, 0xed, 0x93, 0xd8, 0xdb, 0x1d, 0x38, 0x1e, 0x75, + 0x94, 0x50, 0xe4, 0xb2, 0x6d, 0xd7, 0x25, 0x62, 0x93, 0x6e, 0x4b, 0xb0, 0xf5, 0xe3, 0x02, 0x2c, + 0x0e, 0xeb, 0xe3, 0x17, 0x6b, 0x61, 0x97, 0xa1, 0xa6, 0x5c, 0x7f, 0x7e, 0x53, 0x34, 0x23, 0xa1, + 0x7a, 0x02, 0xbd, 0x0c, 0x93, 0xf2, 0x30, 0x26, 0x94, 0x53, 0xcb, 0x9c, 0x78, 0xd5, 0x81, 0x4b, + 0xa1, 0xd1, 0x1a, 0x4c, 0x89, 0xae, 0xbc, 0x60, 0x37, 0x54, 0x51, 0x89, 0x94, 0x2f, 0x2e, 0xaf, + 0xcd, 0x60, 0x37, 0xb4, 0x05, 0x3b, 0xfc, 0xdf, 0xd3, 0x2e, 0x04, 0xd6, 0x87, 0x06, 0xac, 0x08, + 0x89, 0x36, 0xd5, 0xd1, 0x49, 0x78, 0x85, 0x13, 0x99, 0xb9, 0x76, 0xc1, 0x85, 0xd4, 0x05, 0x1f, + 0xcb, 0xbb, 0x58, 0xff, 0x66, 0xc0, 0xd9, 0xb1, 0x3c, 0x3c, 0x07, 0xd5, 0xbe, 0x0c, 0x13, 0x5c, + 0x96, 0x7c, 0xe2, 0x15, 0xc7, 0xcb, 0x5a, 0xe2, 0xd1, 0xd9, 0xec, 0x1a, 0x2f, 0x75, 0x9c, 0xae, + 0xef, 0x4f, 0xbb, 0xe9, 0xff, 0x81, 0x01, 0x33, 0x72, 0x32, 0x3d, 0xb3, 0x45, 0x54, 0x6b, 0xa7, + 0x98, 0xd1, 0xce, 0xf1, 0x8c, 0x57, 0xc6, 0xbb, 0xec, 0xc9, 0x1d, 0x2f, 0xf0, 0xc3, 0x8e, 0xf5, + 0x97, 0x06, 0xd4, 0x34, 0xaf, 0xcf, 0x41, 0x41, 0xa3, 0x3c, 0x16, 0xc7, 0x4d, 0xb0, 0xa7, 0xf5, + 0xf4, 0x1d, 0x98, 0xd9, 0xec, 0x45, 0x61, 0x9c, 0x28, 0x20, 0x77, 0x80, 0x32, 0x8e, 0x71, 0x80, + 0x1a, 0x65, 0xb4, 0x30, 0x86, 0x51, 0xeb, 0x7d, 0xa8, 0xe9, 0x8e, 0x4e, 0x2e, 0xbd, 0xf9, 0xac, + 0xf4, 0xa6, 0x74, 0x14, 0xec, 0x5b, 0x5c, 0x33, 0x3e, 0xc1, 0x41, 0x3f, 0x3a, 0x9d, 0x08, 0xef, + 0xb1, 0xf6, 0x06, 0xf9, 0xb5, 0xa7, 0x34, 0xb4, 0xf6, 0x58, 0xdf, 0x36, 0xa0, 0x9e, 0x30, 0xf5, + 0x4b, 0x63, 0x2f, 0xd6, 0x1e, 0xd4, 0xaf, 0x63, 0xe6, 0x76, 0x4f, 0x18, 0x0d, 0x1f, 0xe7, 0xeb, + 0x1e, 0x1d, 0x0f, 0xff, 0x1b, 0x03, 0xcc, 0xb4, 0xb7, 0x67, 0x1e, 0x36, 0x7d, 0xca, 0xb9, 0x90, + 0xca, 0x7a, 0xe2, 0x68, 0x59, 0xbf, 0x53, 0xaa, 0x14, 0xcd, 0x92, 0xf5, 0x3f, 0x60, 0x5e, 0x0c, + 0xee, 0x99, 0x9f, 0x03, 0xc6, 0xb8, 0x30, 0xeb, 0xf7, 0x0d, 0x58, 0x18, 0xea, 0xfd, 0x39, 0x18, + 0xd9, 0xd3, 0xee, 0xed, 0x7f, 0xc7, 0x80, 0x7a, 0xd3, 0xc5, 0xc1, 0x49, 0xa3, 0x3b, 0x17, 0xa0, + 0xda, 0xc3, 0x87, 0x43, 0xc2, 0x82, 0x1e, 0x3e, 0xd4, 0xa2, 0xca, 0x5d, 0x30, 0x14, 0x1f, 0x75, + 0xc1, 0x50, 0xca, 0x5e, 0x30, 0x64, 0x6e, 0x04, 0x26, 0xb2, 0x37, 0x02, 0xd6, 0x4f, 0x0d, 0x30, + 0x53, 0x66, 0x7f, 0x99, 0xd6, 0xe4, 0xa7, 0x75, 0xfa, 0x3f, 0x36, 0x00, 0xc9, 0x18, 0x02, 0x39, + 0xa9, 0x26, 0x8e, 0x65, 0xb8, 0xc7, 0x5c, 0xc3, 0x5e, 0x81, 0x29, 0x76, 0x18, 0x88, 0xad, 0x9f, + 0x3c, 0xc8, 0x66, 0x7b, 0x6e, 0x1d, 0x06, 0x72, 0xeb, 0xc7, 0xe4, 0x9f, 0xf4, 0xc8, 0x3b, 0x91, + 0x99, 0x0e, 0xfc, 0xd0, 0x98, 0x1b, 0xd1, 0x7f, 0x80, 0xc9, 0xf0, 0x10, 0xa6, 0x6e, 0x6f, 0x9c, + 0x44, 0xf6, 0xe7, 0x01, 0x28, 0xde, 0x25, 0x4e, 0x14, 0x7a, 0x01, 0x53, 0x82, 0x9f, 0xe2, 0x90, + 0x6d, 0x0e, 0xb0, 0xba, 0x00, 0xbc, 0xdd, 0x67, 0x2f, 0x01, 0xeb, 0x3b, 0x06, 0xa0, 0x1b, 0xc4, + 0x27, 0x8c, 0xd8, 0x38, 0xe8, 0x90, 0x53, 0xbf, 0x11, 0xcc, 0x4c, 0xcd, 0xe2, 0xf0, 0x65, 0x5d, + 0x10, 0x32, 0x7e, 0x76, 0x12, 0xb7, 0x7f, 0xf2, 0xa2, 0x13, 0x24, 0x68, 0x2b, 0xf0, 0x07, 0xd6, + 0x57, 0x61, 0x2e, 0xc7, 0xd8, 0x69, 0x6f, 0x39, 0xfe, 0xd0, 0x80, 0x8b, 0xdb, 0x31, 0x89, 0x70, + 0x4c, 0x6e, 0xf9, 0x98, 0x76, 0xb9, 0x07, 0x6e, 0x85, 0xca, 0xa0, 0x9f, 0x9f, 0x1c, 0x96, 0xa1, + 0x32, 0x74, 0x40, 0x2e, 0x53, 0x75, 0x34, 0xce, 0xac, 0xca, 0x13, 0xf9, 0x55, 0xd9, 0x87, 0x4b, + 0x47, 0xb0, 0x7e, 0xda, 0x92, 0xfa, 0xb1, 0x01, 0xcb, 0xa7, 0x23, 0xa2, 0xcc, 0x88, 0x0a, 0xf9, + 0x9b, 0xe0, 0x23, 0xbd, 0x7e, 0x46, 0x78, 0xa5, 0x47, 0x0a, 0x6f, 0x22, 0x2f, 0xbc, 0xdc, 0xa1, + 0x67, 0x32, 0x7f, 0xe8, 0xb1, 0x08, 0xac, 0x3c, 0x0f, 0xc1, 0x7d, 0x05, 0x66, 0x6c, 0x7c, 0x70, + 0x6a, 0x59, 0x0b, 0x35, 0x28, 0xb8, 0xbb, 0x42, 0x38, 0x53, 0x76, 0xc1, 0xdd, 0xb5, 0xfe, 0xbf, + 0x01, 0x35, 0xdd, 0xfe, 0x29, 0xb3, 0x7e, 0x82, 0xdc, 0x04, 0xab, 0x0d, 0xc8, 0xc6, 0x07, 0xa7, + 0xbd, 0x35, 0x1d, 0x1e, 0x74, 0x08, 0x73, 0xb9, 0x5e, 0x9e, 0xf5, 0x96, 0xd4, 0xfa, 0x4d, 0x43, + 0x68, 0x71, 0xbb, 0x7f, 0x4a, 0x5a, 0x1c, 0x2f, 0x59, 0x39, 0xcc, 0x92, 0x1e, 0x26, 0xaf, 0x97, + 0x5e, 0x43, 0xf1, 0xbf, 0x7c, 0x12, 0xec, 0x86, 0xb1, 0xe3, 0x62, 0xaa, 0x62, 0x5f, 0x93, 0xbb, + 0x61, 0xbc, 0x81, 0x29, 0x3f, 0x96, 0x69, 0xfe, 0x4e, 0xdb, 0x80, 0xff, 0xc8, 0x48, 0x75, 0x7a, + 0x42, 0x01, 0x1c, 0x73, 0xe3, 0x3f, 0xa4, 0x66, 0x34, 0x2f, 0xc7, 0x5f, 0x4a, 0x6e, 0x24, 0x86, + 0x65, 0x30, 0x91, 0x95, 0x01, 0xb7, 0x1c, 0xc6, 0x7c, 0x79, 0xdb, 0x50, 0xb2, 0xc5, 0x7f, 0xbe, + 0x80, 0xe4, 0x78, 0x3f, 0x6d, 0xe1, 0x0c, 0xc0, 0xb4, 0xf1, 0x81, 0x5a, 0xa3, 0x9e, 0xc5, 0x04, + 0xcf, 0x0e, 0xb7, 0x94, 0x53, 0xf9, 0x7f, 0x87, 0xd9, 0x4c, 0xd7, 0xa7, 0x3d, 0xb0, 0xff, 0x65, + 0xc0, 0x82, 0x96, 0xdc, 0xc9, 0x87, 0x77, 0x8c, 0xc9, 0xfc, 0xe8, 0x01, 0x62, 0x58, 0x1c, 0xe6, + 0xe0, 0xb4, 0x47, 0xf9, 0x23, 0xe9, 0x3d, 0x9f, 0x63, 0x1e, 0x54, 0x36, 0xdb, 0xa9, 0x94, 0xcf, + 0x76, 0x92, 0x82, 0x99, 0x48, 0x04, 0xf3, 0xe4, 0xd9, 0x4f, 0x56, 0x07, 0xea, 0xc9, 0x70, 0x4e, + 0x2e, 0xab, 0x4b, 0x50, 0xdc, 0xdb, 0x7f, 0xe4, 0x64, 0xe5, 0x38, 0xeb, 0x1b, 0xd2, 0x3c, 0x7e, + 0x21, 0xbb, 0xc6, 0x21, 0x37, 0xa9, 0xec, 0xe4, 0x99, 0xee, 0x13, 0x7f, 0x62, 0xa4, 0x7e, 0xe4, + 0xa4, 0xc6, 0xf2, 0x49, 0x98, 0x8c, 0x39, 0x77, 0x63, 0xef, 0xde, 0x24, 0xdf, 0x8a, 0x80, 0x9f, + 0x0c, 0x08, 0x76, 0xbb, 0x4e, 0xd6, 0x7e, 0xa6, 0x38, 0xe4, 0xde, 0xa9, 0xd9, 0x90, 0xe5, 0xc3, + 0x7c, 0x7e, 0x44, 0xcf, 0xd4, 0x5e, 0xfe, 0x27, 0x2c, 0xbf, 0x1b, 0xf0, 0xb3, 0xcd, 0x0d, 0x42, + 0x59, 0x1c, 0x0e, 0x9e, 0xaf, 0xc9, 0xf0, 0xbd, 0xde, 0xb8, 0xee, 0x4f, 0xdb, 0x4c, 0xbe, 0x06, + 0x67, 0x6d, 0xd2, 0xf1, 0x28, 0x23, 0x31, 0x3f, 0xbe, 0x6e, 0xed, 0x50, 0x12, 0xef, 0x93, 0xf8, + 0x24, 0xe3, 0x5c, 0x80, 0xc9, 0x1e, 0x3e, 0x4c, 0x13, 0x9a, 0x26, 0x7a, 0xf8, 0xb0, 0x45, 0xad, + 0xd7, 0xe1, 0xdc, 0xf8, 0x1e, 0xd4, 0x50, 0x12, 0xbe, 0x8c, 0xfc, 0x1e, 0xb4, 0x21, 0x2e, 0x28, + 0x9e, 0x11, 0x53, 0x7d, 0x58, 0x1e, 0xd3, 0xfc, 0x51, 0x1c, 0x71, 0x13, 0xf6, 0xa8, 0xe3, 0xfa, + 0x04, 0xcb, 0x53, 0x40, 0xc5, 0x2e, 0x7b, 0x54, 0xc4, 0x59, 0x8f, 0x1d, 0x3e, 0xb1, 0xbe, 0x0a, + 0xcb, 0x36, 0xe9, 0x85, 0x32, 0x54, 0xf0, 0x0c, 0x86, 0xb5, 0x0e, 0x2b, 0xe3, 0xda, 0x3f, 0x52, + 0xd2, 0xbf, 0x6a, 0xc0, 0xd2, 0x76, 0x77, 0x40, 0x3d, 0x17, 0xfb, 0x4f, 0x13, 0x21, 0x1b, 0xcf, + 0xd2, 0x09, 0xe2, 0x62, 0xd6, 0xfb, 0xd0, 0x18, 0x65, 0xe8, 0x48, 0xdd, 0x24, 0x0a, 0x28, 0x3c, + 0x46, 0x01, 0xdf, 0x33, 0x00, 0x35, 0x23, 0xdf, 0x63, 0xb6, 0x98, 0x19, 0x27, 0x8b, 0x04, 0x4e, + 0x51, 0xde, 0x42, 0x3a, 0x9d, 0x65, 0xea, 0x89, 0x00, 0xf2, 0x41, 0x9d, 0x07, 0x48, 0x08, 0x74, + 0xe8, 0x74, 0x4a, 0x63, 0x29, 0x5a, 0x81, 0x29, 0x8f, 0x3a, 0x31, 0x3e, 0x70, 0xf6, 0xf6, 0xb5, + 0x2f, 0xf4, 0xa8, 0x8d, 0x0f, 0xee, 0xee, 0x5b, 0x3f, 0x34, 0x60, 0x2e, 0xc7, 0xde, 0xc9, 0xa7, + 0xfb, 0x4b, 0x50, 0xf2, 0xc9, 0x2e, 0x53, 0x91, 0x94, 0xda, 0x9a, 0xca, 0x80, 0x97, 0x0d, 0x0b, + 0x8e, 0x05, 0x1e, 0x5d, 0x81, 0x89, 0xd8, 0xeb, 0x74, 0x99, 0x8a, 0x20, 0x8d, 0x23, 0x94, 0x04, + 0xe8, 0x0a, 0x77, 0xcc, 0x1d, 0x71, 0x3b, 0x23, 0x43, 0x65, 0x43, 0xb4, 0xb6, 0x46, 0x5b, 0xff, + 0xc7, 0x00, 0xd3, 0x26, 0xb8, 0xbd, 0x19, 0xb4, 0xc9, 0xe1, 0x49, 0x64, 0x9c, 0x3d, 0x20, 0x17, + 0xf2, 0x07, 0xe4, 0x74, 0x4d, 0x2a, 0x3e, 0x66, 0x4d, 0xb2, 0x7e, 0xcd, 0x80, 0xd9, 0x0c, 0x1b, + 0x27, 0x97, 0xe5, 0x79, 0x80, 0x98, 0xe0, 0xb6, 0x23, 0xb3, 0x3a, 0x55, 0xd8, 0x2b, 0xd6, 0x2d, + 0x73, 0x96, 0x64, 0x3a, 0xd5, 0x48, 0xd6, 0x74, 0x62, 0x7e, 0x8a, 0xc0, 0x6a, 0xc2, 0xdc, 0xfd, + 0x7d, 0xd7, 0xbd, 0x4d, 0xd8, 0xf5, 0x81, 0xc8, 0xf3, 0x39, 0x85, 0xfd, 0xb7, 0xf5, 0xff, 0x0c, + 0x98, 0xcf, 0xb7, 0x7a, 0xda, 0xc7, 0xea, 0xcb, 0x50, 0x12, 0xd7, 0xe3, 0xc3, 0xe3, 0xe3, 0xbd, + 0x8a, 0xf1, 0x09, 0xb4, 0xf5, 0x35, 0x58, 0x4a, 0xf8, 0x50, 0x89, 0x12, 0xa7, 0xab, 0x7d, 0x3e, + 0x7f, 0x1b, 0xa3, 0x5d, 0x9c, 0xf6, 0x70, 0x95, 0x88, 0x8b, 0xe9, 0x11, 0x47, 0x0b, 0xa0, 0x74, + 0xb4, 0x00, 0x7e, 0x6f, 0x0a, 0xca, 0x1b, 0xe9, 0xb2, 0xaf, 0xb8, 0xf1, 0xda, 0x82, 0x95, 0x92, + 0x5d, 0x91, 0x80, 0xcd, 0x36, 0x7a, 0x33, 0x65, 0x35, 0x0a, 0xdd, 0xae, 0x9a, 0xa5, 0x73, 0xf9, + 0x09, 0x75, 0x93, 0xa3, 0x12, 0x7e, 0x79, 0x01, 0x5d, 0x84, 0x52, 0x44, 0x88, 0x4e, 0xcf, 0x9f, + 0xd6, 0xf4, 0xdb, 0x84, 0xc4, 0xb6, 0xc0, 0x88, 0x23, 0x25, 0x89, 0x7b, 0xea, 0x08, 0x2e, 0xfe, + 0xa3, 0xab, 0x50, 0x89, 0x62, 0x2f, 0x8c, 0x3d, 0x36, 0x10, 0x7b, 0xaa, 0xda, 0xfa, 0x5c, 0x46, + 0xfa, 0xbd, 0x1e, 0x0e, 0xda, 0xdb, 0xb1, 0x67, 0x27, 0x44, 0xe8, 0x6d, 0xa8, 0x7b, 0x34, 0xf4, + 0x71, 0x26, 0x0f, 0xbb, 0x3c, 0x94, 0x87, 0xbd, 0xa9, 0xf1, 0x2a, 0x0f, 0xdb, 0xcb, 0x95, 0xd1, + 0x27, 0xa0, 0x26, 0x42, 0x2e, 0x9e, 0xef, 0x3b, 0x2e, 0x76, 0xbb, 0x44, 0x65, 0xa5, 0x4c, 0x07, + 0x21, 0xbb, 0xe5, 0xf9, 0xfe, 0x06, 0x87, 0x09, 0x4d, 0x0f, 0x02, 0xd7, 0xf1, 0xc3, 0x8e, 0x4a, + 0x40, 0x29, 0xf3, 0xf2, 0xbd, 0xb0, 0x83, 0xae, 0x80, 0x19, 0x13, 0x37, 0x8c, 0xdb, 0x22, 0xe9, + 0xd4, 0xa1, 0x0c, 0x33, 0x95, 0x38, 0x5a, 0x93, 0xf0, 0x96, 0xd7, 0x23, 0x4d, 0x86, 0x59, 0x86, + 0x92, 0xba, 0x38, 0x90, 0x94, 0xd5, 0x2c, 0x25, 0x5f, 0x44, 0x04, 0xe5, 0x25, 0x2e, 0xf5, 0xc8, + 0xf7, 0x5c, 0xec, 0xf0, 0xd9, 0xab, 0xb2, 0x47, 0xab, 0x0a, 0xc6, 0x5d, 0x05, 0xba, 0x0c, 0x35, + 0x99, 0x37, 0x43, 0xda, 0x8e, 0x5c, 0x52, 0x66, 0xc4, 0xd9, 0x7c, 0x46, 0x43, 0x45, 0xa2, 0x04, + 0xfa, 0x3c, 0x2c, 0xf3, 0xc5, 0x8e, 0x1c, 0x12, 0xb7, 0x2f, 0x84, 0xd4, 0xee, 0xc7, 0x52, 0x5a, + 0x3d, 0x9d, 0xd8, 0xbe, 0xd8, 0xc3, 0x87, 0x37, 0x35, 0xfe, 0x86, 0x42, 0xdf, 0x17, 0x09, 0x1a, + 0x38, 0x8a, 0x7c, 0x8f, 0x68, 0x7f, 0x52, 0x97, 0xf7, 0x17, 0x0a, 0x28, 0x5d, 0xca, 0x12, 0x94, + 0x19, 0xa6, 0x7b, 0xdc, 0x74, 0x4c, 0x99, 0x9f, 0xc4, 0x8b, 0x9b, 0x6d, 0xb1, 0xb8, 0x30, 0xec, + 0x13, 0x39, 0x80, 0x59, 0x99, 0xf8, 0x29, 0x20, 0x82, 0xfd, 0x4f, 0x03, 0x4a, 0xde, 0x21, 0x75, + 0xe2, 0xb0, 0x1f, 0x39, 0x0c, 0x77, 0x1a, 0x48, 0x18, 0xb2, 0xa9, 0x31, 0xb7, 0x39, 0xa2, 0x85, + 0x3b, 0xe8, 0x73, 0x30, 0xd3, 0xf6, 0xe8, 0x9e, 0xb3, 0xdb, 0xf7, 0x7d, 0x27, 0x8c, 0x58, 0x63, + 0x4e, 0x28, 0x79, 0x3e, 0x51, 0xf2, 0x0d, 0x8f, 0xee, 0xdd, 0xea, 0xfb, 0xfe, 0x56, 0xc4, 0xec, + 0x6a, 0x3b, 0x2d, 0x70, 0x99, 0xf3, 0x45, 0x8c, 0xb0, 0x78, 0xe0, 0xc4, 0x72, 0x8a, 0x37, 0xe6, + 0xa5, 0xcc, 0x3d, 0x6a, 0x73, 0xb0, 0x9e, 0xf8, 0xaf, 0x43, 0x15, 0x47, 0x5e, 0x72, 0x0d, 0xb3, + 0x30, 0x64, 0x7e, 0xd7, 0xb6, 0x37, 0x75, 0x1c, 0x13, 0x70, 0xe4, 0xa5, 0xd9, 0x3b, 0x75, 0x19, + 0xf5, 0x64, 0x89, 0x1e, 0x16, 0x85, 0x1e, 0x6a, 0x09, 0x58, 0x2a, 0xe2, 0x0b, 0x20, 0xdf, 0x61, + 0x39, 0xda, 0xbb, 0x2c, 0x89, 0x99, 0xb1, 0xb0, 0xa6, 0x5f, 0x67, 0xb5, 0xf8, 0xaf, 0x76, 0x31, + 0xd3, 0x2c, 0x53, 0x92, 0xba, 0x16, 0x5c, 0x3a, 0x52, 0x30, 0x8d, 0x86, 0xf0, 0x02, 0x33, 0x0a, + 0xda, 0x14, 0x40, 0x2e, 0x72, 0xf1, 0x0a, 0x43, 0x92, 0x2c, 0x4b, 0xef, 0xcf, 0x0e, 0x03, 0x85, + 0x5e, 0x85, 0xd9, 0x9d, 0x3e, 0x1d, 0x38, 0xac, 0x1b, 0x13, 0xda, 0x0d, 0xfd, 0x36, 0x37, 0x81, + 0xb3, 0x62, 0x3f, 0x53, 0xe7, 0x88, 0x96, 0x86, 0xdf, 0xa7, 0xe8, 0x7d, 0x68, 0x24, 0xea, 0xe1, + 0x0c, 0xc7, 0xa1, 0x9f, 0x30, 0x7e, 0x4e, 0x30, 0x7e, 0x21, 0x91, 0x8c, 0xad, 0x08, 0x37, 0x24, + 0x9d, 0x1e, 0x42, 0xf2, 0xce, 0x2c, 0x0f, 0x47, 0x17, 0xa0, 0xca, 0xf7, 0x1b, 0x11, 0x97, 0x85, + 0xd7, 0x6e, 0x5c, 0x94, 0xaf, 0x88, 0x34, 0x68, 0xb3, 0xfd, 0x4e, 0xa9, 0x52, 0x32, 0x27, 0xde, + 0x29, 0x55, 0x56, 0xcc, 0xb3, 0xdc, 0xe4, 0x71, 0xdb, 0xf9, 0xa0, 0x1f, 0xc6, 0xfd, 0x9e, 0xf5, + 0xa1, 0x01, 0x8b, 0xe3, 0x3b, 0x43, 0x6b, 0x30, 0x37, 0x64, 0x4e, 0x01, 0xee, 0x11, 0xb5, 0xf7, + 0x9a, 0xcd, 0xd9, 0xd3, 0x03, 0xdc, 0x23, 0xe8, 0xb3, 0x50, 0x8e, 0x48, 0x80, 0x7d, 0x36, 0x50, + 0x1e, 0xed, 0xfc, 0xda, 0xc8, 0xb3, 0xb8, 0x8d, 0x30, 0xa0, 0xfd, 0x5e, 0x24, 0x92, 0x39, 0x34, + 0xb5, 0xf5, 0xdd, 0x22, 0x54, 0xf4, 0x62, 0x39, 0x92, 0x43, 0x69, 0x8c, 0xe6, 0x50, 0x5e, 0x82, + 0x69, 0x91, 0xb4, 0x95, 0x0f, 0xcb, 0x57, 0x39, 0x4c, 0x9b, 0xd0, 0xa8, 0x13, 0xcf, 0x26, 0x95, + 0x95, 0xf2, 0x49, 0x65, 0xd9, 0x97, 0x36, 0x13, 0xf9, 0x97, 0x36, 0x57, 0x54, 0x7e, 0x98, 0xc8, + 0xdf, 0x96, 0xde, 0xb3, 0x9a, 0x28, 0x69, 0x2b, 0x92, 0x99, 0x61, 0xad, 0x41, 0x44, 0xd0, 0xa7, + 0x00, 0x09, 0xca, 0x7c, 0xea, 0x6c, 0x59, 0x34, 0x57, 0xe7, 0x98, 0xcc, 0xcb, 0x8e, 0xb1, 0x0f, + 0x6f, 0x2a, 0x63, 0x1f, 0xde, 0x8c, 0xa4, 0xc6, 0x4f, 0x8d, 0xa6, 0xc6, 0x0f, 0x3d, 0xce, 0x81, + 0xd1, 0xc7, 0x39, 0x5f, 0x80, 0x95, 0xc4, 0x47, 0xb1, 0xd0, 0xf1, 0x31, 0x65, 0x9a, 0xc9, 0x9e, + 0xce, 0xb6, 0x5f, 0xd4, 0x14, 0xad, 0xf0, 0x1e, 0xa6, 0x4c, 0xf2, 0x7a, 0x9f, 0x5a, 0x7f, 0x5b, + 0x82, 0x8a, 0xbe, 0x81, 0xcb, 0xec, 0x76, 0x8c, 0xc7, 0xec, 0x76, 0xd0, 0x39, 0xbe, 0x04, 0xb2, + 0x78, 0x80, 0x77, 0x7c, 0xa2, 0x56, 0xd8, 0x14, 0xc0, 0xd7, 0x5e, 0xbc, 0x13, 0xc6, 0x4c, 0x05, + 0xd6, 0x64, 0x01, 0xad, 0x43, 0x45, 0xa7, 0xab, 0x8f, 0x5c, 0x2d, 0xbf, 0x17, 0x7b, 0x8c, 0xe8, + 0x7c, 0x75, 0x3b, 0xa1, 0xe3, 0x4e, 0x00, 0xfb, 0xdc, 0xa4, 0x07, 0x2a, 0xcb, 0x72, 0x42, 0x39, + 0x81, 0xc4, 0xcb, 0x48, 0xac, 0x48, 0xb4, 0xb4, 0xa7, 0x71, 0xa6, 0x84, 0x5e, 0x81, 0x8a, 0x7e, + 0xd8, 0x39, 0x92, 0xfd, 0x77, 0x43, 0x21, 0xec, 0x84, 0x04, 0xdd, 0x80, 0xd9, 0x44, 0x11, 0x0e, + 0x39, 0x8c, 0xbc, 0x98, 0xb4, 0x55, 0xfe, 0x5f, 0x23, 0xb7, 0xa6, 0x72, 0xb5, 0xdc, 0x94, 0x78, + 0xbb, 0xee, 0xe6, 0x01, 0xdc, 0xf1, 0x72, 0x73, 0x4b, 0x2f, 0x25, 0x2a, 0xa2, 0x85, 0xf9, 0xec, + 0xdd, 0xf3, 0x03, 0x75, 0x41, 0x61, 0x57, 0x59, 0x5a, 0x40, 0x77, 0x60, 0x2e, 0xed, 0x9f, 0x85, + 0x5c, 0x91, 0x71, 0x47, 0x3e, 0xba, 0xa8, 0xae, 0x2f, 0x8f, 0x70, 0xd0, 0x0a, 0xc3, 0x7b, 0x9c, + 0xc0, 0x36, 0xdd, 0x21, 0x08, 0xda, 0x00, 0x33, 0x7d, 0x6b, 0xb5, 0x8b, 0x3d, 0x9f, 0xb4, 0xc5, + 0x02, 0x9b, 0x1d, 0x48, 0xf2, 0xd8, 0xea, 0x96, 0xc0, 0xdb, 0xe9, 0xeb, 0x2c, 0x09, 0xe0, 0x8d, + 0xe8, 0xa9, 0xda, 0xf3, 0x68, 0x0f, 0x33, 0xb7, 0x2b, 0x6c, 0x29, 0xdb, 0x88, 0x4a, 0x25, 0xbd, + 0xaf, 0xf0, 0x76, 0x3d, 0xca, 0x03, 0xac, 0xbf, 0x2a, 0xc0, 0x4c, 0x4e, 0xb5, 0xb9, 0x1d, 0xa0, + 0x91, 0xdf, 0xff, 0x5f, 0x80, 0x6a, 0xf6, 0x39, 0x83, 0x4a, 0xc4, 0x70, 0xd3, 0x47, 0x0c, 0xa3, + 0xf3, 0xbe, 0x01, 0x65, 0x9d, 0xe5, 0x2a, 0xef, 0xe1, 0x74, 0x91, 0x2f, 0x97, 0x49, 0x63, 0xe9, + 0xfc, 0x92, 0x0e, 0xc0, 0xd4, 0x98, 0x64, 0x92, 0xbd, 0x01, 0x93, 0x31, 0xc1, 0x34, 0x0c, 0x94, + 0x1b, 0x38, 0x3f, 0xde, 0x30, 0xd7, 0x6c, 0x41, 0x64, 0x2b, 0x62, 0xeb, 0x00, 0x26, 0x25, 0x04, + 0x55, 0xa1, 0xfc, 0x6e, 0xb0, 0x17, 0x84, 0x07, 0x81, 0x79, 0x06, 0xd5, 0x00, 0xb6, 0x22, 0xa6, + 0xf2, 0x72, 0x4d, 0x03, 0xcd, 0x83, 0x99, 0x4d, 0x9d, 0xe7, 0xd3, 0xc4, 0x2c, 0x20, 0x04, 0xb5, + 0x26, 0xf1, 0x77, 0xed, 0xd0, 0xf7, 0x49, 0xfb, 0x3a, 0x76, 0xf7, 0xcc, 0x22, 0x9a, 0x81, 0x29, + 0xdb, 0x95, 0x49, 0xb9, 0xd4, 0x2c, 0xa1, 0x25, 0x98, 0xbb, 0x87, 0xbf, 0x3e, 0x78, 0x37, 0xf0, + 0x3e, 0xe8, 0x93, 0x80, 0x50, 0x2a, 0x50, 0xe6, 0x84, 0x75, 0x11, 0xa6, 0xb3, 0x86, 0xaf, 0x25, + 0x63, 0xa4, 0x27, 0x87, 0xdf, 0x32, 0xa0, 0xa2, 0x8d, 0x3c, 0x9b, 0x13, 0x6d, 0xe4, 0x72, 0xa2, + 0xb5, 0xdf, 0x4c, 0x8f, 0x1d, 0x82, 0x90, 0x9f, 0x75, 0x57, 0x61, 0x56, 0x4f, 0x0d, 0x8e, 0x76, + 0xba, 0x98, 0x76, 0x55, 0xaa, 0x45, 0x5d, 0x23, 0xee, 0x92, 0xc1, 0x1d, 0x4c, 0xbb, 0xe8, 0x0d, + 0x00, 0xf1, 0x88, 0xc8, 0xed, 0x62, 0x2f, 0x50, 0x47, 0xc8, 0xc5, 0xb5, 0xe4, 0x55, 0xf5, 0x7b, + 0xd8, 0x63, 0xb7, 0xc2, 0xf8, 0x66, 0xc0, 0x37, 0x0f, 0x53, 0x9c, 0x72, 0x83, 0x13, 0x5a, 0xdf, + 0x32, 0xa0, 0x3e, 0x34, 0xa1, 0x8e, 0xb2, 0x8f, 0x35, 0x98, 0xc3, 0x8c, 0x91, 0x5e, 0xc4, 0x77, + 0x0e, 0xa9, 0x4e, 0xa5, 0x9d, 0xcc, 0x26, 0xa8, 0x44, 0xa9, 0xa3, 0xe6, 0x32, 0xe2, 0x6f, 0x4b, + 0x23, 0xfe, 0xd6, 0xda, 0x84, 0x6a, 0x66, 0x8a, 0x3e, 0xc6, 0x5e, 0x8f, 0x4c, 0x45, 0xb7, 0xae, + 0x82, 0x39, 0x3c, 0x5b, 0xf3, 0xb7, 0xc0, 0xc6, 0xd0, 0x2d, 0xf0, 0x9f, 0x1b, 0x50, 0x1f, 0x9a, + 0x98, 0x47, 0x31, 0x30, 0x7a, 0x5f, 0xf3, 0x19, 0x98, 0x4a, 0xe6, 0xb1, 0x18, 0x78, 0x6d, 0x1d, + 0x8d, 0x4e, 0x79, 0x3b, 0x25, 0xe2, 0x6a, 0x16, 0x8e, 0xd5, 0x0b, 0x3a, 0xc3, 0x79, 0xf1, 0x75, + 0x8d, 0xd0, 0x99, 0xf1, 0x9f, 0x06, 0x94, 0xd0, 0x8e, 0xcc, 0x29, 0x8d, 0x49, 0x04, 0x79, 0x0d, + 0xea, 0x43, 0xfe, 0x21, 0x9f, 0x90, 0x6d, 0x3c, 0x36, 0x21, 0xdb, 0xfa, 0x0b, 0x03, 0x80, 0x1f, + 0x06, 0x64, 0x7e, 0x0b, 0xfa, 0x24, 0xcc, 0x0a, 0x33, 0x3b, 0xc0, 0xbe, 0x2f, 0xcf, 0x0e, 0x3d, + 0x2d, 0x93, 0x1a, 0x47, 0xbc, 0x87, 0x7d, 0x9f, 0x93, 0xdf, 0xa7, 0xe8, 0x2a, 0xcc, 0x47, 0x71, + 0xe8, 0x12, 0x4a, 0xf3, 0xd4, 0xca, 0x58, 0x14, 0x2e, 0x53, 0x61, 0x0d, 0xe6, 0xf7, 0xf6, 0xc5, + 0xd6, 0x3b, 0x5f, 0x41, 0x5a, 0xbc, 0xb9, 0xb7, 0xcf, 0x37, 0xe1, 0x19, 0xfa, 0x75, 0x58, 0x64, + 0x21, 0xc3, 0xbe, 0x13, 0x47, 0x6e, 0xa6, 0x46, 0xa0, 0x85, 0x87, 0x04, 0xd6, 0x8e, 0x5c, 0x5d, + 0xe7, 0x01, 0xb5, 0xbe, 0x59, 0x80, 0xe9, 0x74, 0x38, 0x0f, 0xd7, 0xc7, 0x0c, 0x28, 0x18, 0x3b, + 0xa0, 0x07, 0x8f, 0x18, 0x50, 0xf0, 0xa8, 0x01, 0x3d, 0xa0, 0xe8, 0x2d, 0x38, 0xa7, 0x2b, 0xd0, + 0x3e, 0x8d, 0x48, 0xd0, 0xce, 0x57, 0x94, 0x03, 0x6b, 0x28, 0x9a, 0xa6, 0x24, 0xc9, 0xd4, 0x1f, + 0x2b, 0x90, 0x64, 0x78, 0x43, 0x02, 0x79, 0x70, 0x94, 0x40, 0x26, 0x1e, 0x29, 0x90, 0xaf, 0x40, + 0x85, 0x9f, 0xe0, 0xc4, 0xd6, 0x70, 0x1e, 0x26, 0x04, 0x85, 0x18, 0x7f, 0xd1, 0x96, 0x05, 0xbe, + 0xcf, 0x50, 0x1c, 0x92, 0xb6, 0x18, 0x6b, 0xd1, 0x4e, 0x01, 0x49, 0xf4, 0x66, 0x67, 0xc0, 0x88, + 0x1c, 0x51, 0x51, 0x46, 0x6f, 0xae, 0x73, 0x80, 0xf5, 0xbf, 0x0d, 0x00, 0xde, 0xbe, 0x32, 0x9f, + 0x97, 0x61, 0x42, 0xbc, 0x84, 0x1d, 0xb1, 0x3c, 0xcd, 0x83, 0x2d, 0xf1, 0xe8, 0x32, 0x94, 0x92, + 0x17, 0x3e, 0x63, 0xe9, 0x04, 0x9a, 0x93, 0xb5, 0x31, 0xc3, 0x23, 0xa1, 0x93, 0x94, 0x8c, 0xa3, + 0xad, 0x7f, 0x9e, 0x90, 0x6f, 0xfc, 0x13, 0xad, 0xbf, 0x02, 0x28, 0x19, 0x82, 0xde, 0xe6, 0x6a, + 0xb5, 0xcf, 0x26, 0x18, 0xb5, 0xd9, 0xa5, 0xe8, 0x4d, 0x58, 0x1a, 0x25, 0xcf, 0xbe, 0x1c, 0x5f, + 0x18, 0xa9, 0x23, 0x76, 0xb7, 0x97, 0xa1, 0x26, 0x15, 0x92, 0x74, 0xa1, 0x72, 0xa8, 0x05, 0x34, + 0x69, 0xfe, 0xcb, 0x70, 0x2e, 0xe6, 0xe7, 0xad, 0xf6, 0x8e, 0xd3, 0x16, 0xb7, 0x56, 0x0e, 0xdd, + 0xf3, 0xa2, 0x48, 0xb8, 0xd8, 0x7e, 0xc0, 0x94, 0x9d, 0x2c, 0x2b, 0x1a, 0x79, 0xb1, 0xd5, 0x94, + 0x14, 0x1b, 0x9c, 0x80, 0x1f, 0x98, 0x75, 0x03, 0x7c, 0x9d, 0xc8, 0xd7, 0x96, 0xd6, 0xb2, 0xa8, + 0x08, 0xee, 0x92, 0x41, 0xae, 0xea, 0xdb, 0x70, 0x5e, 0x57, 0xdd, 0x11, 0x8e, 0x41, 0xc4, 0x13, + 0x9c, 0x2e, 0x5f, 0x4a, 0x44, 0xf5, 0x89, 0x5c, 0xe7, 0xd7, 0x39, 0x8d, 0x08, 0x2f, 0xdc, 0xf1, + 0x98, 0x6c, 0xe1, 0xb3, 0xd0, 0xc8, 0xb7, 0x20, 0xec, 0x41, 0x56, 0x96, 0x39, 0x36, 0x0b, 0xd9, + 0xca, 0xdc, 0x66, 0x65, 0xc5, 0x37, 0x60, 0x69, 0x4c, 0x45, 0x6e, 0x48, 0x6a, 0x5b, 0x3f, 0x3f, + 0x5c, 0x8f, 0xdb, 0xd4, 0x23, 0xfa, 0x0b, 0x70, 0x10, 0xea, 0xcd, 0xfb, 0x48, 0x7f, 0x0f, 0x38, + 0x92, 0xfb, 0xce, 0x0e, 0x61, 0x0e, 0x0d, 0x70, 0x44, 0xbb, 0x21, 0x53, 0x55, 0xe4, 0xb3, 0x7d, + 0xb3, 0x43, 0x58, 0x53, 0x21, 0x24, 0x35, 0x17, 0x4c, 0x12, 0x96, 0x74, 0xa2, 0x38, 0x8c, 0x42, + 0x4a, 0x1c, 0xe1, 0x2b, 0x64, 0xc5, 0xaa, 0x12, 0x8c, 0x8e, 0x54, 0x6e, 0x4b, 0x12, 0xbe, 0xd2, + 0x8e, 0x6b, 0x81, 0x6f, 0x78, 0xbc, 0xb8, 0x97, 0x6d, 0x61, 0x7a, 0xa8, 0x85, 0x0d, 0x49, 0x32, + 0xda, 0x42, 0x14, 0x86, 0xbe, 0x43, 0xdd, 0x2e, 0x69, 0xf7, 0xfd, 0x1c, 0x0f, 0x33, 0x69, 0x0b, + 0xdb, 0x61, 0xe8, 0x37, 0x15, 0x49, 0xd2, 0x82, 0xf5, 0x7f, 0x0d, 0xa8, 0x66, 0xb2, 0x15, 0xd1, + 0xeb, 0x50, 0x15, 0x3e, 0x41, 0x26, 0x37, 0xaa, 0x69, 0x98, 0x06, 0x0c, 0x52, 0xd7, 0x68, 0x03, + 0x4b, 0xbd, 0xfe, 0xeb, 0x50, 0x15, 0xd1, 0x1f, 0x55, 0xab, 0x30, 0x54, 0x2b, 0x9d, 0x5a, 0x36, + 0xd0, 0xe4, 0xbf, 0x4c, 0xa7, 0x96, 0x27, 0x63, 0xeb, 0x5f, 0x0c, 0x98, 0xc9, 0x65, 0x4d, 0x9e, + 0x90, 0x93, 0x2f, 0x42, 0x2d, 0xc3, 0x89, 0xb3, 0xbf, 0xae, 0x98, 0x59, 0x18, 0xc3, 0xcc, 0xc3, + 0x75, 0x7b, 0x9a, 0x66, 0x67, 0xfd, 0x67, 0x61, 0x5a, 0x78, 0x17, 0xdd, 0x67, 0x71, 0xe8, 0x5c, + 0x20, 0x36, 0x9a, 0xaa, 0xd3, 0xea, 0x41, 0x5a, 0xe0, 0xbd, 0x66, 0x78, 0x4d, 0xf3, 0x72, 0x17, + 0xc6, 0xb0, 0xcb, 0x7b, 0x65, 0x99, 0x92, 0xf5, 0x61, 0x19, 0xaa, 0x99, 0x96, 0xd1, 0x6b, 0xb0, + 0x48, 0x59, 0x18, 0x13, 0x67, 0x87, 0x2f, 0xc8, 0x59, 0x6d, 0x4a, 0xff, 0x33, 0x27, 0xb0, 0xe2, + 0x22, 0x36, 0xb5, 0x84, 0x37, 0x84, 0x07, 0x12, 0x26, 0x48, 0xe5, 0x3a, 0x92, 0xd4, 0x92, 0x2e, + 0x65, 0x5e, 0xa1, 0x9b, 0x62, 0x09, 0xd1, 0xd5, 0x56, 0x61, 0x36, 0xe2, 0x5e, 0x46, 0xbc, 0x3e, + 0xef, 0xa8, 0x0a, 0x6a, 0x07, 0xa9, 0x10, 0xf7, 0xc2, 0x8e, 0xa4, 0xdd, 0x80, 0x0b, 0x31, 0xde, + 0x65, 0x4e, 0x7b, 0xc7, 0x91, 0x52, 0xf2, 0x09, 0x6e, 0x93, 0x38, 0xdb, 0x95, 0x74, 0x25, 0x2b, + 0x9c, 0xec, 0xc6, 0x8e, 0x18, 0xd3, 0x3d, 0x41, 0x93, 0x76, 0xb8, 0x0e, 0x8b, 0xba, 0x11, 0x1d, + 0x7b, 0x54, 0x75, 0xd5, 0x12, 0x24, 0xeb, 0x36, 0x65, 0x1c, 0x52, 0xd6, 0x79, 0x0b, 0xce, 0xe5, + 0x3b, 0xee, 0x91, 0x1e, 0xe3, 0x87, 0x58, 0x55, 0x53, 0x3a, 0x91, 0x46, 0xa6, 0xd7, 0xfb, 0x8a, + 0x40, 0xd6, 0xbf, 0x02, 0xea, 0xfc, 0x95, 0xe9, 0x4d, 0x3a, 0x10, 0x15, 0xcf, 0x4a, 0x7a, 0x7a, + 0x0d, 0x16, 0x71, 0x14, 0xf9, 0x83, 0x51, 0xd1, 0x4b, 0x37, 0x3e, 0x27, 0xb0, 0x43, 0xa2, 0x7f, + 0x09, 0xea, 0xb2, 0x52, 0xda, 0xfa, 0x94, 0x7a, 0x2c, 0xca, 0xc1, 0xa3, 0x8d, 0xf7, 0xfa, 0x8c, + 0x1c, 0xca, 0x97, 0xa5, 0x59, 0x17, 0x23, 0x1b, 0xbf, 0xcf, 0x91, 0x7c, 0x9f, 0x95, 0xcc, 0x70, + 0x59, 0xe9, 0x51, 0x22, 0x57, 0x5e, 0x46, 0x10, 0x8d, 0x95, 0xf8, 0xab, 0xb0, 0x90, 0x6d, 0xe1, + 0x00, 0xfb, 0x39, 0xef, 0x82, 0xd2, 0x9a, 0xef, 0x61, 0x5f, 0x56, 0xf9, 0x22, 0xac, 0x64, 0xab, + 0x0c, 0x89, 0x5b, 0xfa, 0x94, 0xa5, 0xb4, 0xde, 0x88, 0xb4, 0xfd, 0x61, 0xe9, 0xc9, 0x98, 0x6c, + 0xcd, 0xcf, 0x0b, 0xee, 0x45, 0x98, 0xd1, 0xdb, 0x1f, 0x49, 0xa6, 0x62, 0xb1, 0x0a, 0x28, 0x89, + 0xf8, 0x12, 0xd9, 0x8d, 0x43, 0xc6, 0x92, 0xfe, 0x4d, 0xb5, 0x44, 0x2a, 0xa8, 0x24, 0xfb, 0x2f, + 0x70, 0x76, 0xf8, 0x25, 0x66, 0x96, 0x81, 0x59, 0xb5, 0x93, 0x1a, 0xfe, 0x96, 0x80, 0x76, 0x83, + 0xef, 0xc3, 0xa4, 0xcc, 0x3e, 0x48, 0x93, 0xa0, 0x8d, 0xc7, 0xa4, 0x81, 0x1f, 0x33, 0x49, 0xcf, + 0xfa, 0xd0, 0x80, 0x8a, 0x7e, 0x3f, 0x85, 0xce, 0x42, 0x21, 0x8c, 0xd4, 0x77, 0x08, 0x72, 0x71, + 0xac, 0x42, 0x18, 0x1d, 0x3b, 0xed, 0x2f, 0x77, 0x82, 0x28, 0x1d, 0xe3, 0x04, 0x61, 0xfd, 0xb4, + 0x00, 0x53, 0xf7, 0xf7, 0x5d, 0x57, 0xa8, 0x0b, 0x5d, 0xc8, 0x7d, 0x0e, 0x21, 0xc7, 0x86, 0xfc, + 0xe8, 0xc1, 0x11, 0x17, 0x80, 0x67, 0x47, 0x9e, 0xfe, 0x67, 0x9e, 0x05, 0x5e, 0x80, 0x2a, 0xed, + 0x86, 0x31, 0x73, 0x32, 0x8f, 0xff, 0x6d, 0x10, 0x20, 0xf1, 0xa1, 0x09, 0xbe, 0x4f, 0xea, 0x62, + 0xea, 0x84, 0xfb, 0x24, 0xf6, 0xb1, 0xd8, 0x82, 0xe8, 0xa7, 0xb8, 0x2a, 0x35, 0x6f, 0xa1, 0x8b, + 0xe9, 0x56, 0x82, 0xd5, 0x6f, 0x5c, 0xd0, 0x45, 0x98, 0xe6, 0xf5, 0x3a, 0xae, 0xb3, 0x2b, 0x3e, + 0xb9, 0x20, 0x53, 0x53, 0xa0, 0x8b, 0xe9, 0x6d, 0xf7, 0x96, 0xf8, 0xe6, 0xc2, 0x32, 0x54, 0x12, + 0xac, 0x9c, 0xdb, 0xe5, 0x8e, 0x42, 0x7d, 0x02, 0x6a, 0x22, 0xde, 0xe6, 0x76, 0x71, 0xd0, 0x11, + 0x41, 0x41, 0x39, 0x99, 0xa7, 0x39, 0x74, 0x43, 0x00, 0x45, 0x78, 0x61, 0x29, 0xd9, 0xb8, 0xe9, + 0x08, 0x9d, 0xac, 0xa1, 0x66, 0xf3, 0xbc, 0x46, 0xcb, 0xf0, 0x9c, 0xac, 0x68, 0x7d, 0x49, 0x0a, + 0x56, 0x0e, 0xef, 0x88, 0x73, 0xe0, 0xd8, 0xef, 0x48, 0x58, 0xdf, 0x2b, 0x42, 0x85, 0x57, 0x17, + 0x51, 0xd5, 0xa7, 0x51, 0x4b, 0x26, 0xc8, 0x52, 0xcc, 0x07, 0x59, 0x1e, 0xab, 0x93, 0xd1, 0xa4, + 0xd1, 0xe3, 0x7c, 0xb7, 0x24, 0x1b, 0xb2, 0x2d, 0x0f, 0x87, 0x6c, 0x8f, 0x1b, 0x5b, 0x1d, 0x8a, + 0x9b, 0x4e, 0x8d, 0xc6, 0x4d, 0x2f, 0x40, 0x35, 0x79, 0xc9, 0xcd, 0x64, 0x64, 0xb5, 0x64, 0x83, + 0x06, 0xb5, 0xe8, 0x18, 0xe5, 0x56, 0x9f, 0x4c, 0xb9, 0xd3, 0x47, 0x28, 0xf7, 0x1b, 0x86, 0x54, + 0x8f, 0x38, 0xfc, 0xe8, 0x13, 0x87, 0x31, 0xe6, 0x12, 0x52, 0x24, 0x49, 0xc8, 0x13, 0xc7, 0x2a, + 0x4c, 0x0a, 0xaf, 0xa9, 0xb3, 0x21, 0x50, 0x8e, 0x50, 0x4c, 0x40, 0x5b, 0x51, 0x70, 0x5a, 0xf5, + 0x31, 0x8c, 0xe2, 0x18, 0x5a, 0xa1, 0x1e, 0xfd, 0x81, 0x0c, 0xeb, 0x35, 0x28, 0xab, 0x27, 0x31, + 0x42, 0x63, 0x87, 0x81, 0xb2, 0x30, 0xfe, 0x17, 0x2d, 0xc2, 0x24, 0x15, 0xcf, 0xc3, 0x95, 0x5d, + 0xa8, 0x92, 0xf5, 0xb6, 0x88, 0x1c, 0x8b, 0x7b, 0xf9, 0x7c, 0x2a, 0x88, 0xf1, 0xe8, 0x44, 0xa8, + 0x42, 0x2e, 0x11, 0xea, 0x4f, 0x0d, 0x00, 0xb9, 0xa2, 0x88, 0xae, 0x8f, 0xbc, 0x56, 0x5d, 0x82, + 0x72, 0x44, 0x48, 0xcc, 0x51, 0x8a, 0x0d, 0x5e, 0xdc, 0x6c, 0x27, 0xb7, 0xa2, 0xc5, 0xcc, 0xad, + 0xe8, 0xf0, 0x1d, 0x6c, 0xe9, 0x98, 0x77, 0xb0, 0xaf, 0xaa, 0xf3, 0x24, 0x1f, 0x21, 0x51, 0xa1, + 0x66, 0x94, 0xb9, 0xb6, 0xc1, 0xed, 0x26, 0xc7, 0xc8, 0x33, 0xa6, 0xf8, 0x6b, 0x6d, 0xc2, 0x54, + 0x02, 0x1f, 0xbd, 0x00, 0x34, 0xc6, 0x5f, 0x00, 0x8a, 0x97, 0x36, 0x2c, 0x15, 0x28, 0xde, 0x25, + 0x2d, 0x6a, 0x35, 0x01, 0xc9, 0xcc, 0x25, 0x21, 0x12, 0x7d, 0xcb, 0xf6, 0x4a, 0x9a, 0x9b, 0x21, + 0x5f, 0xce, 0xa6, 0xdb, 0xd4, 0x54, 0x76, 0x49, 0x82, 0x06, 0xaa, 0x41, 0x21, 0x69, 0xb8, 0xc0, + 0xa8, 0xf5, 0x65, 0x98, 0xcb, 0x35, 0xaa, 0x2e, 0xd4, 0x1b, 0xf9, 0x56, 0x4b, 0x8f, 0x6e, 0xe0, + 0x06, 0xa0, 0x26, 0xdf, 0x13, 0x36, 0x39, 0x93, 0x4d, 0xcd, 0xd5, 0x1a, 0x4c, 0xf1, 0xc3, 0x9e, + 0x48, 0xc7, 0x18, 0xb7, 0x9a, 0xc9, 0x74, 0x8d, 0xca, 0x9e, 0xfa, 0x67, 0xad, 0xc1, 0x5c, 0xae, + 0x15, 0xc5, 0x46, 0x46, 0x16, 0x46, 0x4e, 0x16, 0xae, 0x48, 0x71, 0xbc, 0x4d, 0xb8, 0x01, 0xb5, + 0x5a, 0xf7, 0x9e, 0xcd, 0x73, 0x85, 0x6f, 0x1a, 0x22, 0xed, 0x30, 0xd3, 0xcb, 0x33, 0x48, 0x37, + 0x48, 0xbf, 0x73, 0x20, 0xfc, 0xdf, 0x91, 0x0f, 0x16, 0x7e, 0x26, 0x33, 0xfb, 0x37, 0xae, 0x35, + 0x9f, 0x65, 0x66, 0xff, 0xa7, 0x01, 0x45, 0x31, 0xd9, 0xf7, 0xc2, 0x3e, 0xcd, 0x7c, 0xbe, 0x42, + 0xf2, 0x62, 0x6a, 0x4c, 0xf2, 0xf1, 0x8a, 0xcb, 0x50, 0x4b, 0xa8, 0x65, 0x63, 0xf2, 0x45, 0xe3, + 0x8c, 0x86, 0x3e, 0xcc, 0x3c, 0x17, 0x98, 0x1c, 0x7e, 0x2e, 0x50, 0x4e, 0x46, 0x6e, 0x7d, 0x24, + 0xd3, 0x9b, 0xc5, 0xe0, 0x4e, 0x5b, 0xce, 0x0d, 0x28, 0xd3, 0xbe, 0xeb, 0x12, 0x95, 0xa8, 0x53, + 0xb1, 0x75, 0xf1, 0x99, 0x0c, 0xd6, 0xba, 0x01, 0x8b, 0xb7, 0x09, 0xd3, 0xbb, 0x3c, 0x31, 0x01, + 0x9f, 0x5c, 0x5f, 0xd6, 0xb7, 0x0d, 0x58, 0x1a, 0x69, 0xe6, 0xb4, 0x25, 0xf3, 0x19, 0xee, 0x7c, + 0x99, 0x58, 0x02, 0x8b, 0x47, 0xc6, 0xe5, 0x35, 0x99, 0x75, 0x1b, 0x96, 0x33, 0x5c, 0xdd, 0xf1, + 0xf8, 0x89, 0xf0, 0x24, 0xe9, 0x4c, 0xd6, 0x77, 0x0c, 0x58, 0x19, 0xd7, 0xd2, 0x2f, 0x7e, 0x88, + 0x7f, 0x26, 0x13, 0xc6, 0x37, 0x42, 0x75, 0x1a, 0x08, 0xe3, 0x13, 0x66, 0xff, 0xba, 0x61, 0x14, + 0xcb, 0x8b, 0x73, 0xc9, 0x51, 0x85, 0x03, 0xc4, 0x7d, 0xb9, 0x38, 0x17, 0x46, 0xb1, 0x0e, 0xbe, + 0x39, 0x31, 0xf9, 0x40, 0x79, 0x9e, 0x1a, 0x87, 0xa7, 0x4f, 0xd6, 0x32, 0x69, 0x6f, 0xa5, 0xc7, + 0xa5, 0x62, 0x23, 0x15, 0x71, 0x94, 0x46, 0x29, 0xc3, 0x8b, 0x7d, 0x91, 0x70, 0x9e, 0x1b, 0xca, + 0x69, 0x0b, 0x18, 0x65, 0x02, 0x9d, 0xba, 0xdb, 0xef, 0xcb, 0x87, 0x38, 0x62, 0x6d, 0xa1, 0xfd, + 0xde, 0x49, 0xe4, 0xf7, 0x39, 0x98, 0xc2, 0x7e, 0x27, 0x8c, 0x3d, 0xd6, 0xed, 0x89, 0x0e, 0x6b, + 0xeb, 0x2b, 0x29, 0xb5, 0x6a, 0xf8, 0x9a, 0xa6, 0xb0, 0x53, 0xe2, 0x27, 0xc9, 0x14, 0xfc, 0x03, + 0x99, 0x2c, 0x9f, 0xf2, 0x79, 0xda, 0xc2, 0x59, 0x81, 0x8a, 0xab, 0x1a, 0x4f, 0xce, 0x2c, 0xaa, + 0xcc, 0x2d, 0x44, 0x86, 0x60, 0xf7, 0xf6, 0x93, 0xef, 0x9c, 0x08, 0xc0, 0xdd, 0x7d, 0xb1, 0xfd, + 0x94, 0x48, 0x19, 0xbd, 0x96, 0x7b, 0x64, 0x10, 0x20, 0x19, 0xbe, 0xfe, 0x41, 0x11, 0xa6, 0x37, + 0xc2, 0x5e, 0x84, 0x5d, 0x26, 0x19, 0x78, 0x1f, 0x16, 0x48, 0x1c, 0x3b, 0x5e, 0xb0, 0x8f, 0x7d, + 0xaf, 0xed, 0xe4, 0x77, 0x5c, 0xd5, 0xf5, 0x4f, 0x64, 0xef, 0x88, 0x93, 0x5a, 0x9b, 0x92, 0xba, + 0xa9, 0x76, 0x63, 0x77, 0xce, 0xd8, 0x88, 0xc4, 0xc3, 0x50, 0xe4, 0xc3, 0x39, 0xde, 0x74, 0xa4, + 0x92, 0x73, 0x1d, 0x75, 0x26, 0x4f, 0x1c, 0xa6, 0x0c, 0x74, 0xad, 0x8e, 0xed, 0x41, 0x67, 0xf4, + 0xb6, 0xc4, 0x39, 0x5d, 0xb9, 0xd2, 0x3b, 0x67, 0xec, 0x06, 0x89, 0xc7, 0xe3, 0x90, 0x03, 0x4b, + 0xbc, 0x37, 0x57, 0x36, 0xe2, 0x78, 0x81, 0x13, 0xc5, 0x61, 0x27, 0x26, 0x94, 0xaa, 0xb0, 0xd8, + 0x4b, 0x63, 0x3b, 0x52, 0xff, 0x37, 0x83, 0x6d, 0x45, 0x7d, 0xe7, 0x8c, 0x3d, 0x4f, 0xe2, 0x51, + 0x38, 0xda, 0x85, 0x15, 0xde, 0x01, 0x0b, 0x43, 0xa7, 0x87, 0x83, 0x81, 0x13, 0x91, 0xa0, 0xed, + 0x05, 0x1d, 0x87, 0x61, 0xba, 0x47, 0xd5, 0x76, 0xf0, 0xca, 0xd8, 0x3e, 0x5a, 0x61, 0x78, 0x1f, + 0x07, 0x83, 0x6d, 0x59, 0xa1, 0xc5, 0xe9, 0xef, 0x9c, 0xb1, 0x17, 0x49, 0x3c, 0x0e, 0x73, 0xbd, + 0xac, 0x4c, 0xc2, 0x3a, 0x0f, 0x67, 0x8f, 0x10, 0xba, 0xf5, 0x22, 0x5c, 0x7a, 0xac, 0xc4, 0xac, + 0x0b, 0x70, 0xfe, 0xc8, 0xd1, 0x5a, 0x97, 0xe0, 0xc2, 0x63, 0x58, 0xe5, 0x3b, 0x88, 0x9a, 0xa2, + 0xd1, 0x53, 0xf2, 0xc8, 0xbd, 0xf9, 0x2a, 0xcc, 0x0e, 0xe9, 0xdc, 0xd3, 0xf7, 0x2c, 0xf5, 0x28, + 0xcb, 0xe5, 0x66, 0x5b, 0x04, 0x5f, 0xc2, 0x4e, 0x9e, 0x54, 0xde, 0xb9, 0xd4, 0x14, 0x5c, 0x53, + 0x0e, 0x65, 0x86, 0x95, 0x8f, 0x97, 0x19, 0x36, 0x94, 0xe7, 0x54, 0x19, 0xce, 0x73, 0xb2, 0xfe, + 0x44, 0xde, 0x17, 0xcb, 0xc1, 0xa9, 0x79, 0xfc, 0xa9, 0x7c, 0x48, 0x65, 0x61, 0xac, 0x52, 0xf5, + 0x5c, 0x7d, 0x11, 0x66, 0xf8, 0x51, 0x3f, 0x26, 0x3d, 0xec, 0x05, 0x5e, 0xd0, 0x51, 0xd9, 0xfe, + 0xfc, 0xfc, 0x6f, 0x6b, 0x18, 0x5a, 0x13, 0x79, 0x18, 0xbc, 0x2e, 0xc9, 0xce, 0x31, 0xe9, 0xfc, + 0x66, 0x13, 0x54, 0x33, 0x23, 0xc2, 0x94, 0x3e, 0xff, 0x2a, 0xb8, 0x9e, 0x20, 0x6e, 0xca, 0x13, + 0xcf, 0x2b, 0xb0, 0xdc, 0xf2, 0xc4, 0x43, 0xdf, 0xe6, 0x80, 0x32, 0xd2, 0x13, 0x02, 0xd3, 0x8a, + 0x32, 0xa1, 0x48, 0x3f, 0xf0, 0x55, 0x0a, 0x16, 0xff, 0x6b, 0x45, 0xb0, 0x32, 0x8e, 0x5c, 0x0d, + 0xdd, 0x56, 0x6e, 0x59, 0xe8, 0xf4, 0xfa, 0x5b, 0x1f, 0xfd, 0xfc, 0xc2, 0x99, 0x9f, 0xfd, 0xfc, + 0xc2, 0x9b, 0x1d, 0x8f, 0x75, 0xfb, 0x3b, 0x6b, 0x6e, 0xd8, 0xbb, 0x1a, 0x79, 0x41, 0xc7, 0xc5, + 0xd1, 0xd5, 0xbd, 0x7d, 0xf9, 0x11, 0xf4, 0x68, 0xaf, 0x73, 0x95, 0x76, 0x71, 0x4c, 0xda, 0xc2, + 0xe7, 0xac, 0x35, 0xc5, 0x7f, 0xe1, 0x6d, 0xa4, 0x5b, 0x5f, 0x7d, 0x07, 0x96, 0x1f, 0xf9, 0x4d, + 0x4c, 0x34, 0x0f, 0x66, 0x5a, 0x7a, 0x10, 0xc6, 0x3d, 0xec, 0x9b, 0x67, 0xd0, 0x12, 0xcc, 0xa5, + 0xd0, 0x5b, 0x61, 0xec, 0x8a, 0x27, 0x0a, 0xa6, 0xb1, 0xea, 0xc3, 0xb9, 0xa3, 0x3e, 0x82, 0xc9, + 0x9b, 0x53, 0x0f, 0x00, 0xfa, 0x3e, 0x4b, 0x9a, 0xbb, 0x08, 0xe7, 0x52, 0xe8, 0xbd, 0x91, 0x6f, + 0x59, 0xca, 0x74, 0x8a, 0x94, 0x42, 0xde, 0x92, 0x9b, 0x85, 0xd5, 0x97, 0x01, 0x52, 0xbb, 0x42, + 0x93, 0x50, 0x78, 0xf8, 0xaa, 0x79, 0x06, 0x4d, 0xc1, 0xc4, 0xc3, 0x57, 0x5b, 0xad, 0x7b, 0xa6, + 0x21, 0x40, 0xeb, 0x66, 0x61, 0xf5, 0x53, 0x00, 0x69, 0x66, 0x2c, 0x02, 0x98, 0x4c, 0xba, 0x2e, + 0x43, 0xf1, 0x5e, 0x78, 0x60, 0x1a, 0xa8, 0x02, 0xa5, 0x3b, 0x5e, 0xa7, 0x6b, 0x16, 0x56, 0xaf, + 0x42, 0x2d, 0x9f, 0x0e, 0xcb, 0x9b, 0x69, 0x6e, 0x9a, 0x67, 0xf8, 0xaf, 0xbd, 0x61, 0x1a, 0x22, + 0x65, 0x63, 0x43, 0xa6, 0x6c, 0x34, 0xcd, 0xc2, 0xea, 0x43, 0xa8, 0x66, 0x52, 0x2b, 0x39, 0xaf, + 0x0f, 0x42, 0x76, 0xcd, 0xf7, 0xc3, 0x03, 0xd2, 0xde, 0x0a, 0x38, 0x58, 0x8a, 0x2c, 0x01, 0x5d, + 0xf3, 0x7b, 0x21, 0x65, 0x02, 0x61, 0xa0, 0x06, 0xcc, 0x67, 0x10, 0x22, 0xc1, 0x43, 0x60, 0x0a, + 0xab, 0x2e, 0x14, 0xb6, 0x22, 0xce, 0xe1, 0x76, 0x9f, 0x49, 0x56, 0x6f, 0x10, 0x5f, 0xb2, 0x2a, + 0xc4, 0x5d, 0x40, 0xd3, 0x50, 0xd1, 0x31, 0x2d, 0xb3, 0xc8, 0xc7, 0xb5, 0x19, 0x50, 0x12, 0x33, + 0xb3, 0x84, 0xe6, 0xa0, 0x3e, 0xa4, 0x08, 0x73, 0x02, 0x21, 0xa8, 0x09, 0xae, 0xb5, 0xfb, 0xa1, + 0xe6, 0xe4, 0xea, 0x1a, 0x4c, 0x25, 0x21, 0x3e, 0xde, 0xf2, 0x83, 0x30, 0x20, 0x52, 0x88, 0x82, + 0xc4, 0x34, 0x78, 0x27, 0xba, 0x82, 0x94, 0x4e, 0xfe, 0xa3, 0xcd, 0x9c, 0xaf, 0xad, 0xdd, 0x5d, + 0xf3, 0x0c, 0xaf, 0x7d, 0x0b, 0x8b, 0x2a, 0x00, 0x93, 0x4d, 0x16, 0x73, 0xd5, 0x15, 0x56, 0xbf, + 0x6b, 0xc0, 0xa4, 0xfa, 0xd4, 0xb1, 0x68, 0x49, 0xfe, 0x37, 0xcf, 0xa0, 0x05, 0x98, 0x6d, 0xb5, + 0xee, 0xc9, 0x24, 0x90, 0x64, 0x14, 0x42, 0x1e, 0x22, 0x5c, 0xad, 0xba, 0x4c, 0x30, 0x05, 0x5e, + 0xe1, 0x7e, 0x92, 0xb5, 0xd1, 0xdc, 0xee, 0xd3, 0x2e, 0x69, 0x9b, 0x45, 0x6e, 0x3d, 0x49, 0x3b, + 0x63, 0x3e, 0x57, 0x69, 0x96, 0xd0, 0x32, 0x2c, 0x64, 0x9b, 0xbc, 0x11, 0x3e, 0x08, 0x59, 0xd7, + 0x0b, 0x3a, 0xe6, 0xc4, 0xea, 0x65, 0x28, 0xdf, 0x3c, 0x64, 0x31, 0xde, 0x8a, 0xe4, 0xe0, 0xc3, + 0xc8, 0x3c, 0x83, 0x4c, 0x98, 0xe6, 0x07, 0xfc, 0x2d, 0xbf, 0x2d, 0xf6, 0xfe, 0xa6, 0xb1, 0x6a, + 0xc1, 0xec, 0xc8, 0xee, 0x84, 0x9b, 0xc1, 0x46, 0xec, 0xbe, 0xf9, 0xba, 0xf3, 0x5f, 0xc3, 0xd8, + 0x3c, 0x73, 0xfd, 0xa5, 0xbf, 0xfe, 0xed, 0x8a, 0xf1, 0xd1, 0xc7, 0x2f, 0x18, 0x3f, 0xf9, 0xf8, + 0x05, 0xe3, 0xef, 0x3e, 0x7e, 0xc1, 0xf8, 0x8d, 0xbf, 0x7f, 0xe1, 0x0c, 0x98, 0x61, 0xdc, 0x59, + 0x63, 0xde, 0xde, 0xfe, 0x9a, 0x9a, 0x91, 0x3b, 0x93, 0xe2, 0xe7, 0xb5, 0x7f, 0x0f, 0x00, 0x00, + 0xff, 0xff, 0xa0, 0x02, 0x4c, 0x78, 0xdf, 0x60, 0x00, 0x00, } func (m *GetRequest) Marshal() (dAtA []byte, err error) { @@ -11862,6 +11933,16 @@ func (m *CheckTxnStatusRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.VerifyIsPrimary { + i-- + if m.VerifyIsPrimary { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x48 + } if m.ResolvingPessimisticLock { i-- if m.ResolvingPessimisticLock { @@ -15894,6 +15975,18 @@ func (m *KeyError) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.PrimaryMismatch != nil { + { + size, err := m.PrimaryMismatch.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintKvrpcpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a + } if m.AssertionFailed != nil { { size, err := m.AssertionFailed.MarshalToSizedBuffer(dAtA[:i]) @@ -16334,6 +16427,45 @@ func (m *AssertionFailed) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *PrimaryMismatch) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PrimaryMismatch) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PrimaryMismatch) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.LockInfo != nil { + { + size, err := m.LockInfo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintKvrpcpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *TimeDetail) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -17134,20 +17266,20 @@ func (m *MvccLock) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x58 } if len(m.RollbackTs) > 0 { - dAtA132 := make([]byte, len(m.RollbackTs)*10) - var j131 int + dAtA134 := make([]byte, len(m.RollbackTs)*10) + var j133 int for _, num := range m.RollbackTs { for num >= 1<<7 { - dAtA132[j131] = uint8(uint64(num)&0x7f | 0x80) + dAtA134[j133] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j131++ + j133++ } - dAtA132[j131] = uint8(num) - j131++ + dAtA134[j133] = uint8(num) + j133++ } - i -= j131 - copy(dAtA[i:], dAtA132[:j131]) - i = encodeVarintKvrpcpb(dAtA, i, uint64(j131)) + i -= j133 + copy(dAtA[i:], dAtA134[:j133]) + i = encodeVarintKvrpcpb(dAtA, i, uint64(j133)) i-- dAtA[i] = 0x52 } @@ -17536,20 +17668,20 @@ func (m *CheckLeaderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x10 } if len(m.Regions) > 0 { - dAtA137 := make([]byte, len(m.Regions)*10) - var j136 int + dAtA139 := make([]byte, len(m.Regions)*10) + var j138 int for _, num := range m.Regions { for num >= 1<<7 { - dAtA137[j136] = uint8(uint64(num)&0x7f | 0x80) + dAtA139[j138] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j136++ + j138++ } - dAtA137[j136] = uint8(num) - j136++ + dAtA139[j138] = uint8(num) + j138++ } - i -= j136 - copy(dAtA[i:], dAtA137[:j136]) - i = encodeVarintKvrpcpb(dAtA, i, uint64(j136)) + i -= j138 + copy(dAtA[i:], dAtA139[:j138]) + i = encodeVarintKvrpcpb(dAtA, i, uint64(j138)) i-- dAtA[i] = 0xa } @@ -19285,6 +19417,9 @@ func (m *CheckTxnStatusRequest) Size() (n int) { if m.ResolvingPessimisticLock { n += 2 } + if m.VerifyIsPrimary { + n += 2 + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -21041,6 +21176,10 @@ func (m *KeyError) Size() (n int) { l = m.AssertionFailed.Size() n += 1 + l + sovKvrpcpb(uint64(l)) } + if m.PrimaryMismatch != nil { + l = m.PrimaryMismatch.Size() + n += 1 + l + sovKvrpcpb(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -21210,6 +21349,22 @@ func (m *AssertionFailed) Size() (n int) { return n } +func (m *PrimaryMismatch) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.LockInfo != nil { + l = m.LockInfo.Size() + n += 1 + l + sovKvrpcpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *TimeDetail) Size() (n int) { if m == nil { return 0 @@ -25611,6 +25766,26 @@ func (m *CheckTxnStatusRequest) Unmarshal(dAtA []byte) error { } } m.ResolvingPessimisticLock = bool(v != 0) + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field VerifyIsPrimary", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.VerifyIsPrimary = bool(v != 0) default: iNdEx = preIndex skippy, err := skipKvrpcpb(dAtA[iNdEx:]) @@ -36517,6 +36692,42 @@ func (m *KeyError) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PrimaryMismatch", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthKvrpcpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthKvrpcpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PrimaryMismatch == nil { + m.PrimaryMismatch = &PrimaryMismatch{} + } + if err := m.PrimaryMismatch.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipKvrpcpb(dAtA[iNdEx:]) @@ -37453,6 +37664,93 @@ func (m *AssertionFailed) Unmarshal(dAtA []byte) error { } return nil } +func (m *PrimaryMismatch) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PrimaryMismatch: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PrimaryMismatch: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LockInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthKvrpcpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthKvrpcpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LockInfo == nil { + m.LockInfo = &LockInfo{} + } + if err := m.LockInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipKvrpcpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthKvrpcpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *TimeDetail) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pkg/tracepb/tracepb.pb.go b/pkg/tracepb/tracepb.pb.go index 55cf091..e5b4919 100644 --- a/pkg/tracepb/tracepb.pb.go +++ b/pkg/tracepb/tracepb.pb.go @@ -68,7 +68,6 @@ var xxx_messageInfo_TraceRecordRequest proto.InternalMessageInfo type TraceRecord struct { // Types that are valid to be assigned to RecordOneof: - // // *TraceRecord_Report // *TraceRecord_NotifyCollect RecordOneof isTraceRecord_RecordOneof `protobuf_oneof:"record_oneof"` diff --git a/proto/kvrpcpb.proto b/proto/kvrpcpb.proto index 2820abb..3ee7ed9 100644 --- a/proto/kvrpcpb.proto +++ b/proto/kvrpcpb.proto @@ -309,6 +309,12 @@ message CheckTxnStatusRequest { // lock, the transaction status could not be decided if the primary lock is pessimistic too and // it's still uncertain. bool resolving_pessimistic_lock = 8; + // Whether it's needed to check if the lock on the key (if any) is the primary lock. + // This is for handling some corner cases when a pessimistic transaction changes its primary + // (see https://github.com/pingcap/tidb/issues/42937 for details). This field is necessary + // because the old versions of clients cannot handle some results returned from TiKV correctly. + // For new versions, this field should always be set to true. + bool verify_is_primary = 9; } message CheckTxnStatusResponse { @@ -958,6 +964,7 @@ message KeyError { TxnNotFound txn_not_found = 8; // Txn not found when checking txn status. CommitTsTooLarge commit_ts_too_large = 9; // Calculated commit TS exceeds the limit given by the user. AssertionFailed assertion_failed = 10; // Assertion of a `Mutation` is evaluated as a failure. + PrimaryMismatch primary_mismatch = 11; // CheckTxnStatus is sent to a lock that's not the primary. } message WriteConflict { @@ -1013,6 +1020,10 @@ message AssertionFailed { uint64 existing_commit_ts = 5; } +message PrimaryMismatch { + LockInfo lock_info = 1; +} + enum CommandPri { Normal = 0; // Normal is the default value. Low = 1; diff --git a/scripts/proto.lock b/scripts/proto.lock index 1fb1e93..6acf4bc 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -7730,6 +7730,11 @@ "id": 8, "name": "resolving_pessimistic_lock", "type": "bool" + }, + { + "id": 9, + "name": "verify_is_primary", + "type": "bool" } ] }, @@ -9366,6 +9371,11 @@ "id": 10, "name": "assertion_failed", "type": "AssertionFailed" + }, + { + "id": 11, + "name": "primary_mismatch", + "type": "PrimaryMismatch" } ] }, @@ -9520,6 +9530,16 @@ } ] }, + { + "name": "PrimaryMismatch", + "fields": [ + { + "id": 1, + "name": "lock_info", + "type": "LockInfo" + } + ] + }, { "name": "TimeDetail", "fields": [ -- Gitee From a656ebbbd845e66ba94825935ed100ddaab91b49 Mon Sep 17 00:00:00 2001 From: TonsnakeLin Date: Thu, 13 Jul 2023 14:38:49 +0800 Subject: [PATCH 40/44] support table-enryption Signed-off-by: TonsnakeLin --- pkg/configpb/configpb.pb.gw.go | 22 +- pkg/kvrpcpb/kvrpcpb.pb.go | 824 +++++++++++++++++--------------- pkg/metapb/metapb.pb.go | 163 ++++--- pkg/raft_cmdpb/raft_cmdpb.pb.go | 385 ++++++++------- pkg/tracepb/tracepb.pb.go | 1 + proto/kvrpcpb.proto | 1 + proto/metapb.proto | 2 + proto/raft_cmdpb.proto | 2 + scripts/proto.lock | 15 + 9 files changed, 783 insertions(+), 632 deletions(-) diff --git a/pkg/configpb/configpb.pb.gw.go b/pkg/configpb/configpb.pb.gw.go index c0385b0..9b4675b 100644 --- a/pkg/configpb/configpb.pb.gw.go +++ b/pkg/configpb/configpb.pb.gw.go @@ -20,6 +20,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -30,6 +31,7 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage +var _ = metadata.Join var ( filter_Config_Get_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} @@ -55,7 +57,10 @@ func local_request_Config_Get_0(ctx context.Context, marshaler runtime.Marshaler var protoReq GetRequest var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Get_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_Get_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -122,7 +127,10 @@ func local_request_Config_Delete_0(ctx context.Context, marshaler runtime.Marsha var protoReq DeleteRequest var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Config_Delete_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Config_Delete_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -134,11 +142,14 @@ func local_request_Config_Delete_0(ctx context.Context, marshaler runtime.Marsha // RegisterConfigHandlerServer registers the http handlers for service Config to "mux". // UnaryRPC :call ConfigServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterConfigHandlerFromEndpoint instead. func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ConfigServer) error { mux.Handle("GET", pattern_Config_Get_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -146,6 +157,7 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Get_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -159,6 +171,8 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser mux.Handle("POST", pattern_Config_Update_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -166,6 +180,7 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Update_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -179,6 +194,8 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser mux.Handle("DELETE", pattern_Config_Delete_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -186,6 +203,7 @@ func RegisterConfigHandlerServer(ctx context.Context, mux *runtime.ServeMux, ser return } resp, md, err := local_request_Config_Delete_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) diff --git a/pkg/kvrpcpb/kvrpcpb.pb.go b/pkg/kvrpcpb/kvrpcpb.pb.go index 2f2cb70..430d38e 100644 --- a/pkg/kvrpcpb/kvrpcpb.pb.go +++ b/pkg/kvrpcpb/kvrpcpb.pb.go @@ -1971,9 +1971,10 @@ type CheckTxnStatusResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Error *KeyError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Three kinds of transaction status: - // locked: lock_ttl > 0 - // committed: commit_version > 0 - // rollbacked: lock_ttl = 0 && commit_version = 0 + // + // locked: lock_ttl > 0 + // committed: commit_version > 0 + // rollbacked: lock_ttl = 0 && commit_version = 0 LockTtl uint64 `protobuf:"varint,3,opt,name=lock_ttl,json=lockTtl,proto3" json:"lock_ttl,omitempty"` CommitVersion uint64 `protobuf:"varint,4,opt,name=commit_version,json=commitVersion,proto3" json:"commit_version,omitempty"` // The action performed by TiKV (and why if the action is to rollback). @@ -5510,6 +5511,7 @@ type SplitRegionRequest struct { SplitKeys [][]byte `protobuf:"bytes,3,rep,name=split_keys,json=splitKeys,proto3" json:"split_keys,omitempty"` // Once enabled, the split_key will not be encoded. IsRawKv bool `protobuf:"varint,4,opt,name=is_raw_kv,json=isRawKv,proto3" json:"is_raw_kv,omitempty"` + Encrypt uint32 `protobuf:"varint,5,opt,name=encrypt,proto3" json:"encrypt,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -5577,6 +5579,13 @@ func (m *SplitRegionRequest) GetIsRawKv() bool { return false } +func (m *SplitRegionRequest) GetEncrypt() uint32 { + if m != nil { + return m.Encrypt + } + return 0 +} + type SplitRegionResponse struct { RegionError *errorpb.Error `protobuf:"bytes,1,opt,name=region_error,json=regionError,proto3" json:"region_error,omitempty"` Left *metapb.Region `protobuf:"bytes,2,opt,name=left,proto3" json:"left,omitempty"` // Deprecated: Do not use. @@ -9680,6 +9689,7 @@ func (m *RawChecksumResponse) GetTotalBytes() uint64 { type CompactError struct { // Types that are valid to be assigned to Error: + // // *CompactError_ErrInvalidStartKey // *CompactError_ErrPhysicalTableNotExist // *CompactError_ErrCompactInProgress @@ -10354,382 +10364,383 @@ func init() { func init() { proto.RegisterFile("kvrpcpb.proto", fileDescriptor_1afe832be69693c7) } var fileDescriptor_1afe832be69693c7 = []byte{ - // 6778 bytes of a gzipped FileDescriptorProto + // 6794 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0x5b, 0x6c, 0x23, 0xc9, 0x75, 0xe8, 0x34, 0x49, 0x89, 0xd4, 0xa1, 0x44, 0xb6, 0x4a, 0x2f, 0x4a, 0x33, 0xb3, 0x33, 0xd3, 0xeb, 0xd9, 0x1d, 0xcb, 0x5e, 0x8d, 0x57, 0xfb, 0xf0, 0xf3, 0xae, 0x77, 0x46, 0xf3, 0xd2, 0xce, 0x43, 0x42, 0x93, 0x3b, 0x7b, 0x17, 0xf7, 0xda, 0xed, 0x52, 0xb3, 0x44, 0x36, 0xd4, 0xec, 0xee, - 0xed, 0x2a, 0x4a, 0xa2, 0x2f, 0x2e, 0x70, 0x17, 0xf7, 0x01, 0x18, 0xb8, 0x71, 0x12, 0xc3, 0x80, - 0x03, 0xd8, 0x08, 0x90, 0x0f, 0x03, 0x71, 0xfe, 0x92, 0xfc, 0xe4, 0xf1, 0x11, 0x04, 0xf0, 0xc7, - 0x26, 0x88, 0x61, 0x03, 0x41, 0xe0, 0xc0, 0x09, 0x8c, 0x60, 0x03, 0xe4, 0x3b, 0x3f, 0x41, 0xf2, - 0x13, 0x24, 0xa8, 0x57, 0x3f, 0x48, 0x8e, 0x46, 0xa3, 0xd1, 0x8c, 0x9d, 0x7c, 0x91, 0x75, 0xce, - 0xa9, 0xaa, 0x53, 0xe7, 0x9c, 0x3a, 0x55, 0x75, 0xea, 0x54, 0xc3, 0xcc, 0xde, 0x7e, 0x1c, 0xb9, - 0xd1, 0xce, 0x5a, 0x14, 0x87, 0x2c, 0x44, 0x65, 0x55, 0x5c, 0x99, 0xee, 0x11, 0x86, 0x35, 0x78, - 0x65, 0x86, 0xc4, 0x71, 0x18, 0x27, 0xc5, 0xf9, 0x4e, 0xd8, 0x09, 0xc5, 0xdf, 0xab, 0xfc, 0x9f, - 0x82, 0xd6, 0xe3, 0x3e, 0x65, 0xe2, 0xaf, 0x02, 0xd4, 0xda, 0x04, 0xb7, 0xfd, 0xd0, 0xdd, 0xd3, - 0xad, 0xb0, 0x18, 0xbb, 0x24, 0x69, 0x65, 0x31, 0x26, 0x34, 0xec, 0xc7, 0x2e, 0x71, 0x7a, 0x38, - 0xc0, 0x1d, 0x12, 0x4b, 0xb8, 0xd5, 0x06, 0xb8, 0x4d, 0x98, 0x4d, 0x3e, 0xe8, 0x13, 0xca, 0xd0, - 0x2a, 0x94, 0xdd, 0x30, 0x60, 0xe4, 0x90, 0x35, 0x8c, 0x8b, 0xc6, 0x95, 0xea, 0xba, 0xb9, 0xa6, - 0x59, 0xde, 0x90, 0x70, 0x5b, 0x13, 0x20, 0x13, 0x8a, 0x7b, 0x64, 0xd0, 0x28, 0x5c, 0x34, 0xae, - 0x4c, 0xdb, 0xfc, 0x2f, 0x6a, 0x40, 0x79, 0x9f, 0xc4, 0xd4, 0x0b, 0x83, 0x46, 0xf1, 0xa2, 0x71, - 0xa5, 0x64, 0xeb, 0xa2, 0xf5, 0xb1, 0x01, 0x55, 0xd1, 0x0d, 0x8d, 0xc2, 0x80, 0x12, 0xf4, 0x2a, - 0x4c, 0xc7, 0xa4, 0xe3, 0x85, 0x81, 0x23, 0xc6, 0xaa, 0x3a, 0xab, 0xad, 0xe9, 0x91, 0xdf, 0xe4, - 0xbf, 0x76, 0x55, 0xd2, 0x88, 0x02, 0x7a, 0x19, 0x26, 0x24, 0x6d, 0x41, 0xd0, 0xce, 0x26, 0x8c, - 0xdd, 0x25, 0x03, 0x49, 0x2e, 0xf1, 0x68, 0x1e, 0x26, 0xf6, 0xb1, 0xdf, 0x27, 0x82, 0x87, 0x69, - 0x5b, 0x16, 0xd0, 0x59, 0x98, 0x0a, 0x42, 0xe6, 0xec, 0x86, 0xfd, 0xa0, 0xdd, 0x28, 0x5d, 0x34, - 0xae, 0x54, 0xec, 0x4a, 0x10, 0xb2, 0x5b, 0xbc, 0x8c, 0xde, 0x82, 0x3a, 0x39, 0x24, 0xae, 0xd3, - 0x26, 0x0c, 0x7b, 0x3e, 0x75, 0xf6, 0xd7, 0x1b, 0x93, 0xa2, 0x97, 0xc5, 0xa4, 0x97, 0x9b, 0x87, - 0xc4, 0xbd, 0x21, 0xd1, 0x0f, 0xd7, 0xed, 0x19, 0x92, 0x2d, 0xbe, 0x53, 0xaa, 0x4c, 0x98, 0x93, - 0xd6, 0x3f, 0x19, 0x50, 0x6d, 0xba, 0x38, 0x38, 0x89, 0x30, 0xcf, 0xc2, 0x14, 0x65, 0x38, 0x66, - 0x4e, 0x2a, 0xd2, 0x8a, 0x00, 0xdc, 0x25, 0x03, 0x3e, 0x22, 0xdf, 0xeb, 0x79, 0x4c, 0x8c, 0x68, - 0xc6, 0x96, 0x85, 0xac, 0xb4, 0x4b, 0x39, 0x69, 0xa3, 0x65, 0xa8, 0xec, 0x91, 0x81, 0x13, 0x06, - 0xfe, 0xa0, 0x31, 0x21, 0x86, 0x5a, 0xde, 0x23, 0x83, 0xad, 0xc0, 0x17, 0x2a, 0x8a, 0x09, 0xa7, - 0x23, 0x62, 0x84, 0x15, 0x5b, 0x17, 0xd1, 0x12, 0x94, 0x49, 0xd0, 0x16, 0xfd, 0x97, 0x45, 0xff, - 0x93, 0x24, 0x68, 0xf3, 0xde, 0x2f, 0x40, 0x95, 0xe2, 0x5e, 0xe4, 0x13, 0x87, 0x32, 0x12, 0x35, - 0x2a, 0x82, 0x07, 0x90, 0xa0, 0x26, 0x23, 0x91, 0xf5, 0xeb, 0x06, 0x4c, 0xcb, 0x71, 0x9f, 0x5c, - 0xbb, 0x97, 0x61, 0x22, 0xc2, 0x5e, 0x4c, 0x1b, 0x85, 0x8b, 0xc5, 0x2b, 0xd5, 0xf5, 0x7a, 0xaa, - 0xdd, 0xfd, 0x6d, 0xec, 0xc5, 0xb6, 0xc4, 0xa6, 0x46, 0x50, 0x3c, 0xda, 0x08, 0xac, 0x8f, 0xca, - 0x50, 0xdf, 0x8e, 0xc9, 0x41, 0xec, 0x31, 0x72, 0x12, 0x7d, 0x5c, 0x85, 0xa9, 0x5e, 0x9f, 0x61, - 0xe6, 0x85, 0x81, 0xe6, 0x29, 0xed, 0xec, 0xbe, 0xc2, 0xd8, 0x29, 0x0d, 0xba, 0x04, 0xd3, 0x51, - 0xec, 0xf5, 0x70, 0x3c, 0x70, 0xf8, 0x24, 0x54, 0xc6, 0x57, 0x55, 0xb0, 0x7b, 0xa1, 0xbb, 0x87, - 0x5e, 0x84, 0x19, 0xa9, 0xe3, 0xbc, 0xda, 0xa6, 0x05, 0xf0, 0x61, 0xaa, 0x3b, 0x5e, 0xdf, 0x61, - 0xcc, 0x17, 0xba, 0x2b, 0xd9, 0x65, 0x5e, 0x6e, 0x31, 0x1f, 0xad, 0xc3, 0x02, 0xdd, 0xf3, 0x22, - 0xc7, 0x0d, 0x03, 0xca, 0x62, 0xec, 0x05, 0xcc, 0x71, 0xbb, 0xc4, 0xdd, 0x53, 0x9a, 0x9c, 0xe3, - 0xc8, 0x8d, 0x04, 0xb7, 0xc1, 0x51, 0xe8, 0xbf, 0xc1, 0x5c, 0x44, 0x28, 0xf5, 0x7a, 0x1e, 0x65, - 0x9e, 0xeb, 0x60, 0x57, 0x8e, 0xa8, 0x7c, 0xb1, 0x78, 0xa5, 0xb6, 0xbe, 0x9a, 0x8c, 0x68, 0x48, - 0x54, 0x6b, 0xdb, 0x69, 0x9d, 0x6b, 0xa2, 0x8a, 0x8d, 0xa2, 0x61, 0x10, 0xe5, 0xbc, 0xb2, 0xc3, - 0xc0, 0xa1, 0xde, 0xd7, 0x89, 0x30, 0x8b, 0x92, 0x5d, 0x66, 0x87, 0x41, 0xd3, 0xfb, 0x3a, 0x41, - 0x16, 0xcc, 0xec, 0x86, 0xb1, 0xd3, 0x8f, 0xda, 0x98, 0x11, 0x87, 0xd1, 0xc6, 0x94, 0xc0, 0x57, - 0x77, 0xc3, 0xf8, 0x5d, 0x01, 0x6b, 0x51, 0x4e, 0xd3, 0xf3, 0x02, 0xc7, 0x0d, 0x7b, 0x3d, 0x8f, - 0x71, 0x1a, 0x90, 0x34, 0x3d, 0x2f, 0xd8, 0x10, 0xb0, 0x16, 0x45, 0x57, 0xc0, 0xec, 0x53, 0xe2, - 0x60, 0x3a, 0x08, 0x5c, 0x45, 0xd9, 0xa8, 0x8a, 0xe1, 0xd6, 0xfa, 0x94, 0x5c, 0xe3, 0x60, 0x49, - 0x8b, 0x2e, 0x42, 0x95, 0x12, 0x37, 0x0c, 0xda, 0x38, 0xf6, 0x08, 0x6d, 0x4c, 0x5f, 0x2c, 0x72, - 0xf9, 0x67, 0x40, 0xe8, 0x1c, 0x00, 0x8b, 0xf9, 0xb4, 0x20, 0x4e, 0xe4, 0x36, 0x66, 0xa4, 0x0f, - 0x60, 0xf1, 0x60, 0x2b, 0x20, 0xdb, 0xae, 0xe0, 0x06, 0x1f, 0x66, 0xb8, 0xa9, 0x29, 0x6e, 0xf0, - 0x61, 0xc2, 0xcd, 0xdb, 0x50, 0xc7, 0x94, 0x92, 0x98, 0x0f, 0xdf, 0xf1, 0xc9, 0x3e, 0xf1, 0x1b, - 0xf5, 0x8b, 0xc6, 0x95, 0xda, 0xfa, 0x52, 0x22, 0xc9, 0x6b, 0x1a, 0x7f, 0x8f, 0xa3, 0xed, 0x1a, - 0xce, 0x95, 0x91, 0x07, 0xcb, 0x39, 0xb9, 0x64, 0x94, 0x49, 0x1b, 0xa6, 0xb0, 0xb3, 0xb5, 0x47, - 0x6a, 0xe5, 0x56, 0x22, 0xbc, 0x66, 0xaa, 0x67, 0x7b, 0x31, 0x23, 0xd3, 0x14, 0x4c, 0x57, 0x76, - 0x60, 0x61, 0x6c, 0x05, 0xee, 0x4e, 0xbc, 0xa0, 0x4d, 0x0e, 0xc5, 0x2c, 0x98, 0xb1, 0x65, 0x01, - 0xbd, 0x06, 0x8b, 0xe4, 0x30, 0x22, 0x2e, 0x23, 0x6d, 0x27, 0xaf, 0xba, 0x82, 0x10, 0xc4, 0x9c, - 0xc6, 0xa6, 0x8d, 0x52, 0x6b, 0x07, 0x66, 0x47, 0x4c, 0x05, 0xad, 0xc0, 0x62, 0xf3, 0xee, 0xe6, - 0xb6, 0xb3, 0x7d, 0xb3, 0xd9, 0xdc, 0xbc, 0xbf, 0xd9, 0x6c, 0x6d, 0x6e, 0x38, 0x1b, 0x77, 0x6e, - 0x6e, 0xdc, 0x35, 0xcf, 0xa0, 0x06, 0xcc, 0xdf, 0xd8, 0x1a, 0x83, 0x31, 0xd0, 0x12, 0xcc, 0xdd, - 0xd8, 0x72, 0x36, 0xb6, 0x1e, 0x34, 0x5b, 0xf6, 0xb5, 0xcd, 0x07, 0x2d, 0x85, 0x28, 0x58, 0xff, - 0x6a, 0x80, 0x99, 0x4a, 0xe2, 0xe4, 0x2e, 0xe6, 0x93, 0x30, 0x29, 0xb0, 0xa3, 0xf3, 0x39, 0x71, - 0x1e, 0x8a, 0x60, 0xd4, 0x32, 0x8b, 0xa3, 0x96, 0xf9, 0x32, 0x98, 0xd2, 0x92, 0x32, 0x64, 0x72, - 0x42, 0xcf, 0x84, 0xdc, 0xa0, 0x12, 0xc2, 0x31, 0x8b, 0xcb, 0xc4, 0x13, 0x2c, 0x2e, 0xd6, 0x0f, - 0x4b, 0xb0, 0x98, 0x11, 0x32, 0x77, 0x25, 0xff, 0x59, 0x3c, 0xda, 0x88, 0x97, 0x98, 0x1c, 0xeb, - 0x25, 0x3c, 0xea, 0xec, 0x7a, 0x31, 0x65, 0x92, 0x8f, 0xb2, 0x98, 0xb8, 0x55, 0x8f, 0xde, 0xe2, - 0x30, 0xc1, 0xc7, 0x25, 0x98, 0x3e, 0xc0, 0x5c, 0x05, 0x5e, 0x8f, 0x84, 0x7d, 0x26, 0x9c, 0x51, - 0xd1, 0xae, 0x72, 0x58, 0x4b, 0x82, 0x50, 0x03, 0x26, 0x76, 0xc3, 0xd8, 0x25, 0xc2, 0x11, 0x55, - 0xae, 0x17, 0x1a, 0x86, 0x2d, 0x01, 0x7c, 0x10, 0x31, 0x61, 0xfd, 0x38, 0x70, 0xc4, 0x4e, 0x41, - 0xba, 0xa1, 0x8a, 0x3d, 0x2d, 0x81, 0x0f, 0x05, 0x6c, 0xd4, 0x22, 0xaa, 0xe3, 0x2c, 0xa2, 0x2e, - 0xfc, 0xb1, 0x43, 0x0e, 0x3d, 0xca, 0x48, 0xe0, 0x92, 0xc6, 0xb4, 0x74, 0x55, 0x02, 0x7c, 0x53, - 0x43, 0xd1, 0x2b, 0x30, 0x27, 0x24, 0xc2, 0x17, 0x68, 0xc7, 0xdb, 0x95, 0xf4, 0x54, 0x79, 0x24, - 0x93, 0xa3, 0xf8, 0x5a, 0xbd, 0xb9, 0x2b, 0x6a, 0x50, 0x74, 0x83, 0x8f, 0x6e, 0x8f, 0x38, 0xfd, - 0xc8, 0xe9, 0x85, 0x6d, 0x22, 0x1c, 0x53, 0x6d, 0xdd, 0x4a, 0xdd, 0x44, 0xde, 0x38, 0xde, 0xc3, - 0x7b, 0xe4, 0xdd, 0xe8, 0x7e, 0xd8, 0x26, 0x36, 0x1c, 0x24, 0xff, 0xad, 0x7f, 0x34, 0xa0, 0x31, - 0x44, 0x79, 0x97, 0x0c, 0x6c, 0x42, 0xfb, 0x3e, 0x43, 0x9f, 0x87, 0x12, 0x1b, 0x44, 0x44, 0x58, - 0x51, 0x6d, 0xfd, 0xf2, 0xa3, 0x9a, 0x4e, 0x2a, 0xb4, 0x06, 0x11, 0xb1, 0x45, 0x95, 0x74, 0xbb, - 0x55, 0xc8, 0x6e, 0xb7, 0xce, 0xc1, 0x54, 0x2a, 0x85, 0xa2, 0x18, 0x58, 0x0a, 0x40, 0x6f, 0xc0, - 0x12, 0x1f, 0x25, 0x69, 0x3b, 0x07, 0x1e, 0xeb, 0x72, 0x1f, 0xb8, 0xeb, 0x7b, 0x6e, 0x66, 0x0a, - 0xcd, 0x4b, 0xf4, 0x7b, 0x1e, 0xeb, 0x6e, 0x28, 0x64, 0x8b, 0xa2, 0x35, 0x10, 0x6b, 0x9c, 0xc3, - 0xb7, 0xb2, 0xfe, 0xbe, 0x17, 0x74, 0xa4, 0x41, 0xc8, 0xf5, 0x60, 0x96, 0xa3, 0x6c, 0x8d, 0xe1, - 0xdc, 0x5a, 0xff, 0x50, 0x80, 0xa5, 0x91, 0x99, 0xf3, 0x5c, 0x1c, 0xc8, 0x05, 0x98, 0x1a, 0x72, - 0x1e, 0xc2, 0xe2, 0x2a, 0xae, 0xb6, 0x95, 0x86, 0x96, 0x1a, 0x1f, 0xef, 0xb4, 0x34, 0x47, 0x29, - 0xb9, 0x45, 0x98, 0x54, 0x76, 0x38, 0x21, 0x96, 0x30, 0x55, 0x42, 0xe7, 0x01, 0x92, 0x0d, 0x2c, - 0x9f, 0x28, 0x45, 0x2e, 0x52, 0xbd, 0x83, 0x1d, 0xeb, 0x65, 0xca, 0x4f, 0xe0, 0x65, 0xd0, 0x17, - 0xf9, 0xc6, 0x90, 0xab, 0x96, 0x36, 0x2a, 0x62, 0x74, 0x97, 0x1e, 0x6b, 0x04, 0xb6, 0xae, 0x61, - 0x7d, 0xdf, 0x80, 0x95, 0x0c, 0x95, 0x1d, 0xfa, 0xfe, 0x0e, 0x3e, 0x99, 0x9b, 0x1a, 0x71, 0x29, - 0x85, 0x31, 0x2e, 0x65, 0xc4, 0x6f, 0x14, 0x47, 0xfd, 0x06, 0x82, 0xd2, 0x1e, 0x19, 0x70, 0x83, - 0xe2, 0x52, 0x14, 0xff, 0xad, 0x3f, 0x36, 0xe0, 0xec, 0x58, 0x3e, 0x9f, 0x8b, 0x51, 0x8c, 0x51, - 0x51, 0xf1, 0x49, 0x16, 0x82, 0xdf, 0x35, 0x60, 0xae, 0x75, 0x18, 0xdc, 0x21, 0x38, 0x66, 0xd7, - 0x09, 0x3e, 0xd1, 0xa1, 0x6d, 0xd8, 0xa9, 0x17, 0x8e, 0xe1, 0xd4, 0x8b, 0x63, 0x34, 0xf0, 0x12, - 0xd4, 0x71, 0x7b, 0xdf, 0xa3, 0xc4, 0x49, 0x7c, 0xbb, 0x5a, 0xfc, 0x24, 0xf8, 0x9e, 0xf4, 0xf0, - 0xd6, 0x8f, 0x0c, 0x98, 0xcf, 0xf3, 0xfc, 0x1c, 0x4e, 0x80, 0xd9, 0x15, 0xa7, 0x98, 0x5f, 0x71, - 0xc6, 0xe8, 0xa0, 0xf4, 0x24, 0x3a, 0xf8, 0x95, 0x22, 0x2c, 0x88, 0x9d, 0x75, 0xeb, 0x30, 0x68, - 0x32, 0xcc, 0xfa, 0xf4, 0x24, 0x5a, 0xb8, 0x00, 0x5a, 0xe2, 0x99, 0xf3, 0x1e, 0x28, 0x10, 0x3f, - 0x73, 0x2d, 0x41, 0x59, 0x8e, 0x40, 0x9b, 0xf6, 0xa4, 0x18, 0x00, 0xe5, 0x72, 0x77, 0xb1, 0xef, - 0x93, 0xd8, 0x91, 0x3a, 0x4a, 0x37, 0x1d, 0x12, 0xdc, 0xe4, 0xd0, 0x96, 0xf0, 0x16, 0x6e, 0x3f, - 0x8e, 0x49, 0x20, 0x48, 0xe4, 0xb2, 0x3b, 0xa5, 0x20, 0x2d, 0x8a, 0x5e, 0x85, 0x85, 0x58, 0x19, - 0x3f, 0x5f, 0x80, 0xb8, 0x63, 0x11, 0xde, 0x59, 0x1d, 0x25, 0x90, 0x46, 0x6e, 0xee, 0x3e, 0x08, - 0x99, 0x58, 0x86, 0xd0, 0x2a, 0xcc, 0x8a, 0xf5, 0xd2, 0xc9, 0x6e, 0xc5, 0xe5, 0x5a, 0x5c, 0x17, - 0x88, 0x66, 0xba, 0x17, 0xff, 0x12, 0xac, 0xa4, 0x3e, 0x3a, 0x7b, 0xfe, 0x10, 0x36, 0x57, 0x11, - 0x95, 0x1a, 0x09, 0xc5, 0x90, 0x7f, 0xe1, 0x3d, 0xed, 0x93, 0xd8, 0xdb, 0x1d, 0x38, 0x1e, 0x75, - 0x94, 0x50, 0xe4, 0xb2, 0x6d, 0xd7, 0x25, 0x62, 0x93, 0x6e, 0x4b, 0xb0, 0xf5, 0xe3, 0x02, 0x2c, - 0x0e, 0xeb, 0xe3, 0x17, 0x6b, 0x61, 0x97, 0xa1, 0xa6, 0x5c, 0x7f, 0x7e, 0x53, 0x34, 0x23, 0xa1, - 0x7a, 0x02, 0xbd, 0x0c, 0x93, 0xf2, 0x30, 0x26, 0x94, 0x53, 0xcb, 0x9c, 0x78, 0xd5, 0x81, 0x4b, - 0xa1, 0xd1, 0x1a, 0x4c, 0x89, 0xae, 0xbc, 0x60, 0x37, 0x54, 0x51, 0x89, 0x94, 0x2f, 0x2e, 0xaf, - 0xcd, 0x60, 0x37, 0xb4, 0x05, 0x3b, 0xfc, 0xdf, 0xd3, 0x2e, 0x04, 0xd6, 0x87, 0x06, 0xac, 0x08, - 0x89, 0x36, 0xd5, 0xd1, 0x49, 0x78, 0x85, 0x13, 0x99, 0xb9, 0x76, 0xc1, 0x85, 0xd4, 0x05, 0x1f, - 0xcb, 0xbb, 0x58, 0xff, 0x66, 0xc0, 0xd9, 0xb1, 0x3c, 0x3c, 0x07, 0xd5, 0xbe, 0x0c, 0x13, 0x5c, - 0x96, 0x7c, 0xe2, 0x15, 0xc7, 0xcb, 0x5a, 0xe2, 0xd1, 0xd9, 0xec, 0x1a, 0x2f, 0x75, 0x9c, 0xae, - 0xef, 0x4f, 0xbb, 0xe9, 0xff, 0x81, 0x01, 0x33, 0x72, 0x32, 0x3d, 0xb3, 0x45, 0x54, 0x6b, 0xa7, - 0x98, 0xd1, 0xce, 0xf1, 0x8c, 0x57, 0xc6, 0xbb, 0xec, 0xc9, 0x1d, 0x2f, 0xf0, 0xc3, 0x8e, 0xf5, - 0x97, 0x06, 0xd4, 0x34, 0xaf, 0xcf, 0x41, 0x41, 0xa3, 0x3c, 0x16, 0xc7, 0x4d, 0xb0, 0xa7, 0xf5, - 0xf4, 0x1d, 0x98, 0xd9, 0xec, 0x45, 0x61, 0x9c, 0x28, 0x20, 0x77, 0x80, 0x32, 0x8e, 0x71, 0x80, - 0x1a, 0x65, 0xb4, 0x30, 0x86, 0x51, 0xeb, 0x7d, 0xa8, 0xe9, 0x8e, 0x4e, 0x2e, 0xbd, 0xf9, 0xac, - 0xf4, 0xa6, 0x74, 0x14, 0xec, 0x5b, 0x5c, 0x33, 0x3e, 0xc1, 0x41, 0x3f, 0x3a, 0x9d, 0x08, 0xef, - 0xb1, 0xf6, 0x06, 0xf9, 0xb5, 0xa7, 0x34, 0xb4, 0xf6, 0x58, 0xdf, 0x36, 0xa0, 0x9e, 0x30, 0xf5, - 0x4b, 0x63, 0x2f, 0xd6, 0x1e, 0xd4, 0xaf, 0x63, 0xe6, 0x76, 0x4f, 0x18, 0x0d, 0x1f, 0xe7, 0xeb, - 0x1e, 0x1d, 0x0f, 0xff, 0x1b, 0x03, 0xcc, 0xb4, 0xb7, 0x67, 0x1e, 0x36, 0x7d, 0xca, 0xb9, 0x90, - 0xca, 0x7a, 0xe2, 0x68, 0x59, 0xbf, 0x53, 0xaa, 0x14, 0xcd, 0x92, 0xf5, 0x3f, 0x60, 0x5e, 0x0c, - 0xee, 0x99, 0x9f, 0x03, 0xc6, 0xb8, 0x30, 0xeb, 0xf7, 0x0d, 0x58, 0x18, 0xea, 0xfd, 0x39, 0x18, - 0xd9, 0xd3, 0xee, 0xed, 0x7f, 0xc7, 0x80, 0x7a, 0xd3, 0xc5, 0xc1, 0x49, 0xa3, 0x3b, 0x17, 0xa0, - 0xda, 0xc3, 0x87, 0x43, 0xc2, 0x82, 0x1e, 0x3e, 0xd4, 0xa2, 0xca, 0x5d, 0x30, 0x14, 0x1f, 0x75, - 0xc1, 0x50, 0xca, 0x5e, 0x30, 0x64, 0x6e, 0x04, 0x26, 0xb2, 0x37, 0x02, 0xd6, 0x4f, 0x0d, 0x30, - 0x53, 0x66, 0x7f, 0x99, 0xd6, 0xe4, 0xa7, 0x75, 0xfa, 0x3f, 0x36, 0x00, 0xc9, 0x18, 0x02, 0x39, - 0xa9, 0x26, 0x8e, 0x65, 0xb8, 0xc7, 0x5c, 0xc3, 0x5e, 0x81, 0x29, 0x76, 0x18, 0x88, 0xad, 0x9f, - 0x3c, 0xc8, 0x66, 0x7b, 0x6e, 0x1d, 0x06, 0x72, 0xeb, 0xc7, 0xe4, 0x9f, 0xf4, 0xc8, 0x3b, 0x91, - 0x99, 0x0e, 0xfc, 0xd0, 0x98, 0x1b, 0xd1, 0x7f, 0x80, 0xc9, 0xf0, 0x10, 0xa6, 0x6e, 0x6f, 0x9c, - 0x44, 0xf6, 0xe7, 0x01, 0x28, 0xde, 0x25, 0x4e, 0x14, 0x7a, 0x01, 0x53, 0x82, 0x9f, 0xe2, 0x90, - 0x6d, 0x0e, 0xb0, 0xba, 0x00, 0xbc, 0xdd, 0x67, 0x2f, 0x01, 0xeb, 0x3b, 0x06, 0xa0, 0x1b, 0xc4, - 0x27, 0x8c, 0xd8, 0x38, 0xe8, 0x90, 0x53, 0xbf, 0x11, 0xcc, 0x4c, 0xcd, 0xe2, 0xf0, 0x65, 0x5d, - 0x10, 0x32, 0x7e, 0x76, 0x12, 0xb7, 0x7f, 0xf2, 0xa2, 0x13, 0x24, 0x68, 0x2b, 0xf0, 0x07, 0xd6, - 0x57, 0x61, 0x2e, 0xc7, 0xd8, 0x69, 0x6f, 0x39, 0xfe, 0xd0, 0x80, 0x8b, 0xdb, 0x31, 0x89, 0x70, - 0x4c, 0x6e, 0xf9, 0x98, 0x76, 0xb9, 0x07, 0x6e, 0x85, 0xca, 0xa0, 0x9f, 0x9f, 0x1c, 0x96, 0xa1, - 0x32, 0x74, 0x40, 0x2e, 0x53, 0x75, 0x34, 0xce, 0xac, 0xca, 0x13, 0xf9, 0x55, 0xd9, 0x87, 0x4b, - 0x47, 0xb0, 0x7e, 0xda, 0x92, 0xfa, 0xb1, 0x01, 0xcb, 0xa7, 0x23, 0xa2, 0xcc, 0x88, 0x0a, 0xf9, - 0x9b, 0xe0, 0x23, 0xbd, 0x7e, 0x46, 0x78, 0xa5, 0x47, 0x0a, 0x6f, 0x22, 0x2f, 0xbc, 0xdc, 0xa1, - 0x67, 0x32, 0x7f, 0xe8, 0xb1, 0x08, 0xac, 0x3c, 0x0f, 0xc1, 0x7d, 0x05, 0x66, 0x6c, 0x7c, 0x70, - 0x6a, 0x59, 0x0b, 0x35, 0x28, 0xb8, 0xbb, 0x42, 0x38, 0x53, 0x76, 0xc1, 0xdd, 0xb5, 0xfe, 0xbf, - 0x01, 0x35, 0xdd, 0xfe, 0x29, 0xb3, 0x7e, 0x82, 0xdc, 0x04, 0xab, 0x0d, 0xc8, 0xc6, 0x07, 0xa7, - 0xbd, 0x35, 0x1d, 0x1e, 0x74, 0x08, 0x73, 0xb9, 0x5e, 0x9e, 0xf5, 0x96, 0xd4, 0xfa, 0x4d, 0x43, - 0x68, 0x71, 0xbb, 0x7f, 0x4a, 0x5a, 0x1c, 0x2f, 0x59, 0x39, 0xcc, 0x92, 0x1e, 0x26, 0xaf, 0x97, - 0x5e, 0x43, 0xf1, 0xbf, 0x7c, 0x12, 0xec, 0x86, 0xb1, 0xe3, 0x62, 0xaa, 0x62, 0x5f, 0x93, 0xbb, - 0x61, 0xbc, 0x81, 0x29, 0x3f, 0x96, 0x69, 0xfe, 0x4e, 0xdb, 0x80, 0xff, 0xc8, 0x48, 0x75, 0x7a, - 0x42, 0x01, 0x1c, 0x73, 0xe3, 0x3f, 0xa4, 0x66, 0x34, 0x2f, 0xc7, 0x5f, 0x4a, 0x6e, 0x24, 0x86, - 0x65, 0x30, 0x91, 0x95, 0x01, 0xb7, 0x1c, 0xc6, 0x7c, 0x79, 0xdb, 0x50, 0xb2, 0xc5, 0x7f, 0xbe, - 0x80, 0xe4, 0x78, 0x3f, 0x6d, 0xe1, 0x0c, 0xc0, 0xb4, 0xf1, 0x81, 0x5a, 0xa3, 0x9e, 0xc5, 0x04, - 0xcf, 0x0e, 0xb7, 0x94, 0x53, 0xf9, 0x7f, 0x87, 0xd9, 0x4c, 0xd7, 0xa7, 0x3d, 0xb0, 0xff, 0x65, - 0xc0, 0x82, 0x96, 0xdc, 0xc9, 0x87, 0x77, 0x8c, 0xc9, 0xfc, 0xe8, 0x01, 0x62, 0x58, 0x1c, 0xe6, - 0xe0, 0xb4, 0x47, 0xf9, 0x23, 0xe9, 0x3d, 0x9f, 0x63, 0x1e, 0x54, 0x36, 0xdb, 0xa9, 0x94, 0xcf, - 0x76, 0x92, 0x82, 0x99, 0x48, 0x04, 0xf3, 0xe4, 0xd9, 0x4f, 0x56, 0x07, 0xea, 0xc9, 0x70, 0x4e, - 0x2e, 0xab, 0x4b, 0x50, 0xdc, 0xdb, 0x7f, 0xe4, 0x64, 0xe5, 0x38, 0xeb, 0x1b, 0xd2, 0x3c, 0x7e, - 0x21, 0xbb, 0xc6, 0x21, 0x37, 0xa9, 0xec, 0xe4, 0x99, 0xee, 0x13, 0x7f, 0x62, 0xa4, 0x7e, 0xe4, - 0xa4, 0xc6, 0xf2, 0x49, 0x98, 0x8c, 0x39, 0x77, 0x63, 0xef, 0xde, 0x24, 0xdf, 0x8a, 0x80, 0x9f, - 0x0c, 0x08, 0x76, 0xbb, 0x4e, 0xd6, 0x7e, 0xa6, 0x38, 0xe4, 0xde, 0xa9, 0xd9, 0x90, 0xe5, 0xc3, - 0x7c, 0x7e, 0x44, 0xcf, 0xd4, 0x5e, 0xfe, 0x27, 0x2c, 0xbf, 0x1b, 0xf0, 0xb3, 0xcd, 0x0d, 0x42, - 0x59, 0x1c, 0x0e, 0x9e, 0xaf, 0xc9, 0xf0, 0xbd, 0xde, 0xb8, 0xee, 0x4f, 0xdb, 0x4c, 0xbe, 0x06, - 0x67, 0x6d, 0xd2, 0xf1, 0x28, 0x23, 0x31, 0x3f, 0xbe, 0x6e, 0xed, 0x50, 0x12, 0xef, 0x93, 0xf8, - 0x24, 0xe3, 0x5c, 0x80, 0xc9, 0x1e, 0x3e, 0x4c, 0x13, 0x9a, 0x26, 0x7a, 0xf8, 0xb0, 0x45, 0xad, - 0xd7, 0xe1, 0xdc, 0xf8, 0x1e, 0xd4, 0x50, 0x12, 0xbe, 0x8c, 0xfc, 0x1e, 0xb4, 0x21, 0x2e, 0x28, - 0x9e, 0x11, 0x53, 0x7d, 0x58, 0x1e, 0xd3, 0xfc, 0x51, 0x1c, 0x71, 0x13, 0xf6, 0xa8, 0xe3, 0xfa, - 0x04, 0xcb, 0x53, 0x40, 0xc5, 0x2e, 0x7b, 0x54, 0xc4, 0x59, 0x8f, 0x1d, 0x3e, 0xb1, 0xbe, 0x0a, - 0xcb, 0x36, 0xe9, 0x85, 0x32, 0x54, 0xf0, 0x0c, 0x86, 0xb5, 0x0e, 0x2b, 0xe3, 0xda, 0x3f, 0x52, - 0xd2, 0xbf, 0x6a, 0xc0, 0xd2, 0x76, 0x77, 0x40, 0x3d, 0x17, 0xfb, 0x4f, 0x13, 0x21, 0x1b, 0xcf, - 0xd2, 0x09, 0xe2, 0x62, 0xd6, 0xfb, 0xd0, 0x18, 0x65, 0xe8, 0x48, 0xdd, 0x24, 0x0a, 0x28, 0x3c, - 0x46, 0x01, 0xdf, 0x33, 0x00, 0x35, 0x23, 0xdf, 0x63, 0xb6, 0x98, 0x19, 0x27, 0x8b, 0x04, 0x4e, - 0x51, 0xde, 0x42, 0x3a, 0x9d, 0x65, 0xea, 0x89, 0x00, 0xf2, 0x41, 0x9d, 0x07, 0x48, 0x08, 0x74, - 0xe8, 0x74, 0x4a, 0x63, 0x29, 0x5a, 0x81, 0x29, 0x8f, 0x3a, 0x31, 0x3e, 0x70, 0xf6, 0xf6, 0xb5, - 0x2f, 0xf4, 0xa8, 0x8d, 0x0f, 0xee, 0xee, 0x5b, 0x3f, 0x34, 0x60, 0x2e, 0xc7, 0xde, 0xc9, 0xa7, - 0xfb, 0x4b, 0x50, 0xf2, 0xc9, 0x2e, 0x53, 0x91, 0x94, 0xda, 0x9a, 0xca, 0x80, 0x97, 0x0d, 0x0b, - 0x8e, 0x05, 0x1e, 0x5d, 0x81, 0x89, 0xd8, 0xeb, 0x74, 0x99, 0x8a, 0x20, 0x8d, 0x23, 0x94, 0x04, - 0xe8, 0x0a, 0x77, 0xcc, 0x1d, 0x71, 0x3b, 0x23, 0x43, 0x65, 0x43, 0xb4, 0xb6, 0x46, 0x5b, 0xff, - 0xc7, 0x00, 0xd3, 0x26, 0xb8, 0xbd, 0x19, 0xb4, 0xc9, 0xe1, 0x49, 0x64, 0x9c, 0x3d, 0x20, 0x17, - 0xf2, 0x07, 0xe4, 0x74, 0x4d, 0x2a, 0x3e, 0x66, 0x4d, 0xb2, 0x7e, 0xcd, 0x80, 0xd9, 0x0c, 0x1b, - 0x27, 0x97, 0xe5, 0x79, 0x80, 0x98, 0xe0, 0xb6, 0x23, 0xb3, 0x3a, 0x55, 0xd8, 0x2b, 0xd6, 0x2d, - 0x73, 0x96, 0x64, 0x3a, 0xd5, 0x48, 0xd6, 0x74, 0x62, 0x7e, 0x8a, 0xc0, 0x6a, 0xc2, 0xdc, 0xfd, - 0x7d, 0xd7, 0xbd, 0x4d, 0xd8, 0xf5, 0x81, 0xc8, 0xf3, 0x39, 0x85, 0xfd, 0xb7, 0xf5, 0xff, 0x0c, - 0x98, 0xcf, 0xb7, 0x7a, 0xda, 0xc7, 0xea, 0xcb, 0x50, 0x12, 0xd7, 0xe3, 0xc3, 0xe3, 0xe3, 0xbd, - 0x8a, 0xf1, 0x09, 0xb4, 0xf5, 0x35, 0x58, 0x4a, 0xf8, 0x50, 0x89, 0x12, 0xa7, 0xab, 0x7d, 0x3e, - 0x7f, 0x1b, 0xa3, 0x5d, 0x9c, 0xf6, 0x70, 0x95, 0x88, 0x8b, 0xe9, 0x11, 0x47, 0x0b, 0xa0, 0x74, - 0xb4, 0x00, 0x7e, 0x6f, 0x0a, 0xca, 0x1b, 0xe9, 0xb2, 0xaf, 0xb8, 0xf1, 0xda, 0x82, 0x95, 0x92, - 0x5d, 0x91, 0x80, 0xcd, 0x36, 0x7a, 0x33, 0x65, 0x35, 0x0a, 0xdd, 0xae, 0x9a, 0xa5, 0x73, 0xf9, - 0x09, 0x75, 0x93, 0xa3, 0x12, 0x7e, 0x79, 0x01, 0x5d, 0x84, 0x52, 0x44, 0x88, 0x4e, 0xcf, 0x9f, - 0xd6, 0xf4, 0xdb, 0x84, 0xc4, 0xb6, 0xc0, 0x88, 0x23, 0x25, 0x89, 0x7b, 0xea, 0x08, 0x2e, 0xfe, - 0xa3, 0xab, 0x50, 0x89, 0x62, 0x2f, 0x8c, 0x3d, 0x36, 0x10, 0x7b, 0xaa, 0xda, 0xfa, 0x5c, 0x46, - 0xfa, 0xbd, 0x1e, 0x0e, 0xda, 0xdb, 0xb1, 0x67, 0x27, 0x44, 0xe8, 0x6d, 0xa8, 0x7b, 0x34, 0xf4, - 0x71, 0x26, 0x0f, 0xbb, 0x3c, 0x94, 0x87, 0xbd, 0xa9, 0xf1, 0x2a, 0x0f, 0xdb, 0xcb, 0x95, 0xd1, - 0x27, 0xa0, 0x26, 0x42, 0x2e, 0x9e, 0xef, 0x3b, 0x2e, 0x76, 0xbb, 0x44, 0x65, 0xa5, 0x4c, 0x07, - 0x21, 0xbb, 0xe5, 0xf9, 0xfe, 0x06, 0x87, 0x09, 0x4d, 0x0f, 0x02, 0xd7, 0xf1, 0xc3, 0x8e, 0x4a, - 0x40, 0x29, 0xf3, 0xf2, 0xbd, 0xb0, 0x83, 0xae, 0x80, 0x19, 0x13, 0x37, 0x8c, 0xdb, 0x22, 0xe9, - 0xd4, 0xa1, 0x0c, 0x33, 0x95, 0x38, 0x5a, 0x93, 0xf0, 0x96, 0xd7, 0x23, 0x4d, 0x86, 0x59, 0x86, - 0x92, 0xba, 0x38, 0x90, 0x94, 0xd5, 0x2c, 0x25, 0x5f, 0x44, 0x04, 0xe5, 0x25, 0x2e, 0xf5, 0xc8, - 0xf7, 0x5c, 0xec, 0xf0, 0xd9, 0xab, 0xb2, 0x47, 0xab, 0x0a, 0xc6, 0x5d, 0x05, 0xba, 0x0c, 0x35, - 0x99, 0x37, 0x43, 0xda, 0x8e, 0x5c, 0x52, 0x66, 0xc4, 0xd9, 0x7c, 0x46, 0x43, 0x45, 0xa2, 0x04, - 0xfa, 0x3c, 0x2c, 0xf3, 0xc5, 0x8e, 0x1c, 0x12, 0xb7, 0x2f, 0x84, 0xd4, 0xee, 0xc7, 0x52, 0x5a, - 0x3d, 0x9d, 0xd8, 0xbe, 0xd8, 0xc3, 0x87, 0x37, 0x35, 0xfe, 0x86, 0x42, 0xdf, 0x17, 0x09, 0x1a, - 0x38, 0x8a, 0x7c, 0x8f, 0x68, 0x7f, 0x52, 0x97, 0xf7, 0x17, 0x0a, 0x28, 0x5d, 0xca, 0x12, 0x94, - 0x19, 0xa6, 0x7b, 0xdc, 0x74, 0x4c, 0x99, 0x9f, 0xc4, 0x8b, 0x9b, 0x6d, 0xb1, 0xb8, 0x30, 0xec, - 0x13, 0x39, 0x80, 0x59, 0x99, 0xf8, 0x29, 0x20, 0x82, 0xfd, 0x4f, 0x03, 0x4a, 0xde, 0x21, 0x75, - 0xe2, 0xb0, 0x1f, 0x39, 0x0c, 0x77, 0x1a, 0x48, 0x18, 0xb2, 0xa9, 0x31, 0xb7, 0x39, 0xa2, 0x85, - 0x3b, 0xe8, 0x73, 0x30, 0xd3, 0xf6, 0xe8, 0x9e, 0xb3, 0xdb, 0xf7, 0x7d, 0x27, 0x8c, 0x58, 0x63, - 0x4e, 0x28, 0x79, 0x3e, 0x51, 0xf2, 0x0d, 0x8f, 0xee, 0xdd, 0xea, 0xfb, 0xfe, 0x56, 0xc4, 0xec, - 0x6a, 0x3b, 0x2d, 0x70, 0x99, 0xf3, 0x45, 0x8c, 0xb0, 0x78, 0xe0, 0xc4, 0x72, 0x8a, 0x37, 0xe6, - 0xa5, 0xcc, 0x3d, 0x6a, 0x73, 0xb0, 0x9e, 0xf8, 0xaf, 0x43, 0x15, 0x47, 0x5e, 0x72, 0x0d, 0xb3, - 0x30, 0x64, 0x7e, 0xd7, 0xb6, 0x37, 0x75, 0x1c, 0x13, 0x70, 0xe4, 0xa5, 0xd9, 0x3b, 0x75, 0x19, - 0xf5, 0x64, 0x89, 0x1e, 0x16, 0x85, 0x1e, 0x6a, 0x09, 0x58, 0x2a, 0xe2, 0x0b, 0x20, 0xdf, 0x61, - 0x39, 0xda, 0xbb, 0x2c, 0x89, 0x99, 0xb1, 0xb0, 0xa6, 0x5f, 0x67, 0xb5, 0xf8, 0xaf, 0x76, 0x31, - 0xd3, 0x2c, 0x53, 0x92, 0xba, 0x16, 0x5c, 0x3a, 0x52, 0x30, 0x8d, 0x86, 0xf0, 0x02, 0x33, 0x0a, - 0xda, 0x14, 0x40, 0x2e, 0x72, 0xf1, 0x0a, 0x43, 0x92, 0x2c, 0x4b, 0xef, 0xcf, 0x0e, 0x03, 0x85, - 0x5e, 0x85, 0xd9, 0x9d, 0x3e, 0x1d, 0x38, 0xac, 0x1b, 0x13, 0xda, 0x0d, 0xfd, 0x36, 0x37, 0x81, - 0xb3, 0x62, 0x3f, 0x53, 0xe7, 0x88, 0x96, 0x86, 0xdf, 0xa7, 0xe8, 0x7d, 0x68, 0x24, 0xea, 0xe1, - 0x0c, 0xc7, 0xa1, 0x9f, 0x30, 0x7e, 0x4e, 0x30, 0x7e, 0x21, 0x91, 0x8c, 0xad, 0x08, 0x37, 0x24, - 0x9d, 0x1e, 0x42, 0xf2, 0xce, 0x2c, 0x0f, 0x47, 0x17, 0xa0, 0xca, 0xf7, 0x1b, 0x11, 0x97, 0x85, - 0xd7, 0x6e, 0x5c, 0x94, 0xaf, 0x88, 0x34, 0x68, 0xb3, 0xfd, 0x4e, 0xa9, 0x52, 0x32, 0x27, 0xde, - 0x29, 0x55, 0x56, 0xcc, 0xb3, 0xdc, 0xe4, 0x71, 0xdb, 0xf9, 0xa0, 0x1f, 0xc6, 0xfd, 0x9e, 0xf5, - 0xa1, 0x01, 0x8b, 0xe3, 0x3b, 0x43, 0x6b, 0x30, 0x37, 0x64, 0x4e, 0x01, 0xee, 0x11, 0xb5, 0xf7, - 0x9a, 0xcd, 0xd9, 0xd3, 0x03, 0xdc, 0x23, 0xe8, 0xb3, 0x50, 0x8e, 0x48, 0x80, 0x7d, 0x36, 0x50, - 0x1e, 0xed, 0xfc, 0xda, 0xc8, 0xb3, 0xb8, 0x8d, 0x30, 0xa0, 0xfd, 0x5e, 0x24, 0x92, 0x39, 0x34, - 0xb5, 0xf5, 0xdd, 0x22, 0x54, 0xf4, 0x62, 0x39, 0x92, 0x43, 0x69, 0x8c, 0xe6, 0x50, 0x5e, 0x82, - 0x69, 0x91, 0xb4, 0x95, 0x0f, 0xcb, 0x57, 0x39, 0x4c, 0x9b, 0xd0, 0xa8, 0x13, 0xcf, 0x26, 0x95, - 0x95, 0xf2, 0x49, 0x65, 0xd9, 0x97, 0x36, 0x13, 0xf9, 0x97, 0x36, 0x57, 0x54, 0x7e, 0x98, 0xc8, - 0xdf, 0x96, 0xde, 0xb3, 0x9a, 0x28, 0x69, 0x2b, 0x92, 0x99, 0x61, 0xad, 0x41, 0x44, 0xd0, 0xa7, - 0x00, 0x09, 0xca, 0x7c, 0xea, 0x6c, 0x59, 0x34, 0x57, 0xe7, 0x98, 0xcc, 0xcb, 0x8e, 0xb1, 0x0f, - 0x6f, 0x2a, 0x63, 0x1f, 0xde, 0x8c, 0xa4, 0xc6, 0x4f, 0x8d, 0xa6, 0xc6, 0x0f, 0x3d, 0xce, 0x81, - 0xd1, 0xc7, 0x39, 0x5f, 0x80, 0x95, 0xc4, 0x47, 0xb1, 0xd0, 0xf1, 0x31, 0x65, 0x9a, 0xc9, 0x9e, - 0xce, 0xb6, 0x5f, 0xd4, 0x14, 0xad, 0xf0, 0x1e, 0xa6, 0x4c, 0xf2, 0x7a, 0x9f, 0x5a, 0x7f, 0x5b, - 0x82, 0x8a, 0xbe, 0x81, 0xcb, 0xec, 0x76, 0x8c, 0xc7, 0xec, 0x76, 0xd0, 0x39, 0xbe, 0x04, 0xb2, - 0x78, 0x80, 0x77, 0x7c, 0xa2, 0x56, 0xd8, 0x14, 0xc0, 0xd7, 0x5e, 0xbc, 0x13, 0xc6, 0x4c, 0x05, - 0xd6, 0x64, 0x01, 0xad, 0x43, 0x45, 0xa7, 0xab, 0x8f, 0x5c, 0x2d, 0xbf, 0x17, 0x7b, 0x8c, 0xe8, - 0x7c, 0x75, 0x3b, 0xa1, 0xe3, 0x4e, 0x00, 0xfb, 0xdc, 0xa4, 0x07, 0x2a, 0xcb, 0x72, 0x42, 0x39, - 0x81, 0xc4, 0xcb, 0x48, 0xac, 0x48, 0xb4, 0xb4, 0xa7, 0x71, 0xa6, 0x84, 0x5e, 0x81, 0x8a, 0x7e, - 0xd8, 0x39, 0x92, 0xfd, 0x77, 0x43, 0x21, 0xec, 0x84, 0x04, 0xdd, 0x80, 0xd9, 0x44, 0x11, 0x0e, - 0x39, 0x8c, 0xbc, 0x98, 0xb4, 0x55, 0xfe, 0x5f, 0x23, 0xb7, 0xa6, 0x72, 0xb5, 0xdc, 0x94, 0x78, - 0xbb, 0xee, 0xe6, 0x01, 0xdc, 0xf1, 0x72, 0x73, 0x4b, 0x2f, 0x25, 0x2a, 0xa2, 0x85, 0xf9, 0xec, - 0xdd, 0xf3, 0x03, 0x75, 0x41, 0x61, 0x57, 0x59, 0x5a, 0x40, 0x77, 0x60, 0x2e, 0xed, 0x9f, 0x85, - 0x5c, 0x91, 0x71, 0x47, 0x3e, 0xba, 0xa8, 0xae, 0x2f, 0x8f, 0x70, 0xd0, 0x0a, 0xc3, 0x7b, 0x9c, - 0xc0, 0x36, 0xdd, 0x21, 0x08, 0xda, 0x00, 0x33, 0x7d, 0x6b, 0xb5, 0x8b, 0x3d, 0x9f, 0xb4, 0xc5, - 0x02, 0x9b, 0x1d, 0x48, 0xf2, 0xd8, 0xea, 0x96, 0xc0, 0xdb, 0xe9, 0xeb, 0x2c, 0x09, 0xe0, 0x8d, - 0xe8, 0xa9, 0xda, 0xf3, 0x68, 0x0f, 0x33, 0xb7, 0x2b, 0x6c, 0x29, 0xdb, 0x88, 0x4a, 0x25, 0xbd, - 0xaf, 0xf0, 0x76, 0x3d, 0xca, 0x03, 0xac, 0xbf, 0x2a, 0xc0, 0x4c, 0x4e, 0xb5, 0xb9, 0x1d, 0xa0, - 0x91, 0xdf, 0xff, 0x5f, 0x80, 0x6a, 0xf6, 0x39, 0x83, 0x4a, 0xc4, 0x70, 0xd3, 0x47, 0x0c, 0xa3, - 0xf3, 0xbe, 0x01, 0x65, 0x9d, 0xe5, 0x2a, 0xef, 0xe1, 0x74, 0x91, 0x2f, 0x97, 0x49, 0x63, 0xe9, - 0xfc, 0x92, 0x0e, 0xc0, 0xd4, 0x98, 0x64, 0x92, 0xbd, 0x01, 0x93, 0x31, 0xc1, 0x34, 0x0c, 0x94, - 0x1b, 0x38, 0x3f, 0xde, 0x30, 0xd7, 0x6c, 0x41, 0x64, 0x2b, 0x62, 0xeb, 0x00, 0x26, 0x25, 0x04, - 0x55, 0xa1, 0xfc, 0x6e, 0xb0, 0x17, 0x84, 0x07, 0x81, 0x79, 0x06, 0xd5, 0x00, 0xb6, 0x22, 0xa6, - 0xf2, 0x72, 0x4d, 0x03, 0xcd, 0x83, 0x99, 0x4d, 0x9d, 0xe7, 0xd3, 0xc4, 0x2c, 0x20, 0x04, 0xb5, - 0x26, 0xf1, 0x77, 0xed, 0xd0, 0xf7, 0x49, 0xfb, 0x3a, 0x76, 0xf7, 0xcc, 0x22, 0x9a, 0x81, 0x29, - 0xdb, 0x95, 0x49, 0xb9, 0xd4, 0x2c, 0xa1, 0x25, 0x98, 0xbb, 0x87, 0xbf, 0x3e, 0x78, 0x37, 0xf0, - 0x3e, 0xe8, 0x93, 0x80, 0x50, 0x2a, 0x50, 0xe6, 0x84, 0x75, 0x11, 0xa6, 0xb3, 0x86, 0xaf, 0x25, - 0x63, 0xa4, 0x27, 0x87, 0xdf, 0x32, 0xa0, 0xa2, 0x8d, 0x3c, 0x9b, 0x13, 0x6d, 0xe4, 0x72, 0xa2, - 0xb5, 0xdf, 0x4c, 0x8f, 0x1d, 0x82, 0x90, 0x9f, 0x75, 0x57, 0x61, 0x56, 0x4f, 0x0d, 0x8e, 0x76, - 0xba, 0x98, 0x76, 0x55, 0xaa, 0x45, 0x5d, 0x23, 0xee, 0x92, 0xc1, 0x1d, 0x4c, 0xbb, 0xe8, 0x0d, - 0x00, 0xf1, 0x88, 0xc8, 0xed, 0x62, 0x2f, 0x50, 0x47, 0xc8, 0xc5, 0xb5, 0xe4, 0x55, 0xf5, 0x7b, - 0xd8, 0x63, 0xb7, 0xc2, 0xf8, 0x66, 0xc0, 0x37, 0x0f, 0x53, 0x9c, 0x72, 0x83, 0x13, 0x5a, 0xdf, - 0x32, 0xa0, 0x3e, 0x34, 0xa1, 0x8e, 0xb2, 0x8f, 0x35, 0x98, 0xc3, 0x8c, 0x91, 0x5e, 0xc4, 0x77, - 0x0e, 0xa9, 0x4e, 0xa5, 0x9d, 0xcc, 0x26, 0xa8, 0x44, 0xa9, 0xa3, 0xe6, 0x32, 0xe2, 0x6f, 0x4b, - 0x23, 0xfe, 0xd6, 0xda, 0x84, 0x6a, 0x66, 0x8a, 0x3e, 0xc6, 0x5e, 0x8f, 0x4c, 0x45, 0xb7, 0xae, - 0x82, 0x39, 0x3c, 0x5b, 0xf3, 0xb7, 0xc0, 0xc6, 0xd0, 0x2d, 0xf0, 0x9f, 0x1b, 0x50, 0x1f, 0x9a, - 0x98, 0x47, 0x31, 0x30, 0x7a, 0x5f, 0xf3, 0x19, 0x98, 0x4a, 0xe6, 0xb1, 0x18, 0x78, 0x6d, 0x1d, - 0x8d, 0x4e, 0x79, 0x3b, 0x25, 0xe2, 0x6a, 0x16, 0x8e, 0xd5, 0x0b, 0x3a, 0xc3, 0x79, 0xf1, 0x75, - 0x8d, 0xd0, 0x99, 0xf1, 0x9f, 0x06, 0x94, 0xd0, 0x8e, 0xcc, 0x29, 0x8d, 0x49, 0x04, 0x79, 0x0d, - 0xea, 0x43, 0xfe, 0x21, 0x9f, 0x90, 0x6d, 0x3c, 0x36, 0x21, 0xdb, 0xfa, 0x0b, 0x03, 0x80, 0x1f, - 0x06, 0x64, 0x7e, 0x0b, 0xfa, 0x24, 0xcc, 0x0a, 0x33, 0x3b, 0xc0, 0xbe, 0x2f, 0xcf, 0x0e, 0x3d, - 0x2d, 0x93, 0x1a, 0x47, 0xbc, 0x87, 0x7d, 0x9f, 0x93, 0xdf, 0xa7, 0xe8, 0x2a, 0xcc, 0x47, 0x71, - 0xe8, 0x12, 0x4a, 0xf3, 0xd4, 0xca, 0x58, 0x14, 0x2e, 0x53, 0x61, 0x0d, 0xe6, 0xf7, 0xf6, 0xc5, - 0xd6, 0x3b, 0x5f, 0x41, 0x5a, 0xbc, 0xb9, 0xb7, 0xcf, 0x37, 0xe1, 0x19, 0xfa, 0x75, 0x58, 0x64, - 0x21, 0xc3, 0xbe, 0x13, 0x47, 0x6e, 0xa6, 0x46, 0xa0, 0x85, 0x87, 0x04, 0xd6, 0x8e, 0x5c, 0x5d, - 0xe7, 0x01, 0xb5, 0xbe, 0x59, 0x80, 0xe9, 0x74, 0x38, 0x0f, 0xd7, 0xc7, 0x0c, 0x28, 0x18, 0x3b, - 0xa0, 0x07, 0x8f, 0x18, 0x50, 0xf0, 0xa8, 0x01, 0x3d, 0xa0, 0xe8, 0x2d, 0x38, 0xa7, 0x2b, 0xd0, - 0x3e, 0x8d, 0x48, 0xd0, 0xce, 0x57, 0x94, 0x03, 0x6b, 0x28, 0x9a, 0xa6, 0x24, 0xc9, 0xd4, 0x1f, - 0x2b, 0x90, 0x64, 0x78, 0x43, 0x02, 0x79, 0x70, 0x94, 0x40, 0x26, 0x1e, 0x29, 0x90, 0xaf, 0x40, - 0x85, 0x9f, 0xe0, 0xc4, 0xd6, 0x70, 0x1e, 0x26, 0x04, 0x85, 0x18, 0x7f, 0xd1, 0x96, 0x05, 0xbe, - 0xcf, 0x50, 0x1c, 0x92, 0xb6, 0x18, 0x6b, 0xd1, 0x4e, 0x01, 0x49, 0xf4, 0x66, 0x67, 0xc0, 0x88, - 0x1c, 0x51, 0x51, 0x46, 0x6f, 0xae, 0x73, 0x80, 0xf5, 0xbf, 0x0d, 0x00, 0xde, 0xbe, 0x32, 0x9f, - 0x97, 0x61, 0x42, 0xbc, 0x84, 0x1d, 0xb1, 0x3c, 0xcd, 0x83, 0x2d, 0xf1, 0xe8, 0x32, 0x94, 0x92, - 0x17, 0x3e, 0x63, 0xe9, 0x04, 0x9a, 0x93, 0xb5, 0x31, 0xc3, 0x23, 0xa1, 0x93, 0x94, 0x8c, 0xa3, - 0xad, 0x7f, 0x9e, 0x90, 0x6f, 0xfc, 0x13, 0xad, 0xbf, 0x02, 0x28, 0x19, 0x82, 0xde, 0xe6, 0x6a, - 0xb5, 0xcf, 0x26, 0x18, 0xb5, 0xd9, 0xa5, 0xe8, 0x4d, 0x58, 0x1a, 0x25, 0xcf, 0xbe, 0x1c, 0x5f, - 0x18, 0xa9, 0x23, 0x76, 0xb7, 0x97, 0xa1, 0x26, 0x15, 0x92, 0x74, 0xa1, 0x72, 0xa8, 0x05, 0x34, - 0x69, 0xfe, 0xcb, 0x70, 0x2e, 0xe6, 0xe7, 0xad, 0xf6, 0x8e, 0xd3, 0x16, 0xb7, 0x56, 0x0e, 0xdd, - 0xf3, 0xa2, 0x48, 0xb8, 0xd8, 0x7e, 0xc0, 0x94, 0x9d, 0x2c, 0x2b, 0x1a, 0x79, 0xb1, 0xd5, 0x94, - 0x14, 0x1b, 0x9c, 0x80, 0x1f, 0x98, 0x75, 0x03, 0x7c, 0x9d, 0xc8, 0xd7, 0x96, 0xd6, 0xb2, 0xa8, - 0x08, 0xee, 0x92, 0x41, 0xae, 0xea, 0xdb, 0x70, 0x5e, 0x57, 0xdd, 0x11, 0x8e, 0x41, 0xc4, 0x13, - 0x9c, 0x2e, 0x5f, 0x4a, 0x44, 0xf5, 0x89, 0x5c, 0xe7, 0xd7, 0x39, 0x8d, 0x08, 0x2f, 0xdc, 0xf1, - 0x98, 0x6c, 0xe1, 0xb3, 0xd0, 0xc8, 0xb7, 0x20, 0xec, 0x41, 0x56, 0x96, 0x39, 0x36, 0x0b, 0xd9, - 0xca, 0xdc, 0x66, 0x65, 0xc5, 0x37, 0x60, 0x69, 0x4c, 0x45, 0x6e, 0x48, 0x6a, 0x5b, 0x3f, 0x3f, - 0x5c, 0x8f, 0xdb, 0xd4, 0x23, 0xfa, 0x0b, 0x70, 0x10, 0xea, 0xcd, 0xfb, 0x48, 0x7f, 0x0f, 0x38, - 0x92, 0xfb, 0xce, 0x0e, 0x61, 0x0e, 0x0d, 0x70, 0x44, 0xbb, 0x21, 0x53, 0x55, 0xe4, 0xb3, 0x7d, - 0xb3, 0x43, 0x58, 0x53, 0x21, 0x24, 0x35, 0x17, 0x4c, 0x12, 0x96, 0x74, 0xa2, 0x38, 0x8c, 0x42, - 0x4a, 0x1c, 0xe1, 0x2b, 0x64, 0xc5, 0xaa, 0x12, 0x8c, 0x8e, 0x54, 0x6e, 0x4b, 0x12, 0xbe, 0xd2, - 0x8e, 0x6b, 0x81, 0x6f, 0x78, 0xbc, 0xb8, 0x97, 0x6d, 0x61, 0x7a, 0xa8, 0x85, 0x0d, 0x49, 0x32, - 0xda, 0x42, 0x14, 0x86, 0xbe, 0x43, 0xdd, 0x2e, 0x69, 0xf7, 0xfd, 0x1c, 0x0f, 0x33, 0x69, 0x0b, - 0xdb, 0x61, 0xe8, 0x37, 0x15, 0x49, 0xd2, 0x82, 0xf5, 0x7f, 0x0d, 0xa8, 0x66, 0xb2, 0x15, 0xd1, - 0xeb, 0x50, 0x15, 0x3e, 0x41, 0x26, 0x37, 0xaa, 0x69, 0x98, 0x06, 0x0c, 0x52, 0xd7, 0x68, 0x03, - 0x4b, 0xbd, 0xfe, 0xeb, 0x50, 0x15, 0xd1, 0x1f, 0x55, 0xab, 0x30, 0x54, 0x2b, 0x9d, 0x5a, 0x36, - 0xd0, 0xe4, 0xbf, 0x4c, 0xa7, 0x96, 0x27, 0x63, 0xeb, 0x5f, 0x0c, 0x98, 0xc9, 0x65, 0x4d, 0x9e, - 0x90, 0x93, 0x2f, 0x42, 0x2d, 0xc3, 0x89, 0xb3, 0xbf, 0xae, 0x98, 0x59, 0x18, 0xc3, 0xcc, 0xc3, - 0x75, 0x7b, 0x9a, 0x66, 0x67, 0xfd, 0x67, 0x61, 0x5a, 0x78, 0x17, 0xdd, 0x67, 0x71, 0xe8, 0x5c, - 0x20, 0x36, 0x9a, 0xaa, 0xd3, 0xea, 0x41, 0x5a, 0xe0, 0xbd, 0x66, 0x78, 0x4d, 0xf3, 0x72, 0x17, - 0xc6, 0xb0, 0xcb, 0x7b, 0x65, 0x99, 0x92, 0xf5, 0x61, 0x19, 0xaa, 0x99, 0x96, 0xd1, 0x6b, 0xb0, - 0x48, 0x59, 0x18, 0x13, 0x67, 0x87, 0x2f, 0xc8, 0x59, 0x6d, 0x4a, 0xff, 0x33, 0x27, 0xb0, 0xe2, - 0x22, 0x36, 0xb5, 0x84, 0x37, 0x84, 0x07, 0x12, 0x26, 0x48, 0xe5, 0x3a, 0x92, 0xd4, 0x92, 0x2e, - 0x65, 0x5e, 0xa1, 0x9b, 0x62, 0x09, 0xd1, 0xd5, 0x56, 0x61, 0x36, 0xe2, 0x5e, 0x46, 0xbc, 0x3e, - 0xef, 0xa8, 0x0a, 0x6a, 0x07, 0xa9, 0x10, 0xf7, 0xc2, 0x8e, 0xa4, 0xdd, 0x80, 0x0b, 0x31, 0xde, - 0x65, 0x4e, 0x7b, 0xc7, 0x91, 0x52, 0xf2, 0x09, 0x6e, 0x93, 0x38, 0xdb, 0x95, 0x74, 0x25, 0x2b, - 0x9c, 0xec, 0xc6, 0x8e, 0x18, 0xd3, 0x3d, 0x41, 0x93, 0x76, 0xb8, 0x0e, 0x8b, 0xba, 0x11, 0x1d, - 0x7b, 0x54, 0x75, 0xd5, 0x12, 0x24, 0xeb, 0x36, 0x65, 0x1c, 0x52, 0xd6, 0x79, 0x0b, 0xce, 0xe5, - 0x3b, 0xee, 0x91, 0x1e, 0xe3, 0x87, 0x58, 0x55, 0x53, 0x3a, 0x91, 0x46, 0xa6, 0xd7, 0xfb, 0x8a, - 0x40, 0xd6, 0xbf, 0x02, 0xea, 0xfc, 0x95, 0xe9, 0x4d, 0x3a, 0x10, 0x15, 0xcf, 0x4a, 0x7a, 0x7a, - 0x0d, 0x16, 0x71, 0x14, 0xf9, 0x83, 0x51, 0xd1, 0x4b, 0x37, 0x3e, 0x27, 0xb0, 0x43, 0xa2, 0x7f, - 0x09, 0xea, 0xb2, 0x52, 0xda, 0xfa, 0x94, 0x7a, 0x2c, 0xca, 0xc1, 0xa3, 0x8d, 0xf7, 0xfa, 0x8c, - 0x1c, 0xca, 0x97, 0xa5, 0x59, 0x17, 0x23, 0x1b, 0xbf, 0xcf, 0x91, 0x7c, 0x9f, 0x95, 0xcc, 0x70, - 0x59, 0xe9, 0x51, 0x22, 0x57, 0x5e, 0x46, 0x10, 0x8d, 0x95, 0xf8, 0xab, 0xb0, 0x90, 0x6d, 0xe1, - 0x00, 0xfb, 0x39, 0xef, 0x82, 0xd2, 0x9a, 0xef, 0x61, 0x5f, 0x56, 0xf9, 0x22, 0xac, 0x64, 0xab, - 0x0c, 0x89, 0x5b, 0xfa, 0x94, 0xa5, 0xb4, 0xde, 0x88, 0xb4, 0xfd, 0x61, 0xe9, 0xc9, 0x98, 0x6c, - 0xcd, 0xcf, 0x0b, 0xee, 0x45, 0x98, 0xd1, 0xdb, 0x1f, 0x49, 0xa6, 0x62, 0xb1, 0x0a, 0x28, 0x89, - 0xf8, 0x12, 0xd9, 0x8d, 0x43, 0xc6, 0x92, 0xfe, 0x4d, 0xb5, 0x44, 0x2a, 0xa8, 0x24, 0xfb, 0x2f, - 0x70, 0x76, 0xf8, 0x25, 0x66, 0x96, 0x81, 0x59, 0xb5, 0x93, 0x1a, 0xfe, 0x96, 0x80, 0x76, 0x83, - 0xef, 0xc3, 0xa4, 0xcc, 0x3e, 0x48, 0x93, 0xa0, 0x8d, 0xc7, 0xa4, 0x81, 0x1f, 0x33, 0x49, 0xcf, - 0xfa, 0xd0, 0x80, 0x8a, 0x7e, 0x3f, 0x85, 0xce, 0x42, 0x21, 0x8c, 0xd4, 0x77, 0x08, 0x72, 0x71, - 0xac, 0x42, 0x18, 0x1d, 0x3b, 0xed, 0x2f, 0x77, 0x82, 0x28, 0x1d, 0xe3, 0x04, 0x61, 0xfd, 0xb4, - 0x00, 0x53, 0xf7, 0xf7, 0x5d, 0x57, 0xa8, 0x0b, 0x5d, 0xc8, 0x7d, 0x0e, 0x21, 0xc7, 0x86, 0xfc, - 0xe8, 0xc1, 0x11, 0x17, 0x80, 0x67, 0x47, 0x9e, 0xfe, 0x67, 0x9e, 0x05, 0x5e, 0x80, 0x2a, 0xed, - 0x86, 0x31, 0x73, 0x32, 0x8f, 0xff, 0x6d, 0x10, 0x20, 0xf1, 0xa1, 0x09, 0xbe, 0x4f, 0xea, 0x62, - 0xea, 0x84, 0xfb, 0x24, 0xf6, 0xb1, 0xd8, 0x82, 0xe8, 0xa7, 0xb8, 0x2a, 0x35, 0x6f, 0xa1, 0x8b, - 0xe9, 0x56, 0x82, 0xd5, 0x6f, 0x5c, 0xd0, 0x45, 0x98, 0xe6, 0xf5, 0x3a, 0xae, 0xb3, 0x2b, 0x3e, - 0xb9, 0x20, 0x53, 0x53, 0xa0, 0x8b, 0xe9, 0x6d, 0xf7, 0x96, 0xf8, 0xe6, 0xc2, 0x32, 0x54, 0x12, + 0xed, 0x2a, 0x4a, 0xa2, 0x2f, 0x2e, 0x70, 0x17, 0xf7, 0x01, 0x18, 0xb8, 0xd7, 0x37, 0x31, 0x0c, + 0x38, 0x80, 0x8d, 0x00, 0xf9, 0x30, 0x10, 0xe7, 0x2f, 0x09, 0x10, 0xe4, 0xf1, 0x11, 0x04, 0xf0, + 0xc7, 0x26, 0x88, 0x61, 0x03, 0x41, 0xe0, 0xc0, 0x09, 0x8c, 0x60, 0x03, 0xe4, 0x3b, 0x3f, 0x41, + 0xf2, 0x13, 0x24, 0xa8, 0x57, 0x3f, 0x48, 0x8e, 0x46, 0xa3, 0xd1, 0x8c, 0x9d, 0x7c, 0x91, 0x75, + 0xce, 0xa9, 0xaa, 0x53, 0xe7, 0x9c, 0x3a, 0x55, 0x75, 0xea, 0x54, 0xc3, 0xcc, 0xde, 0x7e, 0x1c, + 0xb9, 0xd1, 0xce, 0x5a, 0x14, 0x87, 0x2c, 0x44, 0x65, 0x55, 0x5c, 0x99, 0xee, 0x11, 0x86, 0x35, + 0x78, 0x65, 0x86, 0xc4, 0x71, 0x18, 0x27, 0xc5, 0xf9, 0x4e, 0xd8, 0x09, 0xc5, 0xdf, 0xab, 0xfc, + 0x9f, 0x82, 0xd6, 0xe3, 0x3e, 0x65, 0xe2, 0xaf, 0x02, 0xd4, 0xda, 0x04, 0xb7, 0xfd, 0xd0, 0xdd, + 0xd3, 0xad, 0xb0, 0x18, 0xbb, 0x24, 0x69, 0x65, 0x31, 0x26, 0x34, 0xec, 0xc7, 0x2e, 0x71, 0x7a, + 0x38, 0xc0, 0x1d, 0x12, 0x4b, 0xb8, 0xd5, 0x06, 0xb8, 0x4d, 0x98, 0x4d, 0x3e, 0xe8, 0x13, 0xca, + 0xd0, 0x2a, 0x94, 0xdd, 0x30, 0x60, 0xe4, 0x90, 0x35, 0x8c, 0x8b, 0xc6, 0x95, 0xea, 0xba, 0xb9, + 0xa6, 0x59, 0xde, 0x90, 0x70, 0x5b, 0x13, 0x20, 0x13, 0x8a, 0x7b, 0x64, 0xd0, 0x28, 0x5c, 0x34, + 0xae, 0x4c, 0xdb, 0xfc, 0x2f, 0x6a, 0x40, 0x79, 0x9f, 0xc4, 0xd4, 0x0b, 0x83, 0x46, 0xf1, 0xa2, + 0x71, 0xa5, 0x64, 0xeb, 0xa2, 0xf5, 0xb1, 0x01, 0x55, 0xd1, 0x0d, 0x8d, 0xc2, 0x80, 0x12, 0xf4, + 0x2a, 0x4c, 0xc7, 0xa4, 0xe3, 0x85, 0x81, 0x23, 0xc6, 0xaa, 0x3a, 0xab, 0xad, 0xe9, 0x91, 0xdf, + 0xe4, 0xbf, 0x76, 0x55, 0xd2, 0x88, 0x02, 0x7a, 0x19, 0x26, 0x24, 0x6d, 0x41, 0xd0, 0xce, 0x26, + 0x8c, 0xdd, 0x25, 0x03, 0x49, 0x2e, 0xf1, 0x68, 0x1e, 0x26, 0xf6, 0xb1, 0xdf, 0x27, 0x82, 0x87, + 0x69, 0x5b, 0x16, 0xd0, 0x59, 0x98, 0x0a, 0x42, 0xe6, 0xec, 0x86, 0xfd, 0xa0, 0xdd, 0x28, 0x5d, + 0x34, 0xae, 0x54, 0xec, 0x4a, 0x10, 0xb2, 0x5b, 0xbc, 0x8c, 0xde, 0x82, 0x3a, 0x39, 0x24, 0xae, + 0xd3, 0x26, 0x0c, 0x7b, 0x3e, 0x75, 0xf6, 0xd7, 0x1b, 0x93, 0xa2, 0x97, 0xc5, 0xa4, 0x97, 0x9b, + 0x87, 0xc4, 0xbd, 0x21, 0xd1, 0x0f, 0xd7, 0xed, 0x19, 0x92, 0x2d, 0xbe, 0x53, 0xaa, 0x4c, 0x98, + 0x93, 0xd6, 0x3f, 0x1a, 0x50, 0x6d, 0xba, 0x38, 0x38, 0x89, 0x30, 0xcf, 0xc2, 0x14, 0x65, 0x38, + 0x66, 0x4e, 0x2a, 0xd2, 0x8a, 0x00, 0xdc, 0x25, 0x03, 0x3e, 0x22, 0xdf, 0xeb, 0x79, 0x4c, 0x8c, + 0x68, 0xc6, 0x96, 0x85, 0xac, 0xb4, 0x4b, 0x39, 0x69, 0xa3, 0x65, 0xa8, 0xec, 0x91, 0x81, 0x13, + 0x06, 0xfe, 0xa0, 0x31, 0x21, 0x86, 0x5a, 0xde, 0x23, 0x83, 0xad, 0xc0, 0x17, 0x2a, 0x8a, 0x09, + 0xa7, 0x23, 0x62, 0x84, 0x15, 0x5b, 0x17, 0xd1, 0x12, 0x94, 0x49, 0xd0, 0x16, 0xfd, 0x97, 0x45, + 0xff, 0x93, 0x24, 0x68, 0xf3, 0xde, 0x2f, 0x40, 0x95, 0xe2, 0x5e, 0xe4, 0x13, 0x87, 0x32, 0x12, + 0x35, 0x2a, 0x82, 0x07, 0x90, 0xa0, 0x26, 0x23, 0x91, 0xf5, 0xab, 0x06, 0x4c, 0xcb, 0x71, 0x9f, + 0x5c, 0xbb, 0x97, 0x61, 0x22, 0xc2, 0x5e, 0x4c, 0x1b, 0x85, 0x8b, 0xc5, 0x2b, 0xd5, 0xf5, 0x7a, + 0xaa, 0xdd, 0xfd, 0x6d, 0xec, 0xc5, 0xb6, 0xc4, 0xa6, 0x46, 0x50, 0x3c, 0xda, 0x08, 0xac, 0x8f, + 0xca, 0x50, 0xdf, 0x8e, 0xc9, 0x41, 0xec, 0x31, 0x72, 0x12, 0x7d, 0x5c, 0x85, 0xa9, 0x5e, 0x9f, + 0x61, 0xe6, 0x85, 0x81, 0xe6, 0x29, 0xed, 0xec, 0xbe, 0xc2, 0xd8, 0x29, 0x0d, 0xba, 0x04, 0xd3, + 0x51, 0xec, 0xf5, 0x70, 0x3c, 0x70, 0xf8, 0x24, 0x54, 0xc6, 0x57, 0x55, 0xb0, 0x7b, 0xa1, 0xbb, + 0x87, 0x5e, 0x84, 0x19, 0xa9, 0xe3, 0xbc, 0xda, 0xa6, 0x05, 0xf0, 0x61, 0xaa, 0x3b, 0x5e, 0xdf, + 0x61, 0xcc, 0x17, 0xba, 0x2b, 0xd9, 0x65, 0x5e, 0x6e, 0x31, 0x1f, 0xad, 0xc3, 0x02, 0xdd, 0xf3, + 0x22, 0xc7, 0x0d, 0x03, 0xca, 0x62, 0xec, 0x05, 0xcc, 0x71, 0xbb, 0xc4, 0xdd, 0x53, 0x9a, 0x9c, + 0xe3, 0xc8, 0x8d, 0x04, 0xb7, 0xc1, 0x51, 0xe8, 0xbf, 0xc0, 0x5c, 0x44, 0x28, 0xf5, 0x7a, 0x1e, + 0x65, 0x9e, 0xeb, 0x60, 0x57, 0x8e, 0xa8, 0x7c, 0xb1, 0x78, 0xa5, 0xb6, 0xbe, 0x9a, 0x8c, 0x68, + 0x48, 0x54, 0x6b, 0xdb, 0x69, 0x9d, 0x6b, 0xa2, 0x8a, 0x8d, 0xa2, 0x61, 0x10, 0xe5, 0xbc, 0xb2, + 0xc3, 0xc0, 0xa1, 0xde, 0xd7, 0x89, 0x30, 0x8b, 0x92, 0x5d, 0x66, 0x87, 0x41, 0xd3, 0xfb, 0x3a, + 0x41, 0x16, 0xcc, 0xec, 0x86, 0xb1, 0xd3, 0x8f, 0xda, 0x98, 0x11, 0x87, 0xd1, 0xc6, 0x94, 0xc0, + 0x57, 0x77, 0xc3, 0xf8, 0x5d, 0x01, 0x6b, 0x51, 0x4e, 0xd3, 0xf3, 0x02, 0xc7, 0x0d, 0x7b, 0x3d, + 0x8f, 0x71, 0x1a, 0x90, 0x34, 0x3d, 0x2f, 0xd8, 0x10, 0xb0, 0x16, 0x45, 0x57, 0xc0, 0xec, 0x53, + 0xe2, 0x60, 0x3a, 0x08, 0x5c, 0x45, 0xd9, 0xa8, 0x8a, 0xe1, 0xd6, 0xfa, 0x94, 0x5c, 0xe3, 0x60, + 0x49, 0x8b, 0x2e, 0x42, 0x95, 0x12, 0x37, 0x0c, 0xda, 0x38, 0xf6, 0x08, 0x6d, 0x4c, 0x5f, 0x2c, + 0x72, 0xf9, 0x67, 0x40, 0xe8, 0x1c, 0x00, 0x8b, 0xf9, 0xb4, 0x20, 0x4e, 0xe4, 0x36, 0x66, 0xa4, + 0x0f, 0x60, 0xf1, 0x60, 0x2b, 0x20, 0xdb, 0xae, 0xe0, 0x06, 0x1f, 0x66, 0xb8, 0xa9, 0x29, 0x6e, + 0xf0, 0x61, 0xc2, 0xcd, 0xdb, 0x50, 0xc7, 0x94, 0x92, 0x98, 0x0f, 0xdf, 0xf1, 0xc9, 0x3e, 0xf1, + 0x1b, 0xf5, 0x8b, 0xc6, 0x95, 0xda, 0xfa, 0x52, 0x22, 0xc9, 0x6b, 0x1a, 0x7f, 0x8f, 0xa3, 0xed, + 0x1a, 0xce, 0x95, 0x91, 0x07, 0xcb, 0x39, 0xb9, 0x64, 0x94, 0x49, 0x1b, 0xa6, 0xb0, 0xb3, 0xb5, + 0x47, 0x6a, 0xe5, 0x56, 0x22, 0xbc, 0x66, 0xaa, 0x67, 0x7b, 0x31, 0x23, 0xd3, 0x14, 0x4c, 0x57, + 0x76, 0x60, 0x61, 0x6c, 0x05, 0xee, 0x4e, 0xbc, 0xa0, 0x4d, 0x0e, 0xc5, 0x2c, 0x98, 0xb1, 0x65, + 0x01, 0xbd, 0x06, 0x8b, 0xe4, 0x30, 0x22, 0x2e, 0x23, 0x6d, 0x27, 0xaf, 0xba, 0x82, 0x10, 0xc4, + 0x9c, 0xc6, 0xa6, 0x8d, 0x52, 0x6b, 0x07, 0x66, 0x47, 0x4c, 0x05, 0xad, 0xc0, 0x62, 0xf3, 0xee, + 0xe6, 0xb6, 0xb3, 0x7d, 0xb3, 0xd9, 0xdc, 0xbc, 0xbf, 0xd9, 0x6c, 0x6d, 0x6e, 0x38, 0x1b, 0x77, + 0x6e, 0x6e, 0xdc, 0x35, 0xcf, 0xa0, 0x06, 0xcc, 0xdf, 0xd8, 0x1a, 0x83, 0x31, 0xd0, 0x12, 0xcc, + 0xdd, 0xd8, 0x72, 0x36, 0xb6, 0x1e, 0x34, 0x5b, 0xf6, 0xb5, 0xcd, 0x07, 0x2d, 0x85, 0x28, 0x58, + 0xff, 0x62, 0x80, 0x99, 0x4a, 0xe2, 0xe4, 0x2e, 0xe6, 0x93, 0x30, 0x29, 0xb0, 0xa3, 0xf3, 0x39, + 0x71, 0x1e, 0x8a, 0x60, 0xd4, 0x32, 0x8b, 0xa3, 0x96, 0xf9, 0x32, 0x98, 0xd2, 0x92, 0x32, 0x64, + 0x72, 0x42, 0xcf, 0x84, 0xdc, 0xa0, 0x12, 0xc2, 0x31, 0x8b, 0xcb, 0xc4, 0x13, 0x2c, 0x2e, 0xd6, + 0x0f, 0x4b, 0xb0, 0x98, 0x11, 0x32, 0x77, 0x25, 0xff, 0x51, 0x3c, 0xda, 0x88, 0x97, 0x98, 0x1c, + 0xeb, 0x25, 0x3c, 0xea, 0xec, 0x7a, 0x31, 0x65, 0x92, 0x8f, 0xb2, 0x98, 0xb8, 0x55, 0x8f, 0xde, + 0xe2, 0x30, 0xc1, 0xc7, 0x25, 0x98, 0x3e, 0xc0, 0x5c, 0x05, 0x5e, 0x8f, 0x84, 0x7d, 0x26, 0x9c, + 0x51, 0xd1, 0xae, 0x72, 0x58, 0x4b, 0x82, 0x50, 0x03, 0x26, 0x76, 0xc3, 0xd8, 0x25, 0xc2, 0x11, + 0x55, 0xae, 0x17, 0x1a, 0x86, 0x2d, 0x01, 0x7c, 0x10, 0x31, 0x61, 0xfd, 0x38, 0x70, 0xc4, 0x4e, + 0x41, 0xba, 0xa1, 0x8a, 0x3d, 0x2d, 0x81, 0x0f, 0x05, 0x6c, 0xd4, 0x22, 0xaa, 0xe3, 0x2c, 0xa2, + 0x2e, 0xfc, 0xb1, 0x43, 0x0e, 0x3d, 0xca, 0x48, 0xe0, 0x92, 0xc6, 0xb4, 0x74, 0x55, 0x02, 0x7c, + 0x53, 0x43, 0xd1, 0x2b, 0x30, 0x27, 0x24, 0xc2, 0x17, 0x68, 0xc7, 0xdb, 0x95, 0xf4, 0x54, 0x79, + 0x24, 0x93, 0xa3, 0xf8, 0x5a, 0xbd, 0xb9, 0x2b, 0x6a, 0x50, 0x74, 0x83, 0x8f, 0x6e, 0x8f, 0x38, + 0xfd, 0xc8, 0xe9, 0x85, 0x6d, 0x22, 0x1c, 0x53, 0x6d, 0xdd, 0x4a, 0xdd, 0x44, 0xde, 0x38, 0xde, + 0xc3, 0x7b, 0xe4, 0xdd, 0xe8, 0x7e, 0xd8, 0x26, 0x36, 0x1c, 0x24, 0xff, 0xad, 0x7f, 0x30, 0xa0, + 0x31, 0x44, 0x79, 0x97, 0x0c, 0x6c, 0x42, 0xfb, 0x3e, 0x43, 0x9f, 0x87, 0x12, 0x1b, 0x44, 0x44, + 0x58, 0x51, 0x6d, 0xfd, 0xf2, 0xa3, 0x9a, 0x4e, 0x2a, 0xb4, 0x06, 0x11, 0xb1, 0x45, 0x95, 0x74, + 0xbb, 0x55, 0xc8, 0x6e, 0xb7, 0xce, 0xc1, 0x54, 0x2a, 0x85, 0xa2, 0x18, 0x58, 0x0a, 0x40, 0x6f, + 0xc0, 0x12, 0x1f, 0x25, 0x69, 0x3b, 0x07, 0x1e, 0xeb, 0x72, 0x1f, 0xb8, 0xeb, 0x7b, 0x6e, 0x66, + 0x0a, 0xcd, 0x4b, 0xf4, 0x7b, 0x1e, 0xeb, 0x6e, 0x28, 0x64, 0x8b, 0xa2, 0x35, 0x10, 0x6b, 0x9c, + 0xc3, 0xb7, 0xb2, 0xfe, 0xbe, 0x17, 0x74, 0xa4, 0x41, 0xc8, 0xf5, 0x60, 0x96, 0xa3, 0x6c, 0x8d, + 0xe1, 0xdc, 0x5a, 0x7f, 0x5f, 0x80, 0xa5, 0x91, 0x99, 0xf3, 0x5c, 0x1c, 0xc8, 0x05, 0x98, 0x1a, + 0x72, 0x1e, 0xc2, 0xe2, 0x2a, 0xae, 0xb6, 0x95, 0x86, 0x96, 0x1a, 0x1f, 0xef, 0xb4, 0x34, 0x47, + 0x29, 0xb9, 0x45, 0x98, 0x54, 0x76, 0x38, 0x21, 0x96, 0x30, 0x55, 0x42, 0xe7, 0x01, 0x92, 0x0d, + 0x2c, 0x9f, 0x28, 0x45, 0x2e, 0x52, 0xbd, 0x83, 0x1d, 0xeb, 0x65, 0xca, 0x4f, 0xe0, 0x65, 0xd0, + 0x17, 0xf9, 0xc6, 0x90, 0xab, 0x96, 0x36, 0x2a, 0x62, 0x74, 0x97, 0x1e, 0x6b, 0x04, 0xb6, 0xae, + 0x61, 0x7d, 0xdf, 0x80, 0x95, 0x0c, 0x95, 0x1d, 0xfa, 0xfe, 0x0e, 0x3e, 0x99, 0x9b, 0x1a, 0x71, + 0x29, 0x85, 0x31, 0x2e, 0x65, 0xc4, 0x6f, 0x14, 0x47, 0xfd, 0x06, 0x82, 0xd2, 0x1e, 0x19, 0x70, + 0x83, 0xe2, 0x52, 0x14, 0xff, 0xad, 0x3f, 0x32, 0xe0, 0xec, 0x58, 0x3e, 0x9f, 0x8b, 0x51, 0x8c, + 0x51, 0x51, 0xf1, 0x49, 0x16, 0x82, 0xdf, 0x36, 0x60, 0xae, 0x75, 0x18, 0xdc, 0x21, 0x38, 0x66, + 0xd7, 0x09, 0x3e, 0xd1, 0xa1, 0x6d, 0xd8, 0xa9, 0x17, 0x8e, 0xe1, 0xd4, 0x8b, 0x63, 0x34, 0xf0, + 0x12, 0xd4, 0x71, 0x7b, 0xdf, 0xa3, 0xc4, 0x49, 0x7c, 0xbb, 0x5a, 0xfc, 0x24, 0xf8, 0x9e, 0xf4, + 0xf0, 0xd6, 0x8f, 0x0c, 0x98, 0xcf, 0xf3, 0xfc, 0x1c, 0x4e, 0x80, 0xd9, 0x15, 0xa7, 0x98, 0x5f, + 0x71, 0xc6, 0xe8, 0xa0, 0xf4, 0x24, 0x3a, 0xf8, 0x7f, 0x45, 0x58, 0x10, 0x3b, 0xeb, 0xd6, 0x61, + 0xd0, 0x64, 0x98, 0xf5, 0xe9, 0x49, 0xb4, 0x70, 0x01, 0xb4, 0xc4, 0x33, 0xe7, 0x3d, 0x50, 0x20, + 0x7e, 0xe6, 0x5a, 0x82, 0xb2, 0x1c, 0x81, 0x36, 0xed, 0x49, 0x31, 0x00, 0xca, 0xe5, 0xee, 0x62, + 0xdf, 0x27, 0xb1, 0x23, 0x75, 0x94, 0x6e, 0x3a, 0x24, 0xb8, 0xc9, 0xa1, 0x2d, 0xe1, 0x2d, 0xdc, + 0x7e, 0x1c, 0x93, 0x40, 0x90, 0xc8, 0x65, 0x77, 0x4a, 0x41, 0x5a, 0x14, 0xbd, 0x0a, 0x0b, 0xb1, + 0x32, 0x7e, 0xbe, 0x00, 0x71, 0xc7, 0x22, 0xbc, 0xb3, 0x3a, 0x4a, 0x20, 0x8d, 0xdc, 0xdc, 0x7d, + 0x10, 0x32, 0xb1, 0x0c, 0xa1, 0x55, 0x98, 0x15, 0xeb, 0xa5, 0x93, 0xdd, 0x8a, 0xcb, 0xb5, 0xb8, + 0x2e, 0x10, 0xcd, 0x74, 0x2f, 0xfe, 0x25, 0x58, 0x49, 0x7d, 0x74, 0xf6, 0xfc, 0x21, 0x6c, 0xae, + 0x22, 0x2a, 0x35, 0x12, 0x8a, 0x21, 0xff, 0xc2, 0x7b, 0xda, 0x27, 0xb1, 0xb7, 0x3b, 0x70, 0x3c, + 0xea, 0x28, 0xa1, 0xc8, 0x65, 0xdb, 0xae, 0x4b, 0xc4, 0x26, 0xdd, 0x96, 0x60, 0xeb, 0xc7, 0x05, + 0x58, 0x1c, 0xd6, 0xc7, 0x2f, 0xd6, 0xc2, 0x2e, 0x43, 0x4d, 0xb9, 0xfe, 0xfc, 0xa6, 0x68, 0x46, + 0x42, 0xf5, 0x04, 0x7a, 0x19, 0x26, 0xe5, 0x61, 0x4c, 0x28, 0xa7, 0x96, 0x39, 0xf1, 0xaa, 0x03, + 0x97, 0x42, 0xa3, 0x35, 0x98, 0x12, 0x5d, 0x79, 0xc1, 0x6e, 0xa8, 0xa2, 0x12, 0x29, 0x5f, 0x5c, + 0x5e, 0x9b, 0xc1, 0x6e, 0x68, 0x0b, 0x76, 0xf8, 0xbf, 0xa7, 0x5d, 0x08, 0xac, 0x0f, 0x0d, 0x58, + 0x11, 0x12, 0x6d, 0xaa, 0xa3, 0x93, 0xf0, 0x0a, 0x27, 0x32, 0x73, 0xed, 0x82, 0x0b, 0xa9, 0x0b, + 0x3e, 0x96, 0x77, 0xb1, 0xfe, 0xd5, 0x80, 0xb3, 0x63, 0x79, 0x78, 0x0e, 0xaa, 0x7d, 0x19, 0x26, + 0xb8, 0x2c, 0xf9, 0xc4, 0x2b, 0x8e, 0x97, 0xb5, 0xc4, 0xa3, 0xb3, 0xd9, 0x35, 0x5e, 0xea, 0x38, + 0x5d, 0xdf, 0x9f, 0x76, 0xd3, 0xff, 0x03, 0x03, 0x66, 0xe4, 0x64, 0x7a, 0x66, 0x8b, 0xa8, 0xd6, + 0x4e, 0x31, 0xa3, 0x9d, 0xe3, 0x19, 0xaf, 0x8c, 0x77, 0xd9, 0x93, 0x3b, 0x5e, 0xe0, 0x87, 0x1d, + 0xeb, 0x2f, 0x0c, 0xa8, 0x69, 0x5e, 0x9f, 0x83, 0x82, 0x46, 0x79, 0x2c, 0x8e, 0x9b, 0x60, 0x4f, + 0xeb, 0xe9, 0x3b, 0x30, 0xb3, 0xd9, 0x8b, 0xc2, 0x38, 0x51, 0x40, 0xee, 0x00, 0x65, 0x1c, 0xe3, + 0x00, 0x35, 0xca, 0x68, 0x61, 0x0c, 0xa3, 0xd6, 0xfb, 0x50, 0xd3, 0x1d, 0x9d, 0x5c, 0x7a, 0xf3, + 0x59, 0xe9, 0x4d, 0xe9, 0x28, 0xd8, 0xb7, 0xb8, 0x66, 0x7c, 0x82, 0x83, 0x7e, 0x74, 0x3a, 0x11, + 0xde, 0x63, 0xed, 0x0d, 0xf2, 0x6b, 0x4f, 0x69, 0x68, 0xed, 0xb1, 0xbe, 0x6d, 0x40, 0x3d, 0x61, + 0xea, 0x97, 0xc6, 0x5e, 0xac, 0x3d, 0xa8, 0x5f, 0xc7, 0xcc, 0xed, 0x9e, 0x30, 0x1a, 0x3e, 0xce, + 0xd7, 0x3d, 0x3a, 0x1e, 0xfe, 0xd7, 0x06, 0x98, 0x69, 0x6f, 0xcf, 0x3c, 0x6c, 0xfa, 0x94, 0x73, + 0x21, 0x95, 0xf5, 0xc4, 0xd1, 0xb2, 0x7e, 0xa7, 0x54, 0x29, 0x9a, 0x25, 0xeb, 0xbf, 0xc1, 0xbc, + 0x18, 0xdc, 0x33, 0x3f, 0x07, 0x8c, 0x71, 0x61, 0xd6, 0xef, 0x1a, 0xb0, 0x30, 0xd4, 0xfb, 0x73, + 0x30, 0xb2, 0xa7, 0xdd, 0xdb, 0xff, 0x96, 0x01, 0xf5, 0xa6, 0x8b, 0x83, 0x93, 0x46, 0x77, 0x2e, + 0x40, 0xb5, 0x87, 0x0f, 0x87, 0x84, 0x05, 0x3d, 0x7c, 0xa8, 0x45, 0x95, 0xbb, 0x60, 0x28, 0x3e, + 0xea, 0x82, 0xa1, 0x94, 0xbd, 0x60, 0xc8, 0xdc, 0x08, 0x4c, 0x64, 0x6f, 0x04, 0xac, 0x9f, 0x1a, + 0x60, 0xa6, 0xcc, 0xfe, 0x32, 0xad, 0xc9, 0x4f, 0xeb, 0xf4, 0x7f, 0x6c, 0x00, 0x92, 0x31, 0x04, + 0x72, 0x52, 0x4d, 0x1c, 0xcb, 0x70, 0x8f, 0xb9, 0x86, 0xbd, 0x02, 0x53, 0xec, 0x30, 0x10, 0x5b, + 0x3f, 0x79, 0x90, 0xcd, 0xf6, 0xdc, 0x3a, 0x0c, 0xe4, 0xd6, 0x8f, 0xc9, 0x3f, 0xe9, 0x91, 0x77, + 0x22, 0x33, 0x1d, 0xf8, 0xa1, 0x31, 0x37, 0xa2, 0x7f, 0x07, 0x93, 0xe1, 0x21, 0x4c, 0xdd, 0xde, + 0x38, 0x89, 0xec, 0xcf, 0x03, 0x50, 0xbc, 0x4b, 0x9c, 0x28, 0xf4, 0x02, 0xa6, 0x04, 0x3f, 0xc5, + 0x21, 0xdb, 0x1c, 0x60, 0x75, 0x01, 0x78, 0xbb, 0xcf, 0x5e, 0x02, 0xd6, 0x77, 0x0c, 0x40, 0x37, + 0x88, 0x4f, 0x18, 0xb1, 0x71, 0xd0, 0x21, 0xa7, 0x7e, 0x23, 0x98, 0x99, 0x9a, 0xc5, 0xe1, 0xcb, + 0xba, 0x20, 0x64, 0xfc, 0xec, 0x24, 0x6e, 0xff, 0xe4, 0x45, 0x27, 0x48, 0xd0, 0x56, 0xe0, 0x0f, + 0xac, 0xaf, 0xc2, 0x5c, 0x8e, 0xb1, 0xd3, 0xde, 0x72, 0xfc, 0x81, 0x01, 0x17, 0xb7, 0x63, 0x12, + 0xe1, 0x98, 0xdc, 0xf2, 0x31, 0xed, 0x72, 0x0f, 0xdc, 0x0a, 0x95, 0x41, 0x3f, 0x3f, 0x39, 0x2c, + 0x43, 0x65, 0xe8, 0x80, 0x5c, 0xa6, 0xea, 0x68, 0x9c, 0x59, 0x95, 0x27, 0xf2, 0xab, 0xb2, 0x0f, + 0x97, 0x8e, 0x60, 0xfd, 0xb4, 0x25, 0xf5, 0x63, 0x03, 0x96, 0x4f, 0x47, 0x44, 0x99, 0x11, 0x15, + 0xf2, 0x37, 0xc1, 0x47, 0x7a, 0xfd, 0x8c, 0xf0, 0x4a, 0x8f, 0x14, 0xde, 0x44, 0x5e, 0x78, 0xb9, + 0x43, 0xcf, 0x64, 0xfe, 0xd0, 0x63, 0x11, 0x58, 0x79, 0x1e, 0x82, 0xfb, 0x0a, 0xcc, 0xd8, 0xf8, + 0xe0, 0xd4, 0xb2, 0x16, 0x6a, 0x50, 0x70, 0x77, 0x85, 0x70, 0xa6, 0xec, 0x82, 0xbb, 0x6b, 0xfd, + 0x5f, 0x03, 0x6a, 0xba, 0xfd, 0x53, 0x66, 0xfd, 0x04, 0xb9, 0x09, 0x56, 0x1b, 0x90, 0x8d, 0x0f, + 0x4e, 0x7b, 0x6b, 0x3a, 0x3c, 0xe8, 0x10, 0xe6, 0x72, 0xbd, 0x3c, 0xeb, 0x2d, 0xa9, 0xf5, 0xeb, + 0x86, 0xd0, 0xe2, 0x76, 0xff, 0x94, 0xb4, 0x38, 0x5e, 0xb2, 0x72, 0x98, 0x25, 0x3d, 0x4c, 0x5e, + 0x2f, 0xbd, 0x86, 0xe2, 0x7f, 0xf9, 0x24, 0xd8, 0x0d, 0x63, 0xc7, 0xc5, 0x54, 0xc5, 0xbe, 0x26, + 0x77, 0xc3, 0x78, 0x03, 0x53, 0x7e, 0x2c, 0xd3, 0xfc, 0x9d, 0xb6, 0x01, 0xff, 0xa1, 0x91, 0xea, + 0xf4, 0x84, 0x02, 0x38, 0xe6, 0xc6, 0x7f, 0x48, 0xcd, 0x68, 0x5e, 0x8e, 0xbf, 0x94, 0xdc, 0x48, + 0x0c, 0xcb, 0x60, 0x22, 0x2b, 0x03, 0x6e, 0x39, 0x8c, 0xf9, 0xf2, 0xb6, 0xa1, 0x64, 0x8b, 0xff, + 0x7c, 0x01, 0xc9, 0xf1, 0x7e, 0xda, 0xc2, 0x19, 0x80, 0x69, 0xe3, 0x03, 0xb5, 0x46, 0x3d, 0x8b, + 0x09, 0x9e, 0x1d, 0x6e, 0x29, 0xa7, 0xf2, 0xff, 0x0a, 0xb3, 0x99, 0xae, 0x4f, 0x7b, 0x60, 0xff, + 0xc3, 0x80, 0x05, 0x2d, 0xb9, 0x93, 0x0f, 0xef, 0x18, 0x93, 0xf9, 0xd1, 0x03, 0xc4, 0xb0, 0x38, + 0xcc, 0xc1, 0x69, 0x8f, 0xf2, 0x47, 0xd2, 0x7b, 0x3e, 0xc7, 0x3c, 0xa8, 0x6c, 0xb6, 0x53, 0x29, + 0x9f, 0xed, 0x24, 0x05, 0x33, 0x91, 0x08, 0xe6, 0xc9, 0xb3, 0x9f, 0xac, 0x0e, 0xd4, 0x93, 0xe1, + 0x9c, 0x5c, 0x56, 0x97, 0xa0, 0xb8, 0xb7, 0xff, 0xc8, 0xc9, 0xca, 0x71, 0xd6, 0x37, 0xa4, 0x79, + 0xfc, 0x42, 0x76, 0x8d, 0x43, 0x6e, 0x52, 0xd9, 0xc9, 0x33, 0xdd, 0x27, 0xfe, 0xc4, 0x48, 0xfd, + 0xc8, 0x49, 0x8d, 0xe5, 0x93, 0x30, 0x19, 0x73, 0xee, 0xc6, 0xde, 0xbd, 0x49, 0xbe, 0x15, 0x01, + 0x3f, 0x19, 0x10, 0xec, 0x76, 0x9d, 0xac, 0xfd, 0x4c, 0x71, 0xc8, 0xbd, 0x53, 0xb3, 0x21, 0xcb, + 0x87, 0xf9, 0xfc, 0x88, 0x9e, 0xa9, 0xbd, 0xfc, 0x77, 0x58, 0x7e, 0x37, 0xe0, 0x67, 0x9b, 0x1b, + 0x84, 0xb2, 0x38, 0x1c, 0x3c, 0x5f, 0x93, 0xe1, 0x7b, 0xbd, 0x71, 0xdd, 0x9f, 0xb6, 0x99, 0x7c, + 0x0d, 0xce, 0xda, 0xa4, 0xe3, 0x51, 0x46, 0x62, 0x7e, 0x7c, 0xdd, 0xda, 0xa1, 0x24, 0xde, 0x27, + 0xf1, 0x49, 0xc6, 0xb9, 0x00, 0x93, 0x3d, 0x7c, 0x98, 0x26, 0x34, 0x4d, 0xf4, 0xf0, 0x61, 0x8b, + 0x5a, 0xaf, 0xc3, 0xb9, 0xf1, 0x3d, 0xa8, 0xa1, 0x24, 0x7c, 0x19, 0xf9, 0x3d, 0x68, 0x43, 0x5c, + 0x50, 0x3c, 0x23, 0xa6, 0xfa, 0xb0, 0x3c, 0xa6, 0xf9, 0xa3, 0x38, 0xe2, 0x26, 0xec, 0x51, 0xc7, + 0xf5, 0x09, 0x96, 0xa7, 0x80, 0x8a, 0x5d, 0xf6, 0xa8, 0x88, 0xb3, 0x1e, 0x3b, 0x7c, 0x62, 0x7d, + 0x15, 0x96, 0x6d, 0xd2, 0x0b, 0x65, 0xa8, 0xe0, 0x19, 0x0c, 0x6b, 0x1d, 0x56, 0xc6, 0xb5, 0x7f, + 0xa4, 0xa4, 0xff, 0xbf, 0x01, 0x4b, 0xdb, 0xdd, 0x01, 0xf5, 0x5c, 0xec, 0x3f, 0x4d, 0x84, 0x6c, + 0x3c, 0x4b, 0x27, 0x88, 0x8b, 0x59, 0xef, 0x43, 0x63, 0x94, 0xa1, 0x23, 0x75, 0x93, 0x28, 0xa0, + 0xf0, 0x18, 0x05, 0xfc, 0x9e, 0x01, 0xa8, 0x19, 0xf9, 0x1e, 0xb3, 0xc5, 0xcc, 0x38, 0x59, 0x24, + 0x70, 0x8a, 0xf2, 0x16, 0xd2, 0xe9, 0x2c, 0x53, 0x4f, 0x04, 0x90, 0x0f, 0xea, 0x3c, 0x40, 0x42, + 0xa0, 0x43, 0xa7, 0x53, 0x1a, 0x4b, 0xd1, 0x0a, 0x4c, 0x79, 0xd4, 0x89, 0xf1, 0x81, 0xb3, 0xb7, + 0xaf, 0x7d, 0xa1, 0x47, 0x6d, 0x7c, 0x70, 0x77, 0x9f, 0xfb, 0x3e, 0x12, 0xb8, 0xf1, 0x20, 0x62, + 0xc2, 0x21, 0xce, 0xd8, 0xba, 0x68, 0xfd, 0xd0, 0x80, 0xb9, 0x1c, 0xe3, 0x27, 0x77, 0x04, 0x2f, + 0x41, 0xc9, 0x27, 0xbb, 0x4c, 0xc5, 0x58, 0x6a, 0x6b, 0x2a, 0x37, 0x5e, 0x36, 0x2c, 0xc6, 0x22, + 0xf0, 0xe8, 0x0a, 0x4c, 0xc4, 0x5e, 0xa7, 0xcb, 0x54, 0x6c, 0x69, 0x1c, 0xa1, 0x24, 0x40, 0x57, + 0xb8, 0xcb, 0xee, 0x88, 0x7b, 0x1b, 0x19, 0x44, 0x1b, 0xa2, 0xb5, 0x35, 0xda, 0xfa, 0x5f, 0x06, + 0x98, 0x36, 0xc1, 0xed, 0xcd, 0xa0, 0x4d, 0x0e, 0x4f, 0x22, 0xfd, 0xec, 0xd1, 0xb9, 0x90, 0x3f, + 0x3a, 0xa7, 0xab, 0x55, 0xf1, 0x31, 0xab, 0x95, 0xf5, 0x2b, 0x06, 0xcc, 0x66, 0xd8, 0x38, 0xb9, + 0x2c, 0xcf, 0x03, 0xc4, 0x04, 0xb7, 0x1d, 0x99, 0xef, 0xa9, 0x02, 0x62, 0xb1, 0x6e, 0x99, 0xb3, + 0x24, 0x13, 0xad, 0x46, 0xf2, 0xa9, 0x13, 0xc3, 0x54, 0x04, 0x56, 0x13, 0xe6, 0xee, 0xef, 0xbb, + 0xee, 0x6d, 0xc2, 0xae, 0x0f, 0x44, 0x06, 0xd0, 0x29, 0xec, 0xcc, 0xad, 0xff, 0x63, 0xc0, 0x7c, + 0xbe, 0xd5, 0xd3, 0x3e, 0x70, 0x5f, 0x86, 0x92, 0xb8, 0x38, 0x1f, 0x1e, 0x1f, 0xef, 0x55, 0x8c, + 0x4f, 0xa0, 0xad, 0xaf, 0xc1, 0x52, 0xc2, 0x87, 0x4a, 0xa1, 0x38, 0x5d, 0xed, 0x5b, 0xdf, 0x33, + 0xa0, 0x31, 0xda, 0xc5, 0x69, 0x0f, 0x57, 0x89, 0xb8, 0x98, 0x1e, 0x7e, 0xb4, 0x00, 0x4a, 0x47, + 0x0b, 0xe0, 0x77, 0xa6, 0xa0, 0xbc, 0x91, 0x6e, 0x08, 0x14, 0x37, 0x5e, 0x5b, 0xb0, 0x52, 0xb2, + 0x2b, 0x12, 0xb0, 0xd9, 0x46, 0x6f, 0xa6, 0xac, 0x46, 0xa1, 0xdb, 0x55, 0xb3, 0x74, 0x2e, 0x3f, + 0xa1, 0x6e, 0x72, 0x54, 0xc2, 0x2f, 0x2f, 0xa0, 0x8b, 0x50, 0x8a, 0x08, 0xd1, 0x89, 0xfb, 0xd3, + 0x9a, 0x7e, 0x9b, 0x90, 0xd8, 0x16, 0x18, 0x71, 0xd8, 0x24, 0x71, 0x4f, 0x1d, 0xce, 0xc5, 0x7f, + 0x74, 0x15, 0x2a, 0x51, 0xec, 0x85, 0xb1, 0xc7, 0x06, 0x62, 0xb7, 0x55, 0x5b, 0x9f, 0xcb, 0x48, + 0xbf, 0xd7, 0xc3, 0x41, 0x7b, 0x3b, 0xf6, 0xec, 0x84, 0x08, 0xbd, 0x0d, 0x75, 0x8f, 0x86, 0x3e, + 0xce, 0x64, 0x68, 0x97, 0x87, 0x32, 0xb4, 0x37, 0x35, 0x5e, 0x65, 0x68, 0x7b, 0xb9, 0x32, 0xfa, + 0x04, 0xd4, 0x44, 0x30, 0xc6, 0xf3, 0x7d, 0xc7, 0xc5, 0x6e, 0x97, 0xa8, 0x7c, 0x95, 0xe9, 0x20, + 0x64, 0xb7, 0x3c, 0xdf, 0xdf, 0xe0, 0x30, 0xa1, 0xe9, 0x41, 0xe0, 0x3a, 0x7e, 0xd8, 0x51, 0xa9, + 0x29, 0x65, 0x5e, 0xbe, 0x17, 0x76, 0xd0, 0x15, 0x30, 0x63, 0xe2, 0x86, 0x71, 0x5b, 0xa4, 0xa3, + 0x3a, 0x94, 0x61, 0xa6, 0x52, 0x4a, 0x6b, 0x12, 0xde, 0xf2, 0x7a, 0xa4, 0xc9, 0x30, 0xcb, 0x50, + 0x52, 0x17, 0x07, 0x92, 0xb2, 0x9a, 0xa5, 0xe4, 0xcb, 0x8b, 0xa0, 0xbc, 0xc4, 0xa5, 0x1e, 0xf9, + 0x9e, 0x8b, 0x1d, 0x3e, 0x7b, 0x55, 0x5e, 0x69, 0x55, 0xc1, 0xb8, 0xab, 0x40, 0x97, 0xa1, 0x26, + 0x33, 0x6a, 0x48, 0xdb, 0x91, 0x8b, 0xcd, 0x8c, 0x38, 0xb5, 0xcf, 0x68, 0xa8, 0x48, 0xa1, 0x40, + 0x9f, 0x87, 0x65, 0xbe, 0x0c, 0x92, 0x43, 0xe2, 0xf6, 0x85, 0x90, 0xda, 0xfd, 0x58, 0x4a, 0xab, + 0xa7, 0x53, 0xde, 0x17, 0x7b, 0xf8, 0xf0, 0xa6, 0xc6, 0xdf, 0x50, 0xe8, 0xfb, 0x22, 0x75, 0x03, + 0x47, 0x91, 0xef, 0x11, 0xed, 0x4f, 0xea, 0xf2, 0x66, 0x43, 0x01, 0xa5, 0x4b, 0x59, 0x82, 0x32, + 0xc3, 0x74, 0x8f, 0x9b, 0x8e, 0x29, 0x33, 0x97, 0x78, 0x71, 0xb3, 0x2d, 0x96, 0x1d, 0x86, 0x7d, + 0x22, 0x07, 0x30, 0x2b, 0x53, 0x42, 0x05, 0x44, 0xb0, 0xff, 0x69, 0x40, 0xc9, 0x0b, 0xa5, 0x4e, + 0x1c, 0xf6, 0x23, 0x87, 0xe1, 0x4e, 0x03, 0x09, 0x43, 0x36, 0x35, 0xe6, 0x36, 0x47, 0xb4, 0x70, + 0x07, 0x7d, 0x0e, 0x66, 0xda, 0x1e, 0xdd, 0x73, 0x76, 0xfb, 0xbe, 0xef, 0x84, 0x11, 0x6b, 0xcc, + 0x09, 0x25, 0xcf, 0x27, 0x4a, 0xbe, 0xe1, 0xd1, 0xbd, 0x5b, 0x7d, 0xdf, 0xdf, 0x8a, 0x98, 0x5d, + 0x6d, 0xa7, 0x05, 0x2e, 0x73, 0xbe, 0xbc, 0x11, 0x16, 0x0f, 0x9c, 0x58, 0x4e, 0xf1, 0xc6, 0xbc, + 0x94, 0xb9, 0x47, 0x6d, 0x0e, 0xd6, 0x13, 0xff, 0x75, 0xa8, 0xe2, 0xc8, 0x4b, 0x2e, 0x68, 0x16, + 0x86, 0xcc, 0xef, 0xda, 0xf6, 0xa6, 0x8e, 0x70, 0x02, 0x8e, 0xbc, 0x34, 0xaf, 0xa7, 0x2e, 0xe3, + 0xa1, 0x2c, 0xd1, 0xc3, 0xa2, 0xd0, 0x43, 0x2d, 0x01, 0x4b, 0x45, 0x7c, 0x01, 0xe4, 0x0b, 0x2d, + 0x47, 0x7b, 0x97, 0x25, 0x31, 0x33, 0x16, 0xd6, 0xf4, 0xbb, 0xad, 0x16, 0xff, 0xd5, 0x2e, 0x66, + 0x9a, 0x65, 0x4a, 0x52, 0xd7, 0x82, 0x4b, 0x47, 0x0a, 0xa6, 0xd1, 0x10, 0x5e, 0x60, 0x46, 0x41, + 0x9b, 0x02, 0xc8, 0x45, 0x2e, 0xde, 0x67, 0x48, 0x92, 0x65, 0xe9, 0xfd, 0xd9, 0x61, 0xa0, 0xd0, + 0xab, 0x30, 0xbb, 0xd3, 0xa7, 0x03, 0x87, 0x75, 0x63, 0x42, 0xbb, 0xa1, 0xdf, 0xe6, 0x26, 0x70, + 0x56, 0xac, 0xeb, 0x75, 0x8e, 0x68, 0x69, 0xf8, 0x7d, 0x8a, 0xde, 0x87, 0x46, 0xa2, 0x1e, 0xce, + 0x70, 0x1c, 0xfa, 0x09, 0xe3, 0xe7, 0x04, 0xe3, 0x17, 0x12, 0xc9, 0xd8, 0x8a, 0x70, 0x43, 0xd2, + 0xe9, 0x21, 0x24, 0x2f, 0xd0, 0xf2, 0x70, 0x74, 0x01, 0xaa, 0x7c, 0x27, 0x12, 0x71, 0x59, 0x78, + 0xed, 0xc6, 0x45, 0xf9, 0xbe, 0x48, 0x83, 0x36, 0xdb, 0xef, 0x94, 0x2a, 0x25, 0x73, 0xe2, 0x9d, + 0x52, 0x65, 0xc5, 0x3c, 0xcb, 0x4d, 0x1e, 0xb7, 0x9d, 0x0f, 0xfa, 0x61, 0xdc, 0xef, 0x59, 0x1f, + 0x1a, 0xb0, 0x38, 0xbe, 0x33, 0xb4, 0x06, 0x73, 0x43, 0xe6, 0x14, 0xe0, 0x1e, 0x51, 0xbb, 0xb2, + 0xd9, 0x9c, 0x3d, 0x3d, 0xc0, 0x3d, 0x82, 0x3e, 0x0b, 0xe5, 0x88, 0x04, 0xd8, 0x67, 0x03, 0xe5, + 0xd1, 0xce, 0xaf, 0x8d, 0x3c, 0x98, 0xdb, 0x08, 0x03, 0xda, 0xef, 0x45, 0x22, 0xcd, 0x43, 0x53, + 0x5b, 0xdf, 0x2d, 0x42, 0x45, 0x2f, 0x96, 0x23, 0xd9, 0x95, 0xc6, 0x68, 0x76, 0xe5, 0x25, 0x98, + 0x16, 0xe9, 0x5c, 0xf9, 0x80, 0x7d, 0x95, 0xc3, 0xb4, 0x09, 0x8d, 0x3a, 0xf1, 0x6c, 0xba, 0x59, + 0x29, 0x9f, 0x6e, 0x96, 0x7d, 0x83, 0x33, 0x91, 0x7f, 0x83, 0x73, 0x45, 0x65, 0x8e, 0x89, 0xcc, + 0x6e, 0xe9, 0x3d, 0xab, 0x89, 0x92, 0xb6, 0x22, 0x99, 0x33, 0xd6, 0x1a, 0x44, 0x04, 0x7d, 0x0a, + 0x90, 0xa0, 0xcc, 0x27, 0xd5, 0x96, 0x45, 0x73, 0x75, 0x8e, 0xc9, 0xbc, 0xf9, 0x18, 0xfb, 0x24, + 0xa7, 0x32, 0xf6, 0x49, 0xce, 0x48, 0xd2, 0xfc, 0xd4, 0x68, 0xd2, 0xfc, 0xd0, 0xb3, 0x1d, 0x18, + 0x7d, 0xb6, 0xf3, 0x05, 0x58, 0x49, 0x7c, 0x14, 0x0b, 0x1d, 0x1f, 0x53, 0xa6, 0x99, 0xec, 0xe9, + 0x3c, 0xfc, 0x45, 0x4d, 0xd1, 0x0a, 0xef, 0x61, 0xca, 0x24, 0xaf, 0xf7, 0xa9, 0xf5, 0x37, 0x25, + 0xa8, 0xe8, 0xbb, 0xb9, 0xcc, 0x6e, 0xc7, 0x78, 0xcc, 0x6e, 0x07, 0x9d, 0xe3, 0x4b, 0x20, 0x8b, + 0x07, 0x78, 0xc7, 0x27, 0x6a, 0x85, 0x4d, 0x01, 0x7c, 0xed, 0xc5, 0x3b, 0x61, 0xcc, 0x54, 0xc8, + 0x4d, 0x16, 0xd0, 0x3a, 0x54, 0x74, 0x22, 0xfb, 0xc8, 0xa5, 0xf3, 0x7b, 0xb1, 0xc7, 0x88, 0xce, + 0x64, 0xb7, 0x13, 0x3a, 0xee, 0x04, 0xb0, 0xcf, 0x4d, 0x7a, 0xa0, 0xf2, 0x2f, 0x27, 0x94, 0x13, + 0x48, 0xbc, 0x8c, 0xc4, 0x8a, 0x14, 0x4c, 0x7b, 0x1a, 0x67, 0x4a, 0xe8, 0x15, 0xa8, 0xe8, 0x27, + 0x9f, 0x23, 0x79, 0x81, 0x37, 0x14, 0xc2, 0x4e, 0x48, 0xd0, 0x0d, 0x98, 0x4d, 0x14, 0xe1, 0x90, + 0xc3, 0xc8, 0x8b, 0x49, 0x5b, 0x65, 0x06, 0x36, 0x72, 0x6b, 0x2a, 0x57, 0xcb, 0x4d, 0x89, 0xb7, + 0xeb, 0x6e, 0x1e, 0xc0, 0x1d, 0x2f, 0x37, 0xb7, 0xf4, 0xba, 0xa2, 0x22, 0x5a, 0x98, 0xcf, 0xde, + 0x4a, 0x3f, 0x50, 0x57, 0x17, 0x76, 0x95, 0xa5, 0x05, 0x74, 0x07, 0xe6, 0xd2, 0xfe, 0x59, 0xc8, + 0x15, 0x19, 0x77, 0xe4, 0x73, 0x8c, 0xea, 0xfa, 0xf2, 0x08, 0x07, 0xad, 0x30, 0xbc, 0xc7, 0x09, + 0x6c, 0xd3, 0x1d, 0x82, 0xa0, 0x0d, 0x30, 0xd3, 0x57, 0x58, 0xbb, 0xd8, 0xf3, 0x49, 0x5b, 0x2c, + 0xb0, 0xd9, 0x81, 0x24, 0xcf, 0xb0, 0x6e, 0x09, 0xbc, 0x9d, 0xbe, 0xdb, 0x92, 0x00, 0xde, 0x88, + 0x9e, 0xaa, 0x3d, 0x8f, 0xf6, 0x30, 0x73, 0xbb, 0xc2, 0x96, 0xb2, 0x8d, 0xa8, 0x24, 0xd3, 0xfb, + 0x0a, 0x6f, 0xd7, 0xa3, 0x3c, 0xc0, 0xfa, 0xcb, 0x02, 0xcc, 0xe4, 0x54, 0x9b, 0xdb, 0x01, 0x1a, + 0xf9, 0xfd, 0xff, 0x05, 0xa8, 0x66, 0x1f, 0x3a, 0xa8, 0x14, 0x0d, 0x37, 0x7d, 0xde, 0x30, 0x3a, + 0xef, 0x1b, 0x50, 0xd6, 0xf9, 0xaf, 0xf2, 0x86, 0x4e, 0x17, 0xf9, 0x72, 0x99, 0x34, 0x96, 0xce, + 0x2f, 0xe9, 0x00, 0x4c, 0x8d, 0x49, 0x26, 0xd9, 0x1b, 0x30, 0x19, 0x13, 0x4c, 0xc3, 0x40, 0xb9, + 0x81, 0xf3, 0xe3, 0x0d, 0x73, 0xcd, 0x16, 0x44, 0xb6, 0x22, 0xb6, 0x0e, 0x60, 0x52, 0x42, 0x50, + 0x15, 0xca, 0xef, 0x06, 0x7b, 0x41, 0x78, 0x10, 0x98, 0x67, 0x50, 0x0d, 0x60, 0x2b, 0x62, 0x2a, + 0x63, 0xd7, 0x34, 0xd0, 0x3c, 0x98, 0xd9, 0xa4, 0x7a, 0x3e, 0x4d, 0xcc, 0x02, 0x42, 0x50, 0x6b, + 0x12, 0x7f, 0xd7, 0x0e, 0x7d, 0x9f, 0xb4, 0xaf, 0x63, 0x77, 0xcf, 0x2c, 0xa2, 0x19, 0x98, 0xb2, + 0x5d, 0x99, 0xae, 0x4b, 0xcd, 0x12, 0x5a, 0x82, 0xb9, 0x7b, 0xf8, 0xeb, 0x83, 0x77, 0x03, 0xef, + 0x83, 0x3e, 0x09, 0x08, 0xa5, 0x02, 0x65, 0x4e, 0x58, 0x17, 0x61, 0x3a, 0x6b, 0xf8, 0x5a, 0x32, + 0x46, 0x7a, 0x72, 0xf8, 0x0d, 0x03, 0x2a, 0xda, 0xc8, 0xb3, 0xd9, 0xd2, 0x46, 0x2e, 0x5b, 0x5a, + 0xfb, 0xcd, 0xf4, 0xd8, 0x21, 0x08, 0xf9, 0x29, 0x78, 0x15, 0x66, 0xf5, 0xd4, 0xe0, 0x68, 0xa7, + 0x8b, 0x69, 0x57, 0x25, 0x61, 0xd4, 0x35, 0xe2, 0x2e, 0x19, 0xdc, 0xc1, 0xb4, 0x8b, 0xde, 0x00, + 0x10, 0xcf, 0x8b, 0xdc, 0x2e, 0xf6, 0x02, 0x75, 0x84, 0x5c, 0x5c, 0x4b, 0xde, 0x5b, 0xbf, 0x87, + 0x3d, 0x76, 0x2b, 0x8c, 0x6f, 0x06, 0x7c, 0xf3, 0x30, 0xc5, 0x29, 0x37, 0x38, 0xa1, 0xf5, 0x2d, + 0x03, 0xea, 0x43, 0x13, 0xea, 0x28, 0xfb, 0x58, 0x83, 0x39, 0xcc, 0x18, 0xe9, 0x45, 0x7c, 0xe7, + 0x90, 0xea, 0x54, 0xda, 0xc9, 0x6c, 0x82, 0x4a, 0x94, 0x3a, 0x6a, 0x2e, 0x23, 0xfe, 0xb6, 0x34, + 0xe2, 0x6f, 0xad, 0x4d, 0xa8, 0x66, 0xa6, 0xe8, 0x63, 0xec, 0xf5, 0xc8, 0x24, 0x75, 0xeb, 0x2a, + 0x98, 0xc3, 0xb3, 0x35, 0x7f, 0x3f, 0x6c, 0x0c, 0xdd, 0x0f, 0xff, 0x99, 0x01, 0xf5, 0xa1, 0x89, + 0x79, 0x14, 0x03, 0xa3, 0x37, 0x39, 0x9f, 0x81, 0xa9, 0x64, 0x1e, 0x8b, 0x81, 0xd7, 0xd6, 0xd1, + 0xe8, 0x94, 0xb7, 0x53, 0x22, 0xae, 0x66, 0xe1, 0x58, 0xbd, 0xa0, 0x33, 0x9c, 0x31, 0x5f, 0xd7, + 0x08, 0x9d, 0x33, 0xff, 0x69, 0x40, 0x09, 0xed, 0xc8, 0x9c, 0xd2, 0x98, 0x44, 0x90, 0xd7, 0xa0, + 0x3e, 0xe4, 0x1f, 0xf2, 0xa9, 0xda, 0xc6, 0x63, 0x53, 0xb5, 0xad, 0x3f, 0x37, 0x00, 0xf8, 0x61, + 0x40, 0x66, 0xbe, 0xa0, 0x4f, 0xc2, 0xac, 0x30, 0xb3, 0x03, 0xec, 0xfb, 0xf2, 0xec, 0xd0, 0xd3, + 0x32, 0xa9, 0x71, 0xc4, 0x7b, 0xd8, 0xf7, 0x39, 0xf9, 0x7d, 0x8a, 0xae, 0xc2, 0x7c, 0x14, 0x87, + 0x2e, 0xa1, 0x34, 0x4f, 0xad, 0x8c, 0x45, 0xe1, 0x32, 0x15, 0xd6, 0x60, 0x7e, 0x6f, 0x5f, 0x6c, + 0xbd, 0xf3, 0x15, 0xa4, 0xc5, 0x9b, 0x7b, 0xfb, 0x7c, 0x13, 0x9e, 0xa1, 0x5f, 0x87, 0x45, 0x16, + 0x32, 0xec, 0x3b, 0x71, 0xe4, 0x66, 0x6a, 0x04, 0x5a, 0x78, 0x48, 0x60, 0xed, 0xc8, 0xd5, 0x75, + 0x1e, 0x50, 0xeb, 0x9b, 0x05, 0x98, 0x4e, 0x87, 0xf3, 0x70, 0x7d, 0xcc, 0x80, 0x82, 0xb1, 0x03, + 0x7a, 0xf0, 0x88, 0x01, 0x05, 0x8f, 0x1a, 0xd0, 0x03, 0x8a, 0xde, 0x82, 0x73, 0xba, 0x02, 0xed, + 0xd3, 0x88, 0x04, 0xed, 0x7c, 0x45, 0x39, 0xb0, 0x86, 0xa2, 0x69, 0x4a, 0x92, 0x4c, 0xfd, 0xb1, + 0x02, 0x49, 0x86, 0x37, 0x24, 0x90, 0x07, 0x47, 0x09, 0x64, 0xe2, 0x91, 0x02, 0xf9, 0x0a, 0x54, + 0xf8, 0x09, 0x4e, 0x6c, 0x0d, 0xe7, 0x61, 0x42, 0x50, 0x88, 0xf1, 0x17, 0x6d, 0x59, 0xe0, 0xfb, + 0x0c, 0xc5, 0x21, 0x69, 0x8b, 0xb1, 0x16, 0xed, 0x14, 0x90, 0x44, 0x6f, 0x76, 0x06, 0x8c, 0xc8, + 0x11, 0x15, 0x65, 0xf4, 0xe6, 0x3a, 0x07, 0x58, 0xff, 0xd3, 0x00, 0xe0, 0xed, 0x2b, 0xf3, 0x79, + 0x19, 0x26, 0xc4, 0x1b, 0xd9, 0x11, 0xcb, 0xd3, 0x3c, 0xd8, 0x12, 0x8f, 0x2e, 0x43, 0x29, 0x79, + 0xfb, 0x33, 0x96, 0x4e, 0xa0, 0x39, 0x59, 0x1b, 0x33, 0x3c, 0x12, 0x3a, 0x49, 0xc9, 0x38, 0xda, + 0xfa, 0xa7, 0x09, 0xf9, 0xfa, 0x3f, 0xd1, 0xfa, 0x2b, 0x80, 0x92, 0x21, 0xe8, 0x6d, 0xae, 0x56, + 0xfb, 0x6c, 0x82, 0x51, 0x9b, 0x5d, 0x8a, 0xde, 0x84, 0xa5, 0x51, 0xf2, 0xec, 0x9b, 0xf2, 0x85, + 0x91, 0x3a, 0x62, 0x77, 0x7b, 0x19, 0x6a, 0x52, 0x21, 0x49, 0x17, 0x2a, 0xbb, 0x5a, 0x40, 0x93, + 0xe6, 0xbf, 0x0c, 0xe7, 0x62, 0x7e, 0xde, 0x6a, 0xef, 0x38, 0x6d, 0x71, 0x9f, 0xe5, 0xd0, 0x3d, + 0x2f, 0x8a, 0x84, 0x8b, 0xed, 0x07, 0x4c, 0xd9, 0xc9, 0xb2, 0xa2, 0x91, 0x57, 0x5e, 0x4d, 0x49, + 0xb1, 0xc1, 0x09, 0xf8, 0x81, 0x59, 0x37, 0xc0, 0xd7, 0x89, 0x7c, 0x6d, 0x69, 0x2d, 0x8b, 0x8a, + 0xe0, 0x2e, 0x19, 0xe4, 0xaa, 0xbe, 0x0d, 0xe7, 0x75, 0xd5, 0x1d, 0xe1, 0x18, 0x44, 0x3c, 0xc1, + 0xe9, 0xf2, 0xa5, 0x44, 0x54, 0x9f, 0xc8, 0x75, 0x7e, 0x9d, 0xd3, 0x88, 0xf0, 0xc2, 0x1d, 0x8f, + 0xc9, 0x16, 0x3e, 0x0b, 0x8d, 0x7c, 0x0b, 0xc2, 0x1e, 0x64, 0x65, 0x99, 0x7d, 0xb3, 0x90, 0xad, + 0xcc, 0x6d, 0x56, 0x56, 0x7c, 0x03, 0x96, 0xc6, 0x54, 0xe4, 0x86, 0xa4, 0xb6, 0xf5, 0xf3, 0xc3, + 0xf5, 0xb8, 0x4d, 0x3d, 0xa2, 0xbf, 0x00, 0x07, 0xa1, 0xde, 0xbc, 0x8f, 0xf4, 0xf7, 0x80, 0x23, + 0xb9, 0xef, 0xec, 0x10, 0xe6, 0xd0, 0x00, 0x47, 0xb4, 0x1b, 0x32, 0x55, 0x45, 0x3e, 0xe8, 0x37, + 0x3b, 0x84, 0x35, 0x15, 0x42, 0x52, 0x73, 0xc1, 0x24, 0x61, 0x49, 0x27, 0x8a, 0xc3, 0x28, 0xa4, + 0xc4, 0x11, 0xbe, 0x42, 0x56, 0xac, 0x2a, 0xc1, 0xe8, 0x48, 0xe5, 0xb6, 0x24, 0xe1, 0x2b, 0xed, + 0xb8, 0x16, 0xf8, 0x86, 0xc7, 0x8b, 0x7b, 0xd9, 0x16, 0xa6, 0x87, 0x5a, 0xd8, 0x90, 0x24, 0xa3, + 0x2d, 0x44, 0x61, 0xe8, 0x3b, 0xd4, 0xed, 0x92, 0x76, 0xdf, 0xcf, 0xf1, 0x30, 0x93, 0xb6, 0xb0, + 0x1d, 0x86, 0x7e, 0x53, 0x91, 0x24, 0x2d, 0x58, 0xff, 0xdb, 0x80, 0x6a, 0x26, 0x8f, 0x11, 0xbd, + 0x0e, 0x55, 0xe1, 0x13, 0x64, 0xda, 0xa3, 0x9a, 0x86, 0x69, 0xc0, 0x20, 0x75, 0x8d, 0x36, 0xb0, + 0xd4, 0xeb, 0xbf, 0x0e, 0x55, 0x11, 0xfd, 0x51, 0xb5, 0x0a, 0x43, 0xb5, 0xd2, 0xa9, 0x65, 0x03, + 0x4d, 0xfe, 0xcb, 0x44, 0x6b, 0x79, 0x32, 0xb6, 0xfe, 0xd9, 0x80, 0x99, 0x5c, 0x3e, 0xe5, 0x09, + 0x39, 0xf9, 0x22, 0xd4, 0x32, 0x9c, 0x38, 0xfb, 0xeb, 0x8a, 0x99, 0x85, 0x31, 0xcc, 0x3c, 0x5c, + 0xb7, 0xa7, 0x69, 0x76, 0xd6, 0x7f, 0x16, 0xa6, 0x85, 0x77, 0xd1, 0x7d, 0x16, 0x87, 0xce, 0x05, + 0x62, 0xa3, 0xa9, 0x3a, 0xad, 0x1e, 0xa4, 0x05, 0xde, 0x6b, 0x86, 0xd7, 0x34, 0x63, 0x77, 0x61, + 0x0c, 0xbb, 0xbc, 0x57, 0x96, 0x29, 0x59, 0x1f, 0x96, 0xa1, 0x9a, 0x69, 0x19, 0xbd, 0x06, 0x8b, + 0x94, 0x85, 0x31, 0x71, 0x76, 0xf8, 0x82, 0x9c, 0xd5, 0xa6, 0xf4, 0x3f, 0x73, 0x02, 0x2b, 0xae, + 0x68, 0x53, 0x4b, 0x78, 0x43, 0x78, 0x20, 0x61, 0x82, 0x54, 0xae, 0x23, 0x49, 0x2d, 0xe9, 0x52, + 0xe6, 0x15, 0xba, 0x29, 0x96, 0x10, 0x5d, 0x6d, 0x15, 0x66, 0x23, 0xee, 0x65, 0xc4, 0xbb, 0xf4, + 0x8e, 0xaa, 0xa0, 0x76, 0x90, 0x0a, 0x71, 0x2f, 0xec, 0x48, 0xda, 0x0d, 0xb8, 0x10, 0xe3, 0x5d, + 0xe6, 0xb4, 0x77, 0x1c, 0x29, 0x25, 0x9f, 0xe0, 0x36, 0x89, 0xb3, 0x5d, 0x49, 0x57, 0xb2, 0xc2, + 0xc9, 0x6e, 0xec, 0x88, 0x31, 0xdd, 0x13, 0x34, 0x69, 0x87, 0xeb, 0xb0, 0xa8, 0x1b, 0xd1, 0xb1, + 0x47, 0x55, 0x57, 0x2d, 0x41, 0xb2, 0x6e, 0x53, 0xc6, 0x21, 0x65, 0x9d, 0xb7, 0xe0, 0x5c, 0xbe, + 0xe3, 0x1e, 0xe9, 0x31, 0x7e, 0x88, 0x55, 0x35, 0xa5, 0x13, 0x69, 0x64, 0x7a, 0xbd, 0xaf, 0x08, + 0x64, 0xfd, 0x2b, 0xa0, 0xce, 0x5f, 0x99, 0xde, 0xa4, 0x03, 0x51, 0xf1, 0xac, 0xa4, 0xa7, 0xd7, + 0x60, 0x11, 0x47, 0x91, 0x3f, 0x18, 0x15, 0xbd, 0x74, 0xe3, 0x73, 0x02, 0x3b, 0x24, 0xfa, 0x97, + 0xa0, 0x2e, 0x2b, 0xa5, 0xad, 0x4f, 0xa9, 0x67, 0xa4, 0x1c, 0x3c, 0xda, 0x78, 0xaf, 0xcf, 0xc8, + 0xa1, 0x7c, 0x73, 0x9a, 0x75, 0x31, 0xb2, 0xf1, 0xfb, 0x1c, 0xc9, 0xf7, 0x59, 0xc9, 0x0c, 0x97, + 0x95, 0x1e, 0x25, 0x72, 0xe5, 0x65, 0x04, 0xd1, 0x58, 0x89, 0xbf, 0x0a, 0x0b, 0xd9, 0x16, 0x0e, + 0xb0, 0x9f, 0xf3, 0x2e, 0x28, 0xad, 0xf9, 0x1e, 0xf6, 0x65, 0x95, 0x2f, 0xc2, 0x4a, 0xb6, 0xca, + 0x90, 0xb8, 0xa5, 0x4f, 0x59, 0x4a, 0xeb, 0x8d, 0x48, 0xdb, 0x1f, 0x96, 0x9e, 0x8c, 0xc9, 0xd6, + 0xfc, 0xbc, 0xe0, 0x5e, 0x84, 0x19, 0xbd, 0xfd, 0x91, 0x64, 0x2a, 0x16, 0xab, 0x80, 0x92, 0x88, + 0x2f, 0x91, 0xdd, 0x38, 0x64, 0x2c, 0xe9, 0xdf, 0x54, 0x4b, 0xa4, 0x82, 0x4a, 0xb2, 0xff, 0x04, + 0x67, 0x87, 0xdf, 0x68, 0x66, 0x19, 0x98, 0x55, 0x3b, 0xa9, 0xe1, 0xaf, 0x0c, 0x68, 0x37, 0xf8, + 0x3e, 0x4c, 0xca, 0xbc, 0x84, 0x34, 0x3d, 0xda, 0x78, 0x4c, 0x82, 0xf8, 0x31, 0xd3, 0xf7, 0xac, + 0x0f, 0x0d, 0xa8, 0xe8, 0x97, 0x55, 0xe8, 0x2c, 0x14, 0xc2, 0x48, 0x7d, 0xa1, 0x20, 0x17, 0xc7, + 0x2a, 0x84, 0xd1, 0xb1, 0x13, 0x02, 0x73, 0x27, 0x88, 0xd2, 0x31, 0x4e, 0x10, 0xd6, 0x4f, 0x0b, + 0x30, 0x75, 0x7f, 0xdf, 0x75, 0x85, 0xba, 0xd0, 0x85, 0xdc, 0x87, 0x12, 0x72, 0x6c, 0xc8, 0xcf, + 0x21, 0x1c, 0x71, 0x01, 0x78, 0x76, 0xe4, 0xa3, 0x00, 0x99, 0x07, 0x83, 0x17, 0xa0, 0x4a, 0xbb, + 0x61, 0xcc, 0x9c, 0xcc, 0x67, 0x01, 0x6c, 0x10, 0x20, 0xf1, 0x09, 0x0a, 0xbe, 0x4f, 0xea, 0x62, + 0xea, 0x84, 0xfb, 0x24, 0xf6, 0xb1, 0xd8, 0x82, 0xe8, 0x47, 0xba, 0x2a, 0x69, 0x6f, 0xa1, 0x8b, + 0xe9, 0x56, 0x82, 0xd5, 0xaf, 0x5f, 0xd0, 0x45, 0x98, 0xe6, 0xf5, 0x3a, 0xae, 0xb3, 0x2b, 0x3e, + 0xc6, 0x20, 0x93, 0x56, 0xa0, 0x8b, 0xe9, 0x6d, 0xf7, 0x96, 0xf8, 0x1a, 0xc3, 0x32, 0x54, 0x12, 0xac, 0x9c, 0xdb, 0xe5, 0x8e, 0x42, 0x7d, 0x02, 0x6a, 0x22, 0xde, 0xe6, 0x76, 0x71, 0xd0, 0x11, 0x41, 0x41, 0x39, 0x99, 0xa7, 0x39, 0x74, 0x43, 0x00, 0x45, 0x78, 0x61, 0x29, 0xd9, 0xb8, 0xe9, 0x08, 0x9d, 0xac, 0xa1, 0x66, 0xf3, 0xbc, 0x46, 0xcb, 0xf0, 0x9c, 0xac, 0x68, 0x7d, 0x49, 0x0a, - 0x56, 0x0e, 0xef, 0x88, 0x73, 0xe0, 0xd8, 0xef, 0x48, 0x58, 0xdf, 0x2b, 0x42, 0x85, 0x57, 0x17, - 0x51, 0xd5, 0xa7, 0x51, 0x4b, 0x26, 0xc8, 0x52, 0xcc, 0x07, 0x59, 0x1e, 0xab, 0x93, 0xd1, 0xa4, - 0xd1, 0xe3, 0x7c, 0xb7, 0x24, 0x1b, 0xb2, 0x2d, 0x0f, 0x87, 0x6c, 0x8f, 0x1b, 0x5b, 0x1d, 0x8a, - 0x9b, 0x4e, 0x8d, 0xc6, 0x4d, 0x2f, 0x40, 0x35, 0x79, 0xc9, 0xcd, 0x64, 0x64, 0xb5, 0x64, 0x83, + 0x56, 0x0e, 0xef, 0x88, 0x73, 0xe0, 0xd8, 0x2f, 0x4c, 0x58, 0xdf, 0x2b, 0x42, 0x85, 0x57, 0x17, + 0x51, 0xd5, 0xa7, 0x51, 0x4b, 0x26, 0xc8, 0x52, 0xcc, 0x07, 0x59, 0x1e, 0xab, 0x93, 0xd1, 0x74, + 0xd2, 0xe3, 0x7c, 0xd1, 0x24, 0x1b, 0xb2, 0x2d, 0x0f, 0x87, 0x6c, 0x8f, 0x1b, 0x5b, 0x1d, 0x8a, + 0x9b, 0x4e, 0x8d, 0xc6, 0x4d, 0x2f, 0x40, 0x35, 0x79, 0xe3, 0xcd, 0x64, 0x64, 0xb5, 0x64, 0x83, 0x06, 0xb5, 0xe8, 0x18, 0xe5, 0x56, 0x9f, 0x4c, 0xb9, 0xd3, 0x47, 0x28, 0xf7, 0x1b, 0x86, 0x54, - 0x8f, 0x38, 0xfc, 0xe8, 0x13, 0x87, 0x31, 0xe6, 0x12, 0x52, 0x24, 0x49, 0xc8, 0x13, 0xc7, 0x2a, - 0x4c, 0x0a, 0xaf, 0xa9, 0xb3, 0x21, 0x50, 0x8e, 0x50, 0x4c, 0x40, 0x5b, 0x51, 0x70, 0x5a, 0xf5, - 0x31, 0x8c, 0xe2, 0x18, 0x5a, 0xa1, 0x1e, 0xfd, 0x81, 0x0c, 0xeb, 0x35, 0x28, 0xab, 0x27, 0x31, - 0x42, 0x63, 0x87, 0x81, 0xb2, 0x30, 0xfe, 0x17, 0x2d, 0xc2, 0x24, 0x15, 0xcf, 0xc3, 0x95, 0x5d, - 0xa8, 0x92, 0xf5, 0xb6, 0x88, 0x1c, 0x8b, 0x7b, 0xf9, 0x7c, 0x2a, 0x88, 0xf1, 0xe8, 0x44, 0xa8, - 0x42, 0x2e, 0x11, 0xea, 0x4f, 0x0d, 0x00, 0xb9, 0xa2, 0x88, 0xae, 0x8f, 0xbc, 0x56, 0x5d, 0x82, + 0x8f, 0x38, 0xfc, 0xe8, 0x13, 0x87, 0x31, 0xe6, 0x12, 0x52, 0xa4, 0x4f, 0xc8, 0x13, 0xc7, 0x2a, + 0x4c, 0x0a, 0xaf, 0xa9, 0xf3, 0x24, 0x50, 0x8e, 0x50, 0x4c, 0x40, 0x5b, 0x51, 0x70, 0x5a, 0xf5, + 0x99, 0x8c, 0xe2, 0x18, 0x5a, 0xa1, 0x1e, 0xfd, 0xe9, 0x0c, 0xeb, 0x35, 0x28, 0xab, 0xc7, 0x32, + 0x42, 0x63, 0x87, 0x81, 0xb2, 0x30, 0xfe, 0x17, 0x2d, 0xc2, 0x24, 0x15, 0x0f, 0xc7, 0x95, 0x5d, + 0xa8, 0x92, 0xf5, 0xb6, 0x88, 0x1c, 0x8b, 0x7b, 0xf9, 0x7c, 0x92, 0x88, 0xf1, 0xe8, 0x14, 0xa9, + 0x42, 0x2e, 0x45, 0xea, 0x4f, 0x0c, 0x00, 0xb9, 0xa2, 0x88, 0xae, 0x8f, 0xbc, 0x56, 0x5d, 0x82, 0x72, 0x44, 0x48, 0xcc, 0x51, 0x8a, 0x0d, 0x5e, 0xdc, 0x6c, 0x27, 0xb7, 0xa2, 0xc5, 0xcc, 0xad, 0xe8, 0xf0, 0x1d, 0x6c, 0xe9, 0x98, 0x77, 0xb0, 0xaf, 0xaa, 0xf3, 0x24, 0x1f, 0x21, 0x51, 0xa1, 0x66, 0x94, 0xb9, 0xb6, 0xc1, 0xed, 0x26, 0xc7, 0xc8, 0x33, 0xa6, 0xf8, 0x6b, 0x6d, 0xc2, 0x54, - 0x02, 0x1f, 0xbd, 0x00, 0x34, 0xc6, 0x5f, 0x00, 0x8a, 0x97, 0x36, 0x2c, 0x15, 0x28, 0xde, 0x25, - 0x2d, 0x6a, 0x35, 0x01, 0xc9, 0xcc, 0x25, 0x21, 0x12, 0x7d, 0xcb, 0xf6, 0x4a, 0x9a, 0x9b, 0x21, - 0x5f, 0xce, 0xa6, 0xdb, 0xd4, 0x54, 0x76, 0x49, 0x82, 0x06, 0xaa, 0x41, 0x21, 0x69, 0xb8, 0xc0, + 0x02, 0x1f, 0xbd, 0x00, 0x34, 0xc6, 0x5f, 0x00, 0x8a, 0x37, 0x38, 0x2c, 0x15, 0x28, 0xde, 0x25, + 0x2d, 0x6a, 0x35, 0x01, 0xc9, 0x9c, 0x26, 0x21, 0x12, 0x7d, 0xcb, 0xf6, 0x4a, 0x9a, 0x9b, 0x21, + 0xdf, 0xd4, 0xa6, 0xdb, 0xd4, 0x54, 0x76, 0x49, 0x82, 0x06, 0xaa, 0x41, 0x21, 0x69, 0xb8, 0xc0, 0xa8, 0xf5, 0x65, 0x98, 0xcb, 0x35, 0xaa, 0x2e, 0xd4, 0x1b, 0xf9, 0x56, 0x4b, 0x8f, 0x6e, 0xe0, 0x06, 0xa0, 0x26, 0xdf, 0x13, 0x36, 0x39, 0x93, 0x4d, 0xcd, 0xd5, 0x1a, 0x4c, 0xf1, 0xc3, 0x9e, 0x48, 0xc7, 0x18, 0xb7, 0x9a, 0xc9, 0x74, 0x8d, 0xca, 0x9e, 0xfa, 0x67, 0xad, 0xc1, 0x5c, 0xae, - 0x15, 0xc5, 0x46, 0x46, 0x16, 0x46, 0x4e, 0x16, 0xae, 0x48, 0x71, 0xbc, 0x4d, 0xb8, 0x01, 0xb5, - 0x5a, 0xf7, 0x9e, 0xcd, 0x73, 0x85, 0x6f, 0x1a, 0x22, 0xed, 0x30, 0xd3, 0xcb, 0x33, 0x48, 0x37, - 0x48, 0xbf, 0x73, 0x20, 0xfc, 0xdf, 0x91, 0x0f, 0x16, 0x7e, 0x26, 0x33, 0xfb, 0x37, 0xae, 0x35, - 0x9f, 0x65, 0x66, 0xff, 0xa7, 0x01, 0x45, 0x31, 0xd9, 0xf7, 0xc2, 0x3e, 0xcd, 0x7c, 0xbe, 0x42, - 0xf2, 0x62, 0x6a, 0x4c, 0xf2, 0xf1, 0x8a, 0xcb, 0x50, 0x4b, 0xa8, 0x65, 0x63, 0xf2, 0x45, 0xe3, - 0x8c, 0x86, 0x3e, 0xcc, 0x3c, 0x17, 0x98, 0x1c, 0x7e, 0x2e, 0x50, 0x4e, 0x46, 0x6e, 0x7d, 0x24, - 0xd3, 0x9b, 0xc5, 0xe0, 0x4e, 0x5b, 0xce, 0x0d, 0x28, 0xd3, 0xbe, 0xeb, 0x12, 0x95, 0xa8, 0x53, + 0x15, 0xc5, 0x46, 0x46, 0x16, 0x46, 0x4e, 0x16, 0xae, 0x48, 0x7e, 0xbc, 0x4d, 0xb8, 0x01, 0xb5, + 0x5a, 0xf7, 0x9e, 0xcd, 0x43, 0x86, 0x6f, 0x1a, 0x22, 0x21, 0x31, 0xd3, 0xcb, 0x33, 0x48, 0x37, + 0x48, 0xbf, 0x80, 0x20, 0xfc, 0xdf, 0x91, 0x4f, 0x19, 0x7e, 0x26, 0x73, 0xfe, 0x37, 0xae, 0x35, + 0x9f, 0x65, 0xce, 0xff, 0xa7, 0x01, 0x45, 0x31, 0xd9, 0xf7, 0xc2, 0x3e, 0xcd, 0x7c, 0xd8, 0x42, + 0xf2, 0x62, 0x6a, 0x4c, 0xf2, 0x59, 0x8b, 0xcb, 0x50, 0x4b, 0xa8, 0x65, 0x63, 0xf2, 0xad, 0xe3, + 0x8c, 0x86, 0x3e, 0xcc, 0x3c, 0x24, 0x98, 0x1c, 0x7e, 0x48, 0x50, 0x4e, 0x46, 0x6e, 0x7d, 0x24, + 0x13, 0x9f, 0xc5, 0xe0, 0x4e, 0x5b, 0xce, 0x0d, 0x28, 0xd3, 0xbe, 0xeb, 0x12, 0x95, 0xa8, 0x53, 0xb1, 0x75, 0xf1, 0x99, 0x0c, 0xd6, 0xba, 0x01, 0x8b, 0xb7, 0x09, 0xd3, 0xbb, 0x3c, 0x31, 0x01, 0x9f, 0x5c, 0x5f, 0xd6, 0xb7, 0x0d, 0x58, 0x1a, 0x69, 0xe6, 0xb4, 0x25, 0xf3, 0x19, 0xee, 0x7c, 0x99, 0x58, 0x02, 0x8b, 0x47, 0xc6, 0xe5, 0x35, 0x99, 0x75, 0x1b, 0x96, 0x33, 0x5c, 0xdd, 0xf1, 0xf8, 0x89, 0xf0, 0x24, 0xe9, 0x4c, 0xd6, 0x77, 0x0c, 0x58, 0x19, 0xd7, 0xd2, 0x2f, 0x7e, 0x88, - 0x7f, 0x26, 0x13, 0xc6, 0x37, 0x42, 0x75, 0x1a, 0x08, 0xe3, 0x13, 0x66, 0xff, 0xba, 0x61, 0x14, + 0x7f, 0x2a, 0x53, 0xc9, 0x37, 0x42, 0x75, 0x1a, 0x08, 0xe3, 0x13, 0xe6, 0x05, 0xbb, 0x61, 0x14, 0xcb, 0x8b, 0x73, 0xc9, 0x51, 0x85, 0x03, 0xc4, 0x7d, 0xb9, 0x38, 0x17, 0x46, 0xb1, 0x0e, 0xbe, - 0x39, 0x31, 0xf9, 0x40, 0x79, 0x9e, 0x1a, 0x87, 0xa7, 0x4f, 0xd6, 0x32, 0x69, 0x6f, 0xa5, 0xc7, - 0xa5, 0x62, 0x23, 0x15, 0x71, 0x94, 0x46, 0x29, 0xc3, 0x8b, 0x7d, 0x91, 0x70, 0x9e, 0x1b, 0xca, - 0x69, 0x0b, 0x18, 0x65, 0x02, 0x9d, 0xba, 0xdb, 0xef, 0xcb, 0x87, 0x38, 0x62, 0x6d, 0xa1, 0xfd, + 0x39, 0x31, 0xf9, 0x40, 0x79, 0x9e, 0x1a, 0x87, 0xa7, 0x8f, 0xd9, 0x32, 0x69, 0x6f, 0xa5, 0xc7, + 0x25, 0x69, 0x23, 0x15, 0x71, 0x94, 0x46, 0x29, 0xc3, 0x8b, 0x7d, 0x91, 0x8a, 0x9e, 0x1b, 0xca, + 0x69, 0x0b, 0x18, 0x65, 0x02, 0x9d, 0xba, 0xdb, 0xef, 0xcb, 0x27, 0x3a, 0x62, 0x6d, 0xa1, 0xfd, 0xde, 0x49, 0xe4, 0xf7, 0x39, 0x98, 0xc2, 0x7e, 0x27, 0x8c, 0x3d, 0xd6, 0xed, 0x89, 0x0e, 0x6b, - 0xeb, 0x2b, 0x29, 0xb5, 0x6a, 0xf8, 0x9a, 0xa6, 0xb0, 0x53, 0xe2, 0x27, 0xc9, 0x14, 0xfc, 0x03, - 0x99, 0x2c, 0x9f, 0xf2, 0x79, 0xda, 0xc2, 0x59, 0x81, 0x8a, 0xab, 0x1a, 0x4f, 0xce, 0x2c, 0xaa, - 0xcc, 0x2d, 0x44, 0x86, 0x60, 0xf7, 0xf6, 0x93, 0xef, 0x9c, 0x08, 0xc0, 0xdd, 0x7d, 0xb1, 0xfd, + 0xeb, 0x2b, 0x29, 0xb5, 0x6a, 0xf8, 0x9a, 0xa6, 0xb0, 0x53, 0xe2, 0x27, 0xc9, 0x14, 0xfc, 0x7d, + 0x99, 0x46, 0x9f, 0xf2, 0x79, 0xda, 0xc2, 0x59, 0x81, 0x8a, 0xab, 0x1a, 0x4f, 0xce, 0x2c, 0xaa, + 0xcc, 0x2d, 0x44, 0x86, 0x60, 0xf7, 0xf6, 0x93, 0x2f, 0xa0, 0x08, 0xc0, 0xdd, 0x7d, 0xb1, 0xfd, 0x94, 0x48, 0x19, 0xbd, 0x96, 0x7b, 0x64, 0x10, 0x20, 0x19, 0xbe, 0xfe, 0x41, 0x11, 0xa6, 0x37, 0xc2, 0x5e, 0x84, 0x5d, 0x26, 0x19, 0x78, 0x1f, 0x16, 0x48, 0x1c, 0x3b, 0x5e, 0xb0, 0x8f, 0x7d, 0xaf, 0xed, 0xe4, 0x77, 0x5c, 0xd5, 0xf5, 0x4f, 0x64, 0xef, 0x88, 0x93, 0x5a, 0x9b, 0x92, 0xba, 0xa9, 0x76, 0x63, 0x77, 0xce, 0xd8, 0x88, 0xc4, 0xc3, 0x50, 0xe4, 0xc3, 0x39, 0xde, 0x74, 0xa4, - 0x92, 0x73, 0x1d, 0x75, 0x26, 0x4f, 0x1c, 0xa6, 0x0c, 0x74, 0xad, 0x8e, 0xed, 0x41, 0x67, 0xf4, + 0xd2, 0x76, 0x1d, 0x75, 0x26, 0x4f, 0x1c, 0xa6, 0x0c, 0x74, 0xad, 0x8e, 0xed, 0x41, 0xe7, 0xfa, 0xb6, 0xc4, 0x39, 0x5d, 0xb9, 0xd2, 0x3b, 0x67, 0xec, 0x06, 0x89, 0xc7, 0xe3, 0x90, 0x03, 0x4b, 0xbc, 0x37, 0x57, 0x36, 0xe2, 0x78, 0x81, 0x13, 0xc5, 0x61, 0x27, 0x26, 0x94, 0xaa, 0xb0, 0xd8, 0x4b, 0x63, 0x3b, 0x52, 0xff, 0x37, 0x83, 0x6d, 0x45, 0x7d, 0xe7, 0x8c, 0x3d, 0x4f, 0xe2, 0x51, @@ -10741,44 +10752,44 @@ var fileDescriptor_1afe832be69693c7 = []byte{ 0xd1, 0x53, 0xf2, 0xc8, 0xbd, 0xf9, 0x2a, 0xcc, 0x0e, 0xe9, 0xdc, 0xd3, 0xf7, 0x2c, 0xf5, 0x28, 0xcb, 0xe5, 0x66, 0x5b, 0x04, 0x5f, 0xc2, 0x4e, 0x9e, 0x54, 0xde, 0xb9, 0xd4, 0x14, 0x5c, 0x53, 0x0e, 0x65, 0x86, 0x95, 0x8f, 0x97, 0x19, 0x36, 0x94, 0xe7, 0x54, 0x19, 0xce, 0x73, 0xb2, 0xfe, - 0x44, 0xde, 0x17, 0xcb, 0xc1, 0xa9, 0x79, 0xfc, 0xa9, 0x7c, 0x48, 0x65, 0x61, 0xac, 0x52, 0xf5, - 0x5c, 0x7d, 0x11, 0x66, 0xf8, 0x51, 0x3f, 0x26, 0x3d, 0xec, 0x05, 0x5e, 0xd0, 0x51, 0xd9, 0xfe, - 0xfc, 0xfc, 0x6f, 0x6b, 0x18, 0x5a, 0x13, 0x79, 0x18, 0xbc, 0x2e, 0xc9, 0xce, 0x31, 0xe9, 0xfc, - 0x66, 0x13, 0x54, 0x33, 0x23, 0xc2, 0x94, 0x3e, 0xff, 0x2a, 0xb8, 0x9e, 0x20, 0x6e, 0xca, 0x13, - 0xcf, 0x2b, 0xb0, 0xdc, 0xf2, 0xc4, 0x43, 0xdf, 0xe6, 0x80, 0x32, 0xd2, 0x13, 0x02, 0xd3, 0x8a, - 0x32, 0xa1, 0x48, 0x3f, 0xf0, 0x55, 0x0a, 0x16, 0xff, 0x6b, 0x45, 0xb0, 0x32, 0x8e, 0x5c, 0x0d, - 0xdd, 0x56, 0x6e, 0x59, 0xe8, 0xf4, 0xfa, 0x5b, 0x1f, 0xfd, 0xfc, 0xc2, 0x99, 0x9f, 0xfd, 0xfc, - 0xc2, 0x9b, 0x1d, 0x8f, 0x75, 0xfb, 0x3b, 0x6b, 0x6e, 0xd8, 0xbb, 0x1a, 0x79, 0x41, 0xc7, 0xc5, - 0xd1, 0xd5, 0xbd, 0x7d, 0xf9, 0x11, 0xf4, 0x68, 0xaf, 0x73, 0x95, 0x76, 0x71, 0x4c, 0xda, 0xc2, - 0xe7, 0xac, 0x35, 0xc5, 0x7f, 0xe1, 0x6d, 0xa4, 0x5b, 0x5f, 0x7d, 0x07, 0x96, 0x1f, 0xf9, 0x4d, - 0x4c, 0x34, 0x0f, 0x66, 0x5a, 0x7a, 0x10, 0xc6, 0x3d, 0xec, 0x9b, 0x67, 0xd0, 0x12, 0xcc, 0xa5, - 0xd0, 0x5b, 0x61, 0xec, 0x8a, 0x27, 0x0a, 0xa6, 0xb1, 0xea, 0xc3, 0xb9, 0xa3, 0x3e, 0x82, 0xc9, - 0x9b, 0x53, 0x0f, 0x00, 0xfa, 0x3e, 0x4b, 0x9a, 0xbb, 0x08, 0xe7, 0x52, 0xe8, 0xbd, 0x91, 0x6f, - 0x59, 0xca, 0x74, 0x8a, 0x94, 0x42, 0xde, 0x92, 0x9b, 0x85, 0xd5, 0x97, 0x01, 0x52, 0xbb, 0x42, - 0x93, 0x50, 0x78, 0xf8, 0xaa, 0x79, 0x06, 0x4d, 0xc1, 0xc4, 0xc3, 0x57, 0x5b, 0xad, 0x7b, 0xa6, - 0x21, 0x40, 0xeb, 0x66, 0x61, 0xf5, 0x53, 0x00, 0x69, 0x66, 0x2c, 0x02, 0x98, 0x4c, 0xba, 0x2e, - 0x43, 0xf1, 0x5e, 0x78, 0x60, 0x1a, 0xa8, 0x02, 0xa5, 0x3b, 0x5e, 0xa7, 0x6b, 0x16, 0x56, 0xaf, - 0x42, 0x2d, 0x9f, 0x0e, 0xcb, 0x9b, 0x69, 0x6e, 0x9a, 0x67, 0xf8, 0xaf, 0xbd, 0x61, 0x1a, 0x22, - 0x65, 0x63, 0x43, 0xa6, 0x6c, 0x34, 0xcd, 0xc2, 0xea, 0x43, 0xa8, 0x66, 0x52, 0x2b, 0x39, 0xaf, - 0x0f, 0x42, 0x76, 0xcd, 0xf7, 0xc3, 0x03, 0xd2, 0xde, 0x0a, 0x38, 0x58, 0x8a, 0x2c, 0x01, 0x5d, - 0xf3, 0x7b, 0x21, 0x65, 0x02, 0x61, 0xa0, 0x06, 0xcc, 0x67, 0x10, 0x22, 0xc1, 0x43, 0x60, 0x0a, - 0xab, 0x2e, 0x14, 0xb6, 0x22, 0xce, 0xe1, 0x76, 0x9f, 0x49, 0x56, 0x6f, 0x10, 0x5f, 0xb2, 0x2a, - 0xc4, 0x5d, 0x40, 0xd3, 0x50, 0xd1, 0x31, 0x2d, 0xb3, 0xc8, 0xc7, 0xb5, 0x19, 0x50, 0x12, 0x33, - 0xb3, 0x84, 0xe6, 0xa0, 0x3e, 0xa4, 0x08, 0x73, 0x02, 0x21, 0xa8, 0x09, 0xae, 0xb5, 0xfb, 0xa1, - 0xe6, 0xe4, 0xea, 0x1a, 0x4c, 0x25, 0x21, 0x3e, 0xde, 0xf2, 0x83, 0x30, 0x20, 0x52, 0x88, 0x82, - 0xc4, 0x34, 0x78, 0x27, 0xba, 0x82, 0x94, 0x4e, 0xfe, 0xa3, 0xcd, 0x9c, 0xaf, 0xad, 0xdd, 0x5d, - 0xf3, 0x0c, 0xaf, 0x7d, 0x0b, 0x8b, 0x2a, 0x00, 0x93, 0x4d, 0x16, 0x73, 0xd5, 0x15, 0x56, 0xbf, - 0x6b, 0xc0, 0xa4, 0xfa, 0xd4, 0xb1, 0x68, 0x49, 0xfe, 0x37, 0xcf, 0xa0, 0x05, 0x98, 0x6d, 0xb5, - 0xee, 0xc9, 0x24, 0x90, 0x64, 0x14, 0x42, 0x1e, 0x22, 0x5c, 0xad, 0xba, 0x4c, 0x30, 0x05, 0x5e, - 0xe1, 0x7e, 0x92, 0xb5, 0xd1, 0xdc, 0xee, 0xd3, 0x2e, 0x69, 0x9b, 0x45, 0x6e, 0x3d, 0x49, 0x3b, - 0x63, 0x3e, 0x57, 0x69, 0x96, 0xd0, 0x32, 0x2c, 0x64, 0x9b, 0xbc, 0x11, 0x3e, 0x08, 0x59, 0xd7, - 0x0b, 0x3a, 0xe6, 0xc4, 0xea, 0x65, 0x28, 0xdf, 0x3c, 0x64, 0x31, 0xde, 0x8a, 0xe4, 0xe0, 0xc3, - 0xc8, 0x3c, 0x83, 0x4c, 0x98, 0xe6, 0x07, 0xfc, 0x2d, 0xbf, 0x2d, 0xf6, 0xfe, 0xa6, 0xb1, 0x6a, - 0xc1, 0xec, 0xc8, 0xee, 0x84, 0x9b, 0xc1, 0x46, 0xec, 0xbe, 0xf9, 0xba, 0xf3, 0x5f, 0xc3, 0xd8, - 0x3c, 0x73, 0xfd, 0xa5, 0xbf, 0xfe, 0xed, 0x8a, 0xf1, 0xd1, 0xc7, 0x2f, 0x18, 0x3f, 0xf9, 0xf8, - 0x05, 0xe3, 0xef, 0x3e, 0x7e, 0xc1, 0xf8, 0x8d, 0xbf, 0x7f, 0xe1, 0x0c, 0x98, 0x61, 0xdc, 0x59, - 0x63, 0xde, 0xde, 0xfe, 0x9a, 0x9a, 0x91, 0x3b, 0x93, 0xe2, 0xe7, 0xb5, 0x7f, 0x0f, 0x00, 0x00, - 0xff, 0xff, 0xa0, 0x02, 0x4c, 0x78, 0xdf, 0x60, 0x00, 0x00, + 0x58, 0xde, 0x17, 0xcb, 0xc1, 0xa9, 0x79, 0xfc, 0xa9, 0x7c, 0x48, 0x65, 0x61, 0xac, 0x52, 0xf5, + 0x5c, 0x7d, 0x11, 0x66, 0xf8, 0x51, 0x3f, 0x26, 0x3d, 0xec, 0x05, 0x5e, 0xd0, 0x51, 0xef, 0x00, + 0xf8, 0xf9, 0xdf, 0xd6, 0x30, 0xb4, 0x26, 0xf2, 0x30, 0x78, 0x5d, 0x92, 0x9d, 0x63, 0xd2, 0xf9, + 0xcd, 0x26, 0xa8, 0x66, 0x46, 0x84, 0x29, 0x7d, 0xfe, 0xbd, 0x70, 0x3d, 0x41, 0xdc, 0x94, 0x27, + 0x9e, 0x57, 0x60, 0xb9, 0xe5, 0x89, 0x27, 0xc0, 0xcd, 0x01, 0x65, 0xa4, 0x27, 0x04, 0xa6, 0x15, + 0x65, 0x42, 0x91, 0x7e, 0xe0, 0xab, 0x14, 0x2c, 0xfe, 0xd7, 0x8a, 0x60, 0x65, 0x1c, 0xb9, 0x1a, + 0xba, 0xad, 0xdc, 0xb2, 0xd0, 0xe9, 0xf5, 0xb7, 0x3e, 0xfa, 0xf9, 0x85, 0x33, 0x3f, 0xfb, 0xf9, + 0x85, 0x37, 0x3b, 0x1e, 0xeb, 0xf6, 0x77, 0xd6, 0xdc, 0xb0, 0x77, 0x35, 0xf2, 0x82, 0x8e, 0x8b, + 0xa3, 0xab, 0x7b, 0xfb, 0xf2, 0xf3, 0xe8, 0xd1, 0x5e, 0xe7, 0x2a, 0xed, 0xe2, 0x98, 0xb4, 0x85, + 0xcf, 0x59, 0x6b, 0x8a, 0xff, 0xc2, 0xdb, 0x48, 0xb7, 0xbe, 0xfa, 0x0e, 0x2c, 0x3f, 0xf2, 0x6b, + 0x99, 0x68, 0x1e, 0xcc, 0xb4, 0xf4, 0x20, 0x8c, 0x7b, 0xd8, 0x37, 0xcf, 0xa0, 0x25, 0x98, 0x4b, + 0xa1, 0xb7, 0xc2, 0xd8, 0x15, 0x8f, 0x17, 0x4c, 0x63, 0xd5, 0x87, 0x73, 0x47, 0x7d, 0x1e, 0x93, + 0x37, 0xa7, 0x9e, 0x06, 0xf4, 0x7d, 0x96, 0x34, 0x77, 0x11, 0xce, 0xa5, 0xd0, 0x7b, 0x23, 0x5f, + 0xb9, 0x94, 0xe9, 0x14, 0x29, 0x85, 0xbc, 0x25, 0x37, 0x0b, 0xab, 0x2f, 0x03, 0xa4, 0x76, 0x85, + 0x26, 0xa1, 0xf0, 0xf0, 0x55, 0xf3, 0x0c, 0x9a, 0x82, 0x89, 0x87, 0xaf, 0xb6, 0x5a, 0xf7, 0x4c, + 0x43, 0x80, 0xd6, 0xcd, 0xc2, 0xea, 0xa7, 0x00, 0xd2, 0xcc, 0x58, 0x04, 0x30, 0x99, 0x74, 0x5d, + 0x86, 0xe2, 0xbd, 0xf0, 0xc0, 0x34, 0x50, 0x05, 0x4a, 0x77, 0xbc, 0x4e, 0xd7, 0x2c, 0xac, 0x5e, + 0x85, 0x5a, 0x3e, 0x1d, 0x96, 0x37, 0xd3, 0xdc, 0x34, 0xcf, 0xf0, 0x5f, 0x7b, 0xc3, 0x34, 0x44, + 0xca, 0xc6, 0x86, 0x4c, 0xd9, 0x68, 0x9a, 0x85, 0xd5, 0x87, 0x50, 0xcd, 0xa4, 0x56, 0x72, 0x5e, + 0x1f, 0x84, 0xec, 0x9a, 0xef, 0x87, 0x07, 0xa4, 0xbd, 0x15, 0x70, 0xb0, 0x14, 0x59, 0x02, 0xba, + 0xe6, 0xf7, 0x42, 0xca, 0x04, 0xc2, 0x40, 0x0d, 0x98, 0xcf, 0x20, 0x44, 0x82, 0x87, 0xc0, 0x14, + 0x56, 0x5d, 0x28, 0x6c, 0x45, 0x9c, 0xc3, 0xed, 0x3e, 0x93, 0xac, 0xde, 0x20, 0xbe, 0x64, 0x55, + 0x88, 0xbb, 0x80, 0xa6, 0xa1, 0xa2, 0x63, 0x5a, 0x66, 0x91, 0x8f, 0x6b, 0x33, 0xa0, 0x24, 0x66, + 0x66, 0x09, 0xcd, 0x41, 0x7d, 0x48, 0x11, 0xe6, 0x04, 0x42, 0x50, 0x13, 0x5c, 0x6b, 0xf7, 0x43, + 0xcd, 0xc9, 0xd5, 0x35, 0x98, 0x4a, 0x42, 0x7c, 0xbc, 0xe5, 0x07, 0x61, 0x40, 0xa4, 0x10, 0x05, + 0x89, 0x69, 0xf0, 0x4e, 0x74, 0x05, 0x29, 0x9d, 0xfc, 0xe7, 0x9c, 0x39, 0x5f, 0x5b, 0xbb, 0xbb, + 0xe6, 0x19, 0x5e, 0xfb, 0x16, 0x16, 0x55, 0x00, 0x26, 0x9b, 0x2c, 0xe6, 0xaa, 0x2b, 0xac, 0x7e, + 0xd7, 0x80, 0x49, 0xf5, 0x11, 0x64, 0xd1, 0x92, 0xfc, 0x6f, 0x9e, 0x41, 0x0b, 0x30, 0xdb, 0x6a, + 0xdd, 0x93, 0x49, 0x20, 0xc9, 0x28, 0x84, 0x3c, 0x44, 0xb8, 0x5a, 0x75, 0x99, 0x60, 0x0a, 0xbc, + 0xc2, 0xfd, 0x24, 0x6b, 0xa3, 0xb9, 0xdd, 0xa7, 0x5d, 0xd2, 0x36, 0x8b, 0xdc, 0x7a, 0x92, 0x76, + 0xc6, 0x7c, 0xc8, 0xd2, 0x2c, 0xa1, 0x65, 0x58, 0xc8, 0x36, 0x79, 0x23, 0x7c, 0x10, 0xb2, 0xae, + 0x17, 0x74, 0xcc, 0x89, 0xd5, 0xcb, 0x50, 0xbe, 0x79, 0xc8, 0x62, 0xbc, 0x15, 0xc9, 0xc1, 0x87, + 0x91, 0x79, 0x06, 0x99, 0x30, 0xcd, 0x0f, 0xf8, 0x5b, 0x7e, 0x5b, 0xec, 0xfd, 0x4d, 0x63, 0xd5, + 0x82, 0xd9, 0x91, 0xdd, 0x09, 0x37, 0x83, 0x8d, 0xd8, 0x7d, 0xf3, 0x75, 0xe7, 0x3f, 0x87, 0xb1, + 0x79, 0xe6, 0xfa, 0x4b, 0x7f, 0xf5, 0x9b, 0x15, 0xe3, 0xa3, 0x8f, 0x5f, 0x30, 0x7e, 0xf2, 0xf1, + 0x0b, 0xc6, 0xdf, 0x7e, 0xfc, 0x82, 0xf1, 0x6b, 0x7f, 0xf7, 0xc2, 0x19, 0x30, 0xc3, 0xb8, 0xb3, + 0xc6, 0xbc, 0xbd, 0xfd, 0x35, 0x35, 0x23, 0x77, 0x26, 0xc5, 0xcf, 0x6b, 0xff, 0x16, 0x00, 0x00, + 0xff, 0xff, 0xdc, 0xef, 0x3e, 0x50, 0xf9, 0x60, 0x00, 0x00, } func (m *GetRequest) Marshal() (dAtA []byte, err error) { @@ -15084,6 +15095,11 @@ func (m *SplitRegionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.Encrypt != 0 { + i = encodeVarintKvrpcpb(dAtA, i, uint64(m.Encrypt)) + i-- + dAtA[i] = 0x28 + } if m.IsRawKv { i-- if m.IsRawKv { @@ -20778,6 +20794,9 @@ func (m *SplitRegionRequest) Size() (n int) { if m.IsRawKv { n += 2 } + if m.Encrypt != 0 { + n += 1 + sovKvrpcpb(uint64(m.Encrypt)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -34039,6 +34058,25 @@ func (m *SplitRegionRequest) Unmarshal(dAtA []byte) error { } } m.IsRawKv = bool(v != 0) + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Encrypt", wireType) + } + m.Encrypt = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowKvrpcpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Encrypt |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipKvrpcpb(dAtA[iNdEx:]) diff --git a/pkg/metapb/metapb.pb.go b/pkg/metapb/metapb.pb.go index 7a962f0..e73be9f 100644 --- a/pkg/metapb/metapb.pb.go +++ b/pkg/metapb/metapb.pb.go @@ -636,7 +636,9 @@ type Region struct { // TODO: only check by `flashback_start_ts` in the future. Keep for compatibility now. IsInFlashback bool `protobuf:"varint,7,opt,name=is_in_flashback,json=isInFlashback,proto3" json:"is_in_flashback,omitempty"` // The start_ts that the current flashback progress is using. - FlashbackStartTs uint64 `protobuf:"varint,8,opt,name=flashback_start_ts,json=flashbackStartTs,proto3" json:"flashback_start_ts,omitempty"` + FlashbackStartTs uint64 `protobuf:"varint,8,opt,name=flashback_start_ts,json=flashbackStartTs,proto3" json:"flashback_start_ts,omitempty"` + // the flag indicates whether the region needs to be encrypted in tikv. + EncryptedRegion uint32 `protobuf:"varint,9,opt,name=encrypted_region,json=encryptedRegion,proto3" json:"encrypted_region,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -731,6 +733,13 @@ func (m *Region) GetFlashbackStartTs() uint64 { return 0 } +func (m *Region) GetEncryptedRegion() uint32 { + if m != nil { + return m.EncryptedRegion + } + return 0 +} + type Peer struct { Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` StoreId uint64 `protobuf:"varint,2,opt,name=store_id,json=storeId,proto3" json:"store_id,omitempty"` @@ -819,69 +828,70 @@ func init() { func init() { proto.RegisterFile("metapb.proto", fileDescriptor_77b4d575d5a68dda) } var fileDescriptor_77b4d575d5a68dda = []byte{ - // 977 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x55, 0x4f, 0x73, 0x1b, 0xc5, - 0x13, 0xcd, 0xea, 0xef, 0xaa, 0x57, 0x92, 0x95, 0x89, 0xab, 0x7e, 0xeb, 0xe4, 0x87, 0x11, 0x2a, + // 995 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x55, 0xcf, 0x72, 0x1b, 0xc5, + 0x13, 0xce, 0xea, 0xef, 0xaa, 0x57, 0x92, 0x95, 0x89, 0xab, 0x7e, 0xeb, 0xe4, 0x87, 0x11, 0x2a, 0x08, 0xc2, 0x45, 0x99, 0x60, 0x28, 0xae, 0x14, 0x4e, 0x4c, 0xd9, 0x95, 0x04, 0xcc, 0x3a, 0x84, - 0xe3, 0xd6, 0x48, 0xdb, 0x96, 0xb6, 0xb4, 0xda, 0x59, 0x66, 0x46, 0x4a, 0xf4, 0x4d, 0xb8, 0x72, - 0xe3, 0x6b, 0x70, 0x82, 0x23, 0x47, 0x0e, 0x1c, 0x28, 0xf3, 0x45, 0xa8, 0xee, 0xd9, 0x55, 0xec, - 0xb8, 0x38, 0x69, 0xfa, 0xbd, 0xee, 0xd9, 0x37, 0x6f, 0xa6, 0x5b, 0xd0, 0x5d, 0xa2, 0x95, 0xc5, - 0xe4, 0xb0, 0xd0, 0xca, 0x2a, 0xd1, 0x72, 0xd1, 0x7d, 0x81, 0xf9, 0x54, 0x6f, 0x0a, 0x9b, 0xaa, - 0xbc, 0xe2, 0xee, 0xef, 0xce, 0xd4, 0x4c, 0xf1, 0xf2, 0x13, 0x5a, 0x95, 0xe8, 0x8e, 0x5e, 0x19, - 0xcb, 0x4b, 0x07, 0x8c, 0xbe, 0x84, 0xf6, 0xe3, 0x6c, 0x65, 0x2c, 0x6a, 0xd1, 0x87, 0x5a, 0x9a, - 0x84, 0xde, 0xd0, 0x1b, 0x37, 0xa2, 0x5a, 0x9a, 0x88, 0xf7, 0xa1, 0xbf, 0x94, 0xaf, 0xe3, 0x02, - 0x51, 0xc7, 0x53, 0xb5, 0xca, 0x6d, 0x58, 0x1b, 0x7a, 0xe3, 0x5e, 0xd4, 0x5d, 0xca, 0xd7, 0xe7, - 0x88, 0xfa, 0x31, 0x61, 0xa3, 0xcf, 0x01, 0x2e, 0xac, 0xd2, 0xf8, 0x4c, 0x4e, 0x30, 0x13, 0x03, - 0xa8, 0x2f, 0x70, 0xc3, 0x9b, 0x74, 0x22, 0x5a, 0x8a, 0x5d, 0x68, 0xae, 0x65, 0xb6, 0x42, 0x2e, - 0xee, 0x44, 0x2e, 0x18, 0xfd, 0x55, 0x87, 0x26, 0x97, 0xdd, 0xfa, 0x6a, 0x08, 0x6d, 0x99, 0x24, - 0x1a, 0x8d, 0x29, 0x2b, 0xaa, 0x50, 0x8c, 0xa1, 0x69, 0xac, 0xb4, 0x18, 0xd6, 0x87, 0xde, 0xb8, - 0x7f, 0x24, 0x0e, 0x4b, 0x2f, 0x78, 0x9f, 0x0b, 0x62, 0x22, 0x97, 0x20, 0x0e, 0xa0, 0x95, 0x91, - 0x1c, 0x13, 0x36, 0x86, 0xf5, 0x71, 0xf0, 0x56, 0x2a, 0x2b, 0x8d, 0xca, 0x0c, 0xfa, 0xde, 0x1a, - 0xb5, 0x49, 0x55, 0x1e, 0x36, 0xdd, 0xf7, 0xca, 0x50, 0xbc, 0x07, 0x5d, 0x3e, 0x7b, 0x25, 0xa7, - 0xc5, 0x74, 0x40, 0xd8, 0x57, 0xa5, 0xa4, 0x0f, 0xa0, 0x4f, 0x5f, 0x5c, 0x99, 0x6d, 0x52, 0x9b, - 0x93, 0x7a, 0x0e, 0xad, 0xd2, 0xf6, 0xc0, 0x9f, 0xa5, 0x36, 0x9e, 0x4b, 0x33, 0x0f, 0x7d, 0xf7, - 0x91, 0x59, 0x6a, 0x4f, 0xa5, 0x99, 0x8b, 0x0f, 0x61, 0xc7, 0x58, 0xa9, 0x6d, 0x6c, 0xd3, 0x25, - 0x1a, 0x2b, 0x97, 0x45, 0xd8, 0x19, 0x7a, 0xe3, 0x7a, 0xd4, 0x67, 0xf8, 0x45, 0x85, 0x8a, 0x77, - 0x21, 0x48, 0xb0, 0xc8, 0xd4, 0x26, 0x2e, 0xa4, 0x9d, 0x87, 0xc0, 0xdb, 0x80, 0x83, 0xce, 0xa5, - 0x9d, 0x93, 0x96, 0x4c, 0x1a, 0x1b, 0xcf, 0x51, 0x6a, 0x3b, 0x41, 0x69, 0xc3, 0x80, 0x37, 0xea, - 0x11, 0x7a, 0x5a, 0x81, 0xe2, 0x53, 0xd8, 0x2d, 0xe6, 0x1b, 0x93, 0x4e, 0x65, 0x96, 0x6d, 0xe2, - 0x04, 0x8d, 0xd5, 0x6a, 0x83, 0x49, 0xd8, 0x1d, 0x7a, 0x63, 0x3f, 0xba, 0xf7, 0x86, 0x7b, 0x52, - 0x51, 0xe2, 0x11, 0x40, 0xae, 0x12, 0x8c, 0x9d, 0xfb, 0x3d, 0x76, 0xff, 0x6e, 0x65, 0xe9, 0x37, - 0x2a, 0x29, 0xcd, 0xef, 0xe4, 0xd5, 0x72, 0x74, 0x0c, 0x41, 0x84, 0xb3, 0x54, 0xe5, 0x27, 0x85, - 0x9a, 0xce, 0xe9, 0xfc, 0x53, 0x95, 0x5f, 0xc6, 0x6b, 0xd4, 0xe5, 0x4d, 0xb7, 0x29, 0x7e, 0x89, - 0xfa, 0xba, 0xfd, 0x35, 0xc7, 0x94, 0xe1, 0xe8, 0x57, 0x0f, 0x82, 0xe3, 0xd5, 0x74, 0x81, 0x96, - 0xf6, 0x34, 0xe2, 0x1d, 0x00, 0x8d, 0x32, 0x89, 0x27, 0x1b, 0x8b, 0x26, 0xf4, 0x86, 0xf5, 0x71, - 0x23, 0xea, 0x10, 0x72, 0x4c, 0x00, 0xf9, 0xf3, 0x4a, 0xa7, 0x16, 0x4b, 0xbe, 0xc6, 0x3c, 0x30, - 0xe4, 0x12, 0xf6, 0xc0, 0xe7, 0xfa, 0x1f, 0x0b, 0x13, 0xd6, 0x99, 0x6d, 0x53, 0xfc, 0x5d, 0x61, - 0xc4, 0x03, 0xe8, 0xb8, 0x5a, 0xe2, 0x1a, 0xcc, 0xf9, 0x0c, 0x94, 0x24, 0xd7, 0x2d, 0x70, 0x63, - 0xc2, 0xa6, 0x23, 0x09, 0x78, 0x8a, 0x1b, 0x16, 0xe5, 0x2a, 0x99, 0x6d, 0x39, 0x51, 0x8c, 0x10, - 0x3d, 0xfa, 0xd9, 0x83, 0xb6, 0x3b, 0x43, 0xb9, 0x0f, 0x79, 0x12, 0x6f, 0xdf, 0xbb, 0xef, 0x80, - 0xb3, 0xe4, 0xbf, 0x6d, 0x10, 0x02, 0x1a, 0xbc, 0x37, 0x49, 0xee, 0x46, 0xbc, 0x16, 0x1f, 0xb9, - 0x4e, 0x20, 0xad, 0xde, 0x38, 0x38, 0xba, 0x57, 0xdd, 0xc5, 0x35, 0xbb, 0x5c, 0x2b, 0x18, 0x31, - 0xa4, 0x47, 0xac, 0x53, 0x95, 0xc4, 0x69, 0x1e, 0x2f, 0x0d, 0xbf, 0xf1, 0x46, 0x04, 0x0e, 0x3b, - 0xcb, 0x9f, 0x9b, 0xd1, 0x6f, 0x35, 0x68, 0xb9, 0xcb, 0xba, 0xd5, 0x8b, 0x0f, 0xa0, 0xe3, 0x1e, - 0x27, 0xf5, 0x34, 0xe9, 0xea, 0x46, 0x3e, 0x03, 0x4f, 0x71, 0x23, 0xfe, 0x07, 0x6d, 0xcc, 0xd9, - 0x16, 0x6e, 0xc8, 0x6e, 0xd4, 0xc2, 0x9c, 0x4c, 0x11, 0x5f, 0x40, 0xb7, 0x3c, 0x28, 0xd2, 0xed, - 0xbf, 0x2d, 0xf2, 0xda, 0xc3, 0x88, 0x02, 0x7d, 0xed, 0x95, 0x8c, 0xa0, 0x49, 0xbd, 0xe5, 0x4c, - 0x0e, 0x8e, 0xba, 0x55, 0x01, 0xcd, 0x9a, 0xc8, 0x51, 0xe2, 0x04, 0x76, 0xde, 0xcc, 0xba, 0x98, - 0x12, 0xb8, 0x2d, 0x83, 0xa3, 0xff, 0x1f, 0xde, 0x98, 0x81, 0x27, 0xdb, 0xe0, 0x39, 0x5a, 0x19, - 0xf5, 0xf1, 0x46, 0x2c, 0x1e, 0xc2, 0x4e, 0x6a, 0xc8, 0x91, 0xcb, 0x4c, 0x9a, 0xf9, 0x44, 0x4e, - 0x17, 0xdc, 0xb8, 0x7e, 0xd4, 0x4b, 0xcd, 0x59, 0xfe, 0x75, 0x05, 0x8a, 0x8f, 0x41, 0x6c, 0x33, - 0xe2, 0xb2, 0x4f, 0x0d, 0xb7, 0x70, 0x23, 0x1a, 0x6c, 0x99, 0x0b, 0xee, 0x54, 0x33, 0x5a, 0x43, - 0x83, 0xb4, 0xde, 0xb2, 0x71, 0x0f, 0x7c, 0x43, 0x83, 0x87, 0x2e, 0xbe, 0xbc, 0x5d, 0x8e, 0xcf, - 0x68, 0xc6, 0x36, 0xb4, 0xca, 0xaa, 0x91, 0x36, 0xb8, 0x71, 0x64, 0x95, 0x61, 0xc4, 0x2c, 0xbd, - 0xb2, 0xd4, 0xc4, 0xaf, 0x52, 0x9b, 0xd3, 0x88, 0x69, 0xb0, 0xd2, 0x4e, 0x6a, 0x7e, 0x70, 0xc0, - 0xc1, 0xa3, 0x72, 0x04, 0x73, 0xef, 0x89, 0x16, 0xd4, 0xbe, 0x2f, 0x06, 0x77, 0x44, 0x00, 0xed, - 0x6f, 0x2f, 0x2f, 0xb3, 0x34, 0xc7, 0x81, 0x27, 0x7a, 0xd0, 0x79, 0xa1, 0x96, 0x13, 0x63, 0x55, - 0x8e, 0x83, 0xda, 0xc1, 0x31, 0x74, 0xb6, 0x7d, 0x4b, 0xdc, 0xb9, 0xc6, 0x42, 0xea, 0x34, 0x9f, - 0xb9, 0xba, 0x0b, 0xd4, 0x6b, 0x0a, 0x3c, 0xd1, 0x05, 0x3f, 0xc2, 0xa5, 0xe2, 0xa8, 0x46, 0x14, - 0x47, 0x98, 0x0c, 0xea, 0x07, 0xa7, 0xe0, 0x57, 0x32, 0x45, 0x07, 0x9a, 0x2f, 0x95, 0x45, 0xed, - 0xca, 0x9f, 0xa1, 0xd4, 0x39, 0xea, 0x81, 0x27, 0xee, 0x42, 0xef, 0x2c, 0x9f, 0xaa, 0x65, 0x9a, - 0xcf, 0x1c, 0x5f, 0x23, 0xe8, 0x09, 0x2e, 0x95, 0xdd, 0x42, 0xf5, 0xe3, 0x87, 0x7f, 0xfe, 0xe2, - 0x7b, 0xbf, 0x5f, 0xed, 0x7b, 0x7f, 0x5c, 0xed, 0x7b, 0x7f, 0x5f, 0xed, 0x7b, 0x3f, 0xfd, 0xb3, - 0x7f, 0x07, 0x06, 0x4a, 0xcf, 0x0e, 0x6d, 0xba, 0x58, 0x1f, 0x2e, 0xd6, 0xfc, 0x5f, 0x35, 0x69, - 0xf1, 0xcf, 0x67, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x27, 0xfc, 0x6d, 0x8c, 0x05, 0x07, 0x00, - 0x00, + 0xe3, 0xd6, 0x48, 0xdb, 0x96, 0xb6, 0xb4, 0xda, 0x59, 0x66, 0x46, 0x4a, 0xf4, 0x26, 0x5c, 0xb9, + 0xf1, 0x1a, 0xdc, 0x38, 0x72, 0xe4, 0xc0, 0x81, 0x32, 0x6f, 0xc0, 0x13, 0x50, 0xdd, 0xb3, 0xab, + 0xd8, 0x71, 0x71, 0xd2, 0xf4, 0xf7, 0x75, 0xcf, 0x74, 0x7f, 0xdb, 0xdd, 0x82, 0xee, 0x12, 0xad, + 0x2c, 0x26, 0x87, 0x85, 0x56, 0x56, 0x89, 0x96, 0xb3, 0xee, 0x0b, 0xcc, 0xa7, 0x7a, 0x53, 0xd8, + 0x54, 0xe5, 0x15, 0x77, 0x7f, 0x77, 0xa6, 0x66, 0x8a, 0x8f, 0x9f, 0xd0, 0xa9, 0x44, 0x77, 0xf4, + 0xca, 0x58, 0x3e, 0x3a, 0x60, 0xf4, 0x25, 0xb4, 0x1f, 0x67, 0x2b, 0x63, 0x51, 0x8b, 0x3e, 0xd4, + 0xd2, 0x24, 0xf4, 0x86, 0xde, 0xb8, 0x11, 0xd5, 0xd2, 0x44, 0xbc, 0x0f, 0xfd, 0xa5, 0x7c, 0x1d, + 0x17, 0x88, 0x3a, 0x9e, 0xaa, 0x55, 0x6e, 0xc3, 0xda, 0xd0, 0x1b, 0xf7, 0xa2, 0xee, 0x52, 0xbe, + 0x3e, 0x47, 0xd4, 0x8f, 0x09, 0x1b, 0x7d, 0x0e, 0x70, 0x61, 0x95, 0xc6, 0x67, 0x72, 0x82, 0x99, + 0x18, 0x40, 0x7d, 0x81, 0x1b, 0xbe, 0xa4, 0x13, 0xd1, 0x51, 0xec, 0x42, 0x73, 0x2d, 0xb3, 0x15, + 0x72, 0x70, 0x27, 0x72, 0xc6, 0xe8, 0xcf, 0x3a, 0x34, 0x39, 0xec, 0xd6, 0xab, 0x21, 0xb4, 0x65, + 0x92, 0x68, 0x34, 0xa6, 0x8c, 0xa8, 0x4c, 0x31, 0x86, 0xa6, 0xb1, 0xd2, 0x62, 0x58, 0x1f, 0x7a, + 0xe3, 0xfe, 0x91, 0x38, 0x2c, 0xb5, 0xe0, 0x7b, 0x2e, 0x88, 0x89, 0x9c, 0x83, 0x38, 0x80, 0x56, + 0x46, 0xe9, 0x98, 0xb0, 0x31, 0xac, 0x8f, 0x83, 0xb7, 0x5c, 0x39, 0xd3, 0xa8, 0xf4, 0xa0, 0xf7, + 0xd6, 0xa8, 0x4d, 0xaa, 0xf2, 0xb0, 0xe9, 0xde, 0x2b, 0x4d, 0xf1, 0x1e, 0x74, 0xb9, 0xf6, 0x2a, + 0x9d, 0x16, 0xd3, 0x01, 0x61, 0x5f, 0x95, 0x29, 0x7d, 0x00, 0x7d, 0x7a, 0x71, 0x65, 0xb6, 0x4e, + 0x6d, 0x76, 0xea, 0x39, 0xb4, 0x72, 0xdb, 0x03, 0x7f, 0x96, 0xda, 0x78, 0x2e, 0xcd, 0x3c, 0xf4, + 0xdd, 0x23, 0xb3, 0xd4, 0x9e, 0x4a, 0x33, 0x17, 0x1f, 0xc2, 0x8e, 0xb1, 0x52, 0xdb, 0xd8, 0xa6, + 0x4b, 0x34, 0x56, 0x2e, 0x8b, 0xb0, 0x33, 0xf4, 0xc6, 0xf5, 0xa8, 0xcf, 0xf0, 0x8b, 0x0a, 0x15, + 0xef, 0x42, 0x90, 0x60, 0x91, 0xa9, 0x4d, 0x5c, 0x48, 0x3b, 0x0f, 0x81, 0xaf, 0x01, 0x07, 0x9d, + 0x4b, 0x3b, 0xa7, 0x5c, 0x32, 0x69, 0x6c, 0x3c, 0x47, 0xa9, 0xed, 0x04, 0xa5, 0x0d, 0x03, 0xbe, + 0xa8, 0x47, 0xe8, 0x69, 0x05, 0x8a, 0x4f, 0x61, 0xb7, 0x98, 0x6f, 0x4c, 0x3a, 0x95, 0x59, 0xb6, + 0x89, 0x13, 0x34, 0x56, 0xab, 0x0d, 0x26, 0x61, 0x77, 0xe8, 0x8d, 0xfd, 0xe8, 0xde, 0x1b, 0xee, + 0x49, 0x45, 0x89, 0x47, 0x00, 0xb9, 0x4a, 0x30, 0x76, 0xea, 0xf7, 0x58, 0xfd, 0xbb, 0x95, 0xa4, + 0xdf, 0xa8, 0xa4, 0x14, 0xbf, 0x93, 0x57, 0xc7, 0xd1, 0x31, 0x04, 0x11, 0xce, 0x52, 0x95, 0x9f, + 0x14, 0x6a, 0x3a, 0xa7, 0xfa, 0xa7, 0x2a, 0xbf, 0x8c, 0xd7, 0xa8, 0xcb, 0x2f, 0xdd, 0x26, 0xfb, + 0x25, 0xea, 0xeb, 0xf2, 0xd7, 0x1c, 0x53, 0x9a, 0xa3, 0x5f, 0x3d, 0x08, 0x8e, 0x57, 0xd3, 0x05, + 0x5a, 0xba, 0xd3, 0x88, 0x77, 0x00, 0x34, 0xca, 0x24, 0x9e, 0x6c, 0x2c, 0x9a, 0xd0, 0x1b, 0xd6, + 0xc7, 0x8d, 0xa8, 0x43, 0xc8, 0x31, 0x01, 0xa4, 0xcf, 0x2b, 0x9d, 0x5a, 0x2c, 0xf9, 0x1a, 0xf3, + 0xc0, 0x90, 0x73, 0xd8, 0x03, 0x9f, 0xe3, 0x7f, 0x2c, 0x4c, 0x58, 0x67, 0xb6, 0x4d, 0xf6, 0x77, + 0x85, 0x11, 0x0f, 0xa0, 0xe3, 0x62, 0x89, 0x6b, 0x30, 0xe7, 0x33, 0x50, 0x92, 0x1c, 0xb7, 0xc0, + 0x8d, 0x09, 0x9b, 0x8e, 0x24, 0xe0, 0x29, 0x6e, 0x38, 0x29, 0x17, 0xc9, 0x6c, 0xcb, 0x25, 0xc5, + 0x08, 0xd1, 0xa3, 0x9f, 0x3d, 0x68, 0xbb, 0x1a, 0xca, 0x7b, 0x48, 0x93, 0x78, 0xdb, 0xef, 0xbe, + 0x03, 0xce, 0x92, 0xff, 0x96, 0x41, 0x08, 0x68, 0xf0, 0xdd, 0x94, 0x72, 0x37, 0xe2, 0xb3, 0xf8, + 0xc8, 0x4d, 0x02, 0xe5, 0xea, 0x8d, 0x83, 0xa3, 0x7b, 0xd5, 0xb7, 0xb8, 0x26, 0x97, 0x1b, 0x05, + 0x23, 0x86, 0xd4, 0xc4, 0x3a, 0x55, 0x49, 0x9c, 0xe6, 0xf1, 0xd2, 0x70, 0x8f, 0x37, 0x22, 0x70, + 0xd8, 0x59, 0xfe, 0xdc, 0x8c, 0xfe, 0xa9, 0x41, 0xcb, 0x7d, 0xac, 0x5b, 0xb3, 0xf8, 0x00, 0x3a, + 0xae, 0x39, 0x69, 0xa6, 0x29, 0xaf, 0x6e, 0xe4, 0x33, 0xf0, 0x14, 0x37, 0xe2, 0x7f, 0xd0, 0xc6, + 0x9c, 0x65, 0xe1, 0x81, 0xec, 0x46, 0x2d, 0xcc, 0x49, 0x14, 0xf1, 0x05, 0x74, 0xcb, 0x42, 0x91, + 0xbe, 0xfe, 0xdb, 0x49, 0x5e, 0x6b, 0x8c, 0x28, 0xd0, 0xd7, 0xba, 0x64, 0x04, 0x4d, 0x9a, 0x2d, + 0x27, 0x72, 0x70, 0xd4, 0xad, 0x02, 0x68, 0xd7, 0x44, 0x8e, 0x12, 0x27, 0xb0, 0xf3, 0x66, 0xd7, + 0xc5, 0xe4, 0xc0, 0x63, 0x19, 0x1c, 0xfd, 0xff, 0xf0, 0xc6, 0x0e, 0x3c, 0xd9, 0x1a, 0xcf, 0xd1, + 0xca, 0xa8, 0x8f, 0x37, 0x6c, 0xf1, 0x10, 0x76, 0x52, 0x43, 0x8a, 0x5c, 0x66, 0xd2, 0xcc, 0x27, + 0x72, 0xba, 0xe0, 0xc1, 0xf5, 0xa3, 0x5e, 0x6a, 0xce, 0xf2, 0xaf, 0x2b, 0x50, 0x7c, 0x0c, 0x62, + 0xeb, 0x11, 0x97, 0x73, 0x6a, 0x78, 0x84, 0x1b, 0xd1, 0x60, 0xcb, 0x5c, 0xf0, 0xa4, 0xd2, 0x67, + 0x19, 0x94, 0xef, 0x60, 0x12, 0xbb, 0xca, 0x78, 0x98, 0x7b, 0xd1, 0xce, 0x16, 0x77, 0xd5, 0x8f, + 0xd6, 0xd0, 0xa0, 0xb2, 0x6e, 0x29, 0xbe, 0x07, 0xbe, 0xa1, 0x1d, 0x45, 0x3d, 0x52, 0x36, 0x02, + 0xdb, 0x67, 0xb4, 0x8e, 0x1b, 0x5a, 0x65, 0xd5, 0xf6, 0x1b, 0xdc, 0x50, 0x47, 0x65, 0x18, 0x31, + 0x4b, 0x0d, 0x99, 0x9a, 0xf8, 0x55, 0x6a, 0x73, 0xda, 0x46, 0x0d, 0x2e, 0xaa, 0x93, 0x9a, 0x1f, + 0x1c, 0x70, 0xf0, 0xa8, 0xdc, 0xd6, 0x3c, 0xa6, 0xa2, 0x05, 0xb5, 0xef, 0x8b, 0xc1, 0x1d, 0x11, + 0x40, 0xfb, 0xdb, 0xcb, 0xcb, 0x2c, 0xcd, 0x71, 0xe0, 0x89, 0x1e, 0x74, 0x5e, 0xa8, 0xe5, 0xc4, + 0x58, 0x95, 0xe3, 0xa0, 0x76, 0x70, 0x0c, 0x9d, 0xed, 0x88, 0x13, 0x77, 0xae, 0xb1, 0x90, 0x3a, + 0xcd, 0x67, 0x2e, 0xee, 0x02, 0xf5, 0x9a, 0x0c, 0x4f, 0x74, 0xc1, 0x8f, 0x70, 0xa9, 0xd8, 0xaa, + 0x11, 0xc5, 0x16, 0x26, 0x83, 0xfa, 0xc1, 0x29, 0xf8, 0x55, 0x9a, 0xa2, 0x03, 0xcd, 0x97, 0xca, + 0xa2, 0x76, 0xe1, 0xcf, 0x50, 0xea, 0x1c, 0xf5, 0xc0, 0x13, 0x77, 0xa1, 0x77, 0x96, 0x4f, 0xd5, + 0x32, 0xcd, 0x67, 0x8e, 0xaf, 0x11, 0xf4, 0x04, 0x97, 0xca, 0x6e, 0xa1, 0xfa, 0xf1, 0xc3, 0x3f, + 0x7e, 0xf1, 0xbd, 0xdf, 0xae, 0xf6, 0xbd, 0xdf, 0xaf, 0xf6, 0xbd, 0xbf, 0xae, 0xf6, 0xbd, 0x9f, + 0xfe, 0xde, 0xbf, 0x03, 0x03, 0xa5, 0x67, 0x87, 0x36, 0x5d, 0xac, 0x0f, 0x17, 0x6b, 0xfe, 0x5b, + 0x9b, 0xb4, 0xf8, 0xe7, 0xb3, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x4c, 0x17, 0x4e, 0x24, 0x30, + 0x07, 0x00, 0x00, } func (m *Cluster) Marshal() (dAtA []byte, err error) { @@ -1339,6 +1349,11 @@ func (m *Region) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.EncryptedRegion != 0 { + i = encodeVarintMetapb(dAtA, i, uint64(m.EncryptedRegion)) + i-- + dAtA[i] = 0x48 + } if m.FlashbackStartTs != 0 { i = encodeVarintMetapb(dAtA, i, uint64(m.FlashbackStartTs)) i-- @@ -1715,6 +1730,9 @@ func (m *Region) Size() (n int) { if m.FlashbackStartTs != 0 { n += 1 + sovMetapb(uint64(m.FlashbackStartTs)) } + if m.EncryptedRegion != 0 { + n += 1 + sovMetapb(uint64(m.EncryptedRegion)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -3380,6 +3398,25 @@ func (m *Region) Unmarshal(dAtA []byte) error { break } } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EncryptedRegion", wireType) + } + m.EncryptedRegion = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetapb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EncryptedRegion |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipMetapb(dAtA[iNdEx:]) diff --git a/pkg/raft_cmdpb/raft_cmdpb.pb.go b/pkg/raft_cmdpb/raft_cmdpb.pb.go index bfa52a3..2cbfccd 100644 --- a/pkg/raft_cmdpb/raft_cmdpb.pb.go +++ b/pkg/raft_cmdpb/raft_cmdpb.pb.go @@ -1525,7 +1525,9 @@ type BatchSplitRequest struct { Requests []*SplitRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` // If true, the last region derive the origin region_id, // other regions use new ids. - RightDerive bool `protobuf:"varint,2,opt,name=right_derive,json=rightDerive,proto3" json:"right_derive,omitempty"` + RightDerive bool `protobuf:"varint,2,opt,name=right_derive,json=rightDerive,proto3" json:"right_derive,omitempty"` + // encrypt the new region + EncryptRegion uint32 `protobuf:"varint,3,opt,name=encrypt_region,json=encryptRegion,proto3" json:"encrypt_region,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1578,6 +1580,13 @@ func (m *BatchSplitRequest) GetRightDerive() bool { return false } +func (m *BatchSplitRequest) GetEncryptRegion() uint32 { + if m != nil { + return m.EncryptRegion + } + return 0 +} + type BatchSplitResponse struct { Regions []*metapb.Region `protobuf:"bytes,1,rep,name=regions,proto3" json:"regions,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -3672,179 +3681,180 @@ func init() { func init() { proto.RegisterFile("raft_cmdpb.proto", fileDescriptor_661741b5e7485333) } var fileDescriptor_661741b5e7485333 = []byte{ - // 2740 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x59, 0x4b, 0x73, 0xdc, 0xc6, - 0x11, 0xd6, 0x3e, 0xb8, 0x8f, 0xde, 0x07, 0xc1, 0xd9, 0x15, 0xb9, 0x92, 0x6c, 0x8a, 0x82, 0x64, - 0x85, 0x76, 0x52, 0x4c, 0x4c, 0xdb, 0xb2, 0xab, 0xac, 0xf8, 0x21, 0x91, 0x92, 0x15, 0x3d, 0x42, - 0x0f, 0x19, 0xbb, 0x92, 0x2a, 0x17, 0x0a, 0x06, 0x66, 0xb9, 0x28, 0xee, 0x02, 0xf0, 0x60, 0x96, - 0xf4, 0x96, 0xaf, 0xf9, 0x03, 0xb9, 0xf9, 0x27, 0xe4, 0x9a, 0xbf, 0x90, 0x53, 0x2a, 0xa7, 0x24, - 0xe5, 0x43, 0x8e, 0x29, 0xfb, 0x96, 0x7f, 0x90, 0x5b, 0x6a, 0x5e, 0xc0, 0x00, 0x8b, 0x95, 0x2c, - 0x9f, 0x16, 0xd3, 0xd3, 0xf3, 0x4d, 0x4f, 0xf7, 0xcc, 0xd7, 0x3d, 0xb3, 0x60, 0x51, 0x77, 0xcc, - 0x1c, 0x6f, 0xe6, 0xc7, 0x5f, 0xee, 0xc5, 0x34, 0x62, 0x11, 0x82, 0x4c, 0x72, 0xb5, 0x3b, 0x23, - 0xcc, 0xd5, 0x3d, 0x57, 0x7b, 0x84, 0xd2, 0x88, 0x9a, 0x4d, 0x77, 0xcc, 0xb2, 0xe6, 0xd9, 0x39, - 0x8d, 0xbd, 0xb4, 0x89, 0x82, 0x59, 0x1c, 0x51, 0xe6, 0x24, 0x49, 0xa6, 0x32, 0x10, 0xd0, 0x09, - 0xa1, 0xe7, 0x24, 0x83, 0x59, 0xa7, 0xf3, 0x84, 0x89, 0x4f, 0x29, 0xb0, 0xf7, 0x00, 0x1e, 0x12, - 0x86, 0xc9, 0x57, 0x73, 0x92, 0x30, 0xd4, 0x87, 0xaa, 0x37, 0x1e, 0x55, 0x76, 0x2a, 0xbb, 0x6d, - 0x5c, 0xf5, 0xc6, 0xc8, 0x82, 0xda, 0x19, 0x59, 0x8c, 0xaa, 0x3b, 0x95, 0xdd, 0x2e, 0xe6, 0x9f, - 0xf6, 0x4d, 0xe8, 0x08, 0xfd, 0x24, 0x8e, 0xc2, 0x84, 0xa0, 0x21, 0xac, 0x9d, 0xbb, 0xd3, 0x39, - 0x11, 0x63, 0xba, 0x58, 0x36, 0xec, 0x03, 0x80, 0xa3, 0xf9, 0x8f, 0x07, 0xcd, 0x50, 0x6a, 0x26, - 0x4a, 0x0f, 0x3a, 0x02, 0x45, 0x4e, 0x65, 0xbf, 0x09, 0xbd, 0x03, 0x32, 0x25, 0x8c, 0xfc, 0x78, - 0x63, 0x2d, 0xe8, 0xeb, 0x21, 0x0a, 0xe4, 0x1b, 0x40, 0x4a, 0xe2, 0x86, 0xa7, 0x2b, 0x91, 0xae, - 0x41, 0x3b, 0x61, 0x2e, 0x65, 0x4e, 0x86, 0xd7, 0x12, 0x82, 0xc7, 0x64, 0x81, 0xb6, 0xa0, 0x49, - 0x42, 0x5f, 0x74, 0x49, 0x73, 0x1b, 0x24, 0xf4, 0x79, 0xc7, 0x75, 0xe8, 0x84, 0x11, 0x0b, 0xc6, - 0x0b, 0x27, 0x0a, 0xa7, 0x8b, 0x51, 0x7d, 0xa7, 0xb2, 0xdb, 0xc2, 0x20, 0x45, 0xbf, 0x0d, 0xa7, - 0x0b, 0xfb, 0x32, 0x0c, 0x72, 0x93, 0x2b, 0x9b, 0x7a, 0xd0, 0x39, 0x0e, 0xdd, 0x58, 0x19, 0x63, - 0xdf, 0x81, 0xae, 0x6c, 0x2a, 0x17, 0xdf, 0x86, 0x06, 0x25, 0xa7, 0x41, 0x14, 0x0a, 0x03, 0x3b, - 0xfb, 0xfd, 0x3d, 0xb5, 0x4f, 0xb0, 0x90, 0x62, 0xd5, 0x6b, 0x3f, 0x85, 0xf5, 0x23, 0x4a, 0x2e, - 0x68, 0x90, 0x79, 0x48, 0x79, 0xa4, 0x52, 0xe2, 0xe9, 0xaa, 0xe1, 0x69, 0x84, 0xa0, 0x3e, 0x8d, - 0xbc, 0x33, 0xb5, 0x1e, 0xf1, 0x6d, 0x23, 0xb0, 0x32, 0x38, 0x65, 0xe9, 0xfb, 0x60, 0x3d, 0x0a, - 0x4f, 0x49, 0xc2, 0x8e, 0x8f, 0x4f, 0xf4, 0x1c, 0x3f, 0x83, 0x5a, 0x92, 0x30, 0x65, 0xdb, 0xe5, - 0xbd, 0xdc, 0x46, 0x3c, 0x3e, 0x3e, 0x79, 0x4a, 0x98, 0x8b, 0xb9, 0x86, 0x3d, 0x80, 0x0d, 0x63, - 0xb0, 0x42, 0x74, 0xc0, 0xc2, 0xc4, 0xf5, 0x1f, 0x85, 0x3e, 0xf9, 0x5a, 0x23, 0x5e, 0x01, 0xe9, - 0x6c, 0x87, 0x25, 0x02, 0xb6, 0x8e, 0x9b, 0xa2, 0x7d, 0x92, 0xa0, 0x5f, 0x01, 0x9c, 0x91, 0x85, - 0x43, 0xb9, 0xff, 0x92, 0x51, 0x75, 0xa7, 0xb6, 0xdb, 0xd9, 0xdf, 0xd8, 0xd3, 0x67, 0xe1, 0x31, - 0x59, 0x48, 0xcf, 0xb6, 0xcf, 0xd4, 0x57, 0x62, 0x7f, 0x01, 0x1b, 0xc6, 0x04, 0xca, 0xa5, 0xaf, - 0x02, 0x50, 0xe2, 0xfa, 0x4e, 0xc0, 0xa5, 0x6a, 0x8e, 0x36, 0xd5, 0x6a, 0xe8, 0x75, 0x68, 0x70, - 0x17, 0x10, 0x5f, 0x78, 0xc9, 0x9c, 0xe1, 0x49, 0xe4, 0x9d, 0x3d, 0x0a, 0xc7, 0x11, 0x56, 0x0a, - 0xf6, 0x0f, 0x35, 0x68, 0x6a, 0xbb, 0xf7, 0xa0, 0xe5, 0xcd, 0x7c, 0x87, 0x2d, 0x62, 0x79, 0x1c, - 0xfa, 0xfb, 0x83, 0x3d, 0xe3, 0xc0, 0xdf, 0x9f, 0xf9, 0x27, 0x8b, 0x98, 0xe0, 0xa6, 0x27, 0x3f, - 0xd0, 0x2e, 0xd4, 0x4e, 0x09, 0x53, 0x73, 0x6c, 0x9a, 0xaa, 0xd9, 0x89, 0xc4, 0x5c, 0x85, 0x6b, - 0xc6, 0x73, 0x26, 0x76, 0x54, 0x41, 0x33, 0x3b, 0x66, 0x98, 0xab, 0xa0, 0x37, 0xa1, 0xe1, 0x8b, - 0x2d, 0x36, 0x5a, 0x13, 0xca, 0x57, 0x4c, 0xe5, 0xdc, 0xf1, 0xc1, 0x4a, 0x11, 0xfd, 0x1c, 0xea, - 0x49, 0xe8, 0xc6, 0xa3, 0x86, 0x18, 0xb0, 0x65, 0x0e, 0x30, 0xb6, 0x25, 0x16, 0x4a, 0xe8, 0x5d, - 0x68, 0xc5, 0x6a, 0x57, 0x8c, 0x9a, 0x62, 0xc0, 0xb5, 0x9c, 0x39, 0xf9, 0x0d, 0x88, 0x53, 0x65, - 0xf4, 0x31, 0x74, 0xe5, 0x7c, 0x32, 0x78, 0xa3, 0x96, 0x18, 0xbc, 0x5d, 0x62, 0x9e, 0x71, 0x30, - 0x71, 0xc7, 0xcf, 0x64, 0xe8, 0x7d, 0x80, 0x40, 0x6c, 0x20, 0xbe, 0xbb, 0x46, 0x6d, 0x01, 0xf0, - 0x8a, 0x09, 0x50, 0xdc, 0x9b, 0xb8, 0x2d, 0xf5, 0x8f, 0x13, 0xc6, 0x07, 0x1b, 0x21, 0x87, 0xe5, - 0xc1, 0xc5, 0x6d, 0x68, 0x6c, 0x08, 0xfb, 0xbf, 0x35, 0x68, 0xa5, 0x9b, 0xe7, 0x65, 0xc3, 0xfc, - 0xba, 0x19, 0xe6, 0xad, 0xa5, 0x30, 0x4b, 0x54, 0x19, 0xe7, 0xd7, 0xcd, 0x38, 0x6f, 0x2d, 0xc5, - 0x59, 0xab, 0xf2, 0x40, 0xef, 0x17, 0x02, 0x7d, 0xb5, 0x2c, 0xd0, 0x6a, 0x80, 0x8e, 0xf4, 0x2f, - 0x72, 0x91, 0x1e, 0x2d, 0x47, 0x5a, 0xe9, 0xcb, 0x50, 0xbf, 0xb7, 0x14, 0xea, 0x57, 0xca, 0x43, - 0xad, 0x46, 0x65, 0xb1, 0xfe, 0x08, 0x78, 0xdc, 0x0a, 0xa1, 0xbe, 0xbe, 0x32, 0xd4, 0x6a, 0x3c, - 0x88, 0x31, 0x32, 0xd4, 0x77, 0x4b, 0x42, 0xfd, 0xea, 0x8a, 0x50, 0xab, 0xe1, 0x46, 0xac, 0xef, - 0x96, 0xc4, 0xfa, 0xd5, 0x15, 0xb1, 0xd6, 0xa3, 0xb3, 0x60, 0x47, 0xb0, 0x71, 0x7f, 0xc2, 0xad, - 0x38, 0x22, 0x84, 0xea, 0xb3, 0xfd, 0x1e, 0x74, 0x3c, 0x21, 0x34, 0xe3, 0xbe, 0xb5, 0xa7, 0x93, - 0xf2, 0xfd, 0x28, 0x1c, 0xcb, 0x41, 0x22, 0xf6, 0xe0, 0xa5, 0xdf, 0x68, 0x07, 0xea, 0x31, 0x21, - 0x54, 0xc5, 0xbf, 0xab, 0xc9, 0x5b, 0x80, 0x8b, 0x1e, 0xfb, 0x2e, 0x20, 0x73, 0xc2, 0x97, 0xa4, - 0xfd, 0x67, 0x30, 0xc8, 0x46, 0x7f, 0xb6, 0xaf, 0x0d, 0x7e, 0x17, 0x9a, 0xd2, 0x08, 0xce, 0xa1, - 0xb5, 0xa2, 0x03, 0x96, 0x16, 0x88, 0xb5, 0xb6, 0xfd, 0x01, 0x0c, 0xf3, 0x78, 0x2f, 0x69, 0xcf, - 0xb7, 0x15, 0xe8, 0x1e, 0xc7, 0xd3, 0x20, 0x4d, 0xff, 0x3c, 0x99, 0xf2, 0xb6, 0x93, 0xa5, 0xa2, - 0x96, 0x10, 0xf0, 0x9c, 0x69, 0x43, 0x2f, 0x24, 0x17, 0x8e, 0x1c, 0xeb, 0x04, 0x92, 0x71, 0xeb, - 0xb8, 0x13, 0x92, 0x0b, 0x89, 0xfb, 0xc8, 0x47, 0x3b, 0xd0, 0xe5, 0x3a, 0xdc, 0x57, 0x4e, 0xe0, - 0x27, 0xa3, 0xda, 0x4e, 0x6d, 0xb7, 0x8e, 0x21, 0x24, 0x17, 0xdc, 0xc4, 0x47, 0x7e, 0x82, 0x5e, - 0x83, 0x2e, 0x0d, 0x4e, 0x27, 0xcc, 0xf1, 0x09, 0x0d, 0xce, 0x89, 0x4c, 0xbd, 0xf7, 0xaa, 0xa3, - 0x0a, 0xee, 0x08, 0xf9, 0x81, 0x10, 0xdb, 0xbf, 0x87, 0x9e, 0xb2, 0x4c, 0xad, 0xc9, 0x86, 0xfa, - 0x94, 0x8c, 0xd9, 0x8a, 0x15, 0x89, 0x3e, 0x74, 0x0b, 0xd6, 0x04, 0x86, 0x0a, 0x60, 0x51, 0x49, - 0x76, 0xda, 0x53, 0xd8, 0xb8, 0xe7, 0x32, 0x6f, 0x92, 0x5b, 0xf9, 0xdb, 0xd0, 0xa2, 0xf2, 0x53, - 0x07, 0x21, 0x7f, 0xe6, 0x0c, 0x5d, 0x9c, 0x6a, 0xa2, 0x1b, 0x85, 0xc5, 0x54, 0x45, 0x1d, 0x91, - 0x5b, 0xc8, 0x07, 0x80, 0xcc, 0xd9, 0xd4, 0x6a, 0x76, 0xa1, 0x29, 0xfd, 0xa8, 0x67, 0x2b, 0xda, - 0xaa, 0xbb, 0xed, 0x3f, 0x55, 0x60, 0xe3, 0x7e, 0x34, 0x8b, 0x5d, 0x8f, 0x3d, 0x89, 0x4e, 0xb5, - 0xb9, 0x37, 0xa1, 0xe7, 0x49, 0x61, 0x2e, 0x31, 0x76, 0x95, 0x50, 0xe6, 0xc6, 0x1b, 0xa0, 0xdb, - 0x0e, 0x23, 0x74, 0xa6, 0xe3, 0xa5, 0x64, 0x27, 0x84, 0xce, 0xd0, 0xdb, 0xb0, 0x79, 0x1e, 0x31, - 0x42, 0x1d, 0x4a, 0xe2, 0x69, 0xe0, 0xb9, 0x8c, 0xe8, 0xa3, 0x58, 0x13, 0xca, 0x43, 0xd1, 0x8b, - 0xd3, 0x4e, 0x79, 0xec, 0x86, 0x80, 0x4c, 0x93, 0x54, 0x7d, 0xf0, 0x05, 0x5c, 0x3e, 0xa1, 0x6e, - 0x98, 0x8c, 0x09, 0x7d, 0x42, 0x5c, 0x3f, 0x3b, 0x90, 0xfa, 0x58, 0x55, 0x56, 0x1d, 0x2b, 0x64, - 0xc3, 0x1a, 0xff, 0xd5, 0x65, 0x42, 0x5e, 0x45, 0x76, 0xd9, 0x23, 0xd8, 0x2c, 0xc2, 0xab, 0x89, - 0xf7, 0xa4, 0x39, 0x73, 0x46, 0x3e, 0x71, 0x93, 0x89, 0x9e, 0x75, 0x04, 0x4d, 0x2f, 0x0a, 0x19, - 0xf9, 0x9a, 0xa9, 0x9d, 0xac, 0x9b, 0xf6, 0xe7, 0xb0, 0xf1, 0x19, 0xa1, 0xc1, 0x78, 0x61, 0xaa, - 0x0f, 0x61, 0xcd, 0xf4, 0xa4, 0x6c, 0xf0, 0x6a, 0x6b, 0xe2, 0x26, 0x13, 0x55, 0x82, 0x89, 0x6f, - 0x13, 0xb8, 0x96, 0x07, 0x1e, 0x02, 0x32, 0x81, 0x95, 0x79, 0x7f, 0x80, 0xc1, 0x11, 0x25, 0xb1, - 0x4b, 0xc9, 0x53, 0x42, 0xb3, 0x42, 0xf6, 0x1a, 0xb4, 0x67, 0x41, 0x98, 0x0b, 0x5f, 0x6b, 0x16, - 0x84, 0x32, 0x74, 0xb7, 0xa1, 0xc1, 0x5c, 0x9a, 0xe5, 0xa2, 0xa5, 0x13, 0x2c, 0x7b, 0xed, 0x4d, - 0x18, 0xe6, 0xb1, 0xd5, 0x9c, 0x6f, 0xc3, 0x96, 0x92, 0x3f, 0x98, 0xba, 0xc9, 0xe4, 0x4b, 0xd7, - 0x3b, 0x7b, 0x71, 0xc9, 0x66, 0x5f, 0x85, 0xd1, 0xf2, 0x28, 0x85, 0x38, 0x82, 0xcd, 0x07, 0x41, - 0x18, 0x24, 0x93, 0x22, 0xa0, 0x7d, 0x05, 0xb6, 0x96, 0x7a, 0xd4, 0xa0, 0xbf, 0x56, 0x44, 0x68, - 0x66, 0x01, 0xcb, 0x2d, 0xfd, 0x36, 0x34, 0x92, 0x68, 0x4e, 0x3d, 0xb2, 0x8a, 0x9f, 0x64, 0x2f, - 0xda, 0x84, 0x86, 0x27, 0x46, 0xab, 0xad, 0xab, 0x5a, 0xfc, 0xf4, 0x90, 0x90, 0xd1, 0x80, 0x48, - 0x82, 0xe1, 0x00, 0x9a, 0xdd, 0x0f, 0x43, 0x46, 0x17, 0x58, 0x77, 0xa3, 0x7b, 0xd0, 0x95, 0x58, - 0x4e, 0xc2, 0x5c, 0x46, 0x54, 0xba, 0x56, 0xf9, 0x2d, 0xbd, 0x6f, 0xc9, 0x69, 0x9f, 0x44, 0x9e, - 0x3b, 0x3d, 0xe6, 0x6a, 0xb8, 0x23, 0x07, 0x89, 0x06, 0xbf, 0x0a, 0xe4, 0xd6, 0x90, 0xee, 0xba, - 0x21, 0x8e, 0xa6, 0x53, 0xbe, 0xde, 0xdc, 0xe2, 0x32, 0xa3, 0x2b, 0xa6, 0xd1, 0xf6, 0x16, 0x5c, - 0x2e, 0xe8, 0x2b, 0xa0, 0x67, 0x30, 0x3c, 0xbe, 0x08, 0x98, 0x37, 0xf9, 0x3c, 0x60, 0x21, 0x49, - 0x12, 0x0d, 0xb4, 0x05, 0x4d, 0xc5, 0xa3, 0x1a, 0x29, 0x16, 0x1c, 0xca, 0x4b, 0xe2, 0x20, 0x71, - 0x2e, 0xa4, 0xb6, 0xe2, 0x9c, 0x76, 0x90, 0xa8, 0xe1, 0xf6, 0x04, 0xae, 0x48, 0xc6, 0x29, 0x03, - 0x7d, 0x0c, 0x56, 0x22, 0xe4, 0x7a, 0x7c, 0x9a, 0x74, 0x76, 0x72, 0x7c, 0x57, 0x32, 0x16, 0xaf, - 0x27, 0xa6, 0x94, 0x24, 0xf6, 0x2b, 0x70, 0xb5, 0x6c, 0xa6, 0xd4, 0x41, 0x83, 0xdf, 0xc5, 0xbe, - 0xcb, 0xc8, 0x43, 0xcf, 0x4c, 0xcf, 0xb9, 0x65, 0xd5, 0xb2, 0x65, 0xd9, 0xff, 0x6a, 0x41, 0xf7, - 0x63, 0x7f, 0x16, 0x84, 0x5a, 0xf3, 0xad, 0xa5, 0xea, 0x2d, 0xc7, 0xc9, 0x42, 0x77, 0xa9, 0x84, - 0xfb, 0x20, 0xcd, 0xfe, 0x46, 0x2a, 0x7f, 0x41, 0x42, 0x55, 0x35, 0x00, 0x17, 0xa1, 0x7d, 0x58, - 0x13, 0x19, 0x4f, 0x9c, 0xed, 0xe7, 0x64, 0x01, 0x91, 0xb2, 0xa4, 0xaa, 0x98, 0x53, 0x11, 0xed, - 0x34, 0x3a, 0x55, 0x9b, 0x2c, 0x3f, 0x67, 0x91, 0xc1, 0x31, 0x78, 0xa9, 0x08, 0xfd, 0x06, 0xd6, - 0x99, 0xa2, 0x36, 0x67, 0x2a, 0xb8, 0x4d, 0x55, 0x8a, 0x37, 0x4c, 0x8c, 0x52, 0x72, 0xc5, 0x7d, - 0x96, 0x13, 0x73, 0x5b, 0xce, 0x05, 0x07, 0x39, 0x82, 0xb8, 0x1a, 0xcb, 0xb6, 0x2c, 0x71, 0x1f, - 0x86, 0xf3, 0x54, 0x84, 0x0e, 0xa0, 0x17, 0x4b, 0x0e, 0x70, 0x66, 0x7c, 0x9b, 0xaa, 0x7a, 0xf2, - 0x7a, 0xa1, 0x9e, 0x2c, 0xd2, 0x19, 0xee, 0xc6, 0x86, 0x90, 0x5f, 0x21, 0xe4, 0xb6, 0x57, 0x20, - 0x25, 0x57, 0x88, 0x65, 0x5e, 0x10, 0xa9, 0x49, 0xcb, 0xd0, 0x43, 0xe8, 0x53, 0x75, 0x5e, 0x14, - 0x88, 0xac, 0x2d, 0x73, 0xfb, 0xb4, 0xec, 0x04, 0xe2, 0x1e, 0x35, 0xa5, 0xe8, 0x1d, 0x68, 0x88, - 0x30, 0x25, 0x65, 0xe5, 0xe5, 0x52, 0x25, 0x80, 0x95, 0x32, 0x3a, 0x84, 0xbe, 0xb1, 0x91, 0x9c, - 0xf3, 0xfd, 0x51, 0x67, 0xd9, 0x13, 0x25, 0xe5, 0x1c, 0xee, 0x7a, 0x86, 0x50, 0x79, 0x82, 0x27, - 0x27, 0x19, 0x90, 0x6e, 0xa9, 0x27, 0x0a, 0xc9, 0x4b, 0x26, 0x69, 0x25, 0x43, 0x47, 0xb0, 0xa1, - 0x43, 0x32, 0xd6, 0x14, 0x3b, 0xea, 0x09, 0x9c, 0x9b, 0x25, 0x61, 0x29, 0x12, 0x34, 0xb6, 0xe2, - 0x42, 0x07, 0x7a, 0x0a, 0xd6, 0x58, 0x50, 0xb6, 0x01, 0xd8, 0x17, 0x80, 0xb6, 0x09, 0x58, 0x4e, - 0xf8, 0x78, 0x7d, 0x9c, 0x97, 0xa3, 0xa3, 0x12, 0x52, 0x59, 0x17, 0x70, 0xaf, 0x2d, 0xfb, 0xfa, - 0xc7, 0x30, 0x0b, 0x7a, 0x08, 0xeb, 0x73, 0xc1, 0x1d, 0xce, 0xa9, 0xe7, 0xc8, 0xd2, 0xc0, 0x5a, - 0xf6, 0x7e, 0x09, 0xbd, 0xe0, 0xde, 0xdc, 0x10, 0x26, 0xf6, 0x77, 0x4d, 0xe8, 0x29, 0x52, 0x51, - 0xa5, 0xd7, 0x4f, 0x62, 0x95, 0x0f, 0xcb, 0x58, 0x65, 0x7b, 0x15, 0xab, 0xe8, 0x5b, 0x92, 0x41, - 0x2b, 0x6f, 0xe5, 0x69, 0xe5, 0x4a, 0x09, 0xad, 0xc8, 0x51, 0x26, 0xaf, 0x7c, 0x58, 0xc6, 0x2b, - 0xdb, 0xab, 0x78, 0x25, 0x9d, 0x35, 0x23, 0x96, 0xc7, 0xab, 0x88, 0xc5, 0x7e, 0x1e, 0xb1, 0x28, - 0xa0, 0x22, 0xb3, 0x7c, 0x58, 0xc6, 0x2c, 0xdb, 0xab, 0x98, 0x45, 0x5b, 0x63, 0x50, 0xcb, 0x61, - 0x39, 0xb5, 0xec, 0xac, 0xa6, 0x16, 0x05, 0x92, 0xe7, 0x96, 0x7b, 0xa5, 0xdc, 0x72, 0x7d, 0x25, - 0xb7, 0x28, 0x90, 0x1c, 0xb9, 0x7c, 0xb2, 0x82, 0x5c, 0x6e, 0x3c, 0x87, 0x5c, 0x14, 0x4e, 0x81, - 0x5d, 0xee, 0x14, 0xd8, 0x65, 0x7b, 0x15, 0xbb, 0xe8, 0x0b, 0xbe, 0xa2, 0x97, 0x07, 0x2b, 0xe8, - 0x65, 0x67, 0x35, 0xbd, 0x68, 0x6f, 0xe4, 0xf8, 0xe5, 0xd3, 0x32, 0x72, 0x90, 0x24, 0x73, 0xeb, - 0xf9, 0xe4, 0xa0, 0xe0, 0x96, 0xd9, 0xe1, 0x59, 0x09, 0x3b, 0x94, 0xd0, 0xcd, 0x8a, 0xa2, 0x6f, - 0x99, 0x1e, 0x3e, 0x2d, 0xa1, 0x07, 0xc9, 0x36, 0xb7, 0x5f, 0x44, 0x0f, 0x1a, 0xb2, 0x58, 0x79, - 0x5c, 0x86, 0x81, 0x2a, 0xda, 0xcc, 0x64, 0x68, 0xdf, 0x85, 0x61, 0x5e, 0xac, 0xce, 0xfc, 0x2d, - 0x68, 0xa8, 0xed, 0x5f, 0x76, 0x07, 0x51, 0x7d, 0x19, 0xe8, 0x01, 0x61, 0x6e, 0x30, 0xd5, 0xa0, - 0xbe, 0x06, 0xd5, 0xe2, 0x97, 0xbb, 0x65, 0x1b, 0x93, 0x57, 0x9f, 0x33, 0xf9, 0x3f, 0x2b, 0xd0, - 0xe3, 0xf5, 0xe6, 0x3c, 0x31, 0xae, 0xa4, 0x05, 0xa2, 0xca, 0xb3, 0x86, 0x50, 0x5e, 0x62, 0xaa, - 0x03, 0xe8, 0xa9, 0x1b, 0x7a, 0x6e, 0xd2, 0xeb, 0xf9, 0x37, 0x95, 0x25, 0xd7, 0xe1, 0x2e, 0x35, - 0x84, 0x06, 0x8a, 0x2f, 0x16, 0xad, 0x68, 0xab, 0x04, 0x25, 0xe7, 0x2b, 0x8d, 0x22, 0x85, 0xf6, - 0x77, 0x15, 0xe8, 0xeb, 0x35, 0x29, 0xa7, 0xfd, 0xb4, 0x45, 0x1d, 0x96, 0x2f, 0x6a, 0x67, 0xf5, - 0xa2, 0xf4, 0x59, 0xc9, 0xad, 0xea, 0xb0, 0x7c, 0x55, 0x3b, 0xab, 0x57, 0x95, 0x87, 0x51, 0xcb, - 0xfa, 0x7b, 0x0d, 0x36, 0xb0, 0x3b, 0xd6, 0x15, 0xc3, 0x27, 0x12, 0xfc, 0x1a, 0xb4, 0xb3, 0xa7, - 0x11, 0x75, 0x9f, 0xa3, 0xd9, 0xbb, 0xc8, 0x0b, 0x5e, 0x96, 0xd0, 0x75, 0xe8, 0x88, 0x87, 0xb0, - 0xaf, 0xe6, 0x11, 0x9d, 0xcf, 0x84, 0x65, 0x2d, 0x2c, 0xde, 0xc6, 0x3e, 0x15, 0x12, 0x7e, 0x15, - 0x9d, 0xcf, 0x03, 0x5f, 0x64, 0x81, 0x2e, 0x16, 0xdf, 0xe8, 0x0e, 0x28, 0xcb, 0x1c, 0x12, 0x47, - 0xde, 0x44, 0x91, 0xfb, 0x20, 0xbf, 0x11, 0x0f, 0x79, 0x17, 0xee, 0xd0, 0xac, 0xc1, 0xb1, 0xc4, - 0x8b, 0x40, 0x43, 0x98, 0x29, 0xbe, 0xc5, 0xbd, 0x70, 0x11, 0x7a, 0x22, 0xd3, 0x34, 0xc5, 0xec, - 0x4d, 0xde, 0xe6, 0x69, 0xe4, 0x06, 0x9f, 0x46, 0x3c, 0x01, 0x38, 0xdc, 0x20, 0xc1, 0xb8, 0x2d, - 0x8e, 0x28, 0x64, 0x98, 0xb8, 0x3e, 0xba, 0x09, 0x3d, 0x37, 0x8e, 0xa7, 0x41, 0xfa, 0x7e, 0xd0, - 0x96, 0x0f, 0x12, 0x4a, 0x28, 0x6f, 0xb5, 0x43, 0x58, 0x1b, 0x4f, 0xdd, 0x53, 0x49, 0x95, 0x75, - 0x2c, 0x1b, 0xdc, 0x71, 0xfc, 0xc3, 0xf1, 0x5d, 0xe6, 0x0a, 0x12, 0xec, 0xe2, 0x16, 0x17, 0x1c, - 0xb8, 0xcc, 0x45, 0xbf, 0x84, 0x56, 0x4c, 0x83, 0x88, 0x06, 0x6c, 0x21, 0x58, 0xad, 0xbf, 0x3f, - 0x48, 0x5f, 0xf8, 0x39, 0xcb, 0xbb, 0xa1, 0x7f, 0x44, 0x03, 0x9c, 0x2a, 0xa1, 0x3d, 0x18, 0x50, - 0xa2, 0xee, 0x7c, 0xa7, 0x34, 0x9a, 0xc7, 0x4e, 0xe8, 0xce, 0x88, 0xe0, 0xaf, 0x36, 0xde, 0xd0, - 0x5d, 0x0f, 0x79, 0xcf, 0x33, 0x77, 0x46, 0xec, 0xaf, 0x00, 0xc9, 0x58, 0xca, 0x50, 0xab, 0x60, - 0xde, 0x82, 0x35, 0xf1, 0x9f, 0x5e, 0x7a, 0xb4, 0xf5, 0x3f, 0x7c, 0x87, 0xfc, 0x17, 0xcb, 0xce, - 0x34, 0x24, 0x55, 0x23, 0x24, 0x37, 0xa0, 0xeb, 0xcd, 0x29, 0x25, 0xa1, 0x7a, 0x74, 0xa9, 0xa9, - 0x47, 0x17, 0x29, 0x3b, 0x21, 0x74, 0x66, 0xff, 0xaf, 0x02, 0x7d, 0x3e, 0xe7, 0xfd, 0x99, 0xaf, - 0xcf, 0xfa, 0x3b, 0xd0, 0x98, 0x98, 0x04, 0x95, 0x7f, 0x02, 0x2d, 0xee, 0x35, 0xac, 0x94, 0xb9, - 0x77, 0xd2, 0x57, 0x2b, 0xf9, 0x74, 0x32, 0xc8, 0xef, 0xe5, 0xe2, 0x83, 0xd5, 0xaf, 0xa1, 0xe7, - 0xf2, 0x02, 0xc7, 0x51, 0x92, 0xb2, 0x5b, 0x8e, 0x79, 0x07, 0xc3, 0x5d, 0xd7, 0xbc, 0x91, 0x7d, - 0x04, 0xfd, 0x44, 0x9c, 0xd0, 0x74, 0x7c, 0xbd, 0xa4, 0x9c, 0x31, 0x59, 0x0c, 0xf7, 0x12, 0xb3, - 0x69, 0xff, 0xb1, 0x0a, 0xeb, 0xe9, 0xda, 0x15, 0x27, 0xdc, 0x29, 0x2c, 0x7e, 0x7b, 0x79, 0xf1, - 0x66, 0x70, 0xd2, 0xd5, 0xef, 0xf3, 0x13, 0x27, 0x7b, 0xf4, 0xf2, 0x87, 0xf9, 0xe5, 0x67, 0x2f, - 0xc6, 0x4a, 0x8d, 0xaf, 0x40, 0x3b, 0x40, 0x8a, 0xca, 0x0a, 0xb2, 0x5c, 0xc1, 0x88, 0x7b, 0x6e, - 0xae, 0x7e, 0xbc, 0x0f, 0xeb, 0xa9, 0x0f, 0x14, 0x44, 0x7d, 0xf9, 0x59, 0x3f, 0x4f, 0x7b, 0xb8, - 0x9f, 0xe4, 0xda, 0x6f, 0x7c, 0x03, 0x4d, 0x45, 0x72, 0xa8, 0x03, 0xcd, 0x47, 0xe1, 0xb9, 0x3b, - 0x0d, 0x7c, 0xeb, 0x12, 0x6a, 0x42, 0xed, 0x21, 0x61, 0x56, 0x85, 0x7f, 0x1c, 0xcd, 0x99, 0x55, - 0x43, 0x00, 0x0d, 0xf9, 0x02, 0x6f, 0xd5, 0x51, 0x0b, 0xea, 0xc7, 0xa1, 0x1b, 0x5b, 0x6b, 0xa8, - 0x0b, 0x2d, 0xfd, 0xa8, 0x6f, 0x35, 0xd0, 0x3a, 0x74, 0x8c, 0x57, 0x7a, 0xab, 0x89, 0x7a, 0xd0, - 0x4e, 0x5f, 0xdd, 0xad, 0x16, 0x6f, 0xa6, 0xcf, 0xe8, 0x56, 0xfb, 0x8d, 0xbf, 0x54, 0xd5, 0x45, - 0x5b, 0x9b, 0x60, 0x41, 0x57, 0x99, 0x20, 0xc4, 0xd6, 0x25, 0xd4, 0x07, 0xc8, 0x6a, 0x0f, 0xab, - 0x82, 0x7a, 0xb0, 0x26, 0xca, 0x18, 0xab, 0x7a, 0xb5, 0xda, 0xaa, 0x88, 0xee, 0xb4, 0xca, 0xb4, - 0x6a, 0x08, 0x41, 0x3f, 0x5f, 0x44, 0x5a, 0x75, 0x6e, 0x94, 0x71, 0xb1, 0xb1, 0xd6, 0xf8, 0xa0, - 0xac, 0x40, 0xb4, 0x1a, 0x7c, 0x56, 0xb3, 0xda, 0xb3, 0x9a, 0x6a, 0x88, 0x2e, 0xd2, 0xac, 0x16, - 0xda, 0x80, 0x5e, 0xae, 0x08, 0xb3, 0xda, 0x1c, 0x25, 0xab, 0xaa, 0x2c, 0xe0, 0x28, 0x66, 0x95, - 0x64, 0x75, 0xd0, 0x50, 0xfc, 0x1b, 0x9a, 0x2b, 0x69, 0xac, 0x2e, 0x1a, 0xc0, 0x7a, 0xa1, 0x60, - 0xb1, 0x7a, 0x68, 0x53, 0x3f, 0xce, 0x9a, 0xe5, 0x85, 0xd5, 0xe7, 0xa0, 0xe6, 0xdd, 0xc2, 0x5a, - 0x7f, 0xe3, 0x81, 0xce, 0xce, 0xda, 0x67, 0x1b, 0xd0, 0x53, 0x3e, 0x93, 0x72, 0xeb, 0x12, 0x1f, - 0x65, 0x26, 0x21, 0xab, 0x92, 0x49, 0x64, 0xe6, 0xb0, 0xaa, 0xf7, 0x6e, 0xff, 0xfb, 0xcf, 0xad, - 0xca, 0xdf, 0xbe, 0xdf, 0xae, 0xfc, 0xe3, 0xfb, 0xed, 0xca, 0x7f, 0xbe, 0xdf, 0xae, 0x7c, 0xfb, - 0xc3, 0xf6, 0x25, 0xb0, 0x22, 0x7a, 0xba, 0xc7, 0x82, 0xb3, 0xf3, 0xbd, 0xb3, 0x73, 0xf1, 0x5f, - 0xff, 0x97, 0x0d, 0xf1, 0xf3, 0xd6, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x57, 0x3c, 0x7b, - 0x87, 0x20, 0x00, 0x00, + // 2763 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x5a, 0x4b, 0x73, 0xdc, 0xc6, + 0xf1, 0xd7, 0x3e, 0xb8, 0x8f, 0xde, 0xc5, 0x12, 0x9c, 0x5d, 0x89, 0x2b, 0xc9, 0xa6, 0x28, 0x48, + 0xd6, 0x9f, 0xf6, 0x3f, 0xc5, 0xc4, 0xb4, 0x2d, 0xbb, 0xca, 0x8a, 0x1f, 0x12, 0x29, 0x59, 0xd1, + 0x23, 0xf4, 0x90, 0xb1, 0x2b, 0xa9, 0x72, 0xa1, 0x60, 0x60, 0x96, 0x44, 0x71, 0x17, 0x80, 0x07, + 0xb3, 0x94, 0xb7, 0x7c, 0xcd, 0x17, 0x48, 0xe5, 0xe2, 0x8f, 0x90, 0x6b, 0xbe, 0x42, 0x4e, 0xa9, + 0x9c, 0x92, 0x94, 0x0f, 0x39, 0xa6, 0xec, 0x5b, 0xbe, 0x41, 0x6e, 0xa9, 0x79, 0x01, 0x03, 0x2c, + 0x56, 0xb2, 0x7c, 0x22, 0xa6, 0xa7, 0xbb, 0xa7, 0x1f, 0x33, 0xbf, 0xee, 0x99, 0x25, 0xd8, 0xd4, + 0x9b, 0x30, 0xd7, 0x9f, 0x05, 0xc9, 0x97, 0xbb, 0x09, 0x8d, 0x59, 0x8c, 0x20, 0xa7, 0x5c, 0xe9, + 0xcf, 0x08, 0xf3, 0xf4, 0xcc, 0x15, 0x8b, 0x50, 0x1a, 0x53, 0x73, 0xe8, 0x4d, 0x58, 0x3e, 0x3c, + 0x3b, 0xa7, 0x89, 0x9f, 0x0d, 0x51, 0x38, 0x4b, 0x62, 0xca, 0xdc, 0x34, 0xcd, 0x59, 0x86, 0x42, + 0x75, 0x4a, 0xe8, 0x39, 0xc9, 0xd5, 0xac, 0xd3, 0x79, 0xca, 0xc4, 0xa7, 0x24, 0x38, 0xbb, 0x00, + 0x0f, 0x08, 0xc3, 0xe4, 0xab, 0x39, 0x49, 0x19, 0x1a, 0x40, 0xdd, 0x9f, 0x8c, 0x6b, 0xdb, 0xb5, + 0x9d, 0x2e, 0xae, 0xfb, 0x13, 0x64, 0x43, 0xe3, 0x8c, 0x2c, 0xc6, 0xf5, 0xed, 0xda, 0x4e, 0x1f, + 0xf3, 0x4f, 0xe7, 0x06, 0xf4, 0x04, 0x7f, 0x9a, 0xc4, 0x51, 0x4a, 0xd0, 0x08, 0xd6, 0xce, 0xbd, + 0xe9, 0x9c, 0x08, 0x99, 0x3e, 0x96, 0x03, 0x67, 0x1f, 0xe0, 0x70, 0xfe, 0xe3, 0x95, 0xe6, 0x5a, + 0x1a, 0xa6, 0x16, 0x0b, 0x7a, 0x42, 0x8b, 0x5c, 0xca, 0x79, 0x13, 0xac, 0x7d, 0x32, 0x25, 0x8c, + 0xfc, 0x78, 0x63, 0x6d, 0x18, 0x68, 0x11, 0xa5, 0xe4, 0x1b, 0x40, 0x8a, 0xe2, 0x45, 0x27, 0x2b, + 0x35, 0x5d, 0x85, 0x6e, 0xca, 0x3c, 0xca, 0xdc, 0x5c, 0x5f, 0x47, 0x10, 0x1e, 0x91, 0x05, 0xda, + 0x84, 0x36, 0x89, 0x02, 0x31, 0x25, 0xcd, 0x6d, 0x91, 0x28, 0xe0, 0x13, 0xd7, 0xa0, 0x17, 0xc5, + 0x2c, 0x9c, 0x2c, 0xdc, 0x38, 0x9a, 0x2e, 0xc6, 0xcd, 0xed, 0xda, 0x4e, 0x07, 0x83, 0x24, 0xfd, + 0x3a, 0x9a, 0x2e, 0x9c, 0x8b, 0x30, 0x2c, 0x2c, 0xae, 0x6c, 0xb2, 0xa0, 0x77, 0x14, 0x79, 0x89, + 0x32, 0xc6, 0xb9, 0x0d, 0x7d, 0x39, 0x54, 0x21, 0xbe, 0x05, 0x2d, 0x4a, 0x4e, 0xc2, 0x38, 0x12, + 0x06, 0xf6, 0xf6, 0x06, 0xbb, 0x6a, 0x9f, 0x60, 0x41, 0xc5, 0x6a, 0xd6, 0x79, 0x02, 0xeb, 0x87, + 0x94, 0x3c, 0xa3, 0x61, 0x1e, 0x21, 0x15, 0x91, 0x5a, 0x45, 0xa4, 0xeb, 0x46, 0xa4, 0x11, 0x82, + 0xe6, 0x34, 0xf6, 0xcf, 0x94, 0x3f, 0xe2, 0xdb, 0x41, 0x60, 0xe7, 0xea, 0x94, 0xa5, 0xef, 0x83, + 0xfd, 0x30, 0x3a, 0x21, 0x29, 0x3b, 0x3a, 0x3a, 0xd6, 0x6b, 0xfc, 0x1f, 0x34, 0xd2, 0x94, 0x29, + 0xdb, 0x2e, 0xee, 0x16, 0x36, 0xe2, 0xd1, 0xd1, 0xf1, 0x13, 0xc2, 0x3c, 0xcc, 0x39, 0x9c, 0x21, + 0x6c, 0x18, 0xc2, 0x4a, 0xa3, 0x0b, 0x36, 0x26, 0x5e, 0xf0, 0x30, 0x0a, 0xc8, 0xd7, 0x5a, 0xe3, + 0x65, 0x90, 0xc1, 0x76, 0x59, 0x2a, 0xd4, 0x36, 0x71, 0x5b, 0x8c, 0x8f, 0x53, 0xf4, 0x0b, 0x80, + 0x33, 0xb2, 0x70, 0x29, 0x8f, 0x5f, 0x3a, 0xae, 0x6f, 0x37, 0x76, 0x7a, 0x7b, 0x1b, 0xbb, 0xfa, + 0x2c, 0x3c, 0x22, 0x0b, 0x19, 0xd9, 0xee, 0x99, 0xfa, 0x4a, 0x9d, 0x2f, 0x60, 0xc3, 0x58, 0x40, + 0x85, 0xf4, 0x55, 0x00, 0x4a, 0xbc, 0xc0, 0x0d, 0x39, 0x55, 0xad, 0xd1, 0xa5, 0x9a, 0x0d, 0xbd, + 0x0e, 0x2d, 0x1e, 0x02, 0x12, 0x88, 0x28, 0x99, 0x2b, 0x3c, 0x8e, 0xfd, 0xb3, 0x87, 0xd1, 0x24, + 0xc6, 0x8a, 0xc1, 0xf9, 0xa1, 0x01, 0x6d, 0x6d, 0xf7, 0x2e, 0x74, 0xfc, 0x59, 0xe0, 0xb2, 0x45, + 0x22, 0x8f, 0xc3, 0x60, 0x6f, 0xb8, 0x6b, 0x1c, 0xf8, 0x7b, 0xb3, 0xe0, 0x78, 0x91, 0x10, 0xdc, + 0xf6, 0xe5, 0x07, 0xda, 0x81, 0xc6, 0x09, 0x61, 0x6a, 0x8d, 0x4b, 0x26, 0x6b, 0x7e, 0x22, 0x31, + 0x67, 0xe1, 0x9c, 0xc9, 0x9c, 0x89, 0x1d, 0x55, 0xe2, 0xcc, 0x8f, 0x19, 0xe6, 0x2c, 0xe8, 0x4d, + 0x68, 0x05, 0x62, 0x8b, 0x8d, 0xd7, 0x04, 0xf3, 0x65, 0x93, 0xb9, 0x70, 0x7c, 0xb0, 0x62, 0x44, + 0xff, 0x0f, 0xcd, 0x34, 0xf2, 0x92, 0x71, 0x4b, 0x08, 0x6c, 0x9a, 0x02, 0xc6, 0xb6, 0xc4, 0x82, + 0x09, 0xbd, 0x0b, 0x9d, 0x44, 0xed, 0x8a, 0x71, 0x5b, 0x08, 0x5c, 0x2d, 0x98, 0x53, 0xdc, 0x80, + 0x38, 0x63, 0x46, 0x1f, 0x43, 0x5f, 0xae, 0x27, 0x93, 0x37, 0xee, 0x08, 0xe1, 0xad, 0x0a, 0xf3, + 0x8c, 0x83, 0x89, 0x7b, 0x41, 0x4e, 0x43, 0xef, 0x03, 0x84, 0x62, 0x03, 0xf1, 0xdd, 0x35, 0xee, + 0x0a, 0x05, 0xaf, 0x98, 0x0a, 0xca, 0x7b, 0x13, 0x77, 0x25, 0xff, 0x51, 0xca, 0xb8, 0xb0, 0x91, + 0x72, 0x58, 0x16, 0x2e, 0x6f, 0x43, 0x63, 0x43, 0x38, 0xff, 0x69, 0x40, 0x27, 0xdb, 0x3c, 0x2f, + 0x9b, 0xe6, 0xd7, 0xcd, 0x34, 0x6f, 0x2e, 0xa5, 0x59, 0x6a, 0x95, 0x79, 0x7e, 0xdd, 0xcc, 0xf3, + 0xe6, 0x52, 0x9e, 0x35, 0x2b, 0x4f, 0xf4, 0x5e, 0x29, 0xd1, 0x57, 0xaa, 0x12, 0xad, 0x04, 0x74, + 0xa6, 0x7f, 0x56, 0xc8, 0xf4, 0x78, 0x39, 0xd3, 0x8a, 0x5f, 0xa6, 0xfa, 0xbd, 0xa5, 0x54, 0xbf, + 0x52, 0x9d, 0x6a, 0x25, 0x95, 0xe7, 0xfa, 0x23, 0xe0, 0x79, 0x2b, 0xa5, 0xfa, 0xda, 0xca, 0x54, + 0x2b, 0x79, 0x10, 0x32, 0x32, 0xd5, 0x77, 0x2a, 0x52, 0xfd, 0xea, 0x8a, 0x54, 0x2b, 0x71, 0x23, + 0xd7, 0x77, 0x2a, 0x72, 0xfd, 0xea, 0x8a, 0x5c, 0x6b, 0xe9, 0x3c, 0xd9, 0x31, 0x6c, 0xdc, 0x3b, + 0xe5, 0x56, 0x1c, 0x12, 0x42, 0xf5, 0xd9, 0x7e, 0x0f, 0x7a, 0xbe, 0x20, 0x9a, 0x79, 0xdf, 0xdc, + 0xd5, 0x45, 0xf9, 0x5e, 0x1c, 0x4d, 0xa4, 0x90, 0xc8, 0x3d, 0xf8, 0xd9, 0x37, 0xda, 0x86, 0x66, + 0x42, 0x08, 0x55, 0xf9, 0xef, 0x6b, 0xf0, 0x16, 0xca, 0xc5, 0x8c, 0x73, 0x07, 0x90, 0xb9, 0xe0, + 0x4b, 0xc2, 0xfe, 0x53, 0x18, 0xe6, 0xd2, 0x9f, 0xed, 0x69, 0x83, 0xdf, 0x85, 0xb6, 0x34, 0x82, + 0x63, 0x68, 0xa3, 0x1c, 0x80, 0x25, 0x07, 0xb1, 0xe6, 0x76, 0x3e, 0x80, 0x51, 0x51, 0xdf, 0x4b, + 0xda, 0xf3, 0x6d, 0x0d, 0xfa, 0x47, 0xc9, 0x34, 0xcc, 0xca, 0x3f, 0x2f, 0xa6, 0x7c, 0xec, 0xe6, + 0xa5, 0xa8, 0x23, 0x08, 0xbc, 0x66, 0x3a, 0x60, 0x45, 0xe4, 0x99, 0x2b, 0x65, 0xdd, 0x50, 0x22, + 0x6e, 0x13, 0xf7, 0x22, 0xf2, 0x4c, 0xea, 0x7d, 0x18, 0xa0, 0x6d, 0xe8, 0x73, 0x1e, 0x1e, 0x2b, + 0x37, 0x0c, 0xd2, 0x71, 0x63, 0xbb, 0xb1, 0xd3, 0xc4, 0x10, 0x91, 0x67, 0xdc, 0xc4, 0x87, 0x41, + 0x8a, 0x5e, 0x83, 0x3e, 0x0d, 0x4f, 0x4e, 0x99, 0x1b, 0x10, 0x1a, 0x9e, 0x13, 0x59, 0x7a, 0xef, + 0xd6, 0xc7, 0x35, 0xdc, 0x13, 0xf4, 0x7d, 0x41, 0x76, 0x7e, 0x0b, 0x96, 0xb2, 0x4c, 0xf9, 0xe4, + 0x40, 0x73, 0x4a, 0x26, 0x6c, 0x85, 0x47, 0x62, 0x0e, 0xdd, 0x84, 0x35, 0xa1, 0x43, 0x25, 0xb0, + 0xcc, 0x24, 0x27, 0x9d, 0x3f, 0xd6, 0x60, 0xe3, 0xae, 0xc7, 0xfc, 0xd3, 0x82, 0xeb, 0x6f, 0x43, + 0x87, 0xca, 0x4f, 0x9d, 0x85, 0xe2, 0xa1, 0x33, 0x78, 0x71, 0xc6, 0x89, 0xae, 0x97, 0xbc, 0xa9, + 0x8b, 0x46, 0xc2, 0xf4, 0x04, 0xbd, 0x06, 0x03, 0x12, 0xf9, 0x74, 0x91, 0x30, 0x15, 0x3a, 0x51, + 0xba, 0x2d, 0x6c, 0x29, 0xaa, 0x34, 0xce, 0xf9, 0x00, 0x90, 0x69, 0x94, 0xf2, 0x7a, 0x07, 0xda, + 0x52, 0x48, 0x1b, 0x55, 0xf6, 0x49, 0x4f, 0x3b, 0x7f, 0xa8, 0xc1, 0xc6, 0xbd, 0x78, 0x96, 0x78, + 0x3e, 0x7b, 0x1c, 0x9f, 0x68, 0xaf, 0x6e, 0x80, 0xe5, 0x4b, 0x62, 0xa1, 0x80, 0xf6, 0x15, 0x51, + 0xd6, 0xd0, 0xeb, 0xa0, 0xc7, 0x2e, 0x23, 0x74, 0xa6, 0xf3, 0xaa, 0x68, 0xc7, 0x84, 0xce, 0xd0, + 0xdb, 0x70, 0xe9, 0x3c, 0x66, 0x84, 0xba, 0x94, 0x24, 0xd3, 0xd0, 0xf7, 0x18, 0xd1, 0x47, 0xb6, + 0x21, 0x98, 0x47, 0x62, 0x16, 0x67, 0x93, 0xf2, 0x78, 0x8e, 0x00, 0x99, 0x26, 0xa9, 0x3e, 0xe2, + 0x0b, 0xb8, 0x78, 0x4c, 0xbd, 0x28, 0x9d, 0x10, 0xfa, 0x98, 0x78, 0x41, 0x7e, 0x70, 0xf5, 0xf1, + 0xab, 0xad, 0x3a, 0x7e, 0xc8, 0x81, 0x35, 0xfe, 0x57, 0xb7, 0x13, 0x45, 0x16, 0x39, 0xe5, 0x8c, + 0xe1, 0x52, 0x59, 0xbd, 0x5a, 0x78, 0x57, 0x9a, 0x33, 0x67, 0xe4, 0x13, 0x2f, 0x3d, 0xd5, 0xab, + 0x8e, 0xa1, 0xed, 0xc7, 0x11, 0x23, 0x5f, 0x33, 0xb5, 0xe3, 0xf5, 0xd0, 0xf9, 0x1c, 0x36, 0x3e, + 0x23, 0x34, 0x9c, 0x2c, 0x4c, 0xf6, 0x11, 0xac, 0x99, 0x91, 0x94, 0x03, 0xde, 0x95, 0x9d, 0x7a, + 0xe9, 0xa9, 0x6a, 0xd5, 0xc4, 0xb7, 0xa9, 0xb8, 0x51, 0x54, 0x3c, 0x02, 0x64, 0x2a, 0x56, 0xe6, + 0xfd, 0x0e, 0x86, 0x87, 0x94, 0x24, 0x1e, 0x25, 0x4f, 0x08, 0xcd, 0x1b, 0xde, 0xab, 0xd0, 0x9d, + 0x85, 0x51, 0x21, 0x7d, 0x9d, 0x59, 0x18, 0xc9, 0xd4, 0xdd, 0x82, 0x16, 0xf3, 0x68, 0x5e, 0xb3, + 0x96, 0x4e, 0xba, 0x9c, 0x75, 0x2e, 0xc1, 0xa8, 0xa8, 0x5b, 0xad, 0xf9, 0x36, 0x6c, 0x2a, 0xfa, + 0xfd, 0xa9, 0x97, 0x9e, 0x7e, 0xe9, 0xf9, 0x67, 0x2f, 0x6e, 0xed, 0x9c, 0x2b, 0x30, 0x5e, 0x96, + 0x52, 0x1a, 0xc7, 0x70, 0xe9, 0x7e, 0x18, 0x85, 0xe9, 0x69, 0x59, 0xa1, 0x73, 0x19, 0x36, 0x97, + 0x66, 0x94, 0xd0, 0x5f, 0x6a, 0x22, 0x35, 0xb3, 0x90, 0x15, 0x5c, 0xbf, 0x05, 0xad, 0x34, 0x9e, + 0x53, 0x9f, 0xac, 0xc2, 0x31, 0x39, 0x8b, 0x2e, 0x41, 0xcb, 0x17, 0xd2, 0x6a, 0xeb, 0xaa, 0x11, + 0x3f, 0x3d, 0x24, 0x62, 0x34, 0x24, 0x12, 0x88, 0xb8, 0x02, 0x5d, 0x05, 0x0e, 0x22, 0x46, 0x17, + 0x58, 0x4f, 0xa3, 0xbb, 0xd0, 0x97, 0xba, 0xdc, 0x94, 0x79, 0x8c, 0xa8, 0xb2, 0xae, 0xea, 0x60, + 0x76, 0x2f, 0x93, 0xcb, 0x3e, 0x8e, 0x7d, 0x6f, 0x7a, 0xc4, 0xd9, 0x70, 0x4f, 0x0a, 0x89, 0x01, + 0xbf, 0x32, 0x14, 0x7c, 0xc8, 0x76, 0xdd, 0x08, 0xc7, 0xd3, 0x29, 0xf7, 0xb7, 0xe0, 0x5c, 0x6e, + 0x74, 0xcd, 0x34, 0xda, 0xd9, 0x84, 0x8b, 0x25, 0x7e, 0xa5, 0xe8, 0x29, 0x8c, 0x8e, 0x9e, 0x85, + 0xcc, 0x3f, 0xfd, 0x3c, 0x64, 0x11, 0x49, 0x53, 0xad, 0x68, 0x13, 0xda, 0x0a, 0x6f, 0xb5, 0xa6, + 0x44, 0x60, 0x2d, 0x6f, 0x9d, 0xc3, 0xd4, 0x7d, 0x26, 0xb9, 0x15, 0x34, 0x75, 0xc3, 0x54, 0x89, + 0x3b, 0xa7, 0x70, 0x59, 0x22, 0x4e, 0x95, 0xd2, 0x47, 0x60, 0xa7, 0x82, 0xae, 0xe5, 0xb3, 0xe2, + 0xb4, 0x5d, 0x80, 0xc5, 0x0a, 0x59, 0xbc, 0x9e, 0x9a, 0x54, 0x92, 0x3a, 0xaf, 0xc0, 0x95, 0xaa, + 0x95, 0xb2, 0x00, 0x0d, 0x7f, 0x93, 0x04, 0x1e, 0x23, 0x0f, 0x7c, 0xb3, 0x8c, 0x17, 0xdc, 0x6a, + 0xe4, 0x6e, 0x39, 0xff, 0xec, 0x40, 0xff, 0xe3, 0x60, 0x16, 0x46, 0x9a, 0xf3, 0xad, 0xa5, 0x2e, + 0xaf, 0x00, 0xdd, 0x82, 0x77, 0xa9, 0xd5, 0xfb, 0x20, 0xeb, 0x12, 0x8c, 0x92, 0xff, 0x82, 0xc2, + 0xab, 0x7a, 0x05, 0x4e, 0x42, 0x7b, 0xb0, 0x26, 0x2a, 0xa3, 0x38, 0xdb, 0xcf, 0x29, 0x16, 0xa2, + 0xb4, 0x49, 0x56, 0xb1, 0xa6, 0x02, 0xda, 0x69, 0x7c, 0xa2, 0x36, 0x59, 0x71, 0xcd, 0x32, 0x82, + 0x63, 0xf0, 0x33, 0x12, 0xfa, 0x15, 0xac, 0x33, 0x05, 0x6d, 0xee, 0x54, 0x60, 0x9b, 0xea, 0x28, + 0xaf, 0x9b, 0x3a, 0x2a, 0xc1, 0x15, 0x0f, 0x58, 0x81, 0xcc, 0x6d, 0x39, 0x17, 0x18, 0xe4, 0x0a, + 0xe0, 0x6a, 0x2d, 0xdb, 0xb2, 0x84, 0x7d, 0x18, 0xce, 0x33, 0x12, 0xda, 0x07, 0x2b, 0x91, 0x18, + 0xe0, 0xce, 0xf8, 0x36, 0x55, 0x7d, 0xe7, 0xb5, 0x52, 0xdf, 0x59, 0x86, 0x33, 0xdc, 0x4f, 0x0c, + 0x22, 0xbf, 0x6a, 0xc8, 0x6d, 0xaf, 0x94, 0x54, 0x5c, 0x35, 0x96, 0x71, 0x41, 0x94, 0x26, 0x4d, + 0x43, 0x0f, 0x60, 0x40, 0xd5, 0x79, 0x51, 0x4a, 0x64, 0x0f, 0x5a, 0xd8, 0xa7, 0x55, 0x27, 0x10, + 0x5b, 0xd4, 0xa4, 0xa2, 0x77, 0xa0, 0x25, 0xd2, 0x94, 0x56, 0xb5, 0xa1, 0x4b, 0x0d, 0x03, 0x56, + 0xcc, 0xe8, 0x00, 0x06, 0xc6, 0x46, 0x72, 0xcf, 0xf7, 0xc6, 0xbd, 0xe5, 0x48, 0x54, 0xb4, 0x7d, + 0xb8, 0xef, 0x1b, 0x44, 0x15, 0x09, 0x5e, 0x9c, 0x64, 0x42, 0xfa, 0x95, 0x91, 0x28, 0x15, 0x2f, + 0x59, 0xa4, 0x15, 0x0d, 0x1d, 0xc2, 0x86, 0x4e, 0xc9, 0x44, 0x43, 0xec, 0xd8, 0x12, 0x7a, 0x6e, + 0x54, 0xa4, 0xa5, 0x0c, 0xd0, 0xd8, 0x4e, 0x4a, 0x13, 0xe8, 0x09, 0xd8, 0x13, 0x01, 0xd9, 0x86, + 0xc2, 0x81, 0x50, 0xe8, 0x98, 0x0a, 0xab, 0x01, 0x1f, 0xaf, 0x4f, 0x8a, 0x74, 0x74, 0x58, 0x01, + 0x2a, 0xeb, 0x42, 0xdd, 0x6b, 0xcb, 0xb1, 0xfe, 0x31, 0xc8, 0x82, 0x1e, 0xc0, 0xfa, 0x5c, 0x60, + 0x87, 0x7b, 0xe2, 0xbb, 0xb2, 0x35, 0xb0, 0x97, 0xa3, 0x5f, 0x01, 0x2f, 0xd8, 0x9a, 0x1b, 0xc4, + 0xd4, 0xf9, 0xae, 0x0d, 0x96, 0x02, 0x15, 0xd5, 0x7a, 0xfd, 0x24, 0x54, 0xf9, 0xb0, 0x0a, 0x55, + 0xb6, 0x56, 0xa1, 0x8a, 0xbe, 0x4d, 0x19, 0xb0, 0xf2, 0x56, 0x11, 0x56, 0x2e, 0x57, 0xc0, 0x8a, + 0x94, 0x32, 0x71, 0xe5, 0xc3, 0x2a, 0x5c, 0xd9, 0x5a, 0x85, 0x2b, 0xd9, 0xaa, 0x39, 0xb0, 0x3c, + 0x5a, 0x05, 0x2c, 0xce, 0xf3, 0x80, 0x45, 0x29, 0x2a, 0x23, 0xcb, 0x87, 0x55, 0xc8, 0xb2, 0xb5, + 0x0a, 0x59, 0xb4, 0x35, 0x06, 0xb4, 0x1c, 0x54, 0x43, 0xcb, 0xf6, 0x6a, 0x68, 0x51, 0x4a, 0x8a, + 0xd8, 0x72, 0xb7, 0x12, 0x5b, 0xae, 0xad, 0xc4, 0x16, 0xa5, 0xa4, 0x00, 0x2e, 0x9f, 0xac, 0x00, + 0x97, 0xeb, 0xcf, 0x01, 0x17, 0xa5, 0xa7, 0x84, 0x2e, 0xb7, 0x4b, 0xe8, 0xb2, 0xb5, 0x0a, 0x5d, + 0xf4, 0x43, 0x80, 0x82, 0x97, 0xfb, 0x2b, 0xe0, 0x65, 0x7b, 0x35, 0xbc, 0xe8, 0x68, 0x14, 0xf0, + 0xe5, 0xd3, 0x2a, 0x70, 0x90, 0x20, 0x73, 0xf3, 0xf9, 0xe0, 0xa0, 0xd4, 0x2d, 0xa3, 0xc3, 0xd3, + 0x0a, 0x74, 0xa8, 0x80, 0x9b, 0x15, 0x4d, 0xdf, 0x32, 0x3c, 0x7c, 0x5a, 0x01, 0x0f, 0x12, 0x6d, + 0x6e, 0xbd, 0x08, 0x1e, 0xb4, 0xca, 0x72, 0xe7, 0x71, 0x11, 0x86, 0xaa, 0x69, 0x33, 0x8b, 0xa1, + 0x73, 0x07, 0x46, 0x45, 0xb2, 0x3a, 0xf3, 0x37, 0xa1, 0xa5, 0xb6, 0x7f, 0xd5, 0x1d, 0x44, 0xcd, + 0xe5, 0x4a, 0xf7, 0x09, 0xf3, 0xc2, 0xa9, 0x56, 0x1a, 0x68, 0xa5, 0x9a, 0xfc, 0x72, 0xb7, 0x71, + 0x63, 0xf1, 0xfa, 0x73, 0x16, 0xff, 0x47, 0x0d, 0x2c, 0xde, 0x6f, 0xce, 0x53, 0xe3, 0xe6, 0x5a, + 0x02, 0xaa, 0x22, 0x6a, 0x08, 0xe6, 0x25, 0xa4, 0xda, 0x07, 0x4b, 0xdd, 0xe4, 0x0b, 0x8b, 0x5e, + 0x2b, 0xbe, 0xbd, 0x2c, 0x85, 0x0e, 0xf7, 0xa9, 0x41, 0x34, 0xb4, 0x04, 0xc2, 0x69, 0x05, 0x5b, + 0x15, 0x5a, 0x0a, 0xb1, 0xd2, 0x5a, 0x24, 0xd1, 0xf9, 0xae, 0x06, 0x03, 0xed, 0x93, 0x0a, 0xda, + 0x4f, 0x73, 0xea, 0xa0, 0xda, 0xa9, 0xed, 0xd5, 0x4e, 0xe9, 0xb3, 0x52, 0xf0, 0xea, 0xa0, 0xda, + 0xab, 0xed, 0xd5, 0x5e, 0x15, 0xd5, 0x28, 0xb7, 0xfe, 0xd6, 0x80, 0x0d, 0xec, 0x4d, 0x74, 0xc7, + 0xf0, 0x89, 0x54, 0x7e, 0x15, 0xba, 0xf9, 0x13, 0x8a, 0xba, 0xcf, 0xd1, 0xfc, 0xfd, 0xe4, 0x05, + 0x2f, 0x50, 0xe8, 0x1a, 0xf4, 0xc4, 0x83, 0xd9, 0x57, 0xf3, 0x98, 0xce, 0x67, 0xc2, 0xb2, 0x0e, + 0x16, 0x6f, 0x68, 0x9f, 0x0a, 0x0a, 0xbf, 0x8a, 0xce, 0xe7, 0x61, 0x20, 0xaa, 0x40, 0x1f, 0x8b, + 0x6f, 0x74, 0x1b, 0x94, 0x65, 0x2e, 0x49, 0x62, 0xff, 0x54, 0x81, 0xfb, 0xb0, 0xb8, 0x11, 0x0f, + 0xf8, 0x14, 0xee, 0xd1, 0x7c, 0xc0, 0x75, 0x89, 0x17, 0x81, 0x96, 0x30, 0x53, 0x7c, 0x8b, 0x7b, + 0xe1, 0x22, 0xf2, 0x45, 0xa5, 0x69, 0x8b, 0xd5, 0xdb, 0x7c, 0xcc, 0xcb, 0xc8, 0x75, 0xbe, 0x8c, + 0x78, 0x02, 0x70, 0xb9, 0x41, 0x02, 0x71, 0x3b, 0x5c, 0xa3, 0xa0, 0x61, 0xe2, 0x05, 0xe8, 0x06, + 0x58, 0x5e, 0x92, 0x4c, 0xc3, 0xec, 0xfd, 0xa0, 0x2b, 0x1f, 0x24, 0x14, 0x51, 0xde, 0x6a, 0x47, + 0xb0, 0x36, 0x99, 0x7a, 0x27, 0x12, 0x2a, 0x9b, 0x58, 0x0e, 0x78, 0xe0, 0xf8, 0x87, 0x1b, 0x78, + 0xcc, 0x13, 0x20, 0xd8, 0xc7, 0x1d, 0x4e, 0xd8, 0xf7, 0x98, 0x87, 0x7e, 0x0e, 0x9d, 0x84, 0x86, + 0x31, 0x0d, 0xd9, 0x42, 0xa0, 0xda, 0x60, 0x6f, 0x98, 0xfd, 0x12, 0xc0, 0x51, 0xde, 0x8b, 0x82, + 0x43, 0x1a, 0xe2, 0x8c, 0x09, 0xed, 0xc2, 0x90, 0x12, 0x75, 0xe7, 0x3b, 0xa1, 0xf1, 0x3c, 0x71, + 0x23, 0x6f, 0x46, 0x04, 0x7e, 0x75, 0xf1, 0x86, 0x9e, 0x7a, 0xc0, 0x67, 0x9e, 0x7a, 0x33, 0xe2, + 0x7c, 0x05, 0x48, 0xe6, 0x52, 0xa6, 0x5a, 0x25, 0xf3, 0x26, 0xac, 0x89, 0xdf, 0xfe, 0xb2, 0xa3, + 0xad, 0x7f, 0x09, 0x3c, 0xe0, 0x7f, 0xb1, 0x9c, 0xcc, 0x52, 0x52, 0x37, 0x52, 0x72, 0x1d, 0xfa, + 0xfe, 0x9c, 0x52, 0x12, 0xa9, 0x47, 0x97, 0x86, 0x7a, 0x74, 0x91, 0xb4, 0x63, 0x42, 0x67, 0xce, + 0x7f, 0x6b, 0x30, 0xe0, 0x6b, 0xde, 0x9b, 0x05, 0xfa, 0xac, 0xbf, 0x03, 0xad, 0x53, 0x13, 0xa0, + 0x8a, 0x4f, 0xa5, 0xe5, 0xbd, 0x86, 0x15, 0x33, 0x8f, 0x4e, 0xf6, 0xb8, 0x25, 0x9f, 0x4e, 0x86, + 0xc5, 0xbd, 0x5c, 0x7e, 0xd7, 0xfa, 0x25, 0x58, 0x1e, 0x6f, 0x70, 0x5c, 0x45, 0xa9, 0xba, 0xe5, + 0x98, 0x77, 0x30, 0xdc, 0xf7, 0xcc, 0x1b, 0xd9, 0x47, 0x30, 0x48, 0xc5, 0x09, 0xcd, 0xe4, 0x9b, + 0x15, 0xed, 0x8c, 0x89, 0x62, 0xd8, 0x4a, 0xcd, 0xa1, 0xf3, 0xfb, 0x3a, 0xac, 0x67, 0xbe, 0x2b, + 0x4c, 0xb8, 0x5d, 0x72, 0x7e, 0x6b, 0xd9, 0x79, 0x33, 0x39, 0x99, 0xf7, 0x7b, 0xfc, 0xc4, 0xc9, + 0x19, 0xed, 0xfe, 0xa8, 0xe8, 0x7e, 0xfe, 0xb2, 0xac, 0xd8, 0xb8, 0x07, 0x3a, 0x00, 0x92, 0x54, + 0xd5, 0x90, 0x15, 0x1a, 0x46, 0x6c, 0x79, 0x85, 0xfe, 0xf1, 0x1e, 0xac, 0x67, 0x31, 0x50, 0x2a, + 0x9a, 0xcb, 0xcf, 0xff, 0x45, 0xd8, 0xc3, 0x83, 0xb4, 0x30, 0x7e, 0xe3, 0x1b, 0x68, 0x2b, 0x90, + 0x43, 0x3d, 0x68, 0x3f, 0x8c, 0xce, 0xbd, 0x69, 0x18, 0xd8, 0x17, 0x50, 0x1b, 0x1a, 0x0f, 0x08, + 0xb3, 0x6b, 0xfc, 0xe3, 0x70, 0xce, 0xec, 0x06, 0x02, 0x68, 0xc9, 0x97, 0x7a, 0xbb, 0x89, 0x3a, + 0xd0, 0x3c, 0x8a, 0xbc, 0xc4, 0x5e, 0x43, 0x7d, 0xe8, 0xe8, 0xc7, 0x7f, 0xbb, 0x85, 0xd6, 0xa1, + 0x67, 0xbc, 0xe6, 0xdb, 0x6d, 0x64, 0x41, 0x37, 0x7b, 0x9d, 0xb7, 0x3b, 0x7c, 0x98, 0x3d, 0xb7, + 0xdb, 0xdd, 0x37, 0xfe, 0x5c, 0x57, 0x17, 0x6d, 0x6d, 0x82, 0x0d, 0x7d, 0x65, 0x82, 0x20, 0xdb, + 0x17, 0xd0, 0x00, 0x20, 0xef, 0x3d, 0xec, 0x1a, 0xb2, 0x60, 0x4d, 0xb4, 0x31, 0x76, 0xfd, 0x4a, + 0xbd, 0x53, 0x13, 0xd3, 0x59, 0x97, 0x69, 0x37, 0x10, 0x82, 0x41, 0xb1, 0x89, 0xb4, 0x9b, 0xdc, + 0x28, 0xe3, 0x62, 0x63, 0xaf, 0x71, 0xa1, 0xbc, 0x41, 0xb4, 0x5b, 0x7c, 0x55, 0xb3, 0xdb, 0xb3, + 0xdb, 0x4a, 0x44, 0x37, 0x69, 0x76, 0x07, 0x6d, 0x80, 0x55, 0x68, 0xc2, 0xec, 0x2e, 0xd7, 0x92, + 0x77, 0x55, 0x36, 0x70, 0x2d, 0x66, 0x97, 0x64, 0xf7, 0xd0, 0x48, 0xfc, 0x6a, 0x5a, 0x68, 0x69, + 0xec, 0x3e, 0x1a, 0xc2, 0x7a, 0xa9, 0x61, 0xb1, 0x2d, 0x74, 0x49, 0x3f, 0xce, 0x9a, 0xed, 0x85, + 0x3d, 0xe0, 0x4a, 0xcd, 0xbb, 0x85, 0xbd, 0xfe, 0xc6, 0x7d, 0x5d, 0x9d, 0x75, 0xcc, 0x36, 0xc0, + 0x52, 0x31, 0x93, 0x74, 0xfb, 0x02, 0x97, 0x32, 0x8b, 0x90, 0x5d, 0xcb, 0x29, 0xb2, 0x72, 0xd8, + 0xf5, 0xbb, 0xb7, 0xfe, 0xf5, 0xa7, 0x4e, 0xed, 0xaf, 0xdf, 0x6f, 0xd5, 0xfe, 0xfe, 0xfd, 0x56, + 0xed, 0xdf, 0xdf, 0x6f, 0xd5, 0xbe, 0xfd, 0x61, 0xeb, 0x02, 0xd8, 0x31, 0x3d, 0xd9, 0x65, 0xe1, + 0xd9, 0xf9, 0xee, 0xd9, 0xb9, 0xf8, 0x9f, 0x80, 0x2f, 0x5b, 0xe2, 0xcf, 0x5b, 0xff, 0x0b, 0x00, + 0x00, 0xff, 0xff, 0xab, 0xcc, 0x90, 0xe2, 0xaf, 0x20, 0x00, 0x00, } func (m *GetRequest) Marshal() (dAtA []byte, err error) { @@ -5008,6 +5018,11 @@ func (m *BatchSplitRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.EncryptRegion != 0 { + i = encodeVarintRaftCmdpb(dAtA, i, uint64(m.EncryptRegion)) + i-- + dAtA[i] = 0x18 + } if m.RightDerive { i-- if m.RightDerive { @@ -7330,6 +7345,9 @@ func (m *BatchSplitRequest) Size() (n int) { if m.RightDerive { n += 2 } + if m.EncryptRegion != 0 { + n += 1 + sovRaftCmdpb(uint64(m.EncryptRegion)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -11053,6 +11071,25 @@ func (m *BatchSplitRequest) Unmarshal(dAtA []byte) error { } } m.RightDerive = bool(v != 0) + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EncryptRegion", wireType) + } + m.EncryptRegion = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftCmdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EncryptRegion |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipRaftCmdpb(dAtA[iNdEx:]) diff --git a/pkg/tracepb/tracepb.pb.go b/pkg/tracepb/tracepb.pb.go index e5b4919..55cf091 100644 --- a/pkg/tracepb/tracepb.pb.go +++ b/pkg/tracepb/tracepb.pb.go @@ -68,6 +68,7 @@ var xxx_messageInfo_TraceRecordRequest proto.InternalMessageInfo type TraceRecord struct { // Types that are valid to be assigned to RecordOneof: + // // *TraceRecord_Report // *TraceRecord_NotifyCollect RecordOneof isTraceRecord_RecordOneof `protobuf_oneof:"record_oneof"` diff --git a/proto/kvrpcpb.proto b/proto/kvrpcpb.proto index 3ee7ed9..13287d6 100644 --- a/proto/kvrpcpb.proto +++ b/proto/kvrpcpb.proto @@ -741,6 +741,7 @@ message SplitRegionRequest { repeated bytes split_keys = 3; // when use it to do batch split, `split_key` should be empty. // Once enabled, the split_key will not be encoded. bool is_raw_kv = 4; + uint32 encrypt = 5; } message SplitRegionResponse { diff --git a/proto/metapb.proto b/proto/metapb.proto index ef3c8d4..2358fb1 100644 --- a/proto/metapb.proto +++ b/proto/metapb.proto @@ -127,6 +127,8 @@ message Region { bool is_in_flashback = 7; // The start_ts that the current flashback progress is using. uint64 flashback_start_ts = 8; + // the flag indicates whether the region needs to be encrypted in tikv. + uint32 encrypted_region = 9; } enum PeerRole { diff --git a/proto/raft_cmdpb.proto b/proto/raft_cmdpb.proto index 15794d0..0b91a7a 100644 --- a/proto/raft_cmdpb.proto +++ b/proto/raft_cmdpb.proto @@ -158,6 +158,8 @@ message BatchSplitRequest { // If true, the last region derive the origin region_id, // other regions use new ids. bool right_derive = 2; + // encrypt the new region + uint32 encrypt_region = 3; } message BatchSplitResponse { diff --git a/scripts/proto.lock b/scripts/proto.lock index 6acf4bc..f09ae54 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -8937,6 +8937,11 @@ "id": 4, "name": "is_raw_kv", "type": "bool" + }, + { + "id": 5, + "name": "encrypt", + "type": "uint32" } ] }, @@ -11419,6 +11424,11 @@ "id": 8, "name": "flashback_start_ts", "type": "uint64" + }, + { + "id": 9, + "name": "encrypted_region", + "type": "uint32" } ] }, @@ -15015,6 +15025,11 @@ "id": 2, "name": "right_derive", "type": "bool" + }, + { + "id": 3, + "name": "encrypt_region", + "type": "uint32" } ] }, -- Gitee From 3e3e15302e4d271f247988b350449a236f56bf07 Mon Sep 17 00:00:00 2001 From: TonsnakeLin Date: Thu, 13 Jul 2023 15:01:50 +0800 Subject: [PATCH 41/44] cherry-pick #1047 Signed-off-by: TonsnakeLin --- pkg/raft_serverpb/raft_serverpb.pb.go | 402 +++++++++++++++++--------- proto/raft_serverpb.proto | 4 + scripts/proto.lock | 13 + 3 files changed, 277 insertions(+), 142 deletions(-) diff --git a/pkg/raft_serverpb/raft_serverpb.pb.go b/pkg/raft_serverpb/raft_serverpb.pb.go index 727e709..fd77c41 100644 --- a/pkg/raft_serverpb/raft_serverpb.pb.go +++ b/pkg/raft_serverpb/raft_serverpb.pb.go @@ -11,6 +11,7 @@ import ( proto "github.com/golang/protobuf/proto" disk_usage "github.com/pingcap/kvproto/pkg/disk_usage" + encryptionpb "github.com/pingcap/kvproto/pkg/encryptionpb" eraftpb "github.com/pingcap/kvproto/pkg/eraftpb" kvrpcpb "github.com/pingcap/kvproto/pkg/kvrpcpb" metapb "github.com/pingcap/kvproto/pkg/metapb" @@ -706,12 +707,15 @@ func (m *TabletSnapshotPreview) GetEnd() bool { } type TabletSnapshotFileChunk struct { - FileSize uint64 `protobuf:"varint,1,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"` - FileName string `protobuf:"bytes,2,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"` - Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + FileSize uint64 `protobuf:"varint,1,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"` + FileName string `protobuf:"bytes,2,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"` + Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + // Initial vector if encryption is enabled. + Iv []byte `protobuf:"bytes,4,opt,name=iv,proto3" json:"iv,omitempty"` + Key *encryptionpb.DataKey `protobuf:"bytes,5,opt,name=key,proto3" json:"key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *TabletSnapshotFileChunk) Reset() { *m = TabletSnapshotFileChunk{} } @@ -768,6 +772,20 @@ func (m *TabletSnapshotFileChunk) GetData() []byte { return nil } +func (m *TabletSnapshotFileChunk) GetIv() []byte { + if m != nil { + return m.Iv + } + return nil +} + +func (m *TabletSnapshotFileChunk) GetKey() *encryptionpb.DataKey { + if m != nil { + return m.Key + } + return nil +} + type TabletSnapshotHead struct { Message *RaftMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` UseCache bool `protobuf:"varint,2,opt,name=use_cache,json=useCache,proto3" json:"use_cache,omitempty"` @@ -2140,142 +2158,145 @@ func init() { func init() { proto.RegisterFile("raft_serverpb.proto", fileDescriptor_130ebc2f2c37a342) } var fileDescriptor_130ebc2f2c37a342 = []byte{ - // 2158 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x4b, 0x73, 0x1b, 0xb9, - 0xf1, 0xd7, 0x90, 0x14, 0x1f, 0xcd, 0x87, 0x68, 0xc8, 0x0f, 0xda, 0x5a, 0xdb, 0xf2, 0x78, 0xed, - 0xd5, 0x7a, 0xff, 0x7f, 0xb9, 0x56, 0xeb, 0x6c, 0xb6, 0x36, 0x55, 0x4e, 0x24, 0xd9, 0x8e, 0x9c, - 0x0d, 0x5d, 0xae, 0x91, 0x6c, 0x57, 0x4e, 0x53, 0xd0, 0x0c, 0x38, 0x9a, 0x70, 0x5e, 0x0b, 0x80, - 0xb2, 0x99, 0xca, 0xb7, 0xc8, 0xc5, 0x1f, 0x61, 0x3f, 0x42, 0x3e, 0x40, 0x0e, 0xa9, 0xe4, 0x92, - 0x63, 0x8e, 0x29, 0xe7, 0x92, 0x6b, 0x8e, 0xb9, 0xa4, 0x52, 0x40, 0x63, 0xc8, 0x19, 0x8a, 0x96, - 0x13, 0x9f, 0x08, 0xf4, 0x03, 0xe8, 0xc7, 0xaf, 0x1b, 0x3d, 0x84, 0x75, 0x4e, 0x47, 0xd2, 0x15, - 0x8c, 0x9f, 0x32, 0x9e, 0x1d, 0x6f, 0x67, 0x3c, 0x95, 0x29, 0xe9, 0x96, 0x88, 0xd7, 0xba, 0x4c, - 0xed, 0x73, 0xee, 0xb5, 0x4e, 0xcc, 0x24, 0x9d, 0xed, 0xba, 0xe3, 0x53, 0x9e, 0x79, 0xb3, 0x6d, - 0xdf, 0x0f, 0xc5, 0xd8, 0x9d, 0x08, 0x1a, 0x30, 0x43, 0x59, 0xe3, 0x13, 0x21, 0xf5, 0x12, 0x09, - 0xf6, 0xbf, 0xaa, 0xd0, 0x76, 0xe8, 0x48, 0x0e, 0x99, 0x50, 0x62, 0x64, 0x03, 0x5a, 0x9c, 0x05, - 0x61, 0x9a, 0xb8, 0xa1, 0x3f, 0xb0, 0x36, 0xad, 0xad, 0x9a, 0xd3, 0x44, 0xc2, 0x53, 0x9f, 0x7c, - 0x0e, 0xad, 0x11, 0x4f, 0x63, 0x37, 0x63, 0x8c, 0x0f, 0x2a, 0x9b, 0xd6, 0x56, 0x7b, 0xa7, 0xb3, - 0x6d, 0x0c, 0x78, 0xce, 0x18, 0x77, 0x9a, 0x8a, 0xad, 0x56, 0xe4, 0x0e, 0x34, 0x64, 0x8a, 0x82, - 0xd5, 0x25, 0x82, 0x75, 0x99, 0x6a, 0xb1, 0x7b, 0xd0, 0x88, 0xf1, 0xe6, 0x41, 0x4d, 0x8b, 0xf5, - 0xb7, 0x73, 0xff, 0x8c, 0x45, 0x4e, 0x2e, 0x40, 0xbe, 0x86, 0x8e, 0x31, 0x8d, 0x65, 0xa9, 0x77, - 0x32, 0x58, 0xd5, 0x0a, 0xeb, 0xf9, 0xb9, 0x8e, 0xe6, 0x3d, 0x56, 0x2c, 0xa7, 0xcd, 0xe7, 0x1b, - 0x72, 0x0b, 0x3a, 0xa1, 0x70, 0x65, 0x1a, 0x1f, 0x0b, 0x99, 0x26, 0x6c, 0x50, 0xdf, 0xb4, 0xb6, - 0x9a, 0x4e, 0x3b, 0x14, 0x47, 0x39, 0x49, 0x79, 0x2d, 0x24, 0xe5, 0xd2, 0x1d, 0xb3, 0xe9, 0xa0, - 0xb1, 0x69, 0x6d, 0x75, 0x9c, 0xa6, 0x26, 0x7c, 0xc7, 0xa6, 0xe4, 0x0a, 0x34, 0x58, 0xe2, 0x6b, - 0x56, 0x53, 0xb3, 0xea, 0x2c, 0xf1, 0x15, 0xe3, 0x4b, 0xe8, 0xc4, 0x8c, 0x07, 0xcc, 0x95, 0x94, - 0x07, 0x4c, 0x0e, 0x5a, 0xda, 0xa0, 0x5e, 0xd9, 0x20, 0xa7, 0xad, 0x65, 0x8e, 0xb4, 0x08, 0xf9, - 0x06, 0x5a, 0xec, 0x8d, 0xe4, 0xd4, 0x8d, 0x45, 0x30, 0x00, 0x2d, 0xbf, 0xb1, 0x5d, 0xce, 0xfa, - 0x63, 0xc5, 0xcf, 0x9d, 0x6f, 0x6a, 0xe9, 0xa1, 0x08, 0x94, 0x89, 0xa8, 0xe9, 0xc9, 0x37, 0x83, - 0x36, 0x9a, 0xa8, 0x09, 0xfb, 0xf2, 0x0d, 0x79, 0x00, 0x30, 0x4f, 0xf5, 0xa0, 0xb3, 0x69, 0x6d, - 0xf5, 0x76, 0x2e, 0x6d, 0x17, 0xb2, 0xff, 0x28, 0x14, 0xe3, 0x17, 0xfa, 0xc4, 0x96, 0x9f, 0x2f, - 0xed, 0x87, 0x40, 0x54, 0xea, 0x8f, 0xf8, 0x24, 0xf1, 0xa8, 0x64, 0xfe, 0xa1, 0xa4, 0x92, 0x91, - 0x8b, 0xb0, 0x1a, 0x26, 0x3e, 0x7b, 0x63, 0xb2, 0x8f, 0x1b, 0x42, 0xa0, 0x26, 0x19, 0x8f, 0x75, - 0xd6, 0x6b, 0x8e, 0x5e, 0xdb, 0xcf, 0xa1, 0x77, 0x98, 0xd0, 0x4c, 0x9c, 0xa4, 0x72, 0xff, 0xc9, - 0x93, 0x30, 0x62, 0xa4, 0x07, 0x15, 0x6f, 0xa4, 0x15, 0x5b, 0x4e, 0xc5, 0x1b, 0x29, 0x2d, 0x11, - 0xfe, 0x86, 0xe5, 0x5a, 0x6a, 0x4d, 0xae, 0x41, 0xd3, 0x3b, 0x61, 0xde, 0x58, 0x4c, 0x62, 0x0d, - 0x8d, 0xae, 0x33, 0xdb, 0xdb, 0xff, 0xb6, 0xa0, 0x93, 0x1f, 0x39, 0x64, 0x92, 0x92, 0x6f, 0xa0, - 0xe9, 0x8d, 0xdc, 0x51, 0x18, 0x31, 0x31, 0xb0, 0x36, 0xab, 0x5b, 0xed, 0x9d, 0xeb, 0x0b, 0xe1, - 0x2a, 0x5b, 0xe0, 0x34, 0xbc, 0x91, 0xfa, 0x15, 0xe4, 0x26, 0xb4, 0x47, 0x29, 0x77, 0x8f, 0x69, - 0x44, 0x13, 0x0f, 0x2d, 0x68, 0x3a, 0x30, 0x4a, 0xf9, 0x1e, 0x52, 0x72, 0x81, 0xd7, 0xa1, 0x4c, - 0x98, 0x10, 0xda, 0x14, 0x14, 0x78, 0x85, 0x14, 0x15, 0x08, 0x8d, 0x01, 0x8d, 0xcc, 0x9a, 0x83, - 0x1b, 0xb2, 0x03, 0x97, 0x02, 0x96, 0x30, 0x4e, 0x25, 0x73, 0xfd, 0x09, 0xa7, 0x52, 0x01, 0x52, - 0x30, 0x4f, 0xc3, 0xb1, 0xe6, 0xac, 0xe7, 0xcc, 0x47, 0x86, 0x77, 0xc8, 0x3c, 0xb2, 0x05, 0x7d, - 0x49, 0x8f, 0x23, 0x26, 0x5d, 0x91, 0xd0, 0xcc, 0xcd, 0xa8, 0x3c, 0xd1, 0x28, 0x6c, 0x39, 0x3d, - 0xa4, 0x2b, 0x27, 0x9e, 0x53, 0x79, 0x62, 0xff, 0x0a, 0xba, 0x33, 0x87, 0x4e, 0x26, 0xc9, 0x98, - 0x3c, 0x98, 0x17, 0x88, 0xa5, 0xe1, 0x72, 0x6d, 0xc1, 0xff, 0x42, 0xf1, 0xce, 0x4b, 0x85, 0x40, - 0xcd, 0xa7, 0x92, 0x6a, 0xaf, 0x3b, 0x8e, 0x5e, 0xdb, 0x75, 0xa8, 0x3d, 0x4a, 0x13, 0x66, 0xbf, - 0xb5, 0xe0, 0xf2, 0xd1, 0xec, 0x56, 0x75, 0x93, 0x0a, 0x98, 0x8e, 0xf6, 0x06, 0xb4, 0x54, 0xa8, - 0x5d, 0x9d, 0x33, 0x53, 0xfc, 0x8a, 0x70, 0xa8, 0xf2, 0x96, 0x33, 0x13, 0x1a, 0x63, 0x38, 0x5b, - 0xc8, 0x7c, 0x46, 0x63, 0x46, 0xae, 0x03, 0x9c, 0x30, 0xea, 0xbb, 0x9e, 0x32, 0x5a, 0xc7, 0xb2, - 0xe3, 0xb4, 0x14, 0x05, 0xbd, 0xb8, 0x03, 0x3d, 0xc9, 0x69, 0x18, 0x85, 0x49, 0x60, 0x44, 0x6a, - 0x5a, 0xa4, 0x9b, 0x53, 0xb5, 0x98, 0x3d, 0x82, 0x4b, 0x65, 0xcb, 0x9e, 0x73, 0x76, 0x1a, 0xb2, - 0xd7, 0xe4, 0x27, 0xb0, 0xaa, 0x8a, 0x2a, 0xc7, 0xc0, 0x9d, 0x85, 0x18, 0x2c, 0x77, 0xc7, 0x41, - 0x1d, 0xd2, 0x87, 0x2a, 0x4b, 0x7c, 0x83, 0x00, 0xb5, 0xb4, 0x03, 0xb8, 0x72, 0x56, 0x05, 0x2d, - 0xfd, 0xf8, 0x10, 0xe4, 0x31, 0xaf, 0x16, 0x62, 0x1e, 0x00, 0x29, 0x5f, 0x74, 0xc0, 0xa8, 0xff, - 0x91, 0x39, 0xdd, 0x80, 0xd6, 0x44, 0x30, 0xd7, 0xa3, 0xde, 0x49, 0x0e, 0xe7, 0xe6, 0x44, 0xb0, - 0x7d, 0xb5, 0xb7, 0xef, 0xc3, 0x85, 0xf2, 0x45, 0x8f, 0x13, 0xbf, 0x54, 0x69, 0xc6, 0x95, 0x59, - 0xa5, 0xfd, 0xae, 0xb2, 0x18, 0x6b, 0x87, 0x7d, 0x3f, 0x61, 0x42, 0x92, 0x1f, 0x43, 0x4d, 0x25, - 0xce, 0x98, 0x76, 0xeb, 0xdc, 0x50, 0x2b, 0x77, 0x0e, 0x56, 0x1c, 0xad, 0x40, 0x7e, 0x06, 0x8d, - 0x0c, 0xf3, 0x65, 0xde, 0x86, 0x4f, 0xcf, 0xd5, 0x35, 0xb9, 0x3d, 0x58, 0x71, 0x72, 0x35, 0xf2, - 0x10, 0x56, 0xe7, 0x00, 0x6a, 0xef, 0xdc, 0xfd, 0x60, 0x9a, 0x75, 0xce, 0x0e, 0x56, 0x1c, 0x54, - 0x23, 0x0f, 0x30, 0xd3, 0xf8, 0x92, 0x6c, 0x9e, 0xab, 0xfd, 0x38, 0x51, 0x86, 0x2b, 0xf1, 0xbd, - 0x16, 0x34, 0x32, 0x3a, 0x8d, 0x52, 0xea, 0xdb, 0x0f, 0xe0, 0xd2, 0xae, 0xe7, 0xb1, 0x4c, 0x35, - 0xc3, 0xc2, 0x35, 0xa2, 0x9c, 0x79, 0x05, 0xc2, 0x42, 0xe6, 0xed, 0xa3, 0xc5, 0x82, 0x72, 0x98, - 0xc8, 0xd2, 0x44, 0x30, 0xf2, 0x2d, 0xac, 0xe6, 0xbd, 0x6b, 0x59, 0x40, 0x96, 0xde, 0xe5, 0xa0, - 0x8a, 0xbd, 0x03, 0xcd, 0xef, 0xd8, 0xf4, 0x25, 0x8d, 0x26, 0x4c, 0x41, 0x58, 0x3d, 0x3f, 0x96, - 0x86, 0x96, 0x5a, 0xaa, 0xe6, 0x74, 0xaa, 0x58, 0xa6, 0xc4, 0x71, 0x63, 0xff, 0xa9, 0x02, 0x7d, - 0x05, 0x9e, 0xfc, 0xc0, 0x47, 0x54, 0x52, 0x72, 0x17, 0xea, 0xf8, 0x1c, 0x1a, 0x2b, 0x16, 0x1f, - 0x28, 0xc3, 0x2d, 0x43, 0xbf, 0xb2, 0x00, 0xfd, 0x2f, 0x66, 0xe8, 0x56, 0x05, 0x78, 0x65, 0xc1, - 0x91, 0xdc, 0x50, 0x84, 0x3d, 0x19, 0x40, 0xe3, 0x94, 0x71, 0xa1, 0xae, 0xc4, 0xde, 0x99, 0x6f, - 0xc9, 0x7d, 0xa8, 0xa9, 0xcb, 0xcd, 0xdb, 0xbd, 0xf1, 0x9e, 0x5e, 0xae, 0xab, 0x57, 0x0b, 0x92, - 0x1f, 0xc1, 0x1a, 0x67, 0x71, 0x7a, 0xca, 0x7c, 0x97, 0x33, 0x2f, 0xe5, 0xbe, 0x18, 0xd4, 0xb5, - 0x09, 0xe5, 0x79, 0xa2, 0x67, 0x84, 0x1c, 0x94, 0x21, 0x7b, 0xd0, 0xd3, 0xcf, 0xee, 0x5c, 0xab, - 0xa1, 0xb5, 0x16, 0x6f, 0x1c, 0x6a, 0x21, 0xd4, 0x72, 0xba, 0x71, 0x61, 0x27, 0xec, 0xdf, 0x02, - 0x1c, 0xca, 0x94, 0xb3, 0xa7, 0x3e, 0x4b, 0xa4, 0xea, 0x70, 0x5e, 0x34, 0x11, 0x92, 0xf1, 0xf9, - 0x64, 0xd4, 0x32, 0x94, 0xa7, 0x3e, 0xb9, 0x0a, 0x4d, 0xa1, 0x84, 0x15, 0x13, 0x63, 0xd7, 0x10, - 0xa8, 0x4c, 0x1e, 0x40, 0x9b, 0x66, 0xa1, 0x9b, 0x47, 0xa4, 0xaa, 0x5f, 0xe7, 0xf5, 0xed, 0x7c, - 0x54, 0xdb, 0x7d, 0xfe, 0xf4, 0x25, 0xb2, 0x1c, 0xa0, 0x59, 0x68, 0xd6, 0xf6, 0xe7, 0x70, 0x41, - 0xdf, 0xae, 0xac, 0x39, 0x65, 0x7c, 0xf6, 0x36, 0x0b, 0xf6, 0x7d, 0x92, 0xe6, 0x6f, 0xb3, 0xde, - 0xd8, 0xc7, 0xd0, 0x53, 0x49, 0xff, 0x65, 0xea, 0xd1, 0x08, 0xe5, 0xbe, 0x04, 0x38, 0xa1, 0xdc, - 0x77, 0x85, 0xda, 0x99, 0xb4, 0x93, 0xd9, 0x64, 0x75, 0x40, 0x39, 0xbe, 0xf5, 0x4e, 0xeb, 0x24, - 0x5f, 0x2a, 0xff, 0x22, 0x2a, 0xa4, 0x8b, 0x6f, 0x3f, 0xba, 0xd0, 0x52, 0x94, 0xa7, 0x8a, 0x60, - 0xff, 0xd3, 0xc2, 0x4b, 0x76, 0xb3, 0x2c, 0x9a, 0xa2, 0xc6, 0x6d, 0xe8, 0xd2, 0x2c, 0x8b, 0x42, - 0xe6, 0xbb, 0xc5, 0x81, 0xa1, 0x63, 0x88, 0x5a, 0x8f, 0xdc, 0x83, 0x0b, 0xfa, 0x58, 0x2f, 0x8d, - 0xe3, 0x30, 0x3f, 0xbd, 0xaa, 0x05, 0xd7, 0x14, 0x63, 0x5f, 0xd3, 0x51, 0xf6, 0x16, 0x74, 0x4a, - 0x62, 0x88, 0x9d, 0xb6, 0x57, 0x10, 0xb9, 0x09, 0x66, 0xeb, 0xea, 0x69, 0x04, 0xdf, 0x5c, 0x40, - 0xd2, 0x11, 0xe3, 0x31, 0xf9, 0x05, 0xac, 0xc9, 0x7c, 0x9e, 0x31, 0xee, 0x57, 0x96, 0x36, 0xb2, - 0xb3, 0x93, 0x8f, 0xd3, 0x93, 0xa5, 0xbd, 0x1d, 0x02, 0x68, 0x7c, 0xa0, 0xbb, 0x1b, 0xd0, 0x8a, - 0xc3, 0xa4, 0xe4, 0x6a, 0x33, 0x0e, 0x13, 0xb4, 0xeb, 0x2e, 0xd4, 0xcd, 0x10, 0x58, 0x59, 0x5e, - 0x63, 0xc8, 0x25, 0x97, 0xa1, 0x8e, 0xc6, 0x9a, 0x18, 0x98, 0x9d, 0x2a, 0xdc, 0x4e, 0x11, 0x8b, - 0x6a, 0x64, 0x10, 0xe9, 0x84, 0x7b, 0xcc, 0x5d, 0x1c, 0xc7, 0x7b, 0x48, 0x77, 0xf2, 0xa1, 0xfc, - 0x6b, 0xe8, 0x18, 0x49, 0x1c, 0x8b, 0x2b, 0xe7, 0x8c, 0xc5, 0x28, 0x88, 0x63, 0xf1, 0xfd, 0x99, - 0x9e, 0x9a, 0xd2, 0x85, 0xa9, 0xec, 0x72, 0x59, 0x19, 0x05, 0xb5, 0x16, 0x38, 0xc5, 0x28, 0x2f, - 0x0a, 0x26, 0x61, 0x8a, 0x7a, 0x48, 0x2f, 0x9a, 0x64, 0x24, 0x3f, 0x3c, 0xa9, 0xa3, 0xe0, 0xcc, - 0x24, 0xa3, 0x87, 0x26, 0x2d, 0xab, 0x74, 0xa3, 0x80, 0x26, 0xcd, 0x66, 0xd5, 0x46, 0x61, 0x56, - 0xb5, 0xff, 0xa0, 0xba, 0xa0, 0xbe, 0xa3, 0x50, 0x12, 0xdb, 0x7a, 0x9a, 0x33, 0xd5, 0xd0, 0xdb, - 0x19, 0x2c, 0xc0, 0x41, 0x9d, 0x87, 0x28, 0x40, 0xb1, 0x42, 0xd7, 0xac, 0x9c, 0xdb, 0x35, 0xbf, - 0x05, 0x1c, 0xf0, 0x0d, 0xd8, 0xf0, 0xe5, 0xba, 0xba, 0xac, 0xcd, 0xe0, 0xf1, 0x10, 0xcf, 0x21, - 0x75, 0x4b, 0xf9, 0xab, 0xe7, 0xc2, 0x12, 0xe0, 0x91, 0x86, 0xc0, 0x5a, 0xd2, 0xff, 0x56, 0x3f, - 0xaa, 0xff, 0xd5, 0xff, 0xe7, 0xfe, 0xf7, 0x0f, 0x0b, 0x3e, 0x41, 0x67, 0x0f, 0xd5, 0x68, 0x90, - 0x78, 0xec, 0xd9, 0x24, 0x3e, 0x66, 0xdc, 0x61, 0x91, 0x9e, 0x6c, 0xcf, 0xff, 0x56, 0xfc, 0x0c, - 0xd6, 0x84, 0x51, 0x73, 0x13, 0xad, 0x67, 0x9a, 0x4a, 0x4f, 0x94, 0x4e, 0x23, 0x0f, 0x55, 0x7b, - 0xcc, 0xa2, 0x69, 0x29, 0x80, 0xd7, 0x97, 0x54, 0xeb, 0xbc, 0xf5, 0xa8, 0x46, 0x39, 0x6b, 0x43, - 0x7b, 0xb3, 0xcf, 0x42, 0x3c, 0x00, 0x5f, 0xff, 0x9b, 0x8b, 0x07, 0x2c, 0xe0, 0x21, 0xff, 0x44, - 0xc4, 0x4a, 0xff, 0xbd, 0x05, 0xeb, 0xbb, 0xa7, 0x34, 0x8c, 0xe8, 0x71, 0x18, 0x85, 0x72, 0xba, - 0x9f, 0x26, 0x92, 0xbd, 0x91, 0xe4, 0x53, 0xe8, 0xe9, 0x0f, 0xde, 0x45, 0x37, 0x3b, 0x8a, 0x3a, - 0x83, 0xfb, 0x4f, 0xe1, 0x42, 0x51, 0xea, 0x83, 0x65, 0xb8, 0x36, 0xd7, 0x46, 0xdc, 0x6f, 0x42, - 0x7b, 0x92, 0x50, 0xbc, 0x3f, 0x62, 0xe6, 0x53, 0xa4, 0x48, 0x52, 0x2f, 0xaa, 0xe4, 0x61, 0x1c, - 0x33, 0x2c, 0xb9, 0xa6, 0x93, 0x6f, 0xed, 0xff, 0x83, 0xee, 0x93, 0x68, 0x22, 0x4e, 0x86, 0x2c, - 0xd6, 0xb8, 0x39, 0x37, 0x2b, 0xf6, 0x9f, 0x2d, 0x68, 0xef, 0xab, 0x19, 0xf0, 0xe7, 0x9e, 0xfe, - 0xfe, 0xfe, 0xef, 0x1c, 0xbc, 0x0b, 0x6b, 0x7a, 0x70, 0x2c, 0x88, 0x61, 0x2e, 0xbb, 0x9a, 0x3c, - 0x93, 0xdb, 0x05, 0x52, 0x92, 0xc3, 0x48, 0x54, 0xdf, 0x1f, 0x89, 0x7e, 0x41, 0x1f, 0x43, 0xf1, - 0x05, 0x00, 0x1e, 0xa1, 0xff, 0x3a, 0xa8, 0x2d, 0xf9, 0xeb, 0xa0, 0xa5, 0xf9, 0x6a, 0x69, 0xff, - 0x50, 0x85, 0x4e, 0xf1, 0x73, 0x99, 0x7c, 0x05, 0x35, 0x39, 0xcd, 0xf2, 0x1a, 0xbf, 0x79, 0xce, - 0x97, 0xf5, 0xd1, 0x34, 0x63, 0x8e, 0x16, 0x9e, 0x37, 0x91, 0x4a, 0xf1, 0x83, 0xf7, 0xff, 0xa1, - 0x3d, 0x37, 0x64, 0x79, 0x77, 0x84, 0x99, 0x25, 0x7a, 0x40, 0x7c, 0x4d, 0x43, 0xe9, 0xea, 0x21, - 0x09, 0x53, 0xd4, 0x54, 0x04, 0x3d, 0x81, 0xdd, 0x81, 0xde, 0x28, 0xe5, 0x1e, 0x8b, 0xa6, 0x2e, - 0x7d, 0x4d, 0xc7, 0x2c, 0xd1, 0x1d, 0xb1, 0xe9, 0x74, 0x0d, 0x75, 0x57, 0x13, 0xc9, 0x43, 0xc0, - 0x78, 0xba, 0x81, 0x87, 0xee, 0xd7, 0x97, 0x7e, 0x1d, 0x14, 0xf2, 0xe7, 0xa0, 0x8d, 0x26, 0x99, - 0xfb, 0xd0, 0x1b, 0x29, 0x28, 0xb8, 0xb1, 0xc1, 0x82, 0x6e, 0x8b, 0xed, 0x9d, 0x4f, 0x16, 0x0e, - 0x28, 0xe1, 0xc5, 0xe9, 0x8e, 0x4a, 0xf0, 0x79, 0x01, 0x17, 0x69, 0xa1, 0x12, 0x5c, 0x0f, 0x4b, - 0x41, 0xff, 0xf5, 0xd1, 0xde, 0xb1, 0x17, 0x27, 0xd8, 0xb3, 0x45, 0xe3, 0xac, 0xd3, 0xb3, 0xc4, - 0x7b, 0x0e, 0xb4, 0x66, 0x2d, 0x96, 0x00, 0xd4, 0x9f, 0xa5, 0x3c, 0xa6, 0x51, 0x7f, 0x85, 0x74, - 0xa0, 0xa9, 0x0b, 0x3b, 0x4c, 0x82, 0xbe, 0x45, 0xba, 0xd0, 0x9a, 0xfd, 0x2b, 0xd3, 0xaf, 0x90, - 0x36, 0x34, 0x54, 0x87, 0x52, 0xbc, 0x2a, 0x59, 0x83, 0xf6, 0x8b, 0x79, 0x49, 0xf4, 0x6b, 0xf7, - 0xde, 0x56, 0xa1, 0xbf, 0x98, 0x53, 0xb2, 0x0e, 0x6b, 0x43, 0x11, 0x20, 0xa4, 0x5e, 0xd1, 0x31, - 0x7b, 0x91, 0xf5, 0x57, 0xc8, 0x00, 0x2e, 0x0e, 0x45, 0xf0, 0x8a, 0x26, 0xd2, 0x49, 0xa3, 0xe8, - 0x98, 0x7a, 0x63, 0xdd, 0xf8, 0xfa, 0x16, 0xb9, 0x04, 0x17, 0x86, 0x22, 0xd0, 0x21, 0x3d, 0x94, - 0x34, 0xd2, 0x4f, 0x5d, 0xbf, 0x42, 0xae, 0xc3, 0xd5, 0x33, 0xe4, 0x7c, 0xaa, 0xef, 0x57, 0xc9, - 0x15, 0x58, 0x1f, 0x8a, 0xe0, 0x20, 0x3c, 0x66, 0x3c, 0x51, 0xcd, 0x04, 0x3f, 0x9d, 0xfa, 0x35, - 0x73, 0x51, 0x81, 0x61, 0x54, 0x56, 0xc9, 0x67, 0x70, 0x5b, 0xdb, 0xf5, 0x6b, 0xe6, 0x49, 0x9c, - 0xd6, 0x82, 0x7d, 0x3a, 0x11, 0xcc, 0xdf, 0x9b, 0x0e, 0x59, 0x9c, 0xf2, 0xa9, 0xfe, 0x4f, 0xa6, - 0x5f, 0x27, 0xd7, 0xe0, 0xf2, 0x50, 0x04, 0xc5, 0xc0, 0xe6, 0xc7, 0x37, 0xc8, 0x06, 0x5c, 0x39, - 0xc3, 0x33, 0x37, 0x34, 0x89, 0x0d, 0x37, 0x86, 0x22, 0x78, 0x99, 0x4a, 0x65, 0x6a, 0x16, 0x85, - 0x7a, 0x92, 0xd1, 0xaf, 0x48, 0x7e, 0x40, 0x8b, 0xdc, 0x86, 0x9b, 0xef, 0x95, 0x31, 0x07, 0x01, - 0xb9, 0x08, 0xfd, 0xa1, 0x08, 0x0c, 0xc2, 0x8c, 0x6a, 0xdb, 0x44, 0x2a, 0xa7, 0x1a, 0xe1, 0x8e, - 0x11, 0x2e, 0x41, 0xaa, 0xdf, 0xdd, 0xbb, 0xfb, 0xd7, 0x1f, 0x9a, 0xd6, 0x1f, 0xdf, 0xdd, 0xb0, - 0xfe, 0xf2, 0xee, 0x86, 0xf5, 0xb7, 0x77, 0x37, 0xac, 0xb7, 0x7f, 0xbf, 0xb1, 0x02, 0xfd, 0x94, - 0x07, 0xdb, 0x32, 0x1c, 0x9f, 0x6e, 0x8f, 0x4f, 0xf5, 0xdf, 0x8f, 0xc7, 0x75, 0xfd, 0xf3, 0xd5, - 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x58, 0xbe, 0xbb, 0x88, 0xfa, 0x14, 0x00, 0x00, + // 2196 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0xcb, 0x73, 0x13, 0xc9, + 0x19, 0xf7, 0x48, 0xb2, 0x1e, 0x9f, 0x1e, 0x16, 0x6d, 0xbc, 0x08, 0xbc, 0x80, 0x19, 0x16, 0xf0, + 0xb2, 0x89, 0xa9, 0xf5, 0x92, 0xcd, 0xd6, 0xa6, 0x8a, 0xc4, 0x36, 0x10, 0x13, 0x22, 0x8a, 0x6a, + 0x1b, 0xa8, 0x9c, 0xa6, 0x5a, 0x33, 0x2d, 0x69, 0xa2, 0x79, 0x6d, 0x77, 0x4b, 0xa0, 0x54, 0xfe, + 0x8b, 0x5c, 0x38, 0xe6, 0xb8, 0x7f, 0x42, 0xfe, 0x80, 0x1c, 0x52, 0xc9, 0x25, 0xc7, 0x1c, 0x53, + 0xe4, 0x92, 0x6b, 0x8e, 0xb9, 0xa4, 0x52, 0xfd, 0x98, 0xd1, 0x8c, 0x2c, 0x4c, 0xc2, 0x49, 0xd3, + 0xdf, 0xa3, 0xfb, 0x7b, 0xfc, 0xbe, 0xaf, 0xbf, 0x16, 0x6c, 0x32, 0x32, 0x14, 0x0e, 0xa7, 0x6c, + 0x46, 0x59, 0x32, 0xd8, 0x4b, 0x58, 0x2c, 0x62, 0xd4, 0x2e, 0x10, 0xaf, 0xb4, 0xa9, 0x5c, 0xa7, + 0xdc, 0x2b, 0xad, 0x90, 0x0a, 0x92, 0xad, 0xda, 0x93, 0x19, 0x4b, 0xdc, 0x6c, 0xd9, 0xf5, 0x7c, + 0x3e, 0x71, 0xa6, 0x9c, 0x8c, 0xa8, 0xa1, 0x20, 0x1a, 0xb9, 0x6c, 0x9e, 0x08, 0x3f, 0x8e, 0x32, + 0xa9, 0x0d, 0x36, 0xe5, 0x42, 0x7d, 0x6a, 0x82, 0xfd, 0xef, 0x32, 0x34, 0x31, 0x19, 0x8a, 0x3e, + 0xe5, 0x52, 0x15, 0x6d, 0x43, 0x83, 0xd1, 0x91, 0x1f, 0x47, 0x8e, 0xef, 0xf5, 0xac, 0x1d, 0x6b, + 0xb7, 0x82, 0xeb, 0x9a, 0xf0, 0xc4, 0x43, 0x9f, 0x43, 0x63, 0xc8, 0xe2, 0xd0, 0x49, 0x28, 0x65, + 0xbd, 0xd2, 0x8e, 0xb5, 0xdb, 0xdc, 0x6f, 0xed, 0x19, 0xa3, 0x9e, 0x53, 0xca, 0x70, 0x5d, 0xb2, + 0xe5, 0x17, 0xba, 0x05, 0x35, 0x11, 0x6b, 0xc1, 0xf2, 0x0a, 0xc1, 0xaa, 0x88, 0x95, 0xd8, 0x5d, + 0xa8, 0x85, 0xfa, 0xe4, 0x5e, 0x45, 0x89, 0x75, 0xf7, 0x52, 0x9f, 0x8d, 0x45, 0x38, 0x15, 0x40, + 0x5f, 0x43, 0xcb, 0x98, 0x46, 0x93, 0xd8, 0x1d, 0xf7, 0xd6, 0x95, 0xc2, 0x66, 0xba, 0x2f, 0x56, + 0xbc, 0x47, 0x92, 0x85, 0x9b, 0x6c, 0xb1, 0x40, 0x37, 0xa0, 0xe5, 0x73, 0x47, 0xc4, 0xe1, 0x80, + 0x8b, 0x38, 0xa2, 0xbd, 0xea, 0x8e, 0xb5, 0x5b, 0xc7, 0x4d, 0x9f, 0x9f, 0xa6, 0x24, 0xe9, 0x35, + 0x17, 0x84, 0x09, 0x67, 0x42, 0xe7, 0xbd, 0xda, 0x8e, 0xb5, 0xdb, 0xc2, 0x75, 0x45, 0x78, 0x4a, + 0xe7, 0xe8, 0x12, 0xd4, 0x68, 0xe4, 0x29, 0x56, 0x5d, 0xb1, 0xaa, 0x34, 0xf2, 0x24, 0xe3, 0x4b, + 0x68, 0x85, 0x94, 0x8d, 0xa8, 0x23, 0x08, 0x1b, 0x51, 0xd1, 0x6b, 0x28, 0x83, 0x3a, 0x45, 0x83, + 0x70, 0x53, 0xc9, 0x9c, 0x2a, 0x11, 0xf4, 0x0d, 0x34, 0xe8, 0x1b, 0xc1, 0x88, 0x13, 0xf2, 0x51, + 0x0f, 0x94, 0xfc, 0xf6, 0x5e, 0x11, 0x09, 0x8f, 0x24, 0x3f, 0x75, 0xbe, 0xae, 0xa4, 0xfb, 0x7c, + 0x24, 0x4d, 0xd4, 0x9a, 0xae, 0x78, 0xd3, 0x6b, 0x6a, 0x13, 0x15, 0xe1, 0x48, 0xbc, 0x41, 0xf7, + 0x01, 0x16, 0xe9, 0xef, 0xb5, 0x76, 0xac, 0xdd, 0xce, 0xfe, 0xd6, 0x5e, 0x0e, 0x11, 0x0f, 0x7d, + 0x3e, 0x79, 0xa1, 0x76, 0x6c, 0x78, 0xe9, 0xa7, 0xfd, 0x00, 0x90, 0x4c, 0xfd, 0x29, 0x9b, 0x46, + 0x2e, 0x11, 0xd4, 0x3b, 0x11, 0x44, 0x50, 0x74, 0x11, 0xd6, 0xfd, 0xc8, 0xa3, 0x6f, 0x4c, 0xf6, + 0xf5, 0x02, 0x21, 0xa8, 0x08, 0xca, 0x42, 0x95, 0xf5, 0x0a, 0x56, 0xdf, 0xf6, 0x73, 0xe8, 0x9c, + 0x44, 0x24, 0xe1, 0xe3, 0x58, 0x1c, 0x3d, 0x7e, 0xec, 0x07, 0x14, 0x75, 0xa0, 0xe4, 0x0e, 0x95, + 0x62, 0x03, 0x97, 0xdc, 0xa1, 0xd4, 0xe2, 0xfe, 0x6f, 0x68, 0xaa, 0x25, 0xbf, 0xd1, 0x15, 0xa8, + 0xbb, 0x63, 0xea, 0x4e, 0xf8, 0x34, 0x54, 0xd0, 0x68, 0xe3, 0x6c, 0x6d, 0xff, 0xc7, 0x82, 0x56, + 0xba, 0x65, 0x9f, 0x0a, 0x82, 0xbe, 0x81, 0xba, 0x3b, 0x74, 0x86, 0x7e, 0x40, 0x79, 0xcf, 0xda, + 0x29, 0xef, 0x36, 0xf7, 0xaf, 0x2e, 0x85, 0xab, 0x68, 0x01, 0xae, 0xb9, 0x43, 0xf9, 0xcb, 0xd1, + 0x75, 0x68, 0x0e, 0x63, 0xe6, 0x0c, 0x48, 0x40, 0x22, 0x57, 0x5b, 0x50, 0xc7, 0x30, 0x8c, 0xd9, + 0xa1, 0xa6, 0xa4, 0x02, 0xaf, 0x7d, 0x11, 0x51, 0xce, 0x95, 0x29, 0x5a, 0xe0, 0x95, 0xa6, 0xc8, + 0x40, 0x28, 0x0c, 0x28, 0x64, 0x56, 0xb0, 0x5e, 0xa0, 0x7d, 0xd8, 0x1a, 0xd1, 0x88, 0x32, 0x22, + 0xa8, 0xe3, 0x4d, 0x19, 0x91, 0xe5, 0xe5, 0x70, 0xea, 0x2a, 0x38, 0x56, 0xf0, 0x66, 0xca, 0x7c, + 0x68, 0x78, 0x27, 0xd4, 0x45, 0xbb, 0xd0, 0x15, 0x64, 0x10, 0x50, 0xe1, 0xf0, 0x88, 0x24, 0x4e, + 0x42, 0xc4, 0x58, 0xa1, 0xb0, 0x81, 0x3b, 0x9a, 0x2e, 0x9d, 0x78, 0x4e, 0xc4, 0xd8, 0xfe, 0x15, + 0xb4, 0x33, 0x87, 0xc6, 0xd3, 0x68, 0x82, 0xee, 0x2f, 0x0a, 0xc4, 0x52, 0x70, 0xb9, 0xb2, 0xe4, + 0x7f, 0xae, 0x78, 0x17, 0xa5, 0x82, 0xa0, 0xe2, 0x11, 0x41, 0x94, 0xd7, 0x2d, 0xac, 0xbe, 0xed, + 0x2a, 0x54, 0x1e, 0xc6, 0x11, 0xb5, 0xdf, 0x5a, 0xf0, 0xc9, 0x69, 0x76, 0xaa, 0x3c, 0x49, 0x06, + 0x4c, 0x45, 0x7b, 0x1b, 0x1a, 0x32, 0xd4, 0x8e, 0xca, 0x99, 0x29, 0x7e, 0x49, 0x38, 0x91, 0x79, + 0x4b, 0x99, 0x11, 0x09, 0x75, 0x38, 0x1b, 0x9a, 0xf9, 0x8c, 0x84, 0x14, 0x5d, 0x05, 0x18, 0x53, + 0xe2, 0x39, 0xae, 0x34, 0x5a, 0xc5, 0xb2, 0x85, 0x1b, 0x92, 0xa2, 0xbd, 0xb8, 0x05, 0x1d, 0xc1, + 0x88, 0x1f, 0xf8, 0xd1, 0xc8, 0x88, 0x54, 0x94, 0x48, 0x3b, 0xa5, 0x2a, 0x31, 0x7b, 0x08, 0x5b, + 0x45, 0xcb, 0x9e, 0x33, 0x3a, 0xf3, 0xe9, 0x6b, 0xf4, 0x13, 0x58, 0x97, 0x45, 0x95, 0x62, 0xe0, + 0xd6, 0x52, 0x0c, 0x56, 0xbb, 0x83, 0xb5, 0x0e, 0xea, 0x42, 0x99, 0x46, 0x9e, 0x41, 0x80, 0xfc, + 0xb4, 0x7f, 0x6f, 0xc1, 0xa5, 0xb3, 0x3a, 0xda, 0xd4, 0x8f, 0x8f, 0x41, 0x1a, 0xf4, 0xf2, 0x22, + 0xe8, 0xb2, 0x20, 0xfc, 0x99, 0x71, 0xb6, 0xe4, 0xcf, 0xd0, 0x1d, 0x28, 0xcb, 0x3e, 0xa2, 0x5b, + 0xd7, 0xd6, 0x5e, 0xa1, 0x43, 0x3f, 0x24, 0x82, 0x3c, 0xa5, 0x73, 0x2c, 0x25, 0xec, 0x11, 0xa0, + 0xa2, 0x85, 0xc7, 0x94, 0x78, 0x1f, 0x89, 0x86, 0x6d, 0x68, 0x4c, 0x39, 0x75, 0x5c, 0xe2, 0x8e, + 0xd3, 0x42, 0xa8, 0x4f, 0x39, 0x3d, 0x92, 0x6b, 0xfb, 0x1e, 0x5c, 0x28, 0x1e, 0xf4, 0x28, 0xf2, + 0x0a, 0x35, 0x6a, 0x62, 0x90, 0xd5, 0xe8, 0xef, 0x4a, 0xcb, 0x59, 0xc2, 0xf4, 0xbb, 0x29, 0xe5, + 0x02, 0xfd, 0x18, 0x2a, 0x32, 0xe5, 0xc6, 0xb4, 0x1b, 0xe7, 0x26, 0x49, 0xba, 0x73, 0xbc, 0x86, + 0x95, 0x02, 0xfa, 0x19, 0xd4, 0x12, 0x9d, 0x69, 0x73, 0xab, 0x7c, 0x76, 0xae, 0xae, 0x41, 0xc5, + 0xf1, 0x1a, 0x4e, 0xd5, 0xd0, 0x03, 0x58, 0x5f, 0x40, 0xaf, 0xb9, 0x7f, 0xfb, 0x83, 0x00, 0x51, + 0xc9, 0x3e, 0x5e, 0xc3, 0x5a, 0x0d, 0xdd, 0xd7, 0x18, 0xd1, 0x77, 0xd0, 0xce, 0xb9, 0xda, 0x8f, + 0x22, 0x69, 0xb8, 0x14, 0x3f, 0x6c, 0x40, 0x2d, 0x21, 0xf3, 0x20, 0x26, 0x9e, 0x7d, 0x1f, 0xb6, + 0x0e, 0x5c, 0x97, 0x26, 0xb2, 0x8d, 0xe6, 0x8e, 0xe1, 0x45, 0xc8, 0x48, 0xf8, 0xe6, 0x20, 0x63, + 0x9f, 0x2e, 0x97, 0x22, 0xa6, 0x3c, 0x89, 0x23, 0x4e, 0xd1, 0xb7, 0xb0, 0x9e, 0x76, 0xbd, 0x55, + 0x01, 0x59, 0x79, 0x16, 0xd6, 0x2a, 0xf6, 0x3e, 0xd4, 0x9f, 0xd2, 0xf9, 0x4b, 0x12, 0x4c, 0xa9, + 0x04, 0xbf, 0x04, 0x9c, 0xa5, 0x10, 0x28, 0x3f, 0x65, 0x5b, 0x9b, 0x49, 0x96, 0x69, 0x0e, 0x7a, + 0x61, 0xff, 0xb9, 0x04, 0x5d, 0x09, 0x9e, 0x74, 0x43, 0x09, 0x46, 0x74, 0x1b, 0xaa, 0xfa, 0x22, + 0x35, 0x56, 0x2c, 0x5f, 0x6d, 0x86, 0x5b, 0xac, 0x99, 0xd2, 0x52, 0xcd, 0x7c, 0x91, 0x95, 0x85, + 0x2c, 0xdd, 0x4b, 0x4b, 0x8e, 0xa4, 0x86, 0x9a, 0x7a, 0xe9, 0x41, 0x6d, 0x46, 0x19, 0x97, 0x47, + 0xea, 0xae, 0x9b, 0x2e, 0xd1, 0x3d, 0xa8, 0xc8, 0xc3, 0x4d, 0xe9, 0x6c, 0xbf, 0xe7, 0x16, 0x50, + 0x75, 0xaf, 0x04, 0xd1, 0x8f, 0x60, 0x83, 0xd1, 0x30, 0x9e, 0x51, 0xcf, 0x61, 0xd4, 0x8d, 0x99, + 0xc7, 0x7b, 0x55, 0x65, 0x42, 0x71, 0x12, 0xe9, 0x18, 0x21, 0xac, 0x65, 0xd0, 0x21, 0x74, 0xd4, + 0x85, 0xbd, 0xd0, 0xaa, 0x29, 0xad, 0xe5, 0x13, 0xfb, 0x4a, 0x48, 0x6b, 0xe1, 0x76, 0x98, 0x5b, + 0x71, 0xfb, 0xb7, 0x00, 0x27, 0x22, 0x66, 0xf4, 0x89, 0x47, 0x23, 0x21, 0x7b, 0xa3, 0x1b, 0x4c, + 0xb9, 0xa0, 0x6c, 0x31, 0x53, 0x35, 0x0c, 0xe5, 0x89, 0x87, 0x2e, 0x43, 0x9d, 0x4b, 0x61, 0xc9, + 0xd4, 0xb1, 0xab, 0x71, 0xad, 0x8c, 0xee, 0x43, 0x93, 0x24, 0xbe, 0x93, 0x46, 0xa4, 0xac, 0xee, + 0xf5, 0xcd, 0xbd, 0x74, 0xf0, 0x3b, 0x78, 0xfe, 0xe4, 0xa5, 0x66, 0x61, 0x20, 0x89, 0x6f, 0xbe, + 0xed, 0xcf, 0xe1, 0x82, 0x3a, 0x5d, 0x5a, 0x33, 0xa3, 0x2c, 0xbb, 0xd5, 0x39, 0xfd, 0x2e, 0x8a, + 0xd3, 0x5b, 0x5d, 0x2d, 0xec, 0x01, 0x74, 0x64, 0xd2, 0x7f, 0x19, 0xbb, 0x24, 0xd0, 0x72, 0x5f, + 0x02, 0x8c, 0x09, 0xf3, 0x1c, 0x2e, 0x57, 0x26, 0xed, 0x28, 0x9b, 0xc9, 0x8e, 0x09, 0xd3, 0x53, + 0x02, 0x6e, 0x8c, 0xd3, 0x4f, 0xe9, 0x5f, 0x40, 0xb8, 0x70, 0xf4, 0xd4, 0xa0, 0x5d, 0x68, 0x48, + 0xca, 0x13, 0x49, 0xb0, 0xff, 0x65, 0xe9, 0x43, 0x0e, 0x92, 0x24, 0x98, 0x6b, 0x8d, 0x9b, 0xd0, + 0x26, 0x49, 0x12, 0xf8, 0xd4, 0x73, 0xf2, 0xa3, 0x46, 0xcb, 0x10, 0x95, 0x1e, 0xba, 0x0b, 0x17, + 0xd4, 0xb6, 0x6e, 0x1c, 0x86, 0x7e, 0xba, 0x7b, 0x59, 0x09, 0x6e, 0x48, 0xc6, 0x91, 0xa2, 0x6b, + 0xd9, 0x1b, 0xd0, 0x2a, 0x88, 0x69, 0xec, 0x34, 0xdd, 0x9c, 0xc8, 0x75, 0x30, 0x4b, 0x47, 0xcd, + 0x31, 0xfa, 0xb6, 0x06, 0x4d, 0x3a, 0xa5, 0x2c, 0x44, 0xbf, 0x80, 0x0d, 0x91, 0x4e, 0x42, 0xc6, + 0xfd, 0xd2, 0xca, 0x46, 0x76, 0x76, 0x66, 0xc2, 0x1d, 0x51, 0x58, 0xdb, 0x3e, 0x80, 0xc2, 0x87, + 0x76, 0x77, 0x1b, 0x1a, 0xa1, 0x1f, 0x15, 0x5c, 0xad, 0x87, 0x7e, 0xa4, 0xed, 0xba, 0x0d, 0x55, + 0x33, 0x3e, 0x96, 0x56, 0xd7, 0x98, 0xe6, 0xa2, 0x4f, 0xa0, 0xaa, 0x8d, 0x35, 0x31, 0x30, 0x2b, + 0x59, 0xb8, 0xad, 0x3c, 0x16, 0xe5, 0xb0, 0xc1, 0xe3, 0x29, 0x73, 0xa9, 0xb3, 0x3c, 0xc8, 0x77, + 0x34, 0x1d, 0xa7, 0xe3, 0xfc, 0xd7, 0xd0, 0x32, 0x92, 0x7a, 0xa0, 0x2e, 0x9d, 0x33, 0x50, 0x6b, + 0x41, 0x3d, 0x50, 0xdf, 0xcb, 0xf4, 0xe4, 0x7c, 0xcf, 0x4d, 0x65, 0x17, 0xcb, 0xca, 0x28, 0xc8, + 0x6f, 0xae, 0xe7, 0x1f, 0xe9, 0x45, 0xce, 0x24, 0x9d, 0xa2, 0x8e, 0xa6, 0xe7, 0x4d, 0x32, 0x92, + 0x1f, 0x9e, 0xf1, 0xb5, 0x60, 0x66, 0x92, 0xd1, 0xd3, 0x26, 0xad, 0xaa, 0x74, 0xa3, 0xa0, 0x4d, + 0xca, 0xa6, 0xdc, 0x5a, 0x6e, 0xca, 0xb5, 0xff, 0x28, 0xbb, 0xa0, 0x3a, 0x23, 0x57, 0x12, 0x7b, + 0x6a, 0x0e, 0x34, 0xd5, 0xd0, 0xd9, 0xef, 0x2d, 0xc1, 0x41, 0xee, 0xa7, 0x51, 0xa0, 0xc5, 0x72, + 0x5d, 0xb3, 0x74, 0x6e, 0xd7, 0xfc, 0x16, 0xf4, 0xd3, 0xc0, 0x80, 0x4d, 0xdf, 0x5c, 0x97, 0x57, + 0xb5, 0x19, 0xbd, 0x3d, 0x84, 0x0b, 0x48, 0xdd, 0x90, 0xfe, 0xaa, 0x89, 0xb2, 0x00, 0x78, 0x4d, + 0xd3, 0xc0, 0x5a, 0xd1, 0xff, 0xd6, 0x3f, 0xaa, 0xff, 0x55, 0xff, 0xef, 0xfe, 0xf7, 0x4f, 0x0b, + 0x3e, 0xd5, 0xce, 0x9e, 0xc8, 0xd1, 0x20, 0x72, 0xe9, 0xb3, 0x69, 0x38, 0xa0, 0x0c, 0xd3, 0x40, + 0xcd, 0xc4, 0xe7, 0xbf, 0x32, 0xef, 0xc0, 0x06, 0x37, 0x6a, 0x4e, 0xa4, 0xf4, 0x4c, 0x53, 0xe9, + 0xf0, 0xc2, 0x6e, 0xe8, 0x81, 0x6c, 0x8f, 0x49, 0x30, 0x2f, 0x04, 0xf0, 0xea, 0x8a, 0x6a, 0x5d, + 0xb4, 0x1e, 0xd9, 0x28, 0xb3, 0x36, 0x74, 0x98, 0x3d, 0x28, 0xf5, 0x06, 0xfa, 0xf6, 0xbf, 0xbe, + 0xbc, 0xc1, 0x12, 0x1e, 0xd2, 0xc7, 0xa5, 0xae, 0xf4, 0x3f, 0x58, 0xb0, 0x79, 0x30, 0x23, 0x7e, + 0x40, 0x06, 0x7e, 0xe0, 0x8b, 0xf9, 0x51, 0x1c, 0x09, 0xfa, 0x46, 0xa0, 0xcf, 0xa0, 0xa3, 0x9e, + 0xca, 0xcb, 0x6e, 0xb6, 0x24, 0x35, 0x83, 0xfb, 0x4f, 0xe1, 0x42, 0x5e, 0xea, 0x83, 0x65, 0xb8, + 0xb1, 0xd0, 0xd6, 0xb8, 0xdf, 0x81, 0xe6, 0x34, 0x22, 0xfa, 0xfc, 0x80, 0x9a, 0x47, 0x4c, 0x9e, + 0x24, 0x6f, 0x54, 0xc1, 0xfc, 0x30, 0xa4, 0xba, 0xe4, 0xea, 0x38, 0x5d, 0xda, 0x3f, 0x80, 0xf6, + 0xe3, 0x60, 0xca, 0xc7, 0x7d, 0x1a, 0x2a, 0xdc, 0x9c, 0x9b, 0x15, 0xfb, 0x2f, 0x16, 0x34, 0x8f, + 0xe4, 0x0c, 0xf8, 0x73, 0x57, 0xbd, 0xdc, 0xff, 0x37, 0x07, 0x6f, 0xc3, 0x86, 0x1a, 0x1c, 0x73, + 0x62, 0x3a, 0x97, 0x6d, 0x45, 0xce, 0xe4, 0x0e, 0x00, 0x15, 0xe4, 0x74, 0x24, 0xca, 0xef, 0x8f, + 0x44, 0x37, 0xa7, 0xaf, 0x43, 0xf1, 0x05, 0x80, 0xde, 0x42, 0xfd, 0xe9, 0x50, 0x59, 0xf1, 0xa7, + 0x43, 0x43, 0xf1, 0xe5, 0xa7, 0xfd, 0x7d, 0x19, 0x5a, 0xf9, 0x87, 0x36, 0xfa, 0x0a, 0x2a, 0x62, + 0x9e, 0xa4, 0x35, 0x7e, 0xfd, 0x9c, 0x37, 0xf9, 0xe9, 0x3c, 0xa1, 0x58, 0x09, 0x2f, 0x9a, 0x48, + 0x29, 0xff, 0x54, 0xfe, 0x21, 0x34, 0x17, 0x86, 0xac, 0xee, 0x8e, 0x90, 0x59, 0xa2, 0x06, 0xc4, + 0xd7, 0xc4, 0x17, 0x8e, 0x1a, 0x92, 0x74, 0x8a, 0xea, 0x92, 0xa0, 0x26, 0xb0, 0x5b, 0xd0, 0x19, + 0xc6, 0xcc, 0xa5, 0xc1, 0xdc, 0x21, 0xaf, 0xc9, 0x84, 0x46, 0xaa, 0x23, 0xd6, 0x71, 0xdb, 0x50, + 0x0f, 0x14, 0x11, 0x3d, 0x00, 0x1d, 0x4f, 0x67, 0xe4, 0x6a, 0xf7, 0xab, 0x2b, 0x5f, 0x07, 0xb9, + 0xfc, 0x61, 0x6d, 0xa3, 0x49, 0xe6, 0x11, 0x74, 0x86, 0x12, 0x0a, 0x4e, 0x68, 0xb0, 0xa0, 0xda, + 0x62, 0x73, 0xff, 0xd3, 0xa5, 0x0d, 0x0a, 0x78, 0xc1, 0xed, 0x61, 0x01, 0x3e, 0x2f, 0xe0, 0x22, + 0xc9, 0x55, 0x82, 0xe3, 0xea, 0x52, 0x50, 0x7f, 0x9a, 0x34, 0xf7, 0xed, 0xe5, 0x09, 0xf6, 0x6c, + 0xd1, 0xe0, 0x4d, 0x72, 0x96, 0x78, 0x17, 0x43, 0x23, 0x6b, 0xb1, 0x08, 0xa0, 0xfa, 0x2c, 0x66, + 0x21, 0x09, 0xba, 0x6b, 0xa8, 0x05, 0x75, 0x55, 0xd8, 0x7e, 0x34, 0xea, 0x5a, 0xa8, 0x0d, 0x8d, + 0xec, 0xff, 0x9c, 0x6e, 0x09, 0x35, 0xa1, 0x26, 0x3b, 0x94, 0xe4, 0x95, 0xd1, 0x06, 0x34, 0x5f, + 0x2c, 0x4a, 0xa2, 0x5b, 0xb9, 0xfb, 0xb6, 0x0c, 0xdd, 0xe5, 0x9c, 0xa2, 0x4d, 0xd8, 0xe8, 0xf3, + 0x91, 0x86, 0xd4, 0x2b, 0x32, 0xa1, 0x2f, 0x92, 0xee, 0x1a, 0xea, 0xc1, 0xc5, 0x3e, 0x1f, 0xbd, + 0x22, 0x91, 0xc0, 0x71, 0x10, 0x0c, 0x88, 0x3b, 0x51, 0x8d, 0xaf, 0x6b, 0xa1, 0x2d, 0xb8, 0xd0, + 0xe7, 0x23, 0x15, 0xd2, 0x13, 0x41, 0x02, 0x75, 0xd5, 0x75, 0x4b, 0xe8, 0x2a, 0x5c, 0x3e, 0x43, + 0x4e, 0xa7, 0xfa, 0x6e, 0x19, 0x5d, 0x82, 0xcd, 0x3e, 0x1f, 0x1d, 0xfb, 0x03, 0xca, 0x22, 0xd9, + 0x4c, 0xf4, 0xd3, 0xa9, 0x5b, 0x31, 0x07, 0xe5, 0x18, 0x46, 0x65, 0x1d, 0xdd, 0x81, 0x9b, 0xca, + 0xae, 0x5f, 0x53, 0x57, 0xe8, 0x69, 0x6d, 0x74, 0x44, 0xa6, 0x9c, 0x7a, 0x87, 0xf3, 0x3e, 0x0d, + 0x63, 0x36, 0x57, 0xff, 0xe6, 0x74, 0xab, 0xe8, 0x0a, 0x7c, 0xd2, 0xe7, 0xa3, 0x7c, 0x60, 0xd3, + 0xed, 0x6b, 0x68, 0x1b, 0x2e, 0x9d, 0xe1, 0x99, 0x13, 0xea, 0xc8, 0x86, 0x6b, 0x7d, 0x3e, 0x7a, + 0x19, 0x0b, 0x69, 0x6a, 0x12, 0xf8, 0x6a, 0x92, 0x51, 0xb7, 0x48, 0xba, 0x41, 0x03, 0xdd, 0x84, + 0xeb, 0xef, 0x95, 0x31, 0x1b, 0x01, 0xba, 0x08, 0xdd, 0x3e, 0x1f, 0x19, 0x84, 0x19, 0xd5, 0xa6, + 0x89, 0x54, 0x4a, 0x35, 0xc2, 0x2d, 0x23, 0x5c, 0x80, 0x54, 0xb7, 0x7d, 0x78, 0xfb, 0x6f, 0xdf, + 0xd7, 0xad, 0x3f, 0xbd, 0xbb, 0x66, 0xfd, 0xf5, 0xdd, 0x35, 0xeb, 0xef, 0xef, 0xae, 0x59, 0x6f, + 0xff, 0x71, 0x6d, 0x0d, 0xba, 0x31, 0x1b, 0xed, 0x09, 0x7f, 0x32, 0xdb, 0x9b, 0xcc, 0xd4, 0x1f, + 0x97, 0x83, 0xaa, 0xfa, 0xf9, 0xea, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd9, 0x48, 0x7e, 0x9a, + 0x48, 0x15, 0x00, 0x00, } func (m *RaftMessage) Marshal() (dAtA []byte, err error) { @@ -2778,6 +2799,25 @@ func (m *TabletSnapshotFileChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.Key != nil { + { + size, err := m.Key.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if len(m.Iv) > 0 { + i -= len(m.Iv) + copy(dAtA[i:], m.Iv) + i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.Iv))) + i-- + dAtA[i] = 0x22 + } if len(m.Data) > 0 { i -= len(m.Data) copy(dAtA[i:], m.Data) @@ -4193,6 +4233,14 @@ func (m *TabletSnapshotFileChunk) Size() (n int) { if l > 0 { n += 1 + l + sovRaftServerpb(uint64(l)) } + l = len(m.Iv) + if l > 0 { + n += 1 + l + sovRaftServerpb(uint64(l)) + } + if m.Key != nil { + l = m.Key.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -6111,6 +6159,76 @@ func (m *TabletSnapshotFileChunk) Unmarshal(dAtA []byte) error { m.Data = []byte{} } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Iv", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Iv = append(m.Iv[:0], dAtA[iNdEx:postIndex]...) + if m.Iv == nil { + m.Iv = []byte{} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Key == nil { + m.Key = &encryptionpb.DataKey{} + } + if err := m.Key.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipRaftServerpb(dAtA[iNdEx:]) diff --git a/proto/raft_serverpb.proto b/proto/raft_serverpb.proto index b9722be..690b7c1 100644 --- a/proto/raft_serverpb.proto +++ b/proto/raft_serverpb.proto @@ -5,6 +5,7 @@ import "eraftpb.proto"; import "metapb.proto"; import "kvrpcpb.proto"; import "disk_usage.proto"; +import "encryptionpb.proto"; import "rustproto.proto"; option (rustproto.lite_runtime_all) = true; @@ -86,6 +87,9 @@ message TabletSnapshotFileChunk { uint64 file_size = 1; string file_name = 2; bytes data = 3; + // Initial vector if encryption is enabled. + bytes iv = 4; + encryptionpb.DataKey key = 5; } message TabletSnapshotHead { diff --git a/scripts/proto.lock b/scripts/proto.lock index f09ae54..9b71cd0 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -15964,6 +15964,16 @@ "id": 3, "name": "data", "type": "bytes" + }, + { + "id": 4, + "name": "iv", + "type": "bytes" + }, + { + "id": 5, + "name": "key", + "type": "encryptionpb.DataKey" } ] }, @@ -16415,6 +16425,9 @@ { "path": "disk_usage.proto" }, + { + "path": "encryptionpb.proto" + }, { "path": "rustproto.proto" } -- Gitee From 50cbe4eaf91306b6d34d50fdd1987016f3f29da7 Mon Sep 17 00:00:00 2001 From: TonsnakeLin Date: Fri, 2 Feb 2024 02:54:26 -0500 Subject: [PATCH 42/44] add SM4_ECB mode Signed-off-by: TonsnakeLin --- pkg/encryptionpb/encryptionpb.pb.go | 22 +++++++++++++--------- proto/encryptionpb.proto | 1 + scripts/proto.lock | 4 ++++ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/pkg/encryptionpb/encryptionpb.pb.go b/pkg/encryptionpb/encryptionpb.pb.go index 24ab078..8946d7c 100644 --- a/pkg/encryptionpb/encryptionpb.pb.go +++ b/pkg/encryptionpb/encryptionpb.pb.go @@ -33,6 +33,7 @@ const ( EncryptionMethod_AES192_CTR EncryptionMethod = 3 EncryptionMethod_AES256_CTR EncryptionMethod = 4 EncryptionMethod_SM4_CTR EncryptionMethod = 5 + EncryptionMethod_SM4_ECB EncryptionMethod = 6 ) var EncryptionMethod_name = map[int32]string{ @@ -42,6 +43,7 @@ var EncryptionMethod_name = map[int32]string{ 3: "AES192_CTR", 4: "AES256_CTR", 5: "SM4_CTR", + 6: "SM4_ECB", } var EncryptionMethod_value = map[string]int32{ @@ -51,6 +53,7 @@ var EncryptionMethod_value = map[string]int32{ "AES192_CTR": 3, "AES256_CTR": 4, "SM4_CTR": 5, + "SM4_ECB": 6, } func (x EncryptionMethod) String() string { @@ -743,7 +746,7 @@ func init() { func init() { proto.RegisterFile("encryptionpb.proto", fileDescriptor_a483860494a778a2) } var fileDescriptor_a483860494a778a2 = []byte{ - // 768 bytes of a gzipped FileDescriptorProto + // 775 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xcb, 0x6e, 0xdb, 0x46, 0x14, 0xd5, 0x50, 0xd4, 0x83, 0x57, 0x8f, 0x0a, 0x03, 0xdb, 0x15, 0x54, 0x40, 0x15, 0xe8, 0xba, 0x15, 0x5a, 0x43, 0x85, 0xd9, 0xd6, 0xb5, 0x5b, 0x04, 0x88, 0x1f, 0x0a, 0x64, 0x28, 0x52, 0x0c, @@ -784,14 +787,15 @@ var fileDescriptor_a483860494a778a2 = []byte{ 0x89, 0x28, 0x7c, 0x34, 0x2c, 0x21, 0xde, 0x05, 0xb0, 0xd8, 0x59, 0x43, 0x67, 0x71, 0xa1, 0x7f, 0xbc, 0x47, 0x68, 0x55, 0xb2, 0x62, 0x3b, 0x44, 0x73, 0x46, 0x8c, 0xe7, 0xcc, 0x16, 0x54, 0x27, 0x86, 0x3b, 0x23, 0x5e, 0x28, 0x33, 0xab, 0x95, 0x63, 0x7b, 0x95, 0x55, 0xb4, 0x4f, 0x82, 0xc6, - 0xff, 0x50, 0x49, 0xf5, 0x78, 0xc7, 0x1c, 0x58, 0x4b, 0xfa, 0xb4, 0x9c, 0x30, 0xe4, 0xef, 0x66, - 0xac, 0x51, 0xfc, 0x6a, 0x71, 0x09, 0x0a, 0x4f, 0x87, 0xfd, 0xe1, 0x93, 0x67, 0xc3, 0x5a, 0x06, - 0x57, 0x40, 0x3a, 0x7d, 0x7c, 0x70, 0x32, 0x1c, 0x75, 0x9f, 0x8f, 0x6a, 0x08, 0x57, 0x01, 0x0e, - 0xba, 0x67, 0x3b, 0xca, 0xde, 0xf8, 0x68, 0xa4, 0xd6, 0x84, 0x25, 0xde, 0x57, 0x18, 0xce, 0x72, - 0xac, 0xfc, 0xb3, 0xcb, 0xb0, 0x18, 0xd6, 0x3a, 0x1b, 0xfc, 0xcd, 0x40, 0xee, 0xf0, 0xd7, 0x4f, - 0x6f, 0x8b, 0xe8, 0xc3, 0x4d, 0x13, 0x7d, 0xbc, 0x69, 0xa2, 0xcf, 0x37, 0x4d, 0xf4, 0xf2, 0x4b, - 0x33, 0x03, 0x35, 0xc7, 0x9b, 0x76, 0xa8, 0x61, 0x2e, 0x3a, 0xe6, 0x82, 0x0d, 0xf3, 0xf3, 0x3c, - 0xfb, 0xfc, 0xf5, 0x35, 0x00, 0x00, 0xff, 0xff, 0xec, 0x2d, 0xb0, 0x8e, 0x1e, 0x06, 0x00, 0x00, + 0xff, 0x50, 0x49, 0xf5, 0x78, 0xc7, 0x1c, 0x58, 0x4b, 0xfa, 0xb4, 0x9c, 0x30, 0xe4, 0xef, 0xd7, + 0xb1, 0x46, 0xf1, 0xab, 0xc5, 0x25, 0x28, 0x3c, 0x1d, 0xf6, 0x87, 0x4f, 0x9e, 0x0d, 0x6b, 0x19, + 0x5c, 0x01, 0xe9, 0xf4, 0xf1, 0xc1, 0xc9, 0x70, 0xd4, 0x7d, 0x3e, 0xaa, 0x21, 0x5c, 0x05, 0x38, + 0xe8, 0x9e, 0xed, 0x28, 0x7b, 0xe3, 0xa3, 0x91, 0x5a, 0x13, 0x96, 0x78, 0x5f, 0x61, 0x38, 0xcb, + 0xb1, 0xf2, 0xcf, 0x2e, 0xc3, 0x62, 0x58, 0xeb, 0x6c, 0xf0, 0x37, 0x03, 0xb9, 0x25, 0xe8, 0x1e, + 0x1d, 0xd6, 0xf2, 0x87, 0xbf, 0x7e, 0x7a, 0x5b, 0x44, 0x1f, 0x6e, 0x9a, 0xe8, 0xe3, 0x4d, 0x13, + 0x7d, 0xbe, 0x69, 0xa2, 0x97, 0x5f, 0x9a, 0x19, 0xa8, 0x39, 0xde, 0xb4, 0x43, 0x0d, 0x73, 0xd1, + 0x31, 0x17, 0x6c, 0xb2, 0x9f, 0xe7, 0xd9, 0xe7, 0xaf, 0xaf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x55, + 0x20, 0xe4, 0x25, 0x2b, 0x06, 0x00, 0x00, } func (m *EncryptionMeta) Marshal() (dAtA []byte, err error) { diff --git a/proto/encryptionpb.proto b/proto/encryptionpb.proto index 2328088..99e25a5 100644 --- a/proto/encryptionpb.proto +++ b/proto/encryptionpb.proto @@ -45,6 +45,7 @@ enum EncryptionMethod { AES192_CTR = 3; AES256_CTR = 4; SM4_CTR = 5; + SM4_ECB = 6; } // The key used to encrypt the user data. diff --git a/scripts/proto.lock b/scripts/proto.lock index 9b71cd0..f24196b 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -4305,6 +4305,10 @@ { "name": "SM4_CTR", "integer": 5 + }, + { + "name": "SM4_ECB", + "integer": 6 } ] } -- Gitee From ecec0cf4498433e485ff4bb68317640d6f638e8a Mon Sep 17 00:00:00 2001 From: cbcwestwolf Date: Wed, 20 Mar 2024 15:50:05 +0800 Subject: [PATCH 43/44] add SM4_CFB and SM4_OFB mode --- pkg/encryptionpb/encryptionpb.pb.go | 107 +++++---- proto/encryptionpb.proto | 2 + scripts/proto.lock | 347 +++++++++++++++++++--------- 3 files changed, 293 insertions(+), 163 deletions(-) diff --git a/pkg/encryptionpb/encryptionpb.pb.go b/pkg/encryptionpb/encryptionpb.pb.go index 8946d7c..d593741 100644 --- a/pkg/encryptionpb/encryptionpb.pb.go +++ b/pkg/encryptionpb/encryptionpb.pb.go @@ -34,6 +34,8 @@ const ( EncryptionMethod_AES256_CTR EncryptionMethod = 4 EncryptionMethod_SM4_CTR EncryptionMethod = 5 EncryptionMethod_SM4_ECB EncryptionMethod = 6 + EncryptionMethod_SM4_CFB EncryptionMethod = 7 + EncryptionMethod_SM4_OFB EncryptionMethod = 8 ) var EncryptionMethod_name = map[int32]string{ @@ -44,6 +46,8 @@ var EncryptionMethod_name = map[int32]string{ 4: "AES256_CTR", 5: "SM4_CTR", 6: "SM4_ECB", + 7: "SM4_CFB", + 8: "SM4_OFB", } var EncryptionMethod_value = map[string]int32{ @@ -54,6 +58,8 @@ var EncryptionMethod_value = map[string]int32{ "AES256_CTR": 4, "SM4_CTR": 5, "SM4_ECB": 6, + "SM4_CFB": 7, + "SM4_OFB": 8, } func (x EncryptionMethod) String() string { @@ -746,56 +752,57 @@ func init() { func init() { proto.RegisterFile("encryptionpb.proto", fileDescriptor_a483860494a778a2) } var fileDescriptor_a483860494a778a2 = []byte{ - // 775 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xcb, 0x6e, 0xdb, 0x46, - 0x14, 0xd5, 0x50, 0xd4, 0x83, 0x57, 0x8f, 0x0a, 0x03, 0xdb, 0x15, 0x54, 0x40, 0x15, 0xe8, 0xba, - 0x15, 0x5a, 0x43, 0x85, 0xd9, 0xd6, 0xb5, 0x5b, 0x04, 0x88, 0x1f, 0x0a, 0x64, 0x28, 0x52, 0x0c, - 0x5a, 0x41, 0xb2, 0x13, 0x68, 0x71, 0x2c, 0x11, 0x14, 0x1f, 0x21, 0xc7, 0xb2, 0xf9, 0x27, 0xc9, - 0x32, 0x59, 0xe5, 0x1f, 0xb2, 0xc9, 0x32, 0xcb, 0x2c, 0xb3, 0x0c, 0x9c, 0x1f, 0x09, 0x38, 0x1c, - 0x51, 0x24, 0x6c, 0x03, 0xc9, 0x8a, 0x73, 0xee, 0x9c, 0x7b, 0x79, 0xe7, 0xcc, 0x99, 0x0b, 0x98, - 0xd8, 0x13, 0x2f, 0x70, 0xa9, 0xe1, 0xd8, 0xee, 0x79, 0xc7, 0xf5, 0x1c, 0xea, 0xe0, 0x72, 0x32, - 0xd6, 0x58, 0x9b, 0x3a, 0x53, 0x87, 0x6d, 0xfc, 0x19, 0xae, 0x22, 0x4e, 0xe3, 0x07, 0xef, 0xd2, - 0xa7, 0x6c, 0x19, 0x05, 0xe4, 0x7f, 0xa1, 0xda, 0x8d, 0xd3, 0x06, 0x84, 0x6a, 0x78, 0x1d, 0xf2, - 0x26, 0x09, 0xc6, 0x86, 0x5e, 0x47, 0x2d, 0xd4, 0x16, 0xd5, 0x9c, 0x49, 0x82, 0x13, 0x1d, 0x57, - 0x41, 0x30, 0x16, 0x75, 0xa1, 0x85, 0xda, 0x65, 0x55, 0x30, 0x16, 0xb2, 0x01, 0xc5, 0x47, 0xc6, - 0x9c, 0x9c, 0xd8, 0x17, 0xce, 0x37, 0xa6, 0xe0, 0x5d, 0xc8, 0x5b, 0x84, 0xce, 0x1c, 0xbd, 0x9e, - 0x6d, 0xa1, 0x76, 0x55, 0x69, 0x76, 0x52, 0xa7, 0x48, 0xf5, 0x31, 0x73, 0x74, 0x95, 0xb3, 0xe5, - 0xd7, 0x08, 0xaa, 0xe1, 0xbf, 0x8e, 0x8d, 0x49, 0xb8, 0xab, 0x79, 0x01, 0x7e, 0x00, 0xb9, 0x0b, - 0x63, 0x4e, 0xfc, 0x3a, 0x6a, 0x65, 0xdb, 0x25, 0xe5, 0xb7, 0x74, 0xa5, 0x34, 0x99, 0x41, 0xbf, - 0x6b, 0x53, 0x2f, 0x50, 0xa3, 0xac, 0xc6, 0x29, 0xc0, 0x2a, 0x88, 0x6b, 0x90, 0x35, 0x49, 0xc0, - 0x7a, 0x97, 0xd4, 0x70, 0x89, 0xb7, 0x21, 0xb7, 0xd0, 0xe6, 0x97, 0x84, 0x35, 0x5f, 0x52, 0x36, - 0x6e, 0x97, 0x0f, 0xcf, 0xad, 0x46, 0xa4, 0xff, 0x84, 0x3d, 0x24, 0xbf, 0x42, 0x50, 0x38, 0xd6, - 0xa8, 0xd6, 0x27, 0xa9, 0x7a, 0xe5, 0xa8, 0xde, 0xea, 0xe4, 0xc2, 0xf7, 0x9c, 0x1c, 0x6f, 0x42, - 0x65, 0xe2, 0x11, 0x2d, 0xdc, 0x19, 0x53, 0xc3, 0x22, 0x4c, 0x38, 0x51, 0x2d, 0x2f, 0x83, 0x23, - 0xc3, 0x22, 0xf8, 0x67, 0x28, 0x5d, 0x69, 0xfe, 0x98, 0x5c, 0xbb, 0x8e, 0x4f, 0xf4, 0xba, 0xd8, - 0x42, 0xed, 0xa2, 0x0a, 0x57, 0x9a, 0xdf, 0x8d, 0x22, 0xf2, 0x7b, 0x04, 0x95, 0x3e, 0x09, 0x12, - 0xf2, 0xed, 0x83, 0x68, 0x92, 0x60, 0xa9, 0xde, 0x56, 0xba, 0x9b, 0x14, 0x35, 0x44, 0x5c, 0x3b, - 0x96, 0x82, 0x7f, 0x81, 0xea, 0xe4, 0xd2, 0xf3, 0x88, 0x4d, 0xc7, 0xfc, 0xce, 0x05, 0xde, 0x53, - 0x14, 0xed, 0x87, 0x57, 0xdf, 0x18, 0x82, 0x14, 0x27, 0x26, 0xf5, 0x10, 0x23, 0x3d, 0xfe, 0x48, - 0xeb, 0xbb, 0x9e, 0x6e, 0x80, 0xeb, 0x98, 0x94, 0xf7, 0x1d, 0x02, 0x69, 0xa0, 0xf9, 0x94, 0x78, - 0xa1, 0xc0, 0x0f, 0x41, 0x72, 0xe7, 0x9a, 0x61, 0x53, 0x72, 0x4d, 0x59, 0xd9, 0x92, 0xd2, 0x4a, - 0x97, 0x88, 0xb9, 0xa7, 0x4b, 0x5e, 0x2f, 0xa3, 0xae, 0x92, 0xf0, 0x0e, 0x88, 0xa1, 0x13, 0xf8, - 0xff, 0x7f, 0xba, 0x27, 0x39, 0xbc, 0xe8, 0x5e, 0x46, 0x65, 0x54, 0xdc, 0x81, 0xac, 0x69, 0xf9, - 0xec, 0x06, 0x4a, 0x4a, 0xe3, 0x9e, 0x8c, 0xbe, 0xe5, 0xf7, 0x32, 0x6a, 0x48, 0x3c, 0x94, 0xa0, - 0x70, 0xae, 0x4d, 0x4c, 0x62, 0xeb, 0xf2, 0x1a, 0xe0, 0xdb, 0x0d, 0xc9, 0x9b, 0x50, 0x49, 0xfd, - 0x09, 0x63, 0x10, 0x5d, 0x8d, 0xce, 0xb8, 0x11, 0xd9, 0x5a, 0x7e, 0x01, 0xe5, 0x64, 0x71, 0xbc, - 0x01, 0xf9, 0x05, 0xb1, 0x75, 0xc7, 0xe3, 0x2c, 0x8e, 0x12, 0x4f, 0x50, 0x60, 0x71, 0xfe, 0x04, - 0x37, 0x20, 0xef, 0x91, 0xa9, 0xe1, 0xd8, 0xac, 0x6f, 0x49, 0xe5, 0x08, 0x37, 0xa0, 0x48, 0x6c, - 0xdd, 0x75, 0x0c, 0x9b, 0x32, 0xc3, 0x48, 0x6a, 0x8c, 0xe5, 0x37, 0x02, 0xd4, 0xb8, 0x23, 0x89, - 0x7e, 0xe4, 0xd8, 0x94, 0xd8, 0x14, 0xf7, 0xa0, 0x68, 0x11, 0xaa, 0xe9, 0x1a, 0xd5, 0xb8, 0x6b, - 0xb6, 0xef, 0xf4, 0x70, 0x9c, 0xd1, 0x19, 0x70, 0x7a, 0x64, 0x9e, 0x38, 0x1b, 0xd7, 0xa1, 0x30, - 0x89, 0x28, 0x7c, 0x34, 0x2c, 0x21, 0xde, 0x05, 0xb0, 0xd8, 0x59, 0x43, 0x67, 0x71, 0xa1, 0x7f, - 0xbc, 0x47, 0x68, 0x55, 0xb2, 0x62, 0x3b, 0x44, 0x73, 0x46, 0x8c, 0xe7, 0xcc, 0x16, 0x54, 0x27, - 0x86, 0x3b, 0x23, 0x5e, 0x28, 0x33, 0xab, 0x95, 0x63, 0x7b, 0x95, 0x55, 0xb4, 0x4f, 0x82, 0xc6, - 0xff, 0x50, 0x49, 0xf5, 0x78, 0xc7, 0x1c, 0x58, 0x4b, 0xfa, 0xb4, 0x9c, 0x30, 0xe4, 0xef, 0xd7, - 0xb1, 0x46, 0xf1, 0xab, 0xc5, 0x25, 0x28, 0x3c, 0x1d, 0xf6, 0x87, 0x4f, 0x9e, 0x0d, 0x6b, 0x19, - 0x5c, 0x01, 0xe9, 0xf4, 0xf1, 0xc1, 0xc9, 0x70, 0xd4, 0x7d, 0x3e, 0xaa, 0x21, 0x5c, 0x05, 0x38, - 0xe8, 0x9e, 0xed, 0x28, 0x7b, 0xe3, 0xa3, 0x91, 0x5a, 0x13, 0x96, 0x78, 0x5f, 0x61, 0x38, 0xcb, - 0xb1, 0xf2, 0xcf, 0x2e, 0xc3, 0x62, 0x58, 0xeb, 0x6c, 0xf0, 0x37, 0x03, 0xb9, 0x25, 0xe8, 0x1e, - 0x1d, 0xd6, 0xf2, 0x87, 0xbf, 0x7e, 0x7a, 0x5b, 0x44, 0x1f, 0x6e, 0x9a, 0xe8, 0xe3, 0x4d, 0x13, - 0x7d, 0xbe, 0x69, 0xa2, 0x97, 0x5f, 0x9a, 0x19, 0xa8, 0x39, 0xde, 0xb4, 0x43, 0x0d, 0x73, 0xd1, - 0x31, 0x17, 0x6c, 0xb2, 0x9f, 0xe7, 0xd9, 0xe7, 0xaf, 0xaf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x55, - 0x20, 0xe4, 0x25, 0x2b, 0x06, 0x00, 0x00, + // 787 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4d, 0x6f, 0xeb, 0x44, + 0x14, 0xcd, 0x38, 0xce, 0x87, 0x6f, 0x3e, 0xb0, 0x46, 0x6d, 0x89, 0x82, 0x14, 0x22, 0x97, 0x42, + 0x04, 0x55, 0x50, 0x0d, 0x94, 0x16, 0x84, 0x44, 0xd3, 0xa6, 0x4a, 0x15, 0x92, 0x56, 0x6e, 0x10, + 0xec, 0x22, 0x37, 0x9e, 0x26, 0x96, 0xe3, 0x0f, 0xec, 0x69, 0x5a, 0xff, 0x0d, 0x56, 0xb0, 0x84, + 0x15, 0xff, 0x81, 0x0d, 0x4b, 0x96, 0x2c, 0x59, 0x3e, 0xf5, 0xfd, 0x91, 0x27, 0x8f, 0x27, 0x8e, + 0xad, 0xb6, 0xd2, 0x7b, 0x2b, 0xcf, 0xb9, 0x73, 0xee, 0xf5, 0x9d, 0x33, 0x67, 0x2e, 0x60, 0xe2, + 0xcc, 0xfc, 0xd0, 0xa3, 0xa6, 0xeb, 0x78, 0x37, 0x5d, 0xcf, 0x77, 0xa9, 0x8b, 0xab, 0xe9, 0x58, + 0x73, 0x6b, 0xee, 0xce, 0x5d, 0xb6, 0xf1, 0x79, 0xb4, 0x8a, 0x39, 0xcd, 0xf7, 0xfc, 0xbb, 0x80, + 0xb2, 0x65, 0x1c, 0x50, 0xbe, 0x86, 0x7a, 0x3f, 0x49, 0x1b, 0x11, 0xaa, 0xe3, 0x6d, 0x28, 0x5a, + 0x24, 0x9c, 0x9a, 0x46, 0x03, 0xb5, 0x51, 0x47, 0xd4, 0x0a, 0x16, 0x09, 0x2f, 0x0c, 0x5c, 0x07, + 0xc1, 0x5c, 0x35, 0x84, 0x36, 0xea, 0x54, 0x35, 0xc1, 0x5c, 0x29, 0x26, 0x94, 0xcf, 0xcd, 0x25, + 0xb9, 0x70, 0x6e, 0xdd, 0xb7, 0x4c, 0xc1, 0x87, 0x50, 0xb4, 0x09, 0x5d, 0xb8, 0x46, 0x23, 0xdf, + 0x46, 0x9d, 0xba, 0xda, 0xea, 0x66, 0x4e, 0x91, 0xe9, 0x63, 0xe1, 0x1a, 0x1a, 0x67, 0x2b, 0x7f, + 0x20, 0xa8, 0x47, 0xff, 0x3a, 0x33, 0x67, 0xd1, 0xae, 0xee, 0x87, 0xf8, 0x3b, 0x28, 0xdc, 0x9a, + 0x4b, 0x12, 0x34, 0x50, 0x3b, 0xdf, 0xa9, 0xa8, 0x9f, 0x64, 0x2b, 0x65, 0xc9, 0x0c, 0x06, 0x7d, + 0x87, 0xfa, 0xa1, 0x16, 0x67, 0x35, 0xaf, 0x00, 0x36, 0x41, 0x2c, 0x43, 0xde, 0x22, 0x21, 0xeb, + 0x5d, 0xd2, 0xa2, 0x25, 0xde, 0x87, 0xc2, 0x4a, 0x5f, 0xde, 0x11, 0xd6, 0x7c, 0x45, 0xdd, 0x79, + 0x5a, 0x3e, 0x3a, 0xb7, 0x16, 0x93, 0xbe, 0x11, 0x8e, 0x90, 0xf2, 0x3b, 0x82, 0xd2, 0x99, 0x4e, + 0xf5, 0x21, 0xc9, 0xd4, 0xab, 0xc6, 0xf5, 0x36, 0x27, 0x17, 0xde, 0xe5, 0xe4, 0x78, 0x17, 0x6a, + 0x33, 0x9f, 0xe8, 0xd1, 0xce, 0x94, 0x9a, 0x36, 0x61, 0xc2, 0x89, 0x5a, 0x75, 0x1d, 0x9c, 0x98, + 0x36, 0xc1, 0x1f, 0x42, 0xe5, 0x5e, 0x0f, 0xa6, 0xe4, 0xc1, 0x73, 0x03, 0x62, 0x34, 0xc4, 0x36, + 0xea, 0x94, 0x35, 0xb8, 0xd7, 0x83, 0x7e, 0x1c, 0x51, 0xfe, 0x41, 0x50, 0x1b, 0x92, 0x30, 0x25, + 0xdf, 0x31, 0x88, 0x16, 0x09, 0xd7, 0xea, 0xed, 0x65, 0xbb, 0xc9, 0x50, 0x23, 0xc4, 0xb5, 0x63, + 0x29, 0xf8, 0x23, 0xa8, 0xcf, 0xee, 0x7c, 0x9f, 0x38, 0x74, 0xca, 0xef, 0x5c, 0xe0, 0x3d, 0xc5, + 0xd1, 0x61, 0x74, 0xf5, 0xcd, 0x31, 0x48, 0x49, 0x62, 0x5a, 0x0f, 0x31, 0xd6, 0xe3, 0xb3, 0xac, + 0xbe, 0xdb, 0xd9, 0x06, 0xb8, 0x8e, 0x69, 0x79, 0xff, 0x46, 0x20, 0x8d, 0xf4, 0x80, 0x12, 0x3f, + 0x12, 0xf8, 0x7b, 0x90, 0xbc, 0xa5, 0x6e, 0x3a, 0x94, 0x3c, 0x50, 0x56, 0xb6, 0xa2, 0xb6, 0xb3, + 0x25, 0x12, 0xee, 0xd5, 0x9a, 0x37, 0xc8, 0x69, 0x9b, 0x24, 0x7c, 0x00, 0x62, 0xe4, 0x04, 0xfe, + 0xff, 0x0f, 0x5e, 0x48, 0x8e, 0x2e, 0x7a, 0x90, 0xd3, 0x18, 0x15, 0x77, 0x21, 0x6f, 0xd9, 0x01, + 0xbb, 0x81, 0x8a, 0xda, 0x7c, 0x21, 0x63, 0x68, 0x07, 0x83, 0x9c, 0x16, 0x11, 0x7b, 0x12, 0x94, + 0x6e, 0xf4, 0x99, 0x45, 0x1c, 0x43, 0xd9, 0x02, 0xfc, 0xb4, 0x21, 0x65, 0x17, 0x6a, 0x99, 0x3f, + 0x61, 0x0c, 0xa2, 0xa7, 0xd3, 0x05, 0x37, 0x22, 0x5b, 0x2b, 0xbf, 0x40, 0x35, 0x5d, 0x1c, 0xef, + 0x40, 0x71, 0x45, 0x1c, 0xc3, 0xf5, 0x39, 0x8b, 0xa3, 0xd4, 0x13, 0x14, 0x58, 0x9c, 0x3f, 0xc1, + 0x1d, 0x28, 0xfa, 0x64, 0x6e, 0xba, 0x0e, 0xeb, 0x5b, 0xd2, 0x38, 0xc2, 0x4d, 0x28, 0x13, 0xc7, + 0xf0, 0x5c, 0xd3, 0xa1, 0xcc, 0x30, 0x92, 0x96, 0x60, 0xe5, 0x4f, 0x01, 0x64, 0xee, 0x48, 0x62, + 0x9c, 0xba, 0x0e, 0x25, 0x0e, 0xc5, 0x03, 0x28, 0xdb, 0x84, 0xea, 0x86, 0x4e, 0x75, 0xee, 0x9a, + 0xfd, 0x67, 0x3d, 0x9c, 0x64, 0x74, 0x47, 0x9c, 0x1e, 0x9b, 0x27, 0xc9, 0xc6, 0x0d, 0x28, 0xcd, + 0x62, 0x0a, 0x1f, 0x0d, 0x6b, 0x88, 0x0f, 0x01, 0x6c, 0x76, 0xd6, 0xc8, 0x59, 0x5c, 0xe8, 0xf7, + 0x5f, 0x10, 0x5a, 0x93, 0xec, 0xc4, 0x0e, 0xf1, 0x9c, 0x11, 0x93, 0x39, 0xb3, 0x07, 0xf5, 0x99, + 0xe9, 0x2d, 0x88, 0x1f, 0xc9, 0xcc, 0x6a, 0x15, 0xd8, 0x5e, 0x6d, 0x13, 0x1d, 0x92, 0xb0, 0xf9, + 0x2d, 0xd4, 0x32, 0x3d, 0x3e, 0x33, 0x07, 0xb6, 0xd2, 0x3e, 0xad, 0xa6, 0x0c, 0xf9, 0xe9, 0xaf, + 0x28, 0x11, 0x29, 0x79, 0xb6, 0xb8, 0x02, 0xa5, 0x1f, 0xc7, 0xc3, 0xf1, 0xe5, 0x4f, 0x63, 0x39, + 0x87, 0x6b, 0x20, 0x5d, 0xfd, 0x70, 0x72, 0x31, 0x9e, 0xf4, 0x7f, 0x9e, 0xc8, 0x08, 0xd7, 0x01, + 0x4e, 0xfa, 0xd7, 0x07, 0xea, 0xd1, 0xf4, 0x74, 0xa2, 0xc9, 0xc2, 0x1a, 0x1f, 0xab, 0x0c, 0xe7, + 0x39, 0x56, 0xbf, 0x3a, 0x64, 0x58, 0x8c, 0x6a, 0x5d, 0x8f, 0xbe, 0x64, 0xa0, 0xb0, 0x06, 0xfd, + 0xd3, 0x9e, 0x5c, 0x4c, 0x76, 0xce, 0x7b, 0x72, 0x69, 0x0d, 0x2e, 0xcf, 0x7b, 0x72, 0xb9, 0xf7, + 0xf1, 0xff, 0x7f, 0x95, 0xd1, 0xbf, 0x8f, 0x2d, 0xf4, 0xdf, 0x63, 0x0b, 0xbd, 0x7a, 0x6c, 0xa1, + 0xdf, 0x5e, 0xb7, 0x72, 0x20, 0xbb, 0xfe, 0xbc, 0x4b, 0x4d, 0x6b, 0xd5, 0xb5, 0x56, 0x6c, 0xe8, + 0xdf, 0x14, 0xd9, 0xe7, 0x8b, 0x37, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc1, 0xc1, 0x36, 0x89, 0x46, + 0x06, 0x00, 0x00, } func (m *EncryptionMeta) Marshal() (dAtA []byte, err error) { diff --git a/proto/encryptionpb.proto b/proto/encryptionpb.proto index 99e25a5..719d37f 100644 --- a/proto/encryptionpb.proto +++ b/proto/encryptionpb.proto @@ -46,6 +46,8 @@ enum EncryptionMethod { AES256_CTR = 4; SM4_CTR = 5; SM4_ECB = 6; + SM4_CFB = 7; + SM4_OFB = 8; } // The key used to encrypt the user data. diff --git a/scripts/proto.lock b/scripts/proto.lock index f24196b..a6f4a79 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -576,17 +576,20 @@ { "id": 3, "name": "cluster_id_error", - "type": "ClusterIDError" + "type": "ClusterIDError", + "oneof_parent": "detail" }, { "id": 4, "name": "kv_error", - "type": "kvrpcpb.KeyError" + "type": "kvrpcpb.KeyError", + "oneof_parent": "detail" }, { "id": 5, "name": "region_error", - "type": "errorpb.Error" + "type": "errorpb.Error", + "oneof_parent": "detail" } ] }, @@ -744,37 +747,44 @@ { "id": 1, "name": "noop", - "type": "Noop" + "type": "Noop", + "oneof_parent": "backend" }, { "id": 2, "name": "local", - "type": "Local" + "type": "Local", + "oneof_parent": "backend" }, { "id": 3, "name": "s3", - "type": "S3" + "type": "S3", + "oneof_parent": "backend" }, { "id": 4, "name": "gcs", - "type": "GCS" + "type": "GCS", + "oneof_parent": "backend" }, { "id": 5, "name": "cloud_dynamic", - "type": "CloudDynamic" + "type": "CloudDynamic", + "oneof_parent": "backend" }, { "id": 6, "name": "hdfs", - "type": "HDFS" + "type": "HDFS", + "oneof_parent": "backend" }, { "id": 7, "name": "azure_blob_storage", - "type": "AzureBlobStorage" + "type": "AzureBlobStorage", + "oneof_parent": "backend" } ] }, @@ -1611,17 +1621,20 @@ { "id": 3, "name": "entries", - "type": "Entries" + "type": "Entries", + "oneof_parent": "event" }, { "id": 4, "name": "admin", - "type": "Admin" + "type": "Admin", + "oneof_parent": "event" }, { "id": 5, "name": "error", - "type": "Error" + "type": "Error", + "oneof_parent": "event" }, { "id": 6, @@ -1632,12 +1645,14 @@ "name": "deprecated", "value": "true" } - ] + ], + "oneof_parent": "event" }, { "id": 8, "name": "long_txn", - "type": "LongTxn" + "type": "LongTxn", + "oneof_parent": "event" } ], "messages": [ @@ -1808,12 +1823,14 @@ { "id": 9, "name": "register", - "type": "Register" + "type": "Register", + "oneof_parent": "request" }, { "id": 10, "name": "notify_txn_status", - "type": "NotifyTxnStatus" + "type": "NotifyTxnStatus", + "oneof_parent": "request" }, { "id": 11, @@ -1995,12 +2012,14 @@ { "id": 1, "name": "local", - "type": "Local" + "type": "Local", + "oneof_parent": "kind" }, { "id": 2, "name": "global", - "type": "Global" + "type": "Global", + "oneof_parent": "kind" } ] }, @@ -3853,17 +3872,20 @@ { "id": 1, "name": "success", - "type": "Success" + "type": "Success", + "oneof_parent": "error" }, { "id": 2, "name": "not_owner", - "type": "NotOwner" + "type": "NotOwner", + "oneof_parent": "error" }, { "id": 3, "name": "conflict", - "type": "Conflict" + "type": "Conflict", + "oneof_parent": "error" } ] }, @@ -4032,17 +4054,20 @@ { "id": 1, "name": "error_region", - "type": "ErrorRegion" + "type": "ErrorRegion", + "oneof_parent": "errors" }, { "id": 2, "name": "error_locked", - "type": "ErrorLocked" + "type": "ErrorLocked", + "oneof_parent": "errors" }, { "id": 99, "name": "error_other", - "type": "ErrorOther" + "type": "ErrorOther", + "oneof_parent": "errors" } ] }, @@ -4309,6 +4334,14 @@ { "name": "SM4_ECB", "integer": 6 + }, + { + "name": "SM4_CFB", + "integer": 7 + }, + { + "name": "SM4_OFB", + "integer": 8 } ] } @@ -4413,17 +4446,20 @@ { "id": 1, "name": "plaintext", - "type": "MasterKeyPlaintext" + "type": "MasterKeyPlaintext", + "oneof_parent": "backend" }, { "id": 2, "name": "file", - "type": "MasterKeyFile" + "type": "MasterKeyFile", + "oneof_parent": "backend" }, { "id": 3, "name": "kms", - "type": "MasterKeyKms" + "type": "MasterKeyKms", + "oneof_parent": "backend" } ] }, @@ -4705,12 +4741,14 @@ { "id": 1, "name": "state", - "type": "SnapshotState" + "type": "SnapshotState", + "oneof_parent": "chunk" }, { "id": 2, "name": "data", - "type": "SnapshotData" + "type": "SnapshotData", + "oneof_parent": "chunk" } ] }, @@ -5564,12 +5602,14 @@ { "id": 1, "name": "head", - "type": "WriteHead" + "type": "WriteHead", + "oneof_parent": "chunk" }, { "id": 2, "name": "batch", - "type": "WriteBatch" + "type": "WriteBatch", + "oneof_parent": "chunk" } ] }, @@ -6012,12 +6052,14 @@ { "id": 1, "name": "meta", - "type": "SSTMeta" + "type": "SSTMeta", + "oneof_parent": "chunk" }, { "id": 2, "name": "data", - "type": "bytes" + "type": "bytes", + "oneof_parent": "chunk" } ] }, @@ -6257,12 +6299,14 @@ { "id": 1, "name": "meta", - "type": "SSTMeta" + "type": "SSTMeta", + "oneof_parent": "chunk" }, { "id": 2, "name": "batch", - "type": "WriteBatch" + "type": "WriteBatch", + "oneof_parent": "chunk" } ] }, @@ -6309,12 +6353,14 @@ { "id": 1, "name": "meta", - "type": "SSTMeta" + "type": "SSTMeta", + "oneof_parent": "chunk" }, { "id": 2, "name": "batch", - "type": "RawWriteBatch" + "type": "RawWriteBatch", + "oneof_parent": "chunk" } ] }, @@ -10459,22 +10505,26 @@ { "id": 1, "name": "err_invalid_start_key", - "type": "CompactErrorInvalidStartKey" + "type": "CompactErrorInvalidStartKey", + "oneof_parent": "error" }, { "id": 2, "name": "err_physical_table_not_exist", - "type": "CompactErrorPhysicalTableNotExist" + "type": "CompactErrorPhysicalTableNotExist", + "oneof_parent": "error" }, { "id": 3, "name": "err_compact_in_progress", - "type": "CompactErrorCompactInProgress" + "type": "CompactErrorCompactInProgress", + "oneof_parent": "error" }, { "id": 4, "name": "err_too_many_pending_tasks", - "type": "CompactErrorTooManyPendingTasks" + "type": "CompactErrorTooManyPendingTasks", + "oneof_parent": "error" } ] }, @@ -16012,22 +16062,26 @@ { "id": 1, "name": "head", - "type": "TabletSnapshotHead" + "type": "TabletSnapshotHead", + "oneof_parent": "payload" }, { "id": 2, "name": "preview", - "type": "TabletSnapshotPreview" + "type": "TabletSnapshotPreview", + "oneof_parent": "payload" }, { "id": 3, "name": "chunk", - "type": "TabletSnapshotFileChunk" + "type": "TabletSnapshotFileChunk", + "oneof_parent": "payload" }, { "id": 4, "name": "end", - "type": "TabletSnapshotEnd" + "type": "TabletSnapshotEnd", + "oneof_parent": "payload" } ] }, @@ -16990,12 +17044,14 @@ { "id": 2, "name": "ru_items", - "type": "RequestRU" + "type": "RequestRU", + "oneof_parent": "request" }, { "id": 3, "name": "raw_resource_items", - "type": "RequestRawResource" + "type": "RequestRawResource", + "oneof_parent": "request" }, { "id": 4, @@ -17373,7 +17429,8 @@ { "id": 1, "name": "record", - "type": "GroupTagRecord" + "type": "GroupTagRecord", + "oneof_parent": "record_oneof" } ] }, @@ -17505,157 +17562,188 @@ { "id": 1, "name": "Get", - "type": "kvrpcpb.GetRequest" + "type": "kvrpcpb.GetRequest", + "oneof_parent": "cmd" }, { "id": 2, "name": "Scan", - "type": "kvrpcpb.ScanRequest" + "type": "kvrpcpb.ScanRequest", + "oneof_parent": "cmd" }, { "id": 3, "name": "Prewrite", - "type": "kvrpcpb.PrewriteRequest" + "type": "kvrpcpb.PrewriteRequest", + "oneof_parent": "cmd" }, { "id": 4, "name": "Commit", - "type": "kvrpcpb.CommitRequest" + "type": "kvrpcpb.CommitRequest", + "oneof_parent": "cmd" }, { "id": 5, "name": "Import", - "type": "kvrpcpb.ImportRequest" + "type": "kvrpcpb.ImportRequest", + "oneof_parent": "cmd" }, { "id": 6, "name": "Cleanup", - "type": "kvrpcpb.CleanupRequest" + "type": "kvrpcpb.CleanupRequest", + "oneof_parent": "cmd" }, { "id": 7, "name": "BatchGet", - "type": "kvrpcpb.BatchGetRequest" + "type": "kvrpcpb.BatchGetRequest", + "oneof_parent": "cmd" }, { "id": 8, "name": "BatchRollback", - "type": "kvrpcpb.BatchRollbackRequest" + "type": "kvrpcpb.BatchRollbackRequest", + "oneof_parent": "cmd" }, { "id": 9, "name": "ScanLock", - "type": "kvrpcpb.ScanLockRequest" + "type": "kvrpcpb.ScanLockRequest", + "oneof_parent": "cmd" }, { "id": 10, "name": "ResolveLock", - "type": "kvrpcpb.ResolveLockRequest" + "type": "kvrpcpb.ResolveLockRequest", + "oneof_parent": "cmd" }, { "id": 11, "name": "GC", - "type": "kvrpcpb.GCRequest" + "type": "kvrpcpb.GCRequest", + "oneof_parent": "cmd" }, { "id": 12, "name": "DeleteRange", - "type": "kvrpcpb.DeleteRangeRequest" + "type": "kvrpcpb.DeleteRangeRequest", + "oneof_parent": "cmd" }, { "id": 13, "name": "RawGet", - "type": "kvrpcpb.RawGetRequest" + "type": "kvrpcpb.RawGetRequest", + "oneof_parent": "cmd" }, { "id": 14, "name": "RawBatchGet", - "type": "kvrpcpb.RawBatchGetRequest" + "type": "kvrpcpb.RawBatchGetRequest", + "oneof_parent": "cmd" }, { "id": 15, "name": "RawPut", - "type": "kvrpcpb.RawPutRequest" + "type": "kvrpcpb.RawPutRequest", + "oneof_parent": "cmd" }, { "id": 16, "name": "RawBatchPut", - "type": "kvrpcpb.RawBatchPutRequest" + "type": "kvrpcpb.RawBatchPutRequest", + "oneof_parent": "cmd" }, { "id": 17, "name": "RawDelete", - "type": "kvrpcpb.RawDeleteRequest" + "type": "kvrpcpb.RawDeleteRequest", + "oneof_parent": "cmd" }, { "id": 18, "name": "RawBatchDelete", - "type": "kvrpcpb.RawBatchDeleteRequest" + "type": "kvrpcpb.RawBatchDeleteRequest", + "oneof_parent": "cmd" }, { "id": 19, "name": "RawScan", - "type": "kvrpcpb.RawScanRequest" + "type": "kvrpcpb.RawScanRequest", + "oneof_parent": "cmd" }, { "id": 20, "name": "RawDeleteRange", - "type": "kvrpcpb.RawDeleteRangeRequest" + "type": "kvrpcpb.RawDeleteRangeRequest", + "oneof_parent": "cmd" }, { "id": 21, "name": "RawBatchScan", - "type": "kvrpcpb.RawBatchScanRequest" + "type": "kvrpcpb.RawBatchScanRequest", + "oneof_parent": "cmd" }, { "id": 22, "name": "Coprocessor", - "type": "coprocessor.Request" + "type": "coprocessor.Request", + "oneof_parent": "cmd" }, { "id": 23, "name": "PessimisticLock", - "type": "kvrpcpb.PessimisticLockRequest" + "type": "kvrpcpb.PessimisticLockRequest", + "oneof_parent": "cmd" }, { "id": 24, "name": "PessimisticRollback", - "type": "kvrpcpb.PessimisticRollbackRequest" + "type": "kvrpcpb.PessimisticRollbackRequest", + "oneof_parent": "cmd" }, { "id": 25, "name": "CheckTxnStatus", - "type": "kvrpcpb.CheckTxnStatusRequest" + "type": "kvrpcpb.CheckTxnStatusRequest", + "oneof_parent": "cmd" }, { "id": 26, "name": "TxnHeartBeat", - "type": "kvrpcpb.TxnHeartBeatRequest" + "type": "kvrpcpb.TxnHeartBeatRequest", + "oneof_parent": "cmd" }, { "id": 33, "name": "CheckSecondaryLocks", - "type": "kvrpcpb.CheckSecondaryLocksRequest" + "type": "kvrpcpb.CheckSecondaryLocksRequest", + "oneof_parent": "cmd" }, { "id": 34, "name": "RawCoprocessor", - "type": "kvrpcpb.RawCoprocessorRequest" + "type": "kvrpcpb.RawCoprocessorRequest", + "oneof_parent": "cmd" }, { "id": 35, "name": "FlashbackToVersion", - "type": "kvrpcpb.FlashbackToVersionRequest" + "type": "kvrpcpb.FlashbackToVersionRequest", + "oneof_parent": "cmd" }, { "id": 36, "name": "PrepareFlashbackToVersion", - "type": "kvrpcpb.PrepareFlashbackToVersionRequest" + "type": "kvrpcpb.PrepareFlashbackToVersionRequest", + "oneof_parent": "cmd" }, { "id": 255, "name": "Empty", - "type": "BatchCommandsEmptyRequest" + "type": "BatchCommandsEmptyRequest", + "oneof_parent": "cmd" } ], "reserved_ids": [ @@ -17697,157 +17785,188 @@ { "id": 1, "name": "Get", - "type": "kvrpcpb.GetResponse" + "type": "kvrpcpb.GetResponse", + "oneof_parent": "cmd" }, { "id": 2, "name": "Scan", - "type": "kvrpcpb.ScanResponse" + "type": "kvrpcpb.ScanResponse", + "oneof_parent": "cmd" }, { "id": 3, "name": "Prewrite", - "type": "kvrpcpb.PrewriteResponse" + "type": "kvrpcpb.PrewriteResponse", + "oneof_parent": "cmd" }, { "id": 4, "name": "Commit", - "type": "kvrpcpb.CommitResponse" + "type": "kvrpcpb.CommitResponse", + "oneof_parent": "cmd" }, { "id": 5, "name": "Import", - "type": "kvrpcpb.ImportResponse" + "type": "kvrpcpb.ImportResponse", + "oneof_parent": "cmd" }, { "id": 6, "name": "Cleanup", - "type": "kvrpcpb.CleanupResponse" + "type": "kvrpcpb.CleanupResponse", + "oneof_parent": "cmd" }, { "id": 7, "name": "BatchGet", - "type": "kvrpcpb.BatchGetResponse" + "type": "kvrpcpb.BatchGetResponse", + "oneof_parent": "cmd" }, { "id": 8, "name": "BatchRollback", - "type": "kvrpcpb.BatchRollbackResponse" + "type": "kvrpcpb.BatchRollbackResponse", + "oneof_parent": "cmd" }, { "id": 9, "name": "ScanLock", - "type": "kvrpcpb.ScanLockResponse" + "type": "kvrpcpb.ScanLockResponse", + "oneof_parent": "cmd" }, { "id": 10, "name": "ResolveLock", - "type": "kvrpcpb.ResolveLockResponse" + "type": "kvrpcpb.ResolveLockResponse", + "oneof_parent": "cmd" }, { "id": 11, "name": "GC", - "type": "kvrpcpb.GCResponse" + "type": "kvrpcpb.GCResponse", + "oneof_parent": "cmd" }, { "id": 12, "name": "DeleteRange", - "type": "kvrpcpb.DeleteRangeResponse" + "type": "kvrpcpb.DeleteRangeResponse", + "oneof_parent": "cmd" }, { "id": 13, "name": "RawGet", - "type": "kvrpcpb.RawGetResponse" + "type": "kvrpcpb.RawGetResponse", + "oneof_parent": "cmd" }, { "id": 14, "name": "RawBatchGet", - "type": "kvrpcpb.RawBatchGetResponse" + "type": "kvrpcpb.RawBatchGetResponse", + "oneof_parent": "cmd" }, { "id": 15, "name": "RawPut", - "type": "kvrpcpb.RawPutResponse" + "type": "kvrpcpb.RawPutResponse", + "oneof_parent": "cmd" }, { "id": 16, "name": "RawBatchPut", - "type": "kvrpcpb.RawBatchPutResponse" + "type": "kvrpcpb.RawBatchPutResponse", + "oneof_parent": "cmd" }, { "id": 17, "name": "RawDelete", - "type": "kvrpcpb.RawDeleteResponse" + "type": "kvrpcpb.RawDeleteResponse", + "oneof_parent": "cmd" }, { "id": 18, "name": "RawBatchDelete", - "type": "kvrpcpb.RawBatchDeleteResponse" + "type": "kvrpcpb.RawBatchDeleteResponse", + "oneof_parent": "cmd" }, { "id": 19, "name": "RawScan", - "type": "kvrpcpb.RawScanResponse" + "type": "kvrpcpb.RawScanResponse", + "oneof_parent": "cmd" }, { "id": 20, "name": "RawDeleteRange", - "type": "kvrpcpb.RawDeleteRangeResponse" + "type": "kvrpcpb.RawDeleteRangeResponse", + "oneof_parent": "cmd" }, { "id": 21, "name": "RawBatchScan", - "type": "kvrpcpb.RawBatchScanResponse" + "type": "kvrpcpb.RawBatchScanResponse", + "oneof_parent": "cmd" }, { "id": 22, "name": "Coprocessor", - "type": "coprocessor.Response" + "type": "coprocessor.Response", + "oneof_parent": "cmd" }, { "id": 23, "name": "PessimisticLock", - "type": "kvrpcpb.PessimisticLockResponse" + "type": "kvrpcpb.PessimisticLockResponse", + "oneof_parent": "cmd" }, { "id": 24, "name": "PessimisticRollback", - "type": "kvrpcpb.PessimisticRollbackResponse" + "type": "kvrpcpb.PessimisticRollbackResponse", + "oneof_parent": "cmd" }, { "id": 25, "name": "CheckTxnStatus", - "type": "kvrpcpb.CheckTxnStatusResponse" + "type": "kvrpcpb.CheckTxnStatusResponse", + "oneof_parent": "cmd" }, { "id": 26, "name": "TxnHeartBeat", - "type": "kvrpcpb.TxnHeartBeatResponse" + "type": "kvrpcpb.TxnHeartBeatResponse", + "oneof_parent": "cmd" }, { "id": 33, "name": "CheckSecondaryLocks", - "type": "kvrpcpb.CheckSecondaryLocksResponse" + "type": "kvrpcpb.CheckSecondaryLocksResponse", + "oneof_parent": "cmd" }, { "id": 34, "name": "RawCoprocessor", - "type": "kvrpcpb.RawCoprocessorResponse" + "type": "kvrpcpb.RawCoprocessorResponse", + "oneof_parent": "cmd" }, { "id": 35, "name": "FlashbackToVersion", - "type": "kvrpcpb.FlashbackToVersionResponse" + "type": "kvrpcpb.FlashbackToVersionResponse", + "oneof_parent": "cmd" }, { "id": 36, "name": "PrepareFlashbackToVersion", - "type": "kvrpcpb.PrepareFlashbackToVersionResponse" + "type": "kvrpcpb.PrepareFlashbackToVersionResponse", + "oneof_parent": "cmd" }, { "id": 255, "name": "Empty", - "type": "BatchCommandsEmptyResponse" + "type": "BatchCommandsEmptyResponse", + "oneof_parent": "cmd" } ], "reserved_ids": [ @@ -18299,12 +18418,14 @@ { "id": 1, "name": "report", - "type": "Report" + "type": "Report", + "oneof_parent": "record_oneof" }, { "id": 2, "name": "notify_collect", - "type": "NotifyCollect" + "type": "NotifyCollect", + "oneof_parent": "record_oneof" } ] }, -- Gitee From 03e430a280d802945e629e3eb4041d47bed2b92e Mon Sep 17 00:00:00 2001 From: cbcwestwolf Date: Thu, 21 Mar 2024 17:58:13 +0800 Subject: [PATCH 44/44] Add hash field for data key --- pkg/encryptionpb/encryptionpb.pb.go | 158 +++++++++++++++++++--------- proto/encryptionpb.proto | 2 + scripts/proto.lock | 5 + 3 files changed, 113 insertions(+), 52 deletions(-) diff --git a/pkg/encryptionpb/encryptionpb.pb.go b/pkg/encryptionpb/encryptionpb.pb.go index d593741..a6f6aaa 100644 --- a/pkg/encryptionpb/encryptionpb.pb.go +++ b/pkg/encryptionpb/encryptionpb.pb.go @@ -252,7 +252,9 @@ type DataKey struct { // Creation time of the key. CreationTime uint64 `protobuf:"varint,3,opt,name=creation_time,json=creationTime,proto3" json:"creation_time,omitempty"` // A flag for the key have ever been exposed. - WasExposed bool `protobuf:"varint,4,opt,name=was_exposed,json=wasExposed,proto3" json:"was_exposed,omitempty"` + WasExposed bool `protobuf:"varint,4,opt,name=was_exposed,json=wasExposed,proto3" json:"was_exposed,omitempty"` + // A sequence of hash value of key. Only used in sm4 method. + Hash []byte `protobuf:"bytes,5,opt,name=hash,proto3" json:"hash,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -319,6 +321,13 @@ func (m *DataKey) GetWasExposed() bool { return false } +func (m *DataKey) GetHash() []byte { + if m != nil { + return m.Hash + } + return nil +} + type KeyDictionary struct { // A map of key ID to dat key. Keys map[uint64]*DataKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` @@ -752,57 +761,57 @@ func init() { func init() { proto.RegisterFile("encryptionpb.proto", fileDescriptor_a483860494a778a2) } var fileDescriptor_a483860494a778a2 = []byte{ - // 787 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4d, 0x6f, 0xeb, 0x44, - 0x14, 0xcd, 0x38, 0xce, 0x87, 0x6f, 0x3e, 0xb0, 0x46, 0x6d, 0x89, 0x82, 0x14, 0x22, 0x97, 0x42, - 0x04, 0x55, 0x50, 0x0d, 0x94, 0x16, 0x84, 0x44, 0xd3, 0xa6, 0x4a, 0x15, 0x92, 0x56, 0x6e, 0x10, - 0xec, 0x22, 0x37, 0x9e, 0x26, 0x96, 0xe3, 0x0f, 0xec, 0x69, 0x5a, 0xff, 0x0d, 0x56, 0xb0, 0x84, - 0x15, 0xff, 0x81, 0x0d, 0x4b, 0x96, 0x2c, 0x59, 0x3e, 0xf5, 0xfd, 0x91, 0x27, 0x8f, 0x27, 0x8e, - 0xad, 0xb6, 0xd2, 0x7b, 0x2b, 0xcf, 0xb9, 0x73, 0xee, 0xf5, 0x9d, 0x33, 0x67, 0x2e, 0x60, 0xe2, - 0xcc, 0xfc, 0xd0, 0xa3, 0xa6, 0xeb, 0x78, 0x37, 0x5d, 0xcf, 0x77, 0xa9, 0x8b, 0xab, 0xe9, 0x58, - 0x73, 0x6b, 0xee, 0xce, 0x5d, 0xb6, 0xf1, 0x79, 0xb4, 0x8a, 0x39, 0xcd, 0xf7, 0xfc, 0xbb, 0x80, - 0xb2, 0x65, 0x1c, 0x50, 0xbe, 0x86, 0x7a, 0x3f, 0x49, 0x1b, 0x11, 0xaa, 0xe3, 0x6d, 0x28, 0x5a, - 0x24, 0x9c, 0x9a, 0x46, 0x03, 0xb5, 0x51, 0x47, 0xd4, 0x0a, 0x16, 0x09, 0x2f, 0x0c, 0x5c, 0x07, - 0xc1, 0x5c, 0x35, 0x84, 0x36, 0xea, 0x54, 0x35, 0xc1, 0x5c, 0x29, 0x26, 0x94, 0xcf, 0xcd, 0x25, - 0xb9, 0x70, 0x6e, 0xdd, 0xb7, 0x4c, 0xc1, 0x87, 0x50, 0xb4, 0x09, 0x5d, 0xb8, 0x46, 0x23, 0xdf, - 0x46, 0x9d, 0xba, 0xda, 0xea, 0x66, 0x4e, 0x91, 0xe9, 0x63, 0xe1, 0x1a, 0x1a, 0x67, 0x2b, 0x7f, - 0x20, 0xa8, 0x47, 0xff, 0x3a, 0x33, 0x67, 0xd1, 0xae, 0xee, 0x87, 0xf8, 0x3b, 0x28, 0xdc, 0x9a, - 0x4b, 0x12, 0x34, 0x50, 0x3b, 0xdf, 0xa9, 0xa8, 0x9f, 0x64, 0x2b, 0x65, 0xc9, 0x0c, 0x06, 0x7d, - 0x87, 0xfa, 0xa1, 0x16, 0x67, 0x35, 0xaf, 0x00, 0x36, 0x41, 0x2c, 0x43, 0xde, 0x22, 0x21, 0xeb, - 0x5d, 0xd2, 0xa2, 0x25, 0xde, 0x87, 0xc2, 0x4a, 0x5f, 0xde, 0x11, 0xd6, 0x7c, 0x45, 0xdd, 0x79, - 0x5a, 0x3e, 0x3a, 0xb7, 0x16, 0x93, 0xbe, 0x11, 0x8e, 0x90, 0xf2, 0x3b, 0x82, 0xd2, 0x99, 0x4e, - 0xf5, 0x21, 0xc9, 0xd4, 0xab, 0xc6, 0xf5, 0x36, 0x27, 0x17, 0xde, 0xe5, 0xe4, 0x78, 0x17, 0x6a, - 0x33, 0x9f, 0xe8, 0xd1, 0xce, 0x94, 0x9a, 0x36, 0x61, 0xc2, 0x89, 0x5a, 0x75, 0x1d, 0x9c, 0x98, - 0x36, 0xc1, 0x1f, 0x42, 0xe5, 0x5e, 0x0f, 0xa6, 0xe4, 0xc1, 0x73, 0x03, 0x62, 0x34, 0xc4, 0x36, - 0xea, 0x94, 0x35, 0xb8, 0xd7, 0x83, 0x7e, 0x1c, 0x51, 0xfe, 0x41, 0x50, 0x1b, 0x92, 0x30, 0x25, - 0xdf, 0x31, 0x88, 0x16, 0x09, 0xd7, 0xea, 0xed, 0x65, 0xbb, 0xc9, 0x50, 0x23, 0xc4, 0xb5, 0x63, - 0x29, 0xf8, 0x23, 0xa8, 0xcf, 0xee, 0x7c, 0x9f, 0x38, 0x74, 0xca, 0xef, 0x5c, 0xe0, 0x3d, 0xc5, - 0xd1, 0x61, 0x74, 0xf5, 0xcd, 0x31, 0x48, 0x49, 0x62, 0x5a, 0x0f, 0x31, 0xd6, 0xe3, 0xb3, 0xac, - 0xbe, 0xdb, 0xd9, 0x06, 0xb8, 0x8e, 0x69, 0x79, 0xff, 0x46, 0x20, 0x8d, 0xf4, 0x80, 0x12, 0x3f, - 0x12, 0xf8, 0x7b, 0x90, 0xbc, 0xa5, 0x6e, 0x3a, 0x94, 0x3c, 0x50, 0x56, 0xb6, 0xa2, 0xb6, 0xb3, - 0x25, 0x12, 0xee, 0xd5, 0x9a, 0x37, 0xc8, 0x69, 0x9b, 0x24, 0x7c, 0x00, 0x62, 0xe4, 0x04, 0xfe, - 0xff, 0x0f, 0x5e, 0x48, 0x8e, 0x2e, 0x7a, 0x90, 0xd3, 0x18, 0x15, 0x77, 0x21, 0x6f, 0xd9, 0x01, - 0xbb, 0x81, 0x8a, 0xda, 0x7c, 0x21, 0x63, 0x68, 0x07, 0x83, 0x9c, 0x16, 0x11, 0x7b, 0x12, 0x94, - 0x6e, 0xf4, 0x99, 0x45, 0x1c, 0x43, 0xd9, 0x02, 0xfc, 0xb4, 0x21, 0x65, 0x17, 0x6a, 0x99, 0x3f, - 0x61, 0x0c, 0xa2, 0xa7, 0xd3, 0x05, 0x37, 0x22, 0x5b, 0x2b, 0xbf, 0x40, 0x35, 0x5d, 0x1c, 0xef, - 0x40, 0x71, 0x45, 0x1c, 0xc3, 0xf5, 0x39, 0x8b, 0xa3, 0xd4, 0x13, 0x14, 0x58, 0x9c, 0x3f, 0xc1, - 0x1d, 0x28, 0xfa, 0x64, 0x6e, 0xba, 0x0e, 0xeb, 0x5b, 0xd2, 0x38, 0xc2, 0x4d, 0x28, 0x13, 0xc7, - 0xf0, 0x5c, 0xd3, 0xa1, 0xcc, 0x30, 0x92, 0x96, 0x60, 0xe5, 0x4f, 0x01, 0x64, 0xee, 0x48, 0x62, - 0x9c, 0xba, 0x0e, 0x25, 0x0e, 0xc5, 0x03, 0x28, 0xdb, 0x84, 0xea, 0x86, 0x4e, 0x75, 0xee, 0x9a, - 0xfd, 0x67, 0x3d, 0x9c, 0x64, 0x74, 0x47, 0x9c, 0x1e, 0x9b, 0x27, 0xc9, 0xc6, 0x0d, 0x28, 0xcd, - 0x62, 0x0a, 0x1f, 0x0d, 0x6b, 0x88, 0x0f, 0x01, 0x6c, 0x76, 0xd6, 0xc8, 0x59, 0x5c, 0xe8, 0xf7, - 0x5f, 0x10, 0x5a, 0x93, 0xec, 0xc4, 0x0e, 0xf1, 0x9c, 0x11, 0x93, 0x39, 0xb3, 0x07, 0xf5, 0x99, - 0xe9, 0x2d, 0x88, 0x1f, 0xc9, 0xcc, 0x6a, 0x15, 0xd8, 0x5e, 0x6d, 0x13, 0x1d, 0x92, 0xb0, 0xf9, - 0x2d, 0xd4, 0x32, 0x3d, 0x3e, 0x33, 0x07, 0xb6, 0xd2, 0x3e, 0xad, 0xa6, 0x0c, 0xf9, 0xe9, 0xaf, - 0x28, 0x11, 0x29, 0x79, 0xb6, 0xb8, 0x02, 0xa5, 0x1f, 0xc7, 0xc3, 0xf1, 0xe5, 0x4f, 0x63, 0x39, - 0x87, 0x6b, 0x20, 0x5d, 0xfd, 0x70, 0x72, 0x31, 0x9e, 0xf4, 0x7f, 0x9e, 0xc8, 0x08, 0xd7, 0x01, - 0x4e, 0xfa, 0xd7, 0x07, 0xea, 0xd1, 0xf4, 0x74, 0xa2, 0xc9, 0xc2, 0x1a, 0x1f, 0xab, 0x0c, 0xe7, - 0x39, 0x56, 0xbf, 0x3a, 0x64, 0x58, 0x8c, 0x6a, 0x5d, 0x8f, 0xbe, 0x64, 0xa0, 0xb0, 0x06, 0xfd, - 0xd3, 0x9e, 0x5c, 0x4c, 0x76, 0xce, 0x7b, 0x72, 0x69, 0x0d, 0x2e, 0xcf, 0x7b, 0x72, 0xb9, 0xf7, - 0xf1, 0xff, 0x7f, 0x95, 0xd1, 0xbf, 0x8f, 0x2d, 0xf4, 0xdf, 0x63, 0x0b, 0xbd, 0x7a, 0x6c, 0xa1, - 0xdf, 0x5e, 0xb7, 0x72, 0x20, 0xbb, 0xfe, 0xbc, 0x4b, 0x4d, 0x6b, 0xd5, 0xb5, 0x56, 0x6c, 0xe8, - 0xdf, 0x14, 0xd9, 0xe7, 0x8b, 0x37, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc1, 0xc1, 0x36, 0x89, 0x46, - 0x06, 0x00, 0x00, + // 800 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x4d, 0x8f, 0xe3, 0x44, + 0x10, 0x4d, 0x3b, 0xce, 0x87, 0x2b, 0x1f, 0x58, 0xad, 0xd9, 0x21, 0x0a, 0x52, 0x88, 0xbc, 0x2c, + 0x44, 0xb0, 0x0a, 0x5a, 0x03, 0xc3, 0x2e, 0x08, 0x89, 0xcd, 0x6c, 0x46, 0x19, 0x85, 0x64, 0x47, + 0xde, 0x20, 0xb8, 0x45, 0x3d, 0x71, 0x6f, 0x62, 0x39, 0xfe, 0xc0, 0xee, 0xc9, 0xae, 0xff, 0x06, + 0x27, 0xae, 0x70, 0xe2, 0xc2, 0x2f, 0xe0, 0xc2, 0x91, 0x23, 0x47, 0x8e, 0x68, 0xf8, 0x23, 0xa8, + 0xdb, 0x1d, 0xc7, 0xd6, 0xcc, 0x48, 0xec, 0x29, 0xfd, 0xaa, 0x5f, 0x95, 0xab, 0x5e, 0xbf, 0xee, + 0x00, 0xa6, 0xfe, 0x2a, 0x4a, 0x42, 0xe6, 0x04, 0x7e, 0x78, 0x39, 0x0c, 0xa3, 0x80, 0x05, 0xb8, + 0x99, 0x8f, 0x75, 0x8f, 0xd6, 0xc1, 0x3a, 0x10, 0x1b, 0x1f, 0xf3, 0x55, 0xca, 0xe9, 0xbe, 0x15, + 0x5d, 0xc5, 0x4c, 0x2c, 0xd3, 0x80, 0xf1, 0x39, 0xb4, 0xc7, 0x59, 0xda, 0x8c, 0x32, 0x82, 0xef, + 0x41, 0xd5, 0xa5, 0xc9, 0xd2, 0xb1, 0x3b, 0xa8, 0x8f, 0x06, 0xaa, 0x55, 0x71, 0x69, 0x72, 0x6e, + 0xe3, 0x36, 0x28, 0xce, 0xae, 0xa3, 0xf4, 0xd1, 0xa0, 0x69, 0x29, 0xce, 0xce, 0x70, 0xa0, 0x7e, + 0xe6, 0x6c, 0xe9, 0xb9, 0xff, 0x32, 0xf8, 0x9f, 0x29, 0xf8, 0x04, 0xaa, 0x1e, 0x65, 0x9b, 0xc0, + 0xee, 0x94, 0xfb, 0x68, 0xd0, 0x36, 0x7b, 0xc3, 0xc2, 0x14, 0x85, 0x3e, 0x36, 0x81, 0x6d, 0x49, + 0xb6, 0xf1, 0x33, 0x82, 0x36, 0xff, 0xd6, 0x33, 0x67, 0xc5, 0x77, 0x49, 0x94, 0xe0, 0xaf, 0xa0, + 0xf2, 0xd2, 0xd9, 0xd2, 0xb8, 0x83, 0xfa, 0xe5, 0x41, 0xc3, 0xfc, 0xa0, 0x58, 0xa9, 0x48, 0x16, + 0x30, 0x1e, 0xfb, 0x2c, 0x4a, 0xac, 0x34, 0xab, 0x7b, 0x01, 0x70, 0x08, 0x62, 0x1d, 0xca, 0x2e, + 0x4d, 0x44, 0xef, 0x9a, 0xc5, 0x97, 0xf8, 0x21, 0x54, 0x76, 0x64, 0x7b, 0x45, 0x45, 0xf3, 0x0d, + 0xf3, 0xf8, 0x66, 0x79, 0x3e, 0xb7, 0x95, 0x92, 0xbe, 0x50, 0x1e, 0x23, 0xe3, 0x37, 0x04, 0xb5, + 0x67, 0x84, 0x91, 0x29, 0x2d, 0xd4, 0x6b, 0xa6, 0xf5, 0x0e, 0x93, 0x2b, 0x6f, 0x32, 0x39, 0xbe, + 0x0f, 0xad, 0x55, 0x44, 0x09, 0xdf, 0x59, 0x32, 0xc7, 0xa3, 0x42, 0x38, 0xd5, 0x6a, 0xee, 0x83, + 0x0b, 0xc7, 0xa3, 0xf8, 0x5d, 0x68, 0xbc, 0x22, 0xf1, 0x92, 0xbe, 0x0e, 0x83, 0x98, 0xda, 0x1d, + 0xb5, 0x8f, 0x06, 0x75, 0x0b, 0x5e, 0x91, 0x78, 0x9c, 0x46, 0x30, 0x06, 0x75, 0x43, 0xe2, 0x4d, + 0xa7, 0x22, 0x1a, 0x12, 0x6b, 0xe3, 0x0f, 0x04, 0xad, 0x29, 0x4d, 0x72, 0x92, 0x3e, 0x01, 0xd5, + 0xa5, 0xc9, 0x5e, 0xd1, 0x07, 0xc5, 0x0e, 0x0b, 0x54, 0x8e, 0xa4, 0x9e, 0x22, 0x05, 0xbf, 0x07, + 0xed, 0xd5, 0x55, 0x14, 0x51, 0x9f, 0x2d, 0xa5, 0x0f, 0x14, 0xd9, 0x67, 0x1a, 0x9d, 0x72, 0x3b, + 0x74, 0xe7, 0xa0, 0x65, 0x89, 0x79, 0x8d, 0xd4, 0x54, 0xa3, 0x8f, 0x8a, 0x9a, 0xdf, 0x2b, 0x36, + 0x20, 0xb5, 0xcd, 0x4b, 0xfe, 0x3b, 0x02, 0x6d, 0x46, 0x62, 0x46, 0x23, 0x2e, 0xfa, 0xd7, 0xa0, + 0x85, 0x5b, 0xe2, 0xf8, 0x8c, 0xbe, 0x66, 0xa2, 0x6c, 0xc3, 0xec, 0x17, 0x4b, 0x64, 0xdc, 0x8b, + 0x3d, 0x6f, 0x52, 0xb2, 0x0e, 0x49, 0xf8, 0x11, 0xa8, 0xdc, 0x1d, 0xf2, 0xfb, 0xef, 0xdc, 0x91, + 0xcc, 0x0f, 0x7f, 0x52, 0xb2, 0x04, 0x15, 0x0f, 0xa1, 0xec, 0x7a, 0xb1, 0x38, 0x95, 0x86, 0xd9, + 0xbd, 0x23, 0x63, 0xea, 0xc5, 0x93, 0x92, 0xc5, 0x89, 0x23, 0x0d, 0x6a, 0x97, 0x64, 0xe5, 0x52, + 0xdf, 0x36, 0x8e, 0x00, 0xdf, 0x6c, 0xc8, 0xb8, 0x0f, 0xad, 0xc2, 0x97, 0xf8, 0xd9, 0x85, 0x84, + 0x6d, 0xa4, 0x39, 0xc5, 0xda, 0xf8, 0x01, 0x9a, 0xf9, 0xe2, 0xf8, 0x18, 0xaa, 0x3b, 0xea, 0xdb, + 0x41, 0x24, 0x59, 0x12, 0xe5, 0xae, 0xa5, 0x22, 0xe2, 0xf2, 0x5a, 0x1e, 0x43, 0x35, 0xa2, 0x6b, + 0x27, 0xf0, 0x45, 0xdf, 0x9a, 0x25, 0x11, 0xee, 0x42, 0x9d, 0xfa, 0x76, 0x18, 0x38, 0x3e, 0x13, + 0x26, 0xd2, 0xac, 0x0c, 0x1b, 0xbf, 0x28, 0xa0, 0x4b, 0x97, 0x52, 0xfb, 0x34, 0xf0, 0x19, 0xf5, + 0x19, 0x9e, 0x40, 0xdd, 0xa3, 0x8c, 0xd8, 0x84, 0x11, 0xe9, 0x9a, 0x87, 0xb7, 0xfa, 0x3a, 0xcb, + 0x18, 0xce, 0x24, 0x3d, 0x35, 0x4f, 0x96, 0x8d, 0x3b, 0x50, 0x5b, 0xa5, 0x14, 0xf9, 0x5c, 0xec, + 0x21, 0x3e, 0x01, 0xf0, 0xc4, 0xac, 0xdc, 0x59, 0x52, 0xe8, 0xb7, 0xef, 0x10, 0xda, 0xd2, 0xbc, + 0xcc, 0x0e, 0xe9, 0xdb, 0xa3, 0x66, 0x6f, 0xcf, 0x03, 0x68, 0xaf, 0x9c, 0x70, 0x43, 0x23, 0x2e, + 0xb3, 0xa8, 0x95, 0xde, 0x86, 0xd6, 0x21, 0x3a, 0xa5, 0x49, 0xf7, 0x4b, 0x68, 0x15, 0x7a, 0xbc, + 0xe5, 0x6d, 0x38, 0xca, 0xfb, 0xb4, 0x99, 0x33, 0xe4, 0x87, 0x3f, 0xa2, 0x4c, 0xa4, 0xec, 0x2a, + 0xe3, 0x06, 0xd4, 0xbe, 0x9d, 0x4f, 0xe7, 0xcf, 0xbf, 0x9b, 0xeb, 0x25, 0xdc, 0x02, 0xed, 0xe2, + 0x9b, 0xa7, 0xe7, 0xf3, 0xc5, 0xf8, 0xfb, 0x85, 0x8e, 0x70, 0x1b, 0xe0, 0xe9, 0xf8, 0xc5, 0x23, + 0xf3, 0xf1, 0xf2, 0x74, 0x61, 0xe9, 0xca, 0x1e, 0x3f, 0x31, 0x05, 0x2e, 0x4b, 0x6c, 0x7e, 0x76, + 0x22, 0xb0, 0xca, 0x6b, 0xbd, 0x98, 0x7d, 0x2a, 0x40, 0x65, 0x0f, 0xc6, 0xa7, 0x23, 0xbd, 0x9a, + 0xed, 0x9c, 0x8d, 0xf4, 0xda, 0x1e, 0x3c, 0x3f, 0x1b, 0xe9, 0xf5, 0xd1, 0xfb, 0x7f, 0xff, 0x5a, + 0x47, 0x7f, 0x5e, 0xf7, 0xd0, 0x5f, 0xd7, 0x3d, 0xf4, 0xcf, 0x75, 0x0f, 0xfd, 0xf4, 0x6f, 0xaf, + 0x04, 0x7a, 0x10, 0xad, 0x87, 0xcc, 0x71, 0x77, 0x43, 0x77, 0x27, 0xfe, 0x08, 0x2e, 0xab, 0xe2, + 0xe7, 0x93, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x9a, 0xc5, 0x0f, 0x28, 0x5a, 0x06, 0x00, 0x00, } func (m *EncryptionMeta) Marshal() (dAtA []byte, err error) { @@ -965,6 +974,13 @@ func (m *DataKey) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.Hash) > 0 { + i -= len(m.Hash) + copy(dAtA[i:], m.Hash) + i = encodeVarintEncryptionpb(dAtA, i, uint64(len(m.Hash))) + i-- + dAtA[i] = 0x2a + } if m.WasExposed { i-- if m.WasExposed { @@ -1443,6 +1459,10 @@ func (m *DataKey) Size() (n int) { if m.WasExposed { n += 2 } + l = len(m.Hash) + if l > 0 { + n += 1 + l + sovEncryptionpb(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -2158,6 +2178,40 @@ func (m *DataKey) Unmarshal(dAtA []byte) error { } } m.WasExposed = bool(v != 0) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncryptionpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthEncryptionpb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthEncryptionpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...) + if m.Hash == nil { + m.Hash = []byte{} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEncryptionpb(dAtA[iNdEx:]) diff --git a/proto/encryptionpb.proto b/proto/encryptionpb.proto index 719d37f..f15504c 100644 --- a/proto/encryptionpb.proto +++ b/proto/encryptionpb.proto @@ -60,6 +60,8 @@ message DataKey { uint64 creation_time = 3; // A flag for the key have ever been exposed. bool was_exposed = 4; + // A sequence of hash value of key. Only used in sm4 method. + bytes hash = 5; } message KeyDictionary { diff --git a/scripts/proto.lock b/scripts/proto.lock index a6f4a79..1e33caa 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -4417,6 +4417,11 @@ "id": 4, "name": "was_exposed", "type": "bool" + }, + { + "id": 5, + "name": "hash", + "type": "bytes" } ] }, -- Gitee