// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.1
// 	protoc        (unknown)
// source: evaluation/evaluation.proto

package evaluation

import (
	_ "github.com/google/gnostic-models/openapiv3"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	_ "google.golang.org/genproto/googleapis/api/visibility"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	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)
)

type EvaluationReason int32

const (
	EvaluationReason_UNKNOWN_EVALUATION_REASON       EvaluationReason = 0
	EvaluationReason_FLAG_DISABLED_EVALUATION_REASON EvaluationReason = 1
	EvaluationReason_MATCH_EVALUATION_REASON         EvaluationReason = 2
	EvaluationReason_DEFAULT_EVALUATION_REASON       EvaluationReason = 3
)

// Enum value maps for EvaluationReason.
var (
	EvaluationReason_name = map[int32]string{
		0: "UNKNOWN_EVALUATION_REASON",
		1: "FLAG_DISABLED_EVALUATION_REASON",
		2: "MATCH_EVALUATION_REASON",
		3: "DEFAULT_EVALUATION_REASON",
	}
	EvaluationReason_value = map[string]int32{
		"UNKNOWN_EVALUATION_REASON":       0,
		"FLAG_DISABLED_EVALUATION_REASON": 1,
		"MATCH_EVALUATION_REASON":         2,
		"DEFAULT_EVALUATION_REASON":       3,
	}
)

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

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

func (EvaluationReason) Descriptor() protoreflect.EnumDescriptor {
	return file_evaluation_evaluation_proto_enumTypes[0].Descriptor()
}

func (EvaluationReason) Type() protoreflect.EnumType {
	return &file_evaluation_evaluation_proto_enumTypes[0]
}

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

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

type ErrorEvaluationReason int32

const (
	ErrorEvaluationReason_UNKNOWN_ERROR_EVALUATION_REASON   ErrorEvaluationReason = 0
	ErrorEvaluationReason_NOT_FOUND_ERROR_EVALUATION_REASON ErrorEvaluationReason = 1
)

// Enum value maps for ErrorEvaluationReason.
var (
	ErrorEvaluationReason_name = map[int32]string{
		0: "UNKNOWN_ERROR_EVALUATION_REASON",
		1: "NOT_FOUND_ERROR_EVALUATION_REASON",
	}
	ErrorEvaluationReason_value = map[string]int32{
		"UNKNOWN_ERROR_EVALUATION_REASON":   0,
		"NOT_FOUND_ERROR_EVALUATION_REASON": 1,
	}
)

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

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

func (ErrorEvaluationReason) Descriptor() protoreflect.EnumDescriptor {
	return file_evaluation_evaluation_proto_enumTypes[1].Descriptor()
}

func (ErrorEvaluationReason) Type() protoreflect.EnumType {
	return &file_evaluation_evaluation_proto_enumTypes[1]
}

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

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

type EvaluationResponseType int32

const (
	EvaluationResponseType_VARIANT_EVALUATION_RESPONSE_TYPE EvaluationResponseType = 0
	EvaluationResponseType_BOOLEAN_EVALUATION_RESPONSE_TYPE EvaluationResponseType = 1
	EvaluationResponseType_ERROR_EVALUATION_RESPONSE_TYPE   EvaluationResponseType = 2
)

// Enum value maps for EvaluationResponseType.
var (
	EvaluationResponseType_name = map[int32]string{
		0: "VARIANT_EVALUATION_RESPONSE_TYPE",
		1: "BOOLEAN_EVALUATION_RESPONSE_TYPE",
		2: "ERROR_EVALUATION_RESPONSE_TYPE",
	}
	EvaluationResponseType_value = map[string]int32{
		"VARIANT_EVALUATION_RESPONSE_TYPE": 0,
		"BOOLEAN_EVALUATION_RESPONSE_TYPE": 1,
		"ERROR_EVALUATION_RESPONSE_TYPE":   2,
	}
)

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

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

func (EvaluationResponseType) Descriptor() protoreflect.EnumDescriptor {
	return file_evaluation_evaluation_proto_enumTypes[2].Descriptor()
}

func (EvaluationResponseType) Type() protoreflect.EnumType {
	return &file_evaluation_evaluation_proto_enumTypes[2]
}

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

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

type EvaluationRolloutType int32

const (
	EvaluationRolloutType_UNKNOWN_ROLLOUT_TYPE   EvaluationRolloutType = 0
	EvaluationRolloutType_SEGMENT_ROLLOUT_TYPE   EvaluationRolloutType = 1
	EvaluationRolloutType_THRESHOLD_ROLLOUT_TYPE EvaluationRolloutType = 2
)

// Enum value maps for EvaluationRolloutType.
var (
	EvaluationRolloutType_name = map[int32]string{
		0: "UNKNOWN_ROLLOUT_TYPE",
		1: "SEGMENT_ROLLOUT_TYPE",
		2: "THRESHOLD_ROLLOUT_TYPE",
	}
	EvaluationRolloutType_value = map[string]int32{
		"UNKNOWN_ROLLOUT_TYPE":   0,
		"SEGMENT_ROLLOUT_TYPE":   1,
		"THRESHOLD_ROLLOUT_TYPE": 2,
	}
)

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

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

func (EvaluationRolloutType) Descriptor() protoreflect.EnumDescriptor {
	return file_evaluation_evaluation_proto_enumTypes[3].Descriptor()
}

func (EvaluationRolloutType) Type() protoreflect.EnumType {
	return &file_evaluation_evaluation_proto_enumTypes[3]
}

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

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

type EvaluationSegmentOperator int32

const (
	EvaluationSegmentOperator_OR_SEGMENT_OPERATOR  EvaluationSegmentOperator = 0
	EvaluationSegmentOperator_AND_SEGMENT_OPERATOR EvaluationSegmentOperator = 1
)

// Enum value maps for EvaluationSegmentOperator.
var (
	EvaluationSegmentOperator_name = map[int32]string{
		0: "OR_SEGMENT_OPERATOR",
		1: "AND_SEGMENT_OPERATOR",
	}
	EvaluationSegmentOperator_value = map[string]int32{
		"OR_SEGMENT_OPERATOR":  0,
		"AND_SEGMENT_OPERATOR": 1,
	}
)

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

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

func (EvaluationSegmentOperator) Descriptor() protoreflect.EnumDescriptor {
	return file_evaluation_evaluation_proto_enumTypes[4].Descriptor()
}

func (EvaluationSegmentOperator) Type() protoreflect.EnumType {
	return &file_evaluation_evaluation_proto_enumTypes[4]
}

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

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

type EvaluationSegmentMatchType int32

const (
	EvaluationSegmentMatchType_ALL_SEGMENT_MATCH_TYPE EvaluationSegmentMatchType = 0
	EvaluationSegmentMatchType_ANY_SEGMENT_MATCH_TYPE EvaluationSegmentMatchType = 1
)

