liuxiaolong
2019-06-13 a9cfa37119987ab525d25ba2132ea3c8bbe6b7d2
protomsg.pb.go
@@ -1,13 +1,11 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: protomsg.proto
package protomsg
import (
   encoding_binary "encoding/binary"
   fmt "fmt"
   proto "github.com/gogo/protobuf/proto"
   io "io"
   proto "github.com/golang/protobuf/proto"
   math "math"
)
@@ -20,12 +18,84 @@
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
//TableChanged enum
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
)
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",
}
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,
}
func (x TableChanged) String() string {
   return proto.EnumName(TableChanged_name, int32(x))
}
func (TableChanged) EnumDescriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{0}
}
type DbAction int32
const (
   DbAction_Insert DbAction = 0
   DbAction_Update DbAction = 1
   DbAction_Delete DbAction = 2
)
var DbAction_name = map[int32]string{
   0: "Insert",
   1: "Update",
   2: "Delete",
}
var DbAction_value = map[string]int32{
   "Insert": 0,
   "Update": 1,
   "Delete": 2,
}
func (x DbAction) String() string {
   return proto.EnumName(DbAction_name, int32(x))
}
func (DbAction) EnumDescriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{1}
}
type TaskLabel struct {
   Taskid string   `protobuf:"bytes,1,opt,name=taskid,proto3" json:"taskid,omitempty"`
   Sdkids []string `protobuf:"bytes,2,rep,name=sdkids,proto3" json:"sdkids,omitempty"`
   Index  int32    `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
   Taskid               string   `protobuf:"bytes,1,opt,name=taskid,proto3" json:"taskid,omitempty"`
   Sdkids               []string `protobuf:"bytes,2,rep,name=sdkids,proto3" json:"sdkids,omitempty"`
   Index                int32    `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *TaskLabel) Reset()         { *m = TaskLabel{} }
@@ -34,26 +104,18 @@
func (*TaskLabel) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{0}
}
func (m *TaskLabel) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_TaskLabel.Unmarshal(m, b)
}
func (m *TaskLabel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_TaskLabel.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_TaskLabel.Marshal(b, m, deterministic)
}
func (m *TaskLabel) XXX_Merge(src proto.Message) {
   xxx_messageInfo_TaskLabel.Merge(m, src)
}
func (m *TaskLabel) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_TaskLabel.Size(m)
}
func (m *TaskLabel) XXX_DiscardUnknown() {
   xxx_messageInfo_TaskLabel.DiscardUnknown(m)
@@ -84,9 +146,12 @@
//SdkMessage struct test
type SdkMessage struct {
   Cid     string     `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"`
   Tasklab *TaskLabel `protobuf:"bytes,2,opt,name=tasklab,proto3" json:"tasklab,omitempty"`
   Data    []byte     `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
   Cid                  string     `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"`
   Tasklab              *TaskLabel `protobuf:"bytes,2,opt,name=tasklab,proto3" json:"tasklab,omitempty"`
   Data                 []byte     `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
}
func (m *SdkMessage) Reset()         { *m = SdkMessage{} }
@@ -95,26 +160,18 @@
func (*SdkMessage) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{1}
}
func (m *SdkMessage) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_SdkMessage.Unmarshal(m, b)
}
func (m *SdkMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_SdkMessage.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_SdkMessage.Marshal(b, m, deterministic)
}
func (m *SdkMessage) XXX_Merge(src proto.Message) {
   xxx_messageInfo_SdkMessage.Merge(m, src)
}
func (m *SdkMessage) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_SdkMessage.Size(m)
}
func (m *SdkMessage) XXX_DiscardUnknown() {
   xxx_messageInfo_SdkMessage.DiscardUnknown(m)
@@ -145,9 +202,12 @@
// Image ipc struct
type Image struct {
   Width  int32  `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"`
   Height int32  `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
   Data   []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
   Width                int32    `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"`
   Height               int32    `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
   Data                 []byte   `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Image) Reset()         { *m = Image{} }
@@ -156,26 +216,18 @@
func (*Image) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{2}
}
func (m *Image) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_Image.Unmarshal(m, b)
}
func (m *Image) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_Image.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_Image.Marshal(b, m, deterministic)
}
func (m *Image) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Image.Merge(m, src)
}
func (m *Image) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_Image.Size(m)
}
func (m *Image) XXX_DiscardUnknown() {
   xxx_messageInfo_Image.DiscardUnknown(m)
@@ -206,9 +258,12 @@
//Area结构体
type Area struct {
   Id       int32  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
   Parentid int32  `protobuf:"varint,2,opt,name=parentid,proto3" json:"parentid,omitempty"`
   Name     string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
   Id                   int32    `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
   Parentid             int32    `protobuf:"varint,2,opt,name=parentid,proto3" json:"parentid,omitempty"`
   Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Area) Reset()         { *m = Area{} }
@@ -217,26 +272,18 @@
func (*Area) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{3}
}
func (m *Area) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_Area.Unmarshal(m, b)
}
func (m *Area) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_Area.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_Area.Marshal(b, m, deterministic)
}
func (m *Area) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Area.Merge(m, src)
}
func (m *Area) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_Area.Size(m)
}
func (m *Area) XXX_DiscardUnknown() {
   xxx_messageInfo_Area.DiscardUnknown(m)
@@ -267,20 +314,23 @@
//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"`
   Type      int32   `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"`
   Addr      string  `protobuf:"bytes,4,opt,name=addr,proto3" json:"addr,omitempty"`
   Areaid    int32   `protobuf:"varint,5,opt,name=areaid,proto3" json:"areaid,omitempty"`
   Longitude float32 `protobuf:"fixed32,6,opt,name=longitude,proto3" json:"longitude,omitempty"`
   Latitude  float32 `protobuf:"fixed32,7,opt,name=latitude,proto3" json:"latitude,omitempty"`
   Rtsp      string  `protobuf:"bytes,8,opt,name=rtsp,proto3" json:"rtsp,omitempty"`
   Ip        string  `protobuf:"bytes,9,opt,name=ip,proto3" json:"ip,omitempty"`
   Port      int32   `protobuf:"varint,10,opt,name=port,proto3" json:"port,omitempty"`
   Username  string  `protobuf:"bytes,11,opt,name=username,proto3" json:"username,omitempty"`
   Password  string  `protobuf:"bytes,12,opt,name=password,proto3" json:"password,omitempty"`
   Brand     string  `protobuf:"bytes,13,opt,name=brand,proto3" json:"brand,omitempty"`
   Reserved  string  `protobuf:"bytes,14,opt,name=reserved,proto3" json:"reserved,omitempty"`
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   Type                 int32    `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"`
   Addr                 string   `protobuf:"bytes,4,opt,name=addr,proto3" json:"addr,omitempty"`
   Areaid               int32    `protobuf:"varint,5,opt,name=areaid,proto3" json:"areaid,omitempty"`
   Longitude            float32  `protobuf:"fixed32,6,opt,name=longitude,proto3" json:"longitude,omitempty"`
   Latitude             float32  `protobuf:"fixed32,7,opt,name=latitude,proto3" json:"latitude,omitempty"`
   Rtsp                 string   `protobuf:"bytes,8,opt,name=rtsp,proto3" json:"rtsp,omitempty"`
   Ip                   string   `protobuf:"bytes,9,opt,name=ip,proto3" json:"ip,omitempty"`
   Port                 int32    `protobuf:"varint,10,opt,name=port,proto3" json:"port,omitempty"`
   Username             string   `protobuf:"bytes,11,opt,name=username,proto3" json:"username,omitempty"`
   Password             string   `protobuf:"bytes,12,opt,name=password,proto3" json:"password,omitempty"`
   Brand                string   `protobuf:"bytes,13,opt,name=brand,proto3" json:"brand,omitempty"`
   Reserved             string   `protobuf:"bytes,14,opt,name=reserved,proto3" json:"reserved,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Camera) Reset()         { *m = Camera{} }
@@ -289,26 +339,18 @@
func (*Camera) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{4}
}
func (m *Camera) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_Camera.Unmarshal(m, b)
}
func (m *Camera) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_Camera.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_Camera.Marshal(b, m, deterministic)
}
func (m *Camera) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Camera.Merge(m, src)
}
func (m *Camera) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_Camera.Size(m)
}
func (m *Camera) XXX_DiscardUnknown() {
   xxx_messageInfo_Camera.DiscardUnknown(m)
@@ -416,8 +458,11 @@
//摄像机的任务信息
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"`
   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{} }
@@ -426,26 +471,18 @@
func (*CameraAndTaskInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{5}
}
func (m *CameraAndTaskInfo) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_CameraAndTaskInfo.Unmarshal(m, b)
}
func (m *CameraAndTaskInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_CameraAndTaskInfo.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   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 m.Size()
   return xxx_messageInfo_CameraAndTaskInfo.Size(m)
}
func (m *CameraAndTaskInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraAndTaskInfo.DiscardUnknown(m)
@@ -469,14 +506,17 @@
//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"`
   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{} }
@@ -485,26 +525,18 @@
func (*Task) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{6}
}
func (m *Task) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_Task.Unmarshal(m, b)
}
func (m *Task) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_Task.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   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 m.Size()
   return xxx_messageInfo_Task.Size(m)
}
func (m *Task) XXX_DiscardUnknown() {
   xxx_messageInfo_Task.DiscardUnknown(m)
@@ -569,8 +601,11 @@
}
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"`
   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{} }
