// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.3
// 	protoc        v6.31.1
// source: subnet.proto

package v1

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// Enum value maps for EcdsaCurve.
var (
	EcdsaCurve_name = map[int32]string{
		0: "ECDSA_CURVE_UNSPECIFIED",
		1: "ECDSA_CURVE_SECP256K1",
	}
	EcdsaCurve_value = map[string]int32{
		"ECDSA_CURVE_UNSPECIFIED": 0,
		"ECDSA_CURVE_SECP256K1":   1,
	}
)

// Enum value maps for NiDkgTag.
var (
	NiDkgTag_name = map[int32]string{
		0: "NI_DKG_TAG_UNSPECIFIED",
		1: "NI_DKG_TAG_LOW_THRESHOLD",
		2: "NI_DKG_TAG_HIGH_THRESHOLD",
	}
	NiDkgTag_value = map[string]int32{
		"NI_DKG_TAG_UNSPECIFIED":    0,
		"NI_DKG_TAG_LOW_THRESHOLD":  1,
		"NI_DKG_TAG_HIGH_THRESHOLD": 2,
	}
)

// Enum value maps for AlgorithmId.
var (
	AlgorithmId_name = map[int32]string{
		0:  "ALGORITHM_ID_UNSPECIFIED",
		1:  "ALGORITHM_ID_MULTI_BLS12_381",
		2:  "ALGORITHM_ID_THRES_BLS12_381",
		3:  "ALGORITHM_ID_SCHNORR_SECP256K1",
		4:  "ALGORITHM_ID_STATIC_DH_SECP256K1",
		5:  "ALGORITHM_ID_HASH_SHA256",
		6:  "ALGORITHM_ID_TLS",
		7:  "ALGORITHM_ID_ED25519",
		8:  "ALGORITHM_ID_SECP256K1",
		9:  "ALGORITHM_ID_GROTH20_BLS12_381",
		10: "ALGORITHM_ID_NIDKG_GROTH20_BLS12_381",
		11: "ALGORITHM_ID_ECDSA_P256",
		12: "ALGORITHM_ID_ECDSA_SECP_256K1",
		13: "ALGORITHM_ID_IC_CANISTER_SIGNATURE",
		14: "ALGORITHM_ID_RSA_SHA256",
		15: "ALGORITHM_ID_THRESHOLD_ECDSA_SECP_256K1",
		16: "ALGORITHM_ID_MEGA_SECP_256K1",
		17: "ALGORITHM_ID_THRESHOLD_ECDSA_SECP_256R1",
		18: "ALGORITHM_ID_THRESHOLD_SCHNORR_BIP340",
		19: "ALGORITHM_ID_THRESHOLD_ED25519",
	}
	AlgorithmId_value = map[string]int32{
		"ALGORITHM_ID_UNSPECIFIED":                0,
		"ALGORITHM_ID_MULTI_BLS12_381":            1,
		"ALGORITHM_ID_THRES_BLS12_381":            2,
		"ALGORITHM_ID_SCHNORR_SECP256K1":          3,
		"ALGORITHM_ID_STATIC_DH_SECP256K1":        4,
		"ALGORITHM_ID_HASH_SHA256":                5,
		"ALGORITHM_ID_TLS":                        6,
		"ALGORITHM_ID_ED25519":                    7,
		"ALGORITHM_ID_SECP256K1":                  8,
		"ALGORITHM_ID_GROTH20_BLS12_381":          9,
		"ALGORITHM_ID_NIDKG_GROTH20_BLS12_381":    10,
		"ALGORITHM_ID_ECDSA_P256":                 11,
		"ALGORITHM_ID_ECDSA_SECP_256K1":           12,
		"ALGORITHM_ID_IC_CANISTER_SIGNATURE":      13,
		"ALGORITHM_ID_RSA_SHA256":                 14,
		"ALGORITHM_ID_THRESHOLD_ECDSA_SECP_256K1": 15,
		"ALGORITHM_ID_MEGA_SECP_256K1":            16,
		"ALGORITHM_ID_THRESHOLD_ECDSA_SECP_256R1": 17,
		"ALGORITHM_ID_THRESHOLD_SCHNORR_BIP340":   18,
		"ALGORITHM_ID_THRESHOLD_ED25519":          19,
	}
)

// Enum value maps for IDkgTranscriptOperation.
var (
	IDkgTranscriptOperation_name = map[int32]string{
		0: "I_DKG_TRANSCRIPT_OPERATION_UNSPECIFIED",
		1: "I_DKG_TRANSCRIPT_OPERATION_RANDOM",
		2: "I_DKG_TRANSCRIPT_OPERATION_RESHARE_OF_MASKED",
		3: "I_DKG_TRANSCRIPT_OPERATION_RESHARE_OF_UNMASKED",
		4: "I_DKG_TRANSCRIPT_OPERATION_UNMASKED_TIMES_MASKED",
		5: "I_DKG_TRANSCRIPT_OPERATION_RANDOM_UNMASKED",
	}
	IDkgTranscriptOperation_value = map[string]int32{
		"I_DKG_TRANSCRIPT_OPERATION_UNSPECIFIED":           0,
		"I_DKG_TRANSCRIPT_OPERATION_RANDOM":                1,
		"I_DKG_TRANSCRIPT_OPERATION_RESHARE_OF_MASKED":     2,
		"I_DKG_TRANSCRIPT_OPERATION_RESHARE_OF_UNMASKED":   3,
		"I_DKG_TRANSCRIPT_OPERATION_UNMASKED_TIMES_MASKED": 4,
		"I_DKG_TRANSCRIPT_OPERATION_RANDOM_UNMASKED":       5,
	}
)

// Enum value maps for SubnetType.
var (
	SubnetType_name = map[int32]string{
		0: "SUBNET_TYPE_UNSPECIFIED",
		1: "SUBNET_TYPE_APPLICATION",
		2: "SUBNET_TYPE_SYSTEM",
		4: "SUBNET_TYPE_VERIFIED_APPLICATION",
	}
	SubnetType_value = map[string]int32{
		"SUBNET_TYPE_UNSPECIFIED":          0,
		"SUBNET_TYPE_APPLICATION":          1,
		"SUBNET_TYPE_SYSTEM":               2,
		"SUBNET_TYPE_VERIFIED_APPLICATION": 4,
	}
)

// Enum value maps for SchnorrAlgorithm.
var (
	SchnorrAlgorithm_name = map[int32]string{
		0: "SCHNORR_ALGORITHM_UNSPECIFIED",
		1: "SCHNORR_ALGORITHM_BIP340SECP256K1",
		2: "SCHNORR_ALGORITHM_ED25519",
	}
	SchnorrAlgorithm_value = map[string]int32{
		"SCHNORR_ALGORITHM_UNSPECIFIED":     0,
		"SCHNORR_ALGORITHM_BIP340SECP256K1": 1,
		"SCHNORR_ALGORITHM_ED25519":         2,
	}
)

var (
	file_subnet_proto_rawDescOnce sync.Once
	file_subnet_proto_rawDescData = file_subnet_proto_rawDesc
)

var File_subnet_proto protoreflect.FileDescriptor

var file_subnet_proto_depIdxs = []int32{
	30, // 0: registry.subnet.v1.SubnetRecord.gossip_config:type_name -> registry.subnet.v1.GossipConfig
	4,  // 1: registry.subnet.v1.SubnetRecord.subnet_type:type_name -> registry.subnet.v1.SubnetType
	31, // 2: registry.subnet.v1.SubnetRecord.features:type_name -> registry.subnet.v1.SubnetFeatures
	32, // 3: registry.subnet.v1.SubnetRecord.ecdsa_config:type_name -> registry.subnet.v1.EcdsaConfig
	36, // 4: registry.subnet.v1.SubnetRecord.chain_key_config:type_name -> registry.subnet.v1.ChainKeyConfig
	0,  // 5: registry.subnet.v1.EcdsaKeyId.curve:type_name -> registry.subnet.v1.EcdsaCurve
	7,  // 6: registry.subnet.v1.EcdsaInitialization.key_id:type_name -> registry.subnet.v1.EcdsaKeyId
	26, // 7: registry.subnet.v1.EcdsaInitialization.dealings:type_name -> registry.subnet.v1.InitialIDkgDealings
	13, // 8: registry.subnet.v1.CatchUpPackageContents.initial_ni_dkg_transcript_low_threshold:type_name -> registry.subnet.v1.InitialNiDkgTranscriptRecord
	13, // 9: registry.subnet.v1.CatchUpPackageContents.initial_ni_dkg_transcript_high_threshold:type_name -> registry.subnet.v1.InitialNiDkgTranscriptRecord
	10, // 10: registry.subnet.v1.CatchUpPackageContents.registry_store_uri:type_name -> registry.subnet.v1.RegistryStoreUri
	8,  // 11: registry.subnet.v1.CatchUpPackageContents.ecdsa_initializations:type_name -> registry.subnet.v1.EcdsaInitialization
	1,  // 12: registry.subnet.v1.NiDkgId.dkg_tag:type_name -> registry.subnet.v1.NiDkgTag
	37, // 13: registry.subnet.v1.NiDkgId.remote_target_id:type_name -> google.protobuf.BytesValue
	12, // 14: registry.subnet.v1.InitialNiDkgTranscriptRecord.id:type_name -> registry.subnet.v1.NiDkgId
	14, // 15: registry.subnet.v1.SubnetId.principal_id:type_name -> registry.subnet.v1.PrincipalId
	15, // 16: registry.subnet.v1.IDkgTranscriptId.subnet_id:type_name -> registry.subnet.v1.SubnetId
	25, // 17: registry.subnet.v1.VerifiedIDkgDealing.signed_dealing_tuple:type_name -> registry.subnet.v1.IDkgSignedDealingTuple
	22, // 18: registry.subnet.v1.VerifiedIDkgDealing.support_tuples:type_name -> registry.subnet.v1.SignatureTuple
	14, // 19: registry.subnet.v1.NodeId.principal_id:type_name -> registry.subnet.v1.PrincipalId
	2,  // 20: registry.subnet.v1.PublicKey.algorithm:type_name -> registry.subnet.v1.AlgorithmId
	37, // 21: registry.subnet.v1.PublicKey.proof_data:type_name -> google.protobuf.BytesValue
	38, // 22: registry.subnet.v1.PublicKey.timestamp:type_name -> google.protobuf.UInt64Value
	16, // 23: registry.subnet.v1.IDkgTranscript.transcript_id:type_name -> registry.subnet.v1.IDkgTranscriptId
	18, // 24: registry.subnet.v1.IDkgTranscript.dealers:type_name -> registry.subnet.v1.NodeId
	18, // 25: registry.subnet.v1.IDkgTranscript.receivers:type_name -> registry.subnet.v1.NodeId
	17, // 26: registry.subnet.v1.IDkgTranscript.verified_dealings:type_name -> registry.subnet.v1.VerifiedIDkgDealing
	2,  // 27: registry.subnet.v1.IDkgTranscript.algorithm_id:type_name -> registry.subnet.v1.AlgorithmId
	18, // 28: registry.subnet.v1.DealerTuple.dealer_id:type_name -> registry.subnet.v1.NodeId
	18, // 29: registry.subnet.v1.SignatureTuple.signer:type_name -> registry.subnet.v1.NodeId
	16, // 30: registry.subnet.v1.IDkgTranscriptParams.transcript_id:type_name -> registry.subnet.v1.IDkgTranscriptId
	21, // 31: registry.subnet.v1.IDkgTranscriptParams.dealers:type_name -> registry.subnet.v1.DealerTuple
	18, // 32: registry.subnet.v1.IDkgTranscriptParams.receivers:type_name -> registry.subnet.v1.NodeId
	2,  // 33: registry.subnet.v1.IDkgTranscriptParams.algorithm_id:type_name -> registry.subnet.v1.AlgorithmId
	3,  // 34: registry.subnet.v1.IDkgTranscriptParams.idkg_transcript_operation:type_name -> registry.subnet.v1.IDkgTranscriptOperation
	20, // 35: registry.subnet.v1.IDkgTranscriptParams.idkg_transcript_operation_args:type_name -> registry.subnet.v1.IDkgTranscript
	16, // 36: registry.subnet.v1.IDkgDealing.transcript_id:type_name -> registry.subnet.v1.IDkgTranscriptId
	18, // 37: registry.subnet.v1.IDkgSignedDealingTuple.dealer:type_name -> registry.subnet.v1.NodeId
	24, // 38: registry.subnet.v1.IDkgSignedDealingTuple.dealing:type_name -> registry.subnet.v1.IDkgDealing
	23, // 39: registry.subnet.v1.InitialIDkgDealings.params:type_name -> registry.subnet.v1.IDkgTranscriptParams
	25, // 40: registry.subnet.v1.InitialIDkgDealings.signed_dealings:type_name -> registry.subnet.v1.IDkgSignedDealingTuple
	16, // 41: registry.subnet.v1.IDkgComplaint.transcript_id:type_name -> registry.subnet.v1.IDkgTranscriptId
	18, // 42: registry.subnet.v1.IDkgComplaint.dealer:type_name -> registry.subnet.v1.NodeId
	16, // 43: registry.subnet.v1.IDkgOpening.transcript_id:type_name -> registry.subnet.v1.IDkgTranscriptId
	18, // 44: registry.subnet.v1.IDkgOpening.dealer:type_name -> registry.subnet.v1.NodeId
	14, // 45: registry.subnet.v1.ExtendedDerivationPath.caller:type_name -> registry.subnet.v1.PrincipalId
	7,  // 46: registry.subnet.v1.EcdsaConfig.key_ids:type_name -> registry.subnet.v1.EcdsaKeyId
	5,  // 47: registry.subnet.v1.SchnorrKeyId.algorithm:type_name -> registry.subnet.v1.SchnorrAlgorithm
	7,  // 48: registry.subnet.v1.MasterPublicKeyId.ecdsa:type_name -> registry.subnet.v1.EcdsaKeyId
	33, // 49: registry.subnet.v1.MasterPublicKeyId.schnorr:type_name -> registry.subnet.v1.SchnorrKeyId
	34, // 50: registry.subnet.v1.KeyConfig.key_id:type_name -> registry.subnet.v1.MasterPublicKeyId
	35, // 51: registry.subnet.v1.ChainKeyConfig.key_configs:type_name -> registry.subnet.v1.KeyConfig
	52, // [52:52] is the sub-list for method output_type
	52, // [52:52] is the sub-list for method input_type
	52, // [52:52] is the sub-list for extension type_name
	52, // [52:52] is the sub-list for extension extendee
	0,  // [0:52] is the sub-list for field type_name
}