// Enum value maps for EvaluationSegmentMatchType.
var (
	EvaluationSegmentMatchType_name = map[int32]string{
		0: "ALL_SEGMENT_MATCH_TYPE",
		1: "ANY_SEGMENT_MATCH_TYPE",
	}
	EvaluationSegmentMatchType_value = map[string]int32{
		"ALL_SEGMENT_MATCH_TYPE": 0,
		"ANY_SEGMENT_MATCH_TYPE": 1,
	}
)

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

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

func (EvaluationSegmentMatchType) Descriptor() protoreflect.EnumDescriptor {
	return file_evaluation_evaluation_proto_enumTypes[5].Descriptor()
}

func (EvaluationSegmentMatchType) Type() protoreflect.EnumType {
	return &file_evaluation_evaluation_proto_enumTypes[5]
}

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

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

type EvaluationFlagType int32

const (
	EvaluationFlagType_VARIANT_FLAG_TYPE EvaluationFlagType = 0
	EvaluationFlagType_BOOLEAN_FLAG_TYPE EvaluationFlagType = 1
)

// Enum value maps for EvaluationFlagType.
var (
	EvaluationFlagType_name = map[int32]string{
		0: "VARIANT_FLAG_TYPE",
		1: "BOOLEAN_FLAG_TYPE",
	}
	EvaluationFlagType_value = map[string]int32{
		"VARIANT_FLAG_TYPE": 0,
		"BOOLEAN_FLAG_TYPE": 1,
	}
)

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

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

func (EvaluationFlagType) Descriptor() protoreflect.EnumDescriptor {
	return file_evaluation_evaluation_proto_enumTypes[6].Descriptor()
}

func (EvaluationFlagType) Type() protoreflect.EnumType {
	return &file_evaluation_evaluation_proto_enumTypes[6]
}

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

// Deprecated: Use EvaluationFlagType.Descriptor instead.
func (EvaluationFlagType) EnumDescriptor() ([]byte, []int) {
	return file_evaluation_evaluation_proto_rawDescGZIP(), []int{6}
}

type EvaluationConstraintComparisonType int32

const (
	EvaluationConstraintComparisonType_UNKNOWN_CONSTRAINT_COMPARISON_TYPE   EvaluationConstraintComparisonType = 0
	EvaluationConstraintComparisonType_STRING_CONSTRAINT_COMPARISON_TYPE    EvaluationConstraintComparisonType = 1
	EvaluationConstraintComparisonType_NUMBER_CONSTRAINT_COMPARISON_TYPE    EvaluationConstraintComparisonType = 2
	EvaluationConstraintComparisonType_BOOLEAN_CONSTRAINT_COMPARISON_TYPE   EvaluationConstraintComparisonType = 3
	EvaluationConstraintComparisonType_DATETIME_CONSTRAINT_COMPARISON_TYPE  EvaluationConstraintComparisonType = 4
	EvaluationConstraintComparisonType_ENTITY_ID_CONSTRAINT_COMPARISON_TYPE EvaluationConstraintComparisonType = 5
)

// Enum value maps for EvaluationConstraintComparisonType.
var (
	EvaluationConstraintComparisonType_name = map[int32]string{
		0: "UNKNOWN_CONSTRAINT_COMPARISON_TYPE",
		1: "STRING_CONSTRAINT_COMPARISON_TYPE",
		2: "NUMBER_CONSTRAINT_COMPARISON_TYPE",
		3: "BOOLEAN_CONSTRAINT_COMPARISON_TYPE",
		4: "DATETIME_CONSTRAINT_COMPARISON_TYPE",
		5: "ENTITY_ID_CONSTRAINT_COMPARISON_TYPE",
	}
	EvaluationConstraintComparisonType_value = map[string]int32{
		"UNKNOWN_CONSTRAINT_COMPARISON_TYPE":   0,
		"STRING_CONSTRAINT_COMPARISON_TYPE":    1,
		"NUMBER_CONSTRAINT_COMPARISON_TYPE":    2,
		"BOOLEAN_CONSTRAINT_COMPARISON_TYPE":   3,
		"DATETIME_CONSTRAINT_COMPARISON_TYPE":  4,
		"ENTITY_ID_CONSTRAINT_COMPARISON_TYPE": 5,
	}
)

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

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

func (EvaluationConstraintComparisonType) Descriptor() protoreflect.EnumDescriptor {
	return file_evaluation_evaluation_proto_enumTypes[7].Descriptor()
}

func (EvaluationConstraintComparisonType) Type() protoreflect.EnumType {
	return &file_evaluation_evaluation_proto_enumTypes[7]
}

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

// Deprecated: Use EvaluationConstraintComparisonType.Descriptor instead.
func (EvaluationConstraintComparisonType) EnumDescriptor() ([]byte, []int) {
	return file_evaluation_evaluation_proto_rawDescGZIP(), []int{7}
}

type EvaluationRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RequestId     string                 `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	NamespaceKey  string                 `protobuf:"bytes,2,opt,name=namespace_key,json=namespaceKey,proto3" json:"namespace_key,omitempty"`
	FlagKey       string                 `protobuf:"bytes,3,opt,name=flag_key,json=flagKey,proto3" json:"flag_key,omitempty"`
	EntityId      string                 `protobuf:"bytes,4,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"`
	Context       map[string]string      `protobuf:"bytes,5,rep,name=context,proto3" json:"context,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	Reference     string                 `protobuf:"bytes,6,opt,name=reference,proto3" json:"reference,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EvaluationRequest) ProtoMessage() {}

func (x *EvaluationRequest) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *EvaluationRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *EvaluationRequest) GetNamespaceKey() string {
	if x != nil {
		return x.NamespaceKey
	}
	return ""
}

func (x *EvaluationRequest) GetFlagKey() string {
	if x != nil {
		return x.FlagKey
	}
	return ""
}

func (x *EvaluationRequest) GetEntityId() string {
	if x != nil {
		return x.EntityId
	}
	return ""
}

func (x *EvaluationRequest) GetContext() map[string]string {
	if x != nil {
		return x.Context
	}
	return nil
}

func (x *EvaluationRequest) GetReference() string {
	if x != nil {
		return x.Reference
	}
	return ""
}

type BatchEvaluationRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RequestId     string                 `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	Requests      []*EvaluationRequest   `protobuf:"bytes,3,rep,name=requests,proto3" json:"requests,omitempty"`
	Reference     string                 `protobuf:"bytes,4,opt,name=reference,proto3" json:"reference,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*BatchEvaluationRequest) ProtoMessage() {}

func (x *BatchEvaluationRequest) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *BatchEvaluationRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *BatchEvaluationRequest) GetRequests() []*EvaluationRequest {
	if x != nil {
		return x.Requests
	}
	return nil
}

func (x *BatchEvaluationRequest) GetReference() string {
	if x != nil {
		return x.Reference
	}
	return ""
}