@@ -579,26 +614,18 @@
func (*TaskSdkInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{7}
}
func (m *TaskSdkInfo) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_TaskSdkInfo.Unmarshal(m, b)
}
func (m *TaskSdkInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_TaskSdkInfo.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   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 m.Size()
   return xxx_messageInfo_TaskSdkInfo.Size(m)
}
func (m *TaskSdkInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_TaskSdkInfo.DiscardUnknown(m)
@@ -622,18 +649,21 @@
//摄像机任务
type CameraTask struct {
   Id          string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   CameraIds   string    `protobuf:"bytes,2,opt,name=camera_ids,json=cameraIds,proto3" json:"camera_ids,omitempty"`
   TaskId      string    `protobuf:"bytes,3,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
   TimeRule    []*DayCtl `protobuf:"bytes,4,rep,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"`
   LinkGroupId string    `protobuf:"bytes,12,opt,name=link_group_id,json=linkGroupId,proto3" json:"link_group_id,omitempty"`
   Id                   string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   CameraIds            string    `protobuf:"bytes,2,opt,name=camera_ids,json=cameraIds,proto3" json:"camera_ids,omitempty"`
   TaskId               string    `protobuf:"bytes,3,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
   TimeRule             []*DayCtl `protobuf:"bytes,4,rep,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"`
   LinkGroupId          string    `protobuf:"bytes,12,opt,name=link_group_id,json=linkGroupId,proto3" json:"link_group_id,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
}
func (m *CameraTask) Reset()         { *m = CameraTask{} }
@@ -642,26 +672,18 @@
func (*CameraTask) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{8}
}
func (m *CameraTask) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_CameraTask.Unmarshal(m, b)
}
func (m *CameraTask) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_CameraTask.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   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 m.Size()
   return xxx_messageInfo_CameraTask.Size(m)
}
func (m *CameraTask) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraTask.DiscardUnknown(m)
@@ -753,38 +775,97 @@
   return ""
}
//摄像机布防的时间规则,可以设置多个,用id关联到具体的规则配置中
type CameraTimerule 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"`
   CameraId             string    `protobuf:"bytes,3,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"`
   TimeRule             []*DayCtl `protobuf:"bytes,4,rep,name=time_rule,json=timeRule,proto3" json:"time_rule,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
}
func (m *CameraTimerule) Reset()         { *m = CameraTimerule{} }
func (m *CameraTimerule) String() string { return proto.CompactTextString(m) }
func (*CameraTimerule) ProtoMessage()    {}
func (*CameraTimerule) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{9}
}
func (m *CameraTimerule) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraTimerule.Unmarshal(m, b)
}
func (m *CameraTimerule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraTimerule.Marshal(b, m, deterministic)
}
func (m *CameraTimerule) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraTimerule.Merge(m, src)
}
func (m *CameraTimerule) XXX_Size() int {
   return xxx_messageInfo_CameraTimerule.Size(m)
}
func (m *CameraTimerule) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraTimerule.DiscardUnknown(m)
}
var xxx_messageInfo_CameraTimerule proto.InternalMessageInfo
func (m *CameraTimerule) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *CameraTimerule) GetName() string {
   if m != nil {
      return m.Name
   }
   return ""
}
func (m *CameraTimerule) GetCameraId() string {
   if m != nil {
      return m.CameraId
   }
   return ""
}
func (m *CameraTimerule) GetTimeRule() []*DayCtl {
   if m != nil {
      return m.TimeRule
   }
   return nil
}
//DayCtl struct   每天的时间控制规则
type DayCtl struct {
   Day       int32        `protobuf:"varint,1,opt,name=day,proto3" json:"day,omitempty"`
   TimeRange []*TimeRange `protobuf:"bytes,2,rep,name=time_range,json=timeRange,proto3" json:"time_range,omitempty"`
   Day                  int32        `protobuf:"varint,1,opt,name=day,proto3" json:"day,omitempty"`
   TimeRange            []*TimeRange `protobuf:"bytes,2,rep,name=time_range,json=timeRange,proto3" json:"time_range,omitempty"`
   XXX_NoUnkeyedLiteral struct{}     `json:"-"`
   XXX_unrecognized     []byte       `json:"-"`
   XXX_sizecache        int32        `json:"-"`
}
func (m *DayCtl) Reset()         { *m = DayCtl{} }
func (m *DayCtl) String() string { return proto.CompactTextString(m) }
func (*DayCtl) ProtoMessage()    {}
func (*DayCtl) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{9}
   return fileDescriptor_32de24555f916688, []int{10}
}
func (m *DayCtl) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_DayCtl.Unmarshal(m, b)
}
func (m *DayCtl) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_DayCtl.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_DayCtl.Marshal(b, m, deterministic)
}
func (m *DayCtl) XXX_Merge(src proto.Message) {
   xxx_messageInfo_DayCtl.Merge(m, src)
}
func (m *DayCtl) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_DayCtl.Size(m)
}
func (m *DayCtl) XXX_DiscardUnknown() {
   xxx_messageInfo_DayCtl.DiscardUnknown(m)
@@ -808,36 +889,31 @@
//时间起始范围
type TimeRange struct {
   Start string `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"`
   End   string `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"`
   Start                string   `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"`
   End                  string   `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *TimeRange) Reset()         { *m = TimeRange{} }
func (m *TimeRange) String() string { return proto.CompactTextString(m) }
func (*TimeRange) ProtoMessage()    {}
func (*TimeRange) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{10}
   return fileDescriptor_32de24555f916688, []int{11}
}
func (m *TimeRange) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_TimeRange.Unmarshal(m, b)
}
func (m *TimeRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_TimeRange.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_TimeRange.Marshal(b, m, deterministic)
}
func (m *TimeRange) XXX_Merge(src proto.Message) {
   xxx_messageInfo_TimeRange.Merge(m, src)
}
func (m *TimeRange) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_TimeRange.Size(m)
}
func (m *TimeRange) XXX_DiscardUnknown() {
   xxx_messageInfo_TimeRange.DiscardUnknown(m)
@@ -861,37 +937,32 @@
//Polygon struct
type Polygon 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"`
   Points []*Point `protobuf:"bytes,4,rep,name=points,proto3" json:"points,omitempty"`
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   Points               []*Point `protobuf:"bytes,4,rep,name=points,proto3" json:"points,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Polygon) Reset()         { *m = Polygon{} }
func (m *Polygon) String() string { return proto.CompactTextString(m) }
func (*Polygon) ProtoMessage()    {}
func (*Polygon) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{11}
   return fileDescriptor_32de24555f916688, []int{12}
}
func (m *Polygon) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_Polygon.Unmarshal(m, b)
}
func (m *Polygon) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_Polygon.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_Polygon.Marshal(b, m, deterministic)
}
func (m *Polygon) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Polygon.Merge(m, src)
}
func (m *Polygon) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_Polygon.Size(m)
}
func (m *Polygon) XXX_DiscardUnknown() {
   xxx_messageInfo_Polygon.DiscardUnknown(m)
@@ -921,46 +992,41 @@
}
type CameraTaskArgs 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"`
   RuleWithNext string `protobuf:"bytes,11,opt,name=rule_with_next,json=ruleWithNext,proto3" json:"rule_with_next,omitempty"`
   GroupId      string `protobuf:"bytes,12,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
   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"`
   RuleWithNext         string   `protobuf:"bytes,11,opt,name=rule_with_next,json=ruleWithNext,proto3" json:"rule_with_next,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:"-"`
}
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{12}
   return fileDescriptor_32de24555f916688, []int{13}
}
func (m *CameraTaskArgs) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_CameraTaskArgs.Unmarshal(m, b)
}
func (m *CameraTaskArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_CameraTaskArgs.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_CameraTaskArgs.Marshal(b, m, deterministic)
}
func (m *CameraTaskArgs) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraTaskArgs.Merge(m, src)
}
func (m *CameraTaskArgs) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_CameraTaskArgs.Size(m)
}
func (m *CameraTaskArgs) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraTaskArgs.DiscardUnknown(m)
@@ -1054,45 +1120,40 @@
//Sdk struct
type Sdk struct {
   Id         string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   SdkType    string    `protobuf:"bytes,2,opt,name=sdk_type,json=sdkType,proto3" json:"sdk_type,omitempty"`
   SdkName    string    `protobuf:"bytes,3,opt,name=sdk_name,json=sdkName,proto3" json:"sdk_name,omitempty"`
   Args       []*SdkArg `protobuf:"bytes,4,rep,name=args,proto3" json:"args,omitempty"`
   Icon       string    `protobuf:"bytes,5,opt,name=icon,proto3" json:"icon,omitempty"`
   Url        string    `protobuf:"bytes,6,opt,name=url,proto3" json:"url,omitempty"`
   CreateTime string    `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
   UpdateTime string    `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
   CreateBy   string    `protobuf:"bytes,9,opt,name=create_by,json=createBy,proto3" json:"create_by,omitempty"`
   Enabled    string    `protobuf:"bytes,10,opt,name=enabled,proto3" json:"enabled,omitempty"`
   DelFlag    string    `protobuf:"bytes,11,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
   Id                   string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   SdkType              string    `protobuf:"bytes,2,opt,name=sdk_type,json=sdkType,proto3" json:"sdk_type,omitempty"`
   SdkName              string    `protobuf:"bytes,3,opt,name=sdk_name,json=sdkName,proto3" json:"sdk_name,omitempty"`
   Args                 []*SdkArg `protobuf:"bytes,4,rep,name=args,proto3" json:"args,omitempty"`
   Icon                 string    `protobuf:"bytes,5,opt,name=icon,proto3" json:"icon,omitempty"`
   Url                  string    `protobuf:"bytes,6,opt,name=url,proto3" json:"url,omitempty"`
   CreateTime           string    `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
   UpdateTime           string    `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
   CreateBy             string    `protobuf:"bytes,9,opt,name=create_by,json=createBy,proto3" json:"create_by,omitempty"`
   Enabled              string    `protobuf:"bytes,10,opt,name=enabled,proto3" json:"enabled,omitempty"`
   DelFlag              string    `protobuf:"bytes,11,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 *Sdk) Reset()         { *m = Sdk{} }
func (m *Sdk) String() string { return proto.CompactTextString(m) }
func (*Sdk) ProtoMessage()    {}
func (*Sdk) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{13}
   return fileDescriptor_32de24555f916688, []int{14}
}
func (m *Sdk) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_Sdk.Unmarshal(m, b)
}
func (m *Sdk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_Sdk.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_Sdk.Marshal(b, m, deterministic)
}
func (m *Sdk) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Sdk.Merge(m, src)
}
func (m *Sdk) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_Sdk.Size(m)
}
func (m *Sdk) XXX_DiscardUnknown() {
   xxx_messageInfo_Sdk.DiscardUnknown(m)
@@ -1179,40 +1240,35 @@
//SdkArg struct
type SdkArg struct {
   Alias string `protobuf:"bytes,2,opt,name=alias,proto3" json:"alias,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"`
   Must  bool   `protobuf:"varint,5,opt,name=must,proto3" json:"must,omitempty"`
   Range string `protobuf:"bytes,6,opt,name=range,proto3" json:"range,omitempty"`
   Sort  int32  `protobuf:"varint,7,opt,name=sort,proto3" json:"sort,omitempty"`
   Alias                string   `protobuf:"bytes,2,opt,name=alias,proto3" json:"alias,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"`
   Must                 bool     `protobuf:"varint,5,opt,name=must,proto3" json:"must,omitempty"`
   Range                string   `protobuf:"bytes,6,opt,name=range,proto3" json:"range,omitempty"`
   Sort                 int32    `protobuf:"varint,7,opt,name=sort,proto3" json:"sort,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *SdkArg) Reset()         { *m = SdkArg{} }
func (m *SdkArg) String() string { return proto.CompactTextString(m) }
func (*SdkArg) ProtoMessage()    {}
func (*SdkArg) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{14}
   return fileDescriptor_32de24555f916688, []int{15}
}
func (m *SdkArg) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_SdkArg.Unmarshal(m, b)
}
func (m *SdkArg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_SdkArg.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_SdkArg.Marshal(b, m, deterministic)
}
func (m *SdkArg) XXX_Merge(src proto.Message) {
   xxx_messageInfo_SdkArg.Merge(m, src)
}
func (m *SdkArg) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_SdkArg.Size(m)
}
func (m *SdkArg) XXX_DiscardUnknown() {
   xxx_messageInfo_SdkArg.DiscardUnknown(m)
@@ -1264,36 +1320,31 @@
// struct for sdk
type Point struct {
   X int32 `protobuf:"varint,1,opt,name=x,proto3" json:"x,omitempty"`
   Y int32 `protobuf:"varint,2,opt,name=y,proto3" json:"y,omitempty"`
   X                    int32    `protobuf:"varint,1,opt,name=x,proto3" json:"x,omitempty"`
   Y                    int32    `protobuf:"varint,2,opt,name=y,proto3" json:"y,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Point) Reset()         { *m = Point{} }
func (m *Point) String() string { return proto.CompactTextString(m) }
func (*Point) ProtoMessage()    {}
func (*Point) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{15}
   return fileDescriptor_32de24555f916688, []int{16}
}
func (m *Point) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_Point.Unmarshal(m, b)
}
func (m *Point) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_Point.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_Point.Marshal(b, m, deterministic)
}
func (m *Point) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Point.Merge(m, src)
}
func (m *Point) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_Point.Size(m)
}
func (m *Point) XXX_DiscardUnknown() {
   xxx_messageInfo_Point.DiscardUnknown(m)
@@ -1316,38 +1367,33 @@
}
type Rect struct {
   Left   int32 `protobuf:"varint,1,opt,name=left,proto3" json:"left,omitempty"`
   Top    int32 `protobuf:"varint,2,opt,name=top,proto3" json:"top,omitempty"`
   Right  int32 `protobuf:"varint,3,opt,name=right,proto3" json:"right,omitempty"`
   Bottom int32 `protobuf:"varint,4,opt,name=bottom,proto3" json:"bottom,omitempty"`
   Left                 int32    `protobuf:"varint,1,opt,name=left,proto3" json:"left,omitempty"`
   Top                  int32    `protobuf:"varint,2,opt,name=top,proto3" json:"top,omitempty"`
   Right                int32    `protobuf:"varint,3,opt,name=right,proto3" json:"right,omitempty"`
   Bottom               int32    `protobuf:"varint,4,opt,name=bottom,proto3" json:"bottom,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Rect) Reset()         { *m = Rect{} }
func (m *Rect) String() string { return proto.CompactTextString(m) }
func (*Rect) ProtoMessage()    {}
func (*Rect) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{16}
   return fileDescriptor_32de24555f916688, []int{17}
}
func (m *Rect) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_Rect.Unmarshal(m, b)
}
func (m *Rect) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_Rect.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_Rect.Marshal(b, m, deterministic)
}
func (m *Rect) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Rect.Merge(m, src)
}
func (m *Rect) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_Rect.Size(m)
}
func (m *Rect) XXX_DiscardUnknown() {
   xxx_messageInfo_Rect.DiscardUnknown(m)
@@ -1384,38 +1430,33 @@
}
type FaceAngle struct {
   Yaw        int32   `protobuf:"varint,1,opt,name=yaw,proto3" json:"yaw,omitempty"`
   Pitch      int32   `protobuf:"varint,2,opt,name=pitch,proto3" json:"pitch,omitempty"`
   Roll       int32   `protobuf:"varint,3,opt,name=roll,proto3" json:"roll,omitempty"`
   Confidence float32 `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
   Yaw                  int32    `protobuf:"varint,1,opt,name=yaw,proto3" json:"yaw,omitempty"`
   Pitch                int32    `protobuf:"varint,2,opt,name=pitch,proto3" json:"pitch,omitempty"`
   Roll                 int32    `protobuf:"varint,3,opt,name=roll,proto3" json:"roll,omitempty"`
   Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *FaceAngle) Reset()         { *m = FaceAngle{} }