var file_subnet_proto_enumTypes = make([]protoimpl.EnumInfo, 6)

var file_subnet_proto_goTypes = []any{
	(EcdsaCurve)(0),                      // 0: registry.subnet.v1.EcdsaCurve
	(NiDkgTag)(0),                        // 1: registry.subnet.v1.NiDkgTag
	(AlgorithmId)(0),                     // 2: registry.subnet.v1.AlgorithmId
	(IDkgTranscriptOperation)(0),         // 3: registry.subnet.v1.IDkgTranscriptOperation
	(SubnetType)(0),                      // 4: registry.subnet.v1.SubnetType
	(SchnorrAlgorithm)(0),                // 5: registry.subnet.v1.SchnorrAlgorithm
	(*SubnetRecord)(nil),                 // 6: registry.subnet.v1.SubnetRecord
	(*EcdsaKeyId)(nil),                   // 7: registry.subnet.v1.EcdsaKeyId
	(*EcdsaInitialization)(nil),          // 8: registry.subnet.v1.EcdsaInitialization
	(*CatchUpPackageContents)(nil),       // 9: registry.subnet.v1.CatchUpPackageContents
	(*RegistryStoreUri)(nil),             // 10: registry.subnet.v1.RegistryStoreUri
	(*SubnetListRecord)(nil),             // 11: registry.subnet.v1.SubnetListRecord
	(*NiDkgId)(nil),                      // 12: registry.subnet.v1.NiDkgId
	(*InitialNiDkgTranscriptRecord)(nil), // 13: registry.subnet.v1.InitialNiDkgTranscriptRecord
	(*PrincipalId)(nil),                  // 14: registry.subnet.v1.PrincipalId
	(*SubnetId)(nil),                     // 15: registry.subnet.v1.SubnetId
	(*IDkgTranscriptId)(nil),             // 16: registry.subnet.v1.IDkgTranscriptId
	(*VerifiedIDkgDealing)(nil),          // 17: registry.subnet.v1.VerifiedIDkgDealing
	(*NodeId)(nil),                       // 18: registry.subnet.v1.NodeId
	(*PublicKey)(nil),                    // 19: registry.subnet.v1.PublicKey
	(*IDkgTranscript)(nil),               // 20: registry.subnet.v1.IDkgTranscript
	(*DealerTuple)(nil),                  // 21: registry.subnet.v1.DealerTuple
	(*SignatureTuple)(nil),               // 22: registry.subnet.v1.SignatureTuple
	(*IDkgTranscriptParams)(nil),         // 23: registry.subnet.v1.IDkgTranscriptParams
	(*IDkgDealing)(nil),                  // 24: registry.subnet.v1.IDkgDealing
	(*IDkgSignedDealingTuple)(nil),       // 25: registry.subnet.v1.IDkgSignedDealingTuple
	(*InitialIDkgDealings)(nil),          // 26: registry.subnet.v1.InitialIDkgDealings
	(*IDkgComplaint)(nil),                // 27: registry.subnet.v1.IDkgComplaint
	(*IDkgOpening)(nil),                  // 28: registry.subnet.v1.IDkgOpening
	(*ExtendedDerivationPath)(nil),       // 29: registry.subnet.v1.ExtendedDerivationPath
	(*GossipConfig)(nil),                 // 30: registry.subnet.v1.GossipConfig
	(*SubnetFeatures)(nil),               // 31: registry.subnet.v1.SubnetFeatures
	(*EcdsaConfig)(nil),                  // 32: registry.subnet.v1.EcdsaConfig
	(*SchnorrKeyId)(nil),                 // 33: registry.subnet.v1.SchnorrKeyId
	(*MasterPublicKeyId)(nil),            // 34: registry.subnet.v1.MasterPublicKeyId
	(*KeyConfig)(nil),                    // 35: registry.subnet.v1.KeyConfig
	(*ChainKeyConfig)(nil),               // 36: registry.subnet.v1.ChainKeyConfig
	(*wrapperspb.BytesValue)(nil),        // 37: google.protobuf.BytesValue
	(*wrapperspb.UInt64Value)(nil),       // 38: google.protobuf.UInt64Value
}

var file_subnet_proto_msgTypes = make([]protoimpl.MessageInfo, 31)