type BatchEvaluationResponse struct {
	state                 protoimpl.MessageState `protogen:"open.v1"`
	RequestId             string                 `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	Responses             []*EvaluationResponse  `protobuf:"bytes,2,rep,name=responses,proto3" json:"responses,omitempty"`
	RequestDurationMillis float64                `protobuf:"fixed64,3,opt,name=request_duration_millis,json=requestDurationMillis,proto3" json:"request_duration_millis,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

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

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

func (*BatchEvaluationResponse) ProtoMessage() {}

func (x *BatchEvaluationResponse) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *BatchEvaluationResponse) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *BatchEvaluationResponse) GetResponses() []*EvaluationResponse {
	if x != nil {
		return x.Responses
	}
	return nil
}

func (x *BatchEvaluationResponse) GetRequestDurationMillis() float64 {
	if x != nil {
		return x.RequestDurationMillis
	}
	return 0
}

type EvaluationResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Type  EvaluationResponseType `protobuf:"varint,1,opt,name=type,proto3,enum=flipt.evaluation.EvaluationResponseType" json:"type,omitempty"`
	// Types that are valid to be assigned to Response:
	//
	//	*EvaluationResponse_BooleanResponse
	//	*EvaluationResponse_VariantResponse
	//	*EvaluationResponse_ErrorResponse
	Response      isEvaluationResponse_Response `protobuf_oneof:"response"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EvaluationResponse) ProtoMessage() {}

func (x *EvaluationResponse) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *EvaluationResponse) GetType() EvaluationResponseType {
	if x != nil {
		return x.Type
	}
	return EvaluationResponseType_VARIANT_EVALUATION_RESPONSE_TYPE
}

func (x *EvaluationResponse) GetResponse() isEvaluationResponse_Response {
	if x != nil {
		return x.Response
	}
	return nil
}

func (x *EvaluationResponse) GetBooleanResponse() *BooleanEvaluationResponse {
	if x != nil {
		if x, ok := x.Response.(*EvaluationResponse_BooleanResponse); ok {
			return x.BooleanResponse
		}
	}
	return nil
}

func (x *EvaluationResponse) GetVariantResponse() *VariantEvaluationResponse {
	if x != nil {
		if x, ok := x.Response.(*EvaluationResponse_VariantResponse); ok {
			return x.VariantResponse
		}
	}
	return nil
}

func (x *EvaluationResponse) GetErrorResponse() *ErrorEvaluationResponse {
	if x != nil {
		if x, ok := x.Response.(*EvaluationResponse_ErrorResponse); ok {
			return x.ErrorResponse
		}
	}
	return nil
}

type isEvaluationResponse_Response interface {
	isEvaluationResponse_Response()
}

type EvaluationResponse_BooleanResponse struct {
	BooleanResponse *BooleanEvaluationResponse `protobuf:"bytes,2,opt,name=boolean_response,json=booleanResponse,proto3,oneof"`
}

type EvaluationResponse_VariantResponse struct {
	VariantResponse *VariantEvaluationResponse `protobuf:"bytes,3,opt,name=variant_response,json=variantResponse,proto3,oneof"`
}

type EvaluationResponse_ErrorResponse struct {
	ErrorResponse *ErrorEvaluationResponse `protobuf:"bytes,4,opt,name=error_response,json=errorResponse,proto3,oneof"`
}

func (*EvaluationResponse_BooleanResponse) isEvaluationResponse_Response() {}

func (*EvaluationResponse_VariantResponse) isEvaluationResponse_Response() {}

func (*EvaluationResponse_ErrorResponse) isEvaluationResponse_Response() {}

type BooleanEvaluationResponse struct {
	state                 protoimpl.MessageState `protogen:"open.v1"`
	Enabled               bool                   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Reason                EvaluationReason       `protobuf:"varint,2,opt,name=reason,proto3,enum=flipt.evaluation.EvaluationReason" json:"reason,omitempty"`
	RequestId             string                 `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	RequestDurationMillis float64                `protobuf:"fixed64,4,opt,name=request_duration_millis,json=requestDurationMillis,proto3" json:"request_duration_millis,omitempty"`
	Timestamp             *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	FlagKey               string                 `protobuf:"bytes,6,opt,name=flag_key,json=flagKey,proto3" json:"flag_key,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

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

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

func (*BooleanEvaluationResponse) ProtoMessage() {}

func (x *BooleanEvaluationResponse) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *BooleanEvaluationResponse) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *BooleanEvaluationResponse) GetReason() EvaluationReason {
	if x != nil {
		return x.Reason
	}
	return EvaluationReason_UNKNOWN_EVALUATION_REASON
}

func (x *BooleanEvaluationResponse) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *BooleanEvaluationResponse) GetRequestDurationMillis() float64 {
	if x != nil {
		return x.RequestDurationMillis
	}
	return 0
}

func (x *BooleanEvaluationResponse) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

func (x *BooleanEvaluationResponse) GetFlagKey() string {
	if x != nil {
		return x.FlagKey
	}
	return ""
}

type VariantEvaluationResponse struct {
	state                 protoimpl.MessageState `protogen:"open.v1"`
	Match                 bool                   `protobuf:"varint,1,opt,name=match,proto3" json:"match,omitempty"`
	SegmentKeys           []string               `protobuf:"bytes,2,rep,name=segment_keys,json=segmentKeys,proto3" json:"segment_keys,omitempty"`
	Reason                EvaluationReason       `protobuf:"varint,3,opt,name=reason,proto3,enum=flipt.evaluation.EvaluationReason" json:"reason,omitempty"`
	VariantKey            string                 `protobuf:"bytes,4,opt,name=variant_key,json=variantKey,proto3" json:"variant_key,omitempty"`
	VariantAttachment     string                 `protobuf:"bytes,5,opt,name=variant_attachment,json=variantAttachment,proto3" json:"variant_attachment,omitempty"`
	RequestId             string                 `protobuf:"bytes,6,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	RequestDurationMillis float64                `protobuf:"fixed64,7,opt,name=request_duration_millis,json=requestDurationMillis,proto3" json:"request_duration_millis,omitempty"`
	Timestamp             *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	FlagKey               string                 `protobuf:"bytes,9,opt,name=flag_key,json=flagKey,proto3" json:"flag_key,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

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

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

func (*VariantEvaluationResponse) ProtoMessage() {}

func (x *VariantEvaluationResponse) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *VariantEvaluationResponse) GetMatch() bool {
	if x != nil {
		return x.Match
	}
	return false
}

func (x *VariantEvaluationResponse) GetSegmentKeys() []string {
	if x != nil {
		return x.SegmentKeys
	}
	return nil
}

func (x *VariantEvaluationResponse) GetReason() EvaluationReason {
	if x != nil {
		return x.Reason
	}
	return EvaluationReason_UNKNOWN_EVALUATION_REASON
}

func (x *VariantEvaluationResponse) GetVariantKey() string {
	if x != nil {
		return x.VariantKey
	}
	return ""
}

func (x *VariantEvaluationResponse) GetVariantAttachment() string {
	if x != nil {
		return x.VariantAttachment
	}
	return ""
}

func (x *VariantEvaluationResponse) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *VariantEvaluationResponse) GetRequestDurationMillis() float64 {
	if x != nil {
		return x.RequestDurationMillis
	}
	return 0
}

func (x *VariantEvaluationResponse) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

func (x *VariantEvaluationResponse) GetFlagKey() string {
	if x != nil {
		return x.FlagKey
	}
	return ""
}

type ErrorEvaluationResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	FlagKey       string                 `protobuf:"bytes,1,opt,name=flag_key,json=flagKey,proto3" json:"flag_key,omitempty"`
	NamespaceKey  string                 `protobuf:"bytes,2,opt,name=namespace_key,json=namespaceKey,proto3" json:"namespace_key,omitempty"`
	Reason        ErrorEvaluationReason  `protobuf:"varint,3,opt,name=reason,proto3,enum=flipt.evaluation.ErrorEvaluationReason" json:"reason,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ErrorEvaluationResponse) ProtoMessage() {}

