Fu Juntang
2021-09-03 5a1ec105567f064d0220d2195dd1765f609bb499
proto/source/bhome_msg/bhome_msg_api.pb.go
@@ -1,12 +1,14 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: bhome_msg_api.proto
package bhome_msg
import (
   fmt "fmt"
   proto "github.com/golang/protobuf/proto"
   proto "github.com/gogo/protobuf/proto"
   io "io"
   math "math"
   math_bits "math/bits"
)
// Reference imports to suppress errors if they are not otherwise used.
@@ -18,16 +20,13 @@
// 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.ProtoPackageIsVersion3 // please upgrade the proto package
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
type BHAddress struct {
   MqId                 uint64   `protobuf:"varint,1,opt,name=mq_id,json=mqId,proto3" json:"mq_id,omitempty"`
   AbsAddr              int64    `protobuf:"varint,2,opt,name=abs_addr,json=absAddr,proto3" json:"abs_addr,omitempty"`
   Ip                   []byte   `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"`
   Port                 int32    `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   MqId    uint64 `protobuf:"varint,1,opt,name=mq_id,json=mqId,proto3" json:"mq_id,omitempty"`
   AbsAddr int64  `protobuf:"varint,2,opt,name=abs_addr,json=absAddr,proto3" json:"abs_addr,omitempty"`
   Ip      []byte `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"`
   Port    int32  `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"`
}
func (m *BHAddress) Reset()         { *m = BHAddress{} }
@@ -36,18 +35,26 @@
func (*BHAddress) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{0}
}
func (m *BHAddress) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_BHAddress.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *BHAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_BHAddress.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_BHAddress.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *BHAddress) XXX_Merge(src proto.Message) {
   xxx_messageInfo_BHAddress.Merge(m, src)
}
func (m *BHAddress) XXX_Size() int {
   return xxx_messageInfo_BHAddress.Size(m)
   return m.Size()
}
func (m *BHAddress) XXX_DiscardUnknown() {
   xxx_messageInfo_BHAddress.DiscardUnknown(m)
@@ -84,13 +91,10 @@
}
type ProcInfo struct {
   ProcId               []byte   `protobuf:"bytes,1,opt,name=proc_id,json=procId,proto3" json:"proc_id,omitempty"`
   Name                 []byte   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   PublicInfo           []byte   `protobuf:"bytes,3,opt,name=public_info,json=publicInfo,proto3" json:"public_info,omitempty"`
   PrivateInfo          []byte   `protobuf:"bytes,4,opt,name=private_info,json=privateInfo,proto3" json:"private_info,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   ProcId      []byte `protobuf:"bytes,1,opt,name=proc_id,json=procId,proto3" json:"proc_id,omitempty"`
   Name        []byte `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   PublicInfo  []byte `protobuf:"bytes,3,opt,name=public_info,json=publicInfo,proto3" json:"public_info,omitempty"`
   PrivateInfo []byte `protobuf:"bytes,4,opt,name=private_info,json=privateInfo,proto3" json:"private_info,omitempty"`
}
func (m *ProcInfo) Reset()         { *m = ProcInfo{} }
@@ -99,18 +103,26 @@
func (*ProcInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{1}
}
func (m *ProcInfo) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ProcInfo.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *ProcInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ProcInfo.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_ProcInfo.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *ProcInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ProcInfo.Merge(m, src)
}
func (m *ProcInfo) XXX_Size() int {
   return xxx_messageInfo_ProcInfo.Size(m)
   return m.Size()
}
func (m *ProcInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_ProcInfo.DiscardUnknown(m)
@@ -147,10 +159,7 @@
}
type MsgTopicList struct {
   TopicList            [][]byte `protobuf:"bytes,1,rep,name=topic_list,json=topicList,proto3" json:"topic_list,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   TopicList [][]byte `protobuf:"bytes,1,rep,name=topic_list,json=topicList,proto3" json:"topic_list,omitempty"`
}
func (m *MsgTopicList) Reset()         { *m = MsgTopicList{} }
@@ -159,18 +168,26 @@
func (*MsgTopicList) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{2}
}
func (m *MsgTopicList) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_MsgTopicList.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *MsgTopicList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_MsgTopicList.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_MsgTopicList.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *MsgTopicList) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MsgTopicList.Merge(m, src)
}
func (m *MsgTopicList) XXX_Size() int {
   return xxx_messageInfo_MsgTopicList.Size(m)
   return m.Size()
}
func (m *MsgTopicList) XXX_DiscardUnknown() {
   xxx_messageInfo_MsgTopicList.DiscardUnknown(m)
@@ -186,11 +203,8 @@
}
type MsgPublish struct {
   Topic                []byte   `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
   Data                 []byte   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   Topic []byte `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
   Data  []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
}
func (m *MsgPublish) Reset()         { *m = MsgPublish{} }
@@ -199,18 +213,26 @@
func (*MsgPublish) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{3}
}
func (m *MsgPublish) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_MsgPublish.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *MsgPublish) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_MsgPublish.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_MsgPublish.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *MsgPublish) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MsgPublish.Merge(m, src)
}
func (m *MsgPublish) XXX_Size() int {
   return xxx_messageInfo_MsgPublish.Size(m)
   return m.Size()
}
func (m *MsgPublish) XXX_DiscardUnknown() {
   xxx_messageInfo_MsgPublish.DiscardUnknown(m)
@@ -233,10 +255,7 @@
}
type MsgCommonReply struct {
   Errmsg               *ErrorMsg `protobuf:"bytes,1,opt,name=errmsg,proto3" json:"errmsg,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
   Errmsg *ErrorMsg `protobuf:"bytes,1,opt,name=errmsg,proto3" json:"errmsg,omitempty"`
}
func (m *MsgCommonReply) Reset()         { *m = MsgCommonReply{} }
@@ -245,18 +264,26 @@
func (*MsgCommonReply) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{4}
}
func (m *MsgCommonReply) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_MsgCommonReply.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *MsgCommonReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_MsgCommonReply.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_MsgCommonReply.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *MsgCommonReply) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MsgCommonReply.Merge(m, src)
}
func (m *MsgCommonReply) XXX_Size() int {
   return xxx_messageInfo_MsgCommonReply.Size(m)
   return m.Size()
}
func (m *MsgCommonReply) XXX_DiscardUnknown() {
   xxx_messageInfo_MsgCommonReply.DiscardUnknown(m)
@@ -272,11 +299,8 @@
}
type MsgRequestTopic struct {
   Topic                []byte   `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
   Data                 []byte   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   Topic []byte `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
   Data  []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
}
func (m *MsgRequestTopic) Reset()         { *m = MsgRequestTopic{} }
@@ -285,18 +309,26 @@
func (*MsgRequestTopic) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{5}
}
func (m *MsgRequestTopic) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_MsgRequestTopic.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *MsgRequestTopic) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_MsgRequestTopic.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_MsgRequestTopic.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *MsgRequestTopic) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MsgRequestTopic.Merge(m, src)
}
func (m *MsgRequestTopic) XXX_Size() int {
   return xxx_messageInfo_MsgRequestTopic.Size(m)
   return m.Size()
}
func (m *MsgRequestTopic) XXX_DiscardUnknown() {
   xxx_messageInfo_MsgRequestTopic.DiscardUnknown(m)
@@ -319,11 +351,8 @@
}
type MsgRequestTopicReply struct {
   Errmsg               *ErrorMsg `protobuf:"bytes,1,opt,name=errmsg,proto3" json:"errmsg,omitempty"`
   Data                 []byte    `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
   Errmsg *ErrorMsg `protobuf:"bytes,1,opt,name=errmsg,proto3" json:"errmsg,omitempty"`
   Data   []byte    `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
}
func (m *MsgRequestTopicReply) Reset()         { *m = MsgRequestTopicReply{} }
@@ -332,18 +361,26 @@
func (*MsgRequestTopicReply) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{6}
}
func (m *MsgRequestTopicReply) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_MsgRequestTopicReply.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *MsgRequestTopicReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_MsgRequestTopicReply.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_MsgRequestTopicReply.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *MsgRequestTopicReply) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MsgRequestTopicReply.Merge(m, src)
}
func (m *MsgRequestTopicReply) XXX_Size() int {
   return xxx_messageInfo_MsgRequestTopicReply.Size(m)
   return m.Size()
}
func (m *MsgRequestTopicReply) XXX_DiscardUnknown() {
   xxx_messageInfo_MsgRequestTopicReply.DiscardUnknown(m)
@@ -366,10 +403,7 @@
}
type MsgRegister struct {
   Proc                 *ProcInfo `protobuf:"bytes,1,opt,name=proc,proto3" json:"proc,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
   Proc *ProcInfo `protobuf:"bytes,1,opt,name=proc,proto3" json:"proc,omitempty"`
}
func (m *MsgRegister) Reset()         { *m = MsgRegister{} }
@@ -378,18 +412,26 @@
func (*MsgRegister) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{7}
}
func (m *MsgRegister) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_MsgRegister.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *MsgRegister) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_MsgRegister.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_MsgRegister.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *MsgRegister) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MsgRegister.Merge(m, src)
}
func (m *MsgRegister) XXX_Size() int {
   return xxx_messageInfo_MsgRegister.Size(m)
   return m.Size()
}
func (m *MsgRegister) XXX_DiscardUnknown() {
   xxx_messageInfo_MsgRegister.DiscardUnknown(m)
@@ -405,10 +447,7 @@
}
type MsgUnregister struct {
   Proc                 *ProcInfo `protobuf:"bytes,1,opt,name=proc,proto3" json:"proc,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
   Proc *ProcInfo `protobuf:"bytes,1,opt,name=proc,proto3" json:"proc,omitempty"`
}
func (m *MsgUnregister) Reset()         { *m = MsgUnregister{} }
@@ -417,18 +456,26 @@
func (*MsgUnregister) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{8}
}
func (m *MsgUnregister) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_MsgUnregister.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *MsgUnregister) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_MsgUnregister.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_MsgUnregister.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *MsgUnregister) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MsgUnregister.Merge(m, src)
}
func (m *MsgUnregister) XXX_Size() int {
   return xxx_messageInfo_MsgUnregister.Size(m)
   return m.Size()
}
func (m *MsgUnregister) XXX_DiscardUnknown() {
   xxx_messageInfo_MsgUnregister.DiscardUnknown(m)
@@ -444,10 +491,7 @@
}
type MsgHeartbeat struct {
   Proc                 *ProcInfo `protobuf:"bytes,1,opt,name=proc,proto3" json:"proc,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
   Proc *ProcInfo `protobuf:"bytes,1,opt,name=proc,proto3" json:"proc,omitempty"`
}
func (m *MsgHeartbeat) Reset()         { *m = MsgHeartbeat{} }
@@ -456,18 +500,26 @@
func (*MsgHeartbeat) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{9}
}
func (m *MsgHeartbeat) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_MsgHeartbeat.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *MsgHeartbeat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_MsgHeartbeat.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_MsgHeartbeat.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *MsgHeartbeat) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MsgHeartbeat.Merge(m, src)
}
func (m *MsgHeartbeat) XXX_Size() int {
   return xxx_messageInfo_MsgHeartbeat.Size(m)
   return m.Size()
}
func (m *MsgHeartbeat) XXX_DiscardUnknown() {
   xxx_messageInfo_MsgHeartbeat.DiscardUnknown(m)
@@ -483,10 +535,7 @@
}
type MsgQueryTopic struct {
   Topic                []byte   `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   Topic []byte `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
}
func (m *MsgQueryTopic) Reset()         { *m = MsgQueryTopic{} }
@@ -495,18 +544,26 @@
func (*MsgQueryTopic) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{10}
}
func (m *MsgQueryTopic) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_MsgQueryTopic.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *MsgQueryTopic) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_MsgQueryTopic.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_MsgQueryTopic.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *MsgQueryTopic) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MsgQueryTopic.Merge(m, src)
}
func (m *MsgQueryTopic) XXX_Size() int {
   return xxx_messageInfo_MsgQueryTopic.Size(m)
   return m.Size()
}
func (m *MsgQueryTopic) XXX_DiscardUnknown() {
   xxx_messageInfo_MsgQueryTopic.DiscardUnknown(m)
@@ -522,11 +579,8 @@
}
type MsgQueryTopicReply struct {
   Errmsg               *ErrorMsg                           `protobuf:"bytes,1,opt,name=errmsg,proto3" json:"errmsg,omitempty"`
   NodeAddress          []*MsgQueryTopicReply_BHNodeAddress `protobuf:"bytes,2,rep,name=node_address,json=nodeAddress,proto3" json:"node_address,omitempty"`
   XXX_NoUnkeyedLiteral struct{}                            `json:"-"`
   XXX_unrecognized     []byte                              `json:"-"`
   XXX_sizecache        int32                               `json:"-"`
   Errmsg      *ErrorMsg                           `protobuf:"bytes,1,opt,name=errmsg,proto3" json:"errmsg,omitempty"`
   NodeAddress []*MsgQueryTopicReply_BHNodeAddress `protobuf:"bytes,2,rep,name=node_address,json=nodeAddress,proto3" json:"node_address,omitempty"`
}
func (m *MsgQueryTopicReply) Reset()         { *m = MsgQueryTopicReply{} }
@@ -535,18 +589,26 @@
func (*MsgQueryTopicReply) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{11}
}
func (m *MsgQueryTopicReply) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_MsgQueryTopicReply.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *MsgQueryTopicReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_MsgQueryTopicReply.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_MsgQueryTopicReply.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *MsgQueryTopicReply) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MsgQueryTopicReply.Merge(m, src)
}
func (m *MsgQueryTopicReply) XXX_Size() int {
   return xxx_messageInfo_MsgQueryTopicReply.Size(m)
   return m.Size()
}
func (m *MsgQueryTopicReply) XXX_DiscardUnknown() {
   xxx_messageInfo_MsgQueryTopicReply.DiscardUnknown(m)
@@ -569,11 +631,8 @@
}
type MsgQueryTopicReply_BHNodeAddress struct {
   ProcId               []byte     `protobuf:"bytes,1,opt,name=proc_id,json=procId,proto3" json:"proc_id,omitempty"`
   Addr                 *BHAddress `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
   ProcId []byte     `protobuf:"bytes,1,opt,name=proc_id,json=procId,proto3" json:"proc_id,omitempty"`
   Addr   *BHAddress `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
}
func (m *MsgQueryTopicReply_BHNodeAddress) Reset()         { *m = MsgQueryTopicReply_BHNodeAddress{} }
@@ -582,18 +641,26 @@
func (*MsgQueryTopicReply_BHNodeAddress) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{11, 0}
}
func (m *MsgQueryTopicReply_BHNodeAddress) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_MsgQueryTopicReply_BHNodeAddress.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *MsgQueryTopicReply_BHNodeAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_MsgQueryTopicReply_BHNodeAddress.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_MsgQueryTopicReply_BHNodeAddress.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *MsgQueryTopicReply_BHNodeAddress) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MsgQueryTopicReply_BHNodeAddress.Merge(m, src)
}
func (m *MsgQueryTopicReply_BHNodeAddress) XXX_Size() int {
   return xxx_messageInfo_MsgQueryTopicReply_BHNodeAddress.Size(m)
   return m.Size()
}
func (m *MsgQueryTopicReply_BHNodeAddress) XXX_DiscardUnknown() {
   xxx_messageInfo_MsgQueryTopicReply_BHNodeAddress.DiscardUnknown(m)
@@ -616,10 +683,7 @@
}
type MsgQueryProc struct {
   ProcId               []byte   `protobuf:"bytes,1,opt,name=proc_id,json=procId,proto3" json:"proc_id,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   ProcId []byte `protobuf:"bytes,1,opt,name=proc_id,json=procId,proto3" json:"proc_id,omitempty"`
}
func (m *MsgQueryProc) Reset()         { *m = MsgQueryProc{} }
@@ -628,18 +692,26 @@
func (*MsgQueryProc) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{12}
}
func (m *MsgQueryProc) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_MsgQueryProc.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *MsgQueryProc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_MsgQueryProc.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_MsgQueryProc.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *MsgQueryProc) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MsgQueryProc.Merge(m, src)
}
func (m *MsgQueryProc) XXX_Size() int {
   return xxx_messageInfo_MsgQueryProc.Size(m)
   return m.Size()
}
func (m *MsgQueryProc) XXX_DiscardUnknown() {
   xxx_messageInfo_MsgQueryProc.DiscardUnknown(m)
@@ -655,11 +727,8 @@
}
type MsgQueryProcReply struct {
   Errmsg               *ErrorMsg                 `protobuf:"bytes,1,opt,name=errmsg,proto3" json:"errmsg,omitempty"`
   ProcList             []*MsgQueryProcReply_Info `protobuf:"bytes,2,rep,name=proc_list,json=procList,proto3" json:"proc_list,omitempty"`
   XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
   XXX_unrecognized     []byte                    `json:"-"`
   XXX_sizecache        int32                     `json:"-"`
   Errmsg   *ErrorMsg                 `protobuf:"bytes,1,opt,name=errmsg,proto3" json:"errmsg,omitempty"`
   ProcList []*MsgQueryProcReply_Info `protobuf:"bytes,2,rep,name=proc_list,json=procList,proto3" json:"proc_list,omitempty"`
}
func (m *MsgQueryProcReply) Reset()         { *m = MsgQueryProcReply{} }
@@ -668,18 +737,26 @@
func (*MsgQueryProcReply) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{13}
}
func (m *MsgQueryProcReply) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_MsgQueryProcReply.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *MsgQueryProcReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_MsgQueryProcReply.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_MsgQueryProcReply.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *MsgQueryProcReply) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MsgQueryProcReply.Merge(m, src)
}
func (m *MsgQueryProcReply) XXX_Size() int {
   return xxx_messageInfo_MsgQueryProcReply.Size(m)
   return m.Size()
}
func (m *MsgQueryProcReply) XXX_DiscardUnknown() {
   xxx_messageInfo_MsgQueryProcReply.DiscardUnknown(m)
@@ -702,12 +779,9 @@
}
type MsgQueryProcReply_Info struct {
   Proc                 *ProcInfo     `protobuf:"bytes,1,opt,name=proc,proto3" json:"proc,omitempty"`
   Online               bool          `protobuf:"varint,2,opt,name=online,proto3" json:"online,omitempty"`
   Topics               *MsgTopicList `protobuf:"bytes,3,opt,name=topics,proto3" json:"topics,omitempty"`
   XXX_NoUnkeyedLiteral struct{}      `json:"-"`
   XXX_unrecognized     []byte        `json:"-"`
   XXX_sizecache        int32         `json:"-"`
   Proc   *ProcInfo     `protobuf:"bytes,1,opt,name=proc,proto3" json:"proc,omitempty"`
   Online bool          `protobuf:"varint,2,opt,name=online,proto3" json:"online,omitempty"`
   Topics *MsgTopicList `protobuf:"bytes,3,opt,name=topics,proto3" json:"topics,omitempty"`
}
func (m *MsgQueryProcReply_Info) Reset()         { *m = MsgQueryProcReply_Info{} }
@@ -716,18 +790,26 @@
func (*MsgQueryProcReply_Info) Descriptor() ([]byte, []int) {
   return fileDescriptor_a49c9c1f511a168c, []int{13, 0}
}
func (m *MsgQueryProcReply_Info) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_MsgQueryProcReply_Info.Unmarshal(m, b)
   return m.Unmarshal(b)
}
func (m *MsgQueryProcReply_Info) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_MsgQueryProcReply_Info.Marshal(b, m, deterministic)
   if deterministic {
      return xxx_messageInfo_MsgQueryProcReply_Info.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *MsgQueryProcReply_Info) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MsgQueryProcReply_Info.Merge(m, src)
}
func (m *MsgQueryProcReply_Info) XXX_Size() int {
   return xxx_messageInfo_MsgQueryProcReply_Info.Size(m)
   return m.Size()
}
func (m *MsgQueryProcReply_Info) XXX_DiscardUnknown() {
   xxx_messageInfo_MsgQueryProcReply_Info.DiscardUnknown(m)
@@ -778,41 +860,2785 @@
func init() { proto.RegisterFile("bhome_msg_api.proto", fileDescriptor_a49c9c1f511a168c) }
var fileDescriptor_a49c9c1f511a168c = []byte{
   // 567 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xf1, 0x6b, 0xd3, 0x40,
   0x14, 0x26, 0x6d, 0xd6, 0xb5, 0x2f, 0xd9, 0x8a, 0xd7, 0xe2, 0x62, 0x41, 0xcc, 0x02, 0xb2, 0xc0,
   0x30, 0x83, 0x0a, 0x53, 0x10, 0x05, 0x2b, 0x42, 0x0b, 0x76, 0xcc, 0x43, 0x11, 0xfc, 0x25, 0x24,
   0xcd, 0x2d, 0x3b, 0x68, 0x72, 0xe9, 0xdd, 0x55, 0x1c, 0xfe, 0xbd, 0xfe, 0x13, 0xfe, 0x24, 0x77,
   0x49, 0x63, 0xab, 0x9d, 0xac, 0xfb, 0xed, 0xde, 0xdd, 0xf7, 0x7d, 0xef, 0xf1, 0x3e, 0xbe, 0x83,
   0x5e, 0x7c, 0xcd, 0x32, 0x12, 0x66, 0x22, 0x0d, 0xa3, 0x82, 0x06, 0x05, 0x67, 0x92, 0xa1, 0x4e,
   0x7d, 0x39, 0xe8, 0x12, 0xce, 0x19, 0x57, 0xc7, 0xf2, 0xcd, 0x0b, 0xa1, 0x33, 0x1a, 0xbf, 0x4d,
   0x12, 0x4e, 0x84, 0x40, 0x3d, 0xd8, 0xcb, 0x16, 0x21, 0x4d, 0x1c, 0xc3, 0x35, 0x7c, 0x13, 0x9b,
   0xd9, 0x62, 0x92, 0xa0, 0x47, 0xd0, 0x8e, 0x62, 0x11, 0x46, 0x49, 0xc2, 0x9d, 0x86, 0x6b, 0xf8,
   0x4d, 0xbc, 0x1f, 0xc5, 0x42, 0x51, 0xd0, 0x21, 0x34, 0x68, 0xe1, 0x34, 0x5d, 0xc3, 0xb7, 0x71,
   0x83, 0x16, 0x08, 0x81, 0x59, 0x30, 0x2e, 0x1d, 0xd3, 0x35, 0xfc, 0x3d, 0xac, 0xcf, 0xde, 0x0f,
   0x68, 0x5f, 0x72, 0x36, 0x9b, 0xe4, 0x57, 0x0c, 0x1d, 0xc1, 0x7e, 0xc1, 0xd9, 0x6c, 0xd5, 0xc1,
   0xc6, 0x2d, 0x55, 0x4e, 0x12, 0x45, 0xcc, 0xa3, 0x8c, 0x68, 0x7d, 0x1b, 0xeb, 0x33, 0x7a, 0x02,
   0x56, 0xb1, 0x8c, 0xe7, 0x74, 0x16, 0xd2, 0xfc, 0x8a, 0x55, 0x5d, 0xa0, 0xbc, 0xd2, 0x6a, 0xc7,
   0x60, 0x17, 0x9c, 0x7e, 0x8b, 0x24, 0x29, 0x11, 0xa6, 0x46, 0x58, 0xd5, 0x9d, 0x82, 0x78, 0xcf,
   0xc0, 0x9e, 0x8a, 0xf4, 0x13, 0x2b, 0xe8, 0xec, 0x03, 0x15, 0x12, 0x3d, 0x06, 0x90, 0xaa, 0x08,
   0xe7, 0x54, 0x48, 0xc7, 0x70, 0x9b, 0xbe, 0x8d, 0x3b, 0x72, 0xf5, 0xec, 0x9d, 0x03, 0x4c, 0x45,
   0x7a, 0xa9, 0x5a, 0x88, 0x6b, 0xd4, 0x87, 0x3d, 0xfd, 0x54, 0xcd, 0x5a, 0x16, 0x6a, 0xd4, 0x24,
   0x92, 0xd1, 0x6a, 0x54, 0x75, 0xf6, 0x5e, 0xc3, 0xe1, 0x54, 0xa4, 0xef, 0x58, 0x96, 0xb1, 0x1c,
   0x93, 0x62, 0x7e, 0x83, 0x4e, 0xa1, 0x45, 0x38, 0xcf, 0x44, 0xaa, 0xc9, 0xd6, 0xb0, 0x17, 0xd4,
   0x1e, 0x04, 0xef, 0x95, 0x05, 0x53, 0x91, 0xe2, 0x0a, 0xe2, 0xbd, 0x82, 0xae, 0x2a, 0xc9, 0x62,
   0x49, 0x84, 0xd4, 0xc3, 0xee, 0xd0, 0xfb, 0x0b, 0xf4, 0xff, 0x22, 0xef, 0x3e, 0xc1, 0x56, 0xe1,
   0x73, 0xb0, 0xb4, 0x70, 0x4a, 0x85, 0x24, 0x1c, 0x9d, 0x80, 0xa9, 0xcc, 0xda, 0xa2, 0xb6, 0xb2,
   0x17, 0x6b, 0x80, 0xf7, 0x12, 0x0e, 0xa6, 0x22, 0xfd, 0x9c, 0xf3, 0x9d, 0x99, 0x2f, 0xb4, 0x5b,
   0x63, 0x12, 0x71, 0x19, 0x93, 0x48, 0xde, 0x9d, 0xf8, 0x54, 0xb7, 0xfc, 0xb8, 0x24, 0xfc, 0xe6,
   0x3f, 0xeb, 0xf3, 0x7e, 0x1a, 0x80, 0x36, 0x70, 0xf7, 0xd8, 0xd4, 0x05, 0xd8, 0x39, 0x4b, 0x88,
   0x8e, 0x03, 0x11, 0xc2, 0x69, 0xb8, 0x4d, 0xdf, 0x1a, 0x9e, 0xae, 0x51, 0xfe, 0xed, 0x10, 0x8c,
   0xc6, 0x17, 0x2c, 0x21, 0x55, 0xca, 0xb0, 0x95, 0xff, 0x29, 0x06, 0x18, 0x0e, 0x36, 0x5e, 0x6f,
   0xcf, 0x88, 0x0f, 0x66, 0x9d, 0x41, 0x6b, 0xd8, 0x5f, 0xeb, 0x58, 0x07, 0x18, 0x6b, 0x84, 0x77,
   0xa2, 0xf7, 0xa8, 0x87, 0x50, 0x8b, 0xba, 0x55, 0xd2, 0xfb, 0x65, 0xc0, 0x83, 0x75, 0xe4, 0x3d,
   0xf6, 0xf1, 0x06, 0x3a, 0x5a, 0x5b, 0x07, 0xaa, 0x5c, 0xc6, 0xf1, 0x96, 0x65, 0xd4, 0xea, 0x81,
   0xb6, 0xad, 0xad, 0x38, 0x2a, 0x72, 0x83, 0xef, 0x60, 0xea, 0x30, 0xdf, 0xd5, 0x6b, 0xf4, 0x10,
   0x5a, 0x2c, 0x9f, 0xd3, 0xbc, 0xfc, 0x2c, 0xda, 0xb8, 0xaa, 0xd0, 0x19, 0xb4, 0xb4, 0xcb, 0x42,
   0xff, 0x14, 0xd6, 0xf0, 0x68, 0x73, 0x8a, 0xfa, 0x0f, 0xc0, 0x15, 0x6c, 0xd4, 0x1d, 0x37, 0xbf,
   0x5a, 0xc1, 0x59, 0x8d, 0x8a, 0x5b, 0xfa, 0x47, 0x7c, 0xfe, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xa4,
   0x7b, 0x44, 0x8e, 0x44, 0x05, 0x00, 0x00,
   // 601 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xd1, 0x6a, 0xd4, 0x40,
   0x14, 0x6d, 0x76, 0xd3, 0xed, 0xee, 0x4d, 0xda, 0xe2, 0xb4, 0xd8, 0x58, 0x30, 0xa6, 0x01, 0x69,
   0xa0, 0x98, 0xc2, 0x0a, 0x55, 0x10, 0x05, 0x2b, 0xc2, 0x16, 0xdc, 0x52, 0x07, 0x45, 0xf0, 0x25,
   0x24, 0x9b, 0x69, 0x3a, 0xb0, 0xc9, 0xa4, 0x33, 0x53, 0xb1, 0xf8, 0x13, 0x7e, 0x96, 0x8f, 0x7d,
   0xf4, 0x51, 0x5a, 0xfc, 0x09, 0x9f, 0x64, 0x26, 0xd9, 0xd8, 0xea, 0x56, 0xba, 0x7d, 0x9b, 0x3b,
   0x73, 0xce, 0xb9, 0x97, 0x7b, 0x38, 0x03, 0x2b, 0xc9, 0x11, 0xcb, 0x49, 0x94, 0x8b, 0x2c, 0x8a,
   0x4b, 0x1a, 0x96, 0x9c, 0x49, 0x86, 0x7a, 0xcd, 0xe5, 0xfa, 0x32, 0xe1, 0x9c, 0x71, 0x75, 0xac,
   0xde, 0xfc, 0x08, 0x7a, 0xbb, 0x83, 0x97, 0x69, 0xca, 0x89, 0x10, 0x68, 0x05, 0xe6, 0xf3, 0xe3,
   0x88, 0xa6, 0x8e, 0xe1, 0x19, 0x81, 0x89, 0xcd, 0xfc, 0x78, 0x2f, 0x45, 0xf7, 0xa0, 0x1b, 0x27,
   0x22, 0x8a, 0xd3, 0x94, 0x3b, 0x2d, 0xcf, 0x08, 0xda, 0x78, 0x21, 0x4e, 0x84, 0xa2, 0xa0, 0x25,
   0x68, 0xd1, 0xd2, 0x69, 0x7b, 0x46, 0x60, 0xe3, 0x16, 0x2d, 0x11, 0x02, 0xb3, 0x64, 0x5c, 0x3a,
   0xa6, 0x67, 0x04, 0xf3, 0x58, 0x9f, 0xfd, 0x2f, 0xd0, 0x3d, 0xe0, 0x6c, 0xb4, 0x57, 0x1c, 0x32,
   0xb4, 0x06, 0x0b, 0x25, 0x67, 0xa3, 0x49, 0x07, 0x1b, 0x77, 0x54, 0xb9, 0x97, 0x2a, 0x62, 0x11,
   0xe7, 0x44, 0xeb, 0xdb, 0x58, 0x9f, 0xd1, 0x03, 0xb0, 0xca, 0x93, 0x64, 0x4c, 0x47, 0x11, 0x2d,
   0x0e, 0x59, 0xdd, 0x05, 0xaa, 0x2b, 0xad, 0xb6, 0x01, 0x76, 0xc9, 0xe9, 0xa7, 0x58, 0x92, 0x0a,
   0x61, 0x6a, 0x84, 0x55, 0xdf, 0x29, 0x88, 0xff, 0x08, 0xec, 0xa1, 0xc8, 0xde, 0xb1, 0x92, 0x8e,
   0xde, 0x50, 0x21, 0xd1, 0x7d, 0x00, 0xa9, 0x8a, 0x68, 0x4c, 0x85, 0x74, 0x0c, 0xaf, 0x1d, 0xd8,
   0xb8, 0x27, 0x27, 0xcf, 0xfe, 0x0e, 0xc0, 0x50, 0x64, 0x07, 0xaa, 0x85, 0x38, 0x42, 0xab, 0x30,
   0xaf, 0x9f, 0xea, 0x59, 0xab, 0x42, 0x8d, 0x9a, 0xc6, 0x32, 0x9e, 0x8c, 0xaa, 0xce, 0xfe, 0x73,
   0x58, 0x1a, 0x8a, 0xec, 0x15, 0xcb, 0x73, 0x56, 0x60, 0x52, 0x8e, 0x4f, 0xd1, 0x16, 0x74, 0x08,
   0xe7, 0xb9, 0xc8, 0x34, 0xd9, 0xea, 0xaf, 0x84, 0x8d, 0x07, 0xe1, 0x6b, 0x65, 0xc1, 0x50, 0x64,
   0xb8, 0x86, 0xf8, 0xcf, 0x60, 0x59, 0x95, 0xe4, 0xf8, 0x84, 0x08, 0xa9, 0x87, 0x9d, 0xa1, 0xf7,
   0x07, 0x58, 0xfd, 0x8b, 0x3c, 0xfb, 0x04, 0x53, 0x85, 0x77, 0xc0, 0xd2, 0xc2, 0x19, 0x15, 0x92,
   0x70, 0xb4, 0x09, 0xa6, 0x32, 0x6b, 0x8a, 0xda, 0xc4, 0x5e, 0xac, 0x01, 0xfe, 0x53, 0x58, 0x1c,
   0x8a, 0xec, 0x7d, 0xc1, 0x67, 0x66, 0x3e, 0xd1, 0x6e, 0x0d, 0x48, 0xcc, 0x65, 0x42, 0x62, 0x79,
   0x73, 0xe2, 0x43, 0xdd, 0xf2, 0xed, 0x09, 0xe1, 0xa7, 0xff, 0x59, 0x9f, 0xff, 0xd3, 0x00, 0x74,
   0x05, 0x77, 0x8b, 0x4d, 0xed, 0x83, 0x5d, 0xb0, 0x94, 0xe8, 0x38, 0x10, 0x21, 0x9c, 0x96, 0xd7,
   0x0e, 0xac, 0xfe, 0xd6, 0x25, 0xca, 0xbf, 0x1d, 0xc2, 0xdd, 0xc1, 0x3e, 0x4b, 0x49, 0x9d, 0x32,
   0x6c, 0x15, 0x7f, 0x8a, 0x75, 0x0c, 0x8b, 0x57, 0x5e, 0xaf, 0xcf, 0x48, 0x00, 0x66, 0x93, 0x41,
   0xab, 0xbf, 0x7a, 0xa9, 0x63, 0x13, 0x60, 0xac, 0x11, 0xfe, 0xa6, 0xde, 0xa3, 0x1e, 0x42, 0x2d,
   0xea, 0x5a, 0x49, 0xff, 0x97, 0x01, 0x77, 0x2e, 0x23, 0x6f, 0xb1, 0x8f, 0x17, 0xd0, 0xd3, 0xda,
   0x3a, 0x50, 0xd5, 0x32, 0x36, 0xa6, 0x2c, 0xa3, 0x51, 0x0f, 0xb5, 0x6d, 0x5d, 0xc5, 0x51, 0x91,
   0x5b, 0xff, 0x0c, 0xa6, 0x0e, 0xf3, 0x4d, 0xbd, 0x46, 0x77, 0xa1, 0xc3, 0x8a, 0x31, 0x2d, 0xaa,
   0xcf, 0xa2, 0x8b, 0xeb, 0x0a, 0x6d, 0x43, 0x47, 0xbb, 0x2c, 0xf4, 0x4f, 0x61, 0xf5, 0xd7, 0xae,
   0x4e, 0xd1, 0xfc, 0x01, 0xb8, 0x86, 0xed, 0x6e, 0x7e, 0x3b, 0x77, 0x8d, 0xb3, 0x73, 0xd7, 0xf8,
   0x71, 0xee, 0x1a, 0x5f, 0x2f, 0xdc, 0xb9, 0xb3, 0x0b, 0x77, 0xee, 0xfb, 0x85, 0x3b, 0x37, 0x68,
   0x7f, 0xb4, 0xc2, 0xed, 0x86, 0x9d, 0x74, 0xf4, 0x4f, 0xf9, 0xf8, 0x77, 0x00, 0x00, 0x00, 0xff,
   0xff, 0xe9, 0xcf, 0xb1, 0x11, 0x5c, 0x05, 0x00, 0x00,
}
func (m *BHAddress) 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 *BHAddress) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.MqId != 0 {
      dAtA[i] = 0x8
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.MqId))
   }
   if m.AbsAddr != 0 {
      dAtA[i] = 0x10
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.AbsAddr))
   }
   if len(m.Ip) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Ip)))
      i += copy(dAtA[i:], m.Ip)
   }
   if m.Port != 0 {
      dAtA[i] = 0x20
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Port))
   }
   return i, nil
}
func (m *ProcInfo) 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 *ProcInfo) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.ProcId) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.ProcId)))
      i += copy(dAtA[i:], m.ProcId)
   }
   if len(m.Name) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Name)))
      i += copy(dAtA[i:], m.Name)
   }
   if len(m.PublicInfo) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.PublicInfo)))
      i += copy(dAtA[i:], m.PublicInfo)
   }
   if len(m.PrivateInfo) > 0 {
      dAtA[i] = 0x22
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.PrivateInfo)))
      i += copy(dAtA[i:], m.PrivateInfo)
   }
   return i, nil
}
func (m *MsgTopicList) 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 *MsgTopicList) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.TopicList) > 0 {
      for _, b := range m.TopicList {
         dAtA[i] = 0xa
         i++
         i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(b)))
         i += copy(dAtA[i:], b)
      }
   }
   return i, nil
}
func (m *MsgPublish) 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 *MsgPublish) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Topic) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Topic)))
      i += copy(dAtA[i:], m.Topic)
   }
   if len(m.Data) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Data)))
      i += copy(dAtA[i:], m.Data)
   }
   return i, nil
}
func (m *MsgCommonReply) 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 *MsgCommonReply) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Errmsg != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Errmsg.Size()))
      n1, err1 := m.Errmsg.MarshalTo(dAtA[i:])
      if err1 != nil {
         return 0, err1
      }
      i += n1
   }
   return i, nil
}
func (m *MsgRequestTopic) 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 *MsgRequestTopic) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Topic) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Topic)))
      i += copy(dAtA[i:], m.Topic)
   }
   if len(m.Data) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Data)))
      i += copy(dAtA[i:], m.Data)
   }
   return i, nil
}
func (m *MsgRequestTopicReply) 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 *MsgRequestTopicReply) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Errmsg != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Errmsg.Size()))
      n2, err2 := m.Errmsg.MarshalTo(dAtA[i:])
      if err2 != nil {
         return 0, err2
      }
      i += n2
   }
   if len(m.Data) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Data)))
      i += copy(dAtA[i:], m.Data)
   }
   return i, nil
}
func (m *MsgRegister) 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 *MsgRegister) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Proc != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Proc.Size()))
      n3, err3 := m.Proc.MarshalTo(dAtA[i:])
      if err3 != nil {
         return 0, err3
      }
      i += n3
   }
   return i, nil
}
func (m *MsgUnregister) 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 *MsgUnregister) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Proc != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Proc.Size()))
      n4, err4 := m.Proc.MarshalTo(dAtA[i:])
      if err4 != nil {
         return 0, err4
      }
      i += n4
   }
   return i, nil
}
func (m *MsgHeartbeat) 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 *MsgHeartbeat) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Proc != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Proc.Size()))
      n5, err5 := m.Proc.MarshalTo(dAtA[i:])
      if err5 != nil {
         return 0, err5
      }
      i += n5
   }
   return i, nil
}
func (m *MsgQueryTopic) 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 *MsgQueryTopic) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Topic) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Topic)))
      i += copy(dAtA[i:], m.Topic)
   }
   return i, nil
}
func (m *MsgQueryTopicReply) 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 *MsgQueryTopicReply) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Errmsg != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Errmsg.Size()))
      n6, err6 := m.Errmsg.MarshalTo(dAtA[i:])
      if err6 != nil {
         return 0, err6
      }
      i += n6
   }
   if len(m.NodeAddress) > 0 {
      for _, msg := range m.NodeAddress {
         dAtA[i] = 0x12
         i++
         i = encodeVarintBhomeMsgApi(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
   }
   return i, nil
}
func (m *MsgQueryTopicReply_BHNodeAddress) 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 *MsgQueryTopicReply_BHNodeAddress) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.ProcId) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.ProcId)))
      i += copy(dAtA[i:], m.ProcId)
   }
   if m.Addr != nil {
      dAtA[i] = 0x12
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Addr.Size()))
      n7, err7 := m.Addr.MarshalTo(dAtA[i:])
      if err7 != nil {
         return 0, err7
      }
      i += n7
   }
   return i, nil
}
func (m *MsgQueryProc) 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 *MsgQueryProc) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.ProcId) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.ProcId)))
      i += copy(dAtA[i:], m.ProcId)
   }
   return i, nil
}
func (m *MsgQueryProcReply) 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 *MsgQueryProcReply) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Errmsg != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Errmsg.Size()))
      n8, err8 := m.Errmsg.MarshalTo(dAtA[i:])
      if err8 != nil {
         return 0, err8
      }
      i += n8
   }
   if len(m.ProcList) > 0 {
      for _, msg := range m.ProcList {
         dAtA[i] = 0x12
         i++
         i = encodeVarintBhomeMsgApi(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
   }
   return i, nil
}
func (m *MsgQueryProcReply_Info) 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 *MsgQueryProcReply_Info) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Proc != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Proc.Size()))
      n9, err9 := m.Proc.MarshalTo(dAtA[i:])
      if err9 != nil {
         return 0, err9
      }
      i += n9
   }
   if m.Online {
      dAtA[i] = 0x10
      i++
      if m.Online {
         dAtA[i] = 1
      } else {
         dAtA[i] = 0
      }
      i++
   }
   if m.Topics != nil {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Topics.Size()))
      n10, err10 := m.Topics.MarshalTo(dAtA[i:])
      if err10 != nil {
         return 0, err10
      }
      i += n10
   }
   return i, nil
}
func encodeVarintBhomeMsgApi(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 *BHAddress) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.MqId != 0 {
      n += 1 + sovBhomeMsgApi(uint64(m.MqId))
   }
   if m.AbsAddr != 0 {
      n += 1 + sovBhomeMsgApi(uint64(m.AbsAddr))
   }
   l = len(m.Ip)
   if l > 0 {
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   if m.Port != 0 {
      n += 1 + sovBhomeMsgApi(uint64(m.Port))
   }
   return n
}
func (m *ProcInfo) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.ProcId)
   if l > 0 {
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   l = len(m.Name)
   if l > 0 {
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   l = len(m.PublicInfo)
   if l > 0 {
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   l = len(m.PrivateInfo)
   if l > 0 {
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   return n
}
func (m *MsgTopicList) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if len(m.TopicList) > 0 {
      for _, b := range m.TopicList {
         l = len(b)
         n += 1 + l + sovBhomeMsgApi(uint64(l))
      }
   }
   return n
}
func (m *MsgPublish) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Topic)
   if l > 0 {
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   l = len(m.Data)
   if l > 0 {
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   return n
}
func (m *MsgCommonReply) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Errmsg != nil {
      l = m.Errmsg.Size()
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   return n
}
func (m *MsgRequestTopic) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Topic)
   if l > 0 {
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   l = len(m.Data)
   if l > 0 {
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   return n
}
func (m *MsgRequestTopicReply) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Errmsg != nil {
      l = m.Errmsg.Size()
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   l = len(m.Data)
   if l > 0 {
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   return n
}
func (m *MsgRegister) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Proc != nil {
      l = m.Proc.Size()
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   return n
}
func (m *MsgUnregister) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Proc != nil {
      l = m.Proc.Size()
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   return n
}
func (m *MsgHeartbeat) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Proc != nil {
      l = m.Proc.Size()
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   return n
}
func (m *MsgQueryTopic) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Topic)
   if l > 0 {
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   return n
}
func (m *MsgQueryTopicReply) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Errmsg != nil {
      l = m.Errmsg.Size()
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   if len(m.NodeAddress) > 0 {
      for _, e := range m.NodeAddress {
         l = e.Size()
         n += 1 + l + sovBhomeMsgApi(uint64(l))
      }
   }
   return n
}
func (m *MsgQueryTopicReply_BHNodeAddress) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.ProcId)
   if l > 0 {
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   if m.Addr != nil {
      l = m.Addr.Size()
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   return n
}
func (m *MsgQueryProc) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.ProcId)
   if l > 0 {
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   return n
}
func (m *MsgQueryProcReply) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Errmsg != nil {
      l = m.Errmsg.Size()
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   if len(m.ProcList) > 0 {
      for _, e := range m.ProcList {
         l = e.Size()
         n += 1 + l + sovBhomeMsgApi(uint64(l))
      }
   }
   return n
}
func (m *MsgQueryProcReply_Info) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Proc != nil {
      l = m.Proc.Size()
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   if m.Online {
      n += 2
   }
   if m.Topics != nil {
      l = m.Topics.Size()
      n += 1 + l + sovBhomeMsgApi(uint64(l))
   }
   return n
}
func sovBhomeMsgApi(x uint64) (n int) {
   return (math_bits.Len64(x|1) + 6) / 7
}
func sozBhomeMsgApi(x uint64) (n int) {
   return sovBhomeMsgApi(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *BHAddress) 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 ErrIntOverflowBhomeMsgApi
         }
         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: BHAddress: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: BHAddress: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field MqId", wireType)
         }
         m.MqId = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.MqId |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field AbsAddr", wireType)
         }
         m.AbsAddr = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.AbsAddr |= int64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Ip", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Ip = append(m.Ip[:0], dAtA[iNdEx:postIndex]...)
         if m.Ip == nil {
            m.Ip = []byte{}
         }
         iNdEx = postIndex
      case 4:
         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 ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Port |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ProcInfo) 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 ErrIntOverflowBhomeMsgApi
         }
         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: ProcInfo: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ProcInfo: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field ProcId", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.ProcId = append(m.ProcId[:0], dAtA[iNdEx:postIndex]...)
         if m.ProcId == nil {
            m.ProcId = []byte{}
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Name = append(m.Name[:0], dAtA[iNdEx:postIndex]...)
         if m.Name == nil {
            m.Name = []byte{}
         }
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PublicInfo", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.PublicInfo = append(m.PublicInfo[:0], dAtA[iNdEx:postIndex]...)
         if m.PublicInfo == nil {
            m.PublicInfo = []byte{}
         }
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PrivateInfo", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.PrivateInfo = append(m.PrivateInfo[:0], dAtA[iNdEx:postIndex]...)
         if m.PrivateInfo == nil {
            m.PrivateInfo = []byte{}
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *MsgTopicList) 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 ErrIntOverflowBhomeMsgApi
         }
         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: MsgTopicList: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: MsgTopicList: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field TopicList", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.TopicList = append(m.TopicList, make([]byte, postIndex-iNdEx))
         copy(m.TopicList[len(m.TopicList)-1], dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *MsgPublish) 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 ErrIntOverflowBhomeMsgApi
         }
         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: MsgPublish: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: MsgPublish: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Topic", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Topic = append(m.Topic[:0], dAtA[iNdEx:postIndex]...)
         if m.Topic == nil {
            m.Topic = []byte{}
         }
         iNdEx = postIndex
      case 2:
         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 ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         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 := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *MsgCommonReply) 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 ErrIntOverflowBhomeMsgApi
         }
         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: MsgCommonReply: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: MsgCommonReply: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Errmsg", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Errmsg == nil {
            m.Errmsg = &ErrorMsg{}
         }
         if err := m.Errmsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *MsgRequestTopic) 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 ErrIntOverflowBhomeMsgApi
         }
         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: MsgRequestTopic: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: MsgRequestTopic: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Topic", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Topic = append(m.Topic[:0], dAtA[iNdEx:postIndex]...)
         if m.Topic == nil {
            m.Topic = []byte{}
         }
         iNdEx = postIndex
      case 2:
         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 ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         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 := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *MsgRequestTopicReply) 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 ErrIntOverflowBhomeMsgApi
         }
         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: MsgRequestTopicReply: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: MsgRequestTopicReply: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Errmsg", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Errmsg == nil {
            m.Errmsg = &ErrorMsg{}
         }
         if err := m.Errmsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         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 ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         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 := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *MsgRegister) 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 ErrIntOverflowBhomeMsgApi
         }
         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: MsgRegister: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: MsgRegister: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Proc", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Proc == nil {
            m.Proc = &ProcInfo{}
         }
         if err := m.Proc.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *MsgUnregister) 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 ErrIntOverflowBhomeMsgApi
         }
         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: MsgUnregister: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: MsgUnregister: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Proc", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Proc == nil {
            m.Proc = &ProcInfo{}
         }
         if err := m.Proc.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *MsgHeartbeat) 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 ErrIntOverflowBhomeMsgApi
         }
         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: MsgHeartbeat: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: MsgHeartbeat: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Proc", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Proc == nil {
            m.Proc = &ProcInfo{}
         }
         if err := m.Proc.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *MsgQueryTopic) 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 ErrIntOverflowBhomeMsgApi
         }
         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: MsgQueryTopic: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: MsgQueryTopic: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Topic", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Topic = append(m.Topic[:0], dAtA[iNdEx:postIndex]...)
         if m.Topic == nil {
            m.Topic = []byte{}
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *MsgQueryTopicReply) 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 ErrIntOverflowBhomeMsgApi
         }
         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: MsgQueryTopicReply: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: MsgQueryTopicReply: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Errmsg", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Errmsg == nil {
            m.Errmsg = &ErrorMsg{}
         }
         if err := m.Errmsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field NodeAddress", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.NodeAddress = append(m.NodeAddress, &MsgQueryTopicReply_BHNodeAddress{})
         if err := m.NodeAddress[len(m.NodeAddress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *MsgQueryTopicReply_BHNodeAddress) 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 ErrIntOverflowBhomeMsgApi
         }
         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: BHNodeAddress: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: BHNodeAddress: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field ProcId", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.ProcId = append(m.ProcId[:0], dAtA[iNdEx:postIndex]...)
         if m.ProcId == nil {
            m.ProcId = []byte{}
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Addr", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Addr == nil {
            m.Addr = &BHAddress{}
         }
         if err := m.Addr.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *MsgQueryProc) 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 ErrIntOverflowBhomeMsgApi
         }
         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: MsgQueryProc: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: MsgQueryProc: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field ProcId", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.ProcId = append(m.ProcId[:0], dAtA[iNdEx:postIndex]...)
         if m.ProcId == nil {
            m.ProcId = []byte{}
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *MsgQueryProcReply) 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 ErrIntOverflowBhomeMsgApi
         }
         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: MsgQueryProcReply: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: MsgQueryProcReply: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Errmsg", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Errmsg == nil {
            m.Errmsg = &ErrorMsg{}
         }
         if err := m.Errmsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field ProcList", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.ProcList = append(m.ProcList, &MsgQueryProcReply_Info{})
         if err := m.ProcList[len(m.ProcList)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *MsgQueryProcReply_Info) 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 ErrIntOverflowBhomeMsgApi
         }
         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: Info: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: Info: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Proc", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Proc == nil {
            m.Proc = &ProcInfo{}
         }
         if err := m.Proc.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Online", wireType)
         }
         var v int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            v |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         m.Online = bool(v != 0)
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Topics", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowBhomeMsgApi
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Topics == nil {
            m.Topics = &MsgTopicList{}
         }
         if err := m.Topics.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthBhomeMsgApi
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func skipBhomeMsgApi(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, ErrIntOverflowBhomeMsgApi
         }
         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, ErrIntOverflowBhomeMsgApi
            }
            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, ErrIntOverflowBhomeMsgApi
            }
            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, ErrInvalidLengthBhomeMsgApi
         }
         iNdEx += length
         if iNdEx < 0 {
            return 0, ErrInvalidLengthBhomeMsgApi
         }
         return iNdEx, nil
      case 3:
         for {
            var innerWire uint64
            var start int = iNdEx
            for shift := uint(0); ; shift += 7 {
               if shift >= 64 {
                  return 0, ErrIntOverflowBhomeMsgApi
               }
               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 := skipBhomeMsgApi(dAtA[start:])
            if err != nil {
               return 0, err
            }
            iNdEx = start + next
            if iNdEx < 0 {
               return 0, ErrInvalidLengthBhomeMsgApi
            }
         }
         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 (
   ErrInvalidLengthBhomeMsgApi = fmt.Errorf("proto: negative length found during unmarshaling")
   ErrIntOverflowBhomeMsgApi   = fmt.Errorf("proto: integer overflow")
)