var file_subnet_proto_rawDesc = []byte{
	0x0a, 0x0c, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12,
	0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e,
	0x76, 0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x22, 0x83, 0x0b, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x52, 0x65, 0x63,
	0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69,
	0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73,
	0x68, 0x69, 0x70, 0x12, 0x40, 0x0a, 0x1d, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65,
	0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x6d, 0x61, 0x78, 0x49,
	0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x4d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x64, 0x65,
	0x6c, 0x61, 0x79, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x0f, 0x75, 0x6e, 0x69, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x69, 0x6c, 0x6c, 0x69,
	0x73, 0x12, 0x3d, 0x0a, 0x1b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x74,
	0x61, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x4e,
	0x6f, 0x74, 0x61, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73,
	0x12, 0x2c, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x76, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e,
	0x0a, 0x13, 0x64, 0x6b, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x6c,
	0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x64, 0x6b, 0x67,
	0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x45,
	0x0a, 0x0d, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
	0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
	0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x73, 0x73, 0x69,
	0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61,
	0x73, 0x5f, 0x6e, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x41, 0x73, 0x4e, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x6e, 0x65,
	0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x72,
	0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76,
	0x31, 0x2e, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x75,
	0x62, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x64, 0x6b, 0x67, 0x5f,
	0x64, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f,
	0x63, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x64, 0x6b, 0x67, 0x44, 0x65, 0x61,
	0x6c, 0x69, 0x6e, 0x67, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1b, 0x0a,
	0x09, 0x69, 0x73, 0x5f, 0x68, 0x61, 0x6c, 0x74, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x08, 0x69, 0x73, 0x48, 0x61, 0x6c, 0x74, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x1e, 0x6d, 0x61,
	0x78, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x12, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x1a, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x33,
	0x0a, 0x16, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x79, 0x6c,
	0x6f, 0x61, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13,
	0x6d, 0x61, 0x78, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53,
	0x69, 0x7a, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72,
	0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x6d, 0x61, 0x78, 0x49, 0x6e,
	0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x65, 0x72, 0x4d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x73, 0x74,
	0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x6f, 0x75,
	0x6e, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x73,
	0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x65, 0x72, 0x52, 0x6f, 0x75, 0x6e,
	0x64, 0x12, 0x48, 0x0a, 0x21, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c,
	0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1d, 0x6d, 0x61,
	0x78, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x65, 0x72,
	0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e,
	0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e,
	0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x73, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x6d,
	0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x61, 0x6e,
	0x69, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x6d, 0x61,
	0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x43, 0x61, 0x6e, 0x69, 0x73, 0x74, 0x65,
	0x72, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e,
	0x6c, 0x79, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x11, 0x73, 0x73, 0x68, 0x52, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x41, 0x63, 0x63, 0x65,
	0x73, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x73, 0x68, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70,
	0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x73,
	0x73, 0x68, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x42,
	0x0a, 0x0c, 0x65, 0x63, 0x64, 0x73, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1b,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e,
	0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x63, 0x64, 0x73, 0x61, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x65, 0x63, 0x64, 0x73, 0x61, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x12, 0x2b, 0x0a, 0x12, 0x68, 0x61, 0x6c, 0x74, 0x5f, 0x61, 0x74, 0x5f, 0x63, 0x75,
	0x70, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f,
	0x68, 0x61, 0x6c, 0x74, 0x41, 0x74, 0x43, 0x75, 0x70, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12,
	0x51, 0x0a, 0x10, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x72, 0x65, 0x67, 0x69,
	0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43,
	0x68, 0x61, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52,
	0x0e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88,
	0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79,
	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08,
	0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x52,
	0x0d, 0x69, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x52, 0x16,
	0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x64, 0x6b, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x6e,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x20, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f,
	0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f,
	0x73, 0x6f, 0x66, 0x74, 0x5f, 0x63, 0x61, 0x70, 0x22, 0x56, 0x0a, 0x0a, 0x45, 0x63, 0x64, 0x73,
	0x61, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x05, 0x63, 0x75, 0x72, 0x76, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
	0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x63, 0x64, 0x73, 0x61,
	0x43, 0x75, 0x72, 0x76, 0x65, 0x52, 0x05, 0x63, 0x75, 0x72, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x22, 0x91, 0x01, 0x0a, 0x13, 0x45, 0x63, 0x64, 0x73, 0x61, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61,
	0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x6b, 0x65, 0x79, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73,
	0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x63,
	0x64, 0x73, 0x61, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x52, 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x12,
	0x43, 0x0a, 0x08, 0x64, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62,
	0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x44,
	0x6b, 0x67, 0x44, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x64, 0x65, 0x61, 0x6c,
	0x69, 0x6e, 0x67, 0x73, 0x22, 0xa7, 0x04, 0x0a, 0x16, 0x43, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70,
	0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12,
	0x85, 0x01, 0x0a, 0x27, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x69, 0x5f, 0x64,
	0x6b, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x6c, 0x6f,
	0x77, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x30, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62,
	0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x4e, 0x69,
	0x44, 0x6b, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x63,
	0x6f, 0x72, 0x64, 0x52, 0x22, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x4e, 0x69, 0x44, 0x6b,
	0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4c, 0x6f, 0x77, 0x54, 0x68,
	0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x87, 0x01, 0x0a, 0x28, 0x69, 0x6e, 0x69, 0x74,
	0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x69, 0x5f, 0x64, 0x6b, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73,
	0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x72, 0x65, 0x67,
	0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e,
	0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x4e, 0x69, 0x44, 0x6b, 0x67, 0x54, 0x72, 0x61, 0x6e,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x23, 0x69, 0x6e,
	0x69, 0x74, 0x69, 0x61, 0x6c, 0x4e, 0x69, 0x44, 0x6b, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x48, 0x69, 0x67, 0x68, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c,
	0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a,
	0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x52, 0x0a, 0x12,
	0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x75,
	0x72, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73,
	0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65,
	0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x55, 0x72, 0x69, 0x52, 0x10,
	0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x55, 0x72, 0x69,
	0x12, 0x5c, 0x0a, 0x15, 0x65, 0x63, 0x64, 0x73, 0x61, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61,
	0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x27, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65,
	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x63, 0x64, 0x73, 0x61, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61,
	0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x65, 0x63, 0x64, 0x73, 0x61, 0x49,
	0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x63,
	0x0a, 0x10, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x55,
	0x72, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x75, 0x72, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69,
	0x73, 0x74, 0x72, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x56, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x22, 0x32, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x4c, 0x69, 0x73,
	0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6e, 0x65,
	0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74,
	0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0xf1, 0x01, 0x0a, 0x07, 0x4e, 0x69, 0x44, 0x6b,
	0x67, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x6c, 0x6f,
	0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x6e,
	0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x61, 0x6c, 0x65, 0x72,
	0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x35, 0x0a, 0x07, 0x64, 0x6b, 0x67, 0x5f, 0x74, 0x61,
	0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
	0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x69, 0x44,
	0x6b, 0x67, 0x54, 0x61, 0x67, 0x52, 0x06, 0x64, 0x6b, 0x67, 0x54, 0x61, 0x67, 0x12, 0x45, 0x0a,
	0x10, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67,
	0x65, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65,
	0x69, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x22, 0xea, 0x01, 0x0a, 0x1c,
	0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x4e, 0x69, 0x44, 0x6b, 0x67, 0x54, 0x72, 0x61, 0x6e,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2b, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73,
	0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x69,
	0x44, 0x6b, 0x67, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72,
	0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x68,
	0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69,
	0x74, 0x74, 0x65, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d,
	0x69, 0x74, 0x74, 0x65, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
	0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x0f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x12, 0x36, 0x0a, 0x17, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x73, 0x70,
	0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x15, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x73, 0x70, 0x54, 0x72,
	0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x1f, 0x0a, 0x0b, 0x50, 0x72, 0x69, 0x6e,
	0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x72, 0x61, 0x77, 0x22, 0x4e, 0x0a, 0x08, 0x53, 0x75, 0x62,
	0x6e, 0x65, 0x74, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70,
	0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x65,
	0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31,
	0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x52, 0x0b, 0x70, 0x72,
	0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x82, 0x01, 0x0a, 0x10, 0x49, 0x44,
	0x6b, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, 0x64, 0x12, 0x0e,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x39,
	0x0a, 0x09, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62,
	0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x49, 0x64, 0x52,
	0x08, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xae,
	0x02, 0x0a, 0x13, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x49, 0x44, 0x6b, 0x67, 0x44,
	0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x61, 0x6c, 0x65, 0x72,
	0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x65,
	0x61, 0x6c, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x5c, 0x0a, 0x14, 0x73, 0x69, 0x67,
	0x6e, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x75, 0x70, 0x6c,
	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
	0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x44, 0x6b,
	0x67, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x75,
	0x70, 0x6c, 0x65, 0x52, 0x12, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, 0x65, 0x61, 0x6c, 0x69,
	0x6e, 0x67, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x12, 0x49, 0x0a, 0x0e, 0x73, 0x75, 0x70, 0x70, 0x6f,
	0x72, 0x74, 0x5f, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x22, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65,
	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x54, 0x75,
	0x70, 0x6c, 0x65, 0x52, 0x0d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x75, 0x70, 0x6c,
	0x65, 0x73, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04,
	0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x0d, 0x64, 0x65,
	0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67,
	0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x22,
	0x4c, 0x0a, 0x06, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x70, 0x72, 0x69,
	0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1f, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65,
	0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64,
	0x52, 0x0b, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xf9, 0x01,
	0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74,
	0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73,
	0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c,
	0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x49, 0x64, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72,
	0x69, 0x74, 0x68, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a,
	0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09,
	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe0, 0x03, 0x0a, 0x0e, 0x49, 0x44,
	0x6b, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x49, 0x0a, 0x0d,
	0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73,
	0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x44, 0x6b, 0x67, 0x54, 0x72, 0x61,
	0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, 0x64, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x64, 0x65, 0x61, 0x6c, 0x65,
	0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73,
	0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f,
	0x64, 0x65, 0x49, 0x64, 0x52, 0x07, 0x64, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x73, 0x12, 0x38, 0x0a,
	0x09, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e,
	0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x09, 0x72, 0x65,
	0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x73,
	0x74, 0x72, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x11, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64,
	0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e,
	0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e,
	0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x49, 0x44, 0x6b, 0x67, 0x44,
	0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64,
	0x44, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x6e,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x42, 0x0a, 0x0c, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x5f, 0x69,
	0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
	0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x67,
	0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x49, 0x64, 0x52, 0x0b, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69,
	0x74, 0x68, 0x6d, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x61, 0x77, 0x5f, 0x74, 0x72, 0x61,
	0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72,
	0x61, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x69, 0x0a, 0x0b,
	0x44, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x64,
	0x65, 0x61, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74,
	0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x08, 0x64, 0x65, 0x61, 0x6c,
	0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x5f, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x65, 0x61, 0x6c,
	0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x62, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x69, 0x67,
	0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x65, 0x67, 0x69,
	0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4e,
	0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x0a,
	0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x97, 0x04, 0x0a, 0x14,
	0x49, 0x44, 0x6b, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x61,
	0x72, 0x61, 0x6d, 0x73, 0x12, 0x49, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65,
	0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31,
	0x2e, 0x49, 0x44, 0x6b, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49,
	0x64, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, 0x64, 0x12,
	0x39, 0x0a, 0x07, 0x64, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x1f, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e,
	0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x54, 0x75, 0x70, 0x6c,
	0x65, 0x52, 0x07, 0x64, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x72, 0x65,
	0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
	0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e,
	0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x09, 0x72, 0x65, 0x63, 0x65, 0x69,
	0x76, 0x65, 0x72, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
	0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f,
	0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
	0x42, 0x0a, 0x0c, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x5f, 0x69, 0x64, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
	0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x67, 0x6f, 0x72,
	0x69, 0x74, 0x68, 0x6d, 0x49, 0x64, 0x52, 0x0b, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68,
	0x6d, 0x49, 0x64, 0x12, 0x67, 0x0a, 0x19, 0x69, 0x64, 0x6b, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x6e,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
	0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x44, 0x6b, 0x67,
	0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x17, 0x69, 0x64, 0x6b, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x67, 0x0a, 0x1e,
	0x69, 0x64, 0x6b, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f,
	0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x07,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e,
	0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x44, 0x6b, 0x67, 0x54, 0x72,
	0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x1b, 0x69, 0x64, 0x6b, 0x67, 0x54, 0x72,
	0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x41, 0x72, 0x67, 0x73, 0x22, 0x79, 0x0a, 0x0b, 0x49, 0x44, 0x6b, 0x67, 0x44, 0x65, 0x61,
	0x6c, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65,
	0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31,
	0x2e, 0x49, 0x44, 0x6b, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49,
	0x64, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, 0x64, 0x12,
	0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x77, 0x5f, 0x64, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, 0x61, 0x77, 0x44, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67,
	0x22, 0xa5, 0x01, 0x0a, 0x16, 0x49, 0x44, 0x6b, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44,
	0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x64,
	0x65, 0x61, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x65,
	0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31,
	0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x06, 0x64, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x12,
	0x39, 0x0a, 0x07, 0x64, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1f, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e,
	0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x44, 0x6b, 0x67, 0x44, 0x65, 0x61, 0x6c, 0x69, 0x6e,
	0x67, 0x52, 0x07, 0x64, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69,
	0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73,
	0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xd6, 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x69,
	0x74, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x6b, 0x67, 0x44, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x73,
	0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x61,
	0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x72, 0x65, 0x67,
	0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e,
	0x49, 0x44, 0x6b, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x61,
	0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x53, 0x0a, 0x0f,
	0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x18,
	0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
	0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x44, 0x6b, 0x67, 0x53,
	0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x75, 0x70, 0x6c,
	0x65, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67,
	0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x08, 0x64, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67,
	0x73, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x49, 0x44, 0x6b, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x61,
	0x69, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x67,
	0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e,
	0x49, 0x44, 0x6b, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, 0x64,
	0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, 0x64, 0x12, 0x32,
	0x0a, 0x06, 0x64, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74,
	0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x06, 0x64, 0x65, 0x61, 0x6c,
	0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x61,
	0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x72, 0x61, 0x77, 0x43, 0x6f,
	0x6d, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x22, 0xad, 0x01, 0x0a, 0x0b, 0x49, 0x44, 0x6b, 0x67,
	0x4f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24,
	0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74,
	0x2e, 0x76, 0x31, 0x2e, 0x49, 0x44, 0x6b, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x49, 0x64, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x49, 0x64, 0x12, 0x32, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75,
	0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x06,
	0x64, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x77, 0x5f, 0x6f, 0x70,
	0x65, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, 0x61, 0x77,
	0x4f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x7a, 0x0a, 0x16, 0x45, 0x78, 0x74, 0x65, 0x6e,
	0x64, 0x65, 0x64, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x74,
	0x68, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62,
	0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c,
	0x49, 0x64, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65,
	0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0c, 0x52, 0x0e, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50,
	0x61, 0x74, 0x68, 0x22, 0xd4, 0x03, 0x0a, 0x0c, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x12, 0x40, 0x0a, 0x1d, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x72, 0x74, 0x69,
	0x66, 0x61, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x5f, 0x70, 0x65, 0x72,
	0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x6d, 0x61, 0x78,
	0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x50,
	0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68,
	0x75, 0x6e, 0x6b, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x57, 0x61, 0x69, 0x74, 0x4d,
	0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x69,
	0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x44, 0x75, 0x70,
	0x6c, 0x69, 0x63, 0x69, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68,
	0x75, 0x6e, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c,
	0x6d, 0x61, 0x78, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x37, 0x0a, 0x18,
	0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63, 0x61,
	0x63, 0x68, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15,
	0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x61, 0x63, 0x68,
	0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x70, 0x66, 0x6e, 0x5f, 0x65, 0x76, 0x61,
	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x6d,
	0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x70, 0x66, 0x6e, 0x45, 0x76, 0x61, 0x6c,
	0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x4d, 0x73, 0x12, 0x35,
	0x0a, 0x17, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f,
	0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x14, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x6c, 0x50, 0x65, 0x72,
	0x69, 0x6f, 0x64, 0x4d, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x72, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x73,
	0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f,
	0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x72, 0x65, 0x74, 0x72, 0x61, 0x6e,
	0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d,
	0x73, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x52, 0x0c, 0x72,
	0x65, 0x6c, 0x61, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x61, 0x64, 0x76,
	0x65, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x85, 0x02, 0x0a, 0x0e, 0x53,
	0x75, 0x62, 0x6e, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x2f, 0x0a,
	0x13, 0x63, 0x61, 0x6e, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f,
	0x78, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x63, 0x61, 0x6e, 0x69,
	0x73, 0x74, 0x65, 0x72, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x69, 0x6e, 0x67, 0x12, 0x23,
	0x0a, 0x0d, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x65, 0x76, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x65, 0x76, 0x45,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x65,
	0x76, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a,
	0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10,
	0x07, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x52, 0x17, 0x62,
	0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x6e, 0x65, 0x74, 0x5f, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x07, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x52,
	0x0a, 0x73, 0x65, 0x76, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x15, 0x6f, 0x6e, 0x63,
	0x68, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x62, 0x69, 0x6c, 0x69,
	0x74, 0x79, 0x22, 0x82, 0x03, 0x0a, 0x0b, 0x45, 0x63, 0x64, 0x73, 0x61, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x12, 0x44, 0x0a, 0x1f, 0x71, 0x75, 0x61, 0x64, 0x72, 0x75, 0x70, 0x6c, 0x65, 0x73,
	0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x61, 0x64,
	0x76, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x71, 0x75, 0x61,
	0x64, 0x72, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x54, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49,
	0x6e, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x5f,
	0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x67, 0x69,
	0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45,
	0x63, 0x64, 0x73, 0x61, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x52, 0x06, 0x6b, 0x65, 0x79, 0x49, 0x64,
	0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73,
	0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x51, 0x75,
	0x65, 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x44, 0x0a, 0x1c, 0x73, 0x69, 0x67, 0x6e, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d,
	0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52,
	0x19, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a,
	0x1b, 0x69, 0x64, 0x6b, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x04, 0x48, 0x01, 0x52, 0x17, 0x69, 0x64, 0x6b, 0x67, 0x4b, 0x65, 0x79, 0x52, 0x6f, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x4d, 0x73, 0x88, 0x01, 0x01,
	0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6e,
	0x73, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x64, 0x6b, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x72,
	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x6d,
	0x73, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x66, 0x0a, 0x0c, 0x53, 0x63, 0x68, 0x6e, 0x6f,
	0x72, 0x72, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72,
	0x69, 0x74, 0x68, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x67,
	0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x63, 0x68, 0x6e, 0x6f, 0x72, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d,
	0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22,
	0x93, 0x01, 0x0a, 0x11, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63,
	0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x63, 0x64, 0x73, 0x61, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e,
	0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x63, 0x64, 0x73, 0x61, 0x4b,
	0x65, 0x79, 0x49, 0x64, 0x48, 0x00, 0x52, 0x05, 0x65, 0x63, 0x64, 0x73, 0x61, 0x12, 0x3c, 0x0a,
	0x07, 0x73, 0x63, 0x68, 0x6e, 0x6f, 0x72, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20,
	0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74,
	0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x6e, 0x6f, 0x72, 0x72, 0x4b, 0x65, 0x79, 0x49, 0x64,
	0x48, 0x00, 0x52, 0x07, 0x73, 0x63, 0x68, 0x6e, 0x6f, 0x72, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x6b,
	0x65, 0x79, 0x5f, 0x69, 0x64, 0x22, 0x91, 0x02, 0x0a, 0x09, 0x4b, 0x65, 0x79, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x12, 0x41, 0x0a, 0x06, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73,
	0x75, 0x62, 0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x50,
	0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x48, 0x00, 0x52, 0x05, 0x6b, 0x65,
	0x79, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x23, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x69,
	0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x1e, 0x70, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x73, 0x54, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x41, 0x64,
	0x76, 0x61, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f,
	0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d,
	0x48, 0x02, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65,
	0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x42, 0x26,
	0x0a, 0x24, 0x5f, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x61,
	0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x71,
	0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x0e, 0x43, 0x68,
	0x61, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3e, 0x0a, 0x0b,
	0x6b, 0x65, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x1d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x73, 0x75, 0x62,
	0x6e, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x52, 0x0a, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x1c,
	0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x04, 0x48, 0x00, 0x52, 0x19, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4e, 0x73, 0x88,
	0x01, 0x01, 0x12, 0x41, 0x0a, 0x1b, 0x69, 0x64, 0x6b, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x72,
	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x6d,
	0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x17, 0x69, 0x64, 0x6b, 0x67, 0x4b,
	0x65, 0x79, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64,
	0x4d, 0x73, 0x88, 0x01, 0x01, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65,
	0x6f, 0x75, 0x74, 0x5f, 0x6e, 0x73, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x64, 0x6b, 0x67, 0x5f,
	0x6b, 0x65, 0x79, 0x5f, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72,
	0x69, 0x6f, 0x64, 0x5f, 0x6d, 0x73, 0x2a, 0x44, 0x0a, 0x0a, 0x45, 0x63, 0x64, 0x73, 0x61, 0x43,
	0x75, 0x72, 0x76, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x43, 0x55,
	0x52, 0x56, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
	0x00, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x43, 0x55, 0x52, 0x56, 0x45,
	0x5f, 0x53, 0x45, 0x43, 0x50, 0x32, 0x35, 0x36, 0x4b, 0x31, 0x10, 0x01, 0x2a, 0x63, 0x0a, 0x08,
	0x4e, 0x69, 0x44, 0x6b, 0x67, 0x54, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x49, 0x5f, 0x44,
	0x4b, 0x47, 0x5f, 0x54, 0x41, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
	0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x49, 0x5f, 0x44, 0x4b, 0x47, 0x5f, 0x54,
	0x41, 0x47, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44,
	0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x4e, 0x49, 0x5f, 0x44, 0x4b, 0x47, 0x5f, 0x54, 0x41, 0x47,
	0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10,
	0x02, 0x2a, 0xc1, 0x05, 0x0a, 0x0b, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x49,
	0x64, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49,
	0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
	0x20, 0x0a, 0x1c, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49, 0x44, 0x5f,
	0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x42, 0x4c, 0x53, 0x31, 0x32, 0x5f, 0x33, 0x38, 0x31, 0x10,
	0x01, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49,
	0x44, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x5f, 0x42, 0x4c, 0x53, 0x31, 0x32, 0x5f, 0x33, 0x38,
	0x31, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d,
	0x5f, 0x49, 0x44, 0x5f, 0x53, 0x43, 0x48, 0x4e, 0x4f, 0x52, 0x52, 0x5f, 0x53, 0x45, 0x43, 0x50,
	0x32, 0x35, 0x36, 0x4b, 0x31, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x4c, 0x47, 0x4f, 0x52,
	0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x5f, 0x44,
	0x48, 0x5f, 0x53, 0x45, 0x43, 0x50, 0x32, 0x35, 0x36, 0x4b, 0x31, 0x10, 0x04, 0x12, 0x1c, 0x0a,
	0x18, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49, 0x44, 0x5f, 0x48, 0x41,
	0x53, 0x48, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x41,
	0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x4c, 0x53, 0x10,
	0x06, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49,
	0x44, 0x5f, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x41,
	0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x45, 0x43, 0x50,
	0x32, 0x35, 0x36, 0x4b, 0x31, 0x10, 0x08, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x4c, 0x47, 0x4f, 0x52,
	0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x54, 0x48, 0x32, 0x30, 0x5f,
	0x42, 0x4c, 0x53, 0x31, 0x32, 0x5f, 0x33, 0x38, 0x31, 0x10, 0x09, 0x12, 0x28, 0x0a, 0x24, 0x41,
	0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x49, 0x44, 0x4b,
	0x47, 0x5f, 0x47, 0x52, 0x4f, 0x54, 0x48, 0x32, 0x30, 0x5f, 0x42, 0x4c, 0x53, 0x31, 0x32, 0x5f,
	0x33, 0x38, 0x31, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54,
	0x48, 0x4d, 0x5f, 0x49, 0x44, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x50, 0x32, 0x35, 0x36,
	0x10, 0x0b, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f,
	0x49, 0x44, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x53, 0x45, 0x43, 0x50, 0x5f, 0x32, 0x35,
	0x36, 0x4b, 0x31, 0x10, 0x0c, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54,
	0x48, 0x4d, 0x5f, 0x49, 0x44, 0x5f, 0x49, 0x43, 0x5f, 0x43, 0x41, 0x4e, 0x49, 0x53, 0x54, 0x45,
	0x52, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x54, 0x55, 0x52, 0x45, 0x10, 0x0d, 0x12, 0x1b, 0x0a,
	0x17, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49, 0x44, 0x5f, 0x52, 0x53,
	0x41, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x4c,
	0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53,
	0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x53, 0x45, 0x43, 0x50, 0x5f,
	0x32, 0x35, 0x36, 0x4b, 0x31, 0x10, 0x0f, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x4c, 0x47, 0x4f, 0x52,
	0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x45, 0x47, 0x41, 0x5f, 0x53, 0x45, 0x43,
	0x50, 0x5f, 0x32, 0x35, 0x36, 0x4b, 0x31, 0x10, 0x10, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x4c, 0x47,
	0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48,
	0x4f, 0x4c, 0x44, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x53, 0x45, 0x43, 0x50, 0x5f, 0x32,
	0x35, 0x36, 0x52, 0x31, 0x10, 0x11, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49,
	0x54, 0x48, 0x4d, 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44,
	0x5f, 0x53, 0x43, 0x48, 0x4e, 0x4f, 0x52, 0x52, 0x5f, 0x42, 0x49, 0x50, 0x33, 0x34, 0x30, 0x10,
	0x12, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x49,
	0x44, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x45, 0x44, 0x32, 0x35,
	0x35, 0x31, 0x39, 0x10, 0x13, 0x2a, 0xb8, 0x02, 0x0a, 0x17, 0x49, 0x44, 0x6b, 0x67, 0x54, 0x72,
	0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x49, 0x5f, 0x44, 0x4b, 0x47, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53,
	0x43, 0x52, 0x49, 0x50, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
	0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a,
	0x21, 0x49, 0x5f, 0x44, 0x4b, 0x47, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x43, 0x52, 0x49, 0x50,
	0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x44,
	0x4f, 0x4d, 0x10, 0x01, 0x12, 0x30, 0x0a, 0x2c, 0x49, 0x5f, 0x44, 0x4b, 0x47, 0x5f, 0x54, 0x52,
	0x41, 0x4e, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49,
	0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x48, 0x41, 0x52, 0x45, 0x5f, 0x4f, 0x46, 0x5f, 0x4d, 0x41,
	0x53, 0x4b, 0x45, 0x44, 0x10, 0x02, 0x12, 0x32, 0x0a, 0x2e, 0x49, 0x5f, 0x44, 0x4b, 0x47, 0x5f,
	0x54, 0x52, 0x41, 0x4e, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41,
	0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x48, 0x41, 0x52, 0x45, 0x5f, 0x4f, 0x46, 0x5f,
	0x55, 0x4e, 0x4d, 0x41, 0x53, 0x4b, 0x45, 0x44, 0x10, 0x03, 0x12, 0x34, 0x0a, 0x30, 0x49, 0x5f,
	0x44, 0x4b, 0x47, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x5f, 0x4f,
	0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4d, 0x41, 0x53, 0x4b, 0x45,
	0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x45, 0x44, 0x10, 0x04,
	0x12, 0x2e, 0x0a, 0x2a, 0x49, 0x5f, 0x44, 0x4b, 0x47, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x43,
	0x52, 0x49, 0x50, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52,
	0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x55, 0x4e, 0x4d, 0x41, 0x53, 0x4b, 0x45, 0x44, 0x10, 0x05,
	0x2a, 0xab, 0x01, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x1b, 0x0a, 0x17, 0x53, 0x55, 0x42, 0x4e, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55,
	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17,
	0x53, 0x55, 0x42, 0x4e, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x4c,
	0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x55, 0x42,
	0x4e, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10,
	0x02, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x55, 0x42, 0x4e, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45,
	0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43,
	0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x22, 0x04, 0x08, 0x03, 0x10, 0x03, 0x2a, 0x1f, 0x53,
	0x55, 0x42, 0x4e, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49,
	0x55, 0x4d, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x2a, 0x7b,
	0x0a, 0x10, 0x53, 0x63, 0x68, 0x6e, 0x6f, 0x72, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74,
	0x68, 0x6d, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x43, 0x48, 0x4e, 0x4f, 0x52, 0x52, 0x5f, 0x41, 0x4c,
	0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x43, 0x48, 0x4e, 0x4f, 0x52, 0x52,
	0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x42, 0x49, 0x50, 0x33, 0x34,
	0x30, 0x53, 0x45, 0x43, 0x50, 0x32, 0x35, 0x36, 0x4b, 0x31, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19,
	0x53, 0x43, 0x48, 0x4e, 0x4f, 0x52, 0x52, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48,
	0x4d, 0x5f, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x10, 0x02, 0x42, 0x0a, 0x5a, 0x08, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

func file_subnet_proto_init() {
	if File_subnet_proto != nil {
		return
	}
	file_subnet_proto_msgTypes[0].OneofWrappers = []any{}
	file_subnet_proto_msgTypes[25].OneofWrappers = []any{}
	file_subnet_proto_msgTypes[26].OneofWrappers = []any{}
	file_subnet_proto_msgTypes[28].OneofWrappers = []any{
		(*MasterPublicKeyId_Ecdsa)(nil),
		(*MasterPublicKeyId_Schnorr)(nil),
	}
	file_subnet_proto_msgTypes[29].OneofWrappers = []any{}
	file_subnet_proto_msgTypes[30].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_subnet_proto_rawDesc,
			NumEnums:      6,
			NumMessages:   31,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_subnet_proto_goTypes,
		DependencyIndexes: file_subnet_proto_depIdxs,
		EnumInfos:         file_subnet_proto_enumTypes,
		MessageInfos:      file_subnet_proto_msgTypes,
	}.Build()
	File_subnet_proto = out.File
	file_subnet_proto_rawDesc = nil
	file_subnet_proto_goTypes = nil
	file_subnet_proto_depIdxs = nil
}

