rts-sim-testing-service/dto/data_proto/stationLayoutGraphics.pb.go

7745 lines
292 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.33.0
// protoc v4.23.1
// source: stationLayoutGraphics.proto
package data_proto
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
common_proto "joylink.club/bj-rtsts-server/dto/common_proto"
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 Direction int32
const (
Direction_UP Direction = 0
Direction_DOWN Direction = 1
)
// Enum value maps for Direction.
var (
Direction_name = map[int32]string{
0: "UP",
1: "DOWN",
}
Direction_value = map[string]int32{
"UP": 0,
"DOWN": 1,
}
)
func (x Direction) Enum() *Direction {
p := new(Direction)
*p = x
return p
}
func (x Direction) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Direction) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[0].Descriptor()
}
func (Direction) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[0]
}
func (x Direction) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Direction.Descriptor instead.
func (Direction) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{0}
}
type Polygon_PolygonType int32
const (
Polygon_ConcentrationDividingLine Polygon_PolygonType = 0
)
// Enum value maps for Polygon_PolygonType.
var (
Polygon_PolygonType_name = map[int32]string{
0: "ConcentrationDividingLine",
}
Polygon_PolygonType_value = map[string]int32{
"ConcentrationDividingLine": 0,
}
)
func (x Polygon_PolygonType) Enum() *Polygon_PolygonType {
p := new(Polygon_PolygonType)
*p = x
return p
}
func (x Polygon_PolygonType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Polygon_PolygonType) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[1].Descriptor()
}
func (Polygon_PolygonType) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[1]
}
func (x Polygon_PolygonType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Polygon_PolygonType.Descriptor instead.
func (Polygon_PolygonType) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{7, 0}
}
type Platform_TypeOfPlatform int32
const (
Platform_Unknown Platform_TypeOfPlatform = 0
Platform_up Platform_TypeOfPlatform = 1
Platform_down Platform_TypeOfPlatform = 2
)
// Enum value maps for Platform_TypeOfPlatform.
var (
Platform_TypeOfPlatform_name = map[int32]string{
0: "Unknown",
1: "up",
2: "down",
}
Platform_TypeOfPlatform_value = map[string]int32{
"Unknown": 0,
"up": 1,
"down": 2,
}
)
func (x Platform_TypeOfPlatform) Enum() *Platform_TypeOfPlatform {
p := new(Platform_TypeOfPlatform)
*p = x
return p
}
func (x Platform_TypeOfPlatform) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Platform_TypeOfPlatform) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[2].Descriptor()
}
func (Platform_TypeOfPlatform) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[2]
}
func (x Platform_TypeOfPlatform) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Platform_TypeOfPlatform.Descriptor instead.
func (Platform_TypeOfPlatform) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{10, 0}
}
type AxleCounting_TypeDetectionPoint int32
const (
AxleCounting_AxleCounting AxleCounting_TypeDetectionPoint = 0
AxleCounting_SectionBoundary AxleCounting_TypeDetectionPoint = 1
)
// Enum value maps for AxleCounting_TypeDetectionPoint.
var (
AxleCounting_TypeDetectionPoint_name = map[int32]string{
0: "AxleCounting",
1: "SectionBoundary",
}
AxleCounting_TypeDetectionPoint_value = map[string]int32{
"AxleCounting": 0,
"SectionBoundary": 1,
}
)
func (x AxleCounting_TypeDetectionPoint) Enum() *AxleCounting_TypeDetectionPoint {
p := new(AxleCounting_TypeDetectionPoint)
*p = x
return p
}
func (x AxleCounting_TypeDetectionPoint) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (AxleCounting_TypeDetectionPoint) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[3].Descriptor()
}
func (AxleCounting_TypeDetectionPoint) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[3]
}
func (x AxleCounting_TypeDetectionPoint) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use AxleCounting_TypeDetectionPoint.Descriptor instead.
func (AxleCounting_TypeDetectionPoint) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{16, 0}
}
type Turnout_SwitchMachineType int32
const (
Turnout_Unknown Turnout_SwitchMachineType = 0
Turnout_ZDJ9_Single Turnout_SwitchMachineType = 1
Turnout_ZDJ9_Double Turnout_SwitchMachineType = 2
)
// Enum value maps for Turnout_SwitchMachineType.
var (
Turnout_SwitchMachineType_name = map[int32]string{
0: "Unknown",
1: "ZDJ9_Single",
2: "ZDJ9_Double",
}
Turnout_SwitchMachineType_value = map[string]int32{
"Unknown": 0,
"ZDJ9_Single": 1,
"ZDJ9_Double": 2,
}
)
func (x Turnout_SwitchMachineType) Enum() *Turnout_SwitchMachineType {
p := new(Turnout_SwitchMachineType)
*p = x
return p
}
func (x Turnout_SwitchMachineType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Turnout_SwitchMachineType) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[4].Descriptor()
}
func (Turnout_SwitchMachineType) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[4]
}
func (x Turnout_SwitchMachineType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Turnout_SwitchMachineType.Descriptor instead.
func (Turnout_SwitchMachineType) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{18, 0}
}
// * 左右行 *
type KilometerSystem_Direction int32
const (
KilometerSystem_LEFT KilometerSystem_Direction = 0
KilometerSystem_RIGHT KilometerSystem_Direction = 1
)
// Enum value maps for KilometerSystem_Direction.
var (
KilometerSystem_Direction_name = map[int32]string{
0: "LEFT",
1: "RIGHT",
}
KilometerSystem_Direction_value = map[string]int32{
"LEFT": 0,
"RIGHT": 1,
}
)
func (x KilometerSystem_Direction) Enum() *KilometerSystem_Direction {
p := new(KilometerSystem_Direction)
*p = x
return p
}
func (x KilometerSystem_Direction) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (KilometerSystem_Direction) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[5].Descriptor()
}
func (KilometerSystem_Direction) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[5]
}
func (x KilometerSystem_Direction) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use KilometerSystem_Direction.Descriptor instead.
func (KilometerSystem_Direction) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{19, 0}
}
// 信号机模型类型枚举
// 从左向右,最左边为靠近灯座的灯
// 如果没有说明,默认不封灯,无引导
// F-封 D-单 Y-有、带 Y-引导
// H-红 L-绿 U-黄 A-蓝 B-白
type Signal_Model int32
const (
Signal_HL Signal_Model = 0 //2XH-1 红绿
Signal_HLU_FU Signal_Model = 1 //2XH-1 红绿黄,封黄灯,无引导
Signal_HLU_DU_YY Signal_Model = 2 //3XH-1 红绿黄,不封灯,有单黄,带引导
Signal_HLU_YY Signal_Model = 3 //3XH-2或JDXH 红绿黄,不封灯,无单黄,带引导
Signal_HLU_FL_DU_YY Signal_Model = 4 //3XH-3 红绿黄,封绿灯,有单黄,带引导
Signal_HLU_DU Signal_Model = 5 //3XH-4 红绿黄,不封灯,有单黄,无引导
Signal_AB Signal_Model = 6 //DXCH 蓝白
Signal_HBU_DU Signal_Model = 7 //JCKXH 红白黄,不封灯,有单黄,无引导
)
// Enum value maps for Signal_Model.
var (
Signal_Model_name = map[int32]string{
0: "HL",
1: "HLU_FU",
2: "HLU_DU_YY",
3: "HLU_YY",
4: "HLU_FL_DU_YY",
5: "HLU_DU",
6: "AB",
7: "HBU_DU",
}
Signal_Model_value = map[string]int32{
"HL": 0,
"HLU_FU": 1,
"HLU_DU_YY": 2,
"HLU_YY": 3,
"HLU_FL_DU_YY": 4,
"HLU_DU": 5,
"AB": 6,
"HBU_DU": 7,
}
)
func (x Signal_Model) Enum() *Signal_Model {
p := new(Signal_Model)
*p = x
return p
}
func (x Signal_Model) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Signal_Model) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[6].Descriptor()
}
func (Signal_Model) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[6]
}
func (x Signal_Model) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Signal_Model.Descriptor instead.
func (Signal_Model) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{20, 0}
}
type Section_SectionType int32
const (
Section_Physical Section_SectionType = 0
Section_TurnoutPhysical Section_SectionType = 2
)
// Enum value maps for Section_SectionType.
var (
Section_SectionType_name = map[int32]string{
0: "Physical",
2: "TurnoutPhysical",
}
Section_SectionType_value = map[string]int32{
"Physical": 0,
"TurnoutPhysical": 2,
}
)
func (x Section_SectionType) Enum() *Section_SectionType {
p := new(Section_SectionType)
*p = x
return p
}
func (x Section_SectionType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Section_SectionType) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[7].Descriptor()
}
func (Section_SectionType) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[7]
}
func (x Section_SectionType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Section_SectionType.Descriptor instead.
func (Section_SectionType) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{21, 0}
}
type Section_RunningDirection int32
const (
Section_AtoB Section_RunningDirection = 0
Section_BtoA Section_RunningDirection = 1
Section_BOTH Section_RunningDirection = 2
)
// Enum value maps for Section_RunningDirection.
var (
Section_RunningDirection_name = map[int32]string{
0: "AtoB",
1: "BtoA",
2: "BOTH",
}
Section_RunningDirection_value = map[string]int32{
"AtoB": 0,
"BtoA": 1,
"BOTH": 2,
}
)
func (x Section_RunningDirection) Enum() *Section_RunningDirection {
p := new(Section_RunningDirection)
*p = x
return p
}
func (x Section_RunningDirection) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Section_RunningDirection) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[8].Descriptor()
}
func (Section_RunningDirection) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[8]
}
func (x Section_RunningDirection) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Section_RunningDirection.Descriptor instead.
func (Section_RunningDirection) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{21, 1}
}
type RelatedRef_DeviceType int32
const (
RelatedRef_Section RelatedRef_DeviceType = 0
RelatedRef_Turnout RelatedRef_DeviceType = 1
RelatedRef_TrainWindow RelatedRef_DeviceType = 2
RelatedRef_AxleCounting RelatedRef_DeviceType = 3
RelatedRef_SectionLink RelatedRef_DeviceType = 4
RelatedRef_signal RelatedRef_DeviceType = 5
RelatedRef_station RelatedRef_DeviceType = 6
RelatedRef_ScreenDoor RelatedRef_DeviceType = 7
RelatedRef_SignalFaultAlarm RelatedRef_DeviceType = 8
RelatedRef_Breakers RelatedRef_DeviceType = 9 //断路器
RelatedRef_PowerScreen RelatedRef_DeviceType = 10 //电源屏
RelatedRef_GarageDoor RelatedRef_DeviceType = 11
RelatedRef_CarWashing RelatedRef_DeviceType = 12
)
// Enum value maps for RelatedRef_DeviceType.
var (
RelatedRef_DeviceType_name = map[int32]string{
0: "Section",
1: "Turnout",
2: "TrainWindow",
3: "AxleCounting",
4: "SectionLink",
5: "signal",
6: "station",
7: "ScreenDoor",
8: "SignalFaultAlarm",
9: "Breakers",
10: "PowerScreen",
11: "GarageDoor",
12: "CarWashing",
}
RelatedRef_DeviceType_value = map[string]int32{
"Section": 0,
"Turnout": 1,
"TrainWindow": 2,
"AxleCounting": 3,
"SectionLink": 4,
"signal": 5,
"station": 6,
"ScreenDoor": 7,
"SignalFaultAlarm": 8,
"Breakers": 9,
"PowerScreen": 10,
"GarageDoor": 11,
"CarWashing": 12,
}
)
func (x RelatedRef_DeviceType) Enum() *RelatedRef_DeviceType {
p := new(RelatedRef_DeviceType)
*p = x
return p
}
func (x RelatedRef_DeviceType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (RelatedRef_DeviceType) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[9].Descriptor()
}
func (RelatedRef_DeviceType) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[9]
}
func (x RelatedRef_DeviceType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use RelatedRef_DeviceType.Descriptor instead.
func (RelatedRef_DeviceType) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{22, 0}
}
type RelatedRef_DevicePort int32
const (
RelatedRef_A RelatedRef_DevicePort = 0
RelatedRef_B RelatedRef_DevicePort = 1
RelatedRef_C RelatedRef_DevicePort = 2
)
// Enum value maps for RelatedRef_DevicePort.
var (
RelatedRef_DevicePort_name = map[int32]string{
0: "A",
1: "B",
2: "C",
}
RelatedRef_DevicePort_value = map[string]int32{
"A": 0,
"B": 1,
"C": 2,
}
)
func (x RelatedRef_DevicePort) Enum() *RelatedRef_DevicePort {
p := new(RelatedRef_DevicePort)
*p = x
return p
}
func (x RelatedRef_DevicePort) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (RelatedRef_DevicePort) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[10].Descriptor()
}
func (RelatedRef_DevicePort) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[10]
}
func (x RelatedRef_DevicePort) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use RelatedRef_DevicePort.Descriptor instead.
func (RelatedRef_DevicePort) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{22, 1}
}
type Transponder_TransponderTypeEnum int32
const (
Transponder_FB Transponder_TransponderTypeEnum = 0 // 固定应答器
Transponder_WB Transponder_TransponderTypeEnum = 1 // 轮径校正应答器
Transponder_DB Transponder_TransponderTypeEnum = 2 // 休眠唤醒应答器
Transponder_VB Transponder_TransponderTypeEnum = 3 // 主信号应答器
Transponder_IB Transponder_TransponderTypeEnum = 4 // 预告应答器
)
// Enum value maps for Transponder_TransponderTypeEnum.
var (
Transponder_TransponderTypeEnum_name = map[int32]string{
0: "FB",
1: "WB",
2: "DB",
3: "VB",
4: "IB",
}
Transponder_TransponderTypeEnum_value = map[string]int32{
"FB": 0,
"WB": 1,
"DB": 2,
"VB": 3,
"IB": 4,
}
)
func (x Transponder_TransponderTypeEnum) Enum() *Transponder_TransponderTypeEnum {
p := new(Transponder_TransponderTypeEnum)
*p = x
return p
}
func (x Transponder_TransponderTypeEnum) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Transponder_TransponderTypeEnum) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[11].Descriptor()
}
func (Transponder_TransponderTypeEnum) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[11]
}
func (x Transponder_TransponderTypeEnum) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Transponder_TransponderTypeEnum.Descriptor instead.
func (Transponder_TransponderTypeEnum) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{25, 0}
}
type SimpleRef_DeviceType int32
const (
SimpleRef_Turnout SimpleRef_DeviceType = 0
SimpleRef_AxleCounting SimpleRef_DeviceType = 1
)
// Enum value maps for SimpleRef_DeviceType.
var (
SimpleRef_DeviceType_name = map[int32]string{
0: "Turnout",
1: "AxleCounting",
}
SimpleRef_DeviceType_value = map[string]int32{
"Turnout": 0,
"AxleCounting": 1,
}
)
func (x SimpleRef_DeviceType) Enum() *SimpleRef_DeviceType {
p := new(SimpleRef_DeviceType)
*p = x
return p
}
func (x SimpleRef_DeviceType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (SimpleRef_DeviceType) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[12].Descriptor()
}
func (SimpleRef_DeviceType) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[12]
}
func (x SimpleRef_DeviceType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use SimpleRef_DeviceType.Descriptor instead.
func (SimpleRef_DeviceType) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{26, 0}
}
type TrackSection_TrackSectionType int32
const (
TrackSection_NORMAL TrackSection_TrackSectionType = 0 //非岔区
TrackSection_FORK TrackSection_TrackSectionType = 1 //岔区
)
// Enum value maps for TrackSection_TrackSectionType.
var (
TrackSection_TrackSectionType_name = map[int32]string{
0: "NORMAL",
1: "FORK",
}
TrackSection_TrackSectionType_value = map[string]int32{
"NORMAL": 0,
"FORK": 1,
}
)
func (x TrackSection_TrackSectionType) Enum() *TrackSection_TrackSectionType {
p := new(TrackSection_TrackSectionType)
*p = x
return p
}
func (x TrackSection_TrackSectionType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (TrackSection_TrackSectionType) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[13].Descriptor()
}
func (TrackSection_TrackSectionType) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[13]
}
func (x TrackSection_TrackSectionType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use TrackSection_TrackSectionType.Descriptor instead.
func (TrackSection_TrackSectionType) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{30, 0}
}
type StopPosition_CoachNum int32
const (
StopPosition_Four StopPosition_CoachNum = 0
StopPosition_Six StopPosition_CoachNum = 1
StopPosition_Eight StopPosition_CoachNum = 2
)
// Enum value maps for StopPosition_CoachNum.
var (
StopPosition_CoachNum_name = map[int32]string{
0: "Four",
1: "Six",
2: "Eight",
}
StopPosition_CoachNum_value = map[string]int32{
"Four": 0,
"Six": 1,
"Eight": 2,
}
)
func (x StopPosition_CoachNum) Enum() *StopPosition_CoachNum {
p := new(StopPosition_CoachNum)
*p = x
return p
}
func (x StopPosition_CoachNum) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (StopPosition_CoachNum) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[14].Descriptor()
}
func (StopPosition_CoachNum) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[14]
}
func (x StopPosition_CoachNum) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use StopPosition_CoachNum.Descriptor instead.
func (StopPosition_CoachNum) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{32, 0}
}
type Beacon_BeaconType int32
const (
Beacon_Static Beacon_BeaconType = 0
Beacon_Dynamic Beacon_BeaconType = 1
)
// Enum value maps for Beacon_BeaconType.
var (
Beacon_BeaconType_name = map[int32]string{
0: "Static",
1: "Dynamic",
}
Beacon_BeaconType_value = map[string]int32{
"Static": 0,
"Dynamic": 1,
}
)
func (x Beacon_BeaconType) Enum() *Beacon_BeaconType {
p := new(Beacon_BeaconType)
*p = x
return p
}
func (x Beacon_BeaconType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Beacon_BeaconType) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[15].Descriptor()
}
func (Beacon_BeaconType) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[15]
}
func (x Beacon_BeaconType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Beacon_BeaconType.Descriptor instead.
func (Beacon_BeaconType) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{43, 0}
}
type Train_TrainModel int32
const (
Train_A Train_TrainModel = 0
Train_B Train_TrainModel = 1
Train_C Train_TrainModel = 2
Train_D Train_TrainModel = 3
)
// Enum value maps for Train_TrainModel.
var (
Train_TrainModel_name = map[int32]string{
0: "A",
1: "B",
2: "C",
3: "D",
}
Train_TrainModel_value = map[string]int32{
"A": 0,
"B": 1,
"C": 2,
"D": 3,
}
)
func (x Train_TrainModel) Enum() *Train_TrainModel {
p := new(Train_TrainModel)
*p = x
return p
}
func (x Train_TrainModel) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Train_TrainModel) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[16].Descriptor()
}
func (Train_TrainModel) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[16]
}
func (x Train_TrainModel) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Train_TrainModel.Descriptor instead.
func (Train_TrainModel) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{53, 0}
}
type RtssGraphicStorage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Canvas *Canvas `protobuf:"bytes,1,opt,name=canvas,proto3" json:"canvas,omitempty"`
// repeated Link links = 2;
// repeated IscsFan iscsFans = 3;
Platforms []*Platform `protobuf:"bytes,4,rep,name=Platforms,proto3" json:"Platforms,omitempty"`
Stations []*Station `protobuf:"bytes,5,rep,name=stations,proto3" json:"stations,omitempty"`
// repeated Rect rects = 6;
Train []*Train `protobuf:"bytes,7,rep,name=train,proto3" json:"train,omitempty"`
Signals []*Signal `protobuf:"bytes,8,rep,name=signals,proto3" json:"signals,omitempty"`
Turnouts []*Turnout `protobuf:"bytes,9,rep,name=turnouts,proto3" json:"turnouts,omitempty"`
Section []*Section `protobuf:"bytes,10,rep,name=section,proto3" json:"section,omitempty"`
Polygons []*Polygon `protobuf:"bytes,11,rep,name=polygons,proto3" json:"polygons,omitempty"`
TrainWindows []*TrainWindow `protobuf:"bytes,12,rep,name=trainWindows,proto3" json:"trainWindows,omitempty"`
AxleCountings []*AxleCounting `protobuf:"bytes,13,rep,name=axleCountings,proto3" json:"axleCountings,omitempty"`
Separators []*Separator `protobuf:"bytes,14,rep,name=separators,proto3" json:"separators,omitempty"`
SectionLinks []*SectionLink `protobuf:"bytes,15,rep,name=sectionLinks,proto3" json:"sectionLinks,omitempty"`
AxleCountingSections []*AxleCountingSection `protobuf:"bytes,16,rep,name=axleCountingSections,proto3" json:"axleCountingSections,omitempty"`
LogicSections []*LogicSection `protobuf:"bytes,17,rep,name=logicSections,proto3" json:"logicSections,omitempty"`
StopPositions []*StopPosition `protobuf:"bytes,18,rep,name=stopPositions,proto3" json:"stopPositions,omitempty"`
SpksSwitchs []*SpksSwitch `protobuf:"bytes,19,rep,name=spksSwitchs,proto3" json:"spksSwitchs,omitempty"`
EsbButtons []*EsbButton `protobuf:"bytes,20,rep,name=esbButtons,proto3" json:"esbButtons,omitempty"` // 紧急关闭按钮
GateBoxs []*GatedBox `protobuf:"bytes,21,rep,name=gateBoxs,proto3" json:"gateBoxs,omitempty"` // 站台开门/关门/发车按钮整合控制箱
Transponders []*Transponder `protobuf:"bytes,22,rep,name=transponders,proto3" json:"transponders,omitempty"` // 应答器
Slopes []*Slope `protobuf:"bytes,23,rep,name=slopes,proto3" json:"slopes,omitempty"` // 坡度
// repeated CalculateLink CalculateLink = 24; // 计算link信息
SlopeKiloMarker []*SlopeKiloMarker `protobuf:"bytes,25,rep,name=slopeKiloMarker,proto3" json:"slopeKiloMarker,omitempty"` //坡度公里标
CurvatureKiloMarker []*CurvatureKiloMarker `protobuf:"bytes,26,rep,name=curvatureKiloMarker,proto3" json:"curvatureKiloMarker,omitempty"` //曲度公里标
Curvatures []*Curvature `protobuf:"bytes,27,rep,name=curvatures,proto3" json:"curvatures,omitempty"` // 曲度
TrackSections []*TrackSection `protobuf:"bytes,28,rep,name=trackSections,proto3" json:"trackSections,omitempty"` //轨道区段
TrackLogicSections []*TrackLogicSection `protobuf:"bytes,29,rep,name=trackLogicSections,proto3" json:"trackLogicSections,omitempty"` //轨道逻辑区段
// UniqueIdType UniqueIdPrefix = 30;//设备唯一编码--前缀
UniqueIdPrefix *UniqueIdOfStationLayout `protobuf:"bytes,31,opt,name=UniqueIdPrefix,proto3" json:"UniqueIdPrefix,omitempty"` //设备唯一编码--前缀
KilometerConvertList []*KilometerConvert `protobuf:"bytes,32,rep,name=kilometerConvertList,proto3" json:"kilometerConvertList,omitempty"` //公里标转换列表
ScreenDoors []*ScreenDoor `protobuf:"bytes,33,rep,name=screenDoors,proto3" json:"screenDoors,omitempty"`
StationRelateDeviceList []*StationRelateDevice `protobuf:"bytes,34,rep,name=stationRelateDeviceList,proto3" json:"stationRelateDeviceList,omitempty"` // 关联设备列表
SectionCodePointList []*SectionCodePoint `protobuf:"bytes,35,rep,name=sectionCodePointList,proto3" json:"sectionCodePointList,omitempty"` // 物理区段码位表
ScreenDoorConfig *ScreenDoorConfig `protobuf:"bytes,36,opt,name=screenDoorConfig,proto3" json:"screenDoorConfig,omitempty"` //屏蔽门的配置--子屏蔽门的数量和编组列表
Beacons []*Beacon `protobuf:"bytes,37,rep,name=beacons,proto3" json:"beacons,omitempty"` // 信标
GenerateAxleCountingConfig *GenerateAxleCountingConfig `protobuf:"bytes,38,opt,name=generateAxleCountingConfig,proto3" json:"generateAxleCountingConfig,omitempty"` //一键生成计轴的配置
DepartureTimers []*DepartureTimer `protobuf:"bytes,39,rep,name=departureTimers,proto3" json:"departureTimers,omitempty"` // 发车计时器
AutoReturnBoxs []*AutoReturnBox `protobuf:"bytes,40,rep,name=autoReturnBoxs,proto3" json:"autoReturnBoxs,omitempty"` // 自动折返按钮箱
ConcentrationDividingLines []*ConcentrationDividingLine `protobuf:"bytes,41,rep,name=concentrationDividingLines,proto3" json:"concentrationDividingLines,omitempty"` // 集中区分割线
OtherLineList []*OtherLine `protobuf:"bytes,42,rep,name=otherLineList,proto3" json:"otherLineList,omitempty"` // 其他线设备列表
IbpBoxs []*IbpBox `protobuf:"bytes,43,rep,name=ibpBoxs,proto3" json:"ibpBoxs,omitempty"` // ibp地图打开按钮
PslBoxs []*PslBox `protobuf:"bytes,44,rep,name=pslBoxs,proto3" json:"pslBoxs,omitempty"` // psl地图打开按钮
CarWashings []*CarWashing `protobuf:"bytes,45,rep,name=carWashings,proto3" json:"carWashings,omitempty"` // 洗车机
GarageDoors []*GarageDoor `protobuf:"bytes,46,rep,name=garageDoors,proto3" json:"garageDoors,omitempty"` // 车库门
FloodGates []*FloodGate `protobuf:"bytes,47,rep,name=floodGates,proto3" json:"floodGates,omitempty"` // 防淹门
GarageDoorBoxes []*GarageDoorBox `protobuf:"bytes,48,rep,name=garageDoorBoxes,proto3" json:"garageDoorBoxes,omitempty"` //车库门Psl开启按钮
}
func (x *RtssGraphicStorage) Reset() {
*x = RtssGraphicStorage{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RtssGraphicStorage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RtssGraphicStorage) ProtoMessage() {}
func (x *RtssGraphicStorage) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RtssGraphicStorage.ProtoReflect.Descriptor instead.
func (*RtssGraphicStorage) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{0}
}
func (x *RtssGraphicStorage) GetCanvas() *Canvas {
if x != nil {
return x.Canvas
}
return nil
}
func (x *RtssGraphicStorage) GetPlatforms() []*Platform {
if x != nil {
return x.Platforms
}
return nil
}
func (x *RtssGraphicStorage) GetStations() []*Station {
if x != nil {
return x.Stations
}
return nil
}
func (x *RtssGraphicStorage) GetTrain() []*Train {
if x != nil {
return x.Train
}
return nil
}
func (x *RtssGraphicStorage) GetSignals() []*Signal {
if x != nil {
return x.Signals
}
return nil
}
func (x *RtssGraphicStorage) GetTurnouts() []*Turnout {
if x != nil {
return x.Turnouts
}
return nil
}
func (x *RtssGraphicStorage) GetSection() []*Section {
if x != nil {
return x.Section
}
return nil
}
func (x *RtssGraphicStorage) GetPolygons() []*Polygon {
if x != nil {
return x.Polygons
}
return nil
}
func (x *RtssGraphicStorage) GetTrainWindows() []*TrainWindow {
if x != nil {
return x.TrainWindows
}
return nil
}
func (x *RtssGraphicStorage) GetAxleCountings() []*AxleCounting {
if x != nil {
return x.AxleCountings
}
return nil
}
func (x *RtssGraphicStorage) GetSeparators() []*Separator {
if x != nil {
return x.Separators
}
return nil
}
func (x *RtssGraphicStorage) GetSectionLinks() []*SectionLink {
if x != nil {
return x.SectionLinks
}
return nil
}
func (x *RtssGraphicStorage) GetAxleCountingSections() []*AxleCountingSection {
if x != nil {
return x.AxleCountingSections
}
return nil
}
func (x *RtssGraphicStorage) GetLogicSections() []*LogicSection {
if x != nil {
return x.LogicSections
}
return nil
}
func (x *RtssGraphicStorage) GetStopPositions() []*StopPosition {
if x != nil {
return x.StopPositions
}
return nil
}
func (x *RtssGraphicStorage) GetSpksSwitchs() []*SpksSwitch {
if x != nil {
return x.SpksSwitchs
}
return nil
}
func (x *RtssGraphicStorage) GetEsbButtons() []*EsbButton {
if x != nil {
return x.EsbButtons
}
return nil
}
func (x *RtssGraphicStorage) GetGateBoxs() []*GatedBox {
if x != nil {
return x.GateBoxs
}
return nil
}
func (x *RtssGraphicStorage) GetTransponders() []*Transponder {
if x != nil {
return x.Transponders
}
return nil
}
func (x *RtssGraphicStorage) GetSlopes() []*Slope {
if x != nil {
return x.Slopes
}
return nil
}
func (x *RtssGraphicStorage) GetSlopeKiloMarker() []*SlopeKiloMarker {
if x != nil {
return x.SlopeKiloMarker
}
return nil
}
func (x *RtssGraphicStorage) GetCurvatureKiloMarker() []*CurvatureKiloMarker {
if x != nil {
return x.CurvatureKiloMarker
}
return nil
}
func (x *RtssGraphicStorage) GetCurvatures() []*Curvature {
if x != nil {
return x.Curvatures
}
return nil
}
func (x *RtssGraphicStorage) GetTrackSections() []*TrackSection {
if x != nil {
return x.TrackSections
}
return nil
}
func (x *RtssGraphicStorage) GetTrackLogicSections() []*TrackLogicSection {
if x != nil {
return x.TrackLogicSections
}
return nil
}
func (x *RtssGraphicStorage) GetUniqueIdPrefix() *UniqueIdOfStationLayout {
if x != nil {
return x.UniqueIdPrefix
}
return nil
}
func (x *RtssGraphicStorage) GetKilometerConvertList() []*KilometerConvert {
if x != nil {
return x.KilometerConvertList
}
return nil
}
func (x *RtssGraphicStorage) GetScreenDoors() []*ScreenDoor {
if x != nil {
return x.ScreenDoors
}
return nil
}
func (x *RtssGraphicStorage) GetStationRelateDeviceList() []*StationRelateDevice {
if x != nil {
return x.StationRelateDeviceList
}
return nil
}
func (x *RtssGraphicStorage) GetSectionCodePointList() []*SectionCodePoint {
if x != nil {
return x.SectionCodePointList
}
return nil
}
func (x *RtssGraphicStorage) GetScreenDoorConfig() *ScreenDoorConfig {
if x != nil {
return x.ScreenDoorConfig
}
return nil
}
func (x *RtssGraphicStorage) GetBeacons() []*Beacon {
if x != nil {
return x.Beacons
}
return nil
}
func (x *RtssGraphicStorage) GetGenerateAxleCountingConfig() *GenerateAxleCountingConfig {
if x != nil {
return x.GenerateAxleCountingConfig
}
return nil
}
func (x *RtssGraphicStorage) GetDepartureTimers() []*DepartureTimer {
if x != nil {
return x.DepartureTimers
}
return nil
}
func (x *RtssGraphicStorage) GetAutoReturnBoxs() []*AutoReturnBox {
if x != nil {
return x.AutoReturnBoxs
}
return nil
}
func (x *RtssGraphicStorage) GetConcentrationDividingLines() []*ConcentrationDividingLine {
if x != nil {
return x.ConcentrationDividingLines
}
return nil
}
func (x *RtssGraphicStorage) GetOtherLineList() []*OtherLine {
if x != nil {
return x.OtherLineList
}
return nil
}
func (x *RtssGraphicStorage) GetIbpBoxs() []*IbpBox {
if x != nil {
return x.IbpBoxs
}
return nil
}
func (x *RtssGraphicStorage) GetPslBoxs() []*PslBox {
if x != nil {
return x.PslBoxs
}
return nil
}
func (x *RtssGraphicStorage) GetCarWashings() []*CarWashing {
if x != nil {
return x.CarWashings
}
return nil
}
func (x *RtssGraphicStorage) GetGarageDoors() []*GarageDoor {
if x != nil {
return x.GarageDoors
}
return nil
}
func (x *RtssGraphicStorage) GetFloodGates() []*FloodGate {
if x != nil {
return x.FloodGates
}
return nil
}
func (x *RtssGraphicStorage) GetGarageDoorBoxes() []*GarageDoorBox {
if x != nil {
return x.GarageDoorBoxes
}
return nil
}
type Canvas struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 画布宽
Width int32 `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"`
// 画布高
Height int32 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
// 背景色
BackgroundColor string `protobuf:"bytes,3,opt,name=backgroundColor,proto3" json:"backgroundColor,omitempty"`
// 视口变换
ViewportTransform *Transform `protobuf:"bytes,4,opt,name=viewportTransform,proto3" json:"viewportTransform,omitempty"`
// 画布格子背景
GridBackground *Grid `protobuf:"bytes,5,opt,name=gridBackground,proto3" json:"gridBackground,omitempty"`
}
func (x *Canvas) Reset() {
*x = Canvas{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Canvas) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Canvas) ProtoMessage() {}
func (x *Canvas) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Canvas.ProtoReflect.Descriptor instead.
func (*Canvas) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{1}
}
func (x *Canvas) GetWidth() int32 {
if x != nil {
return x.Width
}
return 0
}
func (x *Canvas) GetHeight() int32 {
if x != nil {
return x.Height
}
return 0
}
func (x *Canvas) GetBackgroundColor() string {
if x != nil {
return x.BackgroundColor
}
return ""
}
func (x *Canvas) GetViewportTransform() *Transform {
if x != nil {
return x.ViewportTransform
}
return nil
}
func (x *Canvas) GetGridBackground() *Grid {
if x != nil {
return x.GridBackground
}
return nil
}
// 格子背景
type Grid struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
HasGrid bool `protobuf:"varint,1,opt,name=hasGrid,proto3" json:"hasGrid,omitempty"`
LineColor string `protobuf:"bytes,2,opt,name=lineColor,proto3" json:"lineColor,omitempty"` // 线色
Space int32 `protobuf:"varint,3,opt,name=space,proto3" json:"space,omitempty"` //间隔
}
func (x *Grid) Reset() {
*x = Grid{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Grid) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Grid) ProtoMessage() {}
func (x *Grid) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Grid.ProtoReflect.Descriptor instead.
func (*Grid) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{2}
}
func (x *Grid) GetHasGrid() bool {
if x != nil {
return x.HasGrid
}
return false
}
func (x *Grid) GetLineColor() string {
if x != nil {
return x.LineColor
}
return ""
}
func (x *Grid) GetSpace() int32 {
if x != nil {
return x.Space
}
return 0
}
type Point struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// x坐标
X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"`
// y坐标
Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"`
}
func (x *Point) Reset() {
*x = Point{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Point) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Point) ProtoMessage() {}
func (x *Point) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Point.ProtoReflect.Descriptor instead.
func (*Point) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{3}
}
func (x *Point) GetX() float32 {
if x != nil {
return x.X
}
return 0
}
func (x *Point) GetY() float32 {
if x != nil {
return x.Y
}
return 0
}
// 变换
type Transform struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 位移
Position *Point `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"`
// 缩放
Scale *Point `protobuf:"bytes,2,opt,name=scale,proto3" json:"scale,omitempty"`
// 旋转弧度
Rotation float32 `protobuf:"fixed32,3,opt,name=rotation,proto3" json:"rotation,omitempty"`
// 歪斜
Skew *Point `protobuf:"bytes,4,opt,name=skew,proto3" json:"skew,omitempty"`
}
func (x *Transform) Reset() {
*x = Transform{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Transform) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Transform) ProtoMessage() {}
func (x *Transform) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Transform.ProtoReflect.Descriptor instead.
func (*Transform) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{4}
}
func (x *Transform) GetPosition() *Point {
if x != nil {
return x.Position
}
return nil
}
func (x *Transform) GetScale() *Point {
if x != nil {
return x.Scale
}
return nil
}
func (x *Transform) GetRotation() float32 {
if x != nil {
return x.Rotation
}
return 0
}
func (x *Transform) GetSkew() *Point {
if x != nil {
return x.Skew
}
return nil
}
// 子元素变换
type ChildTransform struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 子元素名称
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// 子元素变换
Transform *Transform `protobuf:"bytes,2,opt,name=transform,proto3" json:"transform,omitempty"`
}
func (x *ChildTransform) Reset() {
*x = ChildTransform{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChildTransform) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChildTransform) ProtoMessage() {}
func (x *ChildTransform) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ChildTransform.ProtoReflect.Descriptor instead.
func (*ChildTransform) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{5}
}
func (x *ChildTransform) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *ChildTransform) GetTransform() *Transform {
if x != nil {
return x.Transform
}
return nil
}
// 公共属性
type CommonInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Oldid string `protobuf:"bytes,1,opt,name=oldid,proto3" json:"oldid,omitempty"`
GraphicType string `protobuf:"bytes,2,opt,name=graphicType,proto3" json:"graphicType,omitempty"`
Transform *Transform `protobuf:"bytes,3,opt,name=transform,proto3" json:"transform,omitempty"`
ChildTransforms []*ChildTransform `protobuf:"bytes,4,rep,name=childTransforms,proto3" json:"childTransforms,omitempty"`
Id uint32 `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"`
}
func (x *CommonInfo) Reset() {
*x = CommonInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CommonInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CommonInfo) ProtoMessage() {}
func (x *CommonInfo) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CommonInfo.ProtoReflect.Descriptor instead.
func (*CommonInfo) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{6}
}
func (x *CommonInfo) GetOldid() string {
if x != nil {
return x.Oldid
}
return ""
}
func (x *CommonInfo) GetGraphicType() string {
if x != nil {
return x.GraphicType
}
return ""
}
func (x *CommonInfo) GetTransform() *Transform {
if x != nil {
return x.Transform
}
return nil
}
func (x *CommonInfo) GetChildTransforms() []*ChildTransform {
if x != nil {
return x.ChildTransforms
}
return nil
}
func (x *CommonInfo) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
type Polygon struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 编号
PolygonType Polygon_PolygonType `protobuf:"varint,3,opt,name=polygonType,proto3,enum=graphicData.Polygon_PolygonType" json:"polygonType,omitempty"` // 多边形类型
Points []*Point `protobuf:"bytes,4,rep,name=points,proto3" json:"points,omitempty"` // 点列表
}
func (x *Polygon) Reset() {
*x = Polygon{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Polygon) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Polygon) ProtoMessage() {}
func (x *Polygon) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Polygon.ProtoReflect.Descriptor instead.
func (*Polygon) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{7}
}
func (x *Polygon) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Polygon) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Polygon) GetPolygonType() Polygon_PolygonType {
if x != nil {
return x.PolygonType
}
return Polygon_ConcentrationDividingLine
}
func (x *Polygon) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
type ConcentrationDividingLine struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 编号
Points []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"` // 点列表
OldrefLeftStationId string `protobuf:"bytes,4,opt,name=oldrefLeftStationId,proto3" json:"oldrefLeftStationId,omitempty"` //左边关联的集中站id
OldrefRightStationId string `protobuf:"bytes,5,opt,name=oldrefRightStationId,proto3" json:"oldrefRightStationId,omitempty"` //右边关联的集中站id
NodeConWithSecs []*NodeConWithSec `protobuf:"bytes,6,rep,name=nodeConWithSecs,proto3" json:"nodeConWithSecs,omitempty"` // 集中区分割线与区段的交点
IsOtherLineConcentrationDividingLine bool `protobuf:"varint,7,opt,name=isOtherLineConcentrationDividingLine,proto3" json:"isOtherLineConcentrationDividingLine,omitempty"` //集中区分割线绘制在其它线的边界处
RefLeftStationId uint32 `protobuf:"varint,8,opt,name=refLeftStationId,proto3" json:"refLeftStationId,omitempty"` //左边关联的集中站id
RefRightStationId uint32 `protobuf:"varint,9,opt,name=refRightStationId,proto3" json:"refRightStationId,omitempty"` //右边关联的集中站id
}
func (x *ConcentrationDividingLine) Reset() {
*x = ConcentrationDividingLine{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ConcentrationDividingLine) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ConcentrationDividingLine) ProtoMessage() {}
func (x *ConcentrationDividingLine) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ConcentrationDividingLine.ProtoReflect.Descriptor instead.
func (*ConcentrationDividingLine) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{8}
}
func (x *ConcentrationDividingLine) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *ConcentrationDividingLine) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *ConcentrationDividingLine) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *ConcentrationDividingLine) GetOldrefLeftStationId() string {
if x != nil {
return x.OldrefLeftStationId
}
return ""
}
func (x *ConcentrationDividingLine) GetOldrefRightStationId() string {
if x != nil {
return x.OldrefRightStationId
}
return ""
}
func (x *ConcentrationDividingLine) GetNodeConWithSecs() []*NodeConWithSec {
if x != nil {
return x.NodeConWithSecs
}
return nil
}
func (x *ConcentrationDividingLine) GetIsOtherLineConcentrationDividingLine() bool {
if x != nil {
return x.IsOtherLineConcentrationDividingLine
}
return false
}
func (x *ConcentrationDividingLine) GetRefLeftStationId() uint32 {
if x != nil {
return x.RefLeftStationId
}
return 0
}
func (x *ConcentrationDividingLine) GetRefRightStationId() uint32 {
if x != nil {
return x.RefRightStationId
}
return 0
}
type NodeConWithSec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
LeftSection *RelatedRef `protobuf:"bytes,1,opt,name=leftSection,proto3" json:"leftSection,omitempty"`
RightSection *RelatedRef `protobuf:"bytes,2,opt,name=rightSection,proto3" json:"rightSection,omitempty"`
}
func (x *NodeConWithSec) Reset() {
*x = NodeConWithSec{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NodeConWithSec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NodeConWithSec) ProtoMessage() {}
func (x *NodeConWithSec) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use NodeConWithSec.ProtoReflect.Descriptor instead.
func (*NodeConWithSec) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{9}
}
func (x *NodeConWithSec) GetLeftSection() *RelatedRef {
if x != nil {
return x.LeftSection
}
return nil
}
func (x *NodeConWithSec) GetRightSection() *RelatedRef {
if x != nil {
return x.RightSection
}
return nil
}
type Platform struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
// bool hasdoor = 3; // 是否有屏蔽门
// string direction = 4; // 屏蔽门上下
// int32 index = 5; //索引
// int32 refStationIndex = 6; //关联车站索引
// repeated string centralizedStations = 7; // 集中站列表
// repeated RelatedRef platformRef = 8; //站台关联的车站和物理区段
OldrefStationId string `protobuf:"bytes,9,opt,name=oldrefStationId,proto3" json:"oldrefStationId,omitempty"` //关联的车站的id
OldrefSectionId string `protobuf:"bytes,10,opt,name=oldrefSectionId,proto3" json:"oldrefSectionId,omitempty"` //关联的物理区段id
RefEsbRelayCode string `protobuf:"bytes,11,opt,name=refEsbRelayCode,proto3" json:"refEsbRelayCode,omitempty"` //关联的紧急停车继电器的编号
Type Platform_TypeOfPlatform `protobuf:"varint,12,opt,name=type,proto3,enum=graphicData.Platform_TypeOfPlatform" json:"type,omitempty"` //站台的上下行
RefStationId uint32 `protobuf:"varint,13,opt,name=refStationId,proto3" json:"refStationId,omitempty"` //关联的车站的id
RefSectionId uint32 `protobuf:"varint,14,opt,name=refSectionId,proto3" json:"refSectionId,omitempty"` //关联的物理区段id
}
func (x *Platform) Reset() {
*x = Platform{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Platform) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Platform) ProtoMessage() {}
func (x *Platform) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Platform.ProtoReflect.Descriptor instead.
func (*Platform) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{10}
}
func (x *Platform) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Platform) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Platform) GetOldrefStationId() string {
if x != nil {
return x.OldrefStationId
}
return ""
}
func (x *Platform) GetOldrefSectionId() string {
if x != nil {
return x.OldrefSectionId
}
return ""
}
func (x *Platform) GetRefEsbRelayCode() string {
if x != nil {
return x.RefEsbRelayCode
}
return ""
}
func (x *Platform) GetType() Platform_TypeOfPlatform {
if x != nil {
return x.Type
}
return Platform_Unknown
}
func (x *Platform) GetRefStationId() uint32 {
if x != nil {
return x.RefStationId
}
return 0
}
func (x *Platform) GetRefSectionId() uint32 {
if x != nil {
return x.RefSectionId
}
return 0
}
type ScreenDoor struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
// int32 sonDoorAmount = 3; //子屏蔽门的数量
OldrefPlatformId string `protobuf:"bytes,4,opt,name=oldrefPlatformId,proto3" json:"oldrefPlatformId,omitempty"` //关联的站台
// repeated ScreenDoorGroup screenDoorGroupList = 5;//编组列表
RefPlatformId uint32 `protobuf:"varint,6,opt,name=refPlatformId,proto3" json:"refPlatformId,omitempty"` //关联的站台
}
func (x *ScreenDoor) Reset() {
*x = ScreenDoor{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ScreenDoor) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ScreenDoor) ProtoMessage() {}
func (x *ScreenDoor) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ScreenDoor.ProtoReflect.Descriptor instead.
func (*ScreenDoor) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{11}
}
func (x *ScreenDoor) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *ScreenDoor) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *ScreenDoor) GetOldrefPlatformId() string {
if x != nil {
return x.OldrefPlatformId
}
return ""
}
func (x *ScreenDoor) GetRefPlatformId() uint32 {
if x != nil {
return x.RefPlatformId
}
return 0
}
type ScreenDoorConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SonDoorAmount int32 `protobuf:"varint,1,opt,name=sonDoorAmount,proto3" json:"sonDoorAmount,omitempty"` //子屏蔽门的数量
ScreenDoorGroupList []*ScreenDoorGroup `protobuf:"bytes,2,rep,name=screenDoorGroupList,proto3" json:"screenDoorGroupList,omitempty"` //编组列表
}
func (x *ScreenDoorConfig) Reset() {
*x = ScreenDoorConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ScreenDoorConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ScreenDoorConfig) ProtoMessage() {}
func (x *ScreenDoorConfig) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ScreenDoorConfig.ProtoReflect.Descriptor instead.
func (*ScreenDoorConfig) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{12}
}
func (x *ScreenDoorConfig) GetSonDoorAmount() int32 {
if x != nil {
return x.SonDoorAmount
}
return 0
}
func (x *ScreenDoorConfig) GetScreenDoorGroupList() []*ScreenDoorGroup {
if x != nil {
return x.ScreenDoorGroupList
}
return nil
}
type ScreenDoorGroup struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TrainGroupAmount int32 `protobuf:"varint,1,opt,name=trainGroupAmount,proto3" json:"trainGroupAmount,omitempty"` //列车编组数量
StartSmallDoor int32 `protobuf:"varint,2,opt,name=startSmallDoor,proto3" json:"startSmallDoor,omitempty"` //起始的屏蔽门编号
EndSmallDoor int32 `protobuf:"varint,3,opt,name=endSmallDoor,proto3" json:"endSmallDoor,omitempty"` //结束的屏蔽门编号
}
func (x *ScreenDoorGroup) Reset() {
*x = ScreenDoorGroup{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ScreenDoorGroup) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ScreenDoorGroup) ProtoMessage() {}
func (x *ScreenDoorGroup) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ScreenDoorGroup.ProtoReflect.Descriptor instead.
func (*ScreenDoorGroup) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{13}
}
func (x *ScreenDoorGroup) GetTrainGroupAmount() int32 {
if x != nil {
return x.TrainGroupAmount
}
return 0
}
func (x *ScreenDoorGroup) GetStartSmallDoor() int32 {
if x != nil {
return x.StartSmallDoor
}
return 0
}
func (x *ScreenDoorGroup) GetEndSmallDoor() int32 {
if x != nil {
return x.EndSmallDoor
}
return 0
}
type Station struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` //车站站名
// bool hasControl = 3; // 是否有控制
ConcentrationStations bool `protobuf:"varint,4,opt,name=concentrationStations,proto3" json:"concentrationStations,omitempty"` //是否集中站
// string kilometerCode = 5; //公里标
KilometerSystem *KilometerSystem `protobuf:"bytes,6,opt,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` //公里标
// int32 index = 7;
// string refIbpMapCode = 8; // 关联IBP地图Code
StationName string `protobuf:"bytes,9,opt,name=stationName,proto3" json:"stationName,omitempty"` //车站名
StationNameAcronym string `protobuf:"bytes,10,opt,name=stationNameAcronym,proto3" json:"stationNameAcronym,omitempty"` // 车站名拼音简写
Depots bool `protobuf:"varint,11,opt,name=depots,proto3" json:"depots,omitempty"` //是否车辆段
OldmanageStations []string `protobuf:"bytes,12,rep,name=oldmanageStations,proto3" json:"oldmanageStations,omitempty"` // 如果是集中站——管理的车站-id
ManageStations []uint32 `protobuf:"varint,13,rep,packed,name=manageStations,proto3" json:"manageStations,omitempty"` // 如果是集中站——管理的车站-id
}
func (x *Station) Reset() {
*x = Station{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Station) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Station) ProtoMessage() {}
func (x *Station) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Station.ProtoReflect.Descriptor instead.
func (*Station) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{14}
}
func (x *Station) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Station) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Station) GetConcentrationStations() bool {
if x != nil {
return x.ConcentrationStations
}
return false
}
func (x *Station) GetKilometerSystem() *KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
func (x *Station) GetStationName() string {
if x != nil {
return x.StationName
}
return ""
}
func (x *Station) GetStationNameAcronym() string {
if x != nil {
return x.StationNameAcronym
}
return ""
}
func (x *Station) GetDepots() bool {
if x != nil {
return x.Depots
}
return false
}
func (x *Station) GetOldmanageStations() []string {
if x != nil {
return x.OldmanageStations
}
return nil
}
func (x *Station) GetManageStations() []uint32 {
if x != nil {
return x.ManageStations
}
return nil
}
type TrainWindow struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
SectionId int32 `protobuf:"varint,3,opt,name=sectionId,proto3" json:"sectionId,omitempty"`
}
func (x *TrainWindow) Reset() {
*x = TrainWindow{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrainWindow) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrainWindow) ProtoMessage() {}
func (x *TrainWindow) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TrainWindow.ProtoReflect.Descriptor instead.
func (*TrainWindow) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{15}
}
func (x *TrainWindow) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *TrainWindow) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *TrainWindow) GetSectionId() int32 {
if x != nil {
return x.SectionId
}
return 0
}
type AxleCounting struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 名称
KilometerSystem *KilometerSystem `protobuf:"bytes,3,opt,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` //公里标
AxleCountingRef []*RelatedRef `protobuf:"bytes,4,rep,name=axleCountingRef,proto3" json:"axleCountingRef,omitempty"` // 计轴关联的非岔区物理区段和道岔设备id和端口
// int32 index = 5; //计轴的索引编号
// bool invent = 6; //是否虚拟计轴--一般是最末端
Type AxleCounting_TypeDetectionPoint `protobuf:"varint,7,opt,name=type,proto3,enum=graphicData.AxleCounting_TypeDetectionPoint" json:"type,omitempty"` //检测点的类型:计轴、区段边界
OldcentralizedStations []string `protobuf:"bytes,8,rep,name=oldcentralizedStations,proto3" json:"oldcentralizedStations,omitempty"` // 集中站Id列表
CentralizedStations []uint32 `protobuf:"varint,9,rep,packed,name=centralizedStations,proto3" json:"centralizedStations,omitempty"` // 集中站Id列表
}
func (x *AxleCounting) Reset() {
*x = AxleCounting{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AxleCounting) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AxleCounting) ProtoMessage() {}
func (x *AxleCounting) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AxleCounting.ProtoReflect.Descriptor instead.
func (*AxleCounting) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{16}
}
func (x *AxleCounting) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *AxleCounting) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *AxleCounting) GetKilometerSystem() *KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
func (x *AxleCounting) GetAxleCountingRef() []*RelatedRef {
if x != nil {
return x.AxleCountingRef
}
return nil
}
func (x *AxleCounting) GetType() AxleCounting_TypeDetectionPoint {
if x != nil {
return x.Type
}
return AxleCounting_AxleCounting
}
func (x *AxleCounting) GetOldcentralizedStations() []string {
if x != nil {
return x.OldcentralizedStations
}
return nil
}
func (x *AxleCounting) GetCentralizedStations() []uint32 {
if x != nil {
return x.CentralizedStations
}
return nil
}
type GenerateAxleCountingConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OldbbConnect []string `protobuf:"bytes,1,rep,name=oldbbConnect,proto3" json:"oldbbConnect,omitempty"` //需要在道岔bb连接处生成计轴的道岔id(填一个就行)
OldnoGenerateGroup []string `protobuf:"bytes,2,rep,name=oldnoGenerateGroup,proto3" json:"oldnoGenerateGroup,omitempty"` //指定的道岔组不生成计轴
BbConnect []uint32 `protobuf:"varint,3,rep,packed,name=bbConnect,proto3" json:"bbConnect,omitempty"` //需要在道岔bb连接处生成计轴的道岔id(填一个就行)
NoGenerateGroup []uint32 `protobuf:"varint,4,rep,packed,name=noGenerateGroup,proto3" json:"noGenerateGroup,omitempty"` //指定的道岔组不生成计轴
}
func (x *GenerateAxleCountingConfig) Reset() {
*x = GenerateAxleCountingConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GenerateAxleCountingConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GenerateAxleCountingConfig) ProtoMessage() {}
func (x *GenerateAxleCountingConfig) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GenerateAxleCountingConfig.ProtoReflect.Descriptor instead.
func (*GenerateAxleCountingConfig) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{17}
}
func (x *GenerateAxleCountingConfig) GetOldbbConnect() []string {
if x != nil {
return x.OldbbConnect
}
return nil
}
func (x *GenerateAxleCountingConfig) GetOldnoGenerateGroup() []string {
if x != nil {
return x.OldnoGenerateGroup
}
return nil
}
func (x *GenerateAxleCountingConfig) GetBbConnect() []uint32 {
if x != nil {
return x.BbConnect
}
return nil
}
func (x *GenerateAxleCountingConfig) GetNoGenerateGroup() []uint32 {
if x != nil {
return x.NoGenerateGroup
}
return nil
}
type Turnout struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
PointA []*Point `protobuf:"bytes,6,rep,name=pointA,proto3" json:"pointA,omitempty"` // A端坐标列表
PointB []*Point `protobuf:"bytes,7,rep,name=pointB,proto3" json:"pointB,omitempty"` // B端坐标列表
PointC []*Point `protobuf:"bytes,8,rep,name=pointC,proto3" json:"pointC,omitempty"` // C端坐标列表
PaRef *RelatedRef `protobuf:"bytes,9,opt,name=paRef,proto3" json:"paRef,omitempty"` // 道岔A端关联的设备
PbRef *RelatedRef `protobuf:"bytes,10,opt,name=pbRef,proto3" json:"pbRef,omitempty"` // 道岔B端关联的设备
PcRef *RelatedRef `protobuf:"bytes,11,opt,name=pcRef,proto3" json:"pcRef,omitempty"` // 道岔C端关联的设备
// KilometerSystem kilometerSystem = 12; // 道岔公里标
KilometerSystem []*KilometerSystem `protobuf:"bytes,13,rep,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` // 道岔公里标
// int32 index = 14; //索引
OldpaTrackSectionId string `protobuf:"bytes,15,opt,name=oldpaTrackSectionId,proto3" json:"oldpaTrackSectionId,omitempty"` // A端轨道区段id
OldpbTrackSectionId string `protobuf:"bytes,16,opt,name=oldpbTrackSectionId,proto3" json:"oldpbTrackSectionId,omitempty"` // B端轨道区段id
OldpcTrackSectionId string `protobuf:"bytes,17,opt,name=oldpcTrackSectionId,proto3" json:"oldpcTrackSectionId,omitempty"` // C端轨道区段id
SwitchMachineType Turnout_SwitchMachineType `protobuf:"varint,18,opt,name=switchMachineType,proto3,enum=graphicData.Turnout_SwitchMachineType" json:"switchMachineType,omitempty"` // 转辙机类型
OldcentralizedStations []string `protobuf:"bytes,19,rep,name=oldcentralizedStations,proto3" json:"oldcentralizedStations,omitempty"` // 集中站Id列表
CentralizedStations []uint32 `protobuf:"varint,20,rep,packed,name=centralizedStations,proto3" json:"centralizedStations,omitempty"` // 集中站Id列表
PaTrackSectionId uint32 `protobuf:"varint,21,opt,name=paTrackSectionId,proto3" json:"paTrackSectionId,omitempty"` // A端轨道区段id
PbTrackSectionId uint32 `protobuf:"varint,22,opt,name=pbTrackSectionId,proto3" json:"pbTrackSectionId,omitempty"` // B端轨道区段id
PcTrackSectionId uint32 `protobuf:"varint,23,opt,name=pcTrackSectionId,proto3" json:"pcTrackSectionId,omitempty"` // C端轨道区段id
}
func (x *Turnout) Reset() {
*x = Turnout{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Turnout) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Turnout) ProtoMessage() {}
func (x *Turnout) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Turnout.ProtoReflect.Descriptor instead.
func (*Turnout) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{18}
}
func (x *Turnout) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Turnout) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Turnout) GetPointA() []*Point {
if x != nil {
return x.PointA
}
return nil
}
func (x *Turnout) GetPointB() []*Point {
if x != nil {
return x.PointB
}
return nil
}
func (x *Turnout) GetPointC() []*Point {
if x != nil {
return x.PointC
}
return nil
}
func (x *Turnout) GetPaRef() *RelatedRef {
if x != nil {
return x.PaRef
}
return nil
}
func (x *Turnout) GetPbRef() *RelatedRef {
if x != nil {
return x.PbRef
}
return nil
}
func (x *Turnout) GetPcRef() *RelatedRef {
if x != nil {
return x.PcRef
}
return nil
}
func (x *Turnout) GetKilometerSystem() []*KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
func (x *Turnout) GetOldpaTrackSectionId() string {
if x != nil {
return x.OldpaTrackSectionId
}
return ""
}
func (x *Turnout) GetOldpbTrackSectionId() string {
if x != nil {
return x.OldpbTrackSectionId
}
return ""
}
func (x *Turnout) GetOldpcTrackSectionId() string {
if x != nil {
return x.OldpcTrackSectionId
}
return ""
}
func (x *Turnout) GetSwitchMachineType() Turnout_SwitchMachineType {
if x != nil {
return x.SwitchMachineType
}
return Turnout_Unknown
}
func (x *Turnout) GetOldcentralizedStations() []string {
if x != nil {
return x.OldcentralizedStations
}
return nil
}
func (x *Turnout) GetCentralizedStations() []uint32 {
if x != nil {
return x.CentralizedStations
}
return nil
}
func (x *Turnout) GetPaTrackSectionId() uint32 {
if x != nil {
return x.PaTrackSectionId
}
return 0
}
func (x *Turnout) GetPbTrackSectionId() uint32 {
if x != nil {
return x.PbTrackSectionId
}
return 0
}
func (x *Turnout) GetPcTrackSectionId() uint32 {
if x != nil {
return x.PcTrackSectionId
}
return 0
}
type KilometerSystem struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Kilometer int64 `protobuf:"varint,1,opt,name=kilometer,proto3" json:"kilometer,omitempty"` //公里标mm
CoordinateSystem string `protobuf:"bytes,2,opt,name=coordinateSystem,proto3" json:"coordinateSystem,omitempty"` //坐标系
Direction KilometerSystem_Direction `protobuf:"varint,3,opt,name=direction,proto3,enum=graphicData.KilometerSystem_Direction" json:"direction,omitempty"` //左右行
}
func (x *KilometerSystem) Reset() {
*x = KilometerSystem{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *KilometerSystem) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KilometerSystem) ProtoMessage() {}
func (x *KilometerSystem) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KilometerSystem.ProtoReflect.Descriptor instead.
func (*KilometerSystem) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{19}
}
func (x *KilometerSystem) GetKilometer() int64 {
if x != nil {
return x.Kilometer
}
return 0
}
func (x *KilometerSystem) GetCoordinateSystem() string {
if x != nil {
return x.CoordinateSystem
}
return ""
}
func (x *KilometerSystem) GetDirection() KilometerSystem_Direction {
if x != nil {
return x.Direction
}
return KilometerSystem_LEFT
}
type Signal struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Mirror bool `protobuf:"varint,3,opt,name=mirror,proto3" json:"mirror,omitempty"`
// int64 kilometer = 4;
// string coordinateSystem = 5;
KilometerSystem *KilometerSystem `protobuf:"bytes,6,opt,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"`
// int32 index = 7; //索引
RefDev *RelatedRef `protobuf:"bytes,8,opt,name=refDev,proto3" json:"refDev,omitempty"` //关联设备(区段/道岔)
OldcentralizedStations []string `protobuf:"bytes,9,rep,name=oldcentralizedStations,proto3" json:"oldcentralizedStations,omitempty"` // 集中站Id列表
// 信号机模型类型
Mt Signal_Model `protobuf:"varint,10,opt,name=mt,proto3,enum=graphicData.Signal_Model" json:"mt,omitempty"`
// string belongStation = 11; // 所属车站(缩写)
Direction Direction `protobuf:"varint,12,opt,name=direction,proto3,enum=graphicData.Direction" json:"direction,omitempty"` // 上下行
CentralizedStations []uint32 `protobuf:"varint,13,rep,packed,name=centralizedStations,proto3" json:"centralizedStations,omitempty"` // 集中站Id列表
}
func (x *Signal) Reset() {
*x = Signal{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Signal) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Signal) ProtoMessage() {}
func (x *Signal) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Signal.ProtoReflect.Descriptor instead.
func (*Signal) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{20}
}
func (x *Signal) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Signal) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Signal) GetMirror() bool {
if x != nil {
return x.Mirror
}
return false
}
func (x *Signal) GetKilometerSystem() *KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
func (x *Signal) GetRefDev() *RelatedRef {
if x != nil {
return x.RefDev
}
return nil
}
func (x *Signal) GetOldcentralizedStations() []string {
if x != nil {
return x.OldcentralizedStations
}
return nil
}
func (x *Signal) GetMt() Signal_Model {
if x != nil {
return x.Mt
}
return Signal_HL
}
func (x *Signal) GetDirection() Direction {
if x != nil {
return x.Direction
}
return Direction_UP
}
func (x *Signal) GetCentralizedStations() []uint32 {
if x != nil {
return x.CentralizedStations
}
return nil
}
// * 物理区段(包含岔区和非岔区)
type Section struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 编号
Points []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"` // 点列表
PaRef *RelatedRef `protobuf:"bytes,4,opt,name=paRef,proto3" json:"paRef,omitempty"` // 区段A端关联的设备(非岔区)(后端不关注)
PbRef *RelatedRef `protobuf:"bytes,5,opt,name=pbRef,proto3" json:"pbRef,omitempty"` // 区段B端关联的设备(非岔区)(后端不关注)
SectionType Section_SectionType `protobuf:"varint,6,opt,name=sectionType,proto3,enum=graphicData.Section_SectionType" json:"sectionType,omitempty"` // 区段类型
OldaxleCountings []string `protobuf:"bytes,7,rep,name=oldaxleCountings,proto3" json:"oldaxleCountings,omitempty"` // 区段对应的计轴
// int32 index = 8; // 索引
OldtrackSectionId string `protobuf:"bytes,9,opt,name=oldtrackSectionId,proto3" json:"oldtrackSectionId,omitempty"` // 下属轨道区段id
IsCurve bool `protobuf:"varint,10,opt,name=isCurve,proto3" json:"isCurve,omitempty"` // 是否曲线
SegmentsCount int32 `protobuf:"varint,12,opt,name=segmentsCount,proto3" json:"segmentsCount,omitempty"` // 曲线分段数
OldcentralizedStations []string `protobuf:"bytes,13,rep,name=oldcentralizedStations,proto3" json:"oldcentralizedStations,omitempty"` // 集中站Id列表
NormalRunningDirection Section_RunningDirection `protobuf:"varint,14,opt,name=normalRunningDirection,proto3,enum=graphicData.Section_RunningDirection" json:"normalRunningDirection,omitempty"` //常规运行方向
IsTurnBackZone bool `protobuf:"varint,15,opt,name=isTurnBackZone,proto3" json:"isTurnBackZone,omitempty"` // 是否为折返区域
Direction Direction `protobuf:"varint,16,opt,name=direction,proto3,enum=graphicData.Direction" json:"direction,omitempty"` // 上下行
AxleCountings []uint32 `protobuf:"varint,17,rep,packed,name=axleCountings,proto3" json:"axleCountings,omitempty"` // 区段对应的计轴
TrackSectionId uint32 `protobuf:"varint,18,opt,name=trackSectionId,proto3" json:"trackSectionId,omitempty"` // 下属轨道区段id
CentralizedStations []uint32 `protobuf:"varint,19,rep,packed,name=centralizedStations,proto3" json:"centralizedStations,omitempty"` // 集中站Id列表
}
func (x *Section) Reset() {
*x = Section{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Section) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Section) ProtoMessage() {}
func (x *Section) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Section.ProtoReflect.Descriptor instead.
func (*Section) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{21}
}
func (x *Section) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Section) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Section) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *Section) GetPaRef() *RelatedRef {
if x != nil {
return x.PaRef
}
return nil
}
func (x *Section) GetPbRef() *RelatedRef {
if x != nil {
return x.PbRef
}
return nil
}
func (x *Section) GetSectionType() Section_SectionType {
if x != nil {
return x.SectionType
}
return Section_Physical
}
func (x *Section) GetOldaxleCountings() []string {
if x != nil {
return x.OldaxleCountings
}
return nil
}
func (x *Section) GetOldtrackSectionId() string {
if x != nil {
return x.OldtrackSectionId
}
return ""
}
func (x *Section) GetIsCurve() bool {
if x != nil {
return x.IsCurve
}
return false
}
func (x *Section) GetSegmentsCount() int32 {
if x != nil {
return x.SegmentsCount
}
return 0
}
func (x *Section) GetOldcentralizedStations() []string {
if x != nil {
return x.OldcentralizedStations
}
return nil
}
func (x *Section) GetNormalRunningDirection() Section_RunningDirection {
if x != nil {
return x.NormalRunningDirection
}
return Section_AtoB
}
func (x *Section) GetIsTurnBackZone() bool {
if x != nil {
return x.IsTurnBackZone
}
return false
}
func (x *Section) GetDirection() Direction {
if x != nil {
return x.Direction
}
return Direction_UP
}
func (x *Section) GetAxleCountings() []uint32 {
if x != nil {
return x.AxleCountings
}
return nil
}
func (x *Section) GetTrackSectionId() uint32 {
if x != nil {
return x.TrackSectionId
}
return 0
}
func (x *Section) GetCentralizedStations() []uint32 {
if x != nil {
return x.CentralizedStations
}
return nil
}
// 关联设备
type RelatedRef struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DeviceType RelatedRef_DeviceType `protobuf:"varint,1,opt,name=deviceType,proto3,enum=graphicData.RelatedRef_DeviceType" json:"deviceType,omitempty"` //关联的设备类型
Oldid string `protobuf:"bytes,2,opt,name=oldid,proto3" json:"oldid,omitempty"` //关联的设备ID
DevicePort RelatedRef_DevicePort `protobuf:"varint,3,opt,name=devicePort,proto3,enum=graphicData.RelatedRef_DevicePort" json:"devicePort,omitempty"` //关联的设备端口
Id uint32 `protobuf:"varint,4,opt,name=id,proto3" json:"id,omitempty"`
}
func (x *RelatedRef) Reset() {
*x = RelatedRef{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RelatedRef) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RelatedRef) ProtoMessage() {}
func (x *RelatedRef) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RelatedRef.ProtoReflect.Descriptor instead.
func (*RelatedRef) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{22}
}
func (x *RelatedRef) GetDeviceType() RelatedRef_DeviceType {
if x != nil {
return x.DeviceType
}
return RelatedRef_Section
}
func (x *RelatedRef) GetOldid() string {
if x != nil {
return x.Oldid
}
return ""
}
func (x *RelatedRef) GetDevicePort() RelatedRef_DevicePort {
if x != nil {
return x.DevicePort
}
return RelatedRef_A
}
func (x *RelatedRef) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
// 计轴区段与道岔的位置关系
type TurnoutPosRef struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Oldid string `protobuf:"bytes,1,opt,name=oldid,proto3" json:"oldid,omitempty"` //道岔的ID
Position int32 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` //道岔的正反为0是定位1是反位
Id uint32 `protobuf:"varint,3,opt,name=id,proto3" json:"id,omitempty"`
}
func (x *TurnoutPosRef) Reset() {
*x = TurnoutPosRef{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TurnoutPosRef) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TurnoutPosRef) ProtoMessage() {}
func (x *TurnoutPosRef) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TurnoutPosRef.ProtoReflect.Descriptor instead.
func (*TurnoutPosRef) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{23}
}
func (x *TurnoutPosRef) GetOldid() string {
if x != nil {
return x.Oldid
}
return ""
}
func (x *TurnoutPosRef) GetPosition() int32 {
if x != nil {
return x.Position
}
return 0
}
func (x *TurnoutPosRef) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
type Separator struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
SeparatorType string `protobuf:"bytes,3,opt,name=separatorType,proto3" json:"separatorType,omitempty"`
}
func (x *Separator) Reset() {
*x = Separator{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Separator) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Separator) ProtoMessage() {}
func (x *Separator) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Separator.ProtoReflect.Descriptor instead.
func (*Separator) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{24}
}
func (x *Separator) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Separator) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Separator) GetSeparatorType() string {
if x != nil {
return x.SeparatorType
}
return ""
}
type Transponder struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
// int32 transponderType = 3; // 作废
// int32 index = 4; // 索引编号
KilometerSystem *KilometerSystem `protobuf:"bytes,5,opt,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` //公里标
TransponderRef *RelatedRef `protobuf:"bytes,6,opt,name=TransponderRef,proto3" json:"TransponderRef,omitempty"` //关联关系
OldcentralizedStations []string `protobuf:"bytes,7,rep,name=oldcentralizedStations,proto3" json:"oldcentralizedStations,omitempty"` // 集中站Id列表
// bytes fixedTelegram = 8;//无源应答器固定报文
Type Transponder_TransponderTypeEnum `protobuf:"varint,9,opt,name=type,proto3,enum=graphicData.Transponder_TransponderTypeEnum" json:"type,omitempty"` //应答器类型
CentralizedStations []uint32 `protobuf:"varint,10,rep,packed,name=centralizedStations,proto3" json:"centralizedStations,omitempty"` // 集中站Id列表
FixedTelegram string `protobuf:"bytes,11,opt,name=fixedTelegram,proto3" json:"fixedTelegram,omitempty"` //应答器固定报文
FixedUserTelegram string `protobuf:"bytes,12,opt,name=fixedUserTelegram,proto3" json:"fixedUserTelegram,omitempty"` //应答器固定用户报文
}
func (x *Transponder) Reset() {
*x = Transponder{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Transponder) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Transponder) ProtoMessage() {}
func (x *Transponder) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Transponder.ProtoReflect.Descriptor instead.
func (*Transponder) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{25}
}
func (x *Transponder) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Transponder) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Transponder) GetKilometerSystem() *KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
func (x *Transponder) GetTransponderRef() *RelatedRef {
if x != nil {
return x.TransponderRef
}
return nil
}
func (x *Transponder) GetOldcentralizedStations() []string {
if x != nil {
return x.OldcentralizedStations
}
return nil
}
func (x *Transponder) GetType() Transponder_TransponderTypeEnum {
if x != nil {
return x.Type
}
return Transponder_FB
}
func (x *Transponder) GetCentralizedStations() []uint32 {
if x != nil {
return x.CentralizedStations
}
return nil
}
func (x *Transponder) GetFixedTelegram() string {
if x != nil {
return x.FixedTelegram
}
return ""
}
func (x *Transponder) GetFixedUserTelegram() string {
if x != nil {
return x.FixedUserTelegram
}
return ""
}
type SimpleRef struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DeviceType SimpleRef_DeviceType `protobuf:"varint,1,opt,name=deviceType,proto3,enum=graphicData.SimpleRef_DeviceType" json:"deviceType,omitempty"`
Oldid string `protobuf:"bytes,2,opt,name=oldid,proto3" json:"oldid,omitempty"`
Id uint32 `protobuf:"varint,3,opt,name=id,proto3" json:"id,omitempty"`
}
func (x *SimpleRef) Reset() {
*x = SimpleRef{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SimpleRef) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SimpleRef) ProtoMessage() {}
func (x *SimpleRef) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SimpleRef.ProtoReflect.Descriptor instead.
func (*SimpleRef) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{26}
}
func (x *SimpleRef) GetDeviceType() SimpleRef_DeviceType {
if x != nil {
return x.DeviceType
}
return SimpleRef_Turnout
}
func (x *SimpleRef) GetOldid() string {
if x != nil {
return x.Oldid
}
return ""
}
func (x *SimpleRef) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
type SectionLink struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Points []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"`
Up bool `protobuf:"varint,4,opt,name=up,proto3" json:"up,omitempty"` // 是否上行
ASimRef *SimpleRef `protobuf:"bytes,5,opt,name=aSimRef,proto3" json:"aSimRef,omitempty"` // SectionLink A端连接设备构建关系 AxleCounting/Turnout //端点
BSimRef *SimpleRef `protobuf:"bytes,6,opt,name=bSimRef,proto3" json:"bSimRef,omitempty"` // SectionLink B端连接设备构建关系 AxleCounting/Turnout //端点
ARef *RelatedRef `protobuf:"bytes,7,opt,name=aRef,proto3" json:"aRef,omitempty"` // SectionLink A端连接设备端口关系 SectionLink/Turnout
BRef *RelatedRef `protobuf:"bytes,8,opt,name=bRef,proto3" json:"bRef,omitempty"` // SectionLink B端连接设备端口关系
}
func (x *SectionLink) Reset() {
*x = SectionLink{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SectionLink) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SectionLink) ProtoMessage() {}
func (x *SectionLink) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SectionLink.ProtoReflect.Descriptor instead.
func (*SectionLink) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{27}
}
func (x *SectionLink) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *SectionLink) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *SectionLink) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *SectionLink) GetUp() bool {
if x != nil {
return x.Up
}
return false
}
func (x *SectionLink) GetASimRef() *SimpleRef {
if x != nil {
return x.ASimRef
}
return nil
}
func (x *SectionLink) GetBSimRef() *SimpleRef {
if x != nil {
return x.BSimRef
}
return nil
}
func (x *SectionLink) GetARef() *RelatedRef {
if x != nil {
return x.ARef
}
return nil
}
func (x *SectionLink) GetBRef() *RelatedRef {
if x != nil {
return x.BRef
}
return nil
}
type AxleCountingSection struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 名称
Points []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"`
PaRef *RelatedRef `protobuf:"bytes,4,opt,name=paRef,proto3" json:"paRef,omitempty"` // 计轴区段A端关联的计轴
PbRef *RelatedRef `protobuf:"bytes,5,opt,name=pbRef,proto3" json:"pbRef,omitempty"` // 计轴区段B端关联的计轴
TurnoutPos []*TurnoutPosRef `protobuf:"bytes,6,rep,name=turnoutPos,proto3" json:"turnoutPos,omitempty"` //关联道岔的正反位--0是定位1是反位
}
func (x *AxleCountingSection) Reset() {
*x = AxleCountingSection{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AxleCountingSection) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AxleCountingSection) ProtoMessage() {}
func (x *AxleCountingSection) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AxleCountingSection.ProtoReflect.Descriptor instead.
func (*AxleCountingSection) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{28}
}
func (x *AxleCountingSection) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *AxleCountingSection) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *AxleCountingSection) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *AxleCountingSection) GetPaRef() *RelatedRef {
if x != nil {
return x.PaRef
}
return nil
}
func (x *AxleCountingSection) GetPbRef() *RelatedRef {
if x != nil {
return x.PbRef
}
return nil
}
func (x *AxleCountingSection) GetTurnoutPos() []*TurnoutPosRef {
if x != nil {
return x.TurnoutPos
}
return nil
}
type LogicSection struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 名称
Points []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"`
OldaxleSectionId string `protobuf:"bytes,4,opt,name=oldaxleSectionId,proto3" json:"oldaxleSectionId,omitempty"` // 关联的计轴区段Id
// int32 index = 5; // 索引编号
OldturnoutId string `protobuf:"bytes,6,opt,name=oldturnoutId,proto3" json:"oldturnoutId,omitempty"` // 关联的岔芯对应的道岔id此时该逻辑区段为该道岔C端关联的轨道link
AxleSectionId uint32 `protobuf:"varint,7,opt,name=axleSectionId,proto3" json:"axleSectionId,omitempty"` // 关联的计轴区段Id
TurnoutId uint32 `protobuf:"varint,8,opt,name=turnoutId,proto3" json:"turnoutId,omitempty"` // 关联的岔芯对应的道岔id此时该逻辑区段为该道岔C端关联的轨道link
}
func (x *LogicSection) Reset() {
*x = LogicSection{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LogicSection) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LogicSection) ProtoMessage() {}
func (x *LogicSection) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[29]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LogicSection.ProtoReflect.Descriptor instead.
func (*LogicSection) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{29}
}
func (x *LogicSection) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *LogicSection) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *LogicSection) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *LogicSection) GetOldaxleSectionId() string {
if x != nil {
return x.OldaxleSectionId
}
return ""
}
func (x *LogicSection) GetOldturnoutId() string {
if x != nil {
return x.OldturnoutId
}
return ""
}
func (x *LogicSection) GetAxleSectionId() uint32 {
if x != nil {
return x.AxleSectionId
}
return 0
}
func (x *LogicSection) GetTurnoutId() uint32 {
if x != nil {
return x.TurnoutId
}
return 0
}
type TrackSection struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Points []*Point `protobuf:"bytes,2,rep,name=points,proto3" json:"points,omitempty"`
Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` //名称
// int32 index = 4; //索引
Type TrackSection_TrackSectionType `protobuf:"varint,5,opt,name=type,proto3,enum=graphicData.TrackSection_TrackSectionType" json:"type,omitempty"` //类型
DestinationCode string `protobuf:"bytes,6,opt,name=destinationCode,proto3" json:"destinationCode,omitempty"` //目的地码
OldtrackLogicSection []string `protobuf:"bytes,7,rep,name=oldtrackLogicSection,proto3" json:"oldtrackLogicSection,omitempty"` //下属的逻辑区段id(非岔区)
// //关联的物理设备id(物理区段/道岔)由另一端(物理区段/道岔处理)
IsCurve bool `protobuf:"varint,8,opt,name=isCurve,proto3" json:"isCurve,omitempty"` // 是否曲线
SegmentsCount int32 `protobuf:"varint,9,opt,name=segmentsCount,proto3" json:"segmentsCount,omitempty"` // 曲线分段数
TrackLogicSection []uint32 `protobuf:"varint,10,rep,packed,name=trackLogicSection,proto3" json:"trackLogicSection,omitempty"` //下属的逻辑区段id(非岔区)
}
func (x *TrackSection) Reset() {
*x = TrackSection{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrackSection) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrackSection) ProtoMessage() {}
func (x *TrackSection) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TrackSection.ProtoReflect.Descriptor instead.
func (*TrackSection) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{30}
}
func (x *TrackSection) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *TrackSection) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *TrackSection) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *TrackSection) GetType() TrackSection_TrackSectionType {
if x != nil {
return x.Type
}
return TrackSection_NORMAL
}
func (x *TrackSection) GetDestinationCode() string {
if x != nil {
return x.DestinationCode
}
return ""
}
func (x *TrackSection) GetOldtrackLogicSection() []string {
if x != nil {
return x.OldtrackLogicSection
}
return nil
}
func (x *TrackSection) GetIsCurve() bool {
if x != nil {
return x.IsCurve
}
return false
}
func (x *TrackSection) GetSegmentsCount() int32 {
if x != nil {
return x.SegmentsCount
}
return 0
}
func (x *TrackSection) GetTrackLogicSection() []uint32 {
if x != nil {
return x.TrackLogicSection
}
return nil
}
type TrackLogicSection struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Points []*Point `protobuf:"bytes,2,rep,name=points,proto3" json:"points,omitempty"`
Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` //名称
Length int32 `protobuf:"varint,4,opt,name=length,proto3" json:"length,omitempty"` //长度(mm)
}
func (x *TrackLogicSection) Reset() {
*x = TrackLogicSection{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrackLogicSection) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrackLogicSection) ProtoMessage() {}
func (x *TrackLogicSection) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[31]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TrackLogicSection.ProtoReflect.Descriptor instead.
func (*TrackLogicSection) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{31}
}
func (x *TrackLogicSection) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *TrackLogicSection) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *TrackLogicSection) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *TrackLogicSection) GetLength() int32 {
if x != nil {
return x.Length
}
return 0
}
type StopPosition struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Flip bool `protobuf:"varint,3,opt,name=flip,proto3" json:"flip,omitempty"` // 是否翻转(前端显示)
CoachNum StopPosition_CoachNum `protobuf:"varint,4,opt,name=coachNum,proto3,enum=graphicData.StopPosition_CoachNum" json:"coachNum,omitempty"` //编组数量
// int32 index = 5; //索引
KilometerSystem *KilometerSystem `protobuf:"bytes,6,opt,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"`
RefDev *RelatedRef `protobuf:"bytes,7,opt,name=refDev,proto3" json:"refDev,omitempty"` // 关联设备(区段)
}
func (x *StopPosition) Reset() {
*x = StopPosition{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StopPosition) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StopPosition) ProtoMessage() {}
func (x *StopPosition) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[32]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StopPosition.ProtoReflect.Descriptor instead.
func (*StopPosition) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{32}
}
func (x *StopPosition) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *StopPosition) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *StopPosition) GetFlip() bool {
if x != nil {
return x.Flip
}
return false
}
func (x *StopPosition) GetCoachNum() StopPosition_CoachNum {
if x != nil {
return x.CoachNum
}
return StopPosition_Four
}
func (x *StopPosition) GetKilometerSystem() *KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
func (x *StopPosition) GetRefDev() *RelatedRef {
if x != nil {
return x.RefDev
}
return nil
}
type SpksSwitch struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Flip bool `protobuf:"varint,3,opt,name=flip,proto3" json:"flip,omitempty"` // 是否翻转(前端显示)
// int32 index = 4; //索引
// int32 refStand = 5; //关联站台索引
OldrefSections []string `protobuf:"bytes,6,rep,name=oldrefSections,proto3" json:"oldrefSections,omitempty"` // 关联物理区段id
OldrefStand string `protobuf:"bytes,7,opt,name=oldrefStand,proto3" json:"oldrefStand,omitempty"` // 关联站台
RefSections []uint32 `protobuf:"varint,8,rep,packed,name=refSections,proto3" json:"refSections,omitempty"` // 关联物理区段id
RefStand uint32 `protobuf:"varint,9,opt,name=refStand,proto3" json:"refStand,omitempty"` // 关联站台
}
func (x *SpksSwitch) Reset() {
*x = SpksSwitch{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SpksSwitch) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SpksSwitch) ProtoMessage() {}
func (x *SpksSwitch) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SpksSwitch.ProtoReflect.Descriptor instead.
func (*SpksSwitch) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{33}
}
func (x *SpksSwitch) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *SpksSwitch) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *SpksSwitch) GetFlip() bool {
if x != nil {
return x.Flip
}
return false
}
func (x *SpksSwitch) GetOldrefSections() []string {
if x != nil {
return x.OldrefSections
}
return nil
}
func (x *SpksSwitch) GetOldrefStand() string {
if x != nil {
return x.OldrefStand
}
return ""
}
func (x *SpksSwitch) GetRefSections() []uint32 {
if x != nil {
return x.RefSections
}
return nil
}
func (x *SpksSwitch) GetRefStand() uint32 {
if x != nil {
return x.RefStand
}
return 0
}
type EsbButton struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Flip bool `protobuf:"varint,3,opt,name=flip,proto3" json:"flip,omitempty"` // 是否翻转(前端显示)
// int32 index = 4; //索引
// int32 refStand = 5; // 关联站台索引
OldrefStand string `protobuf:"bytes,6,opt,name=oldrefStand,proto3" json:"oldrefStand,omitempty"` // 关联站台
RefStand uint32 `protobuf:"varint,7,opt,name=refStand,proto3" json:"refStand,omitempty"` // 关联站台
}
func (x *EsbButton) Reset() {
*x = EsbButton{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EsbButton) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EsbButton) ProtoMessage() {}
func (x *EsbButton) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EsbButton.ProtoReflect.Descriptor instead.
func (*EsbButton) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{34}
}
func (x *EsbButton) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *EsbButton) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *EsbButton) GetFlip() bool {
if x != nil {
return x.Flip
}
return false
}
func (x *EsbButton) GetOldrefStand() string {
if x != nil {
return x.OldrefStand
}
return ""
}
func (x *EsbButton) GetRefStand() uint32 {
if x != nil {
return x.RefStand
}
return 0
}
type GatedBox struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Flip bool `protobuf:"varint,3,opt,name=flip,proto3" json:"flip,omitempty"` // 是否翻转(前端显示)
// int32 index = 4; //索引
OldrefScreenDoor string `protobuf:"bytes,5,opt,name=oldrefScreenDoor,proto3" json:"oldrefScreenDoor,omitempty"` // 关联屏蔽门
RefGatedBoxMapCode string `protobuf:"bytes,6,opt,name=refGatedBoxMapCode,proto3" json:"refGatedBoxMapCode,omitempty"` // 关联门控箱地图Code
RefScreenDoor uint32 `protobuf:"varint,7,opt,name=refScreenDoor,proto3" json:"refScreenDoor,omitempty"` // 关联屏蔽门
}
func (x *GatedBox) Reset() {
*x = GatedBox{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GatedBox) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GatedBox) ProtoMessage() {}
func (x *GatedBox) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[35]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GatedBox.ProtoReflect.Descriptor instead.
func (*GatedBox) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{35}
}
func (x *GatedBox) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *GatedBox) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *GatedBox) GetFlip() bool {
if x != nil {
return x.Flip
}
return false
}
func (x *GatedBox) GetOldrefScreenDoor() string {
if x != nil {
return x.OldrefScreenDoor
}
return ""
}
func (x *GatedBox) GetRefGatedBoxMapCode() string {
if x != nil {
return x.RefGatedBoxMapCode
}
return ""
}
func (x *GatedBox) GetRefScreenDoor() uint32 {
if x != nil {
return x.RefScreenDoor
}
return 0
}
type IbpBox struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
RefIbpMapCode string `protobuf:"bytes,3,opt,name=refIbpMapCode,proto3" json:"refIbpMapCode,omitempty"` // 关联Ibp地图Code
RefStationId uint32 `protobuf:"varint,4,opt,name=refStationId,proto3" json:"refStationId,omitempty"` // 关联车站id
}
func (x *IbpBox) Reset() {
*x = IbpBox{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IbpBox) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IbpBox) ProtoMessage() {}
func (x *IbpBox) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[36]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use IbpBox.ProtoReflect.Descriptor instead.
func (*IbpBox) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{36}
}
func (x *IbpBox) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *IbpBox) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *IbpBox) GetRefIbpMapCode() string {
if x != nil {
return x.RefIbpMapCode
}
return ""
}
func (x *IbpBox) GetRefStationId() uint32 {
if x != nil {
return x.RefStationId
}
return 0
}
type PslBox struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
RefPslMapCode string `protobuf:"bytes,3,opt,name=refPslMapCode,proto3" json:"refPslMapCode,omitempty"` // 关联Psl地图Code
RefPlatformId uint32 `protobuf:"varint,4,opt,name=refPlatformId,proto3" json:"refPlatformId,omitempty"` // 关联站台id
}
func (x *PslBox) Reset() {
*x = PslBox{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PslBox) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PslBox) ProtoMessage() {}
func (x *PslBox) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[37]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PslBox.ProtoReflect.Descriptor instead.
func (*PslBox) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{37}
}
func (x *PslBox) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *PslBox) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *PslBox) GetRefPslMapCode() string {
if x != nil {
return x.RefPslMapCode
}
return ""
}
func (x *PslBox) GetRefPlatformId() uint32 {
if x != nil {
return x.RefPlatformId
}
return 0
}
// * 坡度公里标
type SlopeKiloMarker struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
KilometerSystem []*KilometerSystem `protobuf:"bytes,4,rep,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` //公里标数据
}
func (x *SlopeKiloMarker) Reset() {
*x = SlopeKiloMarker{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SlopeKiloMarker) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SlopeKiloMarker) ProtoMessage() {}
func (x *SlopeKiloMarker) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[38]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SlopeKiloMarker.ProtoReflect.Descriptor instead.
func (*SlopeKiloMarker) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{38}
}
func (x *SlopeKiloMarker) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *SlopeKiloMarker) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *SlopeKiloMarker) GetKilometerSystem() []*KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
// * 曲度公里标
type CurvatureKiloMarker struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
KilometerSystem []*KilometerSystem `protobuf:"bytes,4,rep,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` //公里标数据
}
func (x *CurvatureKiloMarker) Reset() {
*x = CurvatureKiloMarker{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CurvatureKiloMarker) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CurvatureKiloMarker) ProtoMessage() {}
func (x *CurvatureKiloMarker) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[39]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CurvatureKiloMarker.ProtoReflect.Descriptor instead.
func (*CurvatureKiloMarker) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{39}
}
func (x *CurvatureKiloMarker) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *CurvatureKiloMarker) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *CurvatureKiloMarker) GetKilometerSystem() []*KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
// * 车库门
type GarageDoor struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
LinkSection uint32 `protobuf:"varint,3,opt,name=linkSection,proto3" json:"linkSection,omitempty"` //关联区段
CentralizedStations []uint32 `protobuf:"varint,4,rep,packed,name=centralizedStations,proto3" json:"centralizedStations,omitempty"` // 集中站Id列表;
}
func (x *GarageDoor) Reset() {
*x = GarageDoor{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GarageDoor) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GarageDoor) ProtoMessage() {}
func (x *GarageDoor) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[40]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GarageDoor.ProtoReflect.Descriptor instead.
func (*GarageDoor) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{40}
}
func (x *GarageDoor) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *GarageDoor) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *GarageDoor) GetLinkSection() uint32 {
if x != nil {
return x.LinkSection
}
return 0
}
func (x *GarageDoor) GetCentralizedStations() []uint32 {
if x != nil {
return x.CentralizedStations
}
return nil
}
// * 洗车机
type CarWashing struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
LinkSection uint32 `protobuf:"varint,3,opt,name=linkSection,proto3" json:"linkSection,omitempty"` //关联区段
CentralizedStations []uint32 `protobuf:"varint,4,rep,packed,name=centralizedStations,proto3" json:"centralizedStations,omitempty"` // 集中站Id列表;
}
func (x *CarWashing) Reset() {
*x = CarWashing{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CarWashing) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CarWashing) ProtoMessage() {}
func (x *CarWashing) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[41]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CarWashing.ProtoReflect.Descriptor instead.
func (*CarWashing) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{41}
}
func (x *CarWashing) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *CarWashing) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *CarWashing) GetLinkSection() uint32 {
if x != nil {
return x.LinkSection
}
return 0
}
func (x *CarWashing) GetCentralizedStations() []uint32 {
if x != nil {
return x.CentralizedStations
}
return nil
}
// * 防淹门
type FloodGate struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
LinkSection uint32 `protobuf:"varint,3,opt,name=linkSection,proto3" json:"linkSection,omitempty"` //关联区段
CentralizedStations []uint32 `protobuf:"varint,4,rep,packed,name=centralizedStations,proto3" json:"centralizedStations,omitempty"` // 集中站Id列表;
}
func (x *FloodGate) Reset() {
*x = FloodGate{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FloodGate) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FloodGate) ProtoMessage() {}
func (x *FloodGate) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[42]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FloodGate.ProtoReflect.Descriptor instead.
func (*FloodGate) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{42}
}
func (x *FloodGate) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *FloodGate) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *FloodGate) GetLinkSection() uint32 {
if x != nil {
return x.LinkSection
}
return 0
}
func (x *FloodGate) GetCentralizedStations() []uint32 {
if x != nil {
return x.CentralizedStations
}
return nil
}
// * 信标
type Beacon struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Type Beacon_BeaconType `protobuf:"varint,3,opt,name=type,proto3,enum=graphicData.Beacon_BeaconType" json:"type,omitempty"`
Flip bool `protobuf:"varint,4,opt,name=flip,proto3" json:"flip,omitempty"`
}
func (x *Beacon) Reset() {
*x = Beacon{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Beacon) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Beacon) ProtoMessage() {}
func (x *Beacon) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[43]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Beacon.ProtoReflect.Descriptor instead.
func (*Beacon) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{43}
}
func (x *Beacon) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Beacon) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Beacon) GetType() Beacon_BeaconType {
if x != nil {
return x.Type
}
return Beacon_Static
}
func (x *Beacon) GetFlip() bool {
if x != nil {
return x.Flip
}
return false
}
type Slope struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Points []*Point `protobuf:"bytes,2,rep,name=points,proto3" json:"points,omitempty"`
SlopeNumber int32 `protobuf:"zigzag32,3,opt,name=slopeNumber,proto3" json:"slopeNumber,omitempty"` //坡度的值--正负代表上下坡
OldrefDeviceId []string `protobuf:"bytes,4,rep,name=oldrefDeviceId,proto3" json:"oldrefDeviceId,omitempty"` // 坡度关联的(坡度公里标)
RefDeviceId []uint32 `protobuf:"varint,5,rep,packed,name=refDeviceId,proto3" json:"refDeviceId,omitempty"` // 坡度关联的(坡度公里标)
}
func (x *Slope) Reset() {
*x = Slope{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Slope) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Slope) ProtoMessage() {}
func (x *Slope) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[44]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Slope.ProtoReflect.Descriptor instead.
func (*Slope) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{44}
}
func (x *Slope) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Slope) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *Slope) GetSlopeNumber() int32 {
if x != nil {
return x.SlopeNumber
}
return 0
}
func (x *Slope) GetOldrefDeviceId() []string {
if x != nil {
return x.OldrefDeviceId
}
return nil
}
func (x *Slope) GetRefDeviceId() []uint32 {
if x != nil {
return x.RefDeviceId
}
return nil
}
type Curvature struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Points []*Point `protobuf:"bytes,2,rep,name=points,proto3" json:"points,omitempty"`
CurvatureNumber int32 `protobuf:"zigzag32,3,opt,name=curvatureNumber,proto3" json:"curvatureNumber,omitempty"` //曲线的半径--正代表外侧;负代表内侧
OldrefDeviceId []string `protobuf:"bytes,4,rep,name=oldrefDeviceId,proto3" json:"oldrefDeviceId,omitempty"` // 曲线关联的(曲度公里标)
RefDeviceId []uint32 `protobuf:"varint,5,rep,packed,name=refDeviceId,proto3" json:"refDeviceId,omitempty"` // 曲线关联的(曲度公里标)
}
func (x *Curvature) Reset() {
*x = Curvature{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Curvature) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Curvature) ProtoMessage() {}
func (x *Curvature) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[45]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Curvature.ProtoReflect.Descriptor instead.
func (*Curvature) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{45}
}
func (x *Curvature) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Curvature) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *Curvature) GetCurvatureNumber() int32 {
if x != nil {
return x.CurvatureNumber
}
return 0
}
func (x *Curvature) GetOldrefDeviceId() []string {
if x != nil {
return x.OldrefDeviceId
}
return nil
}
func (x *Curvature) GetRefDeviceId() []uint32 {
if x != nil {
return x.RefDeviceId
}
return nil
}
// * 发车计时器
type DepartureTimer struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
OldrefStand string `protobuf:"bytes,3,opt,name=oldrefStand,proto3" json:"oldrefStand,omitempty"` // 关联站台
RunDirection string `protobuf:"bytes,4,opt,name=runDirection,proto3" json:"runDirection,omitempty"` //运行方向
RefStand uint32 `protobuf:"varint,5,opt,name=refStand,proto3" json:"refStand,omitempty"` // 关联站台
}
func (x *DepartureTimer) Reset() {
*x = DepartureTimer{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[46]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DepartureTimer) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DepartureTimer) ProtoMessage() {}
func (x *DepartureTimer) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[46]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DepartureTimer.ProtoReflect.Descriptor instead.
func (*DepartureTimer) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{46}
}
func (x *DepartureTimer) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *DepartureTimer) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *DepartureTimer) GetOldrefStand() string {
if x != nil {
return x.OldrefStand
}
return ""
}
func (x *DepartureTimer) GetRunDirection() string {
if x != nil {
return x.RunDirection
}
return ""
}
func (x *DepartureTimer) GetRefStand() uint32 {
if x != nil {
return x.RefStand
}
return 0
}
type AutoReturnBox struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Flip bool `protobuf:"varint,3,opt,name=flip,proto3" json:"flip,omitempty"` // 是否翻转(前端显示)
Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` //索引
OldrefStand string `protobuf:"bytes,5,opt,name=oldrefStand,proto3" json:"oldrefStand,omitempty"` // 关联站台
RefStand uint32 `protobuf:"varint,6,opt,name=refStand,proto3" json:"refStand,omitempty"` // 关联站台
}
func (x *AutoReturnBox) Reset() {
*x = AutoReturnBox{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AutoReturnBox) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AutoReturnBox) ProtoMessage() {}
func (x *AutoReturnBox) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[47]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AutoReturnBox.ProtoReflect.Descriptor instead.
func (*AutoReturnBox) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{47}
}
func (x *AutoReturnBox) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *AutoReturnBox) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *AutoReturnBox) GetFlip() bool {
if x != nil {
return x.Flip
}
return false
}
func (x *AutoReturnBox) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
func (x *AutoReturnBox) GetOldrefStand() string {
if x != nil {
return x.OldrefStand
}
return ""
}
func (x *AutoReturnBox) GetRefStand() uint32 {
if x != nil {
return x.RefStand
}
return 0
}
type UniqueIdOfStationLayout struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
City string `protobuf:"bytes,1,opt,name=city,proto3" json:"city,omitempty"` //城市
LineId string `protobuf:"bytes,2,opt,name=lineId,proto3" json:"lineId,omitempty"` //线路号
MainCoordinateSystem string `protobuf:"bytes,3,opt,name=mainCoordinateSystem,proto3" json:"mainCoordinateSystem,omitempty"` //地图的公里标主坐标系
}
func (x *UniqueIdOfStationLayout) Reset() {
*x = UniqueIdOfStationLayout{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[48]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UniqueIdOfStationLayout) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UniqueIdOfStationLayout) ProtoMessage() {}
func (x *UniqueIdOfStationLayout) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[48]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UniqueIdOfStationLayout.ProtoReflect.Descriptor instead.
func (*UniqueIdOfStationLayout) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{48}
}
func (x *UniqueIdOfStationLayout) GetCity() string {
if x != nil {
return x.City
}
return ""
}
func (x *UniqueIdOfStationLayout) GetLineId() string {
if x != nil {
return x.LineId
}
return ""
}
func (x *UniqueIdOfStationLayout) GetMainCoordinateSystem() string {
if x != nil {
return x.MainCoordinateSystem
}
return ""
}
// 公里标转换
type KilometerConvert struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
KmA *KilometerSystem `protobuf:"bytes,1,opt,name=kmA,proto3" json:"kmA,omitempty"`
KmB *KilometerSystem `protobuf:"bytes,2,opt,name=kmB,proto3" json:"kmB,omitempty"`
SameTrend bool `protobuf:"varint,3,opt,name=sameTrend,proto3" json:"sameTrend,omitempty"` //相同趋势(同增同减)?
}
func (x *KilometerConvert) Reset() {
*x = KilometerConvert{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[49]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *KilometerConvert) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KilometerConvert) ProtoMessage() {}
func (x *KilometerConvert) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[49]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KilometerConvert.ProtoReflect.Descriptor instead.
func (*KilometerConvert) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{49}
}
func (x *KilometerConvert) GetKmA() *KilometerSystem {
if x != nil {
return x.KmA
}
return nil
}
func (x *KilometerConvert) GetKmB() *KilometerSystem {
if x != nil {
return x.KmB
}
return nil
}
func (x *KilometerConvert) GetSameTrend() bool {
if x != nil {
return x.SameTrend
}
return false
}
// 车站关联的设备列表
type StationRelateDevice struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` //设备编号
Combinationtypes []*DeviceCombinationtype `protobuf:"bytes,2,rep,name=combinationtypes,proto3" json:"combinationtypes,omitempty"` //组合类型
DeviceType RelatedRef_DeviceType `protobuf:"varint,3,opt,name=deviceType,proto3,enum=graphicData.RelatedRef_DeviceType" json:"deviceType,omitempty"` //设备类型
}
func (x *StationRelateDevice) Reset() {
*x = StationRelateDevice{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[50]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StationRelateDevice) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StationRelateDevice) ProtoMessage() {}
func (x *StationRelateDevice) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[50]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StationRelateDevice.ProtoReflect.Descriptor instead.
func (*StationRelateDevice) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{50}
}
func (x *StationRelateDevice) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *StationRelateDevice) GetCombinationtypes() []*DeviceCombinationtype {
if x != nil {
return x.Combinationtypes
}
return nil
}
func (x *StationRelateDevice) GetDeviceType() RelatedRef_DeviceType {
if x != nil {
return x.DeviceType
}
return RelatedRef_Section
}
type DeviceCombinationtype struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
OldrefDevices []string `protobuf:"bytes,2,rep,name=oldrefDevices,proto3" json:"oldrefDevices,omitempty"` //车站关联的设备
RefDevices []uint32 `protobuf:"varint,3,rep,packed,name=refDevices,proto3" json:"refDevices,omitempty"` //车站关联的设备
}
func (x *DeviceCombinationtype) Reset() {
*x = DeviceCombinationtype{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[51]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeviceCombinationtype) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeviceCombinationtype) ProtoMessage() {}
func (x *DeviceCombinationtype) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[51]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeviceCombinationtype.ProtoReflect.Descriptor instead.
func (*DeviceCombinationtype) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{51}
}
func (x *DeviceCombinationtype) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *DeviceCombinationtype) GetOldrefDevices() []string {
if x != nil {
return x.OldrefDevices
}
return nil
}
func (x *DeviceCombinationtype) GetRefDevices() []uint32 {
if x != nil {
return x.RefDevices
}
return nil
}
type SectionCodePoint struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OldCentralizedStation string `protobuf:"bytes,1,opt,name=oldCentralizedStation,proto3" json:"oldCentralizedStation,omitempty"` // 集中站id
OldsectionIds []string `protobuf:"bytes,2,rep,name=oldsectionIds,proto3" json:"oldsectionIds,omitempty"` //物理区段id列表
SectionIds []uint32 `protobuf:"varint,3,rep,packed,name=sectionIds,proto3" json:"sectionIds,omitempty"` //物理区段id列表
CentralizedStation uint32 `protobuf:"varint,4,opt,name=centralizedStation,proto3" json:"centralizedStation,omitempty"` // 集中站id
}
func (x *SectionCodePoint) Reset() {
*x = SectionCodePoint{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[52]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SectionCodePoint) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SectionCodePoint) ProtoMessage() {}
func (x *SectionCodePoint) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[52]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SectionCodePoint.ProtoReflect.Descriptor instead.
func (*SectionCodePoint) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{52}
}
func (x *SectionCodePoint) GetOldCentralizedStation() string {
if x != nil {
return x.OldCentralizedStation
}
return ""
}
func (x *SectionCodePoint) GetOldsectionIds() []string {
if x != nil {
return x.OldsectionIds
}
return nil
}
func (x *SectionCodePoint) GetSectionIds() []uint32 {
if x != nil {
return x.SectionIds
}
return nil
}
func (x *SectionCodePoint) GetCentralizedStation() uint32 {
if x != nil {
return x.CentralizedStation
}
return 0
}
// 列车信息
type Train struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TrainModel Train_TrainModel `protobuf:"varint,1,opt,name=trainModel,proto3,enum=graphicData.Train_TrainModel" json:"trainModel,omitempty"` // 车型
CarriageLength int32 `protobuf:"varint,2,opt,name=carriageLength,proto3" json:"carriageLength,omitempty"` // 列车车厢长度
TotalLength int32 `protobuf:"varint,3,opt,name=totalLength,proto3" json:"totalLength,omitempty"` // 总长度
// int32 minDiameter = 4; // 车轮的最小直径
// int32 maxDiameter = 5; // 车轮的最大直径
TrainSets string `protobuf:"bytes,6,opt,name=trainSets,proto3" json:"trainSets,omitempty"` // 编组
DynamicConfig *common_proto.TrainDynamicConfig `protobuf:"bytes,7,opt,name=dynamicConfig,proto3" json:"dynamicConfig,omitempty"` //动力学参数
// string trainControlMapCode = 8;
TrainControlMapId int32 `protobuf:"varint,9,opt,name=trainControlMapId,proto3" json:"trainControlMapId,omitempty"`
}
func (x *Train) Reset() {
*x = Train{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[53]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Train) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Train) ProtoMessage() {}
func (x *Train) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[53]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Train.ProtoReflect.Descriptor instead.
func (*Train) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{53}
}
func (x *Train) GetTrainModel() Train_TrainModel {
if x != nil {
return x.TrainModel
}
return Train_A
}
func (x *Train) GetCarriageLength() int32 {
if x != nil {
return x.CarriageLength
}
return 0
}
func (x *Train) GetTotalLength() int32 {
if x != nil {
return x.TotalLength
}
return 0
}
func (x *Train) GetTrainSets() string {
if x != nil {
return x.TrainSets
}
return ""
}
func (x *Train) GetDynamicConfig() *common_proto.TrainDynamicConfig {
if x != nil {
return x.DynamicConfig
}
return nil
}
func (x *Train) GetTrainControlMapId() int32 {
if x != nil {
return x.TrainControlMapId
}
return 0
}
// 其他线
type OtherLine struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Oldids []string `protobuf:"bytes,2,rep,name=oldids,proto3" json:"oldids,omitempty"` // 设备id列表
Ids []uint32 `protobuf:"varint,3,rep,packed,name=ids,proto3" json:"ids,omitempty"` // 设备id列表
}
func (x *OtherLine) Reset() {
*x = OtherLine{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[54]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *OtherLine) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*OtherLine) ProtoMessage() {}
func (x *OtherLine) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[54]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use OtherLine.ProtoReflect.Descriptor instead.
func (*OtherLine) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{54}
}
func (x *OtherLine) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *OtherLine) GetOldids() []string {
if x != nil {
return x.Oldids
}
return nil
}
func (x *OtherLine) GetIds() []uint32 {
if x != nil {
return x.Ids
}
return nil
}
// 车库门控制盒
type GarageDoorBox struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
RefPslMapCode string `protobuf:"bytes,3,opt,name=refPslMapCode,proto3" json:"refPslMapCode,omitempty"` // 关联的Psl地图的code名称
RefGarageDoorId uint32 `protobuf:"varint,4,opt,name=refGarageDoorId,proto3" json:"refGarageDoorId,omitempty"` // 关联的车库门的id
}
func (x *GarageDoorBox) Reset() {
*x = GarageDoorBox{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[55]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GarageDoorBox) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GarageDoorBox) ProtoMessage() {}
func (x *GarageDoorBox) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[55]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GarageDoorBox.ProtoReflect.Descriptor instead.
func (*GarageDoorBox) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{55}
}
func (x *GarageDoorBox) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *GarageDoorBox) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *GarageDoorBox) GetRefPslMapCode() string {
if x != nil {
return x.RefPslMapCode
}
return ""
}
func (x *GarageDoorBox) GetRefGarageDoorId() uint32 {
if x != nil {
return x.RefGarageDoorId
}
return 0
}
var File_stationLayoutGraphics_proto protoreflect.FileDescriptor
var file_stationLayoutGraphics_proto_rawDesc = []byte{
0x0a, 0x1b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x47,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x67,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x11, 0x63, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc8, 0x15,
0x0a, 0x12, 0x52, 0x74, 0x73, 0x73, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x53, 0x74, 0x6f,
0x72, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x76, 0x61,
0x73, 0x12, 0x33, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x04,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x09, 0x50, 0x6c, 0x61,
0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08,
0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x69,
0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x52, 0x05, 0x74, 0x72, 0x61,
0x69, 0x6e, 0x12, 0x2d, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x08, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c,
0x73, 0x12, 0x30, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x73, 0x18, 0x09, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f,
0x75, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x73, 0x18,
0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x6c,
0x79, 0x67, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x57, 0x69,
0x6e, 0x64, 0x6f, 0x77, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72,
0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x57,
0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x57, 0x69, 0x6e, 0x64,
0x6f, 0x77, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x69, 0x6e, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75,
0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x69, 0x6e, 0x67, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f,
0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72,
0x52, 0x0a, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0c,
0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0f, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x0c, 0x73, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x54, 0x0a, 0x14, 0x61, 0x78,
0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x61, 0x78, 0x6c, 0x65,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x12, 0x3f, 0x0a, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x70, 0x6b, 0x73, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68,
0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x6b, 0x73, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68,
0x52, 0x0b, 0x73, 0x70, 0x6b, 0x73, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x73, 0x12, 0x36, 0x0a,
0x0a, 0x65, 0x73, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e,
0x45, 0x73, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x73, 0x62, 0x42, 0x75,
0x74, 0x74, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x67, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x78,
0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x52, 0x08,
0x67, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x78, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e,
0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61,
0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70,
0x6f, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x73,
0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6c, 0x6f, 0x70, 0x65, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x70,
0x65, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x4b, 0x69, 0x6c, 0x6f, 0x4d,
0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72,
0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6c, 0x6f, 0x70, 0x65, 0x4b,
0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x0f, 0x73, 0x6c, 0x6f, 0x70, 0x65,
0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x13, 0x63, 0x75,
0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65,
0x72, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b,
0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x13, 0x63, 0x75, 0x72, 0x76, 0x61,
0x74, 0x75, 0x72, 0x65, 0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x36,
0x0a, 0x0a, 0x63, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x1b, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0a, 0x63, 0x75, 0x72, 0x76,
0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x53,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x63,
0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x53,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x63, 0x6b,
0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1d, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x55, 0x6e, 0x69, 0x71, 0x75,
0x65, 0x49, 0x64, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x24, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x6e,
0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c,
0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x0e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x50,
0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x51, 0x0a, 0x14, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74,
0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x20, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76, 0x65,
0x72, 0x74, 0x52, 0x14, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e,
0x76, 0x65, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x63, 0x72, 0x65,
0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x63, 0x72, 0x65,
0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f,
0x6f, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x17, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
0x6c, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x22,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x17, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
0x65, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12,
0x51, 0x0a, 0x14, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x6f,
0x69, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x14, 0x73, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4c, 0x69,
0x73, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65,
0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x73, 0x63, 0x72,
0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2d, 0x0a,
0x07, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x73, 0x18, 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x65, 0x61,
0x63, 0x6f, 0x6e, 0x52, 0x07, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x73, 0x12, 0x67, 0x0a, 0x1a,
0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x27, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x47,
0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x1a, 0x67, 0x65, 0x6e, 0x65, 0x72,
0x61, 0x74, 0x65, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x45, 0x0a, 0x0f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75,
0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x73, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x70,
0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x52, 0x0f, 0x64, 0x65, 0x70,
0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x73, 0x12, 0x42, 0x0a, 0x0e,
0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x6f, 0x78, 0x73, 0x18, 0x28,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x6f, 0x78,
0x52, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x6f, 0x78, 0x73,
0x12, 0x66, 0x0a, 0x1a, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x44, 0x69, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x29,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x44, 0x69, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x52, 0x1a, 0x63, 0x6f,
0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x76, 0x69, 0x64,
0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x6f, 0x74, 0x68, 0x65,
0x72, 0x4c, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x74,
0x68, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x52, 0x0d, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x4c, 0x69,
0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x07, 0x69, 0x62, 0x70, 0x42, 0x6f, 0x78,
0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x62, 0x70, 0x42, 0x6f, 0x78, 0x52, 0x07, 0x69, 0x62,
0x70, 0x42, 0x6f, 0x78, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x70, 0x73, 0x6c, 0x42, 0x6f, 0x78, 0x73,
0x18, 0x2c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x73, 0x6c, 0x42, 0x6f, 0x78, 0x52, 0x07, 0x70, 0x73, 0x6c,
0x42, 0x6f, 0x78, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x61, 0x72, 0x57, 0x61, 0x73, 0x68, 0x69,
0x6e, 0x67, 0x73, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x72, 0x57, 0x61, 0x73, 0x68, 0x69,
0x6e, 0x67, 0x52, 0x0b, 0x63, 0x61, 0x72, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12,
0x39, 0x0a, 0x0b, 0x67, 0x61, 0x72, 0x61, 0x67, 0x65, 0x44, 0x6f, 0x6f, 0x72, 0x73, 0x18, 0x2e,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x47, 0x61, 0x72, 0x61, 0x67, 0x65, 0x44, 0x6f, 0x6f, 0x72, 0x52, 0x0b, 0x67,
0x61, 0x72, 0x61, 0x67, 0x65, 0x44, 0x6f, 0x6f, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x66, 0x6c,
0x6f, 0x6f, 0x64, 0x47, 0x61, 0x74, 0x65, 0x73, 0x18, 0x2f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x6c, 0x6f,
0x6f, 0x64, 0x47, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x61, 0x74,
0x65, 0x73, 0x12, 0x44, 0x0a, 0x0f, 0x67, 0x61, 0x72, 0x61, 0x67, 0x65, 0x44, 0x6f, 0x6f, 0x72,
0x42, 0x6f, 0x78, 0x65, 0x73, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72,
0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x61, 0x72, 0x61, 0x67, 0x65,
0x44, 0x6f, 0x6f, 0x72, 0x42, 0x6f, 0x78, 0x52, 0x0f, 0x67, 0x61, 0x72, 0x61, 0x67, 0x65, 0x44,
0x6f, 0x6f, 0x72, 0x42, 0x6f, 0x78, 0x65, 0x73, 0x22, 0xe1, 0x01, 0x0a, 0x06, 0x43, 0x61, 0x6e,
0x76, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69,
0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
0x74, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x43,
0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x61, 0x63, 0x6b,
0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x11, 0x76,
0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d,
0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x11,
0x76, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72,
0x6d, 0x12, 0x39, 0x0a, 0x0e, 0x67, 0x72, 0x69, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f,
0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x72, 0x69, 0x64, 0x52, 0x0e, 0x67, 0x72,
0x69, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x54, 0x0a, 0x04,
0x47, 0x72, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x47, 0x72, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x47, 0x72, 0x69, 0x64, 0x12, 0x1c,
0x0a, 0x09, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x09, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05,
0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x70, 0x61,
0x63, 0x65, 0x22, 0x23, 0x0a, 0x05, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0c, 0x0a, 0x01, 0x78,
0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02,
0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x22, 0xa9, 0x01, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x6e,
0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2e, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x70, 0x6f, 0x73,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12,
0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
0x02, 0x52, 0x08, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x04, 0x73,
0x6b, 0x65, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x04, 0x73,
0x6b, 0x65, 0x77, 0x22, 0x5a, 0x0a, 0x0e, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e,
0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x74, 0x72, 0x61,
0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73,
0x66, 0x6f, 0x72, 0x6d, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x22,
0xd1, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14,
0x0a, 0x05, 0x6f, 0x6c, 0x64, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f,
0x6c, 0x64, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x54,
0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66,
0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72,
0x6d, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x45, 0x0a, 0x0f,
0x63, 0x68, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18,
0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f,
0x72, 0x6d, 0x52, 0x0f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f,
0x72, 0x6d, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x02, 0x69, 0x64, 0x22, 0xec, 0x01, 0x0a, 0x07, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x12,
0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x63, 0x6f, 0x64, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x54,
0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x2e,
0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x70, 0x6f, 0x6c,
0x79, 0x67, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e,
0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f,
0x69, 0x6e, 0x74, 0x73, 0x22, 0x2c, 0x0a, 0x0b, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x54,
0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6e, 0x65,
0x10, 0x00, 0x22, 0xe7, 0x03, 0x0a, 0x19, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6e, 0x65,
0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18,
0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74,
0x73, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x4c, 0x65, 0x66, 0x74, 0x53,
0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13,
0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x4c, 0x65, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x52, 0x69, 0x67,
0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
0x09, 0x52, 0x14, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x52, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x43,
0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x53, 0x65, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x1b, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4e,
0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x53, 0x65, 0x63, 0x52, 0x0f, 0x6e,
0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x53, 0x65, 0x63, 0x73, 0x12, 0x52,
0x0a, 0x24, 0x69, 0x73, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e,
0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x76, 0x69, 0x64, 0x69,
0x6e, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x24, 0x69, 0x73,
0x4f, 0x74, 0x68, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x69,
0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x4c, 0x65, 0x66, 0x74, 0x53, 0x74, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x72, 0x65,
0x66, 0x4c, 0x65, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2c,
0x0a, 0x11, 0x72, 0x65, 0x66, 0x52, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x65, 0x66, 0x52, 0x69,
0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x88, 0x01, 0x0a,
0x0e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x53, 0x65, 0x63, 0x12,
0x39, 0x0a, 0x0b, 0x6c, 0x65, 0x66, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x0b, 0x6c,
0x65, 0x66, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0c, 0x72, 0x69,
0x67, 0x68, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52,
0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x0c, 0x72, 0x69, 0x67, 0x68, 0x74,
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x03, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6f, 0x6c, 0x64,
0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0f, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x6c,
0x64, 0x72, 0x65, 0x66, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x28, 0x0a,
0x0f, 0x72, 0x65, 0x66, 0x45, 0x73, 0x62, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x64, 0x65,
0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x45, 0x73, 0x62, 0x52, 0x65,
0x6c, 0x61, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x54, 0x79, 0x70,
0x65, 0x4f, 0x66, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x04, 0x74, 0x79, 0x70,
0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x53, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x66,
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x0e, 0x54, 0x79, 0x70,
0x65, 0x4f, 0x66, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0b, 0x0a, 0x07, 0x55,
0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01,
0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x22, 0xa3, 0x01, 0x0a, 0x0a, 0x53,
0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2a,
0x0a, 0x10, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66,
0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65,
0x66, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64,
0x22, 0x88, 0x01, 0x0a, 0x10, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x6f, 0x6e, 0x44, 0x6f, 0x6f, 0x72,
0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x6f,
0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x13, 0x73,
0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69,
0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f,
0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x13, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f,
0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x0f,
0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12,
0x2a, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6d, 0x6f,
0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6e,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x73,
0x74, 0x61, 0x72, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x44, 0x6f, 0x6f, 0x72, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x44,
0x6f, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x44,
0x6f, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x6e, 0x64, 0x53, 0x6d,
0x61, 0x6c, 0x6c, 0x44, 0x6f, 0x6f, 0x72, 0x22, 0x8c, 0x03, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x63,
0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46,
0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65,
0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53,
0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72,
0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x63, 0x72, 0x6f, 0x6e, 0x79, 0x6d, 0x18, 0x0a,
0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d,
0x65, 0x41, 0x63, 0x72, 0x6f, 0x6e, 0x79, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x70, 0x6f,
0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x65, 0x70, 0x6f, 0x74, 0x73,
0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x6c, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x6c, 0x64,
0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26,
0x0a, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x18, 0x0d, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x53, 0x74,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x70, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x57,
0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xc7, 0x03, 0x0a, 0x0c, 0x41, 0x78, 0x6c,
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x46,
0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65,
0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53,
0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72,
0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x41, 0x0a, 0x0f, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f,
0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x66, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65,
0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x0f, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f,
0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x66, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70,
0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69,
0x6e, 0x67, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x6f,
0x6c, 0x64, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x6f, 0x6c, 0x64,
0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a,
0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d,
0x52, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3b, 0x0a, 0x12, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x74,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x0c, 0x41,
0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x13, 0x0a,
0x0f, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79,
0x10, 0x01, 0x22, 0xb8, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41,
0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x6c, 0x64, 0x62, 0x62, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x6c, 0x64, 0x62, 0x62, 0x43, 0x6f,
0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x6f, 0x6c, 0x64, 0x6e, 0x6f, 0x47, 0x65,
0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28,
0x09, 0x52, 0x12, 0x6f, 0x6c, 0x64, 0x6e, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x62, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
0x63, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x62, 0x43, 0x6f, 0x6e, 0x6e,
0x65, 0x63, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0f, 0x6e, 0x6f,
0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xc5, 0x07,
0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2a,
0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69,
0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f,
0x69, 0x6e, 0x74, 0x42, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06,
0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x43,
0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e,
0x74, 0x43, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x61, 0x52, 0x65, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e,
0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x61, 0x52, 0x65,
0x66, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x62, 0x52, 0x65, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52,
0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x62, 0x52, 0x65, 0x66,
0x12, 0x2d, 0x0a, 0x05, 0x70, 0x63, 0x52, 0x65, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65,
0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x63, 0x52, 0x65, 0x66, 0x12,
0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74,
0x65, 0x6d, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72,
0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65,
0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x6c, 0x64, 0x70, 0x61,
0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0f,
0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x6c, 0x64, 0x70, 0x61, 0x54, 0x72, 0x61, 0x63, 0x6b,
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x6c, 0x64,
0x70, 0x62, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x6c, 0x64, 0x70, 0x62, 0x54, 0x72, 0x61,
0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x6f,
0x6c, 0x64, 0x70, 0x63, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x49, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x6c, 0x64, 0x70, 0x63, 0x54,
0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x54, 0x0a,
0x11, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79,
0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x2e, 0x53,
0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65,
0x52, 0x11, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54,
0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x6f, 0x6c, 0x64, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61,
0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x13, 0x20,
0x03, 0x28, 0x09, 0x52, 0x16, 0x6f, 0x6c, 0x64, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69,
0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63,
0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61,
0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a,
0x10, 0x70, 0x61, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x70, 0x61, 0x54, 0x72, 0x61, 0x63, 0x6b,
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x62, 0x54,
0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x16, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x10, 0x70, 0x62, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x63, 0x54, 0x72, 0x61, 0x63, 0x6b,
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x10, 0x70, 0x63, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x22, 0x42, 0x0a, 0x11, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x63, 0x68, 0x69,
0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77,
0x6e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x5a, 0x44, 0x4a, 0x39, 0x5f, 0x53, 0x69, 0x6e, 0x67,
0x6c, 0x65, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x5a, 0x44, 0x4a, 0x39, 0x5f, 0x44, 0x6f, 0x75,
0x62, 0x6c, 0x65, 0x10, 0x02, 0x22, 0xc3, 0x01, 0x0a, 0x0f, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65,
0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x69, 0x6c,
0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6b, 0x69,
0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6f, 0x72, 0x64,
0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x10, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73,
0x74, 0x65, 0x6d, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79,
0x73, 0x74, 0x65, 0x6d, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09,
0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x0a, 0x09, 0x44, 0x69, 0x72,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x00,
0x12, 0x09, 0x0a, 0x05, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x01, 0x22, 0x93, 0x04, 0x0a, 0x06,
0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d,
0x69, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6d, 0x69, 0x72,
0x72, 0x6f, 0x72, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72,
0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d,
0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x72,
0x65, 0x66, 0x44, 0x65, 0x76, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72,
0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65,
0x64, 0x52, 0x65, 0x66, 0x52, 0x06, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x12, 0x36, 0x0a, 0x16,
0x6f, 0x6c, 0x64, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x6f, 0x6c,
0x64, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x02, 0x6d, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x19, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53,
0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x02, 0x6d, 0x74, 0x12,
0x34, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c,
0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x03,
0x28, 0x0d, 0x52, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53,
0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x68, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
0x12, 0x06, 0x0a, 0x02, 0x48, 0x4c, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x4c, 0x55, 0x5f,
0x46, 0x55, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x44, 0x55, 0x5f, 0x59,
0x59, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x4c, 0x55, 0x5f, 0x59, 0x59, 0x10, 0x03, 0x12,
0x10, 0x0a, 0x0c, 0x48, 0x4c, 0x55, 0x5f, 0x46, 0x4c, 0x5f, 0x44, 0x55, 0x5f, 0x59, 0x59, 0x10,
0x04, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x4c, 0x55, 0x5f, 0x44, 0x55, 0x10, 0x05, 0x12, 0x06, 0x0a,
0x02, 0x41, 0x42, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x42, 0x55, 0x5f, 0x44, 0x55, 0x10,
0x07, 0x22, 0x8f, 0x07, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a,
0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12,
0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x2d,
0x0a, 0x05, 0x70, 0x61, 0x52, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61,
0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x61, 0x52, 0x65, 0x66, 0x12, 0x2d, 0x0a,
0x05, 0x70, 0x62, 0x52, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74,
0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x62, 0x52, 0x65, 0x66, 0x12, 0x42, 0x0a, 0x0b,
0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e,
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54,
0x79, 0x70, 0x65, 0x52, 0x0b, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65,
0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x6c, 0x64, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x69, 0x6e, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x6c, 0x64, 0x61,
0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x11,
0x6f, 0x6c, 0x64, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x6c, 0x64, 0x74, 0x72, 0x61, 0x63,
0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73,
0x43, 0x75, 0x72, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x43,
0x75, 0x72, 0x76, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x65, 0x67,
0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x6f, 0x6c,
0x64, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x6f, 0x6c, 0x64, 0x63,
0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x16, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x52, 0x75, 0x6e, 0x6e,
0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67,
0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x6e, 0x6f, 0x72, 0x6d, 0x61,
0x6c, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x54, 0x75, 0x72, 0x6e, 0x42, 0x61, 0x63, 0x6b, 0x5a,
0x6f, 0x6e, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x54, 0x75, 0x72,
0x6e, 0x42, 0x61, 0x63, 0x6b, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x64, 0x69, 0x72,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x67,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
0x24, 0x0a, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x73,
0x18, 0x11, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74,
0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a,
0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x13, 0x63, 0x65, 0x6e, 0x74,
0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22,
0x30, 0x0a, 0x0b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c,
0x0a, 0x08, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f,
0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x10,
0x02, 0x22, 0x30, 0x0a, 0x10, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x74, 0x6f, 0x42, 0x10, 0x00, 0x12,
0x08, 0x0a, 0x04, 0x42, 0x74, 0x6f, 0x41, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4f, 0x54,
0x48, 0x10, 0x02, 0x22, 0xb8, 0x03, 0x0a, 0x0a, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52,
0x65, 0x66, 0x12, 0x42, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x2e,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69,
0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x6c, 0x64, 0x69, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x6c, 0x64, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x0a,
0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x22, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52,
0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x50, 0x6f, 0x72, 0x74, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64,
0x22, 0xd8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
0x0b, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07,
0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x72, 0x61,
0x69, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x78,
0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b,
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x10, 0x04, 0x12, 0x0a, 0x0a,
0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e,
0x44, 0x6f, 0x6f, 0x72, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c,
0x46, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x10, 0x08, 0x12, 0x0c, 0x0a, 0x08,
0x42, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x73, 0x10, 0x09, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x6f,
0x77, 0x65, 0x72, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x47,
0x61, 0x72, 0x61, 0x67, 0x65, 0x44, 0x6f, 0x6f, 0x72, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x43,
0x61, 0x72, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x10, 0x0c, 0x22, 0x21, 0x0a, 0x0a, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x00,
0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, 0x01, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x02, 0x22, 0x51,
0x0a, 0x0d, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x66, 0x12,
0x14, 0x0a, 0x05, 0x6f, 0x6c, 0x64, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x6f, 0x6c, 0x64, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69,
0x64, 0x22, 0x76, 0x0a, 0x09, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2f,
0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12,
0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72,
0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x70, 0x61,
0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9a, 0x04, 0x0a, 0x0b, 0x54, 0x72,
0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x46,
0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65,
0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53,
0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72,
0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x3f, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70,
0x6f, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c,
0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x66, 0x12, 0x36, 0x0a, 0x16, 0x6f, 0x6c, 0x64, 0x63, 0x65,
0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x6f, 0x6c, 0x64, 0x63, 0x65, 0x6e, 0x74,
0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e,
0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e,
0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x74, 0x79, 0x70,
0x65, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64,
0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x13,
0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x54, 0x65, 0x6c, 0x65,
0x67, 0x72, 0x61, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x78, 0x65,
0x64, 0x54, 0x65, 0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x66, 0x69, 0x78,
0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x0c,
0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x66, 0x69, 0x78, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54,
0x65, 0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d, 0x22, 0x3d, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73,
0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x06,
0x0a, 0x02, 0x46, 0x42, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x57, 0x42, 0x10, 0x01, 0x12, 0x06,
0x0a, 0x02, 0x44, 0x42, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x56, 0x42, 0x10, 0x03, 0x12, 0x06,
0x0a, 0x02, 0x49, 0x42, 0x10, 0x04, 0x22, 0xa1, 0x01, 0x0a, 0x09, 0x53, 0x69, 0x6d, 0x70, 0x6c,
0x65, 0x52, 0x65, 0x66, 0x12, 0x41, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79,
0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x66,
0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76,
0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x6c, 0x64, 0x69, 0x64,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x6c, 0x64, 0x69, 0x64, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0x2b, 0x0a,
0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x54,
0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x78, 0x6c, 0x65,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x22, 0xcc, 0x02, 0x0a, 0x0b, 0x53,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49,
0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f,
0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x75,
0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x30, 0x0a, 0x07, 0x61,
0x53, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c,
0x65, 0x52, 0x65, 0x66, 0x52, 0x07, 0x61, 0x53, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x12, 0x30, 0x0a,
0x07, 0x62, 0x53, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x69, 0x6d,
0x70, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x07, 0x62, 0x53, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x12,
0x2b, 0x0a, 0x04, 0x61, 0x52, 0x65, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61,
0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x04, 0x61, 0x52, 0x65, 0x66, 0x12, 0x2b, 0x0a, 0x04,
0x62, 0x52, 0x65, 0x66, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64,
0x52, 0x65, 0x66, 0x52, 0x04, 0x62, 0x52, 0x65, 0x66, 0x22, 0xa0, 0x02, 0x0a, 0x13, 0x41, 0x78,
0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e,
0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73,
0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e,
0x74, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x61, 0x52, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e,
0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x61, 0x52, 0x65,
0x66, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x62, 0x52, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52,
0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x62, 0x52, 0x65, 0x66,
0x12, 0x3a, 0x0a, 0x0a, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x73, 0x18, 0x06,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x66,
0x52, 0x0a, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x73, 0x22, 0x93, 0x02, 0x0a,
0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a,
0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12,
0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x2a,
0x0a, 0x10, 0x6f, 0x6c, 0x64, 0x61, 0x78, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x6c, 0x64, 0x61, 0x78, 0x6c,
0x65, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x6c,
0x64, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0c, 0x6f, 0x6c, 0x64, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x49, 0x64, 0x12, 0x24,
0x0a, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18,
0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x49,
0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74,
0x49, 0x64, 0x22, 0xb5, 0x03, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73,
0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x63, 0x6f, 0x64, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x72,
0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04,
0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64,
0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x32,
0x0a, 0x14, 0x6f, 0x6c, 0x64, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x6f, 0x6c,
0x64, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x43, 0x75, 0x72, 0x76, 0x65, 0x18, 0x08, 0x20,
0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x43, 0x75, 0x72, 0x76, 0x65, 0x12, 0x24, 0x0a, 0x0d,
0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75,
0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x63,
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x11, 0x74,
0x72, 0x61, 0x63, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x22, 0x28, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00,
0x12, 0x08, 0x0a, 0x04, 0x46, 0x4f, 0x52, 0x4b, 0x10, 0x01, 0x22, 0x9c, 0x01, 0x0a, 0x11, 0x54,
0x72, 0x61, 0x63, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
0x6e, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e,
0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a,
0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64,
0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28,
0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xca, 0x02, 0x0a, 0x0c, 0x53, 0x74,
0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49,
0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
0x12, 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66,
0x6c, 0x69, 0x70, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x61, 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x2e, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x6f, 0x61, 0x63, 0x68,
0x4e, 0x75, 0x6d, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72,
0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d,
0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x72,
0x65, 0x66, 0x44, 0x65, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72,
0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65,
0x64, 0x52, 0x65, 0x66, 0x52, 0x06, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x22, 0x28, 0x0a, 0x08,
0x43, 0x6f, 0x61, 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x6f, 0x75, 0x72,
0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x69, 0x78, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x45,
0x69, 0x67, 0x68, 0x74, 0x10, 0x02, 0x22, 0xed, 0x01, 0x0a, 0x0a, 0x53, 0x70, 0x6b, 0x73, 0x53,
0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c,
0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x12, 0x26,
0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66,
0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x6c, 0x64,
0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x66, 0x53,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x72,
0x65, 0x66, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,
0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65,
0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x22, 0xa2, 0x01, 0x0a, 0x09, 0x45, 0x73, 0x62, 0x42, 0x75,
0x74, 0x74, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x69,
0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x12, 0x20, 0x0a,
0x0b, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x12,
0x1a, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x22, 0xe5, 0x01, 0x0a, 0x08,
0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a,
0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x69,
0x70, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x63, 0x72, 0x65, 0x65,
0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x6c, 0x64,
0x72, 0x65, 0x66, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x12, 0x2e, 0x0a,
0x12, 0x72, 0x65, 0x66, 0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x4d, 0x61, 0x70, 0x43,
0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x66, 0x47, 0x61,
0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x4d, 0x61, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a,
0x0d, 0x72, 0x65, 0x66, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x18, 0x07,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44,
0x6f, 0x6f, 0x72, 0x22, 0x97, 0x01, 0x0a, 0x06, 0x49, 0x62, 0x70, 0x42, 0x6f, 0x78, 0x12, 0x2f,
0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12,
0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x49, 0x62, 0x70, 0x4d, 0x61, 0x70,
0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x49,
0x62, 0x70, 0x4d, 0x61, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x66,
0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x0c, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x99, 0x01,
0x0a, 0x06, 0x50, 0x73, 0x6c, 0x42, 0x6f, 0x78, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a,
0x0d, 0x72, 0x65, 0x66, 0x50, 0x73, 0x6c, 0x4d, 0x61, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x50, 0x73, 0x6c, 0x4d, 0x61, 0x70, 0x43,
0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x50,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x22, 0x9e, 0x01, 0x0a, 0x0f, 0x53, 0x6c,
0x6f, 0x70, 0x65, 0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x2f, 0x0a,
0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12,
0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53,
0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72,
0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65,
0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d,
0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0xa2, 0x01, 0x0a, 0x13, 0x43,
0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b,
0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d,
0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b,
0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f,
0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22,
0xa5, 0x01, 0x0a, 0x0a, 0x47, 0x61, 0x72, 0x61, 0x67, 0x65, 0x44, 0x6f, 0x6f, 0x72, 0x12, 0x2f,
0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12,
0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c,
0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03,
0x28, 0x0d, 0x52, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53,
0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x57,
0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c,
0x69, 0x6e, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a,
0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x13, 0x63, 0x65, 0x6e, 0x74,
0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22,
0xa4, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x6f, 0x64, 0x47, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a,
0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12,
0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69,
0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
0x0d, 0x52, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xbc, 0x01, 0x0a, 0x06, 0x42, 0x65, 0x61, 0x63, 0x6f,
0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e,
0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e,
0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c,
0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x22, 0x25,
0x0a, 0x0a, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06,
0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x79, 0x6e, 0x61,
0x6d, 0x69, 0x63, 0x10, 0x01, 0x22, 0xd0, 0x01, 0x0a, 0x05, 0x53, 0x6c, 0x6f, 0x70, 0x65, 0x12,
0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50,
0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b,
0x73, 0x6c, 0x6f, 0x70, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
0x11, 0x52, 0x0b, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26,
0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64,
0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x66,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x09, 0x43, 0x75, 0x72,
0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74,
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69,
0x6e, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65,
0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0f, 0x63, 0x75,
0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a,
0x0e, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18,
0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xb7, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x70, 0x61,
0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49,
0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
0x20, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e,
0x64, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e,
0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e,
0x64, 0x22, 0xbc, 0x01, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e,
0x42, 0x6f, 0x78, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70,
0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05,
0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64,
0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e,
0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53,
0x74, 0x61, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64,
0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64,
0x22, 0x79, 0x0a, 0x17, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x4f, 0x66, 0x53, 0x74,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63,
0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12,
0x16, 0x0a, 0x06, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x6d, 0x61, 0x69, 0x6e, 0x43,
0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6f, 0x72, 0x64,
0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x90, 0x01, 0x0a, 0x10,
0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74,
0x12, 0x2e, 0x0a, 0x03, 0x6b, 0x6d, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x03, 0x6b, 0x6d, 0x41,
0x12, 0x2e, 0x0a, 0x03, 0x6b, 0x6d, 0x42, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x03, 0x6b, 0x6d, 0x42,
0x12, 0x1c, 0x0a, 0x09, 0x73, 0x61, 0x6d, 0x65, 0x54, 0x72, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20,
0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x61, 0x6d, 0x65, 0x54, 0x72, 0x65, 0x6e, 0x64, 0x22, 0xbd,
0x01, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a, 0x10, 0x63, 0x6f,
0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0a, 0x64, 0x65,
0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c,
0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79,
0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x71,
0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f,
0x6c, 0x64, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03,
0x28, 0x09, 0x52, 0x0d, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18,
0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x73, 0x22, 0xbe, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64,
0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x6f, 0x6c, 0x64, 0x43, 0x65, 0x6e,
0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x6c, 0x64, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61,
0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d,
0x6f, 0x6c, 0x64, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x6c, 0x64, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73,
0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65,
0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12,
0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x22, 0xc8, 0x02, 0x0a, 0x05, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x3d, 0x0a, 0x0a,
0x74, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x1d, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54,
0x72, 0x61, 0x69, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52,
0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x63,
0x61, 0x72, 0x72, 0x69, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x61, 0x72, 0x72, 0x69, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e,
0x67, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67,
0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c,
0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x65,
0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53,
0x65, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x0d, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x43, 0x6f,
0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x61, 0x70, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05,
0x52, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x61,
0x70, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x65,
0x6c, 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, 0x01, 0x12,
0x05, 0x0a, 0x01, 0x43, 0x10, 0x02, 0x12, 0x05, 0x0a, 0x01, 0x44, 0x10, 0x03, 0x22, 0x49, 0x0a,
0x09, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16,
0x0a, 0x06, 0x6f, 0x6c, 0x64, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06,
0x6f, 0x6c, 0x64, 0x69, 0x64, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20,
0x03, 0x28, 0x0d, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x0d, 0x47, 0x61, 0x72,
0x61, 0x67, 0x65, 0x44, 0x6f, 0x6f, 0x72, 0x42, 0x6f, 0x78, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49,
0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
0x24, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x50, 0x73, 0x6c, 0x4d, 0x61, 0x70, 0x43, 0x6f, 0x64, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x50, 0x73, 0x6c, 0x4d, 0x61,
0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x66, 0x47, 0x61, 0x72, 0x61,
0x67, 0x65, 0x44, 0x6f, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f,
0x72, 0x65, 0x66, 0x47, 0x61, 0x72, 0x61, 0x67, 0x65, 0x44, 0x6f, 0x6f, 0x72, 0x49, 0x64, 0x2a,
0x1d, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x06, 0x0a, 0x02,
0x55, 0x50, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x42, 0x69,
0x0a, 0x25, 0x63, 0x6c, 0x75, 0x62, 0x2e, 0x6a, 0x6f, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x62,
0x6a, 0x72, 0x74, 0x73, 0x73, 0x2e, 0x61, 0x74, 0x73, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x42, 0x13, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x47,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x2b, 0x6a, 0x6f,
0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x63, 0x6c, 0x75, 0x62, 0x2f, 0x62, 0x6a, 0x2d, 0x72, 0x74,
0x73, 0x74, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x64, 0x74, 0x6f, 0x2f, 0x64,
0x61, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
}
var (
file_stationLayoutGraphics_proto_rawDescOnce sync.Once
file_stationLayoutGraphics_proto_rawDescData = file_stationLayoutGraphics_proto_rawDesc
)
func file_stationLayoutGraphics_proto_rawDescGZIP() []byte {
file_stationLayoutGraphics_proto_rawDescOnce.Do(func() {
file_stationLayoutGraphics_proto_rawDescData = protoimpl.X.CompressGZIP(file_stationLayoutGraphics_proto_rawDescData)
})
return file_stationLayoutGraphics_proto_rawDescData
}
var file_stationLayoutGraphics_proto_enumTypes = make([]protoimpl.EnumInfo, 17)
var file_stationLayoutGraphics_proto_msgTypes = make([]protoimpl.MessageInfo, 56)
var file_stationLayoutGraphics_proto_goTypes = []interface{}{
(Direction)(0), // 0: graphicData.Direction
(Polygon_PolygonType)(0), // 1: graphicData.Polygon.PolygonType
(Platform_TypeOfPlatform)(0), // 2: graphicData.Platform.TypeOfPlatform
(AxleCounting_TypeDetectionPoint)(0), // 3: graphicData.AxleCounting.TypeDetectionPoint
(Turnout_SwitchMachineType)(0), // 4: graphicData.Turnout.SwitchMachineType
(KilometerSystem_Direction)(0), // 5: graphicData.KilometerSystem.Direction
(Signal_Model)(0), // 6: graphicData.Signal.Model
(Section_SectionType)(0), // 7: graphicData.Section.SectionType
(Section_RunningDirection)(0), // 8: graphicData.Section.RunningDirection
(RelatedRef_DeviceType)(0), // 9: graphicData.RelatedRef.DeviceType
(RelatedRef_DevicePort)(0), // 10: graphicData.RelatedRef.DevicePort
(Transponder_TransponderTypeEnum)(0), // 11: graphicData.Transponder.TransponderTypeEnum
(SimpleRef_DeviceType)(0), // 12: graphicData.SimpleRef.DeviceType
(TrackSection_TrackSectionType)(0), // 13: graphicData.TrackSection.TrackSectionType
(StopPosition_CoachNum)(0), // 14: graphicData.StopPosition.CoachNum
(Beacon_BeaconType)(0), // 15: graphicData.Beacon.BeaconType
(Train_TrainModel)(0), // 16: graphicData.Train.TrainModel
(*RtssGraphicStorage)(nil), // 17: graphicData.RtssGraphicStorage
(*Canvas)(nil), // 18: graphicData.Canvas
(*Grid)(nil), // 19: graphicData.Grid
(*Point)(nil), // 20: graphicData.Point
(*Transform)(nil), // 21: graphicData.Transform
(*ChildTransform)(nil), // 22: graphicData.ChildTransform
(*CommonInfo)(nil), // 23: graphicData.CommonInfo
(*Polygon)(nil), // 24: graphicData.Polygon
(*ConcentrationDividingLine)(nil), // 25: graphicData.ConcentrationDividingLine
(*NodeConWithSec)(nil), // 26: graphicData.NodeConWithSec
(*Platform)(nil), // 27: graphicData.Platform
(*ScreenDoor)(nil), // 28: graphicData.ScreenDoor
(*ScreenDoorConfig)(nil), // 29: graphicData.ScreenDoorConfig
(*ScreenDoorGroup)(nil), // 30: graphicData.ScreenDoorGroup
(*Station)(nil), // 31: graphicData.Station
(*TrainWindow)(nil), // 32: graphicData.TrainWindow
(*AxleCounting)(nil), // 33: graphicData.AxleCounting
(*GenerateAxleCountingConfig)(nil), // 34: graphicData.GenerateAxleCountingConfig
(*Turnout)(nil), // 35: graphicData.Turnout
(*KilometerSystem)(nil), // 36: graphicData.KilometerSystem
(*Signal)(nil), // 37: graphicData.Signal
(*Section)(nil), // 38: graphicData.Section
(*RelatedRef)(nil), // 39: graphicData.RelatedRef
(*TurnoutPosRef)(nil), // 40: graphicData.TurnoutPosRef
(*Separator)(nil), // 41: graphicData.Separator
(*Transponder)(nil), // 42: graphicData.Transponder
(*SimpleRef)(nil), // 43: graphicData.SimpleRef
(*SectionLink)(nil), // 44: graphicData.SectionLink
(*AxleCountingSection)(nil), // 45: graphicData.AxleCountingSection
(*LogicSection)(nil), // 46: graphicData.LogicSection
(*TrackSection)(nil), // 47: graphicData.TrackSection
(*TrackLogicSection)(nil), // 48: graphicData.TrackLogicSection
(*StopPosition)(nil), // 49: graphicData.StopPosition
(*SpksSwitch)(nil), // 50: graphicData.SpksSwitch
(*EsbButton)(nil), // 51: graphicData.EsbButton
(*GatedBox)(nil), // 52: graphicData.GatedBox
(*IbpBox)(nil), // 53: graphicData.IbpBox
(*PslBox)(nil), // 54: graphicData.PslBox
(*SlopeKiloMarker)(nil), // 55: graphicData.SlopeKiloMarker
(*CurvatureKiloMarker)(nil), // 56: graphicData.CurvatureKiloMarker
(*GarageDoor)(nil), // 57: graphicData.GarageDoor
(*CarWashing)(nil), // 58: graphicData.CarWashing
(*FloodGate)(nil), // 59: graphicData.FloodGate
(*Beacon)(nil), // 60: graphicData.Beacon
(*Slope)(nil), // 61: graphicData.Slope
(*Curvature)(nil), // 62: graphicData.Curvature
(*DepartureTimer)(nil), // 63: graphicData.DepartureTimer
(*AutoReturnBox)(nil), // 64: graphicData.AutoReturnBox
(*UniqueIdOfStationLayout)(nil), // 65: graphicData.UniqueIdOfStationLayout
(*KilometerConvert)(nil), // 66: graphicData.KilometerConvert
(*StationRelateDevice)(nil), // 67: graphicData.StationRelateDevice
(*DeviceCombinationtype)(nil), // 68: graphicData.DeviceCombinationtype
(*SectionCodePoint)(nil), // 69: graphicData.SectionCodePoint
(*Train)(nil), // 70: graphicData.Train
(*OtherLine)(nil), // 71: graphicData.OtherLine
(*GarageDoorBox)(nil), // 72: graphicData.GarageDoorBox
(*common_proto.TrainDynamicConfig)(nil), // 73: common.TrainDynamicConfig
}
var file_stationLayoutGraphics_proto_depIdxs = []int32{
18, // 0: graphicData.RtssGraphicStorage.canvas:type_name -> graphicData.Canvas
27, // 1: graphicData.RtssGraphicStorage.Platforms:type_name -> graphicData.Platform
31, // 2: graphicData.RtssGraphicStorage.stations:type_name -> graphicData.Station
70, // 3: graphicData.RtssGraphicStorage.train:type_name -> graphicData.Train
37, // 4: graphicData.RtssGraphicStorage.signals:type_name -> graphicData.Signal
35, // 5: graphicData.RtssGraphicStorage.turnouts:type_name -> graphicData.Turnout
38, // 6: graphicData.RtssGraphicStorage.section:type_name -> graphicData.Section
24, // 7: graphicData.RtssGraphicStorage.polygons:type_name -> graphicData.Polygon
32, // 8: graphicData.RtssGraphicStorage.trainWindows:type_name -> graphicData.TrainWindow
33, // 9: graphicData.RtssGraphicStorage.axleCountings:type_name -> graphicData.AxleCounting
41, // 10: graphicData.RtssGraphicStorage.separators:type_name -> graphicData.Separator
44, // 11: graphicData.RtssGraphicStorage.sectionLinks:type_name -> graphicData.SectionLink
45, // 12: graphicData.RtssGraphicStorage.axleCountingSections:type_name -> graphicData.AxleCountingSection
46, // 13: graphicData.RtssGraphicStorage.logicSections:type_name -> graphicData.LogicSection
49, // 14: graphicData.RtssGraphicStorage.stopPositions:type_name -> graphicData.StopPosition
50, // 15: graphicData.RtssGraphicStorage.spksSwitchs:type_name -> graphicData.SpksSwitch
51, // 16: graphicData.RtssGraphicStorage.esbButtons:type_name -> graphicData.EsbButton
52, // 17: graphicData.RtssGraphicStorage.gateBoxs:type_name -> graphicData.GatedBox
42, // 18: graphicData.RtssGraphicStorage.transponders:type_name -> graphicData.Transponder
61, // 19: graphicData.RtssGraphicStorage.slopes:type_name -> graphicData.Slope
55, // 20: graphicData.RtssGraphicStorage.slopeKiloMarker:type_name -> graphicData.SlopeKiloMarker
56, // 21: graphicData.RtssGraphicStorage.curvatureKiloMarker:type_name -> graphicData.CurvatureKiloMarker
62, // 22: graphicData.RtssGraphicStorage.curvatures:type_name -> graphicData.Curvature
47, // 23: graphicData.RtssGraphicStorage.trackSections:type_name -> graphicData.TrackSection
48, // 24: graphicData.RtssGraphicStorage.trackLogicSections:type_name -> graphicData.TrackLogicSection
65, // 25: graphicData.RtssGraphicStorage.UniqueIdPrefix:type_name -> graphicData.UniqueIdOfStationLayout
66, // 26: graphicData.RtssGraphicStorage.kilometerConvertList:type_name -> graphicData.KilometerConvert
28, // 27: graphicData.RtssGraphicStorage.screenDoors:type_name -> graphicData.ScreenDoor
67, // 28: graphicData.RtssGraphicStorage.stationRelateDeviceList:type_name -> graphicData.StationRelateDevice
69, // 29: graphicData.RtssGraphicStorage.sectionCodePointList:type_name -> graphicData.SectionCodePoint
29, // 30: graphicData.RtssGraphicStorage.screenDoorConfig:type_name -> graphicData.ScreenDoorConfig
60, // 31: graphicData.RtssGraphicStorage.beacons:type_name -> graphicData.Beacon
34, // 32: graphicData.RtssGraphicStorage.generateAxleCountingConfig:type_name -> graphicData.GenerateAxleCountingConfig
63, // 33: graphicData.RtssGraphicStorage.departureTimers:type_name -> graphicData.DepartureTimer
64, // 34: graphicData.RtssGraphicStorage.autoReturnBoxs:type_name -> graphicData.AutoReturnBox
25, // 35: graphicData.RtssGraphicStorage.concentrationDividingLines:type_name -> graphicData.ConcentrationDividingLine
71, // 36: graphicData.RtssGraphicStorage.otherLineList:type_name -> graphicData.OtherLine
53, // 37: graphicData.RtssGraphicStorage.ibpBoxs:type_name -> graphicData.IbpBox
54, // 38: graphicData.RtssGraphicStorage.pslBoxs:type_name -> graphicData.PslBox
58, // 39: graphicData.RtssGraphicStorage.carWashings:type_name -> graphicData.CarWashing
57, // 40: graphicData.RtssGraphicStorage.garageDoors:type_name -> graphicData.GarageDoor
59, // 41: graphicData.RtssGraphicStorage.floodGates:type_name -> graphicData.FloodGate
72, // 42: graphicData.RtssGraphicStorage.garageDoorBoxes:type_name -> graphicData.GarageDoorBox
21, // 43: graphicData.Canvas.viewportTransform:type_name -> graphicData.Transform
19, // 44: graphicData.Canvas.gridBackground:type_name -> graphicData.Grid
20, // 45: graphicData.Transform.position:type_name -> graphicData.Point
20, // 46: graphicData.Transform.scale:type_name -> graphicData.Point
20, // 47: graphicData.Transform.skew:type_name -> graphicData.Point
21, // 48: graphicData.ChildTransform.transform:type_name -> graphicData.Transform
21, // 49: graphicData.CommonInfo.transform:type_name -> graphicData.Transform
22, // 50: graphicData.CommonInfo.childTransforms:type_name -> graphicData.ChildTransform
23, // 51: graphicData.Polygon.common:type_name -> graphicData.CommonInfo
1, // 52: graphicData.Polygon.polygonType:type_name -> graphicData.Polygon.PolygonType
20, // 53: graphicData.Polygon.points:type_name -> graphicData.Point
23, // 54: graphicData.ConcentrationDividingLine.common:type_name -> graphicData.CommonInfo
20, // 55: graphicData.ConcentrationDividingLine.points:type_name -> graphicData.Point
26, // 56: graphicData.ConcentrationDividingLine.nodeConWithSecs:type_name -> graphicData.NodeConWithSec
39, // 57: graphicData.NodeConWithSec.leftSection:type_name -> graphicData.RelatedRef
39, // 58: graphicData.NodeConWithSec.rightSection:type_name -> graphicData.RelatedRef
23, // 59: graphicData.Platform.common:type_name -> graphicData.CommonInfo
2, // 60: graphicData.Platform.type:type_name -> graphicData.Platform.TypeOfPlatform
23, // 61: graphicData.ScreenDoor.common:type_name -> graphicData.CommonInfo
30, // 62: graphicData.ScreenDoorConfig.screenDoorGroupList:type_name -> graphicData.ScreenDoorGroup
23, // 63: graphicData.Station.common:type_name -> graphicData.CommonInfo
36, // 64: graphicData.Station.kilometerSystem:type_name -> graphicData.KilometerSystem
23, // 65: graphicData.TrainWindow.common:type_name -> graphicData.CommonInfo
23, // 66: graphicData.AxleCounting.common:type_name -> graphicData.CommonInfo
36, // 67: graphicData.AxleCounting.kilometerSystem:type_name -> graphicData.KilometerSystem
39, // 68: graphicData.AxleCounting.axleCountingRef:type_name -> graphicData.RelatedRef
3, // 69: graphicData.AxleCounting.type:type_name -> graphicData.AxleCounting.TypeDetectionPoint
23, // 70: graphicData.Turnout.common:type_name -> graphicData.CommonInfo
20, // 71: graphicData.Turnout.pointA:type_name -> graphicData.Point
20, // 72: graphicData.Turnout.pointB:type_name -> graphicData.Point
20, // 73: graphicData.Turnout.pointC:type_name -> graphicData.Point
39, // 74: graphicData.Turnout.paRef:type_name -> graphicData.RelatedRef
39, // 75: graphicData.Turnout.pbRef:type_name -> graphicData.RelatedRef
39, // 76: graphicData.Turnout.pcRef:type_name -> graphicData.RelatedRef
36, // 77: graphicData.Turnout.kilometerSystem:type_name -> graphicData.KilometerSystem
4, // 78: graphicData.Turnout.switchMachineType:type_name -> graphicData.Turnout.SwitchMachineType
5, // 79: graphicData.KilometerSystem.direction:type_name -> graphicData.KilometerSystem.Direction
23, // 80: graphicData.Signal.common:type_name -> graphicData.CommonInfo
36, // 81: graphicData.Signal.kilometerSystem:type_name -> graphicData.KilometerSystem
39, // 82: graphicData.Signal.refDev:type_name -> graphicData.RelatedRef
6, // 83: graphicData.Signal.mt:type_name -> graphicData.Signal.Model
0, // 84: graphicData.Signal.direction:type_name -> graphicData.Direction
23, // 85: graphicData.Section.common:type_name -> graphicData.CommonInfo
20, // 86: graphicData.Section.points:type_name -> graphicData.Point
39, // 87: graphicData.Section.paRef:type_name -> graphicData.RelatedRef
39, // 88: graphicData.Section.pbRef:type_name -> graphicData.RelatedRef
7, // 89: graphicData.Section.sectionType:type_name -> graphicData.Section.SectionType
8, // 90: graphicData.Section.normalRunningDirection:type_name -> graphicData.Section.RunningDirection
0, // 91: graphicData.Section.direction:type_name -> graphicData.Direction
9, // 92: graphicData.RelatedRef.deviceType:type_name -> graphicData.RelatedRef.DeviceType
10, // 93: graphicData.RelatedRef.devicePort:type_name -> graphicData.RelatedRef.DevicePort
23, // 94: graphicData.Separator.common:type_name -> graphicData.CommonInfo
23, // 95: graphicData.Transponder.common:type_name -> graphicData.CommonInfo
36, // 96: graphicData.Transponder.kilometerSystem:type_name -> graphicData.KilometerSystem
39, // 97: graphicData.Transponder.TransponderRef:type_name -> graphicData.RelatedRef
11, // 98: graphicData.Transponder.type:type_name -> graphicData.Transponder.TransponderTypeEnum
12, // 99: graphicData.SimpleRef.deviceType:type_name -> graphicData.SimpleRef.DeviceType
23, // 100: graphicData.SectionLink.common:type_name -> graphicData.CommonInfo
20, // 101: graphicData.SectionLink.points:type_name -> graphicData.Point
43, // 102: graphicData.SectionLink.aSimRef:type_name -> graphicData.SimpleRef
43, // 103: graphicData.SectionLink.bSimRef:type_name -> graphicData.SimpleRef
39, // 104: graphicData.SectionLink.aRef:type_name -> graphicData.RelatedRef
39, // 105: graphicData.SectionLink.bRef:type_name -> graphicData.RelatedRef
23, // 106: graphicData.AxleCountingSection.common:type_name -> graphicData.CommonInfo
20, // 107: graphicData.AxleCountingSection.points:type_name -> graphicData.Point
39, // 108: graphicData.AxleCountingSection.paRef:type_name -> graphicData.RelatedRef
39, // 109: graphicData.AxleCountingSection.pbRef:type_name -> graphicData.RelatedRef
40, // 110: graphicData.AxleCountingSection.turnoutPos:type_name -> graphicData.TurnoutPosRef
23, // 111: graphicData.LogicSection.common:type_name -> graphicData.CommonInfo
20, // 112: graphicData.LogicSection.points:type_name -> graphicData.Point
23, // 113: graphicData.TrackSection.common:type_name -> graphicData.CommonInfo
20, // 114: graphicData.TrackSection.points:type_name -> graphicData.Point
13, // 115: graphicData.TrackSection.type:type_name -> graphicData.TrackSection.TrackSectionType
23, // 116: graphicData.TrackLogicSection.common:type_name -> graphicData.CommonInfo
20, // 117: graphicData.TrackLogicSection.points:type_name -> graphicData.Point
23, // 118: graphicData.StopPosition.common:type_name -> graphicData.CommonInfo
14, // 119: graphicData.StopPosition.coachNum:type_name -> graphicData.StopPosition.CoachNum
36, // 120: graphicData.StopPosition.kilometerSystem:type_name -> graphicData.KilometerSystem
39, // 121: graphicData.StopPosition.refDev:type_name -> graphicData.RelatedRef
23, // 122: graphicData.SpksSwitch.common:type_name -> graphicData.CommonInfo
23, // 123: graphicData.EsbButton.common:type_name -> graphicData.CommonInfo
23, // 124: graphicData.GatedBox.common:type_name -> graphicData.CommonInfo
23, // 125: graphicData.IbpBox.common:type_name -> graphicData.CommonInfo
23, // 126: graphicData.PslBox.common:type_name -> graphicData.CommonInfo
23, // 127: graphicData.SlopeKiloMarker.common:type_name -> graphicData.CommonInfo
36, // 128: graphicData.SlopeKiloMarker.kilometerSystem:type_name -> graphicData.KilometerSystem
23, // 129: graphicData.CurvatureKiloMarker.common:type_name -> graphicData.CommonInfo
36, // 130: graphicData.CurvatureKiloMarker.kilometerSystem:type_name -> graphicData.KilometerSystem
23, // 131: graphicData.GarageDoor.common:type_name -> graphicData.CommonInfo
23, // 132: graphicData.CarWashing.common:type_name -> graphicData.CommonInfo
23, // 133: graphicData.FloodGate.common:type_name -> graphicData.CommonInfo
23, // 134: graphicData.Beacon.common:type_name -> graphicData.CommonInfo
15, // 135: graphicData.Beacon.type:type_name -> graphicData.Beacon.BeaconType
23, // 136: graphicData.Slope.common:type_name -> graphicData.CommonInfo
20, // 137: graphicData.Slope.points:type_name -> graphicData.Point
23, // 138: graphicData.Curvature.common:type_name -> graphicData.CommonInfo
20, // 139: graphicData.Curvature.points:type_name -> graphicData.Point
23, // 140: graphicData.DepartureTimer.common:type_name -> graphicData.CommonInfo
23, // 141: graphicData.AutoReturnBox.common:type_name -> graphicData.CommonInfo
36, // 142: graphicData.KilometerConvert.kmA:type_name -> graphicData.KilometerSystem
36, // 143: graphicData.KilometerConvert.kmB:type_name -> graphicData.KilometerSystem
68, // 144: graphicData.StationRelateDevice.combinationtypes:type_name -> graphicData.DeviceCombinationtype
9, // 145: graphicData.StationRelateDevice.deviceType:type_name -> graphicData.RelatedRef.DeviceType
16, // 146: graphicData.Train.trainModel:type_name -> graphicData.Train.TrainModel
73, // 147: graphicData.Train.dynamicConfig:type_name -> common.TrainDynamicConfig
23, // 148: graphicData.GarageDoorBox.common:type_name -> graphicData.CommonInfo
149, // [149:149] is the sub-list for method output_type
149, // [149:149] is the sub-list for method input_type
149, // [149:149] is the sub-list for extension type_name
149, // [149:149] is the sub-list for extension extendee
0, // [0:149] is the sub-list for field type_name
}
func init() { file_stationLayoutGraphics_proto_init() }
func file_stationLayoutGraphics_proto_init() {
if File_stationLayoutGraphics_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_stationLayoutGraphics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RtssGraphicStorage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Canvas); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Grid); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Point); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Transform); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ChildTransform); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CommonInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Polygon); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ConcentrationDividingLine); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*NodeConWithSec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Platform); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ScreenDoor); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ScreenDoorConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ScreenDoorGroup); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Station); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrainWindow); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AxleCounting); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GenerateAxleCountingConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Turnout); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*KilometerSystem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Signal); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Section); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RelatedRef); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TurnoutPosRef); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Separator); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Transponder); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SimpleRef); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SectionLink); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AxleCountingSection); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LogicSection); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrackSection); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrackLogicSection); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StopPosition); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SpksSwitch); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EsbButton); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GatedBox); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IbpBox); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PslBox); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SlopeKiloMarker); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CurvatureKiloMarker); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GarageDoor); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CarWashing); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FloodGate); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Beacon); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Slope); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Curvature); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DepartureTimer); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AutoReturnBox); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UniqueIdOfStationLayout); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*KilometerConvert); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StationRelateDevice); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeviceCombinationtype); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SectionCodePoint); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Train); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*OtherLine); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GarageDoorBox); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_stationLayoutGraphics_proto_rawDesc,
NumEnums: 17,
NumMessages: 56,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_stationLayoutGraphics_proto_goTypes,
DependencyIndexes: file_stationLayoutGraphics_proto_depIdxs,
EnumInfos: file_stationLayoutGraphics_proto_enumTypes,
MessageInfos: file_stationLayoutGraphics_proto_msgTypes,
}.Build()
File_stationLayoutGraphics_proto = out.File
file_stationLayoutGraphics_proto_rawDesc = nil
file_stationLayoutGraphics_proto_goTypes = nil
file_stationLayoutGraphics_proto_depIdxs = nil
}