func (x *ErrorEvaluationResponse) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *ErrorEvaluationResponse) GetFlagKey() string {
	if x != nil {
		return x.FlagKey
	}
	return ""
}

func (x *ErrorEvaluationResponse) GetNamespaceKey() string {
	if x != nil {
		return x.NamespaceKey
	}
	return ""
}

func (x *ErrorEvaluationResponse) GetReason() ErrorEvaluationReason {
	if x != nil {
		return x.Reason
	}
	return ErrorEvaluationReason_UNKNOWN_ERROR_EVALUATION_REASON
}

type EvaluationDistribution struct {
	state             protoimpl.MessageState `protogen:"open.v1"`
	Id                string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	RuleId            string                 `protobuf:"bytes,2,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"`
	VariantId         string                 `protobuf:"bytes,3,opt,name=variant_id,json=variantId,proto3" json:"variant_id,omitempty"`
	VariantKey        string                 `protobuf:"bytes,4,opt,name=variant_key,json=variantKey,proto3" json:"variant_key,omitempty"`
	VariantAttachment string                 `protobuf:"bytes,5,opt,name=variant_attachment,json=variantAttachment,proto3" json:"variant_attachment,omitempty"`
	Rollout           float32                `protobuf:"fixed32,6,opt,name=rollout,proto3" json:"rollout,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*EvaluationDistribution) ProtoMessage() {}

func (x *EvaluationDistribution) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *EvaluationDistribution) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *EvaluationDistribution) GetRuleId() string {
	if x != nil {
		return x.RuleId
	}
	return ""
}

func (x *EvaluationDistribution) GetVariantId() string {
	if x != nil {
		return x.VariantId
	}
	return ""
}

func (x *EvaluationDistribution) GetVariantKey() string {
	if x != nil {
		return x.VariantKey
	}
	return ""
}

func (x *EvaluationDistribution) GetVariantAttachment() string {
	if x != nil {
		return x.VariantAttachment
	}
	return ""
}

func (x *EvaluationDistribution) GetRollout() float32 {
	if x != nil {
		return x.Rollout
	}
	return 0
}

type EvaluationRollout struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Type  EvaluationRolloutType  `protobuf:"varint,1,opt,name=type,proto3,enum=flipt.evaluation.EvaluationRolloutType" json:"type,omitempty"`
	Rank  int32                  `protobuf:"varint,2,opt,name=rank,proto3" json:"rank,omitempty"`
	// Types that are valid to be assigned to Rule:
	//
	//	*EvaluationRollout_Segment
	//	*EvaluationRollout_Threshold
	Rule          isEvaluationRollout_Rule `protobuf_oneof:"rule"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EvaluationRollout) ProtoMessage() {}

func (x *EvaluationRollout) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *EvaluationRollout) GetType() EvaluationRolloutType {
	if x != nil {
		return x.Type
	}
	return EvaluationRolloutType_UNKNOWN_ROLLOUT_TYPE
}

func (x *EvaluationRollout) GetRank() int32 {
	if x != nil {
		return x.Rank
	}
	return 0
}

func (x *EvaluationRollout) GetRule() isEvaluationRollout_Rule {
	if x != nil {
		return x.Rule
	}
	return nil
}

func (x *EvaluationRollout) GetSegment() *EvaluationRolloutSegment {
	if x != nil {
		if x, ok := x.Rule.(*EvaluationRollout_Segment); ok {
			return x.Segment
		}
	}
	return nil
}

func (x *EvaluationRollout) GetThreshold() *EvaluationRolloutThreshold {
	if x != nil {
		if x, ok := x.Rule.(*EvaluationRollout_Threshold); ok {
			return x.Threshold
		}
	}
	return nil
}

type isEvaluationRollout_Rule interface {
	isEvaluationRollout_Rule()
}

type EvaluationRollout_Segment struct {
	Segment *EvaluationRolloutSegment `protobuf:"bytes,3,opt,name=segment,proto3,oneof"`
}

type EvaluationRollout_Threshold struct {
	Threshold *EvaluationRolloutThreshold `protobuf:"bytes,4,opt,name=threshold,proto3,oneof"`
}

func (*EvaluationRollout_Segment) isEvaluationRollout_Rule() {}

func (*EvaluationRollout_Threshold) isEvaluationRollout_Rule() {}

type EvaluationRolloutThreshold struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Percentage    float32                `protobuf:"fixed32,1,opt,name=percentage,proto3" json:"percentage,omitempty"`
	Value         bool                   `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EvaluationRolloutThreshold) ProtoMessage() {}

func (x *EvaluationRolloutThreshold) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *EvaluationRolloutThreshold) GetPercentage() float32 {
	if x != nil {
		return x.Percentage
	}
	return 0
}

func (x *EvaluationRolloutThreshold) GetValue() bool {
	if x != nil {
		return x.Value
	}
	return false
}

type EvaluationRolloutSegment struct {
	state           protoimpl.MessageState    `protogen:"open.v1"`
	Value           bool                      `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
	SegmentOperator EvaluationSegmentOperator `protobuf:"varint,2,opt,name=segment_operator,json=segmentOperator,proto3,enum=flipt.evaluation.EvaluationSegmentOperator" json:"segment_operator,omitempty"`
	Segments        []*EvaluationSegment      `protobuf:"bytes,3,rep,name=segments,proto3" json:"segments,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*EvaluationRolloutSegment) ProtoMessage() {}

func (x *EvaluationRolloutSegment) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *EvaluationRolloutSegment) GetValue() bool {
	if x != nil {
		return x.Value
	}
	return false
}

func (x *EvaluationRolloutSegment) GetSegmentOperator() EvaluationSegmentOperator {
	if x != nil {
		return x.SegmentOperator
	}
	return EvaluationSegmentOperator_OR_SEGMENT_OPERATOR
}

func (x *EvaluationRolloutSegment) GetSegments() []*EvaluationSegment {
	if x != nil {
		return x.Segments
	}
	return nil
}

type EvaluationSegment struct {
	state         protoimpl.MessageState     `protogen:"open.v1"`
	Key           string                     `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Name          string                     `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Description   string                     `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	MatchType     EvaluationSegmentMatchType `protobuf:"varint,4,opt,name=match_type,json=matchType,proto3,enum=flipt.evaluation.EvaluationSegmentMatchType" json:"match_type,omitempty"`
	CreatedAt     *timestamppb.Timestamp     `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	UpdatedAt     *timestamppb.Timestamp     `protobuf:"bytes,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	Constraints   []*EvaluationConstraint    `protobuf:"bytes,7,rep,name=constraints,proto3" json:"constraints,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EvaluationSegment) Reset() {
	*x = EvaluationSegment{}
	mi := &file_evaluation_evaluation_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*EvaluationSegment) ProtoMessage() {}