func file_subnet_proto_rawDescGZIP() []byte {
	file_subnet_proto_rawDescOnce.Do(func() {
		file_subnet_proto_rawDescData = protoimpl.X.CompressGZIP(file_subnet_proto_rawDescData)
	})
	return file_subnet_proto_rawDescData
}

func init() { file_subnet_proto_init() }

// An algorithm ID. This is used to specify the signature algorithm associated with a public key.
type AlgorithmId int32

const (
	AlgorithmId_ALGORITHM_ID_UNSPECIFIED                AlgorithmId = 0
	AlgorithmId_ALGORITHM_ID_MULTI_BLS12_381            AlgorithmId = 1
	AlgorithmId_ALGORITHM_ID_THRES_BLS12_381            AlgorithmId = 2
	AlgorithmId_ALGORITHM_ID_SCHNORR_SECP256K1          AlgorithmId = 3
	AlgorithmId_ALGORITHM_ID_STATIC_DH_SECP256K1        AlgorithmId = 4
	AlgorithmId_ALGORITHM_ID_HASH_SHA256                AlgorithmId = 5
	AlgorithmId_ALGORITHM_ID_TLS                        AlgorithmId = 6
	AlgorithmId_ALGORITHM_ID_ED25519                    AlgorithmId = 7
	AlgorithmId_ALGORITHM_ID_SECP256K1                  AlgorithmId = 8
	AlgorithmId_ALGORITHM_ID_GROTH20_BLS12_381          AlgorithmId = 9
	AlgorithmId_ALGORITHM_ID_NIDKG_GROTH20_BLS12_381    AlgorithmId = 10
	AlgorithmId_ALGORITHM_ID_ECDSA_P256                 AlgorithmId = 11
	AlgorithmId_ALGORITHM_ID_ECDSA_SECP_256K1           AlgorithmId = 12
	AlgorithmId_ALGORITHM_ID_IC_CANISTER_SIGNATURE      AlgorithmId = 13
	AlgorithmId_ALGORITHM_ID_RSA_SHA256                 AlgorithmId = 14
	AlgorithmId_ALGORITHM_ID_THRESHOLD_ECDSA_SECP_256K1 AlgorithmId = 15
	AlgorithmId_ALGORITHM_ID_MEGA_SECP_256K1            AlgorithmId = 16
	AlgorithmId_ALGORITHM_ID_THRESHOLD_ECDSA_SECP_256R1 AlgorithmId = 17
	AlgorithmId_ALGORITHM_ID_THRESHOLD_SCHNORR_BIP340   AlgorithmId = 18
	AlgorithmId_ALGORITHM_ID_THRESHOLD_ED25519          AlgorithmId = 19
)

func (AlgorithmId) Descriptor() protoreflect.EnumDescriptor {
	return file_subnet_proto_enumTypes[2].Descriptor()
}

func (x AlgorithmId) Enum() *AlgorithmId {
	p := new(AlgorithmId)
	*p = x
	return p
}

// Deprecated: Use AlgorithmId.Descriptor instead.
func (AlgorithmId) EnumDescriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{2}
}

func (x AlgorithmId) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

func (x AlgorithmId) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (AlgorithmId) Type() protoreflect.EnumType {
	return &file_subnet_proto_enumTypes[2]
}

// Contains the initial DKG transcripts for the subnet and materials to construct a base CUP (i.e.
// a CUP with no dependencies on previous CUPs or blocks). Such CUP materials can be used to
// construct the genesis CUP or a recovery CUP in the event of a subnet stall.
type CatchUpPackageContents struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Initial non-interactive low-threshold DKG transcript
	InitialNiDkgTranscriptLowThreshold *InitialNiDkgTranscriptRecord `protobuf:"bytes,1,opt,name=initial_ni_dkg_transcript_low_threshold,json=initialNiDkgTranscriptLowThreshold,proto3" json:"initial_ni_dkg_transcript_low_threshold,omitempty"`
	// Initial non-interactive high-threshold DKG transcript
	InitialNiDkgTranscriptHighThreshold *InitialNiDkgTranscriptRecord `protobuf:"bytes,2,opt,name=initial_ni_dkg_transcript_high_threshold,json=initialNiDkgTranscriptHighThreshold,proto3" json:"initial_ni_dkg_transcript_high_threshold,omitempty"`
	// The blockchain height that the CUP should have
	Height uint64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
	// Block time for the CUP's block
	Time uint64 `protobuf:"varint,4,opt,name=time,proto3" json:"time,omitempty"`
	// The hash of the state that the subnet should use
	StateHash []byte `protobuf:"bytes,5,opt,name=state_hash,json=stateHash,proto3" json:"state_hash,omitempty"`
	// A uri from which data to replace the registry local store should be downloaded
	RegistryStoreUri *RegistryStoreUri `protobuf:"bytes,6,opt,name=registry_store_uri,json=registryStoreUri,proto3" json:"registry_store_uri,omitempty"`
	// / The initial ECDSA dealings for boot strapping target subnets.
	EcdsaInitializations []*EcdsaInitialization `protobuf:"bytes,7,rep,name=ecdsa_initializations,json=ecdsaInitializations,proto3" json:"ecdsa_initializations,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

// Deprecated: Use CatchUpPackageContents.ProtoReflect.Descriptor instead.
func (*CatchUpPackageContents) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{3}
}

func (x *CatchUpPackageContents) GetEcdsaInitializations() []*EcdsaInitialization {
	if x != nil {
		return x.EcdsaInitializations
	}
	return nil
}

func (x *CatchUpPackageContents) GetHeight() uint64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *CatchUpPackageContents) GetInitialNiDkgTranscriptHighThreshold() *InitialNiDkgTranscriptRecord {
	if x != nil {
		return x.InitialNiDkgTranscriptHighThreshold
	}
	return nil
}

func (x *CatchUpPackageContents) GetInitialNiDkgTranscriptLowThreshold() *InitialNiDkgTranscriptRecord {
	if x != nil {
		return x.InitialNiDkgTranscriptLowThreshold
	}
	return nil
}

func (x *CatchUpPackageContents) GetRegistryStoreUri() *RegistryStoreUri {
	if x != nil {
		return x.RegistryStoreUri
	}
	return nil
}

func (x *CatchUpPackageContents) GetStateHash() []byte {
	if x != nil {
		return x.StateHash
	}
	return nil
}

func (x *CatchUpPackageContents) GetTime() uint64 {
	if x != nil {
		return x.Time
	}
	return 0
}

func (*CatchUpPackageContents) ProtoMessage() {}

func (x *CatchUpPackageContents) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *CatchUpPackageContents) Reset() {
	*x = CatchUpPackageContents{}
	mi := &file_subnet_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CatchUpPackageContents) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Per-subnet chain key configuration
type ChainKeyConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Configurations for keys held by the subnet.
	KeyConfigs []*KeyConfig `protobuf:"bytes,1,rep,name=key_configs,json=keyConfigs,proto3" json:"key_configs,omitempty"`
	// Signature requests will timeout after the given number of nano seconds.
	SignatureRequestTimeoutNs *uint64 `protobuf:"varint,2,opt,name=signature_request_timeout_ns,json=signatureRequestTimeoutNs,proto3,oneof" json:"signature_request_timeout_ns,omitempty"`
	// Key rotation period of a single node in milliseconds.
	// If none is specified key rotation is disabled.
	IdkgKeyRotationPeriodMs *uint64 `protobuf:"varint,3,opt,name=idkg_key_rotation_period_ms,json=idkgKeyRotationPeriodMs,proto3,oneof" json:"idkg_key_rotation_period_ms,omitempty"`
	unknownFields           protoimpl.UnknownFields
	sizeCache               protoimpl.SizeCache
}

// Deprecated: Use ChainKeyConfig.ProtoReflect.Descriptor instead.
func (*ChainKeyConfig) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{30}
}

func (x *ChainKeyConfig) GetIdkgKeyRotationPeriodMs() uint64 {
	if x != nil && x.IdkgKeyRotationPeriodMs != nil {
		return *x.IdkgKeyRotationPeriodMs
	}
	return 0
}

func (x *ChainKeyConfig) GetKeyConfigs() []*KeyConfig {
	if x != nil {
		return x.KeyConfigs
	}
	return nil
}

func (x *ChainKeyConfig) GetSignatureRequestTimeoutNs() uint64 {
	if x != nil && x.SignatureRequestTimeoutNs != nil {
		return *x.SignatureRequestTimeoutNs
	}
	return 0
}

func (*ChainKeyConfig) ProtoMessage() {}

func (x *ChainKeyConfig) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[30]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *ChainKeyConfig) Reset() {
	*x = ChainKeyConfig{}
	mi := &file_subnet_proto_msgTypes[30]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ChainKeyConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type DealerTuple struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	DealerId      *NodeId                `protobuf:"bytes,1,opt,name=dealer_id,json=dealerId,proto3" json:"dealer_id,omitempty"`
	DealerIndex   uint32                 `protobuf:"varint,2,opt,name=dealer_index,json=dealerIndex,proto3" json:"dealer_index,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use DealerTuple.ProtoReflect.Descriptor instead.
