From 70eebbdd95fda629fa7f3efa670cd58d099e0f1a Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期三, 21 八月 2019 19:42:16 +0800
Subject: [PATCH] add soInfo

---
 sdk.pb.go           |  144 ++-
 .idea/workspace.xml |   68 +
 sdk.proto           |  114 +-
 sysset.pb.go        | 1944 ++------------------------------------------------
 4 files changed, 306 insertions(+), 1,964 deletions(-)

diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 1ce45fe..55e12e3 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,7 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ChangeListManager">
-    <list default="true" id="becdd117-1021-4e06-af58-0f70d982f4ee" name="Default Changelist" comment="" />
+    <list default="true" id="becdd117-1021-4e06-af58-0f70d982f4ee" name="Default Changelist" comment="">
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/sdk.pb.go" beforeDir="false" afterPath="$PROJECT_DIR$/sdk.pb.go" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/sdk.proto" beforeDir="false" afterPath="$PROJECT_DIR$/sdk.proto" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/sysset.pb.go" beforeDir="false" afterPath="$PROJECT_DIR$/sysset.pb.go" afterDir="false" />
+    </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -10,20 +15,25 @@
   </component>
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="375">
-      <file pinned="false" current-in-tab="false">
+      <file pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/sdk.proto">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="420">
-              <caret line="69" column="25" selection-start-line="69" selection-start-column="25" selection-end-line="69" selection-end-column="25" />
+            <state relative-caret-position="258">
+              <caret line="75" column="42" lean-forward="true" selection-start-line="75" selection-start-column="42" selection-end-line="75" selection-end-column="42" />
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/sdk.pb.go">
+          <provider selected="true" editor-type-id="text-editor" />
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/protomsg.proto">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="301">
-              <caret line="213" column="20" lean-forward="true" selection-start-line="213" selection-start-column="20" selection-end-line="213" selection-end-column="20" />
+            <state relative-caret-position="343">
+              <caret line="180" column="30" selection-start-line="180" selection-start-column="30" selection-end-line="180" selection-end-column="30" />
             </state>
           </provider>
         </entry>
@@ -38,16 +48,7 @@
     <option name="CHANGED_PATHS">
       <list>
         <option value="$PROJECT_DIR$/protomsg.proto" />
-      </list>
-    </option>
-  </component>
-  <component name="ProjectConfigurationFiles">
-    <option name="files">
-      <list>
-        <option value="$PROJECT_DIR$/.idea/protomsg.iml" />
-        <option value="$PROJECT_DIR$/.idea/vcs.xml" />
-        <option value="$PROJECT_DIR$/.idea/misc.xml" />
-        <option value="$PROJECT_DIR$/.idea/modules.xml" />
+        <option value="$PROJECT_DIR$/sdk.proto" />
       </list>
     </option>
   </component>
@@ -62,7 +63,17 @@
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
-      <pane id="ProjectPane" />
+      <pane id="ProjectPane">
+        <subPane>
+          <expand>
+            <path>
+              <item name="protomsg" type="b2602c69:ProjectViewProjectNode" />
+              <item name="protomsg" type="462c0819:PsiDirectoryNode" />
+            </path>
+          </expand>
+          <select />
+        </subPane>
+      </pane>
       <pane id="Scope" />
     </panes>
   </component>
@@ -75,6 +86,7 @@
     <property name="last_opened_file_path" value="$PROJECT_DIR$" />
     <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
     <property name="nodejs_npm_path_reset_for_default_project" value="true" />
+    <property name="settings.editor.selected.configurable" value="go.vgo" />
   </component>
   <component name="RunDashboard">
     <option name="ruleStates">
@@ -92,7 +104,7 @@
     <frame x="-8" y="-8" width="1936" height="1176" extended-state="6" />
     <editor active="true" />
     <layout>
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.19796138" />
+      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.20064378" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
       <window_info id="Favorites" order="2" side_tool="true" />
       <window_info anchor="bottom" id="Message" order="0" />
@@ -116,18 +128,24 @@
   <component name="TypeScriptGeneratedFilesManager">
     <option name="version" value="1" />
   </component>
+  <component name="VgoProject">
+    <integration-enabled>true</integration-enabled>
+  </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/sdk.proto">
+    <entry file="file://$PROJECT_DIR$/protomsg.proto">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="420">
-          <caret line="69" column="25" selection-start-line="69" selection-start-column="25" selection-end-line="69" selection-end-column="25" />
+        <state relative-caret-position="343">
+          <caret line="180" column="30" selection-start-line="180" selection-start-column="30" selection-end-line="180" selection-end-column="30" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/protomsg.proto">
+    <entry file="file://$PROJECT_DIR$/sdk.pb.go">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/sdk.proto">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="301">
-          <caret line="213" column="20" lean-forward="true" selection-start-line="213" selection-start-column="20" selection-end-line="213" selection-end-column="20" />
+        <state relative-caret-position="258">
+          <caret line="75" column="42" lean-forward="true" selection-start-line="75" selection-start-column="42" selection-end-line="75" selection-end-column="42" />
         </state>
       </provider>
     </entry>
diff --git a/sdk.pb.go b/sdk.pb.go
index 7a4a3d8..8dad118 100644
--- a/sdk.pb.go
+++ b/sdk.pb.go
@@ -732,6 +732,61 @@
 	return nil
 }
 
