cheliequan
2023-02-10 54747b4c57f1c44b5c973ad585768c83049429de
protomsg.pb.go
@@ -24,54 +24,63 @@
type TableChanged int32
const (
   TableChanged_T_Camera         TableChanged = 0
   TableChanged_T_CameraTask     TableChanged = 1
   TableChanged_T_CameraTaskArgs TableChanged = 2
   TableChanged_T_Task           TableChanged = 3
   TableChanged_T_TaskSdk        TableChanged = 4
   TableChanged_T_TaskSdkRule    TableChanged = 5
   TableChanged_T_Sdk            TableChanged = 6
   TableChanged_T_CameraPolygon  TableChanged = 7
   TableChanged_T_TimeRule       TableChanged = 8
   TableChanged_T_Server         TableChanged = 9
   TableChanged_T_PollConfig     TableChanged = 10
   TableChanged_T_File           TableChanged = 11
   TableChanged_T_FileSetting    TableChanged = 12
   TableChanged_T_SdkChanSet     TableChanged = 13
   TableChanged_T_Camera                TableChanged = 0
   TableChanged_T_CameraRule            TableChanged = 1
   TableChanged_T_Sdk                   TableChanged = 2
   TableChanged_T_CameraPolygon         TableChanged = 3
   TableChanged_T_TimeRule              TableChanged = 4
   TableChanged_T_Server                TableChanged = 5
   TableChanged_T_PollConfig            TableChanged = 6
   TableChanged_T_File                  TableChanged = 7
   TableChanged_T_FileSetting           TableChanged = 8
   TableChanged_T_SdkChanSet            TableChanged = 9
   TableChanged_T_FileStack             TableChanged = 10
   TableChanged_T_ResourceConfig        TableChanged = 11
   TableChanged_T_CalculationPower      TableChanged = 12
   TableChanged_T_EventPush             TableChanged = 13
   TableChanged_T_Cluster               TableChanged = 14
   TableChanged_T_CameraPolygonRelation TableChanged = 15
   TableChanged_T_Voice                 TableChanged = 16
)
var TableChanged_name = map[int32]string{
   0:  "T_Camera",
   1:  "T_CameraTask",
   2:  "T_CameraTaskArgs",
   3:  "T_Task",
   4:  "T_TaskSdk",
   5:  "T_TaskSdkRule",
   6:  "T_Sdk",
   7:  "T_CameraPolygon",
   8:  "T_TimeRule",
   9:  "T_Server",
   10: "T_PollConfig",
   11: "T_File",
   12: "T_FileSetting",
   13: "T_SdkChanSet",
   1:  "T_CameraRule",
   2:  "T_Sdk",
   3:  "T_CameraPolygon",
   4:  "T_TimeRule",
   5:  "T_Server",
   6:  "T_PollConfig",
   7:  "T_File",
   8:  "T_FileSetting",
   9:  "T_SdkChanSet",
   10: "T_FileStack",
   11: "T_ResourceConfig",
   12: "T_CalculationPower",
   13: "T_EventPush",
   14: "T_Cluster",
   15: "T_CameraPolygonRelation",
   16: "T_Voice",
}
var TableChanged_value = map[string]int32{
   "T_Camera":         0,
   "T_CameraTask":     1,
   "T_CameraTaskArgs": 2,
   "T_Task":           3,
   "T_TaskSdk":        4,
   "T_TaskSdkRule":    5,
   "T_Sdk":            6,
   "T_CameraPolygon":  7,
   "T_TimeRule":       8,
   "T_Server":         9,
   "T_PollConfig":     10,
   "T_File":           11,
   "T_FileSetting":    12,
   "T_SdkChanSet":     13,
   "T_Camera":                0,
   "T_CameraRule":            1,
   "T_Sdk":                   2,
   "T_CameraPolygon":         3,
   "T_TimeRule":              4,
   "T_Server":                5,
   "T_PollConfig":            6,
   "T_File":                  7,
   "T_FileSetting":           8,
   "T_SdkChanSet":            9,
   "T_FileStack":             10,
   "T_ResourceConfig":        11,
   "T_CalculationPower":      12,
   "T_EventPush":             13,
   "T_Cluster":               14,
   "T_CameraPolygonRelation": 15,
   "T_Voice":                 16,
}
func (x TableChanged) String() string {
@@ -221,29 +230,37 @@
//Camera结构体
type Camera struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   Alias                string   `protobuf:"bytes,3,opt,name=alias,proto3" json:"alias,omitempty"`
   SnapshotUrl          string   `protobuf:"bytes,4,opt,name=snapshot_url,json=snapshotUrl,proto3" json:"snapshot_url,omitempty"`
   Type                 int32    `protobuf:"varint,5,opt,name=type,proto3" json:"type,omitempty"`
   Addr                 string   `protobuf:"bytes,6,opt,name=addr,proto3" json:"addr,omitempty"`
   Longitude            float32  `protobuf:"fixed32,7,opt,name=longitude,proto3" json:"longitude,omitempty"`
   Latitude             float32  `protobuf:"fixed32,8,opt,name=latitude,proto3" json:"latitude,omitempty"`
   Floor                int32    `protobuf:"varint,9,opt,name=floor,proto3" json:"floor,omitempty"`
   Rtsp                 string   `protobuf:"bytes,10,opt,name=rtsp,proto3" json:"rtsp,omitempty"`
   Ip                   string   `protobuf:"bytes,11,opt,name=ip,proto3" json:"ip,omitempty"`
   Port                 int32    `protobuf:"varint,12,opt,name=port,proto3" json:"port,omitempty"`
   Username             string   `protobuf:"bytes,13,opt,name=username,proto3" json:"username,omitempty"`
   Password             string   `protobuf:"bytes,14,opt,name=password,proto3" json:"password,omitempty"`
   Brand                string   `protobuf:"bytes,15,opt,name=brand,proto3" json:"brand,omitempty"`
   Reserved             string   `protobuf:"bytes,16,opt,name=reserved,proto3" json:"reserved,omitempty"`
   IsRunning            bool     `protobuf:"varint,17,opt,name=is_running,json=isRunning,proto3" json:"is_running,omitempty"`
   RunEnable            bool     `protobuf:"varint,18,opt,name=run_enable,json=runEnable,proto3" json:"run_enable,omitempty"`
   RunType              int32    `protobuf:"varint,19,opt,name=run_type,json=runType,proto3" json:"run_type,omitempty"`
   RunServerId          string   `protobuf:"bytes,20,opt,name=run_server_id,json=runServerId,proto3" json:"run_server_id,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   Id                   string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string    `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   Alias                string    `protobuf:"bytes,3,opt,name=alias,proto3" json:"alias,omitempty"`
   SnapshotUrl          string    `protobuf:"bytes,4,opt,name=snapshot_url,json=snapshotUrl,proto3" json:"snapshot_url,omitempty"`
   Type                 int32     `protobuf:"varint,5,opt,name=type,proto3" json:"type,omitempty"`
   Addr                 string    `protobuf:"bytes,6,opt,name=addr,proto3" json:"addr,omitempty"`
   Longitude            float32   `protobuf:"fixed32,7,opt,name=longitude,proto3" json:"longitude,omitempty"`
   Latitude             float32   `protobuf:"fixed32,8,opt,name=latitude,proto3" json:"latitude,omitempty"`
   Floor                int32     `protobuf:"varint,9,opt,name=floor,proto3" json:"floor,omitempty"`
   Rtsp                 string    `protobuf:"bytes,10,opt,name=rtsp,proto3" json:"rtsp,omitempty"`
   Ip                   string    `protobuf:"bytes,11,opt,name=ip,proto3" json:"ip,omitempty"`
   Port                 int32     `protobuf:"varint,12,opt,name=port,proto3" json:"port,omitempty"`
   Username             string    `protobuf:"bytes,13,opt,name=username,proto3" json:"username,omitempty"`
   Password             string    `protobuf:"bytes,14,opt,name=password,proto3" json:"password,omitempty"`
   Brand                string    `protobuf:"bytes,15,opt,name=brand,proto3" json:"brand,omitempty"`
   Reserved             string    `protobuf:"bytes,16,opt,name=reserved,proto3" json:"reserved,omitempty"`
   IsRunning            bool      `protobuf:"varint,17,opt,name=is_running,json=isRunning,proto3" json:"is_running,omitempty"`
   RunEnable            bool      `protobuf:"varint,18,opt,name=run_enable,json=runEnable,proto3" json:"run_enable,omitempty"`
   RunType              int32     `protobuf:"varint,19,opt,name=run_type,json=runType,proto3" json:"run_type,omitempty"`
   RunServerId          string    `protobuf:"bytes,20,opt,name=run_server_id,json=runServerId,proto3" json:"run_server_id,omitempty"`
   ResolutionWidth      int32     `protobuf:"varint,21,opt,name=resolution_width,json=resolutionWidth,proto3" json:"resolution_width,omitempty"`
   ResolutionHeight     int32     `protobuf:"varint,22,opt,name=resolution_height,json=resolutionHeight,proto3" json:"resolution_height,omitempty"`
   Fps                  int32     `protobuf:"varint,23,opt,name=fps,proto3" json:"fps,omitempty"`
   Sensors              []*Sensor `protobuf:"bytes,24,rep,name=sensors,proto3" json:"sensors,omitempty"`
   VoiceEnable          bool      `protobuf:"varint,25,opt,name=voiceEnable,proto3" json:"voiceEnable,omitempty"`
   VoiceId              string    `protobuf:"bytes,26,opt,name=voiceId,proto3" json:"voiceId,omitempty"`
   CoordTransform       string    `protobuf:"bytes,27,opt,name=coordTransform,proto3" json:"coordTransform,omitempty"`
   Status               int32     `protobuf:"varint,28,opt,name=status,proto3" json:"status,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
}
func (m *Camera) Reset()         { *m = Camera{} }
@@ -411,6 +428,157 @@
   return ""
}
func (m *Camera) GetResolutionWidth() int32 {
   if m != nil {
      return m.ResolutionWidth
   }
   return 0
}
func (m *Camera) GetResolutionHeight() int32 {
   if m != nil {
      return m.ResolutionHeight
   }
   return 0
}
func (m *Camera) GetFps() int32 {
   if m != nil {
      return m.Fps
   }
   return 0
}
func (m *Camera) GetSensors() []*Sensor {
   if m != nil {
      return m.Sensors
   }
   return nil
}
func (m *Camera) GetVoiceEnable() bool {
   if m != nil {
      return m.VoiceEnable
   }
   return false
}
func (m *Camera) GetVoiceId() string {
   if m != nil {
      return m.VoiceId
   }
   return ""
}
func (m *Camera) GetCoordTransform() string {
   if m != nil {
      return m.CoordTransform
   }
   return ""
}
func (m *Camera) GetStatus() int32 {
   if m != nil {
      return m.Status
   }
   return 0
}
type Sensor struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Type                 string   `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
   Ip                   string   `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"`
   Port                 int32    `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"`
   Username             string   `protobuf:"bytes,5,opt,name=username,proto3" json:"username,omitempty"`
   Password             string   `protobuf:"bytes,6,opt,name=password,proto3" json:"password,omitempty"`
   Threshold            int32    `protobuf:"varint,7,opt,name=threshold,proto3" json:"threshold,omitempty"`
   Enable               bool     `protobuf:"varint,8,opt,name=enable,proto3" json:"enable,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Sensor) Reset()         { *m = Sensor{} }
func (m *Sensor) String() string { return proto.CompactTextString(m) }
func (*Sensor) ProtoMessage()    {}
func (*Sensor) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{2}
}
func (m *Sensor) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_Sensor.Unmarshal(m, b)
}
func (m *Sensor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_Sensor.Marshal(b, m, deterministic)
}
func (m *Sensor) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Sensor.Merge(m, src)
}
func (m *Sensor) XXX_Size() int {
   return xxx_messageInfo_Sensor.Size(m)
}
func (m *Sensor) XXX_DiscardUnknown() {
   xxx_messageInfo_Sensor.DiscardUnknown(m)
}
var xxx_messageInfo_Sensor proto.InternalMessageInfo
func (m *Sensor) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *Sensor) GetType() string {
   if m != nil {
      return m.Type
   }
   return ""
}
func (m *Sensor) GetIp() string {
   if m != nil {
      return m.Ip
   }
   return ""
}
func (m *Sensor) GetPort() int32 {
   if m != nil {
      return m.Port
   }
   return 0
}
func (m *Sensor) GetUsername() string {
   if m != nil {
      return m.Username
   }
   return ""
}
func (m *Sensor) GetPassword() string {
   if m != nil {
      return m.Password
   }
   return ""
}
func (m *Sensor) GetThreshold() int32 {
   if m != nil {
      return m.Threshold
   }
   return 0
}
func (m *Sensor) GetEnable() bool {
   if m != nil {
      return m.Enable
   }
   return false
}
//摄像机联动
type CameraLink struct {
   CameraIds            string   `protobuf:"bytes,1,opt,name=camera_ids,json=cameraIds,proto3" json:"camera_ids,omitempty"`
@@ -424,7 +592,7 @@
func (m *CameraLink) String() string { return proto.CompactTextString(m) }
func (*CameraLink) ProtoMessage()    {}
func (*CameraLink) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{2}
   return fileDescriptor_32de24555f916688, []int{3}
}
func (m *CameraLink) XXX_Unmarshal(b []byte) error {
@@ -459,200 +627,13 @@
   return ""
}
//摄像机的任务信息
type CameraAndTaskInfo struct {
   Camera               *Camera  `protobuf:"bytes,1,opt,name=camera,proto3" json:"camera,omitempty"`
   Tasks                []*Task  `protobuf:"bytes,2,rep,name=tasks,proto3" json:"tasks,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *CameraAndTaskInfo) Reset()         { *m = CameraAndTaskInfo{} }
func (m *CameraAndTaskInfo) String() string { return proto.CompactTextString(m) }
func (*CameraAndTaskInfo) ProtoMessage()    {}
func (*CameraAndTaskInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{3}
}
func (m *CameraAndTaskInfo) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraAndTaskInfo.Unmarshal(m, b)
}
func (m *CameraAndTaskInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraAndTaskInfo.Marshal(b, m, deterministic)
}
func (m *CameraAndTaskInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraAndTaskInfo.Merge(m, src)
}
func (m *CameraAndTaskInfo) XXX_Size() int {
   return xxx_messageInfo_CameraAndTaskInfo.Size(m)
}
func (m *CameraAndTaskInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraAndTaskInfo.DiscardUnknown(m)
}
var xxx_messageInfo_CameraAndTaskInfo proto.InternalMessageInfo
func (m *CameraAndTaskInfo) GetCamera() *Camera {
   if m != nil {
      return m.Camera
   }
   return nil
}
func (m *CameraAndTaskInfo) GetTasks() []*Task {
   if m != nil {
      return m.Tasks
   }
   return nil
}
//Task结构体
type Task struct {
   Taskid               string   `protobuf:"bytes,1,opt,name=taskid,proto3" json:"taskid,omitempty"`
   Taskname             string   `protobuf:"bytes,2,opt,name=taskname,proto3" json:"taskname,omitempty"`
   CreateAt             string   `protobuf:"bytes,3,opt,name=create_at,json=createAt,proto3" json:"create_at,omitempty"`
   CreateBy             string   `protobuf:"bytes,4,opt,name=create_by,json=createBy,proto3" json:"create_by,omitempty"`
   UpdateAt             string   `protobuf:"bytes,5,opt,name=update_at,json=updateAt,proto3" json:"update_at,omitempty"`
   Enable               bool     `protobuf:"varint,6,opt,name=enable,proto3" json:"enable,omitempty"`
   IsAlarm              bool     `protobuf:"varint,7,opt,name=is_alarm,json=isAlarm,proto3" json:"is_alarm,omitempty"`
   DelFlag              bool     `protobuf:"varint,8,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Task) Reset()         { *m = Task{} }
func (m *Task) String() string { return proto.CompactTextString(m) }
func (*Task) ProtoMessage()    {}
func (*Task) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{4}
}
func (m *Task) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_Task.Unmarshal(m, b)
}
func (m *Task) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_Task.Marshal(b, m, deterministic)
}
func (m *Task) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Task.Merge(m, src)
}
func (m *Task) XXX_Size() int {
   return xxx_messageInfo_Task.Size(m)
}
func (m *Task) XXX_DiscardUnknown() {
   xxx_messageInfo_Task.DiscardUnknown(m)
}
var xxx_messageInfo_Task proto.InternalMessageInfo
func (m *Task) GetTaskid() string {
   if m != nil {
      return m.Taskid
   }
   return ""
}
func (m *Task) GetTaskname() string {
   if m != nil {
      return m.Taskname
   }
   return ""
}
func (m *Task) GetCreateAt() string {
   if m != nil {
      return m.CreateAt
   }
   return ""
}
func (m *Task) GetCreateBy() string {
   if m != nil {
      return m.CreateBy
   }
   return ""
}
func (m *Task) GetUpdateAt() string {
   if m != nil {
      return m.UpdateAt
   }
   return ""
}
func (m *Task) GetEnable() bool {
   if m != nil {
      return m.Enable
   }
   return false
}
func (m *Task) GetIsAlarm() bool {
   if m != nil {
      return m.IsAlarm
   }
   return false
}
func (m *Task) GetDelFlag() bool {
   if m != nil {
      return m.DelFlag
   }
   return false
}
type TaskSdkInfo struct {
   Task                 *Task    `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"`
   Sdks                 []*Sdk   `protobuf:"bytes,2,rep,name=sdks,proto3" json:"sdks,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *TaskSdkInfo) Reset()         { *m = TaskSdkInfo{} }
func (m *TaskSdkInfo) String() string { return proto.CompactTextString(m) }
func (*TaskSdkInfo) ProtoMessage()    {}
func (*TaskSdkInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{5}
}
func (m *TaskSdkInfo) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_TaskSdkInfo.Unmarshal(m, b)
}
func (m *TaskSdkInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_TaskSdkInfo.Marshal(b, m, deterministic)
}
func (m *TaskSdkInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_TaskSdkInfo.Merge(m, src)
}
func (m *TaskSdkInfo) XXX_Size() int {
   return xxx_messageInfo_TaskSdkInfo.Size(m)
}
func (m *TaskSdkInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_TaskSdkInfo.DiscardUnknown(m)
}
var xxx_messageInfo_TaskSdkInfo proto.InternalMessageInfo
func (m *TaskSdkInfo) GetTask() *Task {
   if m != nil {
      return m.Task
   }
   return nil
}
func (m *TaskSdkInfo) GetSdks() []*Sdk {
   if m != nil {
      return m.Sdks
   }
   return nil
}
type SdkRun struct {
   IpcId                string   `protobuf:"bytes,1,opt,name=ipc_id,json=ipcId,proto3" json:"ipc_id,omitempty"`
   SdkType              string   `protobuf:"bytes,2,opt,name=sdk_type,json=sdkType,proto3" json:"sdk_type,omitempty"`
   IsTriggerByPreSdk    int32    `protobuf:"varint,3,opt,name=isTriggerByPreSdk,proto3" json:"isTriggerByPreSdk,omitempty"`
   Confidence           int32    `protobuf:"varint,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
   BReid                bool     `protobuf:"varint,5,opt,name=bReid,proto3" json:"bReid,omitempty"`
   TriggerNextSdkType   int32    `protobuf:"varint,6,opt,name=triggerNextSdkType,proto3" json:"triggerNextSdkType,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
@@ -662,7 +643,7 @@
func (m *SdkRun) String() string { return proto.CompactTextString(m) }
func (*SdkRun) ProtoMessage()    {}
func (*SdkRun) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{6}
   return fileDescriptor_32de24555f916688, []int{4}
}
func (m *SdkRun) XXX_Unmarshal(b []byte) error {
@@ -697,179 +678,32 @@
   return ""
}
type TaskSdkRun struct {
   Task                 *Task     `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"`
   Sdks                 []*SdkRun `protobuf:"bytes,2,rep,name=sdks,proto3" json:"sdks,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
}
func (m *TaskSdkRun) Reset()         { *m = TaskSdkRun{} }
func (m *TaskSdkRun) String() string { return proto.CompactTextString(m) }
func (*TaskSdkRun) ProtoMessage()    {}
func (*TaskSdkRun) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{7}
}
func (m *TaskSdkRun) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_TaskSdkRun.Unmarshal(m, b)
}
func (m *TaskSdkRun) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_TaskSdkRun.Marshal(b, m, deterministic)
}
func (m *TaskSdkRun) XXX_Merge(src proto.Message) {
   xxx_messageInfo_TaskSdkRun.Merge(m, src)
}
func (m *TaskSdkRun) XXX_Size() int {
   return xxx_messageInfo_TaskSdkRun.Size(m)
}
func (m *TaskSdkRun) XXX_DiscardUnknown() {
   xxx_messageInfo_TaskSdkRun.DiscardUnknown(m)
}
var xxx_messageInfo_TaskSdkRun proto.InternalMessageInfo
func (m *TaskSdkRun) GetTask() *Task {
func (m *SdkRun) GetIsTriggerByPreSdk() int32 {
   if m != nil {
      return m.Task
   }
   return nil
}
func (m *TaskSdkRun) GetSdks() []*SdkRun {
   if m != nil {
      return m.Sdks
   }
   return nil
}
//摄像机任务
type CameraTask struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   CameraId             string   `protobuf:"bytes,2,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"`
   TaskId               string   `protobuf:"bytes,3,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
   TimeRule             string   `protobuf:"bytes,4,opt,name=time_rule,json=timeRule,proto3" json:"time_rule,omitempty"`
   ReactRule            string   `protobuf:"bytes,5,opt,name=react_rule,json=reactRule,proto3" json:"react_rule,omitempty"`
   ReactDevice          string   `protobuf:"bytes,6,opt,name=react_device,json=reactDevice,proto3" json:"react_device,omitempty"`
   DelFlag              bool     `protobuf:"varint,7,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
   UpdateFlag           bool     `protobuf:"varint,8,opt,name=update_flag,json=updateFlag,proto3" json:"update_flag,omitempty"`
   Enable               bool     `protobuf:"varint,9,opt,name=enable,proto3" json:"enable,omitempty"`
   Sort                 int32    `protobuf:"varint,10,opt,name=sort,proto3" json:"sort,omitempty"`
   IsFull               bool     `protobuf:"varint,11,opt,name=is_full,json=isFull,proto3" json:"is_full,omitempty"`
   LinkTaskId           string   `protobuf:"bytes,12,opt,name=link_task_id,json=linkTaskId,proto3" json:"link_task_id,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *CameraTask) Reset()         { *m = CameraTask{} }
func (m *CameraTask) String() string { return proto.CompactTextString(m) }
func (*CameraTask) ProtoMessage()    {}
func (*CameraTask) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{8}
}
func (m *CameraTask) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraTask.Unmarshal(m, b)
}
func (m *CameraTask) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraTask.Marshal(b, m, deterministic)
}
func (m *CameraTask) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraTask.Merge(m, src)
}
func (m *CameraTask) XXX_Size() int {
   return xxx_messageInfo_CameraTask.Size(m)
}
func (m *CameraTask) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraTask.DiscardUnknown(m)
}
var xxx_messageInfo_CameraTask proto.InternalMessageInfo
func (m *CameraTask) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *CameraTask) GetCameraId() string {
   if m != nil {
      return m.CameraId
   }
   return ""
}
func (m *CameraTask) GetTaskId() string {
   if m != nil {
      return m.TaskId
   }
   return ""
}
func (m *CameraTask) GetTimeRule() string {
   if m != nil {
      return m.TimeRule
   }
   return ""
}
func (m *CameraTask) GetReactRule() string {
   if m != nil {
      return m.ReactRule
   }
   return ""
}
func (m *CameraTask) GetReactDevice() string {
   if m != nil {
      return m.ReactDevice
   }
   return ""
}
func (m *CameraTask) GetDelFlag() bool {
   if m != nil {
      return m.DelFlag
   }
   return false
}
func (m *CameraTask) GetUpdateFlag() bool {
   if m != nil {
      return m.UpdateFlag
   }
   return false
}
func (m *CameraTask) GetEnable() bool {
   if m != nil {
      return m.Enable
   }
   return false
}
func (m *CameraTask) GetSort() int32 {
   if m != nil {
      return m.Sort
      return m.IsTriggerByPreSdk
   }
   return 0
}
func (m *CameraTask) GetIsFull() bool {
func (m *SdkRun) GetConfidence() int32 {
   if m != nil {
      return m.IsFull
      return m.Confidence
   }
   return 0
}
func (m *SdkRun) GetBReid() bool {
   if m != nil {
      return m.BReid
   }
   return false
}
func (m *CameraTask) GetLinkTaskId() string {
func (m *SdkRun) GetTriggerNextSdkType() int32 {
   if m != nil {
      return m.LinkTaskId
      return m.TriggerNextSdkType
   }
   return ""
   return 0
}
//摄像机布防的时间规则,可以设置多个,用id关联到具体的规则配置中
@@ -886,7 +720,7 @@
func (m *CameraTimerule) String() string { return proto.CompactTextString(m) }
func (*CameraTimerule) ProtoMessage()    {}
func (*CameraTimerule) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{9}
   return fileDescriptor_32de24555f916688, []int{5}
}
func (m *CameraTimerule) XXX_Unmarshal(b []byte) error {
@@ -941,7 +775,7 @@
func (m *DayCtl) String() string { return proto.CompactTextString(m) }
func (*DayCtl) ProtoMessage()    {}
func (*DayCtl) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{10}
   return fileDescriptor_32de24555f916688, []int{6}
}
func (m *DayCtl) XXX_Unmarshal(b []byte) error {
@@ -989,7 +823,7 @@
func (m *TimeRange) String() string { return proto.CompactTextString(m) }
func (*TimeRange) ProtoMessage()    {}
func (*TimeRange) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{11}
   return fileDescriptor_32de24555f916688, []int{7}
}
func (m *TimeRange) XXX_Unmarshal(b []byte) error {
@@ -1038,7 +872,7 @@
func (m *Polygon) String() string { return proto.CompactTextString(m) }
func (*Polygon) ProtoMessage()    {}
func (*Polygon) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{12}
   return fileDescriptor_32de24555f916688, []int{8}
}
func (m *Polygon) XXX_Unmarshal(b []byte) error {
@@ -1080,115 +914,130 @@
   return nil
}
type CameraTaskArgs struct {
   CameraId             string           `protobuf:"bytes,1,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"`
   TaskArgs             []*TaskGroupArgs `protobuf:"bytes,2,rep,name=task_args,json=taskArgs,proto3" json:"task_args,omitempty"`
   XXX_NoUnkeyedLiteral struct{}         `json:"-"`
   XXX_unrecognized     []byte           `json:"-"`
   XXX_sizecache        int32            `json:"-"`
type CameraInfo struct {
   RunServerName        string   `protobuf:"bytes,1,opt,name=runServerName,proto3" json:"runServerName,omitempty"`
   Id                   string   `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
   RunType              int32    `protobuf:"varint,4,opt,name=run_type,json=runType,proto3" json:"run_type,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *CameraTaskArgs) Reset()         { *m = CameraTaskArgs{} }
func (m *CameraTaskArgs) String() string { return proto.CompactTextString(m) }
func (*CameraTaskArgs) ProtoMessage()    {}
func (*CameraTaskArgs) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{13}
func (m *CameraInfo) Reset()         { *m = CameraInfo{} }
func (m *CameraInfo) String() string { return proto.CompactTextString(m) }
func (*CameraInfo) ProtoMessage()    {}
func (*CameraInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{9}
}
func (m *CameraTaskArgs) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraTaskArgs.Unmarshal(m, b)
func (m *CameraInfo) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraInfo.Unmarshal(m, b)
}
func (m *CameraTaskArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraTaskArgs.Marshal(b, m, deterministic)
func (m *CameraInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraInfo.Marshal(b, m, deterministic)
}
func (m *CameraTaskArgs) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraTaskArgs.Merge(m, src)
func (m *CameraInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraInfo.Merge(m, src)
}
func (m *CameraTaskArgs) XXX_Size() int {
   return xxx_messageInfo_CameraTaskArgs.Size(m)
func (m *CameraInfo) XXX_Size() int {
   return xxx_messageInfo_CameraInfo.Size(m)
}
func (m *CameraTaskArgs) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraTaskArgs.DiscardUnknown(m)
func (m *CameraInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraInfo.DiscardUnknown(m)
}
var xxx_messageInfo_CameraTaskArgs proto.InternalMessageInfo
var xxx_messageInfo_CameraInfo proto.InternalMessageInfo
func (m *CameraTaskArgs) GetCameraId() string {
func (m *CameraInfo) GetRunServerName() string {
   if m != nil {
      return m.CameraId
      return m.RunServerName
   }
   return ""
}
func (m *CameraTaskArgs) GetTaskArgs() []*TaskGroupArgs {
func (m *CameraInfo) GetId() string {
   if m != nil {
      return m.TaskArgs
      return m.Id
   }
   return nil
   return ""
}
type TaskGroupArgs struct {
   TaskId               string       `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
   GroupRules           []*GroupRule `protobuf:"bytes,2,rep,name=group_rules,json=groupRules,proto3" json:"group_rules,omitempty"`
   Enable               bool         `protobuf:"varint,3,opt,name=enable,proto3" json:"enable,omitempty"`
func (m *CameraInfo) GetName() string {
   if m != nil {
      return m.Name
   }
   return ""
}
func (m *CameraInfo) GetRunType() int32 {
   if m != nil {
      return m.RunType
   }
   return 0
}
type CameraAndRules struct {
   CameraInfo           *CameraInfo  `protobuf:"bytes,1,opt,name=cameraInfo,proto3" json:"cameraInfo,omitempty"`
   Rules                []*GroupRule `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules,omitempty"`
   XXX_NoUnkeyedLiteral struct{}     `json:"-"`
   XXX_unrecognized     []byte       `json:"-"`
   XXX_sizecache        int32        `json:"-"`
}
func (m *TaskGroupArgs) Reset()         { *m = TaskGroupArgs{} }
func (m *TaskGroupArgs) String() string { return proto.CompactTextString(m) }
func (*TaskGroupArgs) ProtoMessage()    {}
func (*TaskGroupArgs) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{14}
func (m *CameraAndRules) Reset()         { *m = CameraAndRules{} }
func (m *CameraAndRules) String() string { return proto.CompactTextString(m) }
func (*CameraAndRules) ProtoMessage()    {}
func (*CameraAndRules) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{10}
}
func (m *TaskGroupArgs) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_TaskGroupArgs.Unmarshal(m, b)
func (m *CameraAndRules) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraAndRules.Unmarshal(m, b)
}
func (m *TaskGroupArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_TaskGroupArgs.Marshal(b, m, deterministic)
func (m *CameraAndRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraAndRules.Marshal(b, m, deterministic)
}
func (m *TaskGroupArgs) XXX_Merge(src proto.Message) {
   xxx_messageInfo_TaskGroupArgs.Merge(m, src)
func (m *CameraAndRules) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraAndRules.Merge(m, src)
}
func (m *TaskGroupArgs) XXX_Size() int {
   return xxx_messageInfo_TaskGroupArgs.Size(m)
func (m *CameraAndRules) XXX_Size() int {
   return xxx_messageInfo_CameraAndRules.Size(m)
}
func (m *TaskGroupArgs) XXX_DiscardUnknown() {
   xxx_messageInfo_TaskGroupArgs.DiscardUnknown(m)
func (m *CameraAndRules) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraAndRules.DiscardUnknown(m)
}
var xxx_messageInfo_TaskGroupArgs proto.InternalMessageInfo
var xxx_messageInfo_CameraAndRules proto.InternalMessageInfo
func (m *TaskGroupArgs) GetTaskId() string {
func (m *CameraAndRules) GetCameraInfo() *CameraInfo {
   if m != nil {
      return m.TaskId
   }
   return ""
}
func (m *TaskGroupArgs) GetGroupRules() []*GroupRule {
   if m != nil {
      return m.GroupRules
      return m.CameraInfo
   }
   return nil
}
func (m *TaskGroupArgs) GetEnable() bool {
func (m *CameraAndRules) GetRules() []*GroupRule {
   if m != nil {
      return m.Enable
      return m.Rules
   }
   return false
   return nil
}
type GroupRule struct {
   GroupId              string   `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
   GroupText            string   `protobuf:"bytes,2,opt,name=group_text,json=groupText,proto3" json:"group_text,omitempty"`
   AlarmLevel           int32    `protobuf:"varint,3,opt,name=alarm_level,json=alarmLevel,proto3" json:"alarm_level,omitempty"`
   Rules                []*Rule  `protobuf:"bytes,4,rep,name=rules,proto3" json:"rules,omitempty"`
   SetType              string   `protobuf:"bytes,5,opt,name=set_type,json=setType,proto3" json:"set_type,omitempty"`
   DefenceState         bool     `protobuf:"varint,6,opt,name=defence_state,json=defenceState,proto3" json:"defence_state,omitempty"`
   CameraIds            []string `protobuf:"bytes,1,rep,name=cameraIds,proto3" json:"cameraIds,omitempty"`
   Id                   string   `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
   GroupText            string   `protobuf:"bytes,3,opt,name=group_text,json=groupText,proto3" json:"group_text,omitempty"`
   AlarmLevel           int32    `protobuf:"varint,4,opt,name=alarm_level,json=alarmLevel,proto3" json:"alarm_level,omitempty"`
   Rules                []*Rule  `protobuf:"bytes,5,rep,name=rules,proto3" json:"rules,omitempty"`
   SetType              string   `protobuf:"bytes,6,opt,name=set_type,json=setType,proto3" json:"set_type,omitempty"`
   TemplateId           string   `protobuf:"bytes,7,opt,name=template_id,json=templateId,proto3" json:"template_id,omitempty"`
   TemplateRule         string   `protobuf:"bytes,8,opt,name=template_rule,json=templateRule,proto3" json:"template_rule,omitempty"`
   TimeRuleId           string   `protobuf:"bytes,9,opt,name=time_rule_id,json=timeRuleId,proto3" json:"time_rule_id,omitempty"`
   SceneName            string   `protobuf:"bytes,10,opt,name=scene_name,json=sceneName,proto3" json:"scene_name,omitempty"`
   Desc                 string   `protobuf:"bytes,11,opt,name=desc,proto3" json:"desc,omitempty"`
   Enable               bool     `protobuf:"varint,12,opt,name=enable,proto3" json:"enable,omitempty"`
   VoiceId              string   `protobuf:"bytes,13,opt,name=voiceId,proto3" json:"voiceId,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
@@ -1198,7 +1047,7 @@
func (m *GroupRule) String() string { return proto.CompactTextString(m) }
func (*GroupRule) ProtoMessage()    {}
func (*GroupRule) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{15}
   return fileDescriptor_32de24555f916688, []int{11}
}
func (m *GroupRule) XXX_Unmarshal(b []byte) error {
@@ -1219,9 +1068,16 @@
var xxx_messageInfo_GroupRule proto.InternalMessageInfo
func (m *GroupRule) GetGroupId() string {
func (m *GroupRule) GetCameraIds() []string {
   if m != nil {
      return m.GroupId
      return m.CameraIds
   }
   return nil
}
func (m *GroupRule) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
@@ -1254,36 +1110,138 @@
   return ""
}
func (m *GroupRule) GetDefenceState() bool {
func (m *GroupRule) GetTemplateId() string {
   if m != nil {
      return m.DefenceState
      return m.TemplateId
   }
   return ""
}
func (m *GroupRule) GetTemplateRule() string {
   if m != nil {
      return m.TemplateRule
   }
   return ""
}
func (m *GroupRule) GetTimeRuleId() string {
   if m != nil {
      return m.TimeRuleId
   }
   return ""
}
func (m *GroupRule) GetSceneName() string {
   if m != nil {
      return m.SceneName
   }
   return ""
}
func (m *GroupRule) GetDesc() string {
   if m != nil {
      return m.Desc
   }
   return ""
}
func (m *GroupRule) GetEnable() bool {
   if m != nil {
      return m.Enable
   }
   return false
}
func (m *GroupRule) GetVoiceId() string {
   if m != nil {
      return m.VoiceId
   }
   return ""
}
type GroupRuleSdks struct {
   Id                   string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   SceneName            string    `protobuf:"bytes,2,opt,name=scene_name,json=sceneName,proto3" json:"scene_name,omitempty"`
   Sdks                 []*SdkRun `protobuf:"bytes,3,rep,name=sdks,proto3" json:"sdks,omitempty"`
   SdkIds               []string  `protobuf:"bytes,4,rep,name=sdkIds,proto3" json:"sdkIds,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
}
func (m *GroupRuleSdks) Reset()         { *m = GroupRuleSdks{} }
func (m *GroupRuleSdks) String() string { return proto.CompactTextString(m) }
func (*GroupRuleSdks) ProtoMessage()    {}
func (*GroupRuleSdks) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{12}
}
func (m *GroupRuleSdks) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_GroupRuleSdks.Unmarshal(m, b)
}
func (m *GroupRuleSdks) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_GroupRuleSdks.Marshal(b, m, deterministic)
}
func (m *GroupRuleSdks) XXX_Merge(src proto.Message) {
   xxx_messageInfo_GroupRuleSdks.Merge(m, src)
}
func (m *GroupRuleSdks) XXX_Size() int {
   return xxx_messageInfo_GroupRuleSdks.Size(m)
}
func (m *GroupRuleSdks) XXX_DiscardUnknown() {
   xxx_messageInfo_GroupRuleSdks.DiscardUnknown(m)
}
var xxx_messageInfo_GroupRuleSdks proto.InternalMessageInfo
func (m *GroupRuleSdks) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *GroupRuleSdks) GetSceneName() string {
   if m != nil {
      return m.SceneName
   }
   return ""
}
func (m *GroupRuleSdks) GetSdks() []*SdkRun {
   if m != nil {
      return m.Sdks
   }
   return nil
}
func (m *GroupRuleSdks) GetSdkIds() []string {
   if m != nil {
      return m.SdkIds
   }
   return nil
}
type Rule struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   CameraTaskId         string   `protobuf:"bytes,2,opt,name=camera_task_id,json=cameraTaskId,proto3" json:"camera_task_id,omitempty"`
   CameraId             string   `protobuf:"bytes,3,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"`
   PolygonId            string   `protobuf:"bytes,4,opt,name=polygon_id,json=polygonId,proto3" json:"polygon_id,omitempty"`
   SdkId                string   `protobuf:"bytes,5,opt,name=sdk_id,json=sdkId,proto3" json:"sdk_id,omitempty"`
   SdkArgAlias          string   `protobuf:"bytes,6,opt,name=sdk_arg_alias,json=sdkArgAlias,proto3" json:"sdk_arg_alias,omitempty"`
   Operator             string   `protobuf:"bytes,7,opt,name=operator,proto3" json:"operator,omitempty"`
   OperatorType         string   `protobuf:"bytes,8,opt,name=operator_type,json=operatorType,proto3" json:"operator_type,omitempty"`
   SdkArgValue          string   `protobuf:"bytes,9,opt,name=sdk_arg_value,json=sdkArgValue,proto3" json:"sdk_arg_value,omitempty"`
   Sort                 int32    `protobuf:"varint,10,opt,name=sort,proto3" json:"sort,omitempty"`
   RuleWithPre          string   `protobuf:"bytes,11,opt,name=rule_with_pre,json=ruleWithPre,proto3" json:"rule_with_pre,omitempty"`
   GroupId              string   `protobuf:"bytes,12,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   Id                   string        `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   CameraId             string        `protobuf:"bytes,2,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"`
   PolygonId            string        `protobuf:"bytes,3,opt,name=polygon_id,json=polygonId,proto3" json:"polygon_id,omitempty"`
   SdkId                string        `protobuf:"bytes,4,opt,name=sdk_id,json=sdkId,proto3" json:"sdk_id,omitempty"`
   SdkSet               []*SdkSetBase `protobuf:"bytes,5,rep,name=sdk_set,json=sdkSet,proto3" json:"sdk_set,omitempty"`
   RuleWithPre          string        `protobuf:"bytes,6,opt,name=rule_with_pre,json=ruleWithPre,proto3" json:"rule_with_pre,omitempty"`
   IsSaveAnyhow         bool          `protobuf:"varint,7,opt,name=is_save_anyhow,json=isSaveAnyhow,proto3" json:"is_save_anyhow,omitempty"`
   GroupId              string        `protobuf:"bytes,8,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
   Sort                 int32         `protobuf:"varint,9,opt,name=sort,proto3" json:"sort,omitempty"`
   XXX_NoUnkeyedLiteral struct{}      `json:"-"`
   XXX_unrecognized     []byte        `json:"-"`
   XXX_sizecache        int32         `json:"-"`
}
func (m *Rule) Reset()         { *m = Rule{} }
func (m *Rule) String() string { return proto.CompactTextString(m) }
func (*Rule) ProtoMessage()    {}
func (*Rule) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{16}
   return fileDescriptor_32de24555f916688, []int{13}
}
func (m *Rule) XXX_Unmarshal(b []byte) error {
@@ -1311,13 +1269,6 @@
   return ""
}
func (m *Rule) GetCameraTaskId() string {
   if m != nil {
      return m.CameraTaskId
   }
   return ""
}
func (m *Rule) GetCameraId() string {
   if m != nil {
      return m.CameraId
@@ -1339,30 +1290,30 @@
   return ""
}
func (m *Rule) GetSdkArgAlias() string {
func (m *Rule) GetSdkSet() []*SdkSetBase {
   if m != nil {
      return m.SdkArgAlias
      return m.SdkSet
   }
   return nil
}
func (m *Rule) GetRuleWithPre() string {
   if m != nil {
      return m.RuleWithPre
   }
   return ""
}
func (m *Rule) GetOperator() string {
func (m *Rule) GetIsSaveAnyhow() bool {
   if m != nil {
      return m.Operator
      return m.IsSaveAnyhow
   }
   return ""
   return false
}
func (m *Rule) GetOperatorType() string {
func (m *Rule) GetGroupId() string {
   if m != nil {
      return m.OperatorType
   }
   return ""
}
func (m *Rule) GetSdkArgValue() string {
   if m != nil {
      return m.SdkArgValue
      return m.GroupId
   }
   return ""
}
@@ -1374,18 +1325,264 @@
   return 0
}
func (m *Rule) GetRuleWithPre() string {
type RuleTemplate struct {
   Id                   string         `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string         `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   Desc                 string         `protobuf:"bytes,3,opt,name=desc,proto3" json:"desc,omitempty"`
   Txt                  string         `protobuf:"bytes,4,opt,name=txt,proto3" json:"txt,omitempty"`
   Rules                []*TemplateArg `protobuf:"bytes,5,rep,name=rules,proto3" json:"rules,omitempty"`
   XXX_NoUnkeyedLiteral struct{}       `json:"-"`
   XXX_unrecognized     []byte         `json:"-"`
   XXX_sizecache        int32          `json:"-"`
}
func (m *RuleTemplate) Reset()         { *m = RuleTemplate{} }
func (m *RuleTemplate) String() string { return proto.CompactTextString(m) }
func (*RuleTemplate) ProtoMessage()    {}
func (*RuleTemplate) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{14}
}
func (m *RuleTemplate) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_RuleTemplate.Unmarshal(m, b)
}
func (m *RuleTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_RuleTemplate.Marshal(b, m, deterministic)
}
func (m *RuleTemplate) XXX_Merge(src proto.Message) {
   xxx_messageInfo_RuleTemplate.Merge(m, src)
}
func (m *RuleTemplate) XXX_Size() int {
   return xxx_messageInfo_RuleTemplate.Size(m)
}
func (m *RuleTemplate) XXX_DiscardUnknown() {
   xxx_messageInfo_RuleTemplate.DiscardUnknown(m)
}
var xxx_messageInfo_RuleTemplate proto.InternalMessageInfo
func (m *RuleTemplate) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *RuleTemplate) GetName() string {
   if m != nil {
      return m.Name
   }
   return ""
}
func (m *RuleTemplate) GetDesc() string {
   if m != nil {
      return m.Desc
   }
   return ""
}
func (m *RuleTemplate) GetTxt() string {
   if m != nil {
      return m.Txt
   }
   return ""
}
func (m *RuleTemplate) GetRules() []*TemplateArg {
   if m != nil {
      return m.Rules
   }
   return nil
}
type RuleTemplateList struct {
   List                 []*RuleTemplate `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
   XXX_NoUnkeyedLiteral struct{}        `json:"-"`
   XXX_unrecognized     []byte          `json:"-"`
   XXX_sizecache        int32           `json:"-"`
}
func (m *RuleTemplateList) Reset()         { *m = RuleTemplateList{} }
func (m *RuleTemplateList) String() string { return proto.CompactTextString(m) }
func (*RuleTemplateList) ProtoMessage()    {}
func (*RuleTemplateList) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{15}
}
func (m *RuleTemplateList) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_RuleTemplateList.Unmarshal(m, b)
}
func (m *RuleTemplateList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_RuleTemplateList.Marshal(b, m, deterministic)
}
func (m *RuleTemplateList) XXX_Merge(src proto.Message) {
   xxx_messageInfo_RuleTemplateList.Merge(m, src)
}
func (m *RuleTemplateList) XXX_Size() int {
   return xxx_messageInfo_RuleTemplateList.Size(m)
}
func (m *RuleTemplateList) XXX_DiscardUnknown() {
   xxx_messageInfo_RuleTemplateList.DiscardUnknown(m)
}
var xxx_messageInfo_RuleTemplateList proto.InternalMessageInfo
func (m *RuleTemplateList) GetList() []*RuleTemplate {
   if m != nil {
      return m.List
   }
   return nil
}
type TemplateArg struct {
   SdkId                string   `protobuf:"bytes,1,opt,name=sdk_id,json=sdkId,proto3" json:"sdk_id,omitempty"`
   SdkArgAlias          string   `protobuf:"bytes,2,opt,name=sdk_arg_alias,json=sdkArgAlias,proto3" json:"sdk_arg_alias,omitempty"`
   Operator             string   `protobuf:"bytes,3,opt,name=operator,proto3" json:"operator,omitempty"`
   SdkArgValue          string   `protobuf:"bytes,4,opt,name=sdk_arg_value,json=sdkArgValue,proto3" json:"sdk_arg_value,omitempty"`
   Sort                 string   `protobuf:"bytes,5,opt,name=sort,proto3" json:"sort,omitempty"`
   RuleWithPre          string   `protobuf:"bytes,6,opt,name=rule_with_pre,json=ruleWithPre,proto3" json:"rule_with_pre,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *TemplateArg) Reset()         { *m = TemplateArg{} }
func (m *TemplateArg) String() string { return proto.CompactTextString(m) }
func (*TemplateArg) ProtoMessage()    {}
func (*TemplateArg) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{16}
}
func (m *TemplateArg) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_TemplateArg.Unmarshal(m, b)
}
func (m *TemplateArg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_TemplateArg.Marshal(b, m, deterministic)
}
func (m *TemplateArg) XXX_Merge(src proto.Message) {
   xxx_messageInfo_TemplateArg.Merge(m, src)
}
func (m *TemplateArg) XXX_Size() int {
   return xxx_messageInfo_TemplateArg.Size(m)
}
func (m *TemplateArg) XXX_DiscardUnknown() {
   xxx_messageInfo_TemplateArg.DiscardUnknown(m)
}
var xxx_messageInfo_TemplateArg proto.InternalMessageInfo
func (m *TemplateArg) GetSdkId() string {
   if m != nil {
      return m.SdkId
   }
   return ""
}
func (m *TemplateArg) GetSdkArgAlias() string {
   if m != nil {
      return m.SdkArgAlias
   }
   return ""
}
func (m *TemplateArg) GetOperator() string {
   if m != nil {
      return m.Operator
   }
   return ""
}
func (m *TemplateArg) GetSdkArgValue() string {
   if m != nil {
      return m.SdkArgValue
   }
   return ""
}
func (m *TemplateArg) GetSort() string {
   if m != nil {
      return m.Sort
   }
   return ""
}
func (m *TemplateArg) GetRuleWithPre() string {
   if m != nil {
      return m.RuleWithPre
   }
   return ""
}
func (m *Rule) GetGroupId() string {
type SdkSetBase struct {
   SdkArgAlias          string   `protobuf:"bytes,1,opt,name=sdk_arg_alias,json=sdkArgAlias,proto3" json:"sdk_arg_alias,omitempty"`
   Operator             string   `protobuf:"bytes,2,opt,name=operator,proto3" json:"operator,omitempty"`
   OperatorType         string   `protobuf:"bytes,3,opt,name=operator_type,json=operatorType,proto3" json:"operator_type,omitempty"`
   SdkArgValue          string   `protobuf:"bytes,4,opt,name=sdk_arg_value,json=sdkArgValue,proto3" json:"sdk_arg_value,omitempty"`
   Sort                 int32    `protobuf:"varint,5,opt,name=sort,proto3" json:"sort,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *SdkSetBase) Reset()         { *m = SdkSetBase{} }
func (m *SdkSetBase) String() string { return proto.CompactTextString(m) }
func (*SdkSetBase) ProtoMessage()    {}
func (*SdkSetBase) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{17}
}
func (m *SdkSetBase) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_SdkSetBase.Unmarshal(m, b)
}
func (m *SdkSetBase) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_SdkSetBase.Marshal(b, m, deterministic)
}
func (m *SdkSetBase) XXX_Merge(src proto.Message) {
   xxx_messageInfo_SdkSetBase.Merge(m, src)
}
func (m *SdkSetBase) XXX_Size() int {
   return xxx_messageInfo_SdkSetBase.Size(m)
}
func (m *SdkSetBase) XXX_DiscardUnknown() {
   xxx_messageInfo_SdkSetBase.DiscardUnknown(m)
}
var xxx_messageInfo_SdkSetBase proto.InternalMessageInfo
func (m *SdkSetBase) GetSdkArgAlias() string {
   if m != nil {
      return m.GroupId
      return m.SdkArgAlias
   }
   return ""
}
func (m *SdkSetBase) GetOperator() string {
   if m != nil {
      return m.Operator
   }
   return ""
}
func (m *SdkSetBase) GetOperatorType() string {
   if m != nil {
      return m.OperatorType
   }
   return ""
}
func (m *SdkSetBase) GetSdkArgValue() string {
   if m != nil {
      return m.SdkArgValue
   }
   return ""
}
func (m *SdkSetBase) GetSort() int32 {
   if m != nil {
      return m.Sort
   }
   return 0
}
//Sdk struct
@@ -1402,6 +1599,13 @@
   CreateBy             string    `protobuf:"bytes,10,opt,name=create_by,json=createBy,proto3" json:"create_by,omitempty"`
   Enable               bool      `protobuf:"varint,11,opt,name=enable,proto3" json:"enable,omitempty"`
   DelFlag              int32     `protobuf:"varint,12,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
   IconBlob             string    `protobuf:"bytes,13,opt,name=iconBlob,proto3" json:"iconBlob,omitempty"`
   Version              string    `protobuf:"bytes,14,opt,name=version,proto3" json:"version,omitempty"`
   EnTrack              bool      `protobuf:"varint,15,opt,name=enTrack,proto3" json:"enTrack,omitempty"`
   ArgDef               string    `protobuf:"bytes,16,opt,name=argDef,proto3" json:"argDef,omitempty"`
   RuleSo               string    `protobuf:"bytes,17,opt,name=ruleSo,proto3" json:"ruleSo,omitempty"`
   IconBlob2            string    `protobuf:"bytes,18,opt,name=iconBlob2,proto3" json:"iconBlob2,omitempty"`
   ActivateCode         string    `protobuf:"bytes,19,opt,name=activateCode,proto3" json:"activateCode,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