func (*DealerTuple) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{15}
}

func (x *DealerTuple) GetDealerId() *NodeId {
	if x != nil {
		return x.DealerId
	}
	return nil
}

func (x *DealerTuple) GetDealerIndex() uint32 {
	if x != nil {
		return x.DealerIndex
	}
	return 0
}

func (*DealerTuple) ProtoMessage() {}

func (x *DealerTuple) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *DealerTuple) Reset() {
	*x = DealerTuple{}
	mi := &file_subnet_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DealerTuple) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Per subnet ECDSA configuration
//
// Deprecated; please use ChainKeyConfig instead.
type EcdsaConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Number of quadruples to create in advance.
	QuadruplesToCreateInAdvance uint32 `protobuf:"varint,1,opt,name=quadruples_to_create_in_advance,json=quadruplesToCreateInAdvance,proto3" json:"quadruples_to_create_in_advance,omitempty"`
	// Identifiers for threshold ECDSA keys held by the subnet.
	KeyIds []*EcdsaKeyId `protobuf:"bytes,3,rep,name=key_ids,json=keyIds,proto3" json:"key_ids,omitempty"`
	// The maximum number of signature requests that can be enqueued at once.
	MaxQueueSize uint32 `protobuf:"varint,4,opt,name=max_queue_size,json=maxQueueSize,proto3" json:"max_queue_size,omitempty"`
	// Signature requests will timeout after the given number of nano seconds.
	SignatureRequestTimeoutNs *uint64 `protobuf:"varint,5,opt,name=signature_request_timeout_ns,json=signatureRequestTimeoutNs,proto3,oneof" json:"signature_request_timeout_ns,omitempty"`
	// Key rotation period of a single node in milliseconds.
	// If none is specified key rotation is disabled.
	IdkgKeyRotationPeriodMs *uint64 `protobuf:"varint,6,opt,name=idkg_key_rotation_period_ms,json=idkgKeyRotationPeriodMs,proto3,oneof" json:"idkg_key_rotation_period_ms,omitempty"`
	unknownFields           protoimpl.UnknownFields
	sizeCache               protoimpl.SizeCache
}

// Deprecated: Use EcdsaConfig.ProtoReflect.Descriptor instead.
func (*EcdsaConfig) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{26}
}

func (x *EcdsaConfig) GetIdkgKeyRotationPeriodMs() uint64 {
	if x != nil && x.IdkgKeyRotationPeriodMs != nil {
		return *x.IdkgKeyRotationPeriodMs
	}
	return 0
}

func (x *EcdsaConfig) GetKeyIds() []*EcdsaKeyId {
	if x != nil {
		return x.KeyIds
	}
	return nil
}

func (x *EcdsaConfig) GetMaxQueueSize() uint32 {
	if x != nil {
		return x.MaxQueueSize
	}
	return 0
}

func (x *EcdsaConfig) GetQuadruplesToCreateInAdvance() uint32 {
	if x != nil {
		return x.QuadruplesToCreateInAdvance
	}
	return 0
}

func (x *EcdsaConfig) GetSignatureRequestTimeoutNs() uint64 {
	if x != nil && x.SignatureRequestTimeoutNs != nil {
		return *x.SignatureRequestTimeoutNs
	}
	return 0
}

func (*EcdsaConfig) ProtoMessage() {}

func (x *EcdsaConfig) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[26]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *EcdsaConfig) Reset() {
	*x = EcdsaConfig{}
	mi := &file_subnet_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EcdsaConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Types of curves that can be used for ECDSA signatures.
type EcdsaCurve int32

const (
	EcdsaCurve_ECDSA_CURVE_UNSPECIFIED EcdsaCurve = 0
	EcdsaCurve_ECDSA_CURVE_SECP256K1   EcdsaCurve = 1
)

func (EcdsaCurve) Descriptor() protoreflect.EnumDescriptor {
	return file_subnet_proto_enumTypes[0].Descriptor()
}

func (x EcdsaCurve) Enum() *EcdsaCurve {
	p := new(EcdsaCurve)
	*p = x
	return p
}

// Deprecated: Use EcdsaCurve.Descriptor instead.
func (EcdsaCurve) EnumDescriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{0}
}

func (x EcdsaCurve) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

func (x EcdsaCurve) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (EcdsaCurve) Type() protoreflect.EnumType {
	return &file_subnet_proto_enumTypes[0]
}

type EcdsaInitialization struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	KeyId         *EcdsaKeyId            `protobuf:"bytes,1,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"`
	Dealings      *InitialIDkgDealings   `protobuf:"bytes,2,opt,name=dealings,proto3" json:"dealings,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use EcdsaInitialization.ProtoReflect.Descriptor instead.
func (*EcdsaInitialization) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{2}
}

func (x *EcdsaInitialization) GetDealings() *InitialIDkgDealings {
	if x != nil {
		return x.Dealings
	}
	return nil
}

func (x *EcdsaInitialization) GetKeyId() *EcdsaKeyId {
	if x != nil {
		return x.KeyId
	}
	return nil
}

func (*EcdsaInitialization) ProtoMessage() {}

func (x *EcdsaInitialization) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *EcdsaInitialization) Reset() {
	*x = EcdsaInitialization{}
	mi := &file_subnet_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EcdsaInitialization) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type EcdsaKeyId struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Curve         EcdsaCurve             `protobuf:"varint,1,opt,name=curve,proto3,enum=registry.subnet.v1.EcdsaCurve" json:"curve,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use EcdsaKeyId.ProtoReflect.Descriptor instead.
func (*EcdsaKeyId) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{1}
}

func (x *EcdsaKeyId) GetCurve() EcdsaCurve {
	if x != nil {
		return x.Curve
	}
	return EcdsaCurve_ECDSA_CURVE_UNSPECIFIED
}

func (x *EcdsaKeyId) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (*EcdsaKeyId) ProtoMessage() {}

func (x *EcdsaKeyId) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *EcdsaKeyId) Reset() {
	*x = EcdsaKeyId{}
	mi := &file_subnet_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EcdsaKeyId) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type ExtendedDerivationPath struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	Caller         *PrincipalId           `protobuf:"bytes,1,opt,name=caller,proto3" json:"caller,omitempty"`
	DerivationPath [][]byte               `protobuf:"bytes,2,rep,name=derivation_path,json=derivationPath,proto3" json:"derivation_path,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

// Deprecated: Use ExtendedDerivationPath.ProtoReflect.Descriptor instead.
func (*ExtendedDerivationPath) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{23}
}

func (x *ExtendedDerivationPath) GetCaller() *PrincipalId {
	if x != nil {
		return x.Caller
	}
	return nil
}

func (x *ExtendedDerivationPath) GetDerivationPath() [][]byte {
	if x != nil {
		return x.DerivationPath
	}
	return nil
}

func (*ExtendedDerivationPath) ProtoMessage() {}

func (x *ExtendedDerivationPath) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[23]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *ExtendedDerivationPath) Reset() {
	*x = ExtendedDerivationPath{}
	mi := &file_subnet_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ExtendedDerivationPath) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Per subnet P2P configuration
// Note: protoc is mangling the name P2PConfig to P2pConfig
type GossipConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// max outstanding request per peer MIN/DEFAULT/MAX 1/20/200
	MaxArtifactStreamsPerPeer uint32 `protobuf:"varint,1,opt,name=max_artifact_streams_per_peer,json=maxArtifactStreamsPerPeer,proto3" json:"max_artifact_streams_per_peer,omitempty"`
	// timeout for a outstanding request 3_000/15_000/180_000
	MaxChunkWaitMs uint32 `protobuf:"varint,2,opt,name=max_chunk_wait_ms,json=maxChunkWaitMs,proto3" json:"max_chunk_wait_ms,omitempty"`
	// max duplicate requests in underutilized networks 1/28/6000
	MaxDuplicity uint32 `protobuf:"varint,3,opt,name=max_duplicity,json=maxDuplicity,proto3" json:"max_duplicity,omitempty"`
	// maximum chunk size supported on this subnet 1024/4096/131_072
	MaxChunkSize uint32 `protobuf:"varint,4,opt,name=max_chunk_size,json=maxChunkSize,proto3" json:"max_chunk_size,omitempty"`
	// history size for receive check 1_000/5_000/30_000
	ReceiveCheckCacheSize uint32 `protobuf:"varint,5,opt,name=receive_check_cache_size,json=receiveCheckCacheSize,proto3" json:"receive_check_cache_size,omitempty"`
	// period for re evaluating the priority function. 1_000/3_000/30_000
	PfnEvaluationPeriodMs uint32 `protobuf:"varint,6,opt,name=pfn_evaluation_period_ms,json=pfnEvaluationPeriodMs,proto3" json:"pfn_evaluation_period_ms,omitempty"`
	// period for polling the registry for updates 1_000/3_000/30_000
	RegistryPollPeriodMs uint32 `protobuf:"varint,7,opt,name=registry_poll_period_ms,json=registryPollPeriodMs,proto3" json:"registry_poll_period_ms,omitempty"`
	// period for sending a retransmission request
	RetransmissionRequestMs uint32 `protobuf:"varint,8,opt,name=retransmission_request_ms,json=retransmissionRequestMs,proto3" json:"retransmission_request_ms,omitempty"` // config for advert distribution.
	unknownFields           protoimpl.UnknownFields
	sizeCache               protoimpl.SizeCache
}

// Deprecated: Use GossipConfig.ProtoReflect.Descriptor instead.
func (*GossipConfig) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{24}
}

func (x *GossipConfig) GetMaxArtifactStreamsPerPeer() uint32 {
	if x != nil {
		return x.MaxArtifactStreamsPerPeer
	}
	return 0
}

func (x *GossipConfig) GetMaxChunkSize() uint32 {
	if x != nil {
		return x.MaxChunkSize
	}
	return 0
}

func (x *GossipConfig) GetMaxChunkWaitMs() uint32 {
	if x != nil {
		return x.MaxChunkWaitMs
	}
	return 0
}

func (x *GossipConfig) GetMaxDuplicity() uint32 {
	if x != nil {
		return x.MaxDuplicity
	}
	return 0
}

func (x *GossipConfig) GetPfnEvaluationPeriodMs() uint32 {
	if x != nil {
		return x.PfnEvaluationPeriodMs
	}
	return 0
}

func (x *GossipConfig) GetReceiveCheckCacheSize() uint32 {
	if x != nil {
		return x.ReceiveCheckCacheSize
	}
	return 0
}

func (x *GossipConfig) GetRegistryPollPeriodMs() uint32 {
	if x != nil {
		return x.RegistryPollPeriodMs
	}
	return 0
}

func (x *GossipConfig) GetRetransmissionRequestMs() uint32 {
	if x != nil {
		return x.RetransmissionRequestMs
	}
	return 0
}

func (*GossipConfig) ProtoMessage() {}

func (x *GossipConfig) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[24]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *GossipConfig) Reset() {
	*x = GossipConfig{}
	mi := &file_subnet_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GossipConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type IDkgComplaint struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	TranscriptId  *IDkgTranscriptId      `protobuf:"bytes,1,opt,name=transcript_id,json=transcriptId,proto3" json:"transcript_id,omitempty"`
	Dealer        *NodeId                `protobuf:"bytes,2,opt,name=dealer,proto3" json:"dealer,omitempty"`
	RawComplaint  []byte                 `protobuf:"bytes,3,opt,name=raw_complaint,json=rawComplaint,proto3" json:"raw_complaint,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use IDkgComplaint.ProtoReflect.Descriptor instead.
func (*IDkgComplaint) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{21}
}

func (x *IDkgComplaint) GetDealer() *NodeId {
	if x != nil {
		return x.Dealer
	}
	return nil
}

func (x *IDkgComplaint) GetRawComplaint() []byte {
	if x != nil {
		return x.RawComplaint
	}
	return nil
}

func (x *IDkgComplaint) GetTranscriptId() *IDkgTranscriptId {
	if x != nil {
		return x.TranscriptId
	}
	return nil
}

func (*IDkgComplaint) ProtoMessage() {}

func (x *IDkgComplaint) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[21]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *IDkgComplaint) Reset() {
	*x = IDkgComplaint{}
	mi := &file_subnet_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *IDkgComplaint) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type IDkgDealing struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	TranscriptId  *IDkgTranscriptId      `protobuf:"bytes,1,opt,name=transcript_id,json=transcriptId,proto3" json:"transcript_id,omitempty"`
	RawDealing    []byte                 `protobuf:"bytes,2,opt,name=raw_dealing,json=rawDealing,proto3" json:"raw_dealing,omitempty"` // serialised InternalRawDealing
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use IDkgDealing.ProtoReflect.Descriptor instead.
func (*IDkgDealing) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{18}
}

func (x *IDkgDealing) GetRawDealing() []byte {
	if x != nil {
		return x.RawDealing
	}
	return nil
}

func (x *IDkgDealing) GetTranscriptId() *IDkgTranscriptId {
	if x != nil {
		return x.TranscriptId
	}
	return nil
}

func (*IDkgDealing) ProtoMessage() {}

func (x *IDkgDealing) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *IDkgDealing) Reset() {
	*x = IDkgDealing{}
	mi := &file_subnet_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *IDkgDealing) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type IDkgOpening struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	TranscriptId  *IDkgTranscriptId      `protobuf:"bytes,1,opt,name=transcript_id,json=transcriptId,proto3" json:"transcript_id,omitempty"`
	Dealer        *NodeId                `protobuf:"bytes,2,opt,name=dealer,proto3" json:"dealer,omitempty"`
	RawOpening    []byte                 `protobuf:"bytes,3,opt,name=raw_opening,json=rawOpening,proto3" json:"raw_opening,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use IDkgOpening.ProtoReflect.Descriptor instead.
func (*IDkgOpening) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{22}
}

func (x *IDkgOpening) GetDealer() *NodeId {
	if x != nil {
		return x.Dealer
	}
	return nil
}

func (x *IDkgOpening) GetRawOpening() []byte {
	if x != nil {
		return x.RawOpening
	}
	return nil
}

func (x *IDkgOpening) GetTranscriptId() *IDkgTranscriptId {
	if x != nil {
		return x.TranscriptId
	}
	return nil
}

func (*IDkgOpening) ProtoMessage() {}

func (x *IDkgOpening) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[22]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *IDkgOpening) Reset() {
	*x = IDkgOpening{}
	mi := &file_subnet_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *IDkgOpening) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type IDkgSignedDealingTuple struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Dealer        *NodeId                `protobuf:"bytes,1,opt,name=dealer,proto3" json:"dealer,omitempty"`
	Dealing       *IDkgDealing           `protobuf:"bytes,2,opt,name=dealing,proto3" json:"dealing,omitempty"`
	Signature     []byte                 `protobuf:"bytes,3,opt,name=signature,proto3" json:"signature,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use IDkgSignedDealingTuple.ProtoReflect.Descriptor instead.