func (x *EvaluationSegment) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *EvaluationSegment) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

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

func (x *EvaluationSegment) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *EvaluationSegment) GetMatchType() EvaluationSegmentMatchType {
	if x != nil {
		return x.MatchType
	}
	return EvaluationSegmentMatchType_ALL_SEGMENT_MATCH_TYPE
}

func (x *EvaluationSegment) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *EvaluationSegment) GetUpdatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedAt
	}
	return nil
}

func (x *EvaluationSegment) GetConstraints() []*EvaluationConstraint {
	if x != nil {
		return x.Constraints
	}
	return nil
}

type EvaluationVariant struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Key           string                 `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	Attachment    string                 `protobuf:"bytes,3,opt,name=attachment,proto3" json:"attachment,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EvaluationVariant) ProtoMessage() {}

func (x *EvaluationVariant) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *EvaluationVariant) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *EvaluationVariant) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *EvaluationVariant) GetAttachment() string {
	if x != nil {
		return x.Attachment
	}
	return ""
}

type EvaluationFlag struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	Key            string                 `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Name           string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Description    string                 `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	Enabled        bool                   `protobuf:"varint,4,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Type           EvaluationFlagType     `protobuf:"varint,5,opt,name=type,proto3,enum=flipt.evaluation.EvaluationFlagType" json:"type,omitempty"`
	CreatedAt      *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	UpdatedAt      *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	Rules          []*EvaluationRule      `protobuf:"bytes,8,rep,name=rules,proto3" json:"rules,omitempty"`
	Rollouts       []*EvaluationRollout   `protobuf:"bytes,9,rep,name=rollouts,proto3" json:"rollouts,omitempty"`
	DefaultVariant *EvaluationVariant     `protobuf:"bytes,10,opt,name=default_variant,json=defaultVariant,proto3,oneof" json:"default_variant,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*EvaluationFlag) ProtoMessage() {}

func (x *EvaluationFlag) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *EvaluationFlag) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

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

func (x *EvaluationFlag) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *EvaluationFlag) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *EvaluationFlag) GetType() EvaluationFlagType {
	if x != nil {
		return x.Type
	}
	return EvaluationFlagType_VARIANT_FLAG_TYPE
}

func (x *EvaluationFlag) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *EvaluationFlag) GetUpdatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedAt
	}
	return nil
}

func (x *EvaluationFlag) GetRules() []*EvaluationRule {
	if x != nil {
		return x.Rules
	}
	return nil
}

func (x *EvaluationFlag) GetRollouts() []*EvaluationRollout {
	if x != nil {
		return x.Rollouts
	}
	return nil
}

func (x *EvaluationFlag) GetDefaultVariant() *EvaluationVariant {
	if x != nil {
		return x.DefaultVariant
	}
	return nil
}

type EvaluationConstraint struct {
	state         protoimpl.MessageState             `protogen:"open.v1"`
	Id            string                             `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Type          EvaluationConstraintComparisonType `protobuf:"varint,2,opt,name=type,proto3,enum=flipt.evaluation.EvaluationConstraintComparisonType" json:"type,omitempty"`
	Property      string                             `protobuf:"bytes,3,opt,name=property,proto3" json:"property,omitempty"`
	Operator      string                             `protobuf:"bytes,4,opt,name=operator,proto3" json:"operator,omitempty"`
	Value         string                             `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EvaluationConstraint) ProtoMessage() {}

func (x *EvaluationConstraint) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *EvaluationConstraint) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *EvaluationConstraint) GetType() EvaluationConstraintComparisonType {
	if x != nil {
		return x.Type
	}
	return EvaluationConstraintComparisonType_UNKNOWN_CONSTRAINT_COMPARISON_TYPE
}

func (x *EvaluationConstraint) GetProperty() string {
	if x != nil {
		return x.Property
	}
	return ""
}

func (x *EvaluationConstraint) GetOperator() string {
	if x != nil {
		return x.Operator
	}
	return ""
}

func (x *EvaluationConstraint) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

type EvaluationRule struct {
	state           protoimpl.MessageState    `protogen:"open.v1"`
	Id              string                    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Segments        []*EvaluationSegment      `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"`
	Rank            int32                     `protobuf:"varint,3,opt,name=rank,proto3" json:"rank,omitempty"`
	SegmentOperator EvaluationSegmentOperator `protobuf:"varint,4,opt,name=segment_operator,json=segmentOperator,proto3,enum=flipt.evaluation.EvaluationSegmentOperator" json:"segment_operator,omitempty"`
	Distributions   []*EvaluationDistribution `protobuf:"bytes,5,rep,name=distributions,proto3" json:"distributions,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*EvaluationRule) ProtoMessage() {}

func (x *EvaluationRule) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *EvaluationRule) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *EvaluationRule) GetSegments() []*EvaluationSegment {
	if x != nil {
		return x.Segments
	}
	return nil
}

func (x *EvaluationRule) GetRank() int32 {
	if x != nil {
		return x.Rank
	}
	return 0
}

func (x *EvaluationRule) GetSegmentOperator() EvaluationSegmentOperator {
	if x != nil {
		return x.SegmentOperator
	}
	return EvaluationSegmentOperator_OR_SEGMENT_OPERATOR
}

func (x *EvaluationRule) GetDistributions() []*EvaluationDistribution {
	if x != nil {
		return x.Distributions
	}
	return nil
}

type EvaluationNamespace struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Key           string                 `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EvaluationNamespace) ProtoMessage() {}

func (x *EvaluationNamespace) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *EvaluationNamespace) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

type EvaluationNamespaceSnapshot struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Namespace     *EvaluationNamespace   `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	Flags         []*EvaluationFlag      `protobuf:"bytes,2,rep,name=flags,proto3" json:"flags,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EvaluationNamespaceSnapshot) ProtoMessage() {}

func (x *EvaluationNamespaceSnapshot) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *EvaluationNamespaceSnapshot) GetNamespace() *EvaluationNamespace {
	if x != nil {
		return x.Namespace
	}
	return nil
}

func (x *EvaluationNamespaceSnapshot) GetFlags() []*EvaluationFlag {
	if x != nil {
		return x.Flags
	}
	return nil
}

type EvaluationNamespaceSnapshotRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Key           string                 `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Reference     string                 `protobuf:"bytes,2,opt,name=reference,proto3" json:"reference,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EvaluationNamespaceSnapshotRequest) ProtoMessage() {}

func (x *EvaluationNamespaceSnapshotRequest) ProtoReflect() protoreflect.Message {
	mi := &file_evaluation_evaluation_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)
}

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