func (m *FaceAngle) String() string { return proto.CompactTextString(m) }
func (*FaceAngle) ProtoMessage()    {}
func (*FaceAngle) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{17}
   return fileDescriptor_32de24555f916688, []int{18}
}
func (m *FaceAngle) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_FaceAngle.Unmarshal(m, b)
}
func (m *FaceAngle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_FaceAngle.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_FaceAngle.Marshal(b, m, deterministic)
}
func (m *FaceAngle) XXX_Merge(src proto.Message) {
   xxx_messageInfo_FaceAngle.Merge(m, src)
}
func (m *FaceAngle) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_FaceAngle.Size(m)
}
func (m *FaceAngle) XXX_DiscardUnknown() {
   xxx_messageInfo_FaceAngle.DiscardUnknown(m)
@@ -1452,39 +1493,34 @@
}
type ThftResult struct {
   Gender int32 `protobuf:"varint,1,opt,name=gender,proto3" json:"gender,omitempty"`
   Age    int32 `protobuf:"varint,2,opt,name=age,proto3" json:"age,omitempty"`
   Race   int32 `protobuf:"varint,3,opt,name=race,proto3" json:"race,omitempty"`
   Beauty int32 `protobuf:"varint,4,opt,name=beauty,proto3" json:"beauty,omitempty"`
   Smile  int32 `protobuf:"varint,5,opt,name=smile,proto3" json:"smile,omitempty"`
   Gender               int32    `protobuf:"varint,1,opt,name=gender,proto3" json:"gender,omitempty"`
   Age                  int32    `protobuf:"varint,2,opt,name=age,proto3" json:"age,omitempty"`
   Race                 int32    `protobuf:"varint,3,opt,name=race,proto3" json:"race,omitempty"`
   Beauty               int32    `protobuf:"varint,4,opt,name=beauty,proto3" json:"beauty,omitempty"`
   Smile                int32    `protobuf:"varint,5,opt,name=smile,proto3" json:"smile,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *ThftResult) Reset()         { *m = ThftResult{} }
func (m *ThftResult) String() string { return proto.CompactTextString(m) }
func (*ThftResult) ProtoMessage()    {}
func (*ThftResult) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{18}
   return fileDescriptor_32de24555f916688, []int{19}
}
func (m *ThftResult) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_ThftResult.Unmarshal(m, b)
}
func (m *ThftResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ThftResult.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_ThftResult.Marshal(b, m, deterministic)
}
func (m *ThftResult) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ThftResult.Merge(m, src)
}
func (m *ThftResult) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_ThftResult.Size(m)
}
func (m *ThftResult) XXX_DiscardUnknown() {
   xxx_messageInfo_ThftResult.DiscardUnknown(m)
@@ -1528,42 +1564,37 @@
}
type FacePos struct {
   RcFace     *Rect      `protobuf:"bytes,1,opt,name=rcFace,proto3" json:"rcFace,omitempty"`
   PtLeftEye  *Point     `protobuf:"bytes,2,opt,name=ptLeftEye,proto3" json:"ptLeftEye,omitempty"`
   PtRightEye *Point     `protobuf:"bytes,3,opt,name=ptRightEye,proto3" json:"ptRightEye,omitempty"`
   PtMouth    *Point     `protobuf:"bytes,4,opt,name=ptMouth,proto3" json:"ptMouth,omitempty"`
   PtNose     *Point     `protobuf:"bytes,5,opt,name=ptNose,proto3" json:"ptNose,omitempty"`
   FAngle     *FaceAngle `protobuf:"bytes,6,opt,name=fAngle,proto3" json:"fAngle,omitempty"`
   Quality    int32      `protobuf:"varint,7,opt,name=quality,proto3" json:"quality,omitempty"`
   FacialData []byte     `protobuf:"bytes,8,opt,name=facialData,proto3" json:"facialData,omitempty"`
   RcFace               *Rect      `protobuf:"bytes,1,opt,name=rcFace,proto3" json:"rcFace,omitempty"`
   PtLeftEye            *Point     `protobuf:"bytes,2,opt,name=ptLeftEye,proto3" json:"ptLeftEye,omitempty"`
   PtRightEye           *Point     `protobuf:"bytes,3,opt,name=ptRightEye,proto3" json:"ptRightEye,omitempty"`
   PtMouth              *Point     `protobuf:"bytes,4,opt,name=ptMouth,proto3" json:"ptMouth,omitempty"`
   PtNose               *Point     `protobuf:"bytes,5,opt,name=ptNose,proto3" json:"ptNose,omitempty"`
   FAngle               *FaceAngle `protobuf:"bytes,6,opt,name=fAngle,proto3" json:"fAngle,omitempty"`
   Quality              int32      `protobuf:"varint,7,opt,name=quality,proto3" json:"quality,omitempty"`
   FacialData           []byte     `protobuf:"bytes,8,opt,name=facialData,proto3" json:"facialData,omitempty"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
}
func (m *FacePos) Reset()         { *m = FacePos{} }
func (m *FacePos) String() string { return proto.CompactTextString(m) }
func (*FacePos) ProtoMessage()    {}
func (*FacePos) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{19}
   return fileDescriptor_32de24555f916688, []int{20}
}
func (m *FacePos) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_FacePos.Unmarshal(m, b)
}
func (m *FacePos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_FacePos.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_FacePos.Marshal(b, m, deterministic)
}
func (m *FacePos) XXX_Merge(src proto.Message) {
   xxx_messageInfo_FacePos.Merge(m, src)
}
func (m *FacePos) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_FacePos.Size(m)
}
func (m *FacePos) XXX_DiscardUnknown() {
   xxx_messageInfo_FacePos.DiscardUnknown(m)
@@ -1628,43 +1659,38 @@
}
type FaceInfo struct {
   RcFace     *Rect      `protobuf:"bytes,1,opt,name=rcFace,proto3" json:"rcFace,omitempty"`
   PtLeftEye  *Point     `protobuf:"bytes,2,opt,name=ptLeftEye,proto3" json:"ptLeftEye,omitempty"`
   PtRightEye *Point     `protobuf:"bytes,3,opt,name=ptRightEye,proto3" json:"ptRightEye,omitempty"`
   PtMouth    *Point     `protobuf:"bytes,4,opt,name=ptMouth,proto3" json:"ptMouth,omitempty"`
   PtNose     *Point     `protobuf:"bytes,5,opt,name=ptNose,proto3" json:"ptNose,omitempty"`
   FAngle     *FaceAngle `protobuf:"bytes,6,opt,name=fAngle,proto3" json:"fAngle,omitempty"`
   Quality    int32      `protobuf:"varint,7,opt,name=quality,proto3" json:"quality,omitempty"`
   FacialData []byte     `protobuf:"bytes,8,opt,name=facialData,proto3" json:"facialData,omitempty"`
   FaceID     int64      `protobuf:"varint,9,opt,name=faceID,proto3" json:"faceID,omitempty"`
   RcFace               *Rect      `protobuf:"bytes,1,opt,name=rcFace,proto3" json:"rcFace,omitempty"`
   PtLeftEye            *Point     `protobuf:"bytes,2,opt,name=ptLeftEye,proto3" json:"ptLeftEye,omitempty"`
   PtRightEye           *Point     `protobuf:"bytes,3,opt,name=ptRightEye,proto3" json:"ptRightEye,omitempty"`
   PtMouth              *Point     `protobuf:"bytes,4,opt,name=ptMouth,proto3" json:"ptMouth,omitempty"`
   PtNose               *Point     `protobuf:"bytes,5,opt,name=ptNose,proto3" json:"ptNose,omitempty"`
   FAngle               *FaceAngle `protobuf:"bytes,6,opt,name=fAngle,proto3" json:"fAngle,omitempty"`
   Quality              int32      `protobuf:"varint,7,opt,name=quality,proto3" json:"quality,omitempty"`
   FacialData           []byte     `protobuf:"bytes,8,opt,name=facialData,proto3" json:"facialData,omitempty"`
   FaceID               int64      `protobuf:"varint,9,opt,name=faceID,proto3" json:"faceID,omitempty"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
}
func (m *FaceInfo) Reset()         { *m = FaceInfo{} }
func (m *FaceInfo) String() string { return proto.CompactTextString(m) }
func (*FaceInfo) ProtoMessage()    {}
func (*FaceInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{20}
   return fileDescriptor_32de24555f916688, []int{21}
}
func (m *FaceInfo) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_FaceInfo.Unmarshal(m, b)
}
func (m *FaceInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_FaceInfo.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_FaceInfo.Marshal(b, m, deterministic)
}
func (m *FaceInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_FaceInfo.Merge(m, src)
}
func (m *FaceInfo) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_FaceInfo.Size(m)
}
func (m *FaceInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_FaceInfo.DiscardUnknown(m)
@@ -1736,37 +1762,32 @@
}
type ObjInfo struct {
   RcObj *Rect   `protobuf:"bytes,1,opt,name=rcObj,proto3" json:"rcObj,omitempty"`
   Typ   int32   `protobuf:"varint,2,opt,name=typ,proto3" json:"typ,omitempty"`
   Prob  float32 `protobuf:"fixed32,3,opt,name=prob,proto3" json:"prob,omitempty"`
   RcObj                *Rect    `protobuf:"bytes,1,opt,name=rcObj,proto3" json:"rcObj,omitempty"`
   Typ                  int32    `protobuf:"varint,2,opt,name=typ,proto3" json:"typ,omitempty"`
   Prob                 float32  `protobuf:"fixed32,3,opt,name=prob,proto3" json:"prob,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *ObjInfo) Reset()         { *m = ObjInfo{} }
func (m *ObjInfo) String() string { return proto.CompactTextString(m) }
func (*ObjInfo) ProtoMessage()    {}
func (*ObjInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{21}
   return fileDescriptor_32de24555f916688, []int{22}
}
func (m *ObjInfo) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_ObjInfo.Unmarshal(m, b)
}
func (m *ObjInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ObjInfo.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_ObjInfo.Marshal(b, m, deterministic)
}
func (m *ObjInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ObjInfo.Merge(m, src)
}
func (m *ObjInfo) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_ObjInfo.Size(m)
}
func (m *ObjInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_ObjInfo.DiscardUnknown(m)
@@ -1797,36 +1818,31 @@
// sdk face property
type ParamFacePos struct {
   Pos *FacePos `protobuf:"bytes,1,opt,name=pos,proto3" json:"pos,omitempty"`
   Img *Image   `protobuf:"bytes,2,opt,name=img,proto3" json:"img,omitempty"`
   Pos                  *FacePos `protobuf:"bytes,1,opt,name=pos,proto3" json:"pos,omitempty"`
   Img                  *Image   `protobuf:"bytes,2,opt,name=img,proto3" json:"img,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *ParamFacePos) Reset()         { *m = ParamFacePos{} }
func (m *ParamFacePos) String() string { return proto.CompactTextString(m) }
func (*ParamFacePos) ProtoMessage()    {}
func (*ParamFacePos) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{22}
   return fileDescriptor_32de24555f916688, []int{23}
}
func (m *ParamFacePos) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_ParamFacePos.Unmarshal(m, b)
}
func (m *ParamFacePos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ParamFacePos.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_ParamFacePos.Marshal(b, m, deterministic)
}
func (m *ParamFacePos) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFacePos.Merge(m, src)
}
func (m *ParamFacePos) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_ParamFacePos.Size(m)
}
func (m *ParamFacePos) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFacePos.DiscardUnknown(m)
@@ -1850,36 +1866,31 @@
// sdk face extract
type ParamFaceCompare struct {
   Feat1 []byte `protobuf:"bytes,1,opt,name=feat1,proto3" json:"feat1,omitempty"`
   Feat2 []byte `protobuf:"bytes,2,opt,name=feat2,proto3" json:"feat2,omitempty"`
   Feat1                []byte   `protobuf:"bytes,1,opt,name=feat1,proto3" json:"feat1,omitempty"`
   Feat2                []byte   `protobuf:"bytes,2,opt,name=feat2,proto3" json:"feat2,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *ParamFaceCompare) Reset()         { *m = ParamFaceCompare{} }
func (m *ParamFaceCompare) String() string { return proto.CompactTextString(m) }
func (*ParamFaceCompare) ProtoMessage()    {}
func (*ParamFaceCompare) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{23}
   return fileDescriptor_32de24555f916688, []int{24}
}
func (m *ParamFaceCompare) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_ParamFaceCompare.Unmarshal(m, b)
}
func (m *ParamFaceCompare) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ParamFaceCompare.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_ParamFaceCompare.Marshal(b, m, deterministic)
}
func (m *ParamFaceCompare) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFaceCompare.Merge(m, src)
}
func (m *ParamFaceCompare) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_ParamFaceCompare.Size(m)
}
func (m *ParamFaceCompare) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFaceCompare.DiscardUnknown(m)
@@ -1901,7 +1912,446 @@
   return nil
}
// sdk face property
type ParamFaceProperty struct {
   Result               *ThftResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
   Img                  *Image      `protobuf:"bytes,2,opt,name=img,proto3" json:"img,omitempty"`
   XXX_NoUnkeyedLiteral struct{}    `json:"-"`
   XXX_unrecognized     []byte      `json:"-"`
   XXX_sizecache        int32       `json:"-"`
}
func (m *ParamFaceProperty) Reset()         { *m = ParamFaceProperty{} }
func (m *ParamFaceProperty) String() string { return proto.CompactTextString(m) }
func (*ParamFaceProperty) ProtoMessage()    {}
func (*ParamFaceProperty) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{25}
}
func (m *ParamFaceProperty) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ParamFaceProperty.Unmarshal(m, b)
}
func (m *ParamFaceProperty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ParamFaceProperty.Marshal(b, m, deterministic)
}
func (m *ParamFaceProperty) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFaceProperty.Merge(m, src)
}
func (m *ParamFaceProperty) XXX_Size() int {
   return xxx_messageInfo_ParamFaceProperty.Size(m)
}
func (m *ParamFaceProperty) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFaceProperty.DiscardUnknown(m)
}
var xxx_messageInfo_ParamFaceProperty proto.InternalMessageInfo
func (m *ParamFaceProperty) GetResult() *ThftResult {
   if m != nil {
      return m.Result
   }
   return nil
}
func (m *ParamFaceProperty) GetImg() *Image {
   if m != nil {
      return m.Img
   }
   return nil
}
// sdk yolo detect
type ParamYoloObj struct {
   Infos                []*ObjInfo `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos,omitempty"`
   Img                  *Image     `protobuf:"bytes,2,opt,name=img,proto3" json:"img,omitempty"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
}
func (m *ParamYoloObj) Reset()         { *m = ParamYoloObj{} }
func (m *ParamYoloObj) String() string { return proto.CompactTextString(m) }
func (*ParamYoloObj) ProtoMessage()    {}
func (*ParamYoloObj) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{26}
}
func (m *ParamYoloObj) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ParamYoloObj.Unmarshal(m, b)
}
func (m *ParamYoloObj) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ParamYoloObj.Marshal(b, m, deterministic)
}
func (m *ParamYoloObj) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamYoloObj.Merge(m, src)
}
func (m *ParamYoloObj) XXX_Size() int {
   return xxx_messageInfo_ParamYoloObj.Size(m)
}
func (m *ParamYoloObj) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamYoloObj.DiscardUnknown(m)
}
var xxx_messageInfo_ParamYoloObj proto.InternalMessageInfo
func (m *ParamYoloObj) GetInfos() []*ObjInfo {
   if m != nil {
      return m.Infos
   }
   return nil
}
func (m *ParamYoloObj) GetImg() *Image {
   if m != nil {
      return m.Img
   }
   return nil
}
//publish db change message
type DbChangeMessage struct {
   Table                TableChanged `protobuf:"varint,1,opt,name=table,proto3,enum=protomsg.TableChanged" json:"table,omitempty"`
   Id                   string       `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
   Action               DbAction     `protobuf:"varint,3,opt,name=action,proto3,enum=protomsg.DbAction" json:"action,omitempty"`
   Info                 string       `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
   XXX_NoUnkeyedLiteral struct{}     `json:"-"`
   XXX_unrecognized     []byte       `json:"-"`
   XXX_sizecache        int32        `json:"-"`
}
func (m *DbChangeMessage) Reset()         { *m = DbChangeMessage{} }
func (m *DbChangeMessage) String() string { return proto.CompactTextString(m) }
func (*DbChangeMessage) ProtoMessage()    {}
func (*DbChangeMessage) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{27}
}
func (m *DbChangeMessage) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_DbChangeMessage.Unmarshal(m, b)
}
func (m *DbChangeMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_DbChangeMessage.Marshal(b, m, deterministic)
}
func (m *DbChangeMessage) XXX_Merge(src proto.Message) {
   xxx_messageInfo_DbChangeMessage.Merge(m, src)
}
func (m *DbChangeMessage) XXX_Size() int {
   return xxx_messageInfo_DbChangeMessage.Size(m)
}
func (m *DbChangeMessage) XXX_DiscardUnknown() {
   xxx_messageInfo_DbChangeMessage.DiscardUnknown(m)
}
var xxx_messageInfo_DbChangeMessage proto.InternalMessageInfo
func (m *DbChangeMessage) GetTable() TableChanged {
   if m != nil {
      return m.Table
   }
   return TableChanged_T_Camera
}
func (m *DbChangeMessage) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *DbChangeMessage) GetAction() DbAction {
   if m != nil {
      return m.Action
   }
   return DbAction_Insert
}
func (m *DbChangeMessage) GetInfo() string {
   if m != nil {
      return m.Info
   }
   return ""
}
type CameraPolygon 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"`
   Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
   Polygon              string   `protobuf:"bytes,4,opt,name=polygon,proto3" json:"polygon,omitempty"`
   TriggerLine          string   `protobuf:"bytes,5,opt,name=trigger_line,json=triggerLine,proto3" json:"trigger_line,omitempty"`
   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"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *CameraPolygon) Reset()         { *m = CameraPolygon{} }
func (m *CameraPolygon) String() string { return proto.CompactTextString(m) }
func (*CameraPolygon) ProtoMessage()    {}
func (*CameraPolygon) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{28}
}
func (m *CameraPolygon) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraPolygon.Unmarshal(m, b)
}
func (m *CameraPolygon) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraPolygon.Marshal(b, m, deterministic)
}
func (m *CameraPolygon) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraPolygon.Merge(m, src)
}
func (m *CameraPolygon) XXX_Size() int {
   return xxx_messageInfo_CameraPolygon.Size(m)
}
func (m *CameraPolygon) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraPolygon.DiscardUnknown(m)
}
var xxx_messageInfo_CameraPolygon proto.InternalMessageInfo
func (m *CameraPolygon) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *CameraPolygon) GetCameraId() string {
   if m != nil {
      return m.CameraId
   }
   return ""
}
func (m *CameraPolygon) GetName() string {
   if m != nil {
      return m.Name
   }
   return ""
}
func (m *CameraPolygon) GetPolygon() string {
   if m != nil {
      return m.Polygon
   }
   return ""
}
func (m *CameraPolygon) GetTriggerLine() string {
   if m != nil {
      return m.TriggerLine
   }
   return ""
}
func (m *CameraPolygon) GetDirectionLine() string {
   if m != nil {
      return m.DirectionLine
   }
   return ""
}
func (m *CameraPolygon) GetType() string {
   if m != nil {
      return m.Type
   }
   return ""
}
func (m *CameraPolygon) GetDefenceState() int32 {
   if m != nil {
      return m.DefenceState
   }
   return 0
}
type CameraTaskArg 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:"-"`
}
func (m *CameraTaskArg) Reset()         { *m = CameraTaskArg{} }
func (m *CameraTaskArg) String() string { return proto.CompactTextString(m) }
func (*CameraTaskArg) ProtoMessage()    {}
func (*CameraTaskArg) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{29}
}
func (m *CameraTaskArg) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraTaskArg.Unmarshal(m, b)
}
func (m *CameraTaskArg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraTaskArg.Marshal(b, m, deterministic)
}
func (m *CameraTaskArg) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraTaskArg.Merge(m, src)
}
func (m *CameraTaskArg) XXX_Size() int {
   return xxx_messageInfo_CameraTaskArg.Size(m)
}
func (m *CameraTaskArg) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraTaskArg.DiscardUnknown(m)
}
var xxx_messageInfo_CameraTaskArg proto.InternalMessageInfo
func (m *CameraTaskArg) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *CameraTaskArg) GetCameraTaskId() string {
   if m != nil {
      return m.CameraTaskId
   }
   return ""
}
func (m *CameraTaskArg) GetCameraId() string {
   if m != nil {
      return m.CameraId
   }
   return ""
}
func (m *CameraTaskArg) GetPolygonId() string {
   if m != nil {
      return m.PolygonId
   }
   return ""
}
func (m *CameraTaskArg) GetSdkId() string {
   if m != nil {
      return m.SdkId
   }
   return ""
}
func (m *CameraTaskArg) GetSdkArgAlias() string {
   if m != nil {
      return m.SdkArgAlias
   }
   return ""
}
func (m *CameraTaskArg) GetOperator() string {
   if m != nil {
      return m.Operator
   }
   return ""
}
func (m *CameraTaskArg) GetOperatorType() string {
   if m != nil {
      return m.OperatorType
   }
   return ""
}
func (m *CameraTaskArg) GetSdkArgValue() string {
   if m != nil {
      return m.SdkArgValue
   }
   return ""
}
func (m *CameraTaskArg) GetSort() int32 {
   if m != nil {
      return m.Sort
   }
   return 0
}
func (m *CameraTaskArg) GetRuleWithPre() string {
   if m != nil {
      return m.RuleWithPre
   }
   return ""
}
func (m *CameraTaskArg) GetGroupId() string {
   if m != nil {
      return m.GroupId
   }
   return ""
}
type CameraTimeRule struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
   TimeRule             string   `protobuf:"bytes,4,opt,name=time_rule,json=timeRule,proto3" json:"time_rule,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *CameraTimeRule) Reset()         { *m = CameraTimeRule{} }