func (*IDkgSignedDealingTuple) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{19}
}

func (x *IDkgSignedDealingTuple) GetDealer() *NodeId {
	if x != nil {
		return x.Dealer
	}
	return nil
}

func (x *IDkgSignedDealingTuple) GetDealing() *IDkgDealing {
	if x != nil {
		return x.Dealing
	}
	return nil
}

func (x *IDkgSignedDealingTuple) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (*IDkgSignedDealingTuple) ProtoMessage() {}

func (x *IDkgSignedDealingTuple) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *IDkgSignedDealingTuple) Reset() {
	*x = IDkgSignedDealingTuple{}
	mi := &file_subnet_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *IDkgSignedDealingTuple) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type IDkgTranscript struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	TranscriptId     *IDkgTranscriptId      `protobuf:"bytes,1,opt,name=transcript_id,json=transcriptId,proto3" json:"transcript_id,omitempty"`
	Dealers          []*NodeId              `protobuf:"bytes,2,rep,name=dealers,proto3" json:"dealers,omitempty"`
	Receivers        []*NodeId              `protobuf:"bytes,3,rep,name=receivers,proto3" json:"receivers,omitempty"`
	RegistryVersion  uint64                 `protobuf:"varint,4,opt,name=registry_version,json=registryVersion,proto3" json:"registry_version,omitempty"`
	VerifiedDealings []*VerifiedIDkgDealing `protobuf:"bytes,5,rep,name=verified_dealings,json=verifiedDealings,proto3" json:"verified_dealings,omitempty"`
	TranscriptType   []byte                 `protobuf:"bytes,6,opt,name=transcript_type,json=transcriptType,proto3" json:"transcript_type,omitempty"` // CBOR serialized IDkgTranscriptType
	AlgorithmId      AlgorithmId            `protobuf:"varint,7,opt,name=algorithm_id,json=algorithmId,proto3,enum=registry.subnet.v1.AlgorithmId" json:"algorithm_id,omitempty"`
	RawTranscript    []byte                 `protobuf:"bytes,8,opt,name=raw_transcript,json=rawTranscript,proto3" json:"raw_transcript,omitempty"` // serialised InternalRawTranscript
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

// Deprecated: Use IDkgTranscript.ProtoReflect.Descriptor instead.
func (*IDkgTranscript) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{14}
}

func (x *IDkgTranscript) GetAlgorithmId() AlgorithmId {
	if x != nil {
		return x.AlgorithmId
	}
	return AlgorithmId_ALGORITHM_ID_UNSPECIFIED
}

func (x *IDkgTranscript) GetDealers() []*NodeId {
	if x != nil {
		return x.Dealers
	}
	return nil
}

func (x *IDkgTranscript) GetRawTranscript() []byte {
	if x != nil {
		return x.RawTranscript
	}
	return nil
}

func (x *IDkgTranscript) GetReceivers() []*NodeId {
	if x != nil {
		return x.Receivers
	}
	return nil
}

func (x *IDkgTranscript) GetRegistryVersion() uint64 {
	if x != nil {
		return x.RegistryVersion
	}
	return 0
}

func (x *IDkgTranscript) GetTranscriptId() *IDkgTranscriptId {
	if x != nil {
		return x.TranscriptId
	}
	return nil
}

func (x *IDkgTranscript) GetTranscriptType() []byte {
	if x != nil {
		return x.TranscriptType
	}
	return nil
}

func (x *IDkgTranscript) GetVerifiedDealings() []*VerifiedIDkgDealing {
	if x != nil {
		return x.VerifiedDealings
	}
	return nil
}

func (*IDkgTranscript) ProtoMessage() {}

func (x *IDkgTranscript) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *IDkgTranscript) Reset() {
	*x = IDkgTranscript{}
	mi := &file_subnet_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *IDkgTranscript) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type IDkgTranscriptId struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            uint64                 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	SubnetId      *SubnetId              `protobuf:"bytes,2,opt,name=subnet_id,json=subnetId,proto3" json:"subnet_id,omitempty"`
	SourceHeight  uint64                 `protobuf:"varint,3,opt,name=source_height,json=sourceHeight,proto3" json:"source_height,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use IDkgTranscriptId.ProtoReflect.Descriptor instead.
func (*IDkgTranscriptId) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{10}
}

func (x *IDkgTranscriptId) GetId() uint64 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *IDkgTranscriptId) GetSourceHeight() uint64 {
	if x != nil {
		return x.SourceHeight
	}
	return 0
}

func (x *IDkgTranscriptId) GetSubnetId() *SubnetId {
	if x != nil {
		return x.SubnetId
	}
	return nil
}

func (*IDkgTranscriptId) ProtoMessage() {}

func (x *IDkgTranscriptId) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *IDkgTranscriptId) Reset() {
	*x = IDkgTranscriptId{}
	mi := &file_subnet_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *IDkgTranscriptId) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type IDkgTranscriptOperation int32

const (
	IDkgTranscriptOperation_I_DKG_TRANSCRIPT_OPERATION_UNSPECIFIED           IDkgTranscriptOperation = 0
	IDkgTranscriptOperation_I_DKG_TRANSCRIPT_OPERATION_RANDOM                IDkgTranscriptOperation = 1
	IDkgTranscriptOperation_I_DKG_TRANSCRIPT_OPERATION_RESHARE_OF_MASKED     IDkgTranscriptOperation = 2
	IDkgTranscriptOperation_I_DKG_TRANSCRIPT_OPERATION_RESHARE_OF_UNMASKED   IDkgTranscriptOperation = 3
	IDkgTranscriptOperation_I_DKG_TRANSCRIPT_OPERATION_UNMASKED_TIMES_MASKED IDkgTranscriptOperation = 4
	IDkgTranscriptOperation_I_DKG_TRANSCRIPT_OPERATION_RANDOM_UNMASKED       IDkgTranscriptOperation = 5
)

func (IDkgTranscriptOperation) Descriptor() protoreflect.EnumDescriptor {
	return file_subnet_proto_enumTypes[3].Descriptor()
}

func (x IDkgTranscriptOperation) Enum() *IDkgTranscriptOperation {
	p := new(IDkgTranscriptOperation)
	*p = x
	return p
}

// Deprecated: Use IDkgTranscriptOperation.Descriptor instead.
func (IDkgTranscriptOperation) EnumDescriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{3}
}

func (x IDkgTranscriptOperation) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

func (x IDkgTranscriptOperation) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (IDkgTranscriptOperation) Type() protoreflect.EnumType {
	return &file_subnet_proto_enumTypes[3]
}

type IDkgTranscriptParams struct {
	state                       protoimpl.MessageState  `protogen:"open.v1"`
	TranscriptId                *IDkgTranscriptId       `protobuf:"bytes,1,opt,name=transcript_id,json=transcriptId,proto3" json:"transcript_id,omitempty"`
	Dealers                     []*DealerTuple          `protobuf:"bytes,2,rep,name=dealers,proto3" json:"dealers,omitempty"`
	Receivers                   []*NodeId               `protobuf:"bytes,3,rep,name=receivers,proto3" json:"receivers,omitempty"`
	RegistryVersion             uint64                  `protobuf:"varint,4,opt,name=registry_version,json=registryVersion,proto3" json:"registry_version,omitempty"`
	AlgorithmId                 AlgorithmId             `protobuf:"varint,5,opt,name=algorithm_id,json=algorithmId,proto3,enum=registry.subnet.v1.AlgorithmId" json:"algorithm_id,omitempty"`
	IdkgTranscriptOperation     IDkgTranscriptOperation `protobuf:"varint,6,opt,name=idkg_transcript_operation,json=idkgTranscriptOperation,proto3,enum=registry.subnet.v1.IDkgTranscriptOperation" json:"idkg_transcript_operation,omitempty"`
	IdkgTranscriptOperationArgs []*IDkgTranscript       `protobuf:"bytes,7,rep,name=idkg_transcript_operation_args,json=idkgTranscriptOperationArgs,proto3" json:"idkg_transcript_operation_args,omitempty"` // 0, 1, or 2 IDkgTranscripts
	unknownFields               protoimpl.UnknownFields
	sizeCache                   protoimpl.SizeCache
}

// Deprecated: Use IDkgTranscriptParams.ProtoReflect.Descriptor instead.
func (*IDkgTranscriptParams) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{17}
}

func (x *IDkgTranscriptParams) GetAlgorithmId() AlgorithmId {
	if x != nil {
		return x.AlgorithmId
	}
	return AlgorithmId_ALGORITHM_ID_UNSPECIFIED
}

func (x *IDkgTranscriptParams) GetDealers() []*DealerTuple {
	if x != nil {
		return x.Dealers
	}
	return nil
}

func (x *IDkgTranscriptParams) GetIdkgTranscriptOperation() IDkgTranscriptOperation {
	if x != nil {
		return x.IdkgTranscriptOperation
	}
	return IDkgTranscriptOperation_I_DKG_TRANSCRIPT_OPERATION_UNSPECIFIED
}

func (x *IDkgTranscriptParams) GetIdkgTranscriptOperationArgs() []*IDkgTranscript {
	if x != nil {
		return x.IdkgTranscriptOperationArgs
	}
	return nil
}

func (x *IDkgTranscriptParams) GetReceivers() []*NodeId {
	if x != nil {
		return x.Receivers
	}
	return nil
}

func (x *IDkgTranscriptParams) GetRegistryVersion() uint64 {
	if x != nil {
		return x.RegistryVersion
	}
	return 0
}

func (x *IDkgTranscriptParams) GetTranscriptId() *IDkgTranscriptId {
	if x != nil {
		return x.TranscriptId
	}
	return nil
}

func (*IDkgTranscriptParams) ProtoMessage() {}

func (x *IDkgTranscriptParams) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *IDkgTranscriptParams) Reset() {
	*x = IDkgTranscriptParams{}
	mi := &file_subnet_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *IDkgTranscriptParams) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type InitialIDkgDealings struct {
	state          protoimpl.MessageState    `protogen:"open.v1"`
	Version        uint32                    `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
	Params         *IDkgTranscriptParams     `protobuf:"bytes,2,opt,name=params,proto3" json:"params,omitempty"`
	SignedDealings []*IDkgSignedDealingTuple `protobuf:"bytes,4,rep,name=signed_dealings,json=signedDealings,proto3" json:"signed_dealings,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

// Deprecated: Use InitialIDkgDealings.ProtoReflect.Descriptor instead.
func (*InitialIDkgDealings) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{20}
}

func (x *InitialIDkgDealings) GetParams() *IDkgTranscriptParams {
	if x != nil {
		return x.Params
	}
	return nil
}

func (x *InitialIDkgDealings) GetSignedDealings() []*IDkgSignedDealingTuple {
	if x != nil {
		return x.SignedDealings
	}
	return nil
}

func (x *InitialIDkgDealings) GetVersion() uint32 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (*InitialIDkgDealings) ProtoMessage() {}

func (x *InitialIDkgDealings) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[20]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *InitialIDkgDealings) Reset() {
	*x = InitialIDkgDealings{}
	mi := &file_subnet_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *InitialIDkgDealings) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Initial non-interactive DKG transcript record
type InitialNiDkgTranscriptRecord struct {
	state                 protoimpl.MessageState `protogen:"open.v1"`
	Id                    *NiDkgId               `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Threshold             uint32                 `protobuf:"varint,2,opt,name=threshold,proto3" json:"threshold,omitempty"`
	Committee             [][]byte               `protobuf:"bytes,3,rep,name=committee,proto3" json:"committee,omitempty"`
	RegistryVersion       uint64                 `protobuf:"varint,4,opt,name=registry_version,json=registryVersion,proto3" json:"registry_version,omitempty"`
	InternalCspTranscript []byte                 `protobuf:"bytes,5,opt,name=internal_csp_transcript,json=internalCspTranscript,proto3" json:"internal_csp_transcript,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

// Deprecated: Use InitialNiDkgTranscriptRecord.ProtoReflect.Descriptor instead.
func (*InitialNiDkgTranscriptRecord) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{7}
}

func (x *InitialNiDkgTranscriptRecord) GetCommittee() [][]byte {
	if x != nil {
		return x.Committee
	}
	return nil
}

func (x *InitialNiDkgTranscriptRecord) GetId() *NiDkgId {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *InitialNiDkgTranscriptRecord) GetInternalCspTranscript() []byte {
	if x != nil {
		return x.InternalCspTranscript
	}
	return nil
}

func (x *InitialNiDkgTranscriptRecord) GetRegistryVersion() uint64 {
	if x != nil {
		return x.RegistryVersion
	}
	return 0
}

func (x *InitialNiDkgTranscriptRecord) GetThreshold() uint32 {
	if x != nil {
		return x.Threshold
	}
	return 0
}

func (*InitialNiDkgTranscriptRecord) ProtoMessage() {}

func (x *InitialNiDkgTranscriptRecord) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *InitialNiDkgTranscriptRecord) Reset() {
	*x = InitialNiDkgTranscriptRecord{}
	mi := &file_subnet_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *InitialNiDkgTranscriptRecord) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type KeyConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The key's identifier.
	KeyId *MasterPublicKeyId `protobuf:"bytes,1,opt,name=key_id,json=keyId,proto3,oneof" json:"key_id,omitempty"`
	// Number of pre-signatures to create in advance.
	PreSignaturesToCreateInAdvance *uint32 `protobuf:"varint,3,opt,name=pre_signatures_to_create_in_advance,json=preSignaturesToCreateInAdvance,proto3,oneof" json:"pre_signatures_to_create_in_advance,omitempty"`
	// The maximum number of signature requests that can be enqueued at once.
	MaxQueueSize  *uint32 `protobuf:"varint,4,opt,name=max_queue_size,json=maxQueueSize,proto3,oneof" json:"max_queue_size,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use KeyConfig.ProtoReflect.Descriptor instead.
func (*KeyConfig) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{29}
}