func (x *EvaluationNamespaceSnapshotRequest) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *EvaluationNamespaceSnapshotRequest) GetReference() string {
	if x != nil {
		return x.Reference
	}
	return ""
}

var File_evaluation_evaluation_proto protoreflect.FileDescriptor

var file_evaluation_evaluation_proto_rawDesc = []byte{
	0x0a, 0x1b, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x76, 0x61,
	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x66,
	0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a,
	0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e,
	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x62,
	0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65,
	0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x67, 0x6e,
	0x6f, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x33,
	0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x22, 0xc9, 0x02, 0x0a, 0x11, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73,
	0x70, 0x61, 0x63, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4b, 0x65,
	0x79, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x67, 0x4b, 0x65,
	0x79, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74,
	0x79, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x05,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61,
	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78,
	0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e,
	0x74, 0x65, 0x78, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
	0x63, 0x65, 0x1a, 0x3a, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9b,
	0x01, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x69,
	0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76,
	0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x1c,
	0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xb4, 0x01, 0x0a,
	0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x66, 0x6c, 0x69,
	0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76,
	0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
	0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6c,
	0x6c, 0x69, 0x73, 0x22, 0xe6, 0x02, 0x0a, 0x12, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74,
	0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c,
	0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79,
	0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x10, 0x62, 0x6f, 0x6f, 0x6c,
	0x65, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x45, 0x76, 0x61,
	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48,
	0x00, 0x52, 0x0f, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x58, 0x0a, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x72, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x66,
	0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
	0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x76, 0x61, 0x72,
	0x69, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0e,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61,
	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x61,
	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48,
	0x00, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9d, 0x02, 0x0a,
	0x19, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61,
	0x62, 0x6c, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61,
	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
	0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12,
	0x36, 0x0a, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01,
	0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x67, 0x4b, 0x65, 0x79, 0x22, 0x8c, 0x03, 0x0a,
	0x19, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61,
	0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68,
	0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4b,
	0x65, 0x79, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c,
	0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12,
	0x1f, 0x0a, 0x0b, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x4b, 0x65, 0x79,
	0x12, 0x2d, 0x0a, 0x12, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61,
	0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x76, 0x61,
	0x72, 0x69, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12,
	0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x36,
	0x0a, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52,
	0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x12, 0x19, 0x0a, 0x08, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x67, 0x4b, 0x65, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x17,
	0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x6c, 0x61, 0x67, 0x5f,
	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x67, 0x4b,
	0x65, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f,
	0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x73,
	0x70, 0x61, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x3f, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f,
	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e,
	0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e,
	0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xca, 0x01, 0x0a, 0x16, 0x45, 0x76, 0x61,
	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a,
	0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x76,
	0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x12,
	0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65,
	0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e,
	0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72,
	0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x72, 0x6f,
	0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x22, 0x82, 0x02, 0x0a, 0x11, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x66, 0x6c, 0x69, 0x70,
	0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61,
	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x54, 0x79,
	0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x46, 0x0a, 0x07,
	0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
	0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f,
	0x75, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c,
	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e,
	0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x54, 0x68, 0x72, 0x65,
	0x73, 0x68, 0x6f, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
	0x6c, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x22, 0x52, 0x0a, 0x1a, 0x45, 0x76,
	0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x54,
	0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63,
	0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x70, 0x65,
	0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc9,
	0x01, 0x0a, 0x18, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c,
	0x6c, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x12, 0x56, 0x0a, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x66, 0x6c,
	0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45,
	0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x3f, 0x0a, 0x08, 0x73, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c,
	0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45,
	0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xe8, 0x02, 0x0a, 0x11, 0x45,
	0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
	0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63,
	0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x66,
	0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
	0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63,
	0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
	0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
	0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x63,
	0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x26, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
	0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72,
	0x61, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x55, 0x0a, 0x11, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a,
	0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x82, 0x04, 0x0a,
	0x0e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12,
	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
	0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x24, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61,
	0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41,
	0x74, 0x12, 0x36, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x20, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75,
	0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x08, 0x72, 0x6f, 0x6c,
	0x6c, 0x6f, 0x75, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c,
	0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45,
	0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74,
	0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x12, 0x51, 0x0a, 0x0f, 0x64, 0x65,
	0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c,
	0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61,
	0x75, 0x6c, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a,
	0x10, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e,
	0x74, 0x22, 0xbe, 0x01, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x48, 0x0a, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74,
	0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c,
	0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74,
	0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04,
	0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
	0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x22, 0x9d, 0x02, 0x0a, 0x0e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e,
	0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x56, 0x0a, 0x10, 0x73, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61,
	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
	0x72, 0x52, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x6f, 0x72, 0x12, 0x4e, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x66, 0x6c, 0x69, 0x70,
	0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61,
	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x22, 0x27, 0x0a, 0x13, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x1b,
	0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70,
	0x61, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x6e,
	0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
	0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65,
	0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
	0x12, 0x36, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x20, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61,
	0x67, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x54, 0x0a, 0x22, 0x45, 0x76, 0x61, 0x6c,
	0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53,
	0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2a, 0x92,
	0x01, 0x0a, 0x10, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61,
	0x73, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45,
	0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e,
	0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x46, 0x4c, 0x41, 0x47, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42,
	0x4c, 0x45, 0x44, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52,
	0x45, 0x41, 0x53, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x41, 0x54, 0x43, 0x48,
	0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x53,
	0x4f, 0x4e, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f,
	0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f,
	0x4e, 0x10, 0x03, 0x2a, 0x63, 0x0a, 0x15, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x61, 0x6c,
	0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x1f,
	0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x45, 0x56,
	0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x10,
	0x00, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x45,
	0x52, 0x52, 0x4f, 0x52, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
	0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x10, 0x01, 0x2a, 0x88, 0x01, 0x0a, 0x16, 0x45, 0x76, 0x61,
	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x56, 0x41, 0x52, 0x49, 0x41, 0x4e, 0x54, 0x5f, 0x45,
	0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e,
	0x53, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x4f, 0x4f,
	0x4c, 0x45, 0x41, 0x4e, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
	0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12,
	0x22, 0x0a, 0x1e, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54,
	0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x54, 0x59, 0x50,
	0x45, 0x10, 0x02, 0x2a, 0x67, 0x0a, 0x15, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14,
	0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x5f,
	0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x47, 0x4d, 0x45, 0x4e,
	0x54, 0x5f, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01,
	0x12, 0x1a, 0x0a, 0x16, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x52, 0x4f,
	0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x02, 0x2a, 0x4e, 0x0a, 0x19,
	0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x52, 0x5f,
	0x53, 0x45, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52,
	0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x4e, 0x44, 0x5f, 0x53, 0x45, 0x47, 0x4d, 0x45, 0x4e,
	0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x10, 0x01, 0x2a, 0x54, 0x0a, 0x1a,
	0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x4c,
	0x4c, 0x5f, 0x53, 0x45, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f,
	0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x4e, 0x59, 0x5f, 0x53, 0x45,
	0x47, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45,
	0x10, 0x01, 0x2a, 0x42, 0x0a, 0x12, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x46, 0x6c, 0x61, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x41, 0x52, 0x49,
	0x41, 0x4e, 0x54, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12,
	0x15, 0x0a, 0x11, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x5f,
	0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x2a, 0x95, 0x02, 0x0a, 0x22, 0x45, 0x76, 0x61, 0x6c, 0x75,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x43,
	0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a,
	0x22, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x52, 0x41,
	0x49, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x54,
	0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f,
	0x43, 0x4f, 0x4e, 0x53, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41,
	0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21,
	0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x52, 0x41, 0x49, 0x4e,
	0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50,
	0x45, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x5f, 0x43,
	0x4f, 0x4e, 0x53, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52,
	0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x44,
	0x41, 0x54, 0x45, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x52, 0x41, 0x49,
	0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x59,
	0x50, 0x45, 0x10, 0x04, 0x12, 0x28, 0x0a, 0x24, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x49,
	0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4d,
	0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x05, 0x32, 0xc9,
	0x03, 0x0a, 0x11, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x12, 0x90, 0x01, 0x0a, 0x07, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e,
	0x12, 0x23, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76,
	0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e,
	0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0x33, 0xba, 0x47, 0x11, 0x2a, 0x0f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74,
	0x65, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01,
	0x2a, 0x22, 0x14, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x2f,
	0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x90, 0x01, 0x0a, 0x07, 0x56, 0x61, 0x72, 0x69,
	0x61, 0x6e, 0x74, 0x12, 0x23, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c,
	0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74,
	0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x72, 0x69,
	0x61, 0x6e, 0x74, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0xba, 0x47, 0x11, 0x2a, 0x0f, 0x65, 0x76, 0x61, 0x6c,
	0x75, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02,
	0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x2f,
	0x76, 0x31, 0x2f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x8d, 0x01, 0x0a, 0x05, 0x42,
	0x61, 0x74, 0x63, 0x68, 0x12, 0x28, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61,
	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x61,
	0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29,
	0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0xba, 0x47, 0x0f, 0x2a, 0x0d,
	0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74,
	0x65, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x32, 0xac, 0x01, 0x0a, 0x0b, 0x44,
	0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x45,
	0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,
	0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, 0x2e, 0x66, 0x6c, 0x69,
	0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76,
	0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
	0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x2d, 0x2e, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61,
	0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a,
	0x18, 0xfa, 0xd2, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x3a, 0x73,
	0x64, 0x6b, 0x3a, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x42, 0x28, 0x5a, 0x26, 0x67, 0x6f, 0x2e,
	0x66, 0x6c, 0x69, 0x70, 0x74, 0x2e, 0x69, 0x6f, 0x2f, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2f, 0x72,
	0x70, 0x63, 0x2f, 0x66, 0x6c, 0x69, 0x70, 0x74, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_evaluation_evaluation_proto_rawDescOnce sync.Once
	file_evaluation_evaluation_proto_rawDescData = file_evaluation_evaluation_proto_rawDesc
)