+type SoInfo struct {
+	Id                   int32    `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+	SdkId                string   `protobuf:"bytes,2,opt,name=sdkId,proto3" json:"sdkId,omitempty"`
+	SoName               string   `protobuf:"bytes,3,opt,name=soName,proto3" json:"soName,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *SoInfo) Reset()         { *m = SoInfo{} }
+func (m *SoInfo) String() string { return proto.CompactTextString(m) }
+func (*SoInfo) ProtoMessage()    {}
+func (*SoInfo) Descriptor() ([]byte, []int) {
+	return fileDescriptor_70decb0fb6f436df, []int{11}
+}
+
+func (m *SoInfo) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_SoInfo.Unmarshal(m, b)
+}
+func (m *SoInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_SoInfo.Marshal(b, m, deterministic)
+}
+func (m *SoInfo) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_SoInfo.Merge(m, src)
+}
+func (m *SoInfo) XXX_Size() int {
+	return xxx_messageInfo_SoInfo.Size(m)
+}
+func (m *SoInfo) XXX_DiscardUnknown() {
+	xxx_messageInfo_SoInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SoInfo proto.InternalMessageInfo
+
+func (m *SoInfo) GetId() int32 {
+	if m != nil {
+		return m.Id
+	}
+	return 0
+}
+
+func (m *SoInfo) GetSdkId() string {
+	if m != nil {
+		return m.SdkId
+	}
+	return ""
+}
+
+func (m *SoInfo) GetSoName() string {
+	if m != nil {
+		return m.SoName
+	}
+	return ""
+}
+
 func init() {
 	proto.RegisterType((*Image)(nil), "protomsg.Image")
 	proto.RegisterType((*FaceAngle)(nil), "protomsg.FaceAngle")
@@ -744,52 +799,55 @@
 	proto.RegisterType((*ResultFaceExtCom)(nil), "protomsg.ResultFaceExtCom")
 	proto.RegisterType((*ParamFaceFeature)(nil), "protomsg.ParamFaceFeature")
 	proto.RegisterType((*ParamYoloObj)(nil), "protomsg.ParamYoloObj")
+	proto.RegisterType((*SoInfo)(nil), "protomsg.SoInfo")
 }
 
 func init() { proto.RegisterFile("sdk.proto", fileDescriptor_70decb0fb6f436df) }
 
 var fileDescriptor_70decb0fb6f436df = []byte{
-	// 669 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0xd1, 0x6e, 0xd3, 0x4a,
-	0x10, 0x95, 0x93, 0xd8, 0x69, 0x26, 0x55, 0x6f, 0xef, 0xde, 0xea, 0xca, 0xaa, 0xae, 0xae, 0x22,
-	0x83, 0x68, 0x10, 0xa5, 0xa0, 0x80, 0xc4, 0x2b, 0x88, 0xb4, 0x22, 0x12, 0xd0, 0x68, 0xc5, 0x0b,
-	0x8f, 0xeb, 0xf5, 0xda, 0x71, 0x6a, 0x7b, 0x8d, 0xbd, 0x51, 0x1b, 0xf1, 0x05, 0xfc, 0x27, 0xfc,
-	0x07, 0x9a, 0xdd, 0x75, 0xec, 0x4a, 0x2d, 0x4f, 0x3c, 0xf2, 0x94, 0x99, 0x9d, 0xe3, 0x9c, 0x33,
-	0x67, 0x76, 0x16, 0x46, 0x75, 0x74, 0x75, 0x56, 0x56, 0x52, 0x49, 0xb2, 0xa7, 0x7f, 0xf2, 0x3a,
-	0x39, 0x86, 0x90, 0xd5, 0xc2, 0x9c, 0x06, 0xdf, 0x1c, 0x70, 0x17, 0x39, 0x4b, 0x04, 0x39, 0x02,
-	0xf7, 0x3a, 0x8d, 0xd4, 0xca, 0x77, 0x26, 0xce, 0xd4, 0xa5, 0x26, 0x21, 0xff, 0x82, 0xb7, 0x12,
-	0x69, 0xb2, 0x52, 0x7e, 0x4f, 0x1f, 0xdb, 0x8c, 0x10, 0x18, 0x44, 0x4c, 0x31, 0xbf, 0x3f, 0x71,
-	0xa6, 0xfb, 0x54, 0xc7, 0xe4, 0x3f, 0x18, 0xa9, 0x34, 0x17, 0xb5, 0x62, 0x79, 0xe9, 0x0f, 0x26,
-	0xce, 0x74, 0x44, 0xdb, 0x03, 0x72, 0x00, 0xbd, 0x34, 0xf2, 0xdd, 0x89, 0x33, 0xed, 0xd3, 0x5e,
-	0x1a, 0x91, 0x43, 0xe8, 0xf3, 0x34, 0xf2, 0x3d, 0x8d, 0xc3, 0x30, 0x48, 0x60, 0x74, 0xc1, 0xb8,
-	0x78, 0x53, 0x24, 0x99, 0xc0, 0xf2, 0x96, 0x5d, 0x5b, 0x31, 0x18, 0xa2, 0xc0, 0x32, 0x55, 0x7c,
-	0x65, 0x95, 0x98, 0x04, 0x85, 0x54, 0x32, 0xcb, 0xb4, 0x10, 0x97, 0xea, 0x98, 0xfc, 0x0f, 0xc0,
-	0x65, 0x11, 0xa7, 0x91, 0x28, 0xb8, 0xd0, 0x4a, 0x7a, 0xb4, 0x73, 0x12, 0xdc, 0x00, 0x7c, 0x5a,
-	0xc5, 0x8a, 0x8a, 0x7a, 0x93, 0x29, 0x6c, 0x31, 0x11, 0x45, 0x24, 0x2a, 0x4b, 0x66, 0x33, 0x54,
-	0xc0, 0x12, 0x61, 0xd9, 0x30, 0xd4, 0x5c, 0x8c, 0x8b, 0x1d, 0x17, 0xe3, 0x02, 0xbf, 0x0e, 0x05,
-	0xdb, 0xa8, 0xad, 0xe6, 0x71, 0xa9, 0xcd, 0x50, 0x6d, 0x9d, 0xa7, 0x99, 0xd0, 0x1d, 0xbb, 0xd4,
-	0x24, 0xc1, 0xf7, 0x1e, 0x0c, 0xb1, 0xc7, 0xa5, 0xac, 0xc9, 0x23, 0xf0, 0x2a, 0x8e, 0x89, 0xe6,
-	0x1d, 0xcf, 0x0e, 0xce, 0x9a, 0x09, 0x9d, 0x51, 0xc1, 0x15, 0xb5, 0x55, 0xf2, 0x14, 0x46, 0xa5,
-	0x7a, 0x2f, 0x62, 0x75, 0xbe, 0x35, 0x6a, 0xc6, 0xb3, 0xbf, 0x5a, 0xe8, 0x52, 0xa6, 0x85, 0xa2,
-	0x2d, 0x82, 0x3c, 0x03, 0x28, 0x15, 0xc5, 0x21, 0x21, 0xbe, 0x7f, 0x37, 0xbe, 0x03, 0x21, 0x8f,
-	0x61, 0x58, 0xaa, 0x0f, 0x72, 0xa3, 0x56, 0xba, 0x85, 0x3b, 0xd0, 0x4d, 0x9d, 0x9c, 0x80, 0x57,
-	0xaa, 0x8f, 0xb2, 0x36, 0x5d, 0xdd, 0x81, 0xb4, 0x65, 0xf2, 0x04, 0xbc, 0x58, 0xcf, 0x51, 0xcf,
-	0x77, 0x3c, 0xfb, 0xa7, 0x05, 0xee, 0x46, 0x4c, 0x2d, 0x84, 0xf8, 0x30, 0xfc, 0xb2, 0x61, 0x59,
-	0xaa, 0xb6, 0xfe, 0x50, 0x9b, 0xd5, 0xa4, 0x38, 0xc8, 0x98, 0xf1, 0x94, 0x65, 0x73, 0xbc, 0x6b,
-	0x7b, 0xfa, 0xae, 0x75, 0x4e, 0xd0, 0xfc, 0x98, 0x71, 0xb1, 0x98, 0xfb, 0xa3, 0x89, 0x33, 0x1d,
-	0x50, 0x9b, 0x05, 0x3f, 0x7a, 0xb0, 0x87, 0x3c, 0x8b, 0x22, 0x96, 0x7f, 0x7c, 0xfe, 0xdd, 0x3e,
-	0xf7, 0x77, 0x3e, 0x5f, 0xc1, 0xf0, 0x32, 0x5c, 0x6b, 0x97, 0x1f, 0x82, 0x5b, 0xf1, 0xcb, 0x70,
-	0x7d, 0x8f, 0xc9, 0xa6, 0x88, 0x3b, 0xa5, 0xb6, 0x65, 0xb3, 0x53, 0x6a, 0x5b, 0xe2, 0x4e, 0x95,
-	0x95, 0x0c, 0xb5, 0x81, 0x3d, 0xaa, 0x63, 0xdc, 0x1d, 0x19, 0xae, 0x17, 0x73, 0xed, 0xd3, 0x80,
-	0x9a, 0x24, 0xf8, 0x0a, 0x87, 0x66, 0x63, 0xb1, 0xb3, 0xb9, 0x50, 0x82, 0x2b, 0xf2, 0x00, 0xfa,
-	0xa5, 0xac, 0x2d, 0xe7, 0xdf, 0xb7, 0x9b, 0x5f, 0xca, 0x9a, 0x62, 0x95, 0x9c, 0x82, 0x57, 0xe9,
-	0x0f, 0xed, 0x54, 0x8f, 0x5a, 0x5c, 0xfb, 0x0c, 0x50, 0x8b, 0x41, 0xf2, 0x58, 0x30, 0x55, 0xdb,
-	0xa7, 0xcd, 0x24, 0xc1, 0x6b, 0xd8, 0x5f, 0xb2, 0x8a, 0xe5, 0xcd, 0xf2, 0x3e, 0x07, 0x17, 0x3d,
-	0x40, 0xea, 0xfe, 0x74, 0x3c, 0x3b, 0xee, 0xb6, 0x7b, 0x5b, 0x23, 0x35, 0xc0, 0x60, 0xdd, 0x95,
-	0x7f, 0x7e, 0xa3, 0xde, 0xca, 0xbc, 0xe5, 0x72, 0x3a, 0x5c, 0x68, 0x09, 0x97, 0xb9, 0x71, 0x69,
-	0x9f, 0xea, 0x98, 0x9c, 0x9a, 0x46, 0xcd, 0x35, 0xfb, 0x15, 0x1b, 0xc2, 0x82, 0x77, 0x70, 0xb8,
-	0x53, 0x7b, 0x21, 0x98, 0xda, 0x54, 0x82, 0xbc, 0x84, 0xa1, 0xd0, 0xac, 0xf8, 0xc7, 0xf7, 0x6a,
-	0x36, 0xc2, 0x68, 0x03, 0x0d, 0x5e, 0xd9, 0xbe, 0x3f, 0xcb, 0x4c, 0xe2, 0x00, 0x4f, 0xc0, 0x4d,
-	0x8b, 0x58, 0x36, 0x7d, 0x77, 0x2c, 0xb7, 0x17, 0x81, 0x9a, 0x7a, 0xe8, 0xe9, 0xc2, 0x8b, 0x9f,
-	0x01, 0x00, 0x00, 0xff, 0xff, 0x71, 0xcf, 0xd4, 0xbd, 0x82, 0x06, 0x00, 0x00,
+	// 703 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0x41, 0x6f, 0xd3, 0x4c,
+	0x10, 0x95, 0x93, 0xd8, 0xa9, 0x27, 0x55, 0xbf, 0x7e, 0x4b, 0x85, 0xac, 0x0a, 0xa1, 0xc8, 0x20,
+	0x1a, 0x44, 0x29, 0x28, 0x20, 0x71, 0x05, 0x91, 0x56, 0x44, 0x82, 0x36, 0x5a, 0xb8, 0x70, 0xdc,
+	0xac, 0xd7, 0x89, 0x53, 0xdb, 0x6b, 0xec, 0x8d, 0xda, 0x88, 0x5f, 0xc0, 0xff, 0x84, 0xff, 0x81,
+	0x66, 0x77, 0x1d, 0xbb, 0x52, 0xcb, 0x89, 0x23, 0xa7, 0xcc, 0xec, 0x3c, 0xe7, 0xbd, 0x79, 0xb3,
+	0xb3, 0xe0, 0x57, 0xd1, 0xe5, 0x49, 0x51, 0x4a, 0x25, 0xc9, 0x8e, 0xfe, 0xc9, 0xaa, 0xc5, 0x21,
+	0xcc, 0x59, 0x25, 0xcc, 0x69, 0xf8, 0xc3, 0x01, 0x77, 0x9a, 0xb1, 0x85, 0x20, 0x07, 0xe0, 0x5e,
+	0x25, 0x91, 0x5a, 0x06, 0xce, 0xd0, 0x19, 0xb9, 0xd4, 0x24, 0xe4, 0x3e, 0x78, 0x4b, 0x91, 0x2c,
+	0x96, 0x2a, 0xe8, 0xe8, 0x63, 0x9b, 0x11, 0x02, 0xbd, 0x88, 0x29, 0x16, 0x74, 0x87, 0xce, 0x68,
+	0x97, 0xea, 0x98, 0x3c, 0x00, 0x5f, 0x25, 0x99, 0xa8, 0x14, 0xcb, 0x8a, 0xa0, 0x37, 0x74, 0x46,
+	0x3e, 0x6d, 0x0e, 0xc8, 0x1e, 0x74, 0x92, 0x28, 0x70, 0x87, 0xce, 0xa8, 0x4b, 0x3b, 0x49, 0x44,
+	0xf6, 0xa1, 0xcb, 0x93, 0x28, 0xf0, 0x34, 0x0e, 0xc3, 0x70, 0x01, 0xfe, 0x19, 0xe3, 0xe2, 0x5d,
+	0xbe, 0x48, 0x05, 0x96, 0x37, 0xec, 0xca, 0x8a, 0xc1, 0x10, 0x05, 0x16, 0x89, 0xe2, 0x4b, 0xab,
+	0xc4, 0x24, 0x28, 0xa4, 0x94, 0x69, 0xaa, 0x85, 0xb8, 0x54, 0xc7, 0xe4, 0x21, 0x00, 0x97, 0x79,
+	0x9c, 0x44, 0x22, 0xe7, 0x42, 0x2b, 0xe9, 0xd0, 0xd6, 0x49, 0x78, 0x0d, 0xf0, 0x65, 0x19, 0x2b,
+	0x2a, 0xaa, 0x75, 0xaa, 0xb0, 0xc5, 0x85, 0xc8, 0x23, 0x51, 0x5a, 0x32, 0x9b, 0xa1, 0x02, 0xb6,
+	0x10, 0x96, 0x0d, 0x43, 0xcd, 0xc5, 0xb8, 0xd8, 0x72, 0x31, 0x2e, 0xf0, 0xeb, 0xb9, 0x60, 0x6b,
+	0xb5, 0xd1, 0x3c, 0x2e, 0xb5, 0x19, 0xaa, 0xad, 0xb2, 0x24, 0x15, 0xba, 0x63, 0x97, 0x9a, 0x24,
+	0xfc, 0xd9, 0x81, 0x3e, 0xf6, 0x38, 0x93, 0x15, 0x79, 0x02, 0x5e, 0xc9, 0x31, 0xd1, 0xbc, 0x83,
+	0xf1, 0xde, 0x49, 0x3d, 0xa1, 0x13, 0x2a, 0xb8, 0xa2, 0xb6, 0x4a, 0x9e, 0x83, 0x5f, 0xa8, 0x8f,
+	0x22, 0x56, 0xa7, 0x1b, 0xa3, 0x66, 0x30, 0xfe, 0xaf, 0x81, 0xce, 0x64, 0x92, 0x2b, 0xda, 0x20,
+	0xc8, 0x0b, 0x80, 0x42, 0x51, 0x1c, 0x12, 0xe2, 0xbb, 0xb7, 0xe3, 0x5b, 0x10, 0xf2, 0x14, 0xfa,
+	0x85, 0xfa, 0x24, 0xd7, 0x6a, 0xa9, 0x5b, 0xb8, 0x05, 0x5d, 0xd7, 0xc9, 0x11, 0x78, 0x85, 0x3a,
+	0x97, 0x95, 0xe9, 0xea, 0x16, 0xa4, 0x2d, 0x93, 0x67, 0xe0, 0xc5, 0x7a, 0x8e, 0x7a, 0xbe, 0x83,
+	0xf1, 0xbd, 0x06, 0xb8, 0x1d, 0x31, 0xb5, 0x10, 0x12, 0x40, 0xff, 0xdb, 0x9a, 0xa5, 0x89, 0xda,
+	0x04, 0x7d, 0x6d, 0x56, 0x9d, 0xe2, 0x20, 0x63, 0xc6, 0x13, 0x96, 0x4e, 0xf0, 0xae, 0xed, 0xe8,
+	0xbb, 0xd6, 0x3a, 0x41, 0xf3, 0x63, 0xc6, 0xc5, 0x74, 0x12, 0xf8, 0x43, 0x67, 0xd4, 0xa3, 0x36,
+	0x0b, 0x7f, 0x75, 0x60, 0x07, 0x79, 0xa6, 0x79, 0x2c, 0xff, 0xf9, 0xfc, 0xb7, 0x7d, 0xee, 0x6e,
+	0x7d, 0xbe, 0x84, 0xfe, 0xc5, 0x7c, 0xa5, 0x5d, 0x7e, 0x0c, 0x6e, 0xc9, 0x2f, 0xe6, 0xab, 0x3b,
+	0x4c, 0x36, 0x45, 0xdc, 0x29, 0xb5, 0x29, 0xea, 0x9d, 0x52, 0x9b, 0x02, 0x77, 0xaa, 0x28, 0xe5,
+	0x5c, 0x1b, 0xd8, 0xa1, 0x3a, 0xc6, 0xdd, 0x91, 0xf3, 0xd5, 0x74, 0xa2, 0x7d, 0xea, 0x51, 0x93,
+	0x84, 0xdf, 0x61, 0xdf, 0x6c, 0x2c, 0x76, 0x36, 0x11, 0x4a, 0x70, 0x45, 0x1e, 0x41, 0xb7, 0x90,
+	0x95, 0xe5, 0xfc, 0xff, 0x66, 0xf3, 0x33, 0x59, 0x51, 0xac, 0x92, 0x63, 0xf0, 0x4a, 0xfd, 0xa1,
+	0x9d, 0xea, 0x41, 0x83, 0x6b, 0x9e, 0x01, 0x6a, 0x31, 0x48, 0x1e, 0x0b, 0xa6, 0x2a, 0xfb, 0xb4,
+	0x99, 0x24, 0x7c, 0x0b, 0xbb, 0x33, 0x56, 0xb2, 0xac, 0x5e, 0xde, 0x97, 0xe0, 0xa2, 0x07, 0x48,
+	0xdd, 0x1d, 0x0d, 0xc6, 0x87, 0xed, 0x76, 0x6f, 0x6a, 0xa4, 0x06, 0x18, 0xae, 0xda, 0xf2, 0x4f,
+	0xaf, 0xd5, 0x7b, 0x99, 0x35, 0x5c, 0x4e, 0x8b, 0x0b, 0x2d, 0xe1, 0x32, 0x33, 0x2e, 0xed, 0x52,
+	0x1d, 0x93, 0x63, 0xd3, 0xa8, 0xb9, 0x66, 0x7f, 0x62, 0x43, 0x58, 0xf8, 0x01, 0xf6, 0xb7, 0x6a,
+	0xcf, 0x04, 0x53, 0xeb, 0x52, 0x90, 0xd7, 0xd0, 0x17, 0x9a, 0x15, 0xff, 0xf8, 0x4e, 0xcd, 0x46,
+	0x18, 0xad, 0xa1, 0xe1, 0x1b, 0xdb, 0xf7, 0x57, 0x99, 0x4a, 0x1c, 0xe0, 0x11, 0xb8, 0x49, 0x1e,
+	0xcb, 0xba, 0xef, 0x96, 0xe5, 0xf6, 0x22, 0x50, 0x53, 0x0f, 0xcf, 0xc0, 0xfb, 0x2c, 0xf5, 0xcd,
+	0x30, 0x0f, 0xbf, 0x79, 0x5b, 0xf1, 0xe1, 0xc7, 0x97, 0x31, 0xba, 0x9c, 0x46, 0xba, 0x3f, 0x9f,
+	0x9a, 0x04, 0xaf, 0x58, 0x25, 0xcf, 0x59, 0x66, 0x56, 0xc9, 0xa7, 0x36, 0x9b, 0x7b, 0x9a, 0xe0,
+	0xd5, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc5, 0x99, 0x69, 0x35, 0xca, 0x06, 0x00, 0x00,
 }
diff --git a/sdk.proto b/sdk.proto
index d839b9f..61d0e39 100644
--- a/sdk.proto
+++ b/sdk.proto
@@ -4,79 +4,85 @@
 package protomsg;
 
 // Image ipc struct
-message Image{
+message Image {
     int32 width = 1;
     int32 height = 2;
-	bytes data = 3;
-	
-	string timestamp = 4;
-	int64 id = 5;
-	string cid = 6;
+    bytes data = 3;
+
+    string timestamp = 4;
+    int64 id = 5;
+    string cid = 6;
 }
 
-message FaceAngle{
-	int32 yaw = 1;
-	int32 pitch =2;
-	int32 roll = 3;
-	float confidence =4;
+message FaceAngle {
+    int32 yaw = 1;
+    int32 pitch = 2;
+    int32 roll = 3;
+    float confidence = 4;
 }
-message ThftResult{
-	int32 gender = 1;
-	int32 age = 2;
-	int32 race = 3;
-	int32 beauty = 4;
-	int32 smile = 5;
+message ThftResult {
+    int32 gender = 1;
+    int32 age = 2;
+    int32 race = 3;
+    int32 beauty = 4;
+    int32 smile = 5;
 }
-message FacePos{
-	Rect rcFace = 1;
-	Point ptLeftEye = 2;
-	Point ptRightEye = 3;
-	Point ptMouth = 4;
-	Point ptNose = 5;
-	FaceAngle fAngle = 6;
-	int32 quality = 7;
-	bytes facialData = 8;
+message FacePos {
+    Rect rcFace = 1;
+    Point ptLeftEye = 2;
+    Point ptRightEye = 3;
+    Point ptMouth = 4;
+    Point ptNose = 5;
+    FaceAngle fAngle = 6;
+    int32 quality = 7;
+    bytes facialData = 8;
 
-	uint64 faceID = 9;
+    uint64 faceID = 9;
 }
-message FaceInfo{
-	Rect rcFace = 1;
-	Point ptLeftEye = 2;
-	Point ptRightEye = 3;
-	Point ptMouth = 4;
-	Point ptNose = 5;
-	FaceAngle fAngle = 6;
-	int32 quality = 7;
-	bytes facialData = 8;
-	int64 faceID = 9;
+message FaceInfo {
+    Rect rcFace = 1;
+    Point ptLeftEye = 2;
+    Point ptRightEye = 3;
+    Point ptMouth = 4;
+    Point ptNose = 5;
+    FaceAngle fAngle = 6;
+    int32 quality = 7;
+    bytes facialData = 8;
+    int64 faceID = 9;
 }
-message ObjInfo{
-	Rect rcObj = 1;
-	int32 typ = 2;
-	float prob = 3;
-	uint64 objID = 4;
+message ObjInfo {
+    Rect rcObj = 1;
+    int32 typ = 2;
+    float prob = 3;
+    uint64 objID = 4;
 }
 
 // sdk face property
-message ResultFaceDetect{
+message ResultFaceDetect {
     FacePos pos = 1;
-	ThftResult result = 2;
-	bytes feats = 3;
+    ThftResult result = 2;
+    bytes feats = 3;
 }
-message ParamFacePos{
-	repeated ResultFaceDetect faces = 1;
+message ParamFacePos {
+    repeated ResultFaceDetect faces = 1;
 }
 
-message ResultFaceExtCom{
-	bytes feats = 1;
-	bytes comp = 2;
-	ResultFaceDetect pos = 3;
+message ResultFaceExtCom {
+    bytes feats = 1;
+    bytes comp = 2;
+    ResultFaceDetect pos = 3;
 }
-message ParamFaceFeature{
-	repeated ResultFaceExtCom extComp = 2;
+message ParamFaceFeature {
+    repeated ResultFaceExtCom extComp = 2;
 }
 
 // sdk yolo detect
-message ParamYoloObj{
+message ParamYoloObj {
     repeated ObjInfo infos = 1;
 }
+
+message SoInfo {
+    int32 id = 1;
+    string sdkId = 2;
+    string soName = 3;
+}
\ No newline at end of file
diff --git a/sysset.pb.go b/sysset.pb.go
index 0ea7461..f99dde2 100644
--- a/sysset.pb.go
+++ b/sysset.pb.go
@@ -1,14 +1,12 @@
-// Code generated by protoc-gen-gogo. DO NOT EDIT.
+// Code generated by protoc-gen-go. DO NOT EDIT.
 // source: sysset.proto
 
 package protomsg
 
 import (
 	fmt "fmt"
-	proto "github.com/gogo/protobuf/proto"
-	io "io"
+	proto "github.com/golang/protobuf/proto"
 	math "math"
-	math_bits "math/bits"
 )
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -20,27 +18,30 @@
 // 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
 
 type LocalConfig struct {
-	ServerId           string `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
-	ServerName         string `protobuf:"bytes,2,opt,name=server_name,json=serverName,proto3" json:"server_name,omitempty"`
-	ServerType         int32  `protobuf:"varint,3,opt,name=server_type,json=serverType,proto3" json:"server_type,omitempty"`
-	ServerIp           string `protobuf:"bytes,4,opt,name=server_ip,json=serverIp,proto3" json:"server_ip,omitempty"`
-	AlarmIp            string `protobuf:"bytes,5,opt,name=alarm_ip,json=alarmIp,proto3" json:"alarm_ip,omitempty"`
-	AlarmPort          int32  `protobuf:"varint,6,opt,name=alarm_port,json=alarmPort,proto3" json:"alarm_port,omitempty"`
-	WebPicIp           string `protobuf:"bytes,7,opt,name=web_pic_ip,json=webPicIp,proto3" json:"web_pic_ip,omitempty"`
-	WebPicPort         int32  `protobuf:"varint,8,opt,name=web_pic_port,json=webPicPort,proto3" json:"web_pic_port,omitempty"`
-	EsPicIp            string `protobuf:"bytes,9,opt,name=es_pic_ip,json=esPicIp,proto3" json:"es_pic_ip,omitempty"`
-	EsPicPort          int32  `protobuf:"varint,10,opt,name=es_pic_port,json=esPicPort,proto3" json:"es_pic_port,omitempty"`
-	CutMaxDuration     int32  `protobuf:"varint,11,opt,name=cut_max_duration,json=cutMaxDuration,proto3" json:"cut_max_duration,omitempty"`
-	CutMinDuration     int32  `protobuf:"varint,12,opt,name=cut_min_duration,json=cutMinDuration,proto3" json:"cut_min_duration,omitempty"`
-	Reserved           string `protobuf:"bytes,13,opt,name=reserved,proto3" json:"reserved,omitempty"`
-	GateWay            string `protobuf:"bytes,14,opt,name=gate_way,json=gateWay,proto3" json:"gate_way,omitempty"`
-	NetMask            string `protobuf:"bytes,15,opt,name=net_mask,json=netMask,proto3" json:"net_mask,omitempty"`
-	RealMax            int32  `protobuf:"varint,16,opt,name=real_max,json=realMax,proto3" json:"real_max,omitempty"`
-	AlarmThresholdType int32  `protobuf:"varint,17,opt,name=alarm_threshold_type,json=alarmThresholdType,proto3" json:"alarm_threshold_type,omitempty"`
-	AlarmThreshold     int32  `protobuf:"varint,18,opt,name=alarm_threshold,json=alarmThreshold,proto3" json:"alarm_threshold,omitempty"`
+	ServerId             string   `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
+	ServerName           string   `protobuf:"bytes,2,opt,name=server_name,json=serverName,proto3" json:"server_name,omitempty"`
+	ServerType           int32    `protobuf:"varint,3,opt,name=server_type,json=serverType,proto3" json:"server_type,omitempty"`
+	ServerIp             string   `protobuf:"bytes,4,opt,name=server_ip,json=serverIp,proto3" json:"server_ip,omitempty"`
+	AlarmIp              string   `protobuf:"bytes,5,opt,name=alarm_ip,json=alarmIp,proto3" json:"alarm_ip,omitempty"`
+	AlarmPort            int32    `protobuf:"varint,6,opt,name=alarm_port,json=alarmPort,proto3" json:"alarm_port,omitempty"`
+	WebPicIp             string   `protobuf:"bytes,7,opt,name=web_pic_ip,json=webPicIp,proto3" json:"web_pic_ip,omitempty"`
+	WebPicPort           int32    `protobuf:"varint,8,opt,name=web_pic_port,json=webPicPort,proto3" json:"web_pic_port,omitempty"`
+	EsPicIp              string   `protobuf:"bytes,9,opt,name=es_pic_ip,json=esPicIp,proto3" json:"es_pic_ip,omitempty"`
+	EsPicPort            int32    `protobuf:"varint,10,opt,name=es_pic_port,json=esPicPort,proto3" json:"es_pic_port,omitempty"`
+	CutMaxDuration       int32    `protobuf:"varint,11,opt,name=cut_max_duration,json=cutMaxDuration,proto3" json:"cut_max_duration,omitempty"`
+	CutMinDuration       int32    `protobuf:"varint,12,opt,name=cut_min_duration,json=cutMinDuration,proto3" json:"cut_min_duration,omitempty"`
+	Reserved             string   `protobuf:"bytes,13,opt,name=reserved,proto3" json:"reserved,omitempty"`
+	GateWay              string   `protobuf:"bytes,14,opt,name=gate_way,json=gateWay,proto3" json:"gate_way,omitempty"`
+	NetMask              string   `protobuf:"bytes,15,opt,name=net_mask,json=netMask,proto3" json:"net_mask,omitempty"`
+	RealMax              int32    `protobuf:"varint,16,opt,name=real_max,json=realMax,proto3" json:"real_max,omitempty"`
+	AlarmThresholdType   int32    `protobuf:"varint,17,opt,name=alarm_threshold_type,json=alarmThresholdType,proto3" json:"alarm_threshold_type,omitempty"`
+	AlarmThreshold       int32    `protobuf:"varint,18,opt,name=alarm_threshold,json=alarmThreshold,proto3" json:"alarm_threshold,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
 }
 
 func (m *LocalConfig) Reset()         { *m = LocalConfig{} }
@@ -49,26 +50,18 @@
 func (*LocalConfig) Descriptor() ([]byte, []int) {
 	return fileDescriptor_5be590c6b2a0d755, []int{0}
 }
+
 func (m *LocalConfig) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
+	return xxx_messageInfo_LocalConfig.Unmarshal(m, b)
 }
 func (m *LocalConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_LocalConfig.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_LocalConfig.Marshal(b, m, deterministic)
 }
 func (m *LocalConfig) XXX_Merge(src proto.Message) {
 	xxx_messageInfo_LocalConfig.Merge(m, src)
 }
 func (m *LocalConfig) XXX_Size() int {
-	return m.Size()
+	return xxx_messageInfo_LocalConfig.Size(m)
 }
 func (m *LocalConfig) XXX_DiscardUnknown() {
 	xxx_messageInfo_LocalConfig.DiscardUnknown(m)
@@ -203,10 +196,13 @@
 }
 
 type PollConfig struct {
-	ServerId   string `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
-	PollPeriod int32  `protobuf:"varint,2,opt,name=poll_period,json=pollPeriod,proto3" json:"poll_period,omitempty"`
-	Delay      int32  `protobuf:"varint,3,opt,name=delay,proto3" json:"delay,omitempty"`
-	Enable     bool   `protobuf:"varint,4,opt,name=enable,proto3" json:"enable,omitempty"`
+	ServerId             string   `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
+	PollPeriod           int32    `protobuf:"varint,2,opt,name=poll_period,json=pollPeriod,proto3" json:"poll_period,omitempty"`
+	Delay                int32    `protobuf:"varint,3,opt,name=delay,proto3" json:"delay,omitempty"`
+	Enable               bool     `protobuf:"varint,4,opt,name=enable,proto3" json:"enable,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
 }
 
 func (m *PollConfig) Reset()         { *m = PollConfig{} }
@@ -215,26 +211,18 @@
 func (*PollConfig) Descriptor() ([]byte, []int) {
 	return fileDescriptor_5be590c6b2a0d755, []int{1}
 }
+
 func (m *PollConfig) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
+	return xxx_messageInfo_PollConfig.Unmarshal(m, b)
 }
 func (m *PollConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_PollConfig.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_PollConfig.Marshal(b, m, deterministic)
 }
 func (m *PollConfig) XXX_Merge(src proto.Message) {
 	xxx_messageInfo_PollConfig.Merge(m, src)
 }
 func (m *PollConfig) XXX_Size() int {
-	return m.Size()
+	return xxx_messageInfo_PollConfig.Size(m)
 }
 func (m *PollConfig) XXX_DiscardUnknown() {
 	xxx_messageInfo_PollConfig.DiscardUnknown(m)
@@ -271,11 +259,14 @@
 }
 
 type Cluster struct {
-	ClusterId   string         `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
-	ClusterName string         `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
-	Password    string         `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
-	VirtualIp   string         `protobuf:"bytes,4,opt,name=virtual_ip,json=virtualIp,proto3" json:"virtual_ip,omitempty"`
-	Nodes       []*ClusterNode `protobuf:"bytes,5,rep,name=nodes,proto3" json:"nodes,omitempty"`
+	ClusterId            string         `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
+	ClusterName          string         `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
+	Password             string         `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
+	VirtualIp            string         `protobuf:"bytes,4,opt,name=virtual_ip,json=virtualIp,proto3" json:"virtual_ip,omitempty"`
+	Nodes                []*ClusterNode `protobuf:"bytes,5,rep,name=nodes,proto3" json:"nodes,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
+	XXX_unrecognized     []byte         `json:"-"`
+	XXX_sizecache        int32          `json:"-"`
 }
 
 func (m *Cluster) Reset()         { *m = Cluster{} }
@@ -284,26 +275,18 @@
 func (*Cluster) Descriptor() ([]byte, []int) {
 	return fileDescriptor_5be590c6b2a0d755, []int{2}
 }
+
 func (m *Cluster) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
+	return xxx_messageInfo_Cluster.Unmarshal(m, b)
 }
 func (m *Cluster) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_Cluster.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_Cluster.Marshal(b, m, deterministic)
 }
 func (m *Cluster) XXX_Merge(src proto.Message) {
 	xxx_messageInfo_Cluster.Merge(m, src)
 }
 func (m *Cluster) XXX_Size() int {
-	return m.Size()
+	return xxx_messageInfo_Cluster.Size(m)
 }
 func (m *Cluster) XXX_DiscardUnknown() {
 	xxx_messageInfo_Cluster.DiscardUnknown(m)
@@ -347,13 +330,16 @@
 }
 
 type ClusterNode struct {
-	Id         string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	ClusterId  string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
-	ServerId   string `protobuf:"bytes,3,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
-	ServerName string `protobuf:"bytes,4,opt,name=server_name,json=serverName,proto3" json:"server_name,omitempty"`
-	NodeId     string `protobuf:"bytes,5,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
-	NodeIp     string `protobuf:"bytes,6,opt,name=node_ip,json=nodeIp,proto3" json:"node_ip,omitempty"`
-	CreateTime string `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	ClusterId            string   `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
+	ServerId             string   `protobuf:"bytes,3,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
+	ServerName           string   `protobuf:"bytes,4,opt,name=server_name,json=serverName,proto3" json:"server_name,omitempty"`
+	NodeId               string   `protobuf:"bytes,5,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
+	NodeIp               string   `protobuf:"bytes,6,opt,name=node_ip,json=nodeIp,proto3" json:"node_ip,omitempty"`
+	CreateTime           string   `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
 }
 
 func (m *ClusterNode) Reset()         { *m = ClusterNode{} }
@@ -362,26 +348,18 @@
 func (*ClusterNode) Descriptor() ([]byte, []int) {
 	return fileDescriptor_5be590c6b2a0d755, []int{3}
 }
+
 func (m *ClusterNode) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
+	return xxx_messageInfo_ClusterNode.Unmarshal(m, b)
 }
 func (m *ClusterNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_ClusterNode.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_ClusterNode.Marshal(b, m, deterministic)
 }
 func (m *ClusterNode) XXX_Merge(src proto.Message) {
 	xxx_messageInfo_ClusterNode.Merge(m, src)
 }
 func (m *ClusterNode) XXX_Size() int {
-	return m.Size()
+	return xxx_messageInfo_ClusterNode.Size(m)
 }
 func (m *ClusterNode) XXX_DiscardUnknown() {
 	xxx_messageInfo_ClusterNode.DiscardUnknown(m)
@@ -448,1759 +426,41 @@
 func init() { proto.RegisterFile("sysset.proto", fileDescriptor_5be590c6b2a0d755) }
 
 var fileDescriptor_5be590c6b2a0d755 = []byte{
-	// 601 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0xdd, 0x6e, 0xd3, 0x30,
-	0x14, 0x5e, 0xba, 0xb5, 0x4d, 0x4e, 0xca, 0x36, 0xac, 0x01, 0x66, 0x40, 0x28, 0xbd, 0xa1, 0x12,
-	0xd2, 0x84, 0xe0, 0x0d, 0x18, 0x37, 0x95, 0xd8, 0x54, 0x55, 0x93, 0xb8, 0xac, 0xdc, 0xf8, 0xb0,
-	0x45, 0x4b, 0x62, 0xcb, 0x76, 0xd7, 0xe6, 0x2d, 0x78, 0x17, 0x5e, 0x82, 0x1b, 0xa4, 0x5d, 0x22,
-	0x71, 0x83, 0xb6, 0x17, 0x41, 0xb6, 0x93, 0xb6, 0x1b, 0x12, 0xe2, 0xaa, 0x3d, 0xdf, 0xf7, 0x9d,
-	0x1f, 0x9f, 0x7c, 0x07, 0x7a, 0xba, 0xd2, 0x1a, 0xcd, 0x91, 0x54, 0xc2, 0x08, 0x12, 0xba, 0x9f,
-	0x42, 0x9f, 0x0f, 0x7e, 0xed, 0x40, 0xfc, 0x49, 0xa4, 0x2c, 0x3f, 0x16, 0xe5, 0x97, 0xec, 0x9c,
-	0x3c, 0x83, 0x48, 0xa3, 0xba, 0x42, 0x35, 0xcd, 0x38, 0x0d, 0xfa, 0xc1, 0x30, 0x9a, 0x84, 0x1e,
-	0x18, 0x71, 0xf2, 0x12, 0xe2, 0x9a, 0x2c, 0x59, 0x81, 0xb4, 0xe5, 0x68, 0xf0, 0xd0, 0x29, 0x2b,
-	0x70, 0x43, 0x60, 0x2a, 0x89, 0x74, 0xbb, 0x1f, 0x0c, 0xdb, 0x8d, 0xe0, 0xac, 0x92, 0xb8, 0x59,
-	0x5e, 0xd2, 0x9d, 0x3b, 0xe5, 0x25, 0x79, 0x0a, 0x21, 0xcb, 0x99, 0x2a, 0x2c, 0xd7, 0x76, 0x5c,
-	0xd7, 0xc5, 0x23, 0x49, 0x5e, 0x00, 0x78, 0x4a, 0x0a, 0x65, 0x68, 0xc7, 0xd5, 0x8d, 0x1c, 0x32,
-	0x16, 0xca, 0x90, 0xe7, 0x00, 0x0b, 0x9c, 0x4d, 0x65, 0x96, 0xda, 0xdc, 0xae, 0xaf, 0xbb, 0xc0,
-	0xd9, 0x38, 0x4b, 0x47, 0x92, 0xf4, 0xa1, 0xd7, 0xb0, 0x2e, 0x3d, 0xf4, 0x63, 0x79, 0xde, 0xe5,
-	0x1f, 0x42, 0x84, 0xba, 0x49, 0x8f, 0x7c, 0x6b, 0xd4, 0x3e, 0x3b, 0x81, 0xb8, 0xe6, 0x5c, 0x32,
-	0xf8, 0xde, 0x8e, 0x75, 0xb9, 0x43, 0xd8, 0x4f, 0xe7, 0x66, 0x5a, 0xb0, 0xe5, 0x94, 0xcf, 0x15,
-	0x33, 0x99, 0x28, 0x69, 0xec, 0x44, 0xbb, 0xe9, 0xdc, 0x9c, 0xb0, 0xe5, 0xc7, 0x1a, 0x5d, 0x29,
-	0xb3, 0x72, 0xad, 0xec, 0xad, 0x95, 0x59, 0xb9, 0x52, 0x1e, 0x42, 0xa8, 0xd0, 0xed, 0x85, 0xd3,
-	0x07, 0xfe, 0x35, 0x4d, 0x6c, 0xb7, 0x74, 0xce, 0x0c, 0x4e, 0x17, 0xac, 0xa2, 0xbb, 0x7e, 0x54,
-	0x1b, 0x7f, 0x66, 0x95, 0xa5, 0x4a, 0xb4, 0xa3, 0xe8, 0x4b, 0xba, 0xe7, 0xa9, 0x12, 0xcd, 0x09,
-	0xd3, 0x97, 0x96, 0x52, 0xc8, 0x72, 0x3b, 0x26, 0xdd, 0x77, 0x3d, 0xbb, 0x36, 0x3e, 0x61, 0x4b,
-	0xf2, 0x16, 0x0e, 0xfc, 0x6e, 0xcd, 0x85, 0x42, 0x7d, 0x21, 0x72, 0xee, 0xbf, 0xde, 0x43, 0x27,
-	0x23, 0x8e, 0x3b, 0x6b, 0x28, 0xf7, 0x15, 0x5f, 0xc3, 0xde, 0xbd, 0x0c, 0x4a, 0xfc, 0x3b, 0xee,
-	0x8a, 0x07, 0x4b, 0x80, 0xb1, 0xc8, 0xff, 0xd7, 0x5b, 0x52, 0xe4, 0xf9, 0x54, 0xa2, 0xca, 0x04,
-	0x77, 0xde, 0x6a, 0x4f, 0xc0, 0x42, 0x63, 0x87, 0x90, 0x03, 0x68, 0x73, 0xcc, 0x59, 0x55, 0xbb,
-	0xca, 0x07, 0xe4, 0x31, 0x74, 0xb0, 0x64, 0xb3, 0x1c, 0x9d, 0x9b, 0xc2, 0x49, 0x1d, 0x0d, 0xbe,
-	0x05, 0xd0, 0x3d, 0xce, 0xe7, 0xda, 0xa0, 0xb2, 0xe6, 0x49, 0xfd, 0xdf, 0x75, 0xe3, 0xa8, 0x46,
-	0x46, 0x9c, 0xbc, 0x82, 0x5e, 0x43, 0x6f, 0xd8, 0x3a, 0xae, 0x31, 0xe7, 0xeb, 0x43, 0x08, 0x25,
-	0xd3, 0x7a, 0x21, 0x14, 0x77, 0xed, 0xa3, 0xc9, 0x2a, 0xb6, 0xd5, 0xaf, 0x32, 0x65, 0xe6, 0x2c,
-	0x5f, 0x7b, 0x3a, 0xaa, 0x91, 0x91, 0x24, 0x6f, 0xa0, 0x5d, 0x0a, 0x8e, 0x9a, 0xb6, 0xfb, 0xdb,
-	0xc3, 0xf8, 0xdd, 0xa3, 0xa3, 0xe6, 0xf4, 0x8e, 0xea, 0xf1, 0x4e, 0x05, 0xc7, 0x89, 0xd7, 0x0c,
-	0x7e, 0x04, 0x10, 0x6f, 0xc0, 0x64, 0x17, 0x5a, 0xab, 0x89, 0x5b, 0x19, 0xbf, 0xf7, 0x92, 0xd6,
-	0xfd, 0x97, 0xdc, 0x59, 0xf0, 0xf6, 0xbf, 0x8f, 0x77, 0xe7, 0xaf, 0xe3, 0x7d, 0x02, 0x5d, 0x3b,
-	0x85, 0xcd, 0xf5, 0xd7, 0xd7, 0xb1, 0xe1, 0x88, 0xaf, 0x09, 0xe9, 0x2e, 0xaf, 0x21, 0xa4, 0x2d,
-	0x99, 0x2a, 0xb4, 0x66, 0x34, 0x59, 0x81, 0xf5, 0xdd, 0x81, 0x87, 0xce, 0xb2, 0x02, 0x3f, 0xd0,
-	0xef, 0x37, 0x49, 0x70, 0x7d, 0x93, 0x04, 0xbf, 0x6f, 0x92, 0xe0, 0xeb, 0x6d, 0xb2, 0x75, 0x7d,
-	0x9b, 0x6c, 0xfd, 0xbc, 0x4d, 0xb6, 0x66, 0x1d, 0xb7, 0x86, 0xf7, 0x7f, 0x02, 0x00, 0x00, 0xff,
-	0xff, 0x4c, 0xdc, 0xed, 0xe9, 0x98, 0x04, 0x00, 0x00,
+	// 565 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0xdb, 0x6e, 0x13, 0x31,
+	0x10, 0x55, 0xd2, 0x26, 0xd9, 0x9d, 0x0d, 0x6d, 0xb1, 0x0a, 0x98, 0x72, 0x0b, 0x79, 0x21, 0x12,
+	0x52, 0x85, 0xe0, 0x13, 0xca, 0x4b, 0x24, 0x5a, 0x45, 0x51, 0x25, 0x1e, 0x23, 0x67, 0x3d, 0xb4,
+	0x56, 0x77, 0xd7, 0x96, 0xed, 0x34, 0xd9, 0xef, 0xe2, 0x3b, 0xf8, 0x02, 0x7e, 0x06, 0x79, 0xbc,
+	0x9b, 0xa4, 0x45, 0x42, 0x3c, 0x25, 0x73, 0xce, 0x99, 0x9b, 0xf7, 0x0c, 0x0c, 0x5d, 0xed, 0x1c,
+	0xfa, 0x73, 0x63, 0xb5, 0xd7, 0x2c, 0xa1, 0x9f, 0xd2, 0xdd, 0x8c, 0x7f, 0x1f, 0x42, 0xf6, 0x4d,
+	0xe7, 0xa2, 0xb8, 0xd0, 0xd5, 0x0f, 0x75, 0xc3, 0x5e, 0x41, 0xea, 0xd0, 0xde, 0xa3, 0x5d, 0x28,
+	0xc9, 0x3b, 0xa3, 0xce, 0x24, 0x9d, 0x27, 0x11, 0x98, 0x4a, 0xf6, 0x0e, 0xb2, 0x86, 0xac, 0x44,
+	0x89, 0xbc, 0x4b, 0x34, 0x44, 0xe8, 0x4a, 0x94, 0xb8, 0x27, 0xf0, 0xb5, 0x41, 0x7e, 0x30, 0xea,
+	0x4c, 0x7a, 0xad, 0xe0, 0xba, 0x36, 0xb8, 0x5f, 0xde, 0xf0, 0xc3, 0x07, 0xe5, 0x0d, 0x7b, 0x09,
+	0x89, 0x28, 0x84, 0x2d, 0x03, 0xd7, 0x23, 0x6e, 0x40, 0xf1, 0xd4, 0xb0, 0x37, 0x00, 0x91, 0x32,
+	0xda, 0x7a, 0xde, 0xa7, 0xba, 0x29, 0x21, 0x33, 0x6d, 0x3d, 0x7b, 0x0d, 0xb0, 0xc6, 0xe5, 0xc2,
+	0xa8, 0x3c, 0xe4, 0x0e, 0x62, 0xdd, 0x35, 0x2e, 0x67, 0x2a, 0x9f, 0x1a, 0x36, 0x82, 0x61, 0xcb,
+	0x52, 0x7a, 0x12, 0xc7, 0x8a, 0x3c, 0xe5, 0x9f, 0x41, 0x8a, 0xae, 0x4d, 0x4f, 0x63, 0x6b, 0x74,
+	0x31, 0xfb, 0x2d, 0x64, 0x0d, 0x47, 0xc9, 0x10, 0x7b, 0x13, 0x4b, 0xb9, 0x13, 0x38, 0xc9, 0x57,
+	0x7e, 0x51, 0x8a, 0xcd, 0x42, 0xae, 0xac, 0xf0, 0x4a, 0x57, 0x3c, 0x23, 0xd1, 0x51, 0xbe, 0xf2,
+	0x97, 0x62, 0xf3, 0xb5, 0x41, 0xb7, 0x4a, 0x55, 0xed, 0x94, 0xc3, 0x9d, 0x52, 0x55, 0x5b, 0xe5,
+	0x19, 0x24, 0x16, 0xe9, 0x5d, 0x24, 0x7f, 0x12, 0xb7, 0x69, 0xe3, 0xf0, 0x4a, 0x37, 0xc2, 0xe3,
+	0x62, 0x2d, 0x6a, 0x7e, 0x14, 0x47, 0x0d, 0xf1, 0x77, 0x51, 0x07, 0xaa, 0xc2, 0x30, 0x8a, 0xbb,
+	0xe3, 0xc7, 0x91, 0xaa, 0xd0, 0x5f, 0x0a, 0x77, 0x17, 0x28, 0x8b, 0xa2, 0x08, 0x63, 0xf2, 0x13,
+	0xea, 0x39, 0x08, 0xf1, 0xa5, 0xd8, 0xb0, 0x4f, 0x70, 0x1a, 0xdf, 0xd6, 0xdf, 0x5a, 0x74, 0xb7,
+	0xba, 0x90, 0xf1, 0xeb, 0x3d, 0x25, 0x19, 0x23, 0xee, 0xba, 0xa5, 0xe8, 0x2b, 0x7e, 0x80, 0xe3,
+	0x47, 0x19, 0x9c, 0xc5, 0x3d, 0x1e, 0x8a, 0xc7, 0x1b, 0x80, 0x99, 0x2e, 0xfe, 0xd7, 0x5b, 0x46,
+	0x17, 0xc5, 0xc2, 0xa0, 0x55, 0x5a, 0x92, 0xb7, 0x7a, 0x73, 0x08, 0xd0, 0x8c, 0x10, 0x76, 0x0a,
+	0x3d, 0x89, 0x85, 0xa8, 0x1b, 0x57, 0xc5, 0x80, 0x3d, 0x87, 0x3e, 0x56, 0x62, 0x59, 0x20, 0xb9,
+	0x29, 0x99, 0x37, 0xd1, 0xf8, 0x67, 0x07, 0x06, 0x17, 0xc5, 0xca, 0x79, 0xb4, 0xc1, 0x3c, 0x79,
+	0xfc, 0xbb, 0x6b, 0x9c, 0x36, 0xc8, 0x54, 0xb2, 0xf7, 0x30, 0x6c, 0xe9, 0x3d, 0x5b, 0x67, 0x0d,
+	0x46, 0xbe, 0x3e, 0x83, 0xc4, 0x08, 0xe7, 0xd6, 0xda, 0x4a, 0x6a, 0x9f, 0xce, 0xb7, 0x71, 0xa8,
+	0x7e, 0xaf, 0xac, 0x5f, 0x89, 0x62, 0xe7, 0xe9, 0xb4, 0x41, 0xa6, 0x86, 0x7d, 0x84, 0x5e, 0xa5,
+	0x25, 0x3a, 0xde, 0x1b, 0x1d, 0x4c, 0xb2, 0xcf, 0xcf, 0xce, 0xdb, 0xd3, 0x3b, 0x6f, 0xc6, 0xbb,
+	0xd2, 0x12, 0xe7, 0x51, 0x33, 0xfe, 0xd5, 0x81, 0x6c, 0x0f, 0x66, 0x47, 0xd0, 0xdd, 0x4e, 0xdc,
+	0x55, 0xf2, 0xd1, 0x26, 0xdd, 0xc7, 0x9b, 0x3c, 0x78, 0xe0, 0x83, 0x7f, 0x1f, 0xef, 0xe1, 0x5f,
+	0xc7, 0xfb, 0x02, 0x06, 0x61, 0x8a, 0x90, 0x1b, 0xaf, 0xaf, 0x1f, 0xc2, 0xa9, 0xdc, 0x11, 0x86,
+	0x2e, 0xaf, 0x25, 0x4c, 0x28, 0x99, 0x5b, 0x0c, 0x66, 0xf4, 0xaa, 0xc4, 0xe6, 0xee, 0x20, 0x42,
+	0xd7, 0xaa, 0xc4, 0x65, 0x9f, 0x96, 0xfd, 0xf2, 0x27, 0x00, 0x00, 0xff, 0xff, 0x1c, 0xcb, 0xf3,
+	0x28, 0x7e, 0x04, 0x00, 0x00,
 }
-
-func (m *LocalConfig) 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 *LocalConfig) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if len(m.ServerId) > 0 {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.ServerId)))
-		i += copy(dAtA[i:], m.ServerId)
-	}
-	if len(m.ServerName) > 0 {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.ServerName)))
-		i += copy(dAtA[i:], m.ServerName)
-	}
-	if m.ServerType != 0 {
-		dAtA[i] = 0x18
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(m.ServerType))
-	}
-	if len(m.ServerIp) > 0 {
-		dAtA[i] = 0x22
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.ServerIp)))
-		i += copy(dAtA[i:], m.ServerIp)
-	}
-	if len(m.AlarmIp) > 0 {
-		dAtA[i] = 0x2a
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.AlarmIp)))
-		i += copy(dAtA[i:], m.AlarmIp)
-	}
-	if m.AlarmPort != 0 {
-		dAtA[i] = 0x30
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(m.AlarmPort))
-	}
-	if len(m.WebPicIp) > 0 {
-		dAtA[i] = 0x3a
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.WebPicIp)))
-		i += copy(dAtA[i:], m.WebPicIp)
-	}
-	if m.WebPicPort != 0 {
-		dAtA[i] = 0x40
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(m.WebPicPort))
-	}
-	if len(m.EsPicIp) > 0 {
-		dAtA[i] = 0x4a
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.EsPicIp)))
-		i += copy(dAtA[i:], m.EsPicIp)
-	}
-	if m.EsPicPort != 0 {
-		dAtA[i] = 0x50
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(m.EsPicPort))
-	}
-	if m.CutMaxDuration != 0 {
-		dAtA[i] = 0x58
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(m.CutMaxDuration))
-	}
-	if m.CutMinDuration != 0 {
-		dAtA[i] = 0x60
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(m.CutMinDuration))
-	}
-	if len(m.Reserved) > 0 {
-		dAtA[i] = 0x6a
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.Reserved)))
-		i += copy(dAtA[i:], m.Reserved)
-	}
-	if len(m.GateWay) > 0 {
-		dAtA[i] = 0x72
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.GateWay)))
-		i += copy(dAtA[i:], m.GateWay)
-	}
-	if len(m.NetMask) > 0 {
-		dAtA[i] = 0x7a
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.NetMask)))
-		i += copy(dAtA[i:], m.NetMask)
-	}
-	if m.RealMax != 0 {
-		dAtA[i] = 0x80
-		i++
-		dAtA[i] = 0x1
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(m.RealMax))
-	}
-	if m.AlarmThresholdType != 0 {
-		dAtA[i] = 0x88
-		i++
-		dAtA[i] = 0x1
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(m.AlarmThresholdType))
-	}
-	if m.AlarmThreshold != 0 {
-		dAtA[i] = 0x90
-		i++
-		dAtA[i] = 0x1
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(m.AlarmThreshold))
-	}
-	return i, nil
-}
-
-func (m *PollConfig) 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 *PollConfig) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if len(m.ServerId) > 0 {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.ServerId)))
-		i += copy(dAtA[i:], m.ServerId)
-	}
-	if m.PollPeriod != 0 {
-		dAtA[i] = 0x10
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(m.PollPeriod))
-	}
-	if m.Delay != 0 {
-		dAtA[i] = 0x18
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(m.Delay))
-	}
-	if m.Enable {
-		dAtA[i] = 0x20
-		i++
-		if m.Enable {
-			dAtA[i] = 1
-		} else {
-			dAtA[i] = 0
-		}
-		i++
-	}
-	return i, nil
-}
-
-func (m *Cluster) 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 *Cluster) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if len(m.ClusterId) > 0 {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.ClusterId)))
-		i += copy(dAtA[i:], m.ClusterId)
-	}
-	if len(m.ClusterName) > 0 {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.ClusterName)))
-		i += copy(dAtA[i:], m.ClusterName)
-	}
-	if len(m.Password) > 0 {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.Password)))
-		i += copy(dAtA[i:], m.Password)
-	}
-	if len(m.VirtualIp) > 0 {
-		dAtA[i] = 0x22
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.VirtualIp)))
-		i += copy(dAtA[i:], m.VirtualIp)
-	}
-	if len(m.Nodes) > 0 {
-		for _, msg := range m.Nodes {
-			dAtA[i] = 0x2a
-			i++
-			i = encodeVarintSysset(dAtA, i, uint64(msg.Size()))
-			n, err := msg.MarshalTo(dAtA[i:])
-			if err != nil {
-				return 0, err
-			}
-			i += n
-		}
-	}
-	return i, nil
-}
-
-func (m *ClusterNode) 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 *ClusterNode) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if len(m.Id) > 0 {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.Id)))
-		i += copy(dAtA[i:], m.Id)
-	}
-	if len(m.ClusterId) > 0 {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.ClusterId)))
-		i += copy(dAtA[i:], m.ClusterId)
-	}
-	if len(m.ServerId) > 0 {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.ServerId)))
-		i += copy(dAtA[i:], m.ServerId)
-	}
-	if len(m.ServerName) > 0 {
-		dAtA[i] = 0x22
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.ServerName)))
-		i += copy(dAtA[i:], m.ServerName)
-	}
-	if len(m.NodeId) > 0 {
-		dAtA[i] = 0x2a
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.NodeId)))
-		i += copy(dAtA[i:], m.NodeId)
-	}
-	if len(m.NodeIp) > 0 {
-		dAtA[i] = 0x32
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.NodeIp)))
-		i += copy(dAtA[i:], m.NodeIp)
-	}
-	if len(m.CreateTime) > 0 {
-		dAtA[i] = 0x3a
-		i++
-		i = encodeVarintSysset(dAtA, i, uint64(len(m.CreateTime)))
-		i += copy(dAtA[i:], m.CreateTime)
-	}
-	return i, nil
-}
-
-func encodeVarintSysset(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 *LocalConfig) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	l = len(m.ServerId)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	l = len(m.ServerName)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	if m.ServerType != 0 {
-		n += 1 + sovSysset(uint64(m.ServerType))
-	}
-	l = len(m.ServerIp)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	l = len(m.AlarmIp)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	if m.AlarmPort != 0 {
-		n += 1 + sovSysset(uint64(m.AlarmPort))
-	}
-	l = len(m.WebPicIp)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	if m.WebPicPort != 0 {
-		n += 1 + sovSysset(uint64(m.WebPicPort))
-	}
-	l = len(m.EsPicIp)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	if m.EsPicPort != 0 {
-		n += 1 + sovSysset(uint64(m.EsPicPort))
-	}
-	if m.CutMaxDuration != 0 {
-		n += 1 + sovSysset(uint64(m.CutMaxDuration))
-	}
-	if m.CutMinDuration != 0 {
-		n += 1 + sovSysset(uint64(m.CutMinDuration))
-	}
-	l = len(m.Reserved)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	l = len(m.GateWay)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	l = len(m.NetMask)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	if m.RealMax != 0 {
-		n += 2 + sovSysset(uint64(m.RealMax))
-	}
-	if m.AlarmThresholdType != 0 {
-		n += 2 + sovSysset(uint64(m.AlarmThresholdType))
-	}
-	if m.AlarmThreshold != 0 {
-		n += 2 + sovSysset(uint64(m.AlarmThreshold))
-	}
-	return n
-}
-
-func (m *PollConfig) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	l = len(m.ServerId)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	if m.PollPeriod != 0 {
-		n += 1 + sovSysset(uint64(m.PollPeriod))
-	}
-	if m.Delay != 0 {
-		n += 1 + sovSysset(uint64(m.Delay))
-	}
-	if m.Enable {
-		n += 2
-	}
-	return n
-}
-
-func (m *Cluster) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	l = len(m.ClusterId)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	l = len(m.ClusterName)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	l = len(m.Password)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	l = len(m.VirtualIp)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	if len(m.Nodes) > 0 {
-		for _, e := range m.Nodes {
-			l = e.Size()
-			n += 1 + l + sovSysset(uint64(l))
-		}
-	}
-	return n
-}
-
-func (m *ClusterNode) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	l = len(m.Id)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	l = len(m.ClusterId)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	l = len(m.ServerId)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	l = len(m.ServerName)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	l = len(m.NodeId)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	l = len(m.NodeIp)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	l = len(m.CreateTime)
-	if l > 0 {
-		n += 1 + l + sovSysset(uint64(l))
-	}
-	return n
-}
-
-func sovSysset(x uint64) (n int) {
-	return (math_bits.Len64(x|1) + 6) / 7
-}
-func sozSysset(x uint64) (n int) {
-	return sovSysset(uint64((x << 1) ^ uint64((int64(x) >> 63))))
-}
-func (m *LocalConfig) 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 ErrIntOverflowSysset
-			}
-			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: LocalConfig: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: LocalConfig: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ServerId", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ServerId = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ServerName", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ServerName = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 3:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ServerType", wireType)
-			}
-			m.ServerType = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.ServerType |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 4:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ServerIp", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ServerIp = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 5:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field AlarmIp", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.AlarmIp = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 6:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field AlarmPort", wireType)
-			}
-			m.AlarmPort = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.AlarmPort |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 7:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field WebPicIp", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.WebPicIp = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 8:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field WebPicPort", wireType)
-			}
-			m.WebPicPort = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.WebPicPort |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 9:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field EsPicIp", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.EsPicIp = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 10:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field EsPicPort", wireType)
-			}
-			m.EsPicPort = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.EsPicPort |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 11:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field CutMaxDuration", wireType)
-			}
-			m.CutMaxDuration = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.CutMaxDuration |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 12:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field CutMinDuration", wireType)
-			}
-			m.CutMinDuration = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.CutMinDuration |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 13:
-			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 ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Reserved = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 14:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field GateWay", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.GateWay = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 15:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field NetMask", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.NetMask = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 16:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field RealMax", wireType)
-			}
-			m.RealMax = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.RealMax |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 17:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field AlarmThresholdType", wireType)
-			}
-			m.AlarmThresholdType = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.AlarmThresholdType |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 18:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field AlarmThreshold", wireType)
-			}
-			m.AlarmThreshold = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.AlarmThreshold |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		default:
-			iNdEx = preIndex
-			skippy, err := skipSysset(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *PollConfig) 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 ErrIntOverflowSysset
-			}
-			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: PollConfig: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: PollConfig: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ServerId", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ServerId = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 2:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field PollPeriod", wireType)
-			}
-			m.PollPeriod = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.PollPeriod |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 3:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Delay", wireType)
-			}
-			m.Delay = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.Delay |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 4:
-			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 ErrIntOverflowSysset
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				v |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			m.Enable = bool(v != 0)
-		default:
-			iNdEx = preIndex
-			skippy, err := skipSysset(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *Cluster) 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 ErrIntOverflowSysset
-			}
-			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: Cluster: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: Cluster: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ClusterId = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ClusterName", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ClusterName = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 3:
-			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 ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Password = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 4:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field VirtualIp", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.VirtualIp = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 5:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Nodes", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Nodes = append(m.Nodes, &ClusterNode{})
-			if err := m.Nodes[len(m.Nodes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipSysset(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *ClusterNode) 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 ErrIntOverflowSysset
-			}
-			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: ClusterNode: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: ClusterNode: 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 ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			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 ClusterId", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ClusterId = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 3:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ServerId", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ServerId = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 4:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ServerName", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ServerName = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 5:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field NodeId", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.NodeId = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		case 6:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field NodeIp", wireType)
-			}
-			var stringLen uint64
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.NodeIp = 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 ErrIntOverflowSysset
-				}
-				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 ErrInvalidLengthSysset
-			}
-			postIndex := iNdEx + intStringLen
-			if postIndex < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.CreateTime = string(dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipSysset(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthSysset
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func skipSysset(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, ErrIntOverflowSysset
-			}
-			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, ErrIntOverflowSysset
-				}
-				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, ErrIntOverflowSysset
-				}
-				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, ErrInvalidLengthSysset
-			}
-			iNdEx += length
-			if iNdEx < 0 {
-				return 0, ErrInvalidLengthSysset
-			}
-			return iNdEx, nil
-		case 3:
-			for {
-				var innerWire uint64
-				var start int = iNdEx
-				for shift := uint(0); ; shift += 7 {
-					if shift >= 64 {
-						return 0, ErrIntOverflowSysset
-					}
-					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 := skipSysset(dAtA[start:])
-				if err != nil {
-					return 0, err
-				}
-				iNdEx = start + next
-				if iNdEx < 0 {
-					return 0, ErrInvalidLengthSysset
-				}
-			}
-			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")
-}
-
-var (
-	ErrInvalidLengthSysset = fmt.Errorf("proto: negative length found during unmarshaling")
-	ErrIntOverflowSysset   = fmt.Errorf("proto: integer overflow")
-)

--
Gitblit v1.8.0