func (x *KeyConfig) GetKeyId() *MasterPublicKeyId {
	if x != nil {
		return x.KeyId
	}
	return nil
}

func (x *KeyConfig) GetMaxQueueSize() uint32 {
	if x != nil && x.MaxQueueSize != nil {
		return *x.MaxQueueSize
	}
	return 0
}

func (x *KeyConfig) GetPreSignaturesToCreateInAdvance() uint32 {
	if x != nil && x.PreSignaturesToCreateInAdvance != nil {
		return *x.PreSignaturesToCreateInAdvance
	}
	return 0
}

func (*KeyConfig) ProtoMessage() {}

func (x *KeyConfig) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[29]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *KeyConfig) Reset() {
	*x = KeyConfig{}
	mi := &file_subnet_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *KeyConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type MasterPublicKeyId struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to KeyId:
	//
	//	*MasterPublicKeyId_Ecdsa
	//	*MasterPublicKeyId_Schnorr
	KeyId         isMasterPublicKeyId_KeyId `protobuf_oneof:"key_id"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use MasterPublicKeyId.ProtoReflect.Descriptor instead.
func (*MasterPublicKeyId) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{28}
}

func (x *MasterPublicKeyId) GetEcdsa() *EcdsaKeyId {
	if x != nil {
		if x, ok := x.KeyId.(*MasterPublicKeyId_Ecdsa); ok {
			return x.Ecdsa
		}
	}
	return nil
}

func (x *MasterPublicKeyId) GetKeyId() isMasterPublicKeyId_KeyId {
	if x != nil {
		return x.KeyId
	}
	return nil
}

func (x *MasterPublicKeyId) GetSchnorr() *SchnorrKeyId {
	if x != nil {
		if x, ok := x.KeyId.(*MasterPublicKeyId_Schnorr); ok {
			return x.Schnorr
		}
	}
	return nil
}

func (*MasterPublicKeyId) ProtoMessage() {}

func (x *MasterPublicKeyId) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[28]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *MasterPublicKeyId) Reset() {
	*x = MasterPublicKeyId{}
	mi := &file_subnet_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MasterPublicKeyId) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type MasterPublicKeyId_Ecdsa struct {
	Ecdsa *EcdsaKeyId `protobuf:"bytes,1,opt,name=ecdsa,proto3,oneof"`
}

func (*MasterPublicKeyId_Ecdsa) isMasterPublicKeyId_KeyId() {}

type MasterPublicKeyId_Schnorr struct {
	Schnorr *SchnorrKeyId `protobuf:"bytes,2,opt,name=schnorr,proto3,oneof"`
}

func (*MasterPublicKeyId_Schnorr) isMasterPublicKeyId_KeyId() {}

// A non-interactive distributed key generation (NI-DKG) ID.
type NiDkgId struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	StartBlockHeight uint64                 `protobuf:"varint,1,opt,name=start_block_height,json=startBlockHeight,proto3" json:"start_block_height,omitempty"`
	DealerSubnet     []byte                 `protobuf:"bytes,2,opt,name=dealer_subnet,json=dealerSubnet,proto3" json:"dealer_subnet,omitempty"`
	DkgTag           NiDkgTag               `protobuf:"varint,4,opt,name=dkg_tag,json=dkgTag,proto3,enum=registry.subnet.v1.NiDkgTag" json:"dkg_tag,omitempty"`
	RemoteTargetId   *wrapperspb.BytesValue `protobuf:"bytes,5,opt,name=remote_target_id,json=remoteTargetId,proto3" json:"remote_target_id,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

// Deprecated: Use NiDkgId.ProtoReflect.Descriptor instead.
func (*NiDkgId) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{6}
}

func (x *NiDkgId) GetDealerSubnet() []byte {
	if x != nil {
		return x.DealerSubnet
	}
	return nil
}

func (x *NiDkgId) GetDkgTag() NiDkgTag {
	if x != nil {
		return x.DkgTag
	}
	return NiDkgTag_NI_DKG_TAG_UNSPECIFIED
}

func (x *NiDkgId) GetRemoteTargetId() *wrapperspb.BytesValue {
	if x != nil {
		return x.RemoteTargetId
	}
	return nil
}

func (x *NiDkgId) GetStartBlockHeight() uint64 {
	if x != nil {
		return x.StartBlockHeight
	}
	return 0
}

func (*NiDkgId) ProtoMessage() {}

func (x *NiDkgId) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *NiDkgId) Reset() {
	*x = NiDkgId{}
	mi := &file_subnet_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NiDkgId) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// A non-interactive distributed key generation (NI-DKG) tag.
type NiDkgTag int32

const (
	NiDkgTag_NI_DKG_TAG_UNSPECIFIED    NiDkgTag = 0
	NiDkgTag_NI_DKG_TAG_LOW_THRESHOLD  NiDkgTag = 1
	NiDkgTag_NI_DKG_TAG_HIGH_THRESHOLD NiDkgTag = 2
)

func (NiDkgTag) Descriptor() protoreflect.EnumDescriptor {
	return file_subnet_proto_enumTypes[1].Descriptor()
}

func (x NiDkgTag) Enum() *NiDkgTag {
	p := new(NiDkgTag)
	*p = x
	return p
}

// Deprecated: Use NiDkgTag.Descriptor instead.
func (NiDkgTag) EnumDescriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{1}
}

func (x NiDkgTag) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

func (x NiDkgTag) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (NiDkgTag) Type() protoreflect.EnumType {
	return &file_subnet_proto_enumTypes[1]
}

type NodeId struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	PrincipalId   *PrincipalId           `protobuf:"bytes,1,opt,name=principal_id,json=principalId,proto3" json:"principal_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use NodeId.ProtoReflect.Descriptor instead.
func (*NodeId) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{12}
}

func (x *NodeId) GetPrincipalId() *PrincipalId {
	if x != nil {
		return x.PrincipalId
	}
	return nil
}

func (*NodeId) ProtoMessage() {}

func (x *NodeId) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *NodeId) Reset() {
	*x = NodeId{}
	mi := &file_subnet_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NodeId) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type PrincipalId struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Raw           []byte                 `protobuf:"bytes,1,opt,name=raw,proto3" json:"raw,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use PrincipalId.ProtoReflect.Descriptor instead.
func (*PrincipalId) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{8}
}

func (x *PrincipalId) GetRaw() []byte {
	if x != nil {
		return x.Raw
	}
	return nil
}

func (*PrincipalId) ProtoMessage() {}

func (x *PrincipalId) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *PrincipalId) Reset() {
	*x = PrincipalId{}
	mi := &file_subnet_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PrincipalId) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// A public key. Described by its `AlgorithmId`, the key's value and proof data holding, e.g., a proof of possession (PoP).
type PublicKey struct {
	state     protoimpl.MessageState `protogen:"open.v1"`
	Version   uint32                 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
	Algorithm AlgorithmId            `protobuf:"varint,2,opt,name=algorithm,proto3,enum=registry.subnet.v1.AlgorithmId" json:"algorithm,omitempty"`
	KeyValue  []byte                 `protobuf:"bytes,3,opt,name=key_value,json=keyValue,proto3" json:"key_value,omitempty"`
	ProofData *wrapperspb.BytesValue `protobuf:"bytes,4,opt,name=proof_data,json=proofData,proto3" json:"proof_data,omitempty"`
	// Number of non-leap-milliseconds since January 1, 1970 UTC.
	Timestamp     *wrapperspb.UInt64Value `protobuf:"bytes,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use PublicKey.ProtoReflect.Descriptor instead.
func (*PublicKey) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{13}
}

func (x *PublicKey) GetAlgorithm() AlgorithmId {
	if x != nil {
		return x.Algorithm
	}
	return AlgorithmId_ALGORITHM_ID_UNSPECIFIED
}

func (x *PublicKey) GetKeyValue() []byte {
	if x != nil {
		return x.KeyValue
	}
	return nil
}

func (x *PublicKey) GetProofData() *wrapperspb.BytesValue {
	if x != nil {
		return x.ProofData
	}
	return nil
}

func (x *PublicKey) GetTimestamp() *wrapperspb.UInt64Value {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

func (x *PublicKey) GetVersion() uint32 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (*PublicKey) ProtoMessage() {}

func (x *PublicKey) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *PublicKey) Reset() {
	*x = PublicKey{}
	mi := &file_subnet_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PublicKey) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type RegistryStoreUri struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// / The uri at which the registry store data should be retrieved. The data
	// / must be provided as gzipped tar archive
	Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
	// / A SHA-256, hex encoded hash of the contents of the data stored at the
	// / provided URI
	Hash string `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
	// / The registry version that should be used for the catch up package contents
	RegistryVersion uint64 `protobuf:"varint,3,opt,name=registry_version,json=registryVersion,proto3" json:"registry_version,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

// Deprecated: Use RegistryStoreUri.ProtoReflect.Descriptor instead.
func (*RegistryStoreUri) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{4}
}

func (x *RegistryStoreUri) GetHash() string {
	if x != nil {
		return x.Hash
	}
	return ""
}

func (x *RegistryStoreUri) GetRegistryVersion() uint64 {
	if x != nil {
		return x.RegistryVersion
	}
	return 0
}

func (x *RegistryStoreUri) GetUri() string {
	if x != nil {
		return x.Uri
	}
	return ""
}

func (*RegistryStoreUri) ProtoMessage() {}

func (x *RegistryStoreUri) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *RegistryStoreUri) Reset() {
	*x = RegistryStoreUri{}
	mi := &file_subnet_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RegistryStoreUri) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Types of curves that can be used for Schnorr signatures.
type SchnorrAlgorithm int32

const (
	SchnorrAlgorithm_SCHNORR_ALGORITHM_UNSPECIFIED     SchnorrAlgorithm = 0
	SchnorrAlgorithm_SCHNORR_ALGORITHM_BIP340SECP256K1 SchnorrAlgorithm = 1
	SchnorrAlgorithm_SCHNORR_ALGORITHM_ED25519         SchnorrAlgorithm = 2
)

func (SchnorrAlgorithm) Descriptor() protoreflect.EnumDescriptor {
	return file_subnet_proto_enumTypes[5].Descriptor()
}

func (x SchnorrAlgorithm) Enum() *SchnorrAlgorithm {
	p := new(SchnorrAlgorithm)
	*p = x
	return p
}

// Deprecated: Use SchnorrAlgorithm.Descriptor instead.
func (SchnorrAlgorithm) EnumDescriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{5}
}

func (x SchnorrAlgorithm) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

func (x SchnorrAlgorithm) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SchnorrAlgorithm) Type() protoreflect.EnumType {
	return &file_subnet_proto_enumTypes[5]
}

type SchnorrKeyId struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Algorithm     SchnorrAlgorithm       `protobuf:"varint,1,opt,name=algorithm,proto3,enum=registry.subnet.v1.SchnorrAlgorithm" json:"algorithm,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use SchnorrKeyId.ProtoReflect.Descriptor instead.
func (*SchnorrKeyId) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{27}
}

func (x *SchnorrKeyId) GetAlgorithm() SchnorrAlgorithm {
	if x != nil {
		return x.Algorithm
	}
	return SchnorrAlgorithm_SCHNORR_ALGORITHM_UNSPECIFIED
}

func (x *SchnorrKeyId) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (*SchnorrKeyId) ProtoMessage() {}

func (x *SchnorrKeyId) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[27]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *SchnorrKeyId) Reset() {
	*x = SchnorrKeyId{}
	mi := &file_subnet_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SchnorrKeyId) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type SignatureTuple struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Signer        *NodeId                `protobuf:"bytes,1,opt,name=signer,proto3" json:"signer,omitempty"`
	Signature     []byte                 `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use SignatureTuple.ProtoReflect.Descriptor instead.
func (*SignatureTuple) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{16}
}

func (x *SignatureTuple) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (x *SignatureTuple) GetSigner() *NodeId {
	if x != nil {
		return x.Signer
	}
	return nil
}

func (*SignatureTuple) ProtoMessage() {}

func (x *SignatureTuple) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *SignatureTuple) Reset() {
	*x = SignatureTuple{}
	mi := &file_subnet_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignatureTuple) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type SubnetFeatures struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// This feature flag controls whether canister execution happens
	// in sandboxed process or not. It is disabled by default.
	CanisterSandboxing bool `protobuf:"varint,2,opt,name=canister_sandboxing,json=canisterSandboxing,proto3" json:"canister_sandboxing,omitempty"`
	// This feature flag controls whether canisters of this subnet are capable of
	// performing http(s) requests to the web2.
	HttpRequests bool `protobuf:"varint,3,opt,name=http_requests,json=httpRequests,proto3" json:"http_requests,omitempty"`
	// Status of the SEV-SNP feature.
	SevEnabled    *bool `protobuf:"varint,9,opt,name=sev_enabled,json=sevEnabled,proto3,oneof" json:"sev_enabled,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use SubnetFeatures.ProtoReflect.Descriptor instead.
func (*SubnetFeatures) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{25}
}

func (x *SubnetFeatures) GetCanisterSandboxing() bool {
	if x != nil {
		return x.CanisterSandboxing
	}
	return false
}

func (x *SubnetFeatures) GetHttpRequests() bool {
	if x != nil {
		return x.HttpRequests
	}
	return false
}

func (x *SubnetFeatures) GetSevEnabled() bool {
	if x != nil && x.SevEnabled != nil {
		return *x.SevEnabled
	}
	return false
}

func (*SubnetFeatures) ProtoMessage() {}

func (x *SubnetFeatures) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[25]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *SubnetFeatures) Reset() {
	*x = SubnetFeatures{}
	mi := &file_subnet_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SubnetFeatures) String() string {
	return protoimpl.X.MessageStringOf(x)
}

type SubnetId struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	PrincipalId   *PrincipalId           `protobuf:"bytes,1,opt,name=principal_id,json=principalId,proto3" json:"principal_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use SubnetId.ProtoReflect.Descriptor instead.
func (*SubnetId) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{9}
}

func (x *SubnetId) GetPrincipalId() *PrincipalId {
	if x != nil {
		return x.PrincipalId
	}
	return nil
}

func (*SubnetId) ProtoMessage() {}

func (x *SubnetId) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *SubnetId) Reset() {
	*x = SubnetId{}
	mi := &file_subnet_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SubnetId) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Contains information pertaining to all subnets in the IC and their params.
type SubnetListRecord struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// A list of subnet ids of all subnets present in this instance of the IC.
	Subnets       [][]byte `protobuf:"bytes,2,rep,name=subnets,proto3" json:"subnets,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Deprecated: Use SubnetListRecord.ProtoReflect.Descriptor instead.