@@ -1411,7 +1615,7 @@
func (m *Sdk) String() string { return proto.CompactTextString(m) }
func (*Sdk) ProtoMessage()    {}
func (*Sdk) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{17}
   return fileDescriptor_32de24555f916688, []int{18}
}
func (m *Sdk) XXX_Unmarshal(b []byte) error {
@@ -1516,183 +1720,51 @@
   return 0
}
type TaskSdkRule struct {
   TaskId               string        `protobuf:"bytes,1,opt,name=taskId,proto3" json:"taskId,omitempty"`
   Enable               bool          `protobuf:"varint,2,opt,name=enable,proto3" json:"enable,omitempty"`
   SdkRules             []*SdkRuleSet `protobuf:"bytes,3,rep,name=sdkRules,proto3" json:"sdkRules,omitempty"`
   XXX_NoUnkeyedLiteral struct{}      `json:"-"`
   XXX_unrecognized     []byte        `json:"-"`
   XXX_sizecache        int32         `json:"-"`
}
func (m *TaskSdkRule) Reset()         { *m = TaskSdkRule{} }
func (m *TaskSdkRule) String() string { return proto.CompactTextString(m) }
func (*TaskSdkRule) ProtoMessage()    {}
func (*TaskSdkRule) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{18}
}
func (m *TaskSdkRule) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_TaskSdkRule.Unmarshal(m, b)
}
func (m *TaskSdkRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_TaskSdkRule.Marshal(b, m, deterministic)
}
func (m *TaskSdkRule) XXX_Merge(src proto.Message) {
   xxx_messageInfo_TaskSdkRule.Merge(m, src)
}
func (m *TaskSdkRule) XXX_Size() int {
   return xxx_messageInfo_TaskSdkRule.Size(m)
}
func (m *TaskSdkRule) XXX_DiscardUnknown() {
   xxx_messageInfo_TaskSdkRule.DiscardUnknown(m)
}
var xxx_messageInfo_TaskSdkRule proto.InternalMessageInfo
func (m *TaskSdkRule) GetTaskId() string {
func (m *Sdk) GetIconBlob() string {
   if m != nil {
      return m.TaskId
      return m.IconBlob
   }
   return ""
}
func (m *TaskSdkRule) GetEnable() bool {
func (m *Sdk) GetVersion() string {
   if m != nil {
      return m.Enable
      return m.Version
   }
   return ""
}
func (m *Sdk) GetEnTrack() bool {
   if m != nil {
      return m.EnTrack
   }
   return false
}
func (m *TaskSdkRule) GetSdkRules() []*SdkRuleSet {
func (m *Sdk) GetArgDef() string {
   if m != nil {
      return m.SdkRules
   }
   return nil
}
type SdkRuleSet struct {
   SdkId                string     `protobuf:"bytes,1,opt,name=sdkId,proto3" json:"sdkId,omitempty"`
   IpcId                string     `protobuf:"bytes,2,opt,name=ipcId,proto3" json:"ipcId,omitempty"`
   Rules                []*SdkRule `protobuf:"bytes,3,rep,name=rules,proto3" json:"rules,omitempty"`
   Sort                 int32      `protobuf:"varint,4,opt,name=sort,proto3" json:"sort,omitempty"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
}
func (m *SdkRuleSet) Reset()         { *m = SdkRuleSet{} }
func (m *SdkRuleSet) String() string { return proto.CompactTextString(m) }
func (*SdkRuleSet) ProtoMessage()    {}
func (*SdkRuleSet) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{19}
}
func (m *SdkRuleSet) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_SdkRuleSet.Unmarshal(m, b)
}
func (m *SdkRuleSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_SdkRuleSet.Marshal(b, m, deterministic)
}
func (m *SdkRuleSet) XXX_Merge(src proto.Message) {
   xxx_messageInfo_SdkRuleSet.Merge(m, src)
}
func (m *SdkRuleSet) XXX_Size() int {
   return xxx_messageInfo_SdkRuleSet.Size(m)
}
func (m *SdkRuleSet) XXX_DiscardUnknown() {
   xxx_messageInfo_SdkRuleSet.DiscardUnknown(m)
}
var xxx_messageInfo_SdkRuleSet proto.InternalMessageInfo
func (m *SdkRuleSet) GetSdkId() string {
   if m != nil {
      return m.SdkId
      return m.ArgDef
   }
   return ""
}
func (m *SdkRuleSet) GetIpcId() string {
func (m *Sdk) GetRuleSo() string {
   if m != nil {
      return m.IpcId
      return m.RuleSo
   }
   return ""
}
func (m *SdkRuleSet) GetRules() []*SdkRule {
func (m *Sdk) GetIconBlob2() string {
   if m != nil {
      return m.Rules
   }
   return nil
}
func (m *SdkRuleSet) GetSort() int32 {
   if m != nil {
      return m.Sort
   }
   return 0
}
type SdkRule struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   SdkArgAlias          string   `protobuf:"bytes,2,opt,name=sdk_arg_alias,json=sdkArgAlias,proto3" json:"sdk_arg_alias,omitempty"`
   Operator             string   `protobuf:"bytes,3,opt,name=operator,proto3" json:"operator,omitempty"`
   SdkArgValue          string   `protobuf:"bytes,4,opt,name=sdk_arg_value,json=sdkArgValue,proto3" json:"sdk_arg_value,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *SdkRule) Reset()         { *m = SdkRule{} }
func (m *SdkRule) String() string { return proto.CompactTextString(m) }
func (*SdkRule) ProtoMessage()    {}
func (*SdkRule) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{20}
}
func (m *SdkRule) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_SdkRule.Unmarshal(m, b)
}
func (m *SdkRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_SdkRule.Marshal(b, m, deterministic)
}
func (m *SdkRule) XXX_Merge(src proto.Message) {
   xxx_messageInfo_SdkRule.Merge(m, src)
}
func (m *SdkRule) XXX_Size() int {
   return xxx_messageInfo_SdkRule.Size(m)
}
func (m *SdkRule) XXX_DiscardUnknown() {
   xxx_messageInfo_SdkRule.DiscardUnknown(m)
}
var xxx_messageInfo_SdkRule proto.InternalMessageInfo
func (m *SdkRule) GetId() string {
   if m != nil {
      return m.Id
      return m.IconBlob2
   }
   return ""
}
func (m *SdkRule) GetSdkArgAlias() string {
func (m *Sdk) GetActivateCode() string {
   if m != nil {
      return m.SdkArgAlias
   }
   return ""
}
func (m *SdkRule) GetOperator() string {
   if m != nil {
      return m.Operator
   }
   return ""
}
func (m *SdkRule) GetSdkArgValue() string {
   if m != nil {
      return m.SdkArgValue
      return m.ActivateCode
   }
   return ""
}
@@ -1717,7 +1789,7 @@
func (m *SdkArg) String() string { return proto.CompactTextString(m) }
func (*SdkArg) ProtoMessage()    {}
func (*SdkArg) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{21}
   return fileDescriptor_32de24555f916688, []int{19}
}
func (m *SdkArg) XXX_Unmarshal(b []byte) error {
@@ -1804,6 +1876,8 @@
type SdkChanSet struct {
   SdkType              string   `protobuf:"bytes,1,opt,name=sdk_type,json=sdkType,proto3" json:"sdk_type,omitempty"`
   ChanNum              int32    `protobuf:"varint,2,opt,name=chan_num,json=chanNum,proto3" json:"chan_num,omitempty"`
   ConfidenceInc        int32    `protobuf:"varint,3,opt,name=confidenceInc,proto3" json:"confidenceInc,omitempty"`
   MinMovePos           int32    `protobuf:"varint,4,opt,name=minMovePos,proto3" json:"minMovePos,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
@@ -1813,7 +1887,7 @@
func (m *SdkChanSet) String() string { return proto.CompactTextString(m) }
func (*SdkChanSet) ProtoMessage()    {}
func (*SdkChanSet) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{22}
   return fileDescriptor_32de24555f916688, []int{20}
}
func (m *SdkChanSet) XXX_Unmarshal(b []byte) error {
@@ -1848,6 +1922,20 @@
   return 0
}
func (m *SdkChanSet) GetConfidenceInc() int32 {
   if m != nil {
      return m.ConfidenceInc
   }
   return 0
}
func (m *SdkChanSet) GetMinMovePos() int32 {
   if m != nil {
      return m.MinMovePos
   }
   return 0
}
//publish db change message
type DbChangeMessage struct {
   Table                TableChanged `protobuf:"varint,1,opt,name=table,proto3,enum=protomsg.TableChanged" json:"table,omitempty"`
@@ -1863,7 +1951,7 @@
func (m *DbChangeMessage) String() string { return proto.CompactTextString(m) }
func (*DbChangeMessage) ProtoMessage()    {}
func (*DbChangeMessage) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{23}
   return fileDescriptor_32de24555f916688, []int{21}
}
func (m *DbChangeMessage) XXX_Unmarshal(b []byte) error {
@@ -1921,6 +2009,7 @@
   DirectionLine        string   `protobuf:"bytes,6,opt,name=direction_line,json=directionLine,proto3" json:"direction_line,omitempty"`
   Type                 string   `protobuf:"bytes,7,opt,name=type,proto3" json:"type,omitempty"`
   DefenceState         int32    `protobuf:"varint,8,opt,name=defence_state,json=defenceState,proto3" json:"defence_state,omitempty"`
   CameraName           string   `protobuf:"bytes,9,opt,name=camera_name,json=cameraName,proto3" json:"camera_name,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
@@ -1930,7 +2019,7 @@
func (m *CameraPolygon) String() string { return proto.CompactTextString(m) }
func (*CameraPolygon) ProtoMessage()    {}
func (*CameraPolygon) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{24}
   return fileDescriptor_32de24555f916688, []int{22}
}
func (m *CameraPolygon) XXX_Unmarshal(b []byte) error {
@@ -2007,6 +2096,84 @@
   return 0
}
func (m *CameraPolygon) GetCameraName() string {
   if m != nil {
      return m.CameraName
   }
   return ""
}
type CameraPolygonRelation struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   SourceCameraId       string   `protobuf:"bytes,2,opt,name=source_camera_id,json=sourceCameraId,proto3" json:"source_camera_id,omitempty"`
   SourcePolygonId      string   `protobuf:"bytes,3,opt,name=source_polygon_id,json=sourcePolygonId,proto3" json:"source_polygon_id,omitempty"`
   TargetCameraId       string   `protobuf:"bytes,4,opt,name=target_camera_id,json=targetCameraId,proto3" json:"target_camera_id,omitempty"`
   TargetPolygonId      string   `protobuf:"bytes,5,opt,name=target_polygon_id,json=targetPolygonId,proto3" json:"target_polygon_id,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *CameraPolygonRelation) Reset()         { *m = CameraPolygonRelation{} }
func (m *CameraPolygonRelation) String() string { return proto.CompactTextString(m) }
func (*CameraPolygonRelation) ProtoMessage()    {}
func (*CameraPolygonRelation) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{23}
}
func (m *CameraPolygonRelation) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraPolygonRelation.Unmarshal(m, b)
}
func (m *CameraPolygonRelation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraPolygonRelation.Marshal(b, m, deterministic)
}
func (m *CameraPolygonRelation) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraPolygonRelation.Merge(m, src)
}
func (m *CameraPolygonRelation) XXX_Size() int {
   return xxx_messageInfo_CameraPolygonRelation.Size(m)
}
func (m *CameraPolygonRelation) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraPolygonRelation.DiscardUnknown(m)
}
var xxx_messageInfo_CameraPolygonRelation proto.InternalMessageInfo
func (m *CameraPolygonRelation) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *CameraPolygonRelation) GetSourceCameraId() string {
   if m != nil {
      return m.SourceCameraId
   }
   return ""
}
func (m *CameraPolygonRelation) GetSourcePolygonId() string {
   if m != nil {
      return m.SourcePolygonId
   }
   return ""
}
func (m *CameraPolygonRelation) GetTargetCameraId() string {
   if m != nil {
      return m.TargetCameraId
   }
   return ""
}
func (m *CameraPolygonRelation) GetTargetPolygonId() string {
   if m != nil {
      return m.TargetPolygonId
   }
   return ""
}
type VideotapeInfo struct {
   EsDataId             string   `protobuf:"bytes,1,opt,name=esDataId,proto3" json:"esDataId,omitempty"`
   CameraId             string   `protobuf:"bytes,2,opt,name=cameraId,proto3" json:"cameraId,omitempty"`
@@ -2024,7 +2191,7 @@
func (m *VideotapeInfo) String() string { return proto.CompactTextString(m) }
func (*VideotapeInfo) ProtoMessage()    {}
func (*VideotapeInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{25}
   return fileDescriptor_32de24555f916688, []int{24}
}
func (m *VideotapeInfo) XXX_Unmarshal(b []byte) error {
@@ -2094,6 +2261,100 @@
   return 0
}
type Voice struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   Path                 string   `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Voice) Reset()         { *m = Voice{} }
func (m *Voice) String() string { return proto.CompactTextString(m) }
func (*Voice) ProtoMessage()    {}
func (*Voice) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{25}
}
func (m *Voice) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_Voice.Unmarshal(m, b)
}
func (m *Voice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_Voice.Marshal(b, m, deterministic)
}
func (m *Voice) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Voice.Merge(m, src)
}
func (m *Voice) XXX_Size() int {
   return xxx_messageInfo_Voice.Size(m)
}
func (m *Voice) XXX_DiscardUnknown() {
   xxx_messageInfo_Voice.DiscardUnknown(m)
}
var xxx_messageInfo_Voice proto.InternalMessageInfo
func (m *Voice) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *Voice) GetName() string {
   if m != nil {
      return m.Name
   }
   return ""
}
func (m *Voice) GetPath() string {
   if m != nil {
      return m.Path
   }
   return ""
}
type VoiceList struct {
   List                 []*Voice `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *VoiceList) Reset()         { *m = VoiceList{} }
func (m *VoiceList) String() string { return proto.CompactTextString(m) }
func (*VoiceList) ProtoMessage()    {}
func (*VoiceList) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{26}
}
func (m *VoiceList) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_VoiceList.Unmarshal(m, b)
}
func (m *VoiceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_VoiceList.Marshal(b, m, deterministic)
}
func (m *VoiceList) XXX_Merge(src proto.Message) {
   xxx_messageInfo_VoiceList.Merge(m, src)
}
func (m *VoiceList) XXX_Size() int {
   return xxx_messageInfo_VoiceList.Size(m)
}
func (m *VoiceList) XXX_DiscardUnknown() {
   xxx_messageInfo_VoiceList.DiscardUnknown(m)
}
var xxx_messageInfo_VoiceList proto.InternalMessageInfo
func (m *VoiceList) GetList() []*Voice {
   if m != nil {
      return m.List
   }
   return nil
}
type CompareArgs struct {
   TableIds             []string `protobuf:"bytes,1,rep,name=tableIds,proto3" json:"tableIds,omitempty"`
   CompareThreshold     float32  `protobuf:"fixed32,2,opt,name=compareThreshold,proto3" json:"compareThreshold,omitempty"`
@@ -2107,6 +2368,9 @@
   Collection           string   `protobuf:"bytes,10,opt,name=collection,proto3" json:"collection,omitempty"`
   Source               bool     `protobuf:"varint,11,opt,name=source,proto3" json:"source,omitempty"`
   AnalyServerId        string   `protobuf:"bytes,12,opt,name=analyServerId,proto3" json:"analyServerId,omitempty"`
   CompareTarget        string   `protobuf:"bytes,13,opt,name=compareTarget,proto3" json:"compareTarget,omitempty"`
   IsCompareAll         bool     `protobuf:"varint,14,opt,name=isCompareAll,proto3" json:"isCompareAll,omitempty"`
   ServerIds            []string `protobuf:"bytes,15,rep,name=serverIds,proto3" json:"serverIds,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
@@ -2116,7 +2380,7 @@
func (m *CompareArgs) String() string { return proto.CompactTextString(m) }
func (*CompareArgs) ProtoMessage()    {}
func (*CompareArgs) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{26}
   return fileDescriptor_32de24555f916688, []int{27}
}
func (m *CompareArgs) XXX_Unmarshal(b []byte) error {
@@ -2221,6 +2485,27 @@
   return ""
}
func (m *CompareArgs) GetCompareTarget() string {
   if m != nil {
      return m.CompareTarget
   }
   return ""
}
func (m *CompareArgs) GetIsCompareAll() bool {
   if m != nil {
      return m.IsCompareAll
   }
   return false
}
func (m *CompareArgs) GetServerIds() []string {
   if m != nil {
      return m.ServerIds
   }
   return nil
}
type CompareEvent struct {
   EventType            CompareEventType `protobuf:"varint,1,opt,name=eventType,proto3,enum=protomsg.CompareEventType" json:"eventType,omitempty"`
   Payload              []byte           `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
@@ -2233,7 +2518,7 @@
func (m *CompareEvent) String() string { return proto.CompactTextString(m) }
func (*CompareEvent) ProtoMessage()    {}
func (*CompareEvent) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{27}
   return fileDescriptor_32de24555f916688, []int{28}
}
func (m *CompareEvent) XXX_Unmarshal(b []byte) error {
@@ -2281,7 +2566,7 @@
func (m *SdkCompareEach) String() string { return proto.CompactTextString(m) }
func (*SdkCompareEach) ProtoMessage()    {}
func (*SdkCompareEach) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{28}
   return fileDescriptor_32de24555f916688, []int{29}
}
func (m *SdkCompareEach) XXX_Unmarshal(b []byte) error {
@@ -2334,7 +2619,7 @@
func (m *SdkCompareResult) String() string { return proto.CompactTextString(m) }
func (*SdkCompareResult) ProtoMessage()    {}
func (*SdkCompareResult) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{29}
   return fileDescriptor_32de24555f916688, []int{30}
}
func (m *SdkCompareResult) XXX_Unmarshal(b []byte) error {
@@ -2363,28 +2648,30 @@
}
type EventPush struct {
   Id                   string           `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string           `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   TimeStart            string           `protobuf:"bytes,3,opt,name=time_start,json=timeStart,proto3" json:"time_start,omitempty"`
   TimeEnd              string           `protobuf:"bytes,4,opt,name=time_end,json=timeEnd,proto3" json:"time_end,omitempty"`
   IsSatisfyAll         bool             `protobuf:"varint,5,opt,name=is_satisfy_all,json=isSatisfyAll,proto3" json:"is_satisfy_all,omitempty"`
   RuleText             string           `protobuf:"bytes,6,opt,name=rule_text,json=ruleText,proto3" json:"rule_text,omitempty"`
   Enable               bool             `protobuf:"varint,7,opt,name=enable,proto3" json:"enable,omitempty"`
   LinkType             string           `protobuf:"bytes,8,opt,name=link_type,json=linkType,proto3" json:"link_type,omitempty"`
   LinkDevice           string           `protobuf:"bytes,9,opt,name=link_device,json=linkDevice,proto3" json:"link_device,omitempty"`
   IpPorts              []*PushIpPort    `protobuf:"bytes,10,rep,name=ip_ports,json=ipPorts,proto3" json:"ip_ports,omitempty"`
   Urls                 []*PushUrl       `protobuf:"bytes,11,rep,name=urls,proto3" json:"urls,omitempty"`
   Rules                []*EventPushRule `protobuf:"bytes,12,rep,name=rules,proto3" json:"rules,omitempty"`
   XXX_NoUnkeyedLiteral struct{}         `json:"-"`
   XXX_unrecognized     []byte           `json:"-"`
   XXX_sizecache        int32            `json:"-"`
   Id                   string            `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string            `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   TimeStart            string            `protobuf:"bytes,3,opt,name=time_start,json=timeStart,proto3" json:"time_start,omitempty"`
   TimeEnd              string            `protobuf:"bytes,4,opt,name=time_end,json=timeEnd,proto3" json:"time_end,omitempty"`
   IsSatisfyAll         bool              `protobuf:"varint,5,opt,name=is_satisfy_all,json=isSatisfyAll,proto3" json:"is_satisfy_all,omitempty"`
   RuleText             string            `protobuf:"bytes,6,opt,name=rule_text,json=ruleText,proto3" json:"rule_text,omitempty"`
   Enable               bool              `protobuf:"varint,7,opt,name=enable,proto3" json:"enable,omitempty"`
   LinkType             string            `protobuf:"bytes,8,opt,name=link_type,json=linkType,proto3" json:"link_type,omitempty"`
   LinkDevice           string            `protobuf:"bytes,9,opt,name=link_device,json=linkDevice,proto3" json:"link_device,omitempty"`
   IpPorts              []*PushIpPort     `protobuf:"bytes,10,rep,name=ip_ports,json=ipPorts,proto3" json:"ip_ports,omitempty"`
   Urls                 []*PushUrl        `protobuf:"bytes,11,rep,name=urls,proto3" json:"urls,omitempty"`
   Rules                []*EventPushRule  `protobuf:"bytes,12,rep,name=rules,proto3" json:"rules,omitempty"`
   FiltRename           map[string]string `protobuf:"bytes,13,rep,name=filtRename,proto3" json:"filtRename,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   PushSet              []*PushSetMenu    `protobuf:"bytes,14,rep,name=push_set,json=pushSet,proto3" json:"push_set,omitempty"`
   XXX_NoUnkeyedLiteral struct{}          `json:"-"`
   XXX_unrecognized     []byte            `json:"-"`
   XXX_sizecache        int32             `json:"-"`
}
func (m *EventPush) Reset()         { *m = EventPush{} }
func (m *EventPush) String() string { return proto.CompactTextString(m) }
func (*EventPush) ProtoMessage()    {}
func (*EventPush) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{30}
   return fileDescriptor_32de24555f916688, []int{31}
}
func (m *EventPush) XXX_Unmarshal(b []byte) error {
@@ -2489,6 +2776,91 @@
   return nil
}
func (m *EventPush) GetFiltRename() map[string]string {
   if m != nil {
      return m.FiltRename
   }
   return nil
}
func (m *EventPush) GetPushSet() []*PushSetMenu {
   if m != nil {
      return m.PushSet
   }
   return nil
}
type PushSetMenu struct {
   Id                   string         `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string         `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   Checked              bool           `protobuf:"varint,3,opt,name=checked,proto3" json:"checked,omitempty"`
   Alias                string         `protobuf:"bytes,4,opt,name=alias,proto3" json:"alias,omitempty"`
   Children             []*PushSetMenu `protobuf:"bytes,5,rep,name=children,proto3" json:"children,omitempty"`
   XXX_NoUnkeyedLiteral struct{}       `json:"-"`
   XXX_unrecognized     []byte         `json:"-"`
   XXX_sizecache        int32          `json:"-"`
}
func (m *PushSetMenu) Reset()         { *m = PushSetMenu{} }
func (m *PushSetMenu) String() string { return proto.CompactTextString(m) }
func (*PushSetMenu) ProtoMessage()    {}
func (*PushSetMenu) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{32}
}
func (m *PushSetMenu) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_PushSetMenu.Unmarshal(m, b)
}
func (m *PushSetMenu) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_PushSetMenu.Marshal(b, m, deterministic)
}
func (m *PushSetMenu) XXX_Merge(src proto.Message) {
   xxx_messageInfo_PushSetMenu.Merge(m, src)
}
func (m *PushSetMenu) XXX_Size() int {
   return xxx_messageInfo_PushSetMenu.Size(m)
}
func (m *PushSetMenu) XXX_DiscardUnknown() {
   xxx_messageInfo_PushSetMenu.DiscardUnknown(m)
}
var xxx_messageInfo_PushSetMenu proto.InternalMessageInfo
func (m *PushSetMenu) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *PushSetMenu) GetName() string {
   if m != nil {
      return m.Name
   }
   return ""
}
func (m *PushSetMenu) GetChecked() bool {
   if m != nil {
      return m.Checked
   }
   return false
}
func (m *PushSetMenu) GetAlias() string {
   if m != nil {
      return m.Alias
   }
   return ""
}
func (m *PushSetMenu) GetChildren() []*PushSetMenu {
   if m != nil {
      return m.Children
   }
   return nil
}
type EventPushRule struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   TopicType            string   `protobuf:"bytes,2,opt,name=topic_type,json=topicType,proto3" json:"topic_type,omitempty"`
@@ -2506,7 +2878,7 @@
func (m *EventPushRule) String() string { return proto.CompactTextString(m) }
func (*EventPushRule) ProtoMessage()    {}
func (*EventPushRule) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{31}
   return fileDescriptor_32de24555f916688, []int{33}
}
func (m *EventPushRule) XXX_Unmarshal(b []byte) error {
@@ -2589,7 +2961,7 @@
func (m *PushIpPort) String() string { return proto.CompactTextString(m) }
func (*PushIpPort) ProtoMessage()    {}
func (*PushIpPort) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{32}
   return fileDescriptor_32de24555f916688, []int{34}
}
func (m *PushIpPort) XXX_Unmarshal(b []byte) error {
@@ -2643,7 +3015,7 @@
func (m *PushUrl) String() string { return proto.CompactTextString(m) }
func (*PushUrl) ProtoMessage()    {}
func (*PushUrl) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{33}
   return fileDescriptor_32de24555f916688, []int{35}
}
func (m *PushUrl) XXX_Unmarshal(b []byte) error {
@@ -2694,7 +3066,7 @@
func (m *PushAttach) String() string { return proto.CompactTextString(m) }
func (*PushAttach) ProtoMessage()    {}
func (*PushAttach) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{34}
   return fileDescriptor_32de24555f916688, []int{36}
}
func (m *PushAttach) XXX_Unmarshal(b []byte) error {
@@ -2764,6 +3136,7 @@
   Feature              string         `protobuf:"bytes,4,opt,name=feature,proto3" json:"feature,omitempty"`
   Action               DbAction       `protobuf:"varint,5,opt,name=action,proto3,enum=protomsg.DbAction" json:"action,omitempty"`
   Enable               int32          `protobuf:"varint,6,opt,name=enable,proto3" json:"enable,omitempty"`
   CarNo                string         `protobuf:"bytes,7,opt,name=carNo,proto3" json:"carNo,omitempty"`
   XXX_NoUnkeyedLiteral struct{}       `json:"-"`
   XXX_unrecognized     []byte         `json:"-"`
   XXX_sizecache        int32          `json:"-"`
@@ -2773,7 +3146,7 @@
func (m *EsPersonCacheChange) String() string { return proto.CompactTextString(m) }
func (*EsPersonCacheChange) ProtoMessage()    {}
func (*EsPersonCacheChange) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{35}
   return fileDescriptor_32de24555f916688, []int{37}
}
func (m *EsPersonCacheChange) XXX_Unmarshal(b []byte) error {
@@ -2836,6 +3209,274 @@
   return 0
}
func (m *EsPersonCacheChange) GetCarNo() string {
   if m != nil {
      return m.CarNo
   }
   return ""
}
type ClusterAndNodes struct {
   ClusterId            string   `protobuf:"bytes,1,opt,name=clusterId,proto3" json:"clusterId,omitempty"`
   ClusterName          string   `protobuf:"bytes,2,opt,name=clusterName,proto3" json:"clusterName,omitempty"`
   Nodes                []*Node  `protobuf:"bytes,3,rep,name=nodes,proto3" json:"nodes,omitempty"`
   VirtualIp            string   `protobuf:"bytes,4,opt,name=virtualIp,proto3" json:"virtualIp,omitempty"`
   Password             string   `protobuf:"bytes,5,opt,name=password,proto3" json:"password,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *ClusterAndNodes) Reset()         { *m = ClusterAndNodes{} }
func (m *ClusterAndNodes) String() string { return proto.CompactTextString(m) }
func (*ClusterAndNodes) ProtoMessage()    {}
func (*ClusterAndNodes) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{38}
}
func (m *ClusterAndNodes) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ClusterAndNodes.Unmarshal(m, b)
}
func (m *ClusterAndNodes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ClusterAndNodes.Marshal(b, m, deterministic)
}
func (m *ClusterAndNodes) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ClusterAndNodes.Merge(m, src)
}
func (m *ClusterAndNodes) XXX_Size() int {
   return xxx_messageInfo_ClusterAndNodes.Size(m)
}
func (m *ClusterAndNodes) XXX_DiscardUnknown() {
   xxx_messageInfo_ClusterAndNodes.DiscardUnknown(m)
}
var xxx_messageInfo_ClusterAndNodes proto.InternalMessageInfo
func (m *ClusterAndNodes) GetClusterId() string {
   if m != nil {
      return m.ClusterId
   }
   return ""
}
func (m *ClusterAndNodes) GetClusterName() string {
   if m != nil {
      return m.ClusterName
   }
   return ""
}
func (m *ClusterAndNodes) GetNodes() []*Node {
   if m != nil {
      return m.Nodes
   }
   return nil
}
func (m *ClusterAndNodes) GetVirtualIp() string {
   if m != nil {
      return m.VirtualIp
   }
   return ""
}
func (m *ClusterAndNodes) GetPassword() string {
   if m != nil {
      return m.Password
   }
   return ""
}
type Node struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   ClusterId            string   `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
   NodeName             string   `protobuf:"bytes,3,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"`
   NodeId               string   `protobuf:"bytes,4,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
   NodeIp               string   `protobuf:"bytes,5,opt,name=node_ip,json=nodeIp,proto3" json:"node_ip,omitempty"`
   CreateTime           string   `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
   IsDelete             bool     `protobuf:"varint,7,opt,name=isDelete,proto3" json:"isDelete,omitempty"`
   DriftState           string   `protobuf:"bytes,8,opt,name=drift_state,json=driftState,proto3" json:"drift_state,omitempty"`
   DeviceType           string   `protobuf:"bytes,9,opt,name=device_type,json=deviceType,proto3" json:"device_type,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Node) Reset()         { *m = Node{} }
func (m *Node) String() string { return proto.CompactTextString(m) }
func (*Node) ProtoMessage()    {}
func (*Node) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{39}
}
func (m *Node) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_Node.Unmarshal(m, b)
}
func (m *Node) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_Node.Marshal(b, m, deterministic)
}
func (m *Node) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Node.Merge(m, src)
}
func (m *Node) XXX_Size() int {
   return xxx_messageInfo_Node.Size(m)
}
func (m *Node) XXX_DiscardUnknown() {
   xxx_messageInfo_Node.DiscardUnknown(m)
}
var xxx_messageInfo_Node proto.InternalMessageInfo
func (m *Node) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *Node) GetClusterId() string {
   if m != nil {
      return m.ClusterId
   }
   return ""
}
func (m *Node) GetNodeName() string {
   if m != nil {
      return m.NodeName
   }
   return ""
}
func (m *Node) GetNodeId() string {
   if m != nil {
      return m.NodeId
   }
   return ""
}
func (m *Node) GetNodeIp() string {
   if m != nil {
      return m.NodeIp
   }
   return ""
}
func (m *Node) GetCreateTime() string {
   if m != nil {
      return m.CreateTime
   }
   return ""
}
func (m *Node) GetIsDelete() bool {
   if m != nil {
      return m.IsDelete
   }
   return false
}
func (m *Node) GetDriftState() string {
   if m != nil {
      return m.DriftState
   }
   return ""
}
func (m *Node) GetDeviceType() string {
   if m != nil {
      return m.DeviceType
   }
   return ""
}
type Dic struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
   Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
   Type                 string   `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"`
   Description          string   `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
   Sort                 int32    `protobuf:"varint,6,opt,name=sort,proto3" json:"sort,omitempty"`
   ParentId             string   `protobuf:"bytes,7,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Dic) Reset()         { *m = Dic{} }
func (m *Dic) String() string { return proto.CompactTextString(m) }
func (*Dic) ProtoMessage()    {}
func (*Dic) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{40}
}
func (m *Dic) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_Dic.Unmarshal(m, b)
}
func (m *Dic) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_Dic.Marshal(b, m, deterministic)
}
func (m *Dic) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Dic.Merge(m, src)
}
func (m *Dic) XXX_Size() int {
   return xxx_messageInfo_Dic.Size(m)
}
func (m *Dic) XXX_DiscardUnknown() {
   xxx_messageInfo_Dic.DiscardUnknown(m)
}
var xxx_messageInfo_Dic proto.InternalMessageInfo
func (m *Dic) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *Dic) GetValue() string {
   if m != nil {
      return m.Value
   }
   return ""
}
func (m *Dic) GetName() string {
   if m != nil {
      return m.Name
   }
   return ""
}
func (m *Dic) GetType() string {
   if m != nil {
      return m.Type
   }
   return ""
}
func (m *Dic) GetDescription() string {
   if m != nil {
      return m.Description
   }
   return ""
}
func (m *Dic) GetSort() int32 {
   if m != nil {
      return m.Sort
   }
   return 0
}
func (m *Dic) GetParentId() string {
   if m != nil {
      return m.ParentId
   }
   return ""
}
func init() {
   proto.RegisterEnum("protomsg.TableChanged", TableChanged_name, TableChanged_value)
   proto.RegisterEnum("protomsg.DbAction", DbAction_name, DbAction_value)
@@ -2843,206 +3484,260 @@
   proto.RegisterEnum("protomsg.EsCacheChanged", EsCacheChanged_name, EsCacheChanged_value)
   proto.RegisterType((*Area)(nil), "protomsg.Area")
   proto.RegisterType((*Camera)(nil), "protomsg.Camera")
   proto.RegisterType((*Sensor)(nil), "protomsg.Sensor")
   proto.RegisterType((*CameraLink)(nil), "protomsg.CameraLink")
   proto.RegisterType((*CameraAndTaskInfo)(nil), "protomsg.CameraAndTaskInfo")
   proto.RegisterType((*Task)(nil), "protomsg.Task")
   proto.RegisterType((*TaskSdkInfo)(nil), "protomsg.TaskSdkInfo")
   proto.RegisterType((*SdkRun)(nil), "protomsg.SdkRun")
   proto.RegisterType((*TaskSdkRun)(nil), "protomsg.TaskSdkRun")
   proto.RegisterType((*CameraTask)(nil), "protomsg.CameraTask")
   proto.RegisterType((*CameraTimerule)(nil), "protomsg.CameraTimerule")
   proto.RegisterType((*DayCtl)(nil), "protomsg.DayCtl")
   proto.RegisterType((*TimeRange)(nil), "protomsg.TimeRange")
   proto.RegisterType((*Polygon)(nil), "protomsg.Polygon")
   proto.RegisterType((*CameraTaskArgs)(nil), "protomsg.CameraTaskArgs")
   proto.RegisterType((*TaskGroupArgs)(nil), "protomsg.TaskGroupArgs")
   proto.RegisterType((*CameraInfo)(nil), "protomsg.CameraInfo")
   proto.RegisterType((*CameraAndRules)(nil), "protomsg.CameraAndRules")
   proto.RegisterType((*GroupRule)(nil), "protomsg.GroupRule")
   proto.RegisterType((*GroupRuleSdks)(nil), "protomsg.GroupRuleSdks")
   proto.RegisterType((*Rule)(nil), "protomsg.Rule")
   proto.RegisterType((*RuleTemplate)(nil), "protomsg.RuleTemplate")
   proto.RegisterType((*RuleTemplateList)(nil), "protomsg.RuleTemplateList")
   proto.RegisterType((*TemplateArg)(nil), "protomsg.TemplateArg")
   proto.RegisterType((*SdkSetBase)(nil), "protomsg.SdkSetBase")
   proto.RegisterType((*Sdk)(nil), "protomsg.Sdk")
   proto.RegisterType((*TaskSdkRule)(nil), "protomsg.TaskSdkRule")
   proto.RegisterType((*SdkRuleSet)(nil), "protomsg.SdkRuleSet")
   proto.RegisterType((*SdkRule)(nil), "protomsg.SdkRule")
   proto.RegisterType((*SdkArg)(nil), "protomsg.SdkArg")
   proto.RegisterType((*SdkChanSet)(nil), "protomsg.SdkChanSet")
   proto.RegisterType((*DbChangeMessage)(nil), "protomsg.DbChangeMessage")
   proto.RegisterType((*CameraPolygon)(nil), "protomsg.CameraPolygon")
   proto.RegisterType((*CameraPolygonRelation)(nil), "protomsg.CameraPolygonRelation")
   proto.RegisterType((*VideotapeInfo)(nil), "protomsg.VideotapeInfo")
   proto.RegisterType((*Voice)(nil), "protomsg.Voice")
   proto.RegisterType((*VoiceList)(nil), "protomsg.VoiceList")
   proto.RegisterType((*CompareArgs)(nil), "protomsg.CompareArgs")
   proto.RegisterType((*CompareEvent)(nil), "protomsg.CompareEvent")
   proto.RegisterType((*SdkCompareEach)(nil), "protomsg.SdkCompareEach")
   proto.RegisterType((*SdkCompareResult)(nil), "protomsg.SdkCompareResult")
   proto.RegisterType((*EventPush)(nil), "protomsg.EventPush")
   proto.RegisterMapType((map[string]string)(nil), "protomsg.EventPush.FiltRenameEntry")
   proto.RegisterType((*PushSetMenu)(nil), "protomsg.PushSetMenu")
   proto.RegisterType((*EventPushRule)(nil), "protomsg.EventPushRule")
   proto.RegisterType((*PushIpPort)(nil), "protomsg.PushIpPort")
   proto.RegisterType((*PushUrl)(nil), "protomsg.PushUrl")
   proto.RegisterType((*PushAttach)(nil), "protomsg.PushAttach")
   proto.RegisterType((*EsPersonCacheChange)(nil), "protomsg.EsPersonCacheChange")
   proto.RegisterType((*ClusterAndNodes)(nil), "protomsg.ClusterAndNodes")
   proto.RegisterType((*Node)(nil), "protomsg.Node")
   proto.RegisterType((*Dic)(nil), "protomsg.Dic")
}
func init() { proto.RegisterFile("protomsg.proto", fileDescriptor_32de24555f916688) }
var fileDescriptor_32de24555f916688 = []byte{
   // 2583 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x58, 0xcb, 0x6f, 0x1c, 0xc7,
   0xd1, 0xd7, 0xbe, 0x77, 0x6a, 0x77, 0xa9, 0xd1, 0x48, 0x9f, 0xbd, 0x92, 0x5f, 0xf4, 0x7c, 0x32,
   0xac, 0x4f, 0xf0, 0xe7, 0x04, 0xb4, 0x0f, 0x41, 0x0e, 0x01, 0x68, 0x51, 0x0a, 0x16, 0xb0, 0x15,
   0x66, 0x48, 0x29, 0xb7, 0x0c, 0x9a, 0x3b, 0xcd, 0xe5, 0x80, 0xcd, 0x99, 0x41, 0xf7, 0x0c, 0x6d,
   0x1e, 0xf2, 0x07, 0xe4, 0x94, 0xbf, 0x28, 0x48, 0xfe, 0x80, 0x1c, 0x73, 0xc9, 0xc9, 0xd7, 0x00,
   0x41, 0x4e, 0xb9, 0x26, 0x40, 0x50, 0x55, 0xdd, 0xf3, 0xd8, 0xa5, 0x6c, 0x9d, 0xb6, 0xeb, 0x57,
   0x3d, 0xdd, 0xd5, 0xf5, 0xae, 0x85, 0xbd, 0x42, 0xe7, 0x65, 0x7e, 0x65, 0x36, 0x9f, 0xd3, 0x22,
   0x98, 0x3a, 0xfa, 0x11, 0x9c, 0x09, 0x23, 0x19, 0x0d, 0x5f, 0xc0, 0xf0, 0x50, 0x4b, 0x11, 0xec,
   0x41, 0x3f, 0x4d, 0x96, 0xbd, 0xfd, 0xde, 0x93, 0x51, 0xd4, 0x4f, 0x93, 0xe0, 0x11, 0x4c, 0x0b,
   0xa1, 0x65, 0x56, 0xa6, 0xc9, 0xb2, 0x4f, 0x68, 0x4d, 0x07, 0x01, 0x0c, 0x33, 0x71, 0x25, 0x97,
   0x83, 0xfd, 0xde, 0x13, 0x2f, 0xa2, 0x75, 0xf8, 0xef, 0x01, 0x8c, 0x9f, 0x89, 0x2b, 0xa9, 0xdb,
   0x47, 0x79, 0x74, 0x94, 0xdb, 0xde, 0x6f, 0xb6, 0x07, 0x0f, 0x60, 0x24, 0x54, 0x2a, 0x8c, 0x3d,
   0x83, 0x89, 0xe0, 0x63, 0x98, 0x9b, 0x4c, 0x14, 0xe6, 0x22, 0x2f, 0xe3, 0x4a, 0xab, 0xe5, 0x90,
   0x98, 0x33, 0x87, 0xbd, 0xd2, 0x0a, 0x0f, 0x2b, 0x6f, 0x0a, 0xb9, 0x1c, 0x91, 0x4c, 0xb4, 0x46,
   0x4c, 0x24, 0x89, 0x5e, 0x8e, 0xf9, 0x02, 0x5c, 0x07, 0xef, 0x83, 0xa7, 0xf2, 0x6c, 0x93, 0x96,
   0x55, 0x22, 0x97, 0x93, 0xfd, 0xde, 0x93, 0x7e, 0xd4, 0x00, 0xf8, 0x3a, 0x25, 0x4a, 0x66, 0x4e,
   0x89, 0x59, 0xd3, 0x28, 0xda, 0xb9, 0xca, 0x73, 0xbd, 0xf4, 0xe8, 0x0a, 0x26, 0xf0, 0x0e, 0x5d,
   0x9a, 0x62, 0x09, 0x7c, 0x07, 0xae, 0xe9, 0xa1, 0xc5, 0x72, 0x66, 0x1f, 0x5a, 0xe0, 0x9e, 0x22,
   0xd7, 0xe5, 0x72, 0xce, 0xb2, 0xe1, 0x1a, 0x6f, 0xaa, 0x8c, 0xd4, 0xa4, 0x80, 0x05, 0xed, 0xac,
   0x69, 0xd6, 0xb1, 0x31, 0xdf, 0xe6, 0x3a, 0x59, 0xee, 0x31, 0xcf, 0xd1, 0x28, 0xc5, 0x99, 0x16,
   0x59, 0xb2, 0xbc, 0xcb, 0x0a, 0x22, 0x02, 0xbf, 0xd0, 0xd2, 0x48, 0x7d, 0x2d, 0x93, 0xa5, 0xcf,
   0x5f, 0x38, 0x3a, 0xf8, 0x00, 0x20, 0x35, 0xb1, 0xae, 0xb2, 0x2c, 0xcd, 0x36, 0xcb, 0x7b, 0xfb,
   0xbd, 0x27, 0xd3, 0xc8, 0x4b, 0x4d, 0xc4, 0x00, 0xb2, 0x75, 0x95, 0xc5, 0x32, 0x13, 0x67, 0x4a,
   0x2e, 0x03, 0x66, 0xeb, 0x2a, 0x7b, 0x4e, 0x40, 0xf0, 0x10, 0xa6, 0xc8, 0x26, 0xdd, 0xde, 0x27,
   0xf9, 0x27, 0xba, 0xca, 0x4e, 0x51, 0xbd, 0x21, 0x2c, 0x90, 0x45, 0xd7, 0xe8, 0x38, 0x4d, 0x96,
   0x0f, 0xd8, 0x2c, 0xba, 0xca, 0x4e, 0x08, 0x5b, 0x25, 0xe1, 0x37, 0x00, 0x6c, 0xfd, 0xaf, 0xd3,
   0xec, 0x12, 0xef, 0x5a, 0x13, 0x15, 0xa7, 0x89, 0xb1, 0x9e, 0xe0, 0x31, 0xb2, 0x4a, 0x4c, 0xb0,
   0x0f, 0x73, 0x95, 0x66, 0x97, 0x71, 0x29, 0xcc, 0x65, 0x6c, 0xfd, 0xcb, 0x8b, 0x00, 0xb1, 0x53,
   0x61, 0x2e, 0x57, 0x49, 0xb8, 0x86, 0x7b, 0x7c, 0xdc, 0x61, 0x96, 0x10, 0x94, 0x9d, 0xe7, 0xc1,
   0x13, 0x18, 0xf3, 0x19, 0x74, 0xe2, 0xec, 0xc0, 0xff, 0xbc, 0xf6, 0x70, 0xde, 0x1c, 0x59, 0x7e,
   0xf0, 0x18, 0x46, 0x78, 0xb6, 0x59, 0xf6, 0xf7, 0x07, 0x4f, 0x66, 0x07, 0x7b, 0xcd, 0x46, 0x3c,
   0x2c, 0x62, 0x66, 0xf8, 0x7d, 0x0f, 0x86, 0x48, 0x07, 0xef, 0xc0, 0x18, 0x91, 0xda, 0x69, 0x2d,
   0x85, 0xda, 0xc6, 0x55, 0xcb, 0x79, 0x6b, 0x3a, 0x78, 0x0f, 0xbc, 0xb5, 0x96, 0xa2, 0x94, 0xb1,
   0x28, 0xad, 0x13, 0x4f, 0x19, 0x38, 0x2c, 0x5b, 0xcc, 0xb3, 0x1b, 0xeb, 0xc4, 0x96, 0xf9, 0xd5,
   0x0d, 0x32, 0xab, 0x22, 0xb1, 0x5f, 0x8e, 0xac, 0x4b, 0x10, 0x70, 0x58, 0xa2, 0x28, 0xd6, 0x42,
   0x63, 0xb2, 0x90, 0xa5, 0xd0, 0x3c, 0xa9, 0x89, 0x85, 0x12, 0xfa, 0x8a, 0xbc, 0x79, 0x1a, 0x4d,
   0x52, 0x73, 0x88, 0x24, 0xb2, 0x12, 0xa9, 0xe2, 0x73, 0x25, 0x36, 0xe4, 0xcb, 0xd3, 0x68, 0x92,
   0x48, 0xf5, 0x42, 0x89, 0x4d, 0x78, 0x0a, 0x33, 0x7c, 0xe0, 0x49, 0xc2, 0x0a, 0x0c, 0x61, 0x88,
   0xf2, 0x5b, 0xf5, 0x6d, 0x6b, 0x85, 0x78, 0xc1, 0xc7, 0x30, 0x34, 0x49, 0xad, 0xb9, 0x45, 0xb3,
   0xe7, 0x24, 0xb9, 0x8c, 0x88, 0x15, 0xfe, 0x1c, 0xc6, 0x48, 0x54, 0x59, 0xf0, 0x3f, 0x30, 0x4e,
   0x8b, 0x75, 0x5c, 0x2b, 0x6e, 0x94, 0x16, 0xeb, 0x55, 0x82, 0x12, 0x99, 0xe4, 0x92, 0x7d, 0x89,
   0xf5, 0x36, 0x31, 0xc9, 0x25, 0xfa, 0x52, 0xf8, 0x1a, 0xc0, 0x4a, 0x84, 0xdf, 0xbf, 0x8d, 0x40,
   0x8f, 0x3b, 0x02, 0xf9, 0x5d, 0x81, 0xaa, 0xcc, 0xca, 0xf4, 0xd7, 0xbe, 0x73, 0x40, 0xb2, 0xe8,
   0x76, 0x0a, 0x42, 0x83, 0x38, 0x87, 0x74, 0xa6, 0x74, 0xfe, 0x18, 0xbc, 0x0b, 0x13, 0xe7, 0x89,
   0x83, 0xc6, 0xfe, 0x2b, 0xfa, 0xaa, 0x4c, 0xaf, 0x64, 0xac, 0x2b, 0x25, 0x9d, 0x19, 0x11, 0x88,
   0x2a, 0x25, 0x29, 0x9e, 0xa4, 0x58, 0x97, 0xcc, 0x65, 0x3b, 0x7a, 0x84, 0x10, 0xfb, 0x63, 0x98,
   0x33, 0x3b, 0x91, 0xd7, 0xe9, 0x5a, 0xda, 0xdc, 0x34, 0x23, 0xec, 0x88, 0xa0, 0x8e, 0xe1, 0x26,
   0x1d, 0xc3, 0x05, 0x1f, 0xc1, 0xcc, 0xfa, 0x48, 0xcb, 0xac, 0xc0, 0x10, 0x6d, 0x68, 0xfc, 0xc4,
   0xeb, 0xf8, 0x49, 0x00, 0x43, 0x83, 0x29, 0x08, 0x38, 0x05, 0xe1, 0x1a, 0xdf, 0x97, 0x9a, 0xf8,
   0xbc, 0x52, 0x8a, 0x72, 0xd5, 0x34, 0x1a, 0xa7, 0xe6, 0x45, 0xa5, 0xd4, 0x4e, 0x1c, 0xce, 0x77,
   0xe2, 0xf0, 0xd7, 0xb0, 0x67, 0xb5, 0x9a, 0x5e, 0x49, 0x7c, 0xe8, 0x5b, 0x25, 0xf7, 0x8e, 0xde,
   0x06, 0x5d, 0xbd, 0x85, 0x2f, 0x61, 0x7c, 0x24, 0x6e, 0x9e, 0x95, 0x2a, 0xf0, 0x61, 0x90, 0x88,
   0x1b, 0x5b, 0x73, 0x70, 0x19, 0x1c, 0x00, 0xf0, 0x87, 0x22, 0xdb, 0x48, 0x6b, 0xf1, 0xfb, 0x2d,
   0xaf, 0xc0, 0x33, 0x90, 0x15, 0xd1, 0xf9, 0xb4, 0x0c, 0xbf, 0x00, 0xaf, 0xc6, 0x31, 0x6b, 0x9a,
   0x52, 0xe8, 0xd2, 0xf9, 0x23, 0x11, 0x78, 0x91, 0xcc, 0x9c, 0xdd, 0x71, 0x19, 0xbe, 0x86, 0xc9,
   0x71, 0xae, 0x6e, 0x36, 0x79, 0xf6, 0x56, 0x0f, 0xfa, 0x14, 0xc6, 0x45, 0x9e, 0x66, 0x25, 0x96,
   0x2b, 0x94, 0xe9, 0x6e, 0x23, 0xd3, 0x31, 0xe2, 0x91, 0x65, 0x87, 0xeb, 0x5a, 0x5f, 0xc2, 0x5c,
   0x1e, 0xea, 0x8d, 0xe9, 0x7a, 0x5e, 0x6f, 0xcb, 0xf3, 0xbe, 0x04, 0x8f, 0x74, 0x2f, 0xf4, 0xc6,
   0x39, 0xf8, 0xbb, 0xdd, 0x20, 0xf8, 0xa5, 0xce, 0xab, 0x02, 0x0f, 0xe2, 0xd4, 0x83, 0xab, 0xf0,
   0x1a, 0x16, 0x1d, 0x56, 0xdb, 0x81, 0x7b, 0x1d, 0x07, 0xfe, 0x12, 0x66, 0x1b, 0xdc, 0x45, 0x96,
   0x30, 0xbb, 0x0a, 0xa5, 0x23, 0xd0, 0x2a, 0x11, 0x6c, 0xdc, 0xd2, 0xb4, 0x7c, 0x6b, 0xd0, 0xf6,
   0xad, 0xf0, 0x2f, 0x3d, 0xf0, 0xea, 0x2f, 0xd0, 0x7b, 0xf9, 0xec, 0xfa, 0xd6, 0x09, 0xd1, 0x2b,
   0xaa, 0x44, 0xcc, 0x2a, 0xe5, 0x77, 0xa5, 0x55, 0xa4, 0x47, 0xc8, 0xa9, 0xfc, 0xae, 0x44, 0xe7,
   0xa6, 0x44, 0x16, 0x2b, 0x79, 0x2d, 0x15, 0x5d, 0x32, 0x8a, 0x80, 0xa0, 0xaf, 0x11, 0xc1, 0xf4,
   0xcd, 0x02, 0x0f, 0xb7, 0xd3, 0x37, 0xc9, 0xca, 0x4c, 0xca, 0x32, 0xb2, 0x8c, 0xeb, 0x6e, 0x00,
   0xb3, 0x8c, 0x2c, 0xa9, 0x62, 0xfd, 0x2f, 0x2c, 0x12, 0x79, 0x2e, 0xb3, 0xb5, 0x8c, 0x4d, 0x29,
   0x4a, 0x97, 0x4c, 0xe7, 0x16, 0x3c, 0x41, 0x2c, 0xfc, 0x47, 0x1f, 0x86, 0xd1, 0x6d, 0x2e, 0xfd,
   0x18, 0xf6, 0xac, 0xc9, 0xba, 0x05, 0x6a, 0xbe, 0xae, 0x4d, 0xbb, 0xda, 0x4a, 0x29, 0x83, 0x2d,
   0xc3, 0x7e, 0x00, 0x50, 0xb0, 0x7f, 0x21, 0x97, 0x53, 0x87, 0x67, 0x91, 0x55, 0x82, 0x79, 0x13,
   0x13, 0x64, 0x9a, 0x58, 0xc1, 0x47, 0x26, 0xc1, 0x23, 0x43, 0x58, 0x20, 0x2c, 0xf4, 0x26, 0xe6,
   0xe6, 0xc8, 0x26, 0x0d, 0x93, 0xa0, 0xe1, 0x0f, 0xa9, 0x45, 0x7a, 0x04, 0xd3, 0xbc, 0x90, 0x5a,
   0x94, 0xb9, 0xa6, 0xa4, 0xe1, 0x45, 0x35, 0x8d, 0xcf, 0x76, 0x6b, 0x56, 0xcb, 0x94, 0xe5, 0x76,
   0xa0, 0xab, 0xe6, 0xee, 0x92, 0x6b, 0xa1, 0x2a, 0x4e, 0x20, 0xf5, 0x25, 0xaf, 0x11, 0xba, 0x35,
   0x8b, 0x50, 0x17, 0xa0, 0x64, 0xfc, 0x6d, 0x5a, 0x5e, 0xc4, 0x85, 0x96, 0xb6, 0xef, 0x99, 0x21,
   0xf8, 0x9b, 0xb4, 0xbc, 0x38, 0xd6, 0x5d, 0x9f, 0x98, 0x77, 0x7c, 0x22, 0xfc, 0x73, 0x1f, 0x06,
   0x27, 0xc9, 0x6e, 0x66, 0x6e, 0x4a, 0x48, 0xff, 0x4d, 0x25, 0x64, 0xd0, 0x29, 0x21, 0x8e, 0x45,
   0x41, 0x3a, 0xac, 0x59, 0x2f, 0x31, 0x4e, 0x1f, 0xc3, 0x90, 0x42, 0x69, 0x74, 0x4b, 0xad, 0x38,
   0xd4, 0x9b, 0x88, 0xb8, 0xf8, 0xba, 0x74, 0x9d, 0x67, 0xae, 0x5d, 0xc4, 0x35, 0xa6, 0x08, 0x6c,
   0x38, 0x59, 0xa3, 0xb8, 0x44, 0x2f, 0xb5, 0x35, 0x1c, 0x73, 0x8d, 0x55, 0x25, 0x30, 0x84, 0x09,
   0xa7, 0x95, 0xa3, 0x69, 0x03, 0xab, 0xd1, 0xe6, 0x68, 0xda, 0xd0, 0xe9, 0x02, 0x60, 0xab, 0x0b,
   0x68, 0x82, 0x6c, 0xb6, 0x5d, 0xe8, 0xeb, 0xa2, 0xc0, 0x7d, 0x64, 0x5d, 0xcd, 0xf3, 0xba, 0x9a,
   0x93, 0xdb, 0xda, 0xae, 0x65, 0xb5, 0x1d, 0xf4, 0xcd, 0xc9, 0xfd, 0xce, 0xc9, 0x3f, 0x25, 0xbd,
   0x51, 0x88, 0xdb, 0x34, 0xf6, 0x60, 0xab, 0x98, 0x2a, 0x79, 0x22, 0xcb, 0xa8, 0xde, 0x15, 0x56,
   0x00, 0x0d, 0x4e, 0xb9, 0x35, 0x69, 0xae, 0xb3, 0x3e, 0xfb, 0x00, 0xd8, 0x62, 0x5d, 0xf3, 0x7d,
   0xea, 0x22, 0x98, 0x2f, 0xba, 0xb7, 0x73, 0x91, 0x0b, 0x62, 0xe7, 0x69, 0xc3, 0xc6, 0xd3, 0xc2,
   0xdf, 0xc1, 0xc4, 0xbd, 0x71, 0xdb, 0x5b, 0x76, 0x22, 0xa4, 0xff, 0xc3, 0x11, 0x32, 0xd8, 0x8a,
   0x90, 0x1d, 0xe7, 0x1f, 0xee, 0x38, 0x7f, 0xf8, 0xf7, 0x1e, 0xf5, 0x37, 0x87, 0x7a, 0xd3, 0x4c,
   0x29, 0xbd, 0xf6, 0x94, 0x72, 0x5b, 0x85, 0x70, 0x63, 0x89, 0x1d, 0x89, 0xdc, 0x58, 0x72, 0x55,
   0x19, 0x7e, 0xdb, 0x34, 0xa2, 0x35, 0x62, 0x55, 0x96, 0xba, 0xbe, 0x8f, 0xd6, 0x78, 0x0b, 0x17,
   0x3c, 0x76, 0x48, 0x26, 0x6c, 0x0e, 0x13, 0x95, 0x2a, 0xad, 0xa8, 0xec, 0x9b, 0x73, 0x0b, 0x72,
   0xa0, 0xfe, 0x1f, 0xf8, 0x6e, 0x53, 0xfd, 0x66, 0xf6, 0xd4, 0xbb, 0x16, 0xff, 0x95, 0x7b, 0xba,
   0xd3, 0xb4, 0xd7, 0xd2, 0xf4, 0x57, 0x64, 0xe0, 0x67, 0x17, 0x22, 0x43, 0x03, 0xb7, 0x63, 0xae,
   0xb7, 0x13, 0x73, 0xeb, 0x0b, 0x91, 0xc5, 0x59, 0x75, 0x65, 0xa7, 0xc1, 0x09, 0xd2, 0x2f, 0xab,
   0xab, 0xf0, 0x0f, 0x3d, 0xb8, 0x7b, 0x74, 0x86, 0x67, 0x6c, 0xe4, 0x37, 0xd2, 0x18, 0xb1, 0x91,
   0xc1, 0x67, 0xd8, 0x7f, 0xa3, 0x07, 0xe2, 0x31, 0x7b, 0x07, 0xef, 0xb4, 0x6b, 0xda, 0x99, 0x92,
   0xbc, 0x39, 0x89, 0x78, 0x93, 0x35, 0x72, 0xbf, 0x36, 0xf2, 0x53, 0x18, 0x8b, 0x75, 0x99, 0xe6,
   0x19, 0x69, 0x73, 0xef, 0x20, 0x68, 0x3e, 0x3f, 0x3a, 0x3b, 0x24, 0x4e, 0x64, 0x77, 0x50, 0x2c,
   0x67, 0xe7, 0xb9, 0xb5, 0x23, 0xad, 0xc3, 0x7f, 0xf6, 0x60, 0xc1, 0x55, 0xf8, 0x4d, 0x35, 0xfe,
   0x07, 0xdb, 0xc1, 0x5b, 0xa6, 0xdb, 0x60, 0x09, 0x13, 0x9b, 0xbd, 0x5d, 0xca, 0xb1, 0x24, 0xf6,
   0x79, 0xa5, 0x4e, 0x37, 0x1b, 0xa9, 0x63, 0x95, 0x66, 0xae, 0x12, 0xcd, 0x2c, 0xf6, 0x75, 0x9a,
   0xc9, 0xe0, 0x13, 0xd8, 0x4b, 0x52, 0x2d, 0x49, 0x60, 0xde, 0xc4, 0x86, 0x5e, 0xd4, 0x28, 0x6d,
   0x73, 0x2e, 0x34, 0x69, 0xb9, 0xd0, 0x4e, 0x21, 0x9b, 0x92, 0xf2, 0xbb, 0x85, 0xec, 0x8f, 0x3d,
   0x58, 0xbc, 0x4e, 0x13, 0x99, 0x97, 0xa2, 0x90, 0xd4, 0xe8, 0x3f, 0x82, 0xa9, 0x34, 0x47, 0xa2,
   0x14, 0x75, 0xb4, 0xd6, 0x34, 0xf2, 0xdc, 0x53, 0x77, 0x9e, 0xde, 0xa4, 0x94, 0x6e, 0x23, 0x8c,
   0x41, 0x7e, 0xb5, 0x59, 0x71, 0x25, 0x1b, 0x44, 0x4c, 0xe0, 0x49, 0xd7, 0x78, 0xed, 0x2b, 0xad,
   0xdc, 0x1c, 0xe3, 0x68, 0x3c, 0x89, 0xf2, 0x03, 0xd6, 0xb0, 0x01, 0x9e, 0xc4, 0x54, 0xe7, 0x91,
   0x76, 0x7c, 0x0f, 0xff, 0xd3, 0x87, 0xd9, 0xb3, 0xfc, 0xaa, 0x10, 0x5a, 0x52, 0x3b, 0x43, 0x63,
   0xd7, 0x99, 0x92, 0x2b, 0x9a, 0x1d, 0x07, 0x3c, 0x76, 0x31, 0x1d, 0x3c, 0x05, 0x7f, 0xcd, 0x5b,
   0x4f, 0x2f, 0xb4, 0x34, 0x17, 0xb9, 0xe2, 0x57, 0xf4, 0xa3, 0x1d, 0x3c, 0xd8, 0x87, 0xd9, 0xb9,
   0x58, 0xcb, 0x17, 0x52, 0x94, 0x95, 0x66, 0x7b, 0xce, 0xa3, 0x36, 0x84, 0xef, 0xe2, 0x39, 0x71,
   0x48, 0xd7, 0x30, 0x11, 0xbc, 0x0f, 0x5e, 0xa9, 0xa5, 0x7c, 0x99, 0x27, 0x92, 0x4b, 0x89, 0x17,
   0x35, 0x00, 0xbd, 0x40, 0x9c, 0xb9, 0x77, 0xd1, 0x3a, 0xf8, 0x10, 0x5a, 0xed, 0x8b, 0x35, 0x60,
   0xbb, 0xa1, 0xf9, 0x10, 0xc0, 0x48, 0xa1, 0xd7, 0x17, 0xa7, 0x5c, 0x4a, 0xf0, 0xcb, 0x16, 0x82,
   0xfc, 0x34, 0x2b, 0x2a, 0x0e, 0x6a, 0x57, 0x49, 0x1a, 0x04, 0xf9, 0xeb, 0x5c, 0x29, 0x76, 0x16,
   0x5b, 0x4a, 0x5a, 0x08, 0x69, 0x3b, 0xaf, 0xf4, 0xba, 0x2e, 0x26, 0x4c, 0x05, 0x8f, 0x61, 0x21,
   0x32, 0xa1, 0x6e, 0xdc, 0x98, 0x6e, 0x8b, 0x72, 0x17, 0x0c, 0xcf, 0x60, 0x6e, 0xd5, 0xff, 0xfc,
   0x5a, 0x66, 0x65, 0xf0, 0x33, 0xf0, 0x24, 0x2e, 0x4e, 0x5d, 0x22, 0xd8, 0x3b, 0x78, 0xd4, 0x1a,
   0xb5, 0x5b, 0x5b, 0x71, 0x47, 0xd4, 0x6c, 0xa6, 0x30, 0x11, 0x37, 0x2a, 0x17, 0x6c, 0x94, 0x79,
   0xe4, 0xc8, 0xf0, 0xb7, 0xb0, 0x87, 0x99, 0xc6, 0x7e, 0x2b, 0xd6, 0x17, 0x3b, 0x31, 0xb9, 0xc4,
   0x26, 0xf6, 0x4c, 0xc9, 0x3a, 0x22, 0x1d, 0x19, 0x84, 0x30, 0xb7, 0xb6, 0x3d, 0x59, 0xe7, 0xd6,
   0x90, 0xfd, 0xa8, 0x83, 0x85, 0x11, 0xf8, 0xcd, 0xf9, 0x91, 0x34, 0x95, 0x2a, 0x83, 0x5f, 0xc0,
   0x62, 0xdd, 0x06, 0xc8, 0x99, 0x66, 0x07, 0xcb, 0x4e, 0x31, 0x6a, 0x89, 0x14, 0x75, 0xb7, 0x87,
   0xbf, 0x1f, 0x80, 0x47, 0xcf, 0x3c, 0xae, 0xcc, 0xc5, 0x5b, 0xcd, 0x09, 0x1f, 0xd8, 0xf9, 0x85,
   0x67, 0x10, 0x8e, 0x21, 0x1a, 0x55, 0x4e, 0x68, 0x0e, 0x79, 0x08, 0x34, 0x06, 0xc5, 0x38, 0x8c,
   0xd8, 0x34, 0x82, 0xf4, 0xf3, 0x8c, 0x7a, 0xce, 0xd4, 0xc4, 0x46, 0x94, 0xa9, 0x39, 0xbf, 0x89,
   0x85, 0xe2, 0x88, 0x9a, 0x46, 0xf3, 0xd4, 0x9c, 0x30, 0x78, 0xa8, 0x14, 0xe6, 0x2d, 0xea, 0xc1,
   0xa8, 0xaf, 0x1e, 0xdb, 0xff, 0x7f, 0x2a, 0x25, 0xa9, 0xad, 0x6e, 0xea, 0xfe, 0xa4, 0x53, 0xf7,
   0xdf, 0x03, 0x8f, 0xa7, 0xbc, 0xa6, 0x23, 0x9c, 0xd2, 0x88, 0x87, 0x16, 0xfb, 0x08, 0x66, 0xc4,
   0xb4, 0x53, 0xaa, 0xd7, 0x4c, 0x80, 0x76, 0x48, 0xfd, 0x09, 0x4c, 0xd3, 0x22, 0x2e, 0x72, 0x5d,
   0x9a, 0x25, 0x6c, 0x77, 0x0d, 0xa8, 0x98, 0x55, 0x71, 0x9c, 0xeb, 0x32, 0x9a, 0xa4, 0xf4, 0x6b,
   0x82, 0x4f, 0x60, 0x58, 0x69, 0x65, 0x96, 0xb3, 0xed, 0xca, 0x8f, 0x9b, 0x5f, 0x69, 0x15, 0x11,
   0x3b, 0xf8, 0x7f, 0xd7, 0x21, 0xcc, 0xb7, 0xc7, 0x9e, 0x5a, 0xe5, 0xad, 0x3e, 0x21, 0xfc, 0xbe,
   0x07, 0x8b, 0x0e, 0x63, 0xc7, 0x1e, 0xa8, 0xfb, 0xbc, 0x48, 0xd7, 0xed, 0xbf, 0x1d, 0x3c, 0x42,
   0xe8, 0xa1, 0x38, 0x93, 0x12, 0x5b, 0xe8, 0x4d, 0x3d, 0x93, 0x22, 0x80, 0x75, 0xbe, 0xdd, 0x32,
   0x0c, 0x7f, 0xac, 0xa9, 0x1e, 0xdd, 0xd2, 0x54, 0xd3, 0x9f, 0x6b, 0x4a, 0xda, 0x4a, 0x3d, 0xb6,
   0x7f, 0x06, 0x54, 0x4a, 0x72, 0xfc, 0x86, 0xb0, 0xa0, 0x20, 0x89, 0x8b, 0xca, 0x5c, 0x60, 0xcd,
   0xe1, 0x14, 0x31, 0x93, 0xee, 0x45, 0xab, 0x24, 0x7c, 0x05, 0xd0, 0xa8, 0x13, 0xc5, 0x75, 0xff,
   0xb7, 0x15, 0x2e, 0x85, 0x33, 0xb0, 0x6a, 0xfe, 0x67, 0xec, 0xb7, 0xfe, 0x67, 0x7c, 0xd3, 0xd0,
   0xf6, 0x05, 0x4c, 0xac, 0xe2, 0x5d, 0x8f, 0xdb, 0x6b, 0x7a, 0xdc, 0x37, 0xb4, 0x8a, 0xe1, 0x9f,
   0x7a, 0x2c, 0xcc, 0x61, 0x59, 0x62, 0xa8, 0xbe, 0x0b, 0x13, 0x27, 0xb8, 0x6d, 0x35, 0x0b, 0x92,
   0x39, 0x08, 0x61, 0xb0, 0x16, 0xdc, 0x11, 0xdc, 0xf6, 0x77, 0x1c, 0x32, 0xdb, 0x2f, 0xa9, 0xe7,
   0x24, 0xfb, 0x92, 0x04, 0xdd, 0xcf, 0x32, 0x5b, 0xed, 0x3c, 0x30, 0x44, 0x1d, 0xfd, 0x43, 0x98,
   0xaa, 0x7c, 0x2d, 0x14, 0xaa, 0xc1, 0x0e, 0x79, 0x44, 0xaf, 0x0a, 0x3c, 0x98, 0xca, 0x0d, 0xfd,
   0x53, 0x3c, 0xee, 0xd6, 0x9f, 0xf0, 0x6f, 0x3d, 0xb8, 0xff, 0xdc, 0x1c, 0x4b, 0x6d, 0xf2, 0xec,
   0x99, 0x58, 0x5f, 0xd8, 0x9e, 0x23, 0xf8, 0xcc, 0xd6, 0x1f, 0x4e, 0x6b, 0xad, 0x54, 0xf0, 0xdc,
   0xb4, 0xb6, 0x25, 0xb6, 0xfc, 0x3e, 0xb4, 0x95, 0x88, 0xdb, 0x84, 0x41, 0x9d, 0x94, 0x78, 0xfc,
   0x2b, 0xe8, 0xf4, 0xd6, 0xb3, 0x18, 0x58, 0x51, 0x2e, 0x3b, 0xb7, 0x55, 0xc7, 0xc6, 0xb9, 0x25,
   0x5b, 0xbd, 0xcd, 0xe8, 0x47, 0x7b, 0x9b, 0xee, 0x7f, 0x81, 0x23, 0x67, 0x9d, 0xa7, 0xff, 0xea,
   0xc1, 0xbc, 0xdd, 0x47, 0x05, 0x73, 0x98, 0x9e, 0xc6, 0xac, 0x73, 0xff, 0x4e, 0xe0, 0xc3, 0xdc,
   0x51, 0x38, 0x2e, 0xf8, 0xbd, 0xe0, 0x01, 0xf8, 0x6d, 0x04, 0x8b, 0xac, 0xdf, 0x0f, 0x00, 0xc6,
   0xa7, 0x31, 0xed, 0x18, 0x04, 0x0b, 0xf0, 0x78, 0x7d, 0x92, 0x5c, 0xfa, 0xc3, 0xe0, 0x1e, 0x2c,
   0x6a, 0x12, 0x83, 0xcd, 0x1f, 0x05, 0x1e, 0x8c, 0x4e, 0x63, 0xe4, 0x8e, 0x83, 0xfb, 0x70, 0xd7,
   0x1d, 0x67, 0x1b, 0x2c, 0x7f, 0x12, 0xec, 0x01, 0x9c, 0xc6, 0xa7, 0xf6, 0x4f, 0x1e, 0x7f, 0xca,
   0x32, 0x71, 0x89, 0xf1, 0x3d, 0x96, 0xe9, 0x38, 0x57, 0xea, 0x59, 0x9e, 0x9d, 0xa7, 0x1b, 0x1f,
   0xf8, 0xf6, 0x17, 0xa9, 0x92, 0xfe, 0x8c, 0xaf, 0xc3, 0xf5, 0x89, 0x2c, 0xcb, 0x34, 0xdb, 0xf8,
   0x73, 0xfe, 0xa0, 0xe9, 0x4d, 0xfd, 0xc5, 0xd3, 0xcf, 0x61, 0xea, 0x34, 0x84, 0x1f, 0xaf, 0x32,
   0x23, 0x75, 0xe9, 0xdf, 0xc1, 0xf5, 0x2b, 0x9a, 0xb9, 0xfc, 0x1e, 0xae, 0x8f, 0xa4, 0x92, 0xa5,
   0xf4, 0xfb, 0x4f, 0x0f, 0xc1, 0xdf, 0x2e, 0x55, 0xc1, 0x5d, 0x98, 0x45, 0x72, 0x95, 0xa5, 0x25,
   0xd9, 0xda, 0xbf, 0x83, 0x00, 0x7f, 0xcc, 0x40, 0x2f, 0x98, 0xc1, 0xc4, 0x7e, 0xe5, 0xf7, 0x9f,
   0x7e, 0x09, 0x7b, 0x5d, 0xb7, 0x60, 0x3d, 0x1d, 0x9d, 0x91, 0xf6, 0xfd, 0x3b, 0xac, 0x09, 0x4b,
   0xb2, 0xaf, 0xf9, 0xbd, 0xb3, 0x31, 0x59, 0xf4, 0x8b, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x98,
   0x35, 0x58, 0x34, 0x80, 0x19, 0x00, 0x00,
   // 3349 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x59, 0xcd, 0x8e, 0x1c, 0x47,
   0x72, 0x66, 0xff, 0x77, 0x45, 0xf7, 0xf4, 0x14, 0x8b, 0x7f, 0xc5, 0x19, 0x4a, 0x1a, 0x15, 0x29,
   0x9b, 0x1a, 0x49, 0xb4, 0x4c, 0xe9, 0x20, 0x18, 0xb0, 0x8c, 0xe1, 0x0c, 0x69, 0x37, 0x40, 0xd2,
   0xe3, 0x9a, 0x26, 0x75, 0x73, 0xa1, 0xa6, 0x2a, 0xa7, 0xbb, 0xd0, 0x35, 0x55, 0xa5, 0xcc, 0xac,
   0x21, 0x07, 0xf0, 0xc9, 0x86, 0x61, 0x9f, 0x64, 0x18, 0xf0, 0x33, 0x18, 0xf0, 0xd1, 0xb7, 0xbd,
   0xec, 0x6a, 0x9f, 0x60, 0x2f, 0xfb, 0x00, 0x7b, 0x5a, 0x60, 0x6f, 0xfb, 0x0a, 0x8b, 0x88, 0xcc,
   0xac, 0x9f, 0x99, 0xa1, 0xc4, 0x3d, 0x75, 0xc6, 0x97, 0x3f, 0x15, 0x19, 0xf9, 0x45, 0x64, 0x44,
   0x36, 0xcc, 0x0a, 0x9e, 0xcb, 0xfc, 0x54, 0x2c, 0x1f, 0x51, 0xc3, 0x19, 0x1b, 0x79, 0x0b, 0x8e,
   0x43, 0xc1, 0x14, 0xea, 0x3d, 0x83, 0xfe, 0x1e, 0x67, 0xa1, 0x33, 0x83, 0x6e, 0x12, 0xbb, 0x9d,
   0x9d, 0xce, 0xc3, 0x81, 0xdf, 0x4d, 0x62, 0x67, 0x0b, 0xc6, 0x45, 0xc8, 0x59, 0x26, 0x93, 0xd8,
   0xed, 0x12, 0x5a, 0xc9, 0x8e, 0x03, 0xfd, 0x2c, 0x3c, 0x65, 0x6e, 0x6f, 0xa7, 0xf3, 0xd0, 0xf2,
   0xa9, 0xed, 0xfd, 0x30, 0x84, 0xe1, 0x7e, 0x78, 0xca, 0x78, 0x73, 0x29, 0x8b, 0x96, 0x32, 0xc3,
   0xbb, 0xf5, 0x70, 0xe7, 0x26, 0x0c, 0xc2, 0x34, 0x09, 0x85, 0x5e, 0x43, 0x09, 0xce, 0xc7, 0x30,
   0x15, 0x59, 0x58, 0x88, 0x55, 0x2e, 0x83, 0x92, 0xa7, 0x6e, 0x9f, 0x3a, 0x27, 0x06, 0x7b, 0xc5,
   0x53, 0x5c, 0x4c, 0x9e, 0x17, 0xcc, 0x1d, 0x90, 0x4e, 0xd4, 0x46, 0x2c, 0x8c, 0x63, 0xee, 0x0e,
   0xd5, 0x07, 0xb0, 0xed, 0xdc, 0x03, 0x2b, 0xcd, 0xb3, 0x65, 0x22, 0xcb, 0x98, 0xb9, 0xa3, 0x9d,
   0xce, 0xc3, 0xae, 0x5f, 0x03, 0xb8, 0xbb, 0x34, 0x94, 0xaa, 0x73, 0x4c, 0x9d, 0x95, 0x8c, 0xaa,
   0x9d, 0xa4, 0x79, 0xce, 0x5d, 0x8b, 0x3e, 0xa1, 0x04, 0xfc, 0x06, 0x97, 0xa2, 0x70, 0x41, 0x7d,
   0x03, 0xdb, 0xb4, 0xd1, 0xc2, 0x9d, 0xe8, 0x8d, 0x16, 0x38, 0xa6, 0xc8, 0xb9, 0x74, 0xa7, 0x4a,
   0x37, 0x6c, 0xe3, 0x97, 0x4a, 0xc1, 0x38, 0x19, 0x60, 0x83, 0x46, 0x56, 0xb2, 0xb2, 0xb1, 0x10,
   0x6f, 0x72, 0x1e, 0xbb, 0x33, 0xd5, 0x67, 0x64, 0xd4, 0xe2, 0x98, 0x87, 0x59, 0xec, 0x6e, 0x2a,
   0x03, 0x91, 0x80, 0x33, 0x38, 0x13, 0x8c, 0x9f, 0xb1, 0xd8, 0xb5, 0xd5, 0x0c, 0x23, 0x3b, 0x1f,
   0x00, 0x24, 0x22, 0xe0, 0x65, 0x96, 0x25, 0xd9, 0xd2, 0xbd, 0xbe, 0xd3, 0x79, 0x38, 0xf6, 0xad,
   0x44, 0xf8, 0x0a, 0xc0, 0x6e, 0x5e, 0x66, 0x01, 0xcb, 0xc2, 0xe3, 0x94, 0xb9, 0x8e, 0xea, 0xe6,
   0x65, 0xf6, 0x94, 0x00, 0xe7, 0x2e, 0x8c, 0xb1, 0x9b, 0x6c, 0x7b, 0x83, 0xf4, 0x1f, 0xf1, 0x32,
   0x5b, 0xa0, 0x79, 0x3d, 0xd8, 0xc0, 0x2e, 0xfa, 0x0c, 0x0f, 0x92, 0xd8, 0xbd, 0xa9, 0x8e, 0x85,
   0x97, 0xd9, 0x11, 0x61, 0xf3, 0xd8, 0xf9, 0x14, 0x6c, 0xce, 0x44, 0x9e, 0x96, 0x32, 0xc9, 0xb3,
   0xe0, 0x4d, 0x12, 0xcb, 0x95, 0x7b, 0x8b, 0x96, 0xd9, 0xac, 0xf1, 0xef, 0x10, 0x76, 0x3e, 0x83,
   0xeb, 0x8d, 0xa1, 0x2b, 0x96, 0x2c, 0x57, 0xd2, 0xbd, 0x4d, 0x63, 0x1b, 0x6b, 0xfc, 0x03, 0xe1,
   0x8e, 0x0d, 0xbd, 0x93, 0x42, 0xb8, 0x77, 0xa8, 0x1b, 0x9b, 0xce, 0x2e, 0x8c, 0x04, 0xcb, 0x44,
   0xce, 0x85, 0xeb, 0xee, 0xf4, 0x1e, 0x4e, 0x1e, 0xdb, 0x8f, 0x2a, 0xa2, 0x1f, 0x51, 0x87, 0x6f,
   0x06, 0x38, 0x3b, 0x30, 0x39, 0xcb, 0x93, 0x88, 0xa9, 0x3d, 0xba, 0x77, 0x69, 0xd3, 0x4d, 0xc8,
   0x71, 0x61, 0x44, 0xe2, 0x3c, 0x76, 0xb7, 0x68, 0x57, 0x46, 0x74, 0xfe, 0x02, 0x66, 0x51, 0x9e,
   0xf3, 0x78, 0xc1, 0xc3, 0x4c, 0x9c, 0xe4, 0xfc, 0xd4, 0xdd, 0xa6, 0x01, 0x17, 0x50, 0xe7, 0x36,
   0x0c, 0x85, 0x0c, 0x65, 0x29, 0xdc, 0x7b, 0xa4, 0xa4, 0x96, 0xbc, 0x5f, 0x75, 0x60, 0xa8, 0xf4,
   0xb9, 0xca, 0x21, 0xc8, 0xce, 0xda, 0x21, 0x88, 0xc3, 0x8a, 0x4b, 0xbd, 0x4b, 0x5c, 0xea, 0xbf,
   0x83, 0x4b, 0x83, 0x9f, 0xe0, 0xd2, 0xf0, 0x02, 0x97, 0xee, 0x81, 0x25, 0x57, 0x9c, 0x89, 0x55,
   0x9e, 0xc6, 0xe4, 0x0b, 0x03, 0xbf, 0x06, 0x70, 0x03, 0x9a, 0x14, 0x63, 0xb2, 0x8f, 0x96, 0xbc,
   0x17, 0x00, 0xca, 0xa1, 0x9f, 0x27, 0xd9, 0x1a, 0xe9, 0x13, 0x91, 0x14, 0x24, 0xb1, 0xd0, 0x7b,
   0xb1, 0x14, 0x32, 0x8f, 0xd1, 0xd2, 0xd3, 0x34, 0xc9, 0xd6, 0x81, 0x0c, 0xc5, 0x3a, 0xd0, 0x21,
   0xc3, 0xf2, 0x01, 0xb1, 0x45, 0x28, 0xd6, 0xf3, 0xd8, 0xfb, 0x0d, 0xda, 0x23, 0x5e, 0xfb, 0x65,
   0xe6, 0xdc, 0x82, 0x61, 0x52, 0x44, 0x41, 0x65, 0x93, 0x41, 0x52, 0x44, 0xf3, 0x18, 0x29, 0x28,
   0xe2, 0x75, 0xd0, 0x30, 0xcd, 0x48, 0xc4, 0x6b, 0xa2, 0xe0, 0xe7, 0x70, 0x3d, 0x11, 0x0b, 0x9e,
   0x2c, 0x97, 0x8c, 0x3f, 0x39, 0x3f, 0xe4, 0xec, 0x28, 0x5e, 0x93, 0xb1, 0x06, 0xfe, 0xe5, 0x0e,
   0xe7, 0x43, 0x80, 0x28, 0xcf, 0x4e, 0x92, 0x98, 0x65, 0x11, 0xd3, 0x16, 0x6c, 0x20, 0xe4, 0x5b,
   0x3e, 0x4b, 0x62, 0x32, 0xe2, 0xd8, 0x57, 0x82, 0xf3, 0x08, 0x1c, 0xa9, 0x16, 0x7a, 0xc9, 0xde,
   0xca, 0x23, 0xf5, 0x65, 0xb2, 0xe5, 0xc0, 0xbf, 0xa2, 0xc7, 0xfb, 0x27, 0x98, 0x29, 0xfb, 0x2c,
   0x92, 0x53, 0xc6, 0xcb, 0x94, 0xbd, 0x57, 0xe0, 0xdb, 0x06, 0x4b, 0x26, 0xa7, 0x2c, 0xc0, 0x09,
   0xfa, 0xb8, 0xc7, 0x08, 0xf8, 0x65, 0xca, 0xbc, 0x97, 0x30, 0x3c, 0x08, 0xcf, 0xf7, 0x65, 0x8a,
   0xbc, 0x8f, 0xc3, 0x73, 0x1d, 0x8f, 0xb1, 0xe9, 0x3c, 0x06, 0x50, 0x13, 0xc3, 0x6c, 0x89, 0x4b,
   0x22, 0xf5, 0x6f, 0xd4, 0xd4, 0x47, 0x25, 0x7c, 0xec, 0xf2, 0x69, 0x7d, 0x6a, 0x7a, 0x5f, 0x81,
   0x55, 0xe1, 0xb8, 0x6b, 0x21, 0x43, 0x2e, 0x8d, 0xd1, 0x49, 0xc0, 0x0f, 0xb1, 0xcc, 0x9c, 0x17,
   0x36, 0xbd, 0xd7, 0x30, 0x3a, 0xcc, 0xd3, 0xf3, 0x65, 0x9e, 0xbd, 0xd7, 0x86, 0xfe, 0x12, 0x86,
   0x45, 0x9e, 0x64, 0x12, 0x43, 0x39, 0xea, 0xb4, 0x59, 0xeb, 0x74, 0x88, 0xb8, 0xaf, 0xbb, 0xbd,
   0xef, 0x0d, 0x9f, 0xe6, 0xd9, 0x49, 0xee, 0x3c, 0xa0, 0xa0, 0xa2, 0xe2, 0xc7, 0x4b, 0x5c, 0x53,
   0x7d, 0xa5, 0x0d, 0x6a, 0x05, 0xba, 0x97, 0x14, 0x68, 0xdc, 0x3c, 0xad, 0xc8, 0xd5, 0x6f, 0x45,
   0x2e, 0xef, 0x7b, 0x73, 0x44, 0x7b, 0x59, 0x8c, 0x06, 0x16, 0xce, 0xd7, 0x86, 0xc6, 0xa8, 0x04,
   0x7d, 0x73, 0xf2, 0xf8, 0x66, 0xad, 0x71, 0xad, 0xa0, 0xdf, 0x18, 0xe7, 0x7c, 0x0a, 0x03, 0x3c,
   0x2f, 0x71, 0xd9, 0xec, 0x7f, 0xcf, 0xf3, 0xb2, 0xc0, 0xa5, 0x7d, 0x35, 0xc2, 0xfb, 0x8f, 0x1e,
   0x58, 0x15, 0x88, 0x9e, 0x57, 0xf9, 0x88, 0xdb, 0xd9, 0xe9, 0xb5, 0x9d, 0xe6, 0xe2, 0xee, 0x3e,
   0x00, 0x58, 0xe2, 0xd4, 0x40, 0xb2, 0xb7, 0x52, 0xef, 0xd1, 0x22, 0x64, 0xc1, 0xde, 0x4a, 0xe7,
   0x23, 0x98, 0x84, 0x69, 0xc8, 0x4f, 0x83, 0x94, 0x9d, 0xb1, 0xd4, 0xf0, 0x9a, 0xa0, 0xe7, 0x88,
   0x38, 0x0f, 0x8c, 0x9a, 0x03, 0x52, 0x73, 0x56, 0xab, 0xd9, 0xd0, 0x90, 0xdc, 0x8c, 0x49, 0x65,
   0xaf, 0xa1, 0x76, 0x33, 0x26, 0xc9, 0xcd, 0x3e, 0x82, 0x89, 0x64, 0xa7, 0x45, 0x1a, 0x4a, 0x86,
   0xde, 0x39, 0x52, 0x4e, 0x6c, 0xa0, 0x79, 0xec, 0xdc, 0x87, 0x8d, 0x6a, 0x00, 0x31, 0x78, 0x4c,
   0x43, 0xa6, 0x06, 0xa4, 0x4d, 0xef, 0xc0, 0xb4, 0xa2, 0x38, 0x2e, 0x63, 0xe9, 0x65, 0x34, 0xcb,
   0xe7, 0xb4, 0x51, 0x11, 0xb1, 0x8c, 0x05, 0x74, 0x98, 0xea, 0x4a, 0xb5, 0x08, 0xa1, 0x53, 0x77,
   0xa0, 0x1f, 0x33, 0x11, 0xe9, 0x9b, 0x95, 0xda, 0x8d, 0x28, 0x35, 0x6d, 0x46, 0xa9, 0x66, 0x00,
   0xdf, 0x68, 0x05, 0x70, 0xef, 0x5f, 0x60, 0xa3, 0x3a, 0x88, 0xa3, 0x78, 0x2d, 0x2e, 0xb1, 0xb9,
   0xad, 0x45, 0xf7, 0xa2, 0x16, 0x0f, 0xa0, 0x2f, 0xe2, 0xb5, 0xa1, 0x75, 0xf3, 0x96, 0xa1, 0x28,
   0xe6, 0x53, 0x2f, 0x85, 0xff, 0x78, 0x8d, 0xc7, 0xdb, 0xa7, 0xe3, 0xd5, 0x92, 0xf7, 0xdf, 0x5d,
   0xe8, 0xfb, 0x57, 0x05, 0x85, 0x6d, 0x43, 0x89, 0x3a, 0x4c, 0x8e, 0x0d, 0x25, 0x50, 0xa5, 0x42,
   0xf9, 0x1e, 0xf6, 0x6a, 0x06, 0x68, 0x64, 0x1e, 0x63, 0xe0, 0xc4, 0x08, 0x99, 0xc4, 0x3a, 0x33,
   0x1a, 0xd0, 0xc7, 0x9c, 0x2f, 0x00, 0x03, 0x65, 0x20, 0x98, 0xd4, 0x27, 0x7f, 0xb3, 0xa5, 0xec,
   0x11, 0x93, 0x4f, 0x42, 0xc1, 0x48, 0xb5, 0x23, 0x26, 0xd5, 0x7d, 0x9e, 0xb2, 0xe0, 0x4d, 0x22,
   0x57, 0x41, 0xc1, 0x0d, 0x0b, 0x26, 0x08, 0x7e, 0x97, 0xc8, 0xd5, 0x21, 0xc7, 0xcd, 0xcf, 0x12,
   0x11, 0x88, 0xf0, 0x8c, 0x05, 0x61, 0x76, 0xbe, 0xca, 0xdf, 0x10, 0x19, 0xc6, 0xfe, 0x34, 0x11,
   0x47, 0xe1, 0x19, 0xdb, 0x23, 0x0c, 0xa9, 0xa4, 0x08, 0x9b, 0xc4, 0x9a, 0x09, 0x23, 0x92, 0xe7,
   0xe4, 0xa9, 0x02, 0xef, 0x2f, 0x95, 0x44, 0x51, 0xdb, 0xfb, 0xf7, 0x0e, 0x4c, 0xd1, 0x26, 0x0b,
   0xcd, 0x96, 0xf7, 0x8a, 0x2f, 0x86, 0x0c, 0xbd, 0x06, 0x19, 0x6c, 0xe8, 0xc9, 0xb7, 0x52, 0x1b,
   0x01, 0x9b, 0xce, 0x67, 0x6d, 0xea, 0xdf, 0x6a, 0x04, 0x46, 0xfd, 0xb1, 0x3d, 0xbe, 0x34, 0x3e,
   0xfa, 0x2d, 0xd8, 0x4d, 0x35, 0x9e, 0x27, 0x42, 0x3a, 0xbb, 0xd0, 0x4f, 0x13, 0x21, 0xc9, 0x49,
   0x27, 0x8f, 0x6f, 0xb7, 0x5d, 0xc7, 0x8c, 0xf4, 0x69, 0x8c, 0xf7, 0xeb, 0x0e, 0x4c, 0x1a, 0xcb,
   0x36, 0x8e, 0xa5, 0xd3, 0x3c, 0x16, 0x0f, 0x36, 0x10, 0x0e, 0xf9, 0x32, 0x50, 0xb9, 0x6e, 0x57,
   0xa7, 0xb3, 0xf1, 0x7a, 0x8f, 0x2f, 0xf7, 0x28, 0xe3, 0xdd, 0x82, 0x71, 0x5e, 0x30, 0x1e, 0xca,
   0x9c, 0x9b, 0xdb, 0xc0, 0xc8, 0xcd, 0xf9, 0x67, 0x61, 0x5a, 0xb2, 0x2a, 0x1d, 0xa6, 0xf9, 0xaf,
   0x11, 0xaa, 0xcc, 0xac, 0xd2, 0x01, 0x6a, 0xbf, 0xcf, 0xf9, 0x7a, 0xff, 0xd7, 0x01, 0xa8, 0xa9,
   0x71, 0x59, 0xd5, 0xce, 0x4f, 0xab, 0xda, 0xbd, 0xa0, 0xea, 0x7d, 0xd8, 0x30, 0x6d, 0x15, 0x58,
   0xd4, 0x5e, 0xa6, 0x06, 0x34, 0x79, 0xe4, 0x9f, 0xb5, 0x1f, 0x43, 0x9b, 0x7f, 0xed, 0x43, 0x0f,
   0xaf, 0xf5, 0x8b, 0x6c, 0xa9, 0xd3, 0x88, 0xee, 0xbb, 0xd2, 0x88, 0x5e, 0x3b, 0x8d, 0xd0, 0x5d,
   0xc4, 0xb1, 0x7e, 0xd5, 0x65, 0xbc, 0x3d, 0xe4, 0x4b, 0xc3, 0x9f, 0xb6, 0xb7, 0x23, 0x75, 0xa8,
   0x17, 0xd5, 0x4b, 0xa2, 0x3c, 0x33, 0x95, 0x06, 0xb6, 0x91, 0x8c, 0x58, 0xab, 0xa8, 0x60, 0x89,
   0x4d, 0x0c, 0xa3, 0x11, 0x67, 0x18, 0x23, 0x31, 0xe6, 0x69, 0xcf, 0x00, 0x05, 0xe1, 0x7d, 0x8c,
   0x03, 0xca, 0x22, 0xae, 0x06, 0xe8, 0x00, 0xa9, 0x20, 0x1a, 0x80, 0x41, 0x42, 0xad, 0x70, 0x7c,
   0xae, 0xe3, 0xe3, 0x58, 0x01, 0x4f, 0xce, 0x1b, 0xa1, 0x70, 0xd2, 0x0a, 0x85, 0x77, 0x61, 0x1c,
   0xb3, 0x34, 0x38, 0x49, 0xc3, 0xa5, 0x2e, 0x41, 0x46, 0x31, 0x4b, 0x9f, 0xa5, 0xe1, 0x12, 0xcf,
   0x0e, 0x75, 0x7d, 0x92, 0xe6, 0xc7, 0xa6, 0x0a, 0x31, 0x32, 0x45, 0x50, 0xc6, 0x45, 0x92, 0x67,
   0xba, 0x08, 0x31, 0x22, 0xf6, 0xb0, 0x6c, 0xc1, 0xc3, 0x68, 0x4d, 0x55, 0xc8, 0xd8, 0x37, 0x22,
   0xaa, 0x10, 0xf2, 0xe5, 0x01, 0x3b, 0xd1, 0x55, 0x88, 0x96, 0x10, 0x47, 0x96, 0x1d, 0xe5, 0x54,
   0x7f, 0x58, 0xbe, 0x96, 0xf0, 0x1e, 0x34, 0xdf, 0x7b, 0x4c, 0xb5, 0x87, 0xe5, 0xd7, 0x80, 0xe3,
   0xc1, 0x34, 0x8c, 0x64, 0x72, 0x16, 0x4a, 0xb6, 0x9f, 0xc7, 0xaa, 0xfe, 0xb0, 0xfc, 0x16, 0xe6,
   0xfd, 0x41, 0xa5, 0x8f, 0xe8, 0x6e, 0x55, 0xed, 0xd8, 0x69, 0xd6, 0x8e, 0xef, 0x88, 0x1d, 0x0d,
   0x1a, 0x54, 0xc5, 0xe2, 0x69, 0x29, 0x54, 0xf0, 0x18, 0xfb, 0xd4, 0x46, 0xac, 0xcc, 0x92, 0xca,
   0x8b, 0xb0, 0x8d, 0x5f, 0x51, 0xa9, 0x96, 0x3a, 0x6b, 0x25, 0x20, 0xd1, 0x63, 0x76, 0x12, 0x96,
   0xa9, 0xd4, 0x1c, 0x56, 0xc7, 0x3e, 0xd5, 0xa0, 0x22, 0xf1, 0xa7, 0x60, 0x9b, 0x41, 0x95, 0xc7,
   0x28, 0x12, 0x6c, 0x6a, 0xfc, 0x1f, 0x8d, 0xe3, 0x5c, 0x15, 0x26, 0xff, 0x53, 0xf9, 0xe6, 0xfe,
   0x2a, 0xcc, 0x30, 0x5c, 0x37, 0xf9, 0xdc, 0xb9, 0xc4, 0xe7, 0x68, 0x15, 0x66, 0x41, 0x56, 0x9e,
   0xea, 0x22, 0x7d, 0x84, 0xf2, 0xcb, 0xf2, 0x14, 0xf3, 0xab, 0x3a, 0xe3, 0x9d, 0x67, 0x91, 0xce,
   0x96, 0xdb, 0x20, 0x66, 0xca, 0xa7, 0x49, 0xf6, 0x22, 0x3f, 0x63, 0x87, 0xb9, 0x30, 0x19, 0x45,
   0x8d, 0x78, 0xff, 0xd5, 0x81, 0xcd, 0x83, 0x63, 0xd4, 0x64, 0xc9, 0x5e, 0x30, 0x21, 0xc2, 0x25,
   0xe6, 0xe2, 0x03, 0x49, 0xec, 0x43, 0x65, 0x66, 0xcd, 0x50, 0xb9, 0x40, 0x58, 0x0d, 0x8e, 0x7d,
   0x35, 0xe8, 0x52, 0x8e, 0xb3, 0x0b, 0x43, 0x3c, 0xd7, 0x3c, 0x23, 0x85, 0x66, 0x8f, 0x9d, 0x7a,
   0xfa, 0xc1, 0xf1, 0x1e, 0xf5, 0xf8, 0x7a, 0x04, 0x79, 0x1b, 0xa6, 0x69, 0x7d, 0xed, 0x6d, 0xd9,
   0x49, 0xee, 0xfd, 0xd0, 0x85, 0x0d, 0x95, 0xa5, 0xbd, 0x2b, 0x49, 0xfd, 0xc9, 0x0b, 0xf6, 0xaa,
   0x04, 0xd2, 0x85, 0x91, 0xbe, 0x62, 0x4d, 0x50, 0xd0, 0xa2, 0xf3, 0x31, 0x4c, 0x75, 0xe2, 0x1f,
   0xa4, 0x49, 0x66, 0x8a, 0xae, 0x89, 0xc6, 0x9e, 0x27, 0x19, 0x73, 0x3e, 0x81, 0x59, 0x9c, 0x70,
   0x46, 0x0a, 0xab, 0x41, 0x8a, 0x2f, 0x1b, 0x15, 0x4a, 0xc3, 0x0c, 0x13, 0x47, 0x0d, 0x26, 0x2a,
   0x2e, 0xe1, 0x51, 0x04, 0x58, 0x33, 0xaa, 0x40, 0x31, 0x20, 0x2e, 0x21, 0x78, 0x84, 0x18, 0xc5,
   0x12, 0xb5, 0x1b, 0xd2, 0x5b, 0x87, 0x0a, 0x05, 0x61, 0xe0, 0xf2, 0x7e, 0xdb, 0x81, 0x5b, 0x2d,
   0x83, 0xf8, 0x2c, 0x0d, 0xc9, 0x7c, 0x17, 0x0d, 0xf3, 0x10, 0x6c, 0x91, 0x97, 0x3c, 0x62, 0xc1,
   0x45, 0xfb, 0xcc, 0x14, 0xbe, 0x6f, 0xac, 0xb4, 0x0b, 0xd7, 0xf5, 0xc8, 0x4b, 0xd9, 0xc8, 0xa6,
   0xea, 0x38, 0xac, 0x72, 0x92, 0x87, 0x60, 0xcb, 0x90, 0x2f, 0x99, 0x6c, 0xac, 0xaa, 0xcc, 0x38,
   0x53, 0x78, 0x73, 0x55, 0x3d, 0xb2, 0xb1, 0xaa, 0x32, 0xe9, 0xa6, 0xea, 0xa8, 0x56, 0xf5, 0x7e,
   0xd9, 0x81, 0x8d, 0xd7, 0x49, 0xcc, 0x72, 0x19, 0x16, 0x8c, 0x72, 0xf0, 0x2d, 0x18, 0x33, 0x71,
   0x10, 0xca, 0x70, 0x6e, 0xf6, 0x54, 0xc9, 0xd8, 0x67, 0x4e, 0xf8, 0xd2, 0x89, 0xdf, 0x86, 0xa1,
   0xa4, 0x0a, 0x54, 0x6f, 0x40, 0x4b, 0xe8, 0xdf, 0xc9, 0xe9, 0x72, 0xae, 0x94, 0xed, 0xf9, 0x4a,
   0xc0, 0x95, 0xce, 0xf0, 0xb3, 0xaf, 0x78, 0x6a, 0x4a, 0x6c, 0x23, 0x37, 0x52, 0xbd, 0x61, 0x33,
   0xd5, 0x6b, 0x9d, 0xad, 0x7e, 0x92, 0xf2, 0xfe, 0x0e, 0x06, 0xaf, 0x31, 0x0f, 0x7d, 0xdf, 0x14,
   0xa7, 0x08, 0xe5, 0xca, 0x90, 0x12, 0xdb, 0xde, 0x97, 0x60, 0xd1, 0x02, 0x94, 0x9c, 0xdc, 0x6f,
   0x25, 0x27, 0x8d, 0x0a, 0x8b, 0x86, 0xe8, 0xac, 0xe4, 0xf7, 0x3d, 0x98, 0xec, 0xe7, 0xa7, 0x45,
   0xc8, 0x31, 0x29, 0xa1, 0xfb, 0x9a, 0x5c, 0xb0, 0x2e, 0x3d, 0x2a, 0xd9, 0xd9, 0x05, 0x3b, 0x52,
   0x43, 0x17, 0xd5, 0xc3, 0x40, 0x97, 0xde, 0xc1, 0x2e, 0xe1, 0xce, 0x0e, 0x4c, 0x4e, 0xc2, 0x88,
   0x3d, 0x63, 0xa1, 0x2c, 0xb9, 0xf2, 0x9c, 0xa9, 0xdf, 0x84, 0xd0, 0x94, 0x68, 0x54, 0x93, 0x02,
   0x2b, 0x81, 0x5e, 0x1d, 0x38, 0x63, 0x2f, 0xf3, 0x58, 0xa7, 0x65, 0x96, 0x5f, 0x03, 0x64, 0xb4,
   0xf0, 0xd8, 0x98, 0x92, 0xda, 0x18, 0x8d, 0xea, 0x6a, 0xc6, 0x54, 0x1f, 0x8d, 0xfa, 0xe6, 0x43,
   0x00, 0xc1, 0x42, 0x1e, 0xad, 0x16, 0xea, 0x5a, 0xc5, 0x99, 0x0d, 0x04, 0xfb, 0x93, 0xac, 0x28,
   0x55, 0x14, 0x36, 0xae, 0x52, 0x23, 0xea, 0x5d, 0x20, 0x4d, 0x95, 0x5b, 0xea, 0x6b, 0xb5, 0x81,
   0xd0, 0x01, 0x13, 0xbb, 0xcd, 0xc5, 0xaa, 0x24, 0x8c, 0xa5, 0x61, 0x16, 0xa6, 0xe7, 0xe6, 0xb5,
   0x8b, 0x6e, 0x57, 0xcb, 0x6f, 0x83, 0x2a, 0xe2, 0x2a, 0xdb, 0x11, 0x99, 0xf5, 0x45, 0xdb, 0x06,
   0xf1, 0xae, 0x4b, 0x84, 0x39, 0xa6, 0x34, 0xa5, 0x2b, 0x97, 0xd2, 0xea, 0x1a, 0x43, 0xcb, 0x09,
   0xbd, 0xaa, 0x70, 0x37, 0x95, 0xe5, 0x2a, 0xc0, 0x3b, 0x86, 0xa9, 0x1e, 0xfb, 0xf4, 0x8c, 0x65,
   0xd2, 0xf9, 0x06, 0x2c, 0x86, 0x8d, 0x85, 0xb9, 0x20, 0x66, 0x8f, 0xb7, 0x1a, 0x15, 0x6d, 0x63,
   0x28, 0x8e, 0xf0, 0xeb, 0xc1, 0x14, 0xf8, 0xc2, 0xf3, 0x34, 0x0f, 0xd5, 0xe1, 0x4f, 0x7d, 0x23,
   0x7a, 0xff, 0x0c, 0x33, 0xbc, 0x81, 0xf4, 0xdc, 0x30, 0x5a, 0x5d, 0xe2, 0xb1, 0x0b, 0x23, 0x62,
   0x53, 0x15, 0x43, 0x8c, 0x88, 0x3b, 0xd4, 0x5b, 0x3e, 0x8a, 0x72, 0x4d, 0x98, 0xae, 0xdf, 0xc2,
   0x3c, 0x1f, 0xec, 0x7a, 0x7d, 0x9f, 0x89, 0x32, 0x95, 0xce, 0xb7, 0x95, 0xfd, 0x14, 0xa0, 0xd9,
   0xee, 0xb6, 0x52, 0xb1, 0x86, 0x4a, 0x7e, 0x7b, 0xb8, 0xf7, 0x63, 0x1f, 0x2c, 0xda, 0xe6, 0x61,
   0x29, 0x56, 0xef, 0xe5, 0x77, 0x1f, 0xe8, 0x27, 0x15, 0xf5, 0x2c, 0xa2, 0xab, 0x2d, 0x44, 0x8e,
   0xe8, 0x69, 0xe4, 0x2e, 0xd0, 0xcb, 0x4c, 0xc0, 0x32, 0x13, 0xd1, 0x46, 0x28, 0x3f, 0xcd, 0xe2,
   0xaa, 0x3c, 0x92, 0x89, 0x38, 0x39, 0x0f, 0xc2, 0x34, 0xd5, 0x4f, 0x49, 0x54, 0x1e, 0x11, 0x88,
   0xe7, 0xb8, 0x0d, 0x16, 0x25, 0xe2, 0x54, 0xce, 0xeb, 0x47, 0x39, 0x4e, 0xe5, 0xc4, 0x5b, 0xd9,
   0xc8, 0xe2, 0x46, 0xad, 0x2c, 0x6e, 0x1b, 0x2c, 0xf5, 0x92, 0x86, 0xc7, 0xa9, 0xb2, 0x86, 0x31,
   0x3d, 0xa3, 0xe9, 0x02, 0x9d, 0x3a, 0x63, 0x76, 0x96, 0x44, 0x15, 0xc5, 0x11, 0x3a, 0x20, 0xc4,
   0xf9, 0x2b, 0x18, 0x27, 0x45, 0x50, 0xe4, 0x5c, 0x0a, 0x17, 0x2e, 0xd6, 0x82, 0x68, 0x98, 0x79,
   0x71, 0x98, 0x73, 0xe9, 0x8f, 0x12, 0xfa, 0x15, 0xce, 0x27, 0xd0, 0x2f, 0x79, 0x2a, 0xdc, 0x09,
   0x0d, 0xbe, 0xde, 0x1e, 0xfc, 0x8a, 0xa7, 0x3e, 0x75, 0x3b, 0x5f, 0x98, 0xfa, 0x6a, 0x4a, 0xe3,
   0xee, 0xd4, 0xe3, 0x2a, 0x93, 0x37, 0xdf, 0x18, 0xf6, 0x01, 0x4e, 0x92, 0x54, 0xfa, 0x4c, 0xbf,
   0x7b, 0xe3, 0x9c, 0xfb, 0x57, 0xcc, 0x79, 0xf4, 0xac, 0x1a, 0xf5, 0x34, 0x93, 0xfc, 0xdc, 0x6f,
   0x4c, 0x73, 0xbe, 0x84, 0x71, 0x51, 0x8a, 0x15, 0xd5, 0xb5, 0xb3, 0x8b, 0x65, 0x1d, 0xce, 0x3e,
   0x62, 0xf2, 0x05, 0xcb, 0x4a, 0x7f, 0x54, 0x28, 0x61, 0xeb, 0x6f, 0x61, 0xf3, 0xc2, 0x82, 0x98,
   0x9d, 0xaf, 0xd9, 0xb9, 0x26, 0x02, 0x36, 0x31, 0x5a, 0xa9, 0xd4, 0x4d, 0x57, 0x0d, 0x24, 0xfc,
   0x4d, 0xf7, 0x9b, 0x8e, 0xf7, 0x3f, 0x1d, 0x98, 0x34, 0xd6, 0x7d, 0x2f, 0x0e, 0xb9, 0x30, 0x8a,
   0x56, 0x2c, 0x5a, 0x33, 0x75, 0xbf, 0x8c, 0x7d, 0x23, 0xd6, 0x69, 0x6a, 0xbf, 0x99, 0xa6, 0xfe,
   0x35, 0xa6, 0x6c, 0x49, 0x1a, 0x73, 0x96, 0x5d, 0xae, 0x55, 0x9b, 0x9b, 0xaa, 0x86, 0x79, 0xbf,
   0xeb, 0xc0, 0x46, 0xcb, 0xca, 0x57, 0xbd, 0x64, 0xc8, 0xbc, 0x48, 0xa2, 0xe6, 0xdb, 0xa9, 0x45,
   0x08, 0xb1, 0x66, 0x1b, 0x94, 0x80, 0xa5, 0x57, 0xf5, 0xe6, 0x88, 0x00, 0x66, 0xd3, 0xcd, 0xb2,
   0xae, 0xff, 0x73, 0x65, 0xdd, 0xe0, 0x8a, 0xb2, 0x8e, 0xfe, 0x58, 0x48, 0x99, 0xce, 0x87, 0x15,
   0xcd, 0x89, 0xf7, 0x2a, 0xe8, 0x7a, 0xb0, 0x41, 0x11, 0x27, 0xa0, 0xb3, 0xac, 0x5e, 0x95, 0x26,
   0xcc, 0xec, 0x68, 0x1e, 0x7b, 0xaf, 0x00, 0x6a, 0x6e, 0xa2, 0xba, 0xe6, 0xbf, 0x86, 0xc2, 0x5c,
   0xf5, 0x3a, 0xfc, 0xd5, 0xef, 0xe2, 0xdd, 0xc6, 0xbb, 0x78, 0xed, 0x4a, 0xbd, 0xd6, 0x0b, 0xf6,
   0x57, 0x30, 0xd2, 0x2c, 0x36, 0x45, 0x5a, 0xa7, 0x2e, 0xd2, 0xea, 0x49, 0xdd, 0xd6, 0xa4, 0x1f,
   0x3b, 0x4a, 0x99, 0x3d, 0x29, 0x31, 0xee, 0xdd, 0x81, 0x91, 0x51, 0x5c, 0x4d, 0x1e, 0x16, 0xa4,
   0xb3, 0xe3, 0x41, 0x2f, 0x0a, 0x55, 0xda, 0xdd, 0xaa, 0x17, 0x55, 0xba, 0xe3, 0x63, 0x67, 0x73,
   0x27, 0x26, 0xfd, 0x30, 0x3b, 0x89, 0xd1, 0x97, 0x75, 0x67, 0xa3, 0x1e, 0x05, 0x51, 0x3f, 0x7e,
   0xde, 0x85, 0x71, 0x9a, 0x47, 0x61, 0x8a, 0x66, 0x50, 0x86, 0x1f, 0x91, 0x3c, 0x2f, 0x70, 0x61,
   0x4a, 0x4b, 0xe8, 0x5f, 0xb2, 0x61, 0x3b, 0x4f, 0xf1, 0xfe, 0xd8, 0x81, 0x1b, 0x4f, 0xc5, 0x21,
   0xe3, 0x22, 0xcf, 0xf6, 0xc3, 0x68, 0xa5, 0x53, 0x72, 0xe7, 0x73, 0x9d, 0xa7, 0xa8, 0x3b, 0xa2,
   0x11, 0x57, 0x9f, 0x8a, 0xc6, 0xb0, 0x58, 0x67, 0xa7, 0x77, 0x75, 0xfa, 0xa0, 0xb2, 0xc4, 0x5e,
   0x15, 0xe1, 0xe7, 0x94, 0x61, 0x17, 0xb4, 0x7a, 0x63, 0x5b, 0x0a, 0x98, 0xd3, 0xc5, 0x70, 0xa2,
   0x53, 0x05, 0x1d, 0x34, 0xb5, 0xd8, 0x48, 0xfd, 0x07, 0x3f, 0x9b, 0xfa, 0xd7, 0xa7, 0xa3, 0x1e,
   0xe0, 0x4d, 0x74, 0xbc, 0x09, 0x83, 0x28, 0xe4, 0x2f, 0x73, 0xcd, 0x22, 0x25, 0x78, 0xff, 0xdf,
   0x81, 0xcd, 0xfd, 0xb4, 0x14, 0x92, 0xf1, 0xbd, 0x2c, 0x56, 0x09, 0xc6, 0x3d, 0xb0, 0x22, 0x05,
   0x55, 0x09, 0x63, 0x0d, 0x60, 0x52, 0xa3, 0x85, 0x97, 0xb5, 0x47, 0x37, 0x21, 0xe7, 0x01, 0x0c,
   0x32, 0x4a, 0x5d, 0x7a, 0x17, 0x1f, 0x53, 0x71, 0x7d, 0x5f, 0x75, 0xe2, 0x57, 0xce, 0x12, 0x2e,
   0x4b, 0x3c, 0x15, 0xbd, 0xdf, 0x1a, 0x68, 0xfd, 0x29, 0x33, 0x68, 0xff, 0x29, 0xe3, 0xfd, 0x5b,
   0x17, 0xfa, 0xb8, 0xd2, 0x55, 0xce, 0xac, 0xf5, 0xa8, 0x13, 0xf4, 0x86, 0xe6, 0xdb, 0x60, 0xe1,
   0xa7, 0x83, 0x46, 0x19, 0x33, 0x46, 0x80, 0x94, 0xbe, 0x03, 0x23, 0xea, 0xac, 0x72, 0xf0, 0x21,
   0x8a, 0xf3, 0xb8, 0xee, 0x30, 0x54, 0x52, 0x1d, 0xc5, 0xc5, 0xb7, 0x8a, 0xe1, 0xa5, 0xb7, 0x8a,
   0x2d, 0x18, 0x27, 0xe2, 0x80, 0xa5, 0x4c, 0x9a, 0x9b, 0xaa, 0x92, 0x71, 0x72, 0xcc, 0x93, 0x13,
   0xd9, 0xa8, 0x5f, 0x2c, 0x1f, 0x08, 0xaa, 0xaa, 0x17, 0x75, 0x55, 0xa9, 0xf0, 0xa1, 0xef, 0x2b,
   0x05, 0xd1, 0x0b, 0xfd, 0xff, 0x76, 0xa0, 0x77, 0x90, 0x44, 0x97, 0x8c, 0x70, 0x65, 0x90, 0xbe,
   0xb2, 0x7a, 0x33, 0xd9, 0x77, 0xbf, 0x51, 0x59, 0xed, 0xe0, 0x67, 0x45, 0xc4, 0x93, 0xa2, 0xa2,
   0x9b, 0xe5, 0x37, 0xa1, 0xaa, 0xee, 0x1e, 0xd6, 0x75, 0x37, 0xd1, 0x9a, 0xfe, 0xe2, 0xae, 0xa3,
   0x94, 0xfe, 0xcf, 0x7b, 0x1e, 0xef, 0xfe, 0xa2, 0x0b, 0xd3, 0x66, 0x7d, 0xeb, 0x4c, 0x61, 0xbc,
   0x08, 0x94, 0xb3, 0xdb, 0xd7, 0x1c, 0x1b, 0xa6, 0x46, 0xc2, 0x08, 0x6d, 0x77, 0x1c, 0x0b, 0x06,
   0x8b, 0xe0, 0x28, 0x5e, 0xdb, 0x5d, 0xe7, 0x06, 0x6c, 0x9a, 0x4e, 0x5d, 0xe1, 0xd8, 0x3d, 0x67,
   0x06, 0xb0, 0x08, 0x16, 0xfa, 0x4d, 0xdc, 0xee, 0xab, 0xf5, 0x54, 0x32, 0x69, 0x0f, 0xd4, 0x7a,
   0x87, 0x79, 0x9a, 0xee, 0x63, 0xbd, 0xbe, 0xb4, 0x87, 0x0e, 0xc0, 0x70, 0x11, 0x3c, 0x4b, 0x52,
   0x66, 0x8f, 0x9c, 0xeb, 0xb0, 0xa1, 0xda, 0x47, 0x4c, 0xca, 0x24, 0x5b, 0xda, 0x63, 0x35, 0xa1,
   0x7e, 0x35, 0xb0, 0x2d, 0x67, 0x13, 0x26, 0x7a, 0x90, 0x0c, 0xa3, 0xb5, 0x0d, 0xce, 0x4d, 0xb0,
   0x17, 0x81, 0xcf, 0x74, 0xad, 0xa7, 0xd6, 0x9d, 0x38, 0xb7, 0xc1, 0x41, 0xe5, 0xd2, 0xa8, 0x54,
   0x65, 0xe3, 0x61, 0xfe, 0x86, 0x71, 0x7b, 0xaa, 0xa6, 0x57, 0xd7, 0x8e, 0xbd, 0xe1, 0x6c, 0x80,
   0xb5, 0x08, 0xb4, 0x97, 0xd9, 0x33, 0x67, 0x1b, 0xee, 0x5c, 0xd8, 0x94, 0x29, 0x3c, 0xed, 0x4d,
   0x67, 0x02, 0xa3, 0x45, 0x40, 0xc5, 0x89, 0x6d, 0xef, 0x3e, 0x82, 0xb1, 0xf1, 0x6f, 0xdc, 0xc5,
   0x3c, 0x13, 0x8c, 0x4b, 0xfb, 0x1a, 0xb6, 0x5f, 0xd1, 0x93, 0x97, 0xdd, 0xc1, 0xb6, 0xe2, 0x94,
   0xdd, 0xdd, 0xdd, 0x03, 0xfb, 0x62, 0xd6, 0x8a, 0xda, 0xf8, 0x6c, 0x9e, 0x25, 0x92, 0x22, 0x95,
   0x7d, 0x0d, 0x01, 0x35, 0x59, 0x01, 0x1d, 0xfc, 0xa4, 0x9e, 0x65, 0x77, 0x77, 0xbf, 0x86, 0x59,
   0x3b, 0xa8, 0x29, 0xed, 0x0f, 0x8e, 0xe9, 0x08, 0xed, 0x6b, 0xea, 0x48, 0xb4, 0xa8, 0x22, 0xa5,
   0xdd, 0x39, 0x1e, 0x92, 0x8b, 0x7f, 0xf5, 0xa7, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x39, 0xcb,
   0x93, 0x3a, 0x21, 0x00, 0x00,
}