func (m *CameraTimeRule) String() string { return proto.CompactTextString(m) }
func (*CameraTimeRule) ProtoMessage()    {}
func (*CameraTimeRule) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{30}
}
func (m *CameraTimeRule) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraTimeRule.Unmarshal(m, b)
}
func (m *CameraTimeRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraTimeRule.Marshal(b, m, deterministic)
}
func (m *CameraTimeRule) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraTimeRule.Merge(m, src)
}
func (m *CameraTimeRule) XXX_Size() int {
   return xxx_messageInfo_CameraTimeRule.Size(m)
}
func (m *CameraTimeRule) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraTimeRule.DiscardUnknown(m)
}
var xxx_messageInfo_CameraTimeRule proto.InternalMessageInfo
func (m *CameraTimeRule) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *CameraTimeRule) GetName() string {
   if m != nil {
      return m.Name
   }
   return ""
}
func (m *CameraTimeRule) GetTimeRule() string {
   if m != nil {
      return m.TimeRule
   }
   return ""
}
func init() {
   proto.RegisterEnum("protomsg.TableChanged", TableChanged_name, TableChanged_value)
   proto.RegisterEnum("protomsg.DbAction", DbAction_name, DbAction_value)
   proto.RegisterType((*TaskLabel)(nil), "protomsg.TaskLabel")
   proto.RegisterType((*SdkMessage)(nil), "protomsg.SdkMessage")
   proto.RegisterType((*Image)(nil), "protomsg.Image")
@@ -1911,6 +2361,7 @@
   proto.RegisterType((*Task)(nil), "protomsg.Task")
   proto.RegisterType((*TaskSdkInfo)(nil), "protomsg.TaskSdkInfo")
   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")
@@ -1926,7028 +2377,136 @@
   proto.RegisterType((*ObjInfo)(nil), "protomsg.ObjInfo")
   proto.RegisterType((*ParamFacePos)(nil), "protomsg.ParamFacePos")
   proto.RegisterType((*ParamFaceCompare)(nil), "protomsg.ParamFaceCompare")
   proto.RegisterType((*ParamFaceProperty)(nil), "protomsg.ParamFaceProperty")
   proto.RegisterType((*ParamYoloObj)(nil), "protomsg.ParamYoloObj")
   proto.RegisterType((*DbChangeMessage)(nil), "protomsg.DbChangeMessage")
   proto.RegisterType((*CameraPolygon)(nil), "protomsg.CameraPolygon")
   proto.RegisterType((*CameraTaskArg)(nil), "protomsg.CameraTaskArg")
   proto.RegisterType((*CameraTimeRule)(nil), "protomsg.CameraTimeRule")
}
func init() { proto.RegisterFile("protomsg.proto", fileDescriptor_32de24555f916688) }
var fileDescriptor_32de24555f916688 = []byte{
   // 1559 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x57, 0x4f, 0x6f, 0x1b, 0x45,
   0x14, 0xaf, 0xff, 0x7b, 0x9f, 0x9d, 0xd0, 0x2e, 0x05, 0xb6, 0x05, 0x42, 0xba, 0x8d, 0x20, 0x08,
   0x51, 0x44, 0x7a, 0x47, 0x72, 0x1b, 0x82, 0x2c, 0xb5, 0x69, 0x98, 0x84, 0x22, 0x71, 0xb1, 0xc6,
   0x3b, 0xe3, 0xf5, 0x36, 0xeb, 0xdd, 0x65, 0x66, 0xdc, 0xc4, 0x77, 0x3e, 0x00, 0xdf, 0x83, 0x2f,
   0xd2, 0x03, 0x87, 0x1e, 0xb9, 0x81, 0x5a, 0x71, 0xe1, 0x0b, 0x70, 0x45, 0xef, 0xcd, 0xec, 0xda,
   0x4e, 0x52, 0x09, 0x89, 0x2b, 0xb7, 0xf7, 0x7b, 0xef, 0xf9, 0xcd, 0x9b, 0xdf, 0xfb, 0xb3, 0x63,
   0xd8, 0x2c, 0x54, 0x6e, 0xf2, 0x99, 0x8e, 0xef, 0x91, 0xe0, 0x77, 0x4b, 0x1c, 0x7e, 0x0b, 0xde,
   0x09, 0xd7, 0xa7, 0x8f, 0xf8, 0x58, 0xa6, 0xfe, 0xbb, 0xd0, 0x36, 0x5c, 0x9f, 0x26, 0x22, 0xa8,
   0x6d, 0xd7, 0x76, 0x3d, 0xe6, 0x10, 0xea, 0xb5, 0x38, 0x4d, 0x84, 0x0e, 0xea, 0xdb, 0x0d, 0xd4,
   0x5b, 0xe4, 0xdf, 0x84, 0x56, 0x92, 0x09, 0x79, 0x1e, 0x34, 0xb6, 0x6b, 0xbb, 0x2d, 0x66, 0x41,
   0xc8, 0x01, 0x8e, 0xc5, 0xe9, 0x63, 0xa9, 0x35, 0x8f, 0xa5, 0x7f, 0x1d, 0x1a, 0x51, 0x15, 0x10,
   0x45, 0xff, 0x73, 0xe8, 0x60, 0xdc, 0x94, 0x8f, 0x83, 0xfa, 0x76, 0x6d, 0xb7, 0xb7, 0xf7, 0xf6,
   0xbd, 0x2a, 0xbd, 0x2a, 0x17, 0x56, 0xfa, 0xf8, 0x3e, 0x34, 0x05, 0x37, 0x9c, 0xce, 0xe8, 0x33,
   0x92, 0xc3, 0x21, 0xb4, 0x86, 0x33, 0x8c, 0x7e, 0x13, 0x5a, 0x67, 0x89, 0x30, 0x53, 0x8a, 0xdf,
   0x62, 0x16, 0x60, 0xbe, 0x53, 0x99, 0xc4, 0x53, 0x43, 0x07, 0xb4, 0x98, 0x43, 0x57, 0x86, 0x3a,
   0x80, 0xe6, 0x40, 0x49, 0xee, 0x6f, 0x42, 0xdd, 0xa5, 0xd9, 0x62, 0xf5, 0x44, 0xf8, 0xb7, 0xa1,
   0x5b, 0x70, 0x25, 0x33, 0x93, 0x08, 0x17, 0xa5, 0xc2, 0x18, 0x27, 0xe3, 0x33, 0x49, 0x71, 0x3c,
   0x46, 0x72, 0xf8, 0xa2, 0x0e, 0xed, 0x87, 0x7c, 0x26, 0xd5, 0x6a, 0x28, 0x8f, 0x42, 0x95, 0xee,
   0xf5, 0xa5, 0x3b, 0xea, 0xcc, 0xa2, 0x90, 0x8e, 0x39, 0x92, 0x51, 0xc7, 0x85, 0x50, 0x41, 0xd3,
   0xfa, 0xa1, 0x8c, 0x57, 0xe1, 0x4a, 0xf2, 0x44, 0x04, 0x2d, 0x7b, 0x15, 0x8b, 0xfc, 0x0f, 0xc0,
   0x4b, 0xf3, 0x2c, 0x4e, 0xcc, 0x5c, 0xc8, 0xa0, 0xbd, 0x5d, 0xdb, 0xad, 0xb3, 0xa5, 0x02, 0x93,
   0x4f, 0xb9, 0xb1, 0xc6, 0x0e, 0x19, 0x2b, 0x8c, 0xa7, 0x28, 0xa3, 0x8b, 0xa0, 0x6b, 0x4f, 0x41,
   0x99, 0x32, 0x2e, 0x02, 0xcf, 0x65, 0x5c, 0xa0, 0x4f, 0x91, 0x2b, 0x13, 0x80, 0xcd, 0x0e, 0x65,
   0x8c, 0x39, 0xd7, 0x52, 0xd1, 0x4d, 0x7a, 0xe4, 0x59, 0x61, 0x4b, 0x96, 0xd6, 0x67, 0xb9, 0x12,
   0x41, 0xdf, 0xda, 0x4a, 0x8c, 0x25, 0x1a, 0x2b, 0x9e, 0x89, 0x60, 0x83, 0x0c, 0x16, 0xe0, 0x2f,
   0x94, 0xd4, 0x52, 0x3d, 0x97, 0x22, 0xd8, 0xb4, 0xbf, 0x28, 0x71, 0x18, 0xc1, 0x0d, 0xcb, 0xe4,
   0x20, 0x13, 0xd8, 0x10, 0xc3, 0x6c, 0x92, 0xfb, 0xbb, 0xd0, 0x8e, 0x48, 0x49, 0xc4, 0xf6, 0xf6,
   0xae, 0x2f, 0x9b, 0xc6, 0x3a, 0x33, 0x67, 0xf7, 0x77, 0xa0, 0x85, 0xbd, 0x63, 0x9b, 0xb5, 0xb7,
   0xb7, 0xb9, 0xde, 0x5d, 0xcc, 0x1a, 0xc3, 0xdf, 0x6b, 0xd0, 0x44, 0xfc, 0xc6, 0xa6, 0xbf, 0x0d,
   0x5d, 0x94, 0x56, 0x2a, 0x57, 0x61, 0xff, 0x7d, 0xf0, 0x22, 0x25, 0xb9, 0x91, 0x23, 0x6e, 0x5c,
   0x17, 0x74, 0xad, 0x62, 0x60, 0x56, 0x8c, 0xe3, 0x85, 0xab, 0xa5, 0x33, 0x3e, 0x58, 0xa0, 0x71,
   0x5e, 0x08, 0xf7, 0xcb, 0x96, 0xa3, 0x91, 0x14, 0x03, 0x83, 0xa9, 0xc8, 0x8c, 0x8f, 0x53, 0x5b,
   0xd1, 0x2e, 0x73, 0xc8, 0xbf, 0x05, 0xdd, 0x44, 0x8f, 0x78, 0xca, 0xd5, 0x8c, 0xca, 0xd9, 0x65,
   0x9d, 0x44, 0x0f, 0x10, 0xa2, 0x49, 0xc8, 0x74, 0x34, 0x49, 0x79, 0x4c, 0x15, 0xed, 0xb2, 0x8e,
   0x90, 0xe9, 0x41, 0xca, 0xe3, 0xf0, 0x04, 0x7a, 0x78, 0xc1, 0x63, 0x61, 0x09, 0x0c, 0xa1, 0x89,
   0xf9, 0x3b, 0xfa, 0x2e, 0xb2, 0x42, 0x36, 0xff, 0x0e, 0x34, 0xb5, 0xa8, 0x98, 0xdb, 0x58, 0xfa,
   0x1c, 0x8b, 0x53, 0x46, 0xa6, 0xf0, 0xaf, 0x3a, 0x80, 0x25, 0x9c, 0xd8, 0xbb, 0xd8, 0xeb, 0x1f,
   0x02, 0xd8, 0x32, 0x8c, 0xec, 0xba, 0x40, 0xbd, 0x67, 0x35, 0x43, 0xa1, 0xfd, 0xf7, 0xec, 0xec,
   0x8f, 0x12, 0xe1, 0x68, 0x23, 0xb6, 0x87, 0xb8, 0x14, 0x3c, 0x93, 0xcc, 0xe4, 0x48, 0xcd, 0x53,
   0x19, 0x34, 0xe9, 0xf8, 0x95, 0x0a, 0xef, 0xf3, 0xc5, 0x43, 0x93, 0xb2, 0x2e, 0xba, 0xb0, 0x79,
   0x2a, 0xf1, 0x18, 0x25, 0x79, 0x64, 0xac, 0xbf, 0xe5, 0xd1, 0x23, 0x0d, 0x99, 0xef, 0x40, 0xdf,
   0x9a, 0x85, 0x7c, 0x9e, 0x44, 0x96, 0x4e, 0x8f, 0xf5, 0x48, 0xb7, 0x4f, 0xaa, 0x35, 0xe2, 0x3a,
   0x6b, 0xc4, 0xf9, 0x1f, 0x41, 0xcf, 0xd5, 0x68, 0x85, 0x56, 0xb0, 0x2a, 0x72, 0x58, 0xd6, 0xc9,
   0x5b, 0xab, 0x93, 0x0f, 0x4d, 0xbd, 0x32, 0x36, 0x28, 0xe3, 0x8d, 0x13, 0x3d, 0x9a, 0xcc, 0xd3,
   0x94, 0xa6, 0xa6, 0xcb, 0xda, 0x89, 0x3e, 0x98, 0xa7, 0xa9, 0x1f, 0xc2, 0x46, 0x9a, 0x64, 0xa7,
   0xa3, 0x58, 0xe5, 0xf3, 0x02, 0x09, 0xb1, 0x83, 0xd3, 0x43, 0xe5, 0x37, 0xa8, 0x1b, 0x8a, 0xf0,
   0x10, 0xda, 0xf6, 0xea, 0xb8, 0x46, 0x05, 0x5f, 0xb8, 0xfd, 0x84, 0xa2, 0xbf, 0x07, 0x60, 0x19,
   0xe3, 0x59, 0x2c, 0x5d, 0xc5, 0x56, 0x37, 0x29, 0x52, 0x85, 0x26, 0x46, 0xc4, 0x92, 0x18, 0xde,
   0x07, 0xaf, 0xd2, 0xe3, 0x60, 0x6a, 0xc3, 0x95, 0x71, 0xd5, 0xb3, 0x00, 0x0f, 0x92, 0x99, 0x70,
   0x95, 0x43, 0x31, 0x7c, 0x0a, 0x9d, 0xa3, 0x3c, 0x5d, 0xc4, 0x79, 0xf6, 0xaf, 0x36, 0xdb, 0x27,
   0xd0, 0x2e, 0xf2, 0x24, 0x33, 0xda, 0x95, 0xf1, 0xad, 0x65, 0x4e, 0x47, 0xa8, 0x67, 0xce, 0x1c,
   0xfe, 0x5d, 0x87, 0xcd, 0x65, 0x27, 0x0d, 0x54, 0xac, 0x2f, 0xc5, 0xdf, 0x81, 0x4d, 0xd7, 0x4d,
   0x65, 0xd7, 0xd8, 0x93, 0xfa, 0x51, 0xf5, 0xbb, 0xa1, 0xa0, 0x81, 0x2b, 0x7b, 0xae, 0x9a, 0x46,
   0xd7, 0x72, 0xd8, 0x29, 0x85, 0xcd, 0x1e, 0xad, 0x76, 0x1c, 0x3d, 0xa7, 0x19, 0x0a, 0xff, 0x1d,
   0xfa, 0xb4, 0x8d, 0xdc, 0x7e, 0x45, 0x16, 0x04, 0x86, 0x0c, 0x61, 0x03, 0xd5, 0x5c, 0xc5, 0x23,
   0x9e, 0x26, 0x5c, 0x97, 0x1d, 0xa4, 0x05, 0x26, 0x3a, 0x40, 0x15, 0x2e, 0x88, 0xbc, 0x90, 0x8a,
   0x9b, 0x5c, 0x51, 0x07, 0x79, 0xac, 0xc2, 0xfe, 0x5d, 0xd8, 0x28, 0xe5, 0x11, 0xed, 0x79, 0xbb,
   0x6d, 0xfb, 0xa5, 0xf2, 0x04, 0xf7, 0xfd, 0xca, 0x21, 0xcf, 0x79, 0x3a, 0x97, 0x6e, 0x01, 0xbb,
   0x43, 0x9e, 0xa2, 0xea, 0xca, 0x96, 0xda, 0x81, 0x4d, 0x6c, 0xfb, 0xd1, 0x59, 0x62, 0xa6, 0xa3,
   0x4c, 0x9e, 0x1b, 0xb7, 0x8f, 0xfb, 0xa8, 0xfd, 0x3e, 0x31, 0xd3, 0x43, 0x79, 0x6e, 0xb0, 0xc1,
   0x2f, 0xb4, 0x56, 0x27, 0x76, 0x6d, 0xf5, 0x4b, 0x1d, 0x1a, 0xc7, 0xe2, 0xf2, 0xf0, 0xde, 0x82,
   0x2e, 0x26, 0x44, 0x09, 0x5b, 0xa2, 0x3b, 0x5a, 0x9c, 0x52, 0xae, 0xce, 0xb4, 0xf2, 0xd9, 0x43,
   0xd3, 0x21, 0x16, 0x7c, 0x07, 0x9a, 0x5c, 0xc5, 0xfa, 0xf2, 0xd4, 0x1e, 0xd3, 0x3d, 0x18, 0x59,
   0xf1, 0x22, 0x49, 0x94, 0x67, 0x8e, 0x66, 0x92, 0xb1, 0xd7, 0xe6, 0x2a, 0x75, 0xdc, 0xa2, 0x88,
   0xa3, 0xe7, 0x76, 0x27, 0x36, 0xad, 0xa3, 0x15, 0xac, 0x0a, 0x3b, 0x77, 0x65, 0x36, 0xc9, 0xc1,
   0xd2, 0xea, 0x66, 0x93, 0x1c, 0xd6, 0xb6, 0xaf, 0x77, 0x61, 0xfb, 0x06, 0xd0, 0xb1, 0xa3, 0x2a,
   0x88, 0x50, 0x8f, 0x95, 0x70, 0x6d, 0x1d, 0x58, 0x36, 0xab, 0x3d, 0xfa, 0x53, 0x0d, 0xda, 0xf6,
   0x2a, 0x38, 0x32, 0xb6, 0x1d, 0x2c, 0x3b, 0x16, 0x5c, 0xf5, 0x1c, 0xa8, 0xbe, 0xef, 0xee, 0x5b,
   0x5e, 0x7e, 0xdf, 0x67, 0x73, 0x6d, 0xd7, 0x7e, 0x97, 0x91, 0x8c, 0x11, 0xed, 0x00, 0x5b, 0x12,
   0x2c, 0xa8, 0xaa, 0xde, 0x59, 0x56, 0x3d, 0xbc, 0x0b, 0x2d, 0x9a, 0x1f, 0xbf, 0x0f, 0xb5, 0x73,
   0xb7, 0x08, 0x6a, 0xe7, 0x88, 0x16, 0xee, 0x81, 0x52, 0x5b, 0x84, 0x3f, 0x40, 0x93, 0xc9, 0x88,
   0x5e, 0x3a, 0xa9, 0x9c, 0x18, 0xe7, 0x46, 0x32, 0xb2, 0x6d, 0xf2, 0xc2, 0xf9, 0xa2, 0x48, 0x87,
   0xd3, 0x33, 0xc9, 0xbd, 0xdf, 0x08, 0xe0, 0x76, 0x1b, 0xe7, 0xc6, 0xe4, 0x33, 0x4a, 0xbe, 0xc5,
   0x1c, 0x0a, 0x63, 0xf0, 0x0e, 0x78, 0x24, 0x07, 0x59, 0x9c, 0xd2, 0xb3, 0x6e, 0xc1, 0xcf, 0xca,
   0x7d, 0xb4, 0xe0, 0x67, 0x18, 0xac, 0x48, 0x4c, 0x34, 0x75, 0x07, 0x58, 0x40, 0xaf, 0x8d, 0x3c,
   0x4d, 0xcb, 0x77, 0x0e, 0xca, 0xfe, 0x16, 0x40, 0x94, 0x67, 0x93, 0x44, 0xc8, 0x2c, 0xb2, 0x0c,
   0xd5, 0xd9, 0x8a, 0x26, 0x3c, 0x07, 0x38, 0x99, 0x4e, 0x0c, 0x93, 0x7a, 0x9e, 0x52, 0x3a, 0xb1,
   0xcc, 0x84, 0x54, 0xee, 0x30, 0x87, 0x30, 0x03, 0x1e, 0xcb, 0xf2, 0x3a, 0xdc, 0xb2, 0xa6, 0x78,
   0x54, 0xbd, 0xa9, 0x50, 0xa6, 0xcb, 0x48, 0x3e, 0x37, 0x8b, 0xea, 0x32, 0x84, 0x68, 0xf9, 0xcd,
   0x12, 0xf7, 0xed, 0x68, 0x31, 0x0b, 0xc2, 0x5f, 0xeb, 0xd0, 0xc1, 0x3b, 0x1e, 0xe5, 0xda, 0xff,
   0x18, 0xda, 0x2a, 0x42, 0x70, 0xf9, 0x8b, 0x89, 0x14, 0x33, 0x67, 0xc5, 0x2f, 0x57, 0x61, 0x1e,
   0xc9, 0x89, 0xf9, 0x7a, 0x21, 0xdd, 0x83, 0xf6, 0xd2, 0xca, 0x5b, 0x7a, 0xf8, 0x5f, 0x00, 0x14,
   0x86, 0x21, 0xd1, 0xe8, 0xdf, 0xb8, 0xda, 0x7f, 0xc5, 0xc5, 0xff, 0x14, 0x3a, 0x85, 0x79, 0x9c,
   0xcf, 0xcd, 0x94, 0xae, 0x70, 0x85, 0x77, 0x69, 0xa7, 0xd5, 0x6b, 0x0e, 0x73, 0x6d, 0x6f, 0x75,
   0xe5, 0xea, 0x25, 0xb3, 0xff, 0x19, 0xb4, 0x27, 0x54, 0x47, 0x6a, 0xbb, 0xb5, 0xef, 0x46, 0x55,
   0x62, 0xe6, 0x5c, 0x70, 0x68, 0x7e, 0x9c, 0xf3, 0x34, 0x31, 0x0b, 0xd7, 0x8f, 0x25, 0xc4, 0x42,
   0x4e, 0x78, 0x94, 0xf0, 0x74, 0x1f, 0x5f, 0xd5, 0x5d, 0x7a, 0x55, 0xaf, 0x68, 0xc2, 0x3f, 0xeb,
   0xd0, 0xc5, 0x78, 0xf4, 0xfe, 0xf8, 0x9f, 0xcf, 0xff, 0xca, 0x27, 0x36, 0xf3, 0x04, 0xe9, 0xdc,
   0xa7, 0xc5, 0xd6, 0x60, 0x0e, 0x85, 0xdf, 0x41, 0xe7, 0xc9, 0xf8, 0x19, 0xb1, 0xbc, 0x03, 0x2d,
   0x15, 0x3d, 0x19, 0x3f, 0x7b, 0x03, 0xc9, 0xd6, 0x48, 0xab, 0x60, 0xb1, 0x5c, 0x05, 0x0b, 0xfb,
   0xe2, 0x57, 0xf9, 0x98, 0x08, 0xac, 0x33, 0x92, 0xc3, 0xa7, 0xd0, 0x3f, 0xe2, 0x8a, 0xcf, 0xca,
   0x89, 0xb8, 0x0b, 0x8d, 0x22, 0xd7, 0x2e, 0xf2, 0x8d, 0xf5, 0x2b, 0x1e, 0xe5, 0x9a, 0xa1, 0xd5,
   0xbf, 0x03, 0x8d, 0x64, 0x16, 0x5f, 0x2e, 0x1c, 0xfd, 0x5f, 0x63, 0x68, 0x0b, 0xbf, 0x82, 0xeb,
   0x55, 0xdc, 0x87, 0xf9, 0x0c, 0xff, 0x56, 0xe1, 0x3c, 0x4e, 0x24, 0x37, 0x5f, 0x52, 0xf4, 0x3e,
   0xb3, 0xa0, 0xd4, 0xee, 0x51, 0x38, 0xa7, 0xdd, 0x7b, 0x10, 0xbc, 0x78, 0xb5, 0x55, 0x7b, 0xf9,
   0x6a, 0xab, 0xf6, 0xc7, 0xab, 0xad, 0xda, 0xcf, 0xaf, 0xb7, 0xae, 0xbd, 0x7c, 0xbd, 0x75, 0xed,
   0xb7, 0xd7, 0x5b, 0xd7, 0xc6, 0x6d, 0x3a, 0xee, 0xfe, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xde,
   0x0e, 0xb8, 0xe3, 0xf0, 0x0e, 0x00, 0x00,
}
func (m *TaskLabel) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *TaskLabel) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Taskid) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Taskid)))
      i += copy(dAtA[i:], m.Taskid)
   }
   if len(m.Sdkids) > 0 {
      for _, s := range m.Sdkids {
         dAtA[i] = 0x12
         i++
         l = len(s)
         for l >= 1<<7 {
            dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
            l >>= 7
            i++
         }
         dAtA[i] = uint8(l)
         i++
         i += copy(dAtA[i:], s)
      }
   }
   if m.Index != 0 {
      dAtA[i] = 0x18
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Index))
   }
   return i, nil
}
func (m *SdkMessage) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *SdkMessage) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Cid) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Cid)))
      i += copy(dAtA[i:], m.Cid)
   }
   if m.Tasklab != nil {
      dAtA[i] = 0x12
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Tasklab.Size()))
      n1, err1 := m.Tasklab.MarshalTo(dAtA[i:])
      if err1 != nil {
         return 0, err1
      }
      i += n1
   }
   if len(m.Data) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Data)))
      i += copy(dAtA[i:], m.Data)
   }
   return i, nil
}
func (m *Image) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *Image) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Width != 0 {
      dAtA[i] = 0x8
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Width))
   }
   if m.Height != 0 {
      dAtA[i] = 0x10
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Height))
   }
   if len(m.Data) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Data)))
      i += copy(dAtA[i:], m.Data)
   }
   return i, nil
}
func (m *Area) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *Area) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Id != 0 {
      dAtA[i] = 0x8
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Id))
   }
   if m.Parentid != 0 {
      dAtA[i] = 0x10
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Parentid))
   }
   if len(m.Name) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Name)))
      i += copy(dAtA[i:], m.Name)
   }
   return i, nil
}
func (m *Camera) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *Camera) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Id) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Id)))
      i += copy(dAtA[i:], m.Id)
   }
   if len(m.Name) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Name)))
      i += copy(dAtA[i:], m.Name)
   }
   if m.Type != 0 {
      dAtA[i] = 0x18
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Type))
   }
   if len(m.Addr) > 0 {
      dAtA[i] = 0x22
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Addr)))
      i += copy(dAtA[i:], m.Addr)
   }
   if m.Areaid != 0 {
      dAtA[i] = 0x28
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Areaid))
   }
   if m.Longitude != 0 {
      dAtA[i] = 0x35
      i++
      encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Longitude))))
      i += 4
   }
   if m.Latitude != 0 {
      dAtA[i] = 0x3d
      i++
      encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Latitude))))
      i += 4
   }
   if len(m.Rtsp) > 0 {
      dAtA[i] = 0x42
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Rtsp)))
      i += copy(dAtA[i:], m.Rtsp)
   }
   if len(m.Ip) > 0 {
      dAtA[i] = 0x4a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Ip)))
      i += copy(dAtA[i:], m.Ip)
   }
   if m.Port != 0 {
      dAtA[i] = 0x50
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Port))
   }
   if len(m.Username) > 0 {
      dAtA[i] = 0x5a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Username)))
      i += copy(dAtA[i:], m.Username)
   }
   if len(m.Password) > 0 {
      dAtA[i] = 0x62
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Password)))
      i += copy(dAtA[i:], m.Password)
   }
   if len(m.Brand) > 0 {
      dAtA[i] = 0x6a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Brand)))
      i += copy(dAtA[i:], m.Brand)
   }
   if len(m.Reserved) > 0 {
      dAtA[i] = 0x72
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Reserved)))
      i += copy(dAtA[i:], m.Reserved)
   }
   return i, nil
}
func (m *CameraAndTaskInfo) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *CameraAndTaskInfo) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Camera != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Camera.Size()))
      n2, err2 := m.Camera.MarshalTo(dAtA[i:])
      if err2 != nil {
         return 0, err2
      }
      i += n2
   }
   if len(m.Tasks) > 0 {
      for _, msg := range m.Tasks {
         dAtA[i] = 0x12
         i++
         i = encodeVarintProtomsg(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
   }
   return i, nil
}
func (m *Task) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *Task) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Taskid) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Taskid)))
      i += copy(dAtA[i:], m.Taskid)
   }
   if len(m.Taskname) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Taskname)))
      i += copy(dAtA[i:], m.Taskname)
   }
   if len(m.CreateAt) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.CreateAt)))
      i += copy(dAtA[i:], m.CreateAt)
   }
   if len(m.CreateBy) > 0 {
      dAtA[i] = 0x22
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.CreateBy)))
      i += copy(dAtA[i:], m.CreateBy)
   }
   if len(m.UpdateAt) > 0 {
      dAtA[i] = 0x2a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.UpdateAt)))
      i += copy(dAtA[i:], m.UpdateAt)
   }
   if m.Enable {
      dAtA[i] = 0x30
      i++
      if m.Enable {
         dAtA[i] = 1
      } else {
         dAtA[i] = 0
      }
      i++
   }
   if m.IsAlarm {
      dAtA[i] = 0x38
      i++
      if m.IsAlarm {
         dAtA[i] = 1
      } else {
         dAtA[i] = 0
      }
      i++
   }
   if m.DelFlag {
      dAtA[i] = 0x40
      i++
      if m.DelFlag {
         dAtA[i] = 1
      } else {
         dAtA[i] = 0
      }
      i++
   }
   return i, nil
}
func (m *TaskSdkInfo) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *TaskSdkInfo) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Task != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Task.Size()))
      n3, err3 := m.Task.MarshalTo(dAtA[i:])
      if err3 != nil {
         return 0, err3
      }
      i += n3
   }
   if len(m.Sdks) > 0 {
      for _, msg := range m.Sdks {
         dAtA[i] = 0x12
         i++
         i = encodeVarintProtomsg(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
   }
   return i, nil
}
func (m *CameraTask) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *CameraTask) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Id) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Id)))
      i += copy(dAtA[i:], m.Id)
   }
   if len(m.CameraIds) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.CameraIds)))
      i += copy(dAtA[i:], m.CameraIds)
   }
   if len(m.TaskId) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.TaskId)))
      i += copy(dAtA[i:], m.TaskId)
   }
   if len(m.TimeRule) > 0 {
      for _, msg := range m.TimeRule {
         dAtA[i] = 0x22
         i++
         i = encodeVarintProtomsg(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
   }
   if len(m.ReactRule) > 0 {
      dAtA[i] = 0x2a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.ReactRule)))
      i += copy(dAtA[i:], m.ReactRule)
   }
   if len(m.ReactDevice) > 0 {
      dAtA[i] = 0x32
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.ReactDevice)))
      i += copy(dAtA[i:], m.ReactDevice)
   }
   if m.DelFlag {
      dAtA[i] = 0x38
      i++
      if m.DelFlag {
         dAtA[i] = 1
      } else {
         dAtA[i] = 0
      }
      i++
   }
   if m.UpdateFlag {
      dAtA[i] = 0x40
      i++
      if m.UpdateFlag {
         dAtA[i] = 1
      } else {
         dAtA[i] = 0
      }
      i++
   }
   if m.Enable {
      dAtA[i] = 0x48
      i++
      if m.Enable {
         dAtA[i] = 1
      } else {
         dAtA[i] = 0
      }
      i++
   }
   if m.Sort != 0 {
      dAtA[i] = 0x50
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Sort))
   }
   if m.IsFull {
      dAtA[i] = 0x58
      i++
      if m.IsFull {
         dAtA[i] = 1
      } else {
         dAtA[i] = 0
      }
      i++
   }
   if len(m.LinkGroupId) > 0 {
      dAtA[i] = 0x62
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.LinkGroupId)))
      i += copy(dAtA[i:], m.LinkGroupId)
   }
   return i, nil
}
func (m *DayCtl) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *DayCtl) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Day != 0 {
      dAtA[i] = 0x8
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Day))
   }
   if len(m.TimeRange) > 0 {
      for _, msg := range m.TimeRange {
         dAtA[i] = 0x12
         i++
         i = encodeVarintProtomsg(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
   }
   return i, nil
}
func (m *TimeRange) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *TimeRange) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Start) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Start)))
      i += copy(dAtA[i:], m.Start)
   }
   if len(m.End) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.End)))
      i += copy(dAtA[i:], m.End)
   }
   return i, nil
}
func (m *Polygon) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *Polygon) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Id) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Id)))
      i += copy(dAtA[i:], m.Id)
   }
   if len(m.Name) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Name)))
      i += copy(dAtA[i:], m.Name)
   }
   if len(m.Points) > 0 {
      for _, msg := range m.Points {
         dAtA[i] = 0x22
         i++
         i = encodeVarintProtomsg(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
   }
   return i, nil
}
func (m *CameraTaskArgs) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *CameraTaskArgs) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Id) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Id)))
      i += copy(dAtA[i:], m.Id)
   }
   if len(m.CameraTaskId) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.CameraTaskId)))
      i += copy(dAtA[i:], m.CameraTaskId)
   }
   if len(m.CameraId) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.CameraId)))
      i += copy(dAtA[i:], m.CameraId)
   }
   if len(m.PolygonId) > 0 {
      dAtA[i] = 0x22
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.PolygonId)))
      i += copy(dAtA[i:], m.PolygonId)
   }
   if len(m.SdkId) > 0 {
      dAtA[i] = 0x2a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.SdkId)))
      i += copy(dAtA[i:], m.SdkId)
   }
   if len(m.SdkArgAlias) > 0 {
      dAtA[i] = 0x32
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.SdkArgAlias)))
      i += copy(dAtA[i:], m.SdkArgAlias)
   }
   if len(m.Operator) > 0 {
      dAtA[i] = 0x3a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Operator)))
      i += copy(dAtA[i:], m.Operator)
   }
   if len(m.OperatorType) > 0 {
      dAtA[i] = 0x42
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.OperatorType)))
      i += copy(dAtA[i:], m.OperatorType)
   }
   if len(m.SdkArgValue) > 0 {
      dAtA[i] = 0x4a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.SdkArgValue)))
      i += copy(dAtA[i:], m.SdkArgValue)
   }
   if m.Sort != 0 {
      dAtA[i] = 0x50
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Sort))
   }
   if len(m.RuleWithNext) > 0 {
      dAtA[i] = 0x5a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.RuleWithNext)))
      i += copy(dAtA[i:], m.RuleWithNext)
   }
   if len(m.GroupId) > 0 {
      dAtA[i] = 0x62
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.GroupId)))
      i += copy(dAtA[i:], m.GroupId)
   }
   return i, nil
}
func (m *Sdk) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *Sdk) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Id) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Id)))
      i += copy(dAtA[i:], m.Id)
   }
   if len(m.SdkType) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.SdkType)))
      i += copy(dAtA[i:], m.SdkType)
   }
   if len(m.SdkName) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.SdkName)))
      i += copy(dAtA[i:], m.SdkName)
   }
   if len(m.Args) > 0 {
      for _, msg := range m.Args {
         dAtA[i] = 0x22
         i++
         i = encodeVarintProtomsg(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
   }
   if len(m.Icon) > 0 {
      dAtA[i] = 0x2a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Icon)))
      i += copy(dAtA[i:], m.Icon)
   }
   if len(m.Url) > 0 {
      dAtA[i] = 0x32
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Url)))
      i += copy(dAtA[i:], m.Url)
   }
   if len(m.CreateTime) > 0 {
      dAtA[i] = 0x3a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.CreateTime)))
      i += copy(dAtA[i:], m.CreateTime)
   }
   if len(m.UpdateTime) > 0 {
      dAtA[i] = 0x42
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.UpdateTime)))
      i += copy(dAtA[i:], m.UpdateTime)
   }
   if len(m.CreateBy) > 0 {
      dAtA[i] = 0x4a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.CreateBy)))
      i += copy(dAtA[i:], m.CreateBy)
   }
   if len(m.Enabled) > 0 {
      dAtA[i] = 0x52
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Enabled)))
      i += copy(dAtA[i:], m.Enabled)
   }
   if len(m.DelFlag) > 0 {
      dAtA[i] = 0x5a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.DelFlag)))
      i += copy(dAtA[i:], m.DelFlag)
   }
   return i, nil
}
func (m *SdkArg) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *SdkArg) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Alias) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Alias)))
      i += copy(dAtA[i:], m.Alias)
   }
   if len(m.Name) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Name)))
      i += copy(dAtA[i:], m.Name)
   }
   if len(m.Type) > 0 {
      dAtA[i] = 0x22
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Type)))
      i += copy(dAtA[i:], m.Type)
   }
   if m.Must {
      dAtA[i] = 0x28
      i++
      if m.Must {
         dAtA[i] = 1
      } else {
         dAtA[i] = 0
      }
      i++
   }
   if len(m.Range) > 0 {
      dAtA[i] = 0x32
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Range)))
      i += copy(dAtA[i:], m.Range)
   }
   if m.Sort != 0 {
      dAtA[i] = 0x38
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Sort))
   }
   return i, nil
}
func (m *Point) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *Point) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.X != 0 {
      dAtA[i] = 0x8
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.X))
   }
   if m.Y != 0 {
      dAtA[i] = 0x10
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Y))
   }
   return i, nil
}
func (m *Rect) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *Rect) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Left != 0 {
      dAtA[i] = 0x8
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Left))
   }
   if m.Top != 0 {
      dAtA[i] = 0x10
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Top))
   }
   if m.Right != 0 {
      dAtA[i] = 0x18
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Right))
   }
   if m.Bottom != 0 {
      dAtA[i] = 0x20
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Bottom))
   }
   return i, nil
}
func (m *FaceAngle) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *FaceAngle) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Yaw != 0 {
      dAtA[i] = 0x8
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Yaw))
   }
   if m.Pitch != 0 {
      dAtA[i] = 0x10
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Pitch))
   }
   if m.Roll != 0 {
      dAtA[i] = 0x18
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Roll))
   }
   if m.Confidence != 0 {
      dAtA[i] = 0x25
      i++
      encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Confidence))))
      i += 4
   }
   return i, nil
}
func (m *ThftResult) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *ThftResult) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Gender != 0 {
      dAtA[i] = 0x8
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Gender))
   }
   if m.Age != 0 {
      dAtA[i] = 0x10
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Age))
   }
   if m.Race != 0 {
      dAtA[i] = 0x18
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Race))
   }
   if m.Beauty != 0 {
      dAtA[i] = 0x20
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Beauty))
   }
   if m.Smile != 0 {
      dAtA[i] = 0x28
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Smile))
   }
   return i, nil
}
func (m *FacePos) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *FacePos) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.RcFace != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.RcFace.Size()))
      n4, err4 := m.RcFace.MarshalTo(dAtA[i:])
      if err4 != nil {
         return 0, err4
      }
      i += n4
   }
   if m.PtLeftEye != nil {
      dAtA[i] = 0x12
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.PtLeftEye.Size()))
      n5, err5 := m.PtLeftEye.MarshalTo(dAtA[i:])
      if err5 != nil {
         return 0, err5
      }
      i += n5
   }
   if m.PtRightEye != nil {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.PtRightEye.Size()))
      n6, err6 := m.PtRightEye.MarshalTo(dAtA[i:])
      if err6 != nil {
         return 0, err6
      }
      i += n6
   }
   if m.PtMouth != nil {
      dAtA[i] = 0x22
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.PtMouth.Size()))
      n7, err7 := m.PtMouth.MarshalTo(dAtA[i:])
      if err7 != nil {
         return 0, err7
      }
      i += n7
   }
   if m.PtNose != nil {
      dAtA[i] = 0x2a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.PtNose.Size()))
      n8, err8 := m.PtNose.MarshalTo(dAtA[i:])
      if err8 != nil {
         return 0, err8
      }
      i += n8
   }
   if m.FAngle != nil {
      dAtA[i] = 0x32
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.FAngle.Size()))
      n9, err9 := m.FAngle.MarshalTo(dAtA[i:])
      if err9 != nil {
         return 0, err9
      }
      i += n9
   }
   if m.Quality != 0 {
      dAtA[i] = 0x38
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Quality))
   }
   if len(m.FacialData) > 0 {
      dAtA[i] = 0x42
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.FacialData)))
      i += copy(dAtA[i:], m.FacialData)
   }
   return i, nil
}
func (m *FaceInfo) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *FaceInfo) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.RcFace != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.RcFace.Size()))
      n10, err10 := m.RcFace.MarshalTo(dAtA[i:])
      if err10 != nil {
         return 0, err10
      }
      i += n10
   }
   if m.PtLeftEye != nil {
      dAtA[i] = 0x12
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.PtLeftEye.Size()))
      n11, err11 := m.PtLeftEye.MarshalTo(dAtA[i:])
      if err11 != nil {
         return 0, err11
      }
      i += n11
   }
   if m.PtRightEye != nil {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.PtRightEye.Size()))
      n12, err12 := m.PtRightEye.MarshalTo(dAtA[i:])
      if err12 != nil {
         return 0, err12
      }
      i += n12
   }
   if m.PtMouth != nil {
      dAtA[i] = 0x22
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.PtMouth.Size()))
      n13, err13 := m.PtMouth.MarshalTo(dAtA[i:])
      if err13 != nil {
         return 0, err13
      }
      i += n13
   }
   if m.PtNose != nil {
      dAtA[i] = 0x2a
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.PtNose.Size()))
      n14, err14 := m.PtNose.MarshalTo(dAtA[i:])
      if err14 != nil {
         return 0, err14
      }
      i += n14
   }
   if m.FAngle != nil {
      dAtA[i] = 0x32
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.FAngle.Size()))
      n15, err15 := m.FAngle.MarshalTo(dAtA[i:])
      if err15 != nil {
         return 0, err15
      }
      i += n15
   }
   if m.Quality != 0 {
      dAtA[i] = 0x38
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Quality))
   }
   if len(m.FacialData) > 0 {
      dAtA[i] = 0x42
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.FacialData)))
      i += copy(dAtA[i:], m.FacialData)
   }
   if m.FaceID != 0 {
      dAtA[i] = 0x48
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.FaceID))
   }
   return i, nil
}
func (m *ObjInfo) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *ObjInfo) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.RcObj != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.RcObj.Size()))
      n16, err16 := m.RcObj.MarshalTo(dAtA[i:])
      if err16 != nil {
         return 0, err16
      }
      i += n16
   }
   if m.Typ != 0 {
      dAtA[i] = 0x10
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Typ))
   }
   if m.Prob != 0 {
      dAtA[i] = 0x1d
      i++
      encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Prob))))
      i += 4
   }
   return i, nil
}
func (m *ParamFacePos) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *ParamFacePos) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Pos != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Pos.Size()))
      n17, err17 := m.Pos.MarshalTo(dAtA[i:])
      if err17 != nil {
         return 0, err17
      }
      i += n17
   }
   if m.Img != nil {
      dAtA[i] = 0x12
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(m.Img.Size()))
      n18, err18 := m.Img.MarshalTo(dAtA[i:])
      if err18 != nil {
         return 0, err18
      }
      i += n18
   }
   return i, nil
}
func (m *ParamFaceCompare) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *ParamFaceCompare) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Feat1) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Feat1)))
      i += copy(dAtA[i:], m.Feat1)
   }
   if len(m.Feat2) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Feat2)))
      i += copy(dAtA[i:], m.Feat2)
   }
   return i, nil
}
func encodeVarintProtomsg(dAtA []byte, offset int, v uint64) int {
   for v >= 1<<7 {
      dAtA[offset] = uint8(v&0x7f | 0x80)
      v >>= 7
      offset++
   }
   dAtA[offset] = uint8(v)
   return offset + 1
}
func (m *TaskLabel) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Taskid)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if len(m.Sdkids) > 0 {
      for _, s := range m.Sdkids {
         l = len(s)
         n += 1 + l + sovProtomsg(uint64(l))
      }
   }
   if m.Index != 0 {
      n += 1 + sovProtomsg(uint64(m.Index))
   }
   return n
}
func (m *SdkMessage) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Cid)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.Tasklab != nil {
      l = m.Tasklab.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.Data)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   return n
}
func (m *Image) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Width != 0 {
      n += 1 + sovProtomsg(uint64(m.Width))
   }
   if m.Height != 0 {
      n += 1 + sovProtomsg(uint64(m.Height))
   }
   l = len(m.Data)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   return n
}
func (m *Area) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Id != 0 {
      n += 1 + sovProtomsg(uint64(m.Id))
   }
   if m.Parentid != 0 {
      n += 1 + sovProtomsg(uint64(m.Parentid))
   }
   l = len(m.Name)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   return n
}
func (m *Camera) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Id)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.Name)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.Type != 0 {
      n += 1 + sovProtomsg(uint64(m.Type))
   }
   l = len(m.Addr)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.Areaid != 0 {
      n += 1 + sovProtomsg(uint64(m.Areaid))
   }
   if m.Longitude != 0 {
      n += 5
   }
   if m.Latitude != 0 {
      n += 5
   }
   l = len(m.Rtsp)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.Ip)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.Port != 0 {
      n += 1 + sovProtomsg(uint64(m.Port))
   }
   l = len(m.Username)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.Password)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.Brand)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.Reserved)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   return n
}
func (m *CameraAndTaskInfo) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Camera != nil {
      l = m.Camera.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if len(m.Tasks) > 0 {
      for _, e := range m.Tasks {
         l = e.Size()
         n += 1 + l + sovProtomsg(uint64(l))
      }
   }
   return n
}
func (m *Task) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Taskid)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.Taskname)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.CreateAt)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.CreateBy)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.UpdateAt)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.Enable {
      n += 2
   }
   if m.IsAlarm {
      n += 2
   }
   if m.DelFlag {
      n += 2
   }
   return n
}
func (m *TaskSdkInfo) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Task != nil {
      l = m.Task.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if len(m.Sdks) > 0 {
      for _, e := range m.Sdks {
         l = e.Size()
         n += 1 + l + sovProtomsg(uint64(l))
      }
   }
   return n
}
func (m *CameraTask) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Id)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.CameraIds)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.TaskId)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if len(m.TimeRule) > 0 {
      for _, e := range m.TimeRule {
         l = e.Size()
         n += 1 + l + sovProtomsg(uint64(l))
      }
   }
   l = len(m.ReactRule)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.ReactDevice)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.DelFlag {
      n += 2
   }
   if m.UpdateFlag {
      n += 2
   }
   if m.Enable {
      n += 2
   }
   if m.Sort != 0 {
      n += 1 + sovProtomsg(uint64(m.Sort))
   }
   if m.IsFull {
      n += 2
   }
   l = len(m.LinkGroupId)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   return n
}
func (m *DayCtl) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Day != 0 {
      n += 1 + sovProtomsg(uint64(m.Day))
   }
   if len(m.TimeRange) > 0 {
      for _, e := range m.TimeRange {
         l = e.Size()
         n += 1 + l + sovProtomsg(uint64(l))
      }
   }
   return n
}
func (m *TimeRange) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Start)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.End)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   return n
}
func (m *Polygon) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Id)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.Name)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if len(m.Points) > 0 {
      for _, e := range m.Points {
         l = e.Size()
         n += 1 + l + sovProtomsg(uint64(l))
      }
   }
   return n
}
func (m *CameraTaskArgs) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Id)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.CameraTaskId)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.CameraId)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.PolygonId)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.SdkId)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.SdkArgAlias)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.Operator)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.OperatorType)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.SdkArgValue)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.Sort != 0 {
      n += 1 + sovProtomsg(uint64(m.Sort))
   }
   l = len(m.RuleWithNext)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.GroupId)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   return n
}
func (m *Sdk) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Id)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.SdkType)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.SdkName)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if len(m.Args) > 0 {
      for _, e := range m.Args {
         l = e.Size()
         n += 1 + l + sovProtomsg(uint64(l))
      }
   }
   l = len(m.Icon)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.Url)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.CreateTime)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.UpdateTime)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.CreateBy)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.Enabled)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.DelFlag)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   return n
}
func (m *SdkArg) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Alias)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.Name)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.Type)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.Must {
      n += 2
   }
   l = len(m.Range)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.Sort != 0 {
      n += 1 + sovProtomsg(uint64(m.Sort))
   }
   return n
}
func (m *Point) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.X != 0 {
      n += 1 + sovProtomsg(uint64(m.X))
   }
   if m.Y != 0 {
      n += 1 + sovProtomsg(uint64(m.Y))
   }
   return n
}
func (m *Rect) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Left != 0 {
      n += 1 + sovProtomsg(uint64(m.Left))
   }
   if m.Top != 0 {
      n += 1 + sovProtomsg(uint64(m.Top))
   }
   if m.Right != 0 {
      n += 1 + sovProtomsg(uint64(m.Right))
   }
   if m.Bottom != 0 {
      n += 1 + sovProtomsg(uint64(m.Bottom))
   }
   return n
}
func (m *FaceAngle) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Yaw != 0 {
      n += 1 + sovProtomsg(uint64(m.Yaw))
   }
   if m.Pitch != 0 {
      n += 1 + sovProtomsg(uint64(m.Pitch))
   }
   if m.Roll != 0 {
      n += 1 + sovProtomsg(uint64(m.Roll))
   }
   if m.Confidence != 0 {
      n += 5
   }
   return n
}
func (m *ThftResult) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Gender != 0 {
      n += 1 + sovProtomsg(uint64(m.Gender))
   }
   if m.Age != 0 {
      n += 1 + sovProtomsg(uint64(m.Age))
   }
   if m.Race != 0 {
      n += 1 + sovProtomsg(uint64(m.Race))
   }
   if m.Beauty != 0 {
      n += 1 + sovProtomsg(uint64(m.Beauty))
   }
   if m.Smile != 0 {
      n += 1 + sovProtomsg(uint64(m.Smile))
   }
   return n
}
func (m *FacePos) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.RcFace != nil {
      l = m.RcFace.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.PtLeftEye != nil {
      l = m.PtLeftEye.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.PtRightEye != nil {
      l = m.PtRightEye.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.PtMouth != nil {
      l = m.PtMouth.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.PtNose != nil {
      l = m.PtNose.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.FAngle != nil {
      l = m.FAngle.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.Quality != 0 {
      n += 1 + sovProtomsg(uint64(m.Quality))
   }
   l = len(m.FacialData)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   return n
}
func (m *FaceInfo) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.RcFace != nil {
      l = m.RcFace.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.PtLeftEye != nil {
      l = m.PtLeftEye.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.PtRightEye != nil {
      l = m.PtRightEye.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.PtMouth != nil {
      l = m.PtMouth.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.PtNose != nil {
      l = m.PtNose.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.FAngle != nil {
      l = m.FAngle.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.Quality != 0 {
      n += 1 + sovProtomsg(uint64(m.Quality))
   }
   l = len(m.FacialData)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.FaceID != 0 {
      n += 1 + sovProtomsg(uint64(m.FaceID))
   }
   return n
}
func (m *ObjInfo) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.RcObj != nil {
      l = m.RcObj.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.Typ != 0 {
      n += 1 + sovProtomsg(uint64(m.Typ))
   }
   if m.Prob != 0 {
      n += 5
   }
   return n
}
func (m *ParamFacePos) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Pos != nil {
      l = m.Pos.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   if m.Img != nil {
      l = m.Img.Size()
      n += 1 + l + sovProtomsg(uint64(l))
   }
   return n
}
func (m *ParamFaceCompare) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Feat1)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   l = len(m.Feat2)
   if l > 0 {
      n += 1 + l + sovProtomsg(uint64(l))
   }
   return n
}
func sovProtomsg(x uint64) (n int) {
   for {
      n++
      x >>= 7
      if x == 0 {
         break
      }
   }
   return n
}
func sozProtomsg(x uint64) (n int) {
   return sovProtomsg(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *TaskLabel) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: TaskLabel: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: TaskLabel: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Taskid", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Taskid = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Sdkids", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Sdkids = append(m.Sdkids, string(dAtA[iNdEx:postIndex]))
         iNdEx = postIndex
      case 3:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
         }
         m.Index = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Index |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *SdkMessage) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: SdkMessage: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: SdkMessage: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Cid = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Tasklab", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Tasklab == nil {
            m.Tasklab = &TaskLabel{}
         }
         if err := m.Tasklab.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
         if m.Data == nil {
            m.Data = []byte{}
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *Image) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: Image: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: Image: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Width", wireType)
         }
         m.Width = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Width |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
         }
         m.Height = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Height |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
         if m.Data == nil {
            m.Data = []byte{}
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *Area) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: Area: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: Area: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
         }
         m.Id = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Id |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Parentid", wireType)
         }
         m.Parentid = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Parentid |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Name = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *Camera) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: Camera: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: Camera: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Id = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Name = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 3:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
         }
         m.Type = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Type |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Addr", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Addr = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 5:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Areaid", wireType)
         }
         m.Areaid = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Areaid |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 6:
         if wireType != 5 {
            return fmt.Errorf("proto: wrong wireType = %d for field Longitude", wireType)
         }
         var v uint32
         if (iNdEx + 4) > l {
            return io.ErrUnexpectedEOF
         }
         v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
         iNdEx += 4
         m.Longitude = float32(math.Float32frombits(v))
      case 7:
         if wireType != 5 {
            return fmt.Errorf("proto: wrong wireType = %d for field Latitude", wireType)
         }
         var v uint32
         if (iNdEx + 4) > l {
            return io.ErrUnexpectedEOF
         }
         v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
         iNdEx += 4
         m.Latitude = float32(math.Float32frombits(v))
      case 8:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Rtsp", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Rtsp = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 9:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Ip", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Ip = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 10:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType)
         }
         m.Port = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Port |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 11:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Username", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Username = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 12:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Password", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Password = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 13:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Brand", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Brand = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 14:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Reserved", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Reserved = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *CameraAndTaskInfo) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: CameraAndTaskInfo: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: CameraAndTaskInfo: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Camera", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Camera == nil {
            m.Camera = &Camera{}
         }
         if err := m.Camera.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Tasks", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Tasks = append(m.Tasks, &Task{})
         if err := m.Tasks[len(m.Tasks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *Task) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: Task: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: Task: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Taskid", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Taskid = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Taskname", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Taskname = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field CreateAt", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.CreateAt = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field CreateBy", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.CreateBy = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 5:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field UpdateAt", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.UpdateAt = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 6:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Enable", wireType)
         }
         var v int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            v |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         m.Enable = bool(v != 0)
      case 7:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field IsAlarm", wireType)
         }
         var v int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            v |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         m.IsAlarm = bool(v != 0)
      case 8:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field DelFlag", wireType)
         }
         var v int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            v |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         m.DelFlag = bool(v != 0)
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *TaskSdkInfo) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: TaskSdkInfo: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: TaskSdkInfo: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Task", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Task == nil {
            m.Task = &Task{}
         }
         if err := m.Task.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Sdks", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Sdks = append(m.Sdks, &Sdk{})
         if err := m.Sdks[len(m.Sdks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *CameraTask) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: CameraTask: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: CameraTask: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Id = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field CameraIds", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.CameraIds = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field TaskId", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.TaskId = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field TimeRule", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.TimeRule = append(m.TimeRule, &DayCtl{})
         if err := m.TimeRule[len(m.TimeRule)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 5:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field ReactRule", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.ReactRule = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 6:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field ReactDevice", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.ReactDevice = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 7:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field DelFlag", wireType)
         }
         var v int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            v |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         m.DelFlag = bool(v != 0)
      case 8:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field UpdateFlag", wireType)
         }
         var v int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            v |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         m.UpdateFlag = bool(v != 0)
      case 9:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Enable", wireType)
         }
         var v int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            v |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         m.Enable = bool(v != 0)
      case 10:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Sort", wireType)
         }
         m.Sort = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Sort |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 11:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field IsFull", wireType)
         }
         var v int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            v |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         m.IsFull = bool(v != 0)
      case 12:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field LinkGroupId", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.LinkGroupId = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *DayCtl) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: DayCtl: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: DayCtl: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Day", wireType)
         }
         m.Day = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Day |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field TimeRange", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.TimeRange = append(m.TimeRange, &TimeRange{})
         if err := m.TimeRange[len(m.TimeRange)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *TimeRange) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: TimeRange: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: TimeRange: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Start", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Start = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field End", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.End = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *Polygon) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: Polygon: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: Polygon: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Id = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Name = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Points", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Points = append(m.Points, &Point{})
         if err := m.Points[len(m.Points)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *CameraTaskArgs) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: CameraTaskArgs: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: CameraTaskArgs: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Id = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field CameraTaskId", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.CameraTaskId = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field CameraId", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.CameraId = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PolygonId", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.PolygonId = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 5:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field SdkId", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.SdkId = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 6:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field SdkArgAlias", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.SdkArgAlias = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 7:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Operator", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Operator = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 8:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field OperatorType", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.OperatorType = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 9:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field SdkArgValue", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.SdkArgValue = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 10:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Sort", wireType)
         }
         m.Sort = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Sort |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 11:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field RuleWithNext", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.RuleWithNext = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 12:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field GroupId", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.GroupId = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *Sdk) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: Sdk: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: Sdk: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Id = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field SdkType", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.SdkType = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field SdkName", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.SdkName = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Args", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Args = append(m.Args, &SdkArg{})
         if err := m.Args[len(m.Args)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 5:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Icon", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Icon = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 6:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Url", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Url = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 7:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field CreateTime", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.CreateTime = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 8:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field UpdateTime", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.UpdateTime = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 9:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field CreateBy", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.CreateBy = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 10:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Enabled = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 11:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field DelFlag", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.DelFlag = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *SdkArg) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: SdkArg: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: SdkArg: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Alias", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Alias = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Name = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Type = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 5:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Must", wireType)
         }
         var v int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            v |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         m.Must = bool(v != 0)
      case 6:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Range", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Range = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 7:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Sort", wireType)
         }
         m.Sort = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Sort |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *Point) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: Point: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: Point: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field X", wireType)
         }
         m.X = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.X |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Y", wireType)
         }
         m.Y = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Y |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *Rect) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: Rect: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: Rect: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType)
         }
         m.Left = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Left |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Top", wireType)
         }
         m.Top = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Top |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 3:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType)
         }
         m.Right = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Right |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 4:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Bottom", wireType)
         }
         m.Bottom = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Bottom |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *FaceAngle) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: FaceAngle: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: FaceAngle: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Yaw", wireType)
         }
         m.Yaw = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Yaw |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Pitch", wireType)
         }
         m.Pitch = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Pitch |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 3:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Roll", wireType)
         }
         m.Roll = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Roll |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 4:
         if wireType != 5 {
            return fmt.Errorf("proto: wrong wireType = %d for field Confidence", wireType)
         }
         var v uint32
         if (iNdEx + 4) > l {
            return io.ErrUnexpectedEOF
         }
         v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
         iNdEx += 4
         m.Confidence = float32(math.Float32frombits(v))
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ThftResult) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: ThftResult: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ThftResult: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Gender", wireType)
         }
         m.Gender = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Gender |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Age", wireType)
         }
         m.Age = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Age |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 3:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Race", wireType)
         }
         m.Race = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Race |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 4:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Beauty", wireType)
         }
         m.Beauty = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Beauty |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 5:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Smile", wireType)
         }
         m.Smile = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Smile |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *FacePos) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: FacePos: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: FacePos: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field RcFace", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.RcFace == nil {
            m.RcFace = &Rect{}
         }
         if err := m.RcFace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtLeftEye", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtLeftEye == nil {
            m.PtLeftEye = &Point{}
         }
         if err := m.PtLeftEye.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtRightEye", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtRightEye == nil {
            m.PtRightEye = &Point{}
         }
         if err := m.PtRightEye.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtMouth", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtMouth == nil {
            m.PtMouth = &Point{}
         }
         if err := m.PtMouth.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 5:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtNose", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtNose == nil {
            m.PtNose = &Point{}
         }
         if err := m.PtNose.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 6:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field FAngle", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.FAngle == nil {
            m.FAngle = &FaceAngle{}
         }
         if err := m.FAngle.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 7:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Quality", wireType)
         }
         m.Quality = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Quality |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 8:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field FacialData", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.FacialData = append(m.FacialData[:0], dAtA[iNdEx:postIndex]...)
         if m.FacialData == nil {
            m.FacialData = []byte{}
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *FaceInfo) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: FaceInfo: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: FaceInfo: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field RcFace", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.RcFace == nil {
            m.RcFace = &Rect{}
         }
         if err := m.RcFace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtLeftEye", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtLeftEye == nil {
            m.PtLeftEye = &Point{}
         }
         if err := m.PtLeftEye.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtRightEye", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtRightEye == nil {
            m.PtRightEye = &Point{}
         }
         if err := m.PtRightEye.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtMouth", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtMouth == nil {
            m.PtMouth = &Point{}
         }
         if err := m.PtMouth.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 5:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtNose", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtNose == nil {
            m.PtNose = &Point{}
         }
         if err := m.PtNose.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 6:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field FAngle", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.FAngle == nil {
            m.FAngle = &FaceAngle{}
         }
         if err := m.FAngle.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 7:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Quality", wireType)
         }
         m.Quality = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Quality |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 8:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field FacialData", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.FacialData = append(m.FacialData[:0], dAtA[iNdEx:postIndex]...)
         if m.FacialData == nil {
            m.FacialData = []byte{}
         }
         iNdEx = postIndex
      case 9:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field FaceID", wireType)
         }
         m.FaceID = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.FaceID |= int64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ObjInfo) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: ObjInfo: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ObjInfo: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field RcObj", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.RcObj == nil {
            m.RcObj = &Rect{}
         }
         if err := m.RcObj.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Typ", wireType)
         }
         m.Typ = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Typ |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 3:
         if wireType != 5 {
            return fmt.Errorf("proto: wrong wireType = %d for field Prob", wireType)
         }
         var v uint32
         if (iNdEx + 4) > l {
            return io.ErrUnexpectedEOF
         }
         v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
         iNdEx += 4
         m.Prob = float32(math.Float32frombits(v))
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ParamFacePos) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: ParamFacePos: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ParamFacePos: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Pos", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Pos == nil {
            m.Pos = &FacePos{}
         }
         if err := m.Pos.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Img", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Img == nil {
            m.Img = &Image{}
         }
         if err := m.Img.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ParamFaceCompare) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: ParamFaceCompare: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ParamFaceCompare: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Feat1", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Feat1 = append(m.Feat1[:0], dAtA[iNdEx:postIndex]...)
         if m.Feat1 == nil {
            m.Feat1 = []byte{}
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Feat2", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthProtomsg
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthProtomsg
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Feat2 = append(m.Feat2[:0], dAtA[iNdEx:postIndex]...)
         if m.Feat2 == nil {
            m.Feat2 = []byte{}
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipProtomsg(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthProtomsg
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func skipProtomsg(dAtA []byte) (n int, err error) {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return 0, ErrIntOverflowProtomsg
         }
         if iNdEx >= l {
            return 0, io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= (uint64(b) & 0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      wireType := int(wire & 0x7)
      switch wireType {
      case 0:
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return 0, ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return 0, io.ErrUnexpectedEOF
            }
            iNdEx++
            if dAtA[iNdEx-1] < 0x80 {
               break
            }
         }
         return iNdEx, nil
      case 1:
         iNdEx += 8
         return iNdEx, nil
      case 2:
         var length int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return 0, ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
               return 0, io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            length |= (int(b) & 0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if length < 0 {
            return 0, ErrInvalidLengthProtomsg
         }
         iNdEx += length
         if iNdEx < 0 {
            return 0, ErrInvalidLengthProtomsg
         }
         return iNdEx, nil
      case 3:
         for {
            var innerWire uint64
            var start int = iNdEx
            for shift := uint(0); ; shift += 7 {
               if shift >= 64 {
                  return 0, ErrIntOverflowProtomsg
               }
               if iNdEx >= l {
                  return 0, io.ErrUnexpectedEOF
               }
               b := dAtA[iNdEx]
               iNdEx++
               innerWire |= (uint64(b) & 0x7F) << shift
               if b < 0x80 {
                  break
               }
            }
            innerWireType := int(innerWire & 0x7)
            if innerWireType == 4 {
               break
            }
            next, err := skipProtomsg(dAtA[start:])
            if err != nil {
               return 0, err
            }
            iNdEx = start + next
            if iNdEx < 0 {
               return 0, ErrInvalidLengthProtomsg
            }
         }
         return iNdEx, nil
      case 4:
         return iNdEx, nil
      case 5:
         iNdEx += 4
         return iNdEx, nil
      default:
         return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
      }
   }
   panic("unreachable")
   // 1905 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0xcd, 0x8e, 0x24, 0x47,
   0x11, 0x76, 0x57, 0xff, 0x56, 0xf4, 0x8f, 0x7b, 0x93, 0xc5, 0xb4, 0x0d, 0x86, 0xd9, 0xda, 0x01,
   0x0f, 0x8b, 0x59, 0xc4, 0xf8, 0x8e, 0x34, 0xec, 0xb0, 0x68, 0xa4, 0xf5, 0x7a, 0x9c, 0x33, 0x5e,
   0x84, 0x2f, 0xa5, 0xec, 0xca, 0xec, 0xea, 0x72, 0x57, 0x57, 0x15, 0x59, 0xd9, 0x3b, 0xd3, 0x07,
   0x24, 0x0e, 0xdc, 0x79, 0x10, 0x5e, 0x84, 0x03, 0xef, 0xc0, 0x89, 0x0b, 0x12, 0x37, 0x24, 0xae,
   0x28, 0x22, 0xb3, 0xaa, 0xab, 0x67, 0x66, 0x57, 0x83, 0x7c, 0xdd, 0x5b, 0xfc, 0x75, 0x64, 0xc4,
   0x97, 0x91, 0x11, 0x51, 0x0d, 0x93, 0x42, 0xe7, 0x26, 0x5f, 0x97, 0xf1, 0x53, 0x22, 0xd8, 0xa0,
   0xe2, 0x83, 0x2f, 0xc1, 0xbf, 0x14, 0xe5, 0xea, 0x85, 0x98, 0xab, 0x94, 0x7d, 0x00, 0x3d, 0x23,
   0xca, 0x55, 0x22, 0x67, 0xad, 0x83, 0xd6, 0x91, 0xcf, 0x1d, 0x87, 0xf2, 0x52, 0xae, 0x12, 0x59,
   0xce, 0xbc, 0x83, 0x36, 0xca, 0x2d, 0xc7, 0x1e, 0x42, 0x37, 0xc9, 0xa4, 0xba, 0x9e, 0xb5, 0x0f,
   0x5a, 0x47, 0x5d, 0x6e, 0x99, 0x40, 0x00, 0x5c, 0xc8, 0xd5, 0xe7, 0xaa, 0x2c, 0x45, 0xac, 0xd8,
   0x14, 0xda, 0x51, 0xed, 0x10, 0x49, 0xf6, 0x73, 0xe8, 0xa3, 0xdf, 0x54, 0xcc, 0x67, 0xde, 0x41,
   0xeb, 0x68, 0x78, 0xfc, 0x9d, 0xa7, 0x75, 0x78, 0x75, 0x2c, 0xbc, 0xb2, 0x61, 0x0c, 0x3a, 0x52,
   0x18, 0x41, 0x67, 0x8c, 0x38, 0xd1, 0xc1, 0x19, 0x74, 0xcf, 0xd6, 0xe8, 0xfd, 0x21, 0x74, 0xaf,
   0x12, 0x69, 0x96, 0xe4, 0xbf, 0xcb, 0x2d, 0x83, 0xf1, 0x2e, 0x55, 0x12, 0x2f, 0x0d, 0x1d, 0xd0,
   0xe5, 0x8e, 0xbb, 0xd3, 0xd5, 0x73, 0xe8, 0x9c, 0x68, 0x25, 0xd8, 0x04, 0x3c, 0x17, 0x66, 0x97,
   0x7b, 0x89, 0x64, 0x1f, 0xc1, 0xa0, 0x10, 0x5a, 0x65, 0x26, 0x91, 0xce, 0x4b, 0xcd, 0xa3, 0x9f,
   0x4c, 0xac, 0x15, 0xf9, 0xf1, 0x39, 0xd1, 0xc1, 0xdf, 0x3c, 0xe8, 0x3d, 0x13, 0x6b, 0xa5, 0x9b,
   0xae, 0x7c, 0x72, 0x55, 0x99, 0x7b, 0x3b, 0x73, 0x94, 0x99, 0x6d, 0xa1, 0x1c, 0x72, 0x44, 0xa3,
   0x4c, 0x48, 0xa9, 0x67, 0x1d, 0x6b, 0x87, 0x34, 0xa6, 0x22, 0xb4, 0x12, 0x89, 0x9c, 0x75, 0x6d,
   0x2a, 0x96, 0x63, 0x3f, 0x00, 0x3f, 0xcd, 0xb3, 0x38, 0x31, 0x1b, 0xa9, 0x66, 0xbd, 0x83, 0xd6,
   0x91, 0xc7, 0x77, 0x02, 0x0c, 0x3e, 0x15, 0xc6, 0x2a, 0xfb, 0xa4, 0xac, 0x79, 0x3c, 0x45, 0x9b,
   0xb2, 0x98, 0x0d, 0xec, 0x29, 0x48, 0x53, 0xc4, 0xc5, 0xcc, 0x77, 0x11, 0x17, 0x68, 0x53, 0xe4,
   0xda, 0xcc, 0xc0, 0x46, 0x87, 0x34, 0xfa, 0xdc, 0x94, 0x4a, 0x53, 0x26, 0x43, 0xb2, 0xac, 0x79,
   0x0b, 0x56, 0x59, 0x5e, 0xe5, 0x5a, 0xce, 0x46, 0x56, 0x57, 0xf1, 0x78, 0x45, 0x73, 0x2d, 0x32,
   0x39, 0x1b, 0x93, 0xc2, 0x32, 0xf8, 0x0b, 0xad, 0x4a, 0xa5, 0x5f, 0x2b, 0x39, 0x9b, 0xd8, 0x5f,
   0x54, 0x7c, 0x10, 0xc1, 0x03, 0x8b, 0xe4, 0x49, 0x26, 0xb1, 0x20, 0xce, 0xb2, 0x45, 0xce, 0x8e,
   0xa0, 0x17, 0x91, 0x90, 0x80, 0x1d, 0x1e, 0x4f, 0x77, 0x45, 0x63, 0x8d, 0xb9, 0xd3, 0xb3, 0x43,
   0xe8, 0x62, 0xed, 0xd8, 0x62, 0x1d, 0x1e, 0x4f, 0xf6, 0xab, 0x8b, 0x5b, 0x65, 0xf0, 0x8f, 0x16,
   0x74, 0x90, 0x7f, 0x63, 0xd1, 0x7f, 0x04, 0x03, 0xa4, 0x1a, 0x37, 0x57, 0xf3, 0xec, 0xfb, 0xe0,
   0x47, 0x5a, 0x09, 0xa3, 0x42, 0x61, 0x5c, 0x15, 0x0c, 0xac, 0xe0, 0xc4, 0x34, 0x94, 0xf3, 0xad,
   0xbb, 0x4b, 0xa7, 0xfc, 0xf5, 0x16, 0x95, 0x9b, 0x42, 0xba, 0x5f, 0x76, 0x1d, 0x8c, 0x24, 0x38,
   0x31, 0x18, 0x8a, 0xca, 0xc4, 0x3c, 0xb5, 0x37, 0x3a, 0xe0, 0x8e, 0x63, 0x1f, 0xc2, 0x20, 0x29,
   0x43, 0x91, 0x0a, 0xbd, 0xa6, 0xeb, 0x1c, 0xf0, 0x7e, 0x52, 0x9e, 0x20, 0x8b, 0x2a, 0xa9, 0xd2,
   0x70, 0x91, 0x8a, 0x98, 0x6e, 0x74, 0xc0, 0xfb, 0x52, 0xa5, 0xcf, 0x53, 0x11, 0x07, 0x97, 0x30,
   0xc4, 0x04, 0x2f, 0xa4, 0x05, 0x30, 0x80, 0x0e, 0xc6, 0xef, 0xe0, 0xbb, 0x89, 0x0a, 0xe9, 0xd8,
   0x23, 0xe8, 0x94, 0xb2, 0x46, 0x6e, 0xbc, 0xb3, 0xb9, 0x90, 0x2b, 0x4e, 0xaa, 0xe0, 0x5f, 0x1e,
   0x80, 0x05, 0x9c, 0xd0, 0xbb, 0x59, 0xeb, 0x1f, 0x03, 0xd8, 0x6b, 0x08, 0x6d, 0xbb, 0x40, 0xb9,
   0x6f, 0x25, 0x67, 0xb2, 0x64, 0xdf, 0xb3, 0x6f, 0x3f, 0x4c, 0xa4, 0x83, 0x8d, 0xd0, 0x3e, 0xc3,
   0xa6, 0xe0, 0x9b, 0x64, 0xad, 0x42, 0xbd, 0x49, 0xd5, 0xac, 0x43, 0xc7, 0x37, 0x6e, 0xf8, 0x54,
   0x6c, 0x9f, 0x99, 0x94, 0x0f, 0xd0, 0x84, 0x6f, 0x52, 0x85, 0xc7, 0x68, 0x25, 0x22, 0x63, 0xed,
   0x2d, 0x8e, 0x3e, 0x49, 0x48, 0xfd, 0x08, 0x46, 0x56, 0x2d, 0xd5, 0xeb, 0x24, 0xb2, 0x70, 0xfa,
   0x7c, 0x48, 0xb2, 0x53, 0x12, 0xed, 0x01, 0xd7, 0xdf, 0x03, 0x8e, 0xfd, 0x08, 0x86, 0xee, 0x8e,
   0x1a, 0xb0, 0x82, 0x15, 0x91, 0xc1, 0xee, 0x9e, 0xfc, 0xbd, 0x7b, 0x62, 0xd0, 0x29, 0x1b, 0xcf,
   0x06, 0x69, 0xcc, 0x38, 0x29, 0xc3, 0xc5, 0x26, 0x4d, 0xe9, 0xd5, 0x0c, 0x78, 0x2f, 0x29, 0x9f,
   0x6f, 0xd2, 0x94, 0x05, 0x30, 0x4e, 0x93, 0x6c, 0x15, 0xc6, 0x3a, 0xdf, 0x14, 0x08, 0x88, 0x7d,
   0x38, 0x43, 0x14, 0xfe, 0x16, 0x65, 0x67, 0x32, 0xf8, 0x53, 0x0b, 0x26, 0x0e, 0xec, 0x64, 0xad,
   0x30, 0xd7, 0x7b, 0x35, 0x17, 0xac, 0xc0, 0xea, 0x12, 0xea, 0xf2, 0x74, 0x77, 0xf0, 0x7f, 0x22,
   0x1d, 0xbc, 0x84, 0x9e, 0x95, 0x61, 0x27, 0x97, 0x62, 0xeb, 0x5a, 0x24, 0x92, 0xec, 0x18, 0xc0,
   0xba, 0x12, 0x59, 0xac, 0x5c, 0xd1, 0x34, 0x9b, 0x39, 0xfa, 0x40, 0x15, 0xa7, 0x13, 0x89, 0x0c,
   0x3e, 0x03, 0xbf, 0x96, 0x63, 0x6f, 0x28, 0x8d, 0xd0, 0xc6, 0xe5, 0x63, 0x19, 0x3c, 0x48, 0x65,
   0xd2, 0x65, 0x84, 0x64, 0xf0, 0x0a, 0xfa, 0xe7, 0x79, 0xba, 0x8d, 0xf3, 0xec, 0x5e, 0xf9, 0x7f,
   0x02, 0xbd, 0x22, 0x4f, 0x32, 0x53, 0xba, 0xfc, 0xde, 0xdf, 0xc5, 0x74, 0x8e, 0x72, 0xee, 0xd4,
   0xc1, 0x7f, 0xbd, 0x1a, 0x5f, 0x51, 0xae, 0x4e, 0x74, 0x5c, 0xde, 0xf2, 0x7f, 0x08, 0x13, 0x87,
   0x65, 0x55, 0xb8, 0xf6, 0xa4, 0x51, 0x54, 0xff, 0xee, 0x4c, 0xbe, 0x1d, 0xf1, 0x8f, 0x01, 0x0a,
   0x1b, 0x3d, 0x6a, 0x6d, 0x47, 0xf0, 0x9d, 0xe4, 0x4c, 0xb2, 0xef, 0xd2, 0x74, 0x0d, 0x5d, 0x8b,
   0x47, 0x14, 0x24, 0xba, 0x0c, 0x60, 0x8c, 0x62, 0xa1, 0xe3, 0x50, 0xa4, 0x89, 0x28, 0xab, 0x22,
   0x2e, 0x25, 0x06, 0x7a, 0x82, 0x22, 0xec, 0x51, 0x79, 0xa1, 0xb4, 0x30, 0xb9, 0xa6, 0x22, 0xf6,
   0x79, 0xcd, 0xb3, 0xc7, 0x30, 0xae, 0xe8, 0x90, 0x46, 0x8d, 0x6d, 0xf8, 0xa3, 0x4a, 0x78, 0x89,
   0x23, 0xa7, 0x71, 0xc8, 0x6b, 0x91, 0x6e, 0x94, 0x9b, 0x01, 0xee, 0x90, 0x57, 0x28, 0xba, 0xb3,
   0xaa, 0x0f, 0x61, 0x82, 0xf5, 0x13, 0x5e, 0x25, 0x66, 0x19, 0x66, 0xea, 0xda, 0xb8, 0x91, 0x30,
   0x42, 0xe9, 0xef, 0x12, 0xb3, 0x7c, 0xa9, 0xae, 0x0d, 0xbe, 0xb1, 0x1b, 0xd5, 0xdd, 0x8f, 0x5d,
   0x65, 0xff, 0xd5, 0x83, 0xf6, 0x85, 0xbc, 0xdd, 0x3f, 0x3e, 0x84, 0x01, 0x06, 0x44, 0x01, 0x5b,
   0xa0, 0xfb, 0xa5, 0x5c, 0x51, 0xac, 0x4e, 0xd5, 0x98, 0xbc, 0xa8, 0x7a, 0x89, 0x17, 0x7e, 0x08,
   0x1d, 0xa1, 0xe3, 0xf2, 0x76, 0x39, 0x5f, 0x50, 0x1e, 0x9c, 0xb4, 0x98, 0x48, 0x12, 0xe5, 0x99,
   0x83, 0x99, 0x68, 0xac, 0xb5, 0x8d, 0x4e, 0x1d, 0xb6, 0x48, 0xe2, 0xeb, 0x77, 0xed, 0x1b, 0x8b,
   0xd6, 0xc1, 0x0a, 0x56, 0x84, 0x95, 0xdb, 0x68, 0x0f, 0x64, 0x60, 0x61, 0x75, 0xed, 0x81, 0x0c,
   0xf6, 0x06, 0x80, 0x7f, 0x63, 0x00, 0xcc, 0xa0, 0x6f, 0xbb, 0x85, 0x24, 0x40, 0x7d, 0x5e, 0xb1,
   0x7b, 0x1d, 0xc9, 0xa2, 0x59, 0xb7, 0xf2, 0x3f, 0xb7, 0xa0, 0x67, 0x53, 0xc1, 0x27, 0x63, 0xcb,
   0xc1, 0xa2, 0x63, 0x99, 0xbb, 0x36, 0x92, 0x7a, 0xc5, 0x70, 0xeb, 0x44, 0xb5, 0x62, 0xac, 0x37,
   0xa5, 0x9d, 0x3c, 0x03, 0x4e, 0x34, 0x7a, 0xb4, 0x0f, 0xd8, 0x82, 0x60, 0x99, 0xfa, 0xd6, 0xfb,
   0xbb, 0x5b, 0x0f, 0x1e, 0x43, 0x97, 0xde, 0x0f, 0x1b, 0x41, 0xeb, 0xda, 0x35, 0x82, 0xd6, 0x35,
   0x72, 0x5b, 0xb7, 0x23, 0xb5, 0xb6, 0xc1, 0xd7, 0xd0, 0xe1, 0x2a, 0xa2, 0x65, 0x2b, 0x55, 0x0b,
   0xe3, 0xcc, 0x88, 0x46, 0xb4, 0x4d, 0x5e, 0x38, 0x5b, 0x24, 0xe9, 0x70, 0xda, 0xd4, 0xdc, 0x0a,
   0x49, 0x0c, 0x36, 0xd8, 0x79, 0x6e, 0x4c, 0xbe, 0xa6, 0xe0, 0xbb, 0xdc, 0x71, 0x41, 0x0c, 0xfe,
   0x73, 0x11, 0xa9, 0x93, 0x2c, 0x4e, 0x69, 0xb3, 0xdc, 0x8a, 0xab, 0xaa, 0x1f, 0x6d, 0xc5, 0x15,
   0x3a, 0x2b, 0x12, 0x13, 0x2d, 0xdd, 0x01, 0x96, 0xa1, 0x85, 0x27, 0x4f, 0xd3, 0x6a, 0xd5, 0x42,
   0x9a, 0xfd, 0x10, 0x20, 0xca, 0xb3, 0x45, 0x22, 0x55, 0x16, 0x59, 0x84, 0x3c, 0xde, 0x90, 0x04,
   0xd7, 0x00, 0x97, 0xcb, 0x85, 0xe1, 0xaa, 0xdc, 0xa4, 0x14, 0x4e, 0xac, 0x32, 0xa9, 0xb4, 0x3b,
   0xcc, 0x71, 0x18, 0x81, 0x88, 0x55, 0x95, 0x8e, 0xb0, 0xa8, 0x69, 0x11, 0xd5, 0x6b, 0x1d, 0xd2,
   0x94, 0x8c, 0x12, 0x1b, 0xb3, 0xad, 0x93, 0x21, 0x8e, 0x9a, 0xdf, 0x3a, 0x71, 0xe3, 0xab, 0xcb,
   0x2d, 0x13, 0xfc, 0xdd, 0x83, 0x3e, 0xe6, 0x78, 0x9e, 0x97, 0xec, 0x27, 0xd0, 0xd3, 0x11, 0x32,
   0xb7, 0x87, 0x36, 0x42, 0xcc, 0x9d, 0x16, 0x5b, 0x7a, 0x61, 0x5e, 0xa8, 0x85, 0xf9, 0xcd, 0x56,
   0xb9, 0x9d, 0xfa, 0x56, 0xcb, 0xdb, 0x59, 0xb0, 0x5f, 0x00, 0x14, 0x86, 0x23, 0xd0, 0x68, 0xdf,
   0xbe, 0xdb, 0xbe, 0x61, 0xc2, 0x7e, 0x0a, 0xfd, 0xc2, 0x7c, 0x9e, 0x6f, 0xcc, 0x92, 0x52, 0xb8,
   0xc3, 0xba, 0xd2, 0x53, 0xeb, 0x35, 0x2f, 0xf3, 0xd2, 0x66, 0x75, 0x67, 0xeb, 0x25, 0x35, 0xfb,
   0x19, 0xf4, 0x16, 0x74, 0x8f, 0x54, 0x76, 0x7b, 0x73, 0xa3, 0xbe, 0x62, 0xee, 0x4c, 0xf0, 0xd1,
   0xfc, 0x61, 0x23, 0xd2, 0xc4, 0x6c, 0x5d, 0x3d, 0x56, 0x2c, 0x5e, 0xe4, 0x42, 0x44, 0x89, 0x48,
   0x4f, 0x71, 0xb1, 0x1f, 0xd0, 0x62, 0xdf, 0x90, 0x04, 0xff, 0xf4, 0x60, 0x80, 0xfe, 0x68, 0x05,
   0x7a, 0x87, 0xe7, 0xb7, 0xc5, 0x13, 0x8b, 0x79, 0x81, 0x70, 0x9e, 0x52, 0x63, 0x6b, 0x73, 0xc7,
   0x05, 0x5f, 0x41, 0xff, 0x8b, 0xf9, 0x37, 0x84, 0xf2, 0x21, 0x74, 0x75, 0xf4, 0xc5, 0xfc, 0x9b,
   0x37, 0x80, 0x6c, 0x95, 0xd4, 0x0a, 0xb6, 0xbb, 0x56, 0xb0, 0xb5, 0x1f, 0x1d, 0x3a, 0x9f, 0x13,
   0x80, 0x1e, 0x27, 0x3a, 0x78, 0x05, 0xa3, 0x73, 0xa1, 0xc5, 0xba, 0x7a, 0x11, 0x8f, 0xa1, 0x5d,
   0xe4, 0xa5, 0xf3, 0xfc, 0x60, 0x3f, 0xc5, 0xf3, 0xbc, 0xe4, 0xa8, 0x65, 0x8f, 0xa0, 0x9d, 0xac,
   0xe3, 0xdb, 0x17, 0x47, 0x9f, 0x8c, 0x1c, 0x75, 0xc1, 0xaf, 0x60, 0x5a, 0xfb, 0x7d, 0x96, 0xaf,
   0xf1, 0xcb, 0x0e, 0xdf, 0xe3, 0x42, 0x09, 0xf3, 0x4b, 0xf2, 0x3e, 0xe2, 0x96, 0xa9, 0xa4, 0xc7,
   0xe4, 0xce, 0x49, 0x8f, 0x03, 0x09, 0x0f, 0x76, 0x71, 0x69, 0x1c, 0xa9, 0x66, 0xcb, 0x3e, 0x85,
   0x9e, 0xa6, 0x86, 0xe1, 0xe2, 0x7b, 0xd8, 0x58, 0x85, 0xea, 0x66, 0xc2, 0x9d, 0xcd, 0x7d, 0xa2,
   0xfc, 0xda, 0x65, 0xff, 0xfb, 0x3c, 0xcd, 0x11, 0xb3, 0x4f, 0xf0, 0x7b, 0x7b, 0x41, 0xf9, 0xb7,
   0xf7, 0xf3, 0x77, 0xd8, 0x73, 0xab, 0xbf, 0x8f, 0xef, 0xbf, 0xb4, 0xe0, 0xfd, 0xd3, 0xf9, 0xb3,
   0x25, 0x36, 0xfb, 0xea, 0x5b, 0xfd, 0x53, 0xfc, 0x72, 0xc2, 0xb5, 0x16, 0xe3, 0x9f, 0x1c, 0x7f,
   0xd0, 0xfc, 0x46, 0x98, 0xa7, 0xca, 0x1a, 0x4b, 0x6e, 0x8d, 0xdc, 0xe8, 0xf6, 0xea, 0xd1, 0xfd,
   0x04, 0x7a, 0x22, 0x32, 0x49, 0x9e, 0xd1, 0x0d, 0x4e, 0x8e, 0x59, 0x63, 0xab, 0x9c, 0x9f, 0x90,
   0x86, 0x3b, 0x0b, 0x1a, 0xc5, 0xd9, 0x22, 0xaf, 0x66, 0x13, 0xd2, 0xc1, 0xbf, 0x5b, 0x30, 0xb6,
   0xcb, 0xd8, 0x9b, 0x76, 0xbd, 0xbd, 0x2d, 0xcb, 0xbb, 0xb1, 0x65, 0xdd, 0x35, 0x02, 0x67, 0xd0,
   0x77, 0x7b, 0x96, 0x3b, 0xa9, 0x62, 0xf1, 0x0b, 0xc1, 0xe8, 0x24, 0x8e, 0x95, 0x0e, 0xd3, 0x24,
   0xab, 0x3e, 0x21, 0x86, 0x4e, 0xf6, 0x22, 0xc9, 0x14, 0xfb, 0x31, 0x4c, 0x64, 0xa2, 0x15, 0x05,
   0x6c, 0x8d, 0xec, 0x80, 0x1c, 0xd7, 0x52, 0x32, 0xab, 0xc6, 0x6c, 0xbf, 0x31, 0x66, 0x1f, 0xc3,
   0x58, 0xaa, 0x05, 0x4e, 0x92, 0xb0, 0x34, 0xc2, 0xd8, 0x25, 0xa1, 0xcb, 0x47, 0x4e, 0x78, 0x81,
   0xb2, 0xe0, 0x3f, 0x5e, 0x95, 0xaf, 0x5b, 0x3e, 0xdf, 0xed, 0x9e, 0xf7, 0xda, 0x3d, 0x03, 0x18,
   0xef, 0x76, 0xcf, 0x42, 0x57, 0xff, 0x46, 0x0c, 0xab, 0xd5, 0xf3, 0x5c, 0xab, 0xb7, 0x6d, 0x9e,
   0x5f, 0x36, 0x3f, 0xa9, 0xf8, 0xdb, 0x3e, 0xa9, 0xda, 0xfb, 0x9f, 0x54, 0xcd, 0xaf, 0x26, 0xfb,
   0x77, 0x80, 0x73, 0xf0, 0xe4, 0x8f, 0x30, 0x6a, 0x3e, 0x10, 0x36, 0x82, 0xc1, 0x65, 0x68, 0x0f,
   0x99, 0xbe, 0xc7, 0xa6, 0x30, 0xaa, 0x38, 0xbc, 0xb1, 0x69, 0x8b, 0x3d, 0x84, 0x69, 0x53, 0x82,
   0xdf, 0x1d, 0x53, 0x8f, 0x01, 0xf4, 0x2e, 0x43, 0xb2, 0x68, 0xb3, 0x31, 0xf8, 0x96, 0xbe, 0x90,
   0xab, 0x69, 0x87, 0x3d, 0x80, 0x71, 0xcd, 0xe2, 0x89, 0xd3, 0x2e, 0xf3, 0xa1, 0x7b, 0x19, 0xa2,
   0xb6, 0xf7, 0xe4, 0x29, 0x0c, 0xaa, 0x07, 0x86, 0x4e, 0xce, 0xb2, 0x52, 0x69, 0x33, 0x7d, 0x0f,
   0xe9, 0xaf, 0x68, 0x2b, 0x9d, 0xb6, 0x90, 0x3e, 0x55, 0xa9, 0x32, 0x6a, 0xea, 0xcd, 0x7b, 0xf4,
   0x2e, 0x3f, 0xfb, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb4, 0xe3, 0x5c, 0x84, 0x16, 0x14, 0x00,
   0x00,
}
var (
   ErrInvalidLengthProtomsg = fmt.Errorf("proto: negative length found during unmarshaling")
   ErrIntOverflowProtomsg   = fmt.Errorf("proto: integer overflow")
)