func file_evaluation_evaluation_proto_rawDescGZIP() []byte {
	file_evaluation_evaluation_proto_rawDescOnce.Do(func() {
		file_evaluation_evaluation_proto_rawDescData = protoimpl.X.CompressGZIP(file_evaluation_evaluation_proto_rawDescData)
	})
	return file_evaluation_evaluation_proto_rawDescData
}

var file_evaluation_evaluation_proto_enumTypes = make([]protoimpl.EnumInfo, 8)
var file_evaluation_evaluation_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
var file_evaluation_evaluation_proto_goTypes = []any{
	(EvaluationReason)(0),                      // 0: flipt.evaluation.EvaluationReason
	(ErrorEvaluationReason)(0),                 // 1: flipt.evaluation.ErrorEvaluationReason
	(EvaluationResponseType)(0),                // 2: flipt.evaluation.EvaluationResponseType
	(EvaluationRolloutType)(0),                 // 3: flipt.evaluation.EvaluationRolloutType
	(EvaluationSegmentOperator)(0),             // 4: flipt.evaluation.EvaluationSegmentOperator
	(EvaluationSegmentMatchType)(0),            // 5: flipt.evaluation.EvaluationSegmentMatchType
	(EvaluationFlagType)(0),                    // 6: flipt.evaluation.EvaluationFlagType
	(EvaluationConstraintComparisonType)(0),    // 7: flipt.evaluation.EvaluationConstraintComparisonType
	(*EvaluationRequest)(nil),                  // 8: flipt.evaluation.EvaluationRequest
	(*BatchEvaluationRequest)(nil),             // 9: flipt.evaluation.BatchEvaluationRequest
	(*BatchEvaluationResponse)(nil),            // 10: flipt.evaluation.BatchEvaluationResponse
	(*EvaluationResponse)(nil),                 // 11: flipt.evaluation.EvaluationResponse
	(*BooleanEvaluationResponse)(nil),          // 12: flipt.evaluation.BooleanEvaluationResponse
	(*VariantEvaluationResponse)(nil),          // 13: flipt.evaluation.VariantEvaluationResponse
	(*ErrorEvaluationResponse)(nil),            // 14: flipt.evaluation.ErrorEvaluationResponse
	(*EvaluationDistribution)(nil),             // 15: flipt.evaluation.EvaluationDistribution
	(*EvaluationRollout)(nil),                  // 16: flipt.evaluation.EvaluationRollout
	(*EvaluationRolloutThreshold)(nil),         // 17: flipt.evaluation.EvaluationRolloutThreshold
	(*EvaluationRolloutSegment)(nil),           // 18: flipt.evaluation.EvaluationRolloutSegment
	(*EvaluationSegment)(nil),                  // 19: flipt.evaluation.EvaluationSegment
	(*EvaluationVariant)(nil),                  // 20: flipt.evaluation.EvaluationVariant
	(*EvaluationFlag)(nil),                     // 21: flipt.evaluation.EvaluationFlag
	(*EvaluationConstraint)(nil),               // 22: flipt.evaluation.EvaluationConstraint
	(*EvaluationRule)(nil),                     // 23: flipt.evaluation.EvaluationRule
	(*EvaluationNamespace)(nil),                // 24: flipt.evaluation.EvaluationNamespace
	(*EvaluationNamespaceSnapshot)(nil),        // 25: flipt.evaluation.EvaluationNamespaceSnapshot
	(*EvaluationNamespaceSnapshotRequest)(nil), // 26: flipt.evaluation.EvaluationNamespaceSnapshotRequest
	nil,                           // 27: flipt.evaluation.EvaluationRequest.ContextEntry
	(*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp
}
var file_evaluation_evaluation_proto_depIdxs = []int32{
	27, // 0: flipt.evaluation.EvaluationRequest.context:type_name -> flipt.evaluation.EvaluationRequest.ContextEntry
	8,  // 1: flipt.evaluation.BatchEvaluationRequest.requests:type_name -> flipt.evaluation.EvaluationRequest
	11, // 2: flipt.evaluation.BatchEvaluationResponse.responses:type_name -> flipt.evaluation.EvaluationResponse
	2,  // 3: flipt.evaluation.EvaluationResponse.type:type_name -> flipt.evaluation.EvaluationResponseType
	12, // 4: flipt.evaluation.EvaluationResponse.boolean_response:type_name -> flipt.evaluation.BooleanEvaluationResponse
	13, // 5: flipt.evaluation.EvaluationResponse.variant_response:type_name -> flipt.evaluation.VariantEvaluationResponse
	14, // 6: flipt.evaluation.EvaluationResponse.error_response:type_name -> flipt.evaluation.ErrorEvaluationResponse
	0,  // 7: flipt.evaluation.BooleanEvaluationResponse.reason:type_name -> flipt.evaluation.EvaluationReason
	28, // 8: flipt.evaluation.BooleanEvaluationResponse.timestamp:type_name -> google.protobuf.Timestamp
	0,  // 9: flipt.evaluation.VariantEvaluationResponse.reason:type_name -> flipt.evaluation.EvaluationReason
	28, // 10: flipt.evaluation.VariantEvaluationResponse.timestamp:type_name -> google.protobuf.Timestamp
	1,  // 11: flipt.evaluation.ErrorEvaluationResponse.reason:type_name -> flipt.evaluation.ErrorEvaluationReason
	3,  // 12: flipt.evaluation.EvaluationRollout.type:type_name -> flipt.evaluation.EvaluationRolloutType
	18, // 13: flipt.evaluation.EvaluationRollout.segment:type_name -> flipt.evaluation.EvaluationRolloutSegment
	17, // 14: flipt.evaluation.EvaluationRollout.threshold:type_name -> flipt.evaluation.EvaluationRolloutThreshold
	4,  // 15: flipt.evaluation.EvaluationRolloutSegment.segment_operator:type_name -> flipt.evaluation.EvaluationSegmentOperator
	19, // 16: flipt.evaluation.EvaluationRolloutSegment.segments:type_name -> flipt.evaluation.EvaluationSegment
	5,  // 17: flipt.evaluation.EvaluationSegment.match_type:type_name -> flipt.evaluation.EvaluationSegmentMatchType
	28, // 18: flipt.evaluation.EvaluationSegment.created_at:type_name -> google.protobuf.Timestamp
	28, // 19: flipt.evaluation.EvaluationSegment.updated_at:type_name -> google.protobuf.Timestamp
	22, // 20: flipt.evaluation.EvaluationSegment.constraints:type_name -> flipt.evaluation.EvaluationConstraint
	6,  // 21: flipt.evaluation.EvaluationFlag.type:type_name -> flipt.evaluation.EvaluationFlagType
	28, // 22: flipt.evaluation.EvaluationFlag.created_at:type_name -> google.protobuf.Timestamp
	28, // 23: flipt.evaluation.EvaluationFlag.updated_at:type_name -> google.protobuf.Timestamp
	23, // 24: flipt.evaluation.EvaluationFlag.rules:type_name -> flipt.evaluation.EvaluationRule
	16, // 25: flipt.evaluation.EvaluationFlag.rollouts:type_name -> flipt.evaluation.EvaluationRollout
	20, // 26: flipt.evaluation.EvaluationFlag.default_variant:type_name -> flipt.evaluation.EvaluationVariant
	7,  // 27: flipt.evaluation.EvaluationConstraint.type:type_name -> flipt.evaluation.EvaluationConstraintComparisonType
	19, // 28: flipt.evaluation.EvaluationRule.segments:type_name -> flipt.evaluation.EvaluationSegment
	4,  // 29: flipt.evaluation.EvaluationRule.segment_operator:type_name -> flipt.evaluation.EvaluationSegmentOperator
	15, // 30: flipt.evaluation.EvaluationRule.distributions:type_name -> flipt.evaluation.EvaluationDistribution
	24, // 31: flipt.evaluation.EvaluationNamespaceSnapshot.namespace:type_name -> flipt.evaluation.EvaluationNamespace
	21, // 32: flipt.evaluation.EvaluationNamespaceSnapshot.flags:type_name -> flipt.evaluation.EvaluationFlag
	8,  // 33: flipt.evaluation.EvaluationService.Boolean:input_type -> flipt.evaluation.EvaluationRequest
	8,  // 34: flipt.evaluation.EvaluationService.Variant:input_type -> flipt.evaluation.EvaluationRequest
	9,  // 35: flipt.evaluation.EvaluationService.Batch:input_type -> flipt.evaluation.BatchEvaluationRequest
	26, // 36: flipt.evaluation.DataService.EvaluationSnapshotNamespace:input_type -> flipt.evaluation.EvaluationNamespaceSnapshotRequest
	12, // 37: flipt.evaluation.EvaluationService.Boolean:output_type -> flipt.evaluation.BooleanEvaluationResponse
	13, // 38: flipt.evaluation.EvaluationService.Variant:output_type -> flipt.evaluation.VariantEvaluationResponse
	10, // 39: flipt.evaluation.EvaluationService.Batch:output_type -> flipt.evaluation.BatchEvaluationResponse
	25, // 40: flipt.evaluation.DataService.EvaluationSnapshotNamespace:output_type -> flipt.evaluation.EvaluationNamespaceSnapshot
	37, // [37:41] is the sub-list for method output_type
	33, // [33:37] is the sub-list for method input_type
	33, // [33:33] is the sub-list for extension type_name
	33, // [33:33] is the sub-list for extension extendee
	0,  // [0:33] is the sub-list for field type_name
}

func init() { file_evaluation_evaluation_proto_init() }
func file_evaluation_evaluation_proto_init() {
	if File_evaluation_evaluation_proto != nil {
		return
	}
	file_evaluation_evaluation_proto_msgTypes[3].OneofWrappers = []any{
		(*EvaluationResponse_BooleanResponse)(nil),
		(*EvaluationResponse_VariantResponse)(nil),
		(*EvaluationResponse_ErrorResponse)(nil),
	}
	file_evaluation_evaluation_proto_msgTypes[8].OneofWrappers = []any{
		(*EvaluationRollout_Segment)(nil),
		(*EvaluationRollout_Threshold)(nil),
	}
	file_evaluation_evaluation_proto_msgTypes[13].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_evaluation_evaluation_proto_rawDesc,
			NumEnums:      8,
			NumMessages:   20,
			NumExtensions: 0,
			NumServices:   2,
		},
		GoTypes:           file_evaluation_evaluation_proto_goTypes,
		DependencyIndexes: file_evaluation_evaluation_proto_depIdxs,
		EnumInfos:         file_evaluation_evaluation_proto_enumTypes,
		MessageInfos:      file_evaluation_evaluation_proto_msgTypes,
	}.Build()
	File_evaluation_evaluation_proto = out.File
	file_evaluation_evaluation_proto_rawDesc = nil
	file_evaluation_evaluation_proto_goTypes = nil
	file_evaluation_evaluation_proto_depIdxs = nil
}