func (*SubnetListRecord) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{5}
}

func (x *SubnetListRecord) GetSubnets() [][]byte {
	if x != nil {
		return x.Subnets
	}
	return nil
}

func (*SubnetListRecord) ProtoMessage() {}

func (x *SubnetListRecord) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *SubnetListRecord) Reset() {
	*x = SubnetListRecord{}
	mi := &file_subnet_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SubnetListRecord) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// A subnet: A logical group of nodes that run consensus
type SubnetRecord struct {
	state      protoimpl.MessageState `protogen:"open.v1"`
	Membership [][]byte               `protobuf:"bytes,3,rep,name=membership,proto3" json:"membership,omitempty"`
	// Maximum amount of bytes per message. This is a hard cap, which means
	// ingress messages greater than the limit will be dropped.
	MaxIngressBytesPerMessage uint64 `protobuf:"varint,5,opt,name=max_ingress_bytes_per_message,json=maxIngressBytesPerMessage,proto3" json:"max_ingress_bytes_per_message,omitempty"`
	// Unit delay for blockmaker (in milliseconds).
	UnitDelayMillis uint64 `protobuf:"varint,7,opt,name=unit_delay_millis,json=unitDelayMillis,proto3" json:"unit_delay_millis,omitempty"`
	// Initial delay for notary (in milliseconds), to give time to rank-0 block
	// propagation.
	InitialNotaryDelayMillis uint64 `protobuf:"varint,8,opt,name=initial_notary_delay_millis,json=initialNotaryDelayMillis,proto3" json:"initial_notary_delay_millis,omitempty"`
	// ID of the Replica version to run
	ReplicaVersionId string `protobuf:"bytes,9,opt,name=replica_version_id,json=replicaVersionId,proto3" json:"replica_version_id,omitempty"`
	// The length of all DKG intervals. The DKG interval length is the number of rounds following the DKG summary.
	DkgIntervalLength uint64 `protobuf:"varint,10,opt,name=dkg_interval_length,json=dkgIntervalLength,proto3" json:"dkg_interval_length,omitempty"`
	// Gossip Config
	GossipConfig *GossipConfig `protobuf:"bytes,13,opt,name=gossip_config,json=gossipConfig,proto3" json:"gossip_config,omitempty"`
	// If set to yes, the subnet starts as a (new) NNS
	StartAsNns bool `protobuf:"varint,14,opt,name=start_as_nns,json=startAsNns,proto3" json:"start_as_nns,omitempty"`
	// The type of subnet.
	SubnetType SubnetType `protobuf:"varint,15,opt,name=subnet_type,json=subnetType,proto3,enum=registry.subnet.v1.SubnetType" json:"subnet_type,omitempty"`
	// The upper bound for the number of dealings we allow in a block.
	DkgDealingsPerBlock uint64 `protobuf:"varint,16,opt,name=dkg_dealings_per_block,json=dkgDealingsPerBlock,proto3" json:"dkg_dealings_per_block,omitempty"`
	// If `true`, the subnet will be halted: it will no longer create or execute blocks.
	IsHalted bool `protobuf:"varint,17,opt,name=is_halted,json=isHalted,proto3" json:"is_halted,omitempty"`
	// Max number of ingress messages per block.
	MaxIngressMessagesPerBlock uint64 `protobuf:"varint,18,opt,name=max_ingress_messages_per_block,json=maxIngressMessagesPerBlock,proto3" json:"max_ingress_messages_per_block,omitempty"`
	// The maximum combined size of the ingress and xnet messages that fit into a block.
	MaxBlockPayloadSize uint64 `protobuf:"varint,19,opt,name=max_block_payload_size,json=maxBlockPayloadSize,proto3" json:"max_block_payload_size,omitempty"`
	// The maximum number of instructions a message can execute.
	// See the comments in `subnet_config.rs` for more details.
	MaxInstructionsPerMessage uint64 `protobuf:"varint,20,opt,name=max_instructions_per_message,json=maxInstructionsPerMessage,proto3" json:"max_instructions_per_message,omitempty"`
	// The maximum number of instructions a round can execute.
	// See the comments in `subnet_config.rs` for more details.
	MaxInstructionsPerRound uint64 `protobuf:"varint,21,opt,name=max_instructions_per_round,json=maxInstructionsPerRound,proto3" json:"max_instructions_per_round,omitempty"`
	// The maximum number of instructions an `install_code` message can execute.
	// See the comments in `subnet_config.rs` for more details.
	MaxInstructionsPerInstallCode uint64 `protobuf:"varint,22,opt,name=max_instructions_per_install_code,json=maxInstructionsPerInstallCode,proto3" json:"max_instructions_per_install_code,omitempty"`
	// Information on whether a feature is supported by this subnet.
	Features *SubnetFeatures `protobuf:"bytes,23,opt,name=features,proto3" json:"features,omitempty"`
	// The maximum number of canisters that may be present on the subnet at any given time.
	//
	// A value of 0 is equivalent to setting no limit. This also provides an easy way
	// to maintain compatibility of different versions of replica and registry.
	MaxNumberOfCanisters uint64 `protobuf:"varint,24,opt,name=max_number_of_canisters,json=maxNumberOfCanisters,proto3" json:"max_number_of_canisters,omitempty"`
	// The list of public keys whose owners have "readonly" SSH access to all replicas on this subnet,
	// in case it is necessary to perform subnet recovery.
	SshReadonlyAccess []string `protobuf:"bytes,25,rep,name=ssh_readonly_access,json=sshReadonlyAccess,proto3" json:"ssh_readonly_access,omitempty"`
	// The list of public keys whose owners have "backup" SSH access to nodes on the NNS subnet
	// to make sure the NNS can be backed up.
	SshBackupAccess []string `protobuf:"bytes,26,rep,name=ssh_backup_access,json=sshBackupAccess,proto3" json:"ssh_backup_access,omitempty"`
	// ECDSA Config. This field cannot be set back to `None` once it has been set
	// to `Some`. To remove a key, the list of `key_ids` can be set to not include a particular key.
	// If a removed key is not held by another subnet, it will be lost.
	//
	// Deprecated; please use chain_key_config instead.
	EcdsaConfig *EcdsaConfig `protobuf:"bytes,27,opt,name=ecdsa_config,json=ecdsaConfig,proto3" json:"ecdsa_config,omitempty"`
	// If `true`, the subnet will be halted after reaching the next cup height: it will no longer
	// create or execute blocks.
	//
	// Note: this flag is reset automatically when a new CUP proposal is approved. When that
	// happens, the `is_halted` flag is set to `true`, so the Subnet remains halted until an
	// appropriate proposal which sets `is_halted` to `false` is approved.
	HaltAtCupHeight bool `protobuf:"varint,28,opt,name=halt_at_cup_height,json=haltAtCupHeight,proto3" json:"halt_at_cup_height,omitempty"`
	// Cryptographic key configuration. This field cannot be set back to `None` once it has been set
	// to `Some`. To remove a key, the list of `key_configs` can be set to not include a particular
	// key. If the removed key is not held by another subnet, it will be lost.
	ChainKeyConfig *ChainKeyConfig `protobuf:"bytes,29,opt,name=chain_key_config,json=chainKeyConfig,proto3,oneof" json:"chain_key_config,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

// Deprecated: Use SubnetRecord.ProtoReflect.Descriptor instead.
func (*SubnetRecord) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{0}
}

func (x *SubnetRecord) GetChainKeyConfig() *ChainKeyConfig {
	if x != nil {
		return x.ChainKeyConfig
	}
	return nil
}

func (x *SubnetRecord) GetDkgDealingsPerBlock() uint64 {
	if x != nil {
		return x.DkgDealingsPerBlock
	}
	return 0
}

func (x *SubnetRecord) GetDkgIntervalLength() uint64 {
	if x != nil {
		return x.DkgIntervalLength
	}
	return 0
}

func (x *SubnetRecord) GetEcdsaConfig() *EcdsaConfig {
	if x != nil {
		return x.EcdsaConfig
	}
	return nil
}

func (x *SubnetRecord) GetFeatures() *SubnetFeatures {
	if x != nil {
		return x.Features
	}
	return nil
}

func (x *SubnetRecord) GetGossipConfig() *GossipConfig {
	if x != nil {
		return x.GossipConfig
	}
	return nil
}

func (x *SubnetRecord) GetHaltAtCupHeight() bool {
	if x != nil {
		return x.HaltAtCupHeight
	}
	return false
}

func (x *SubnetRecord) GetInitialNotaryDelayMillis() uint64 {
	if x != nil {
		return x.InitialNotaryDelayMillis
	}
	return 0
}

func (x *SubnetRecord) GetIsHalted() bool {
	if x != nil {
		return x.IsHalted
	}
	return false
}

func (x *SubnetRecord) GetMaxBlockPayloadSize() uint64 {
	if x != nil {
		return x.MaxBlockPayloadSize
	}
	return 0
}

func (x *SubnetRecord) GetMaxIngressBytesPerMessage() uint64 {
	if x != nil {
		return x.MaxIngressBytesPerMessage
	}
	return 0
}

func (x *SubnetRecord) GetMaxIngressMessagesPerBlock() uint64 {
	if x != nil {
		return x.MaxIngressMessagesPerBlock
	}
	return 0
}

func (x *SubnetRecord) GetMaxInstructionsPerInstallCode() uint64 {
	if x != nil {
		return x.MaxInstructionsPerInstallCode
	}
	return 0
}

func (x *SubnetRecord) GetMaxInstructionsPerMessage() uint64 {
	if x != nil {
		return x.MaxInstructionsPerMessage
	}
	return 0
}

func (x *SubnetRecord) GetMaxInstructionsPerRound() uint64 {
	if x != nil {
		return x.MaxInstructionsPerRound
	}
	return 0
}

func (x *SubnetRecord) GetMaxNumberOfCanisters() uint64 {
	if x != nil {
		return x.MaxNumberOfCanisters
	}
	return 0
}

func (x *SubnetRecord) GetMembership() [][]byte {
	if x != nil {
		return x.Membership
	}
	return nil
}

func (x *SubnetRecord) GetReplicaVersionId() string {
	if x != nil {
		return x.ReplicaVersionId
	}
	return ""
}

func (x *SubnetRecord) GetSshBackupAccess() []string {
	if x != nil {
		return x.SshBackupAccess
	}
	return nil
}

func (x *SubnetRecord) GetSshReadonlyAccess() []string {
	if x != nil {
		return x.SshReadonlyAccess
	}
	return nil
}

func (x *SubnetRecord) GetStartAsNns() bool {
	if x != nil {
		return x.StartAsNns
	}
	return false
}

func (x *SubnetRecord) GetSubnetType() SubnetType {
	if x != nil {
		return x.SubnetType
	}
	return SubnetType_SUBNET_TYPE_UNSPECIFIED
}

func (x *SubnetRecord) GetUnitDelayMillis() uint64 {
	if x != nil {
		return x.UnitDelayMillis
	}
	return 0
}

func (*SubnetRecord) ProtoMessage() {}

func (x *SubnetRecord) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *SubnetRecord) Reset() {
	*x = SubnetRecord{}
	mi := &file_subnet_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SubnetRecord) String() string {
	return protoimpl.X.MessageStringOf(x)
}

// Represents the type of subnet. Subnets of different type might exhibit different
// behavior, e.g. being more restrictive in what operations are allowed or privileged
// compared to other subnet types.
type SubnetType int32

const (
	SubnetType_SUBNET_TYPE_UNSPECIFIED SubnetType = 0
	// A normal subnet where no restrictions are applied.
	SubnetType_SUBNET_TYPE_APPLICATION SubnetType = 1
	// A more privileged subnet where certain restrictions are applied,
	// like not charging for cycles or restricting who can create and
	// install canisters on it.
	SubnetType_SUBNET_TYPE_SYSTEM SubnetType = 2
	// A subnet type that is like application subnets but can have some
	// additional features.
	SubnetType_SUBNET_TYPE_VERIFIED_APPLICATION SubnetType = 4
)

func (SubnetType) Descriptor() protoreflect.EnumDescriptor {
	return file_subnet_proto_enumTypes[4].Descriptor()
}

func (x SubnetType) Enum() *SubnetType {
	p := new(SubnetType)
	*p = x
	return p
}

// Deprecated: Use SubnetType.Descriptor instead.
func (SubnetType) EnumDescriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{4}
}

func (x SubnetType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

func (x SubnetType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SubnetType) Type() protoreflect.EnumType {
	return &file_subnet_proto_enumTypes[4]
}

type VerifiedIDkgDealing struct {
	state              protoimpl.MessageState  `protogen:"open.v1"`
	DealerIndex        uint32                  `protobuf:"varint,1,opt,name=dealer_index,json=dealerIndex,proto3" json:"dealer_index,omitempty"`
	SignedDealingTuple *IDkgSignedDealingTuple `protobuf:"bytes,6,opt,name=signed_dealing_tuple,json=signedDealingTuple,proto3" json:"signed_dealing_tuple,omitempty"`
	SupportTuples      []*SignatureTuple       `protobuf:"bytes,7,rep,name=support_tuples,json=supportTuples,proto3" json:"support_tuples,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

// Deprecated: Use VerifiedIDkgDealing.ProtoReflect.Descriptor instead.
func (*VerifiedIDkgDealing) Descriptor() ([]byte, []int) {
	return file_subnet_proto_rawDescGZIP(), []int{11}
}

func (x *VerifiedIDkgDealing) GetDealerIndex() uint32 {
	if x != nil {
		return x.DealerIndex
	}
	return 0
}

func (x *VerifiedIDkgDealing) GetSignedDealingTuple() *IDkgSignedDealingTuple {
	if x != nil {
		return x.SignedDealingTuple
	}
	return nil
}

func (x *VerifiedIDkgDealing) GetSupportTuples() []*SignatureTuple {
	if x != nil {
		return x.SupportTuples
	}
	return nil
}
func (*VerifiedIDkgDealing) ProtoMessage() {}
func (x *VerifiedIDkgDealing) ProtoReflect() protoreflect.Message {
	mi := &file_subnet_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}
func (x *VerifiedIDkgDealing) Reset() {
	*x = VerifiedIDkgDealing{}
	mi := &file_subnet_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *VerifiedIDkgDealing) String() string {
	return protoimpl.X.MessageStringOf(x)
}
type isMasterPublicKeyId_KeyId interface {
	isMasterPublicKeyId_KeyId()
}
