From c72a961cde32c9df0e89fde35bcbd3c82cc264ef Mon Sep 17 00:00:00 2001 From: Aarsh Shah Date: Thu, 6 Feb 2020 22:30:19 +0530 Subject: [PATCH 01/19] Introspection types for core (#107) --- go.mod | 1 + go.sum | 3 + host/host.go | 12 + introspect/doc.go | 9 + introspect/introspect.go | 25 + introspect/pb/Makefile | 11 + introspect/pb/introspection.pb.go | 7059 +++++++++++++++++++++++++++++ introspect/pb/introspection.proto | 296 ++ introspect/providers.go | 54 + 9 files changed, 7470 insertions(+) create mode 100644 introspect/doc.go create mode 100644 introspect/introspect.go create mode 100644 introspect/pb/Makefile create mode 100644 introspect/pb/introspection.pb.go create mode 100644 introspect/pb/introspection.proto create mode 100644 introspect/providers.go diff --git a/go.mod b/go.mod index b560b4e7..b6266720 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ require ( github.com/btcsuite/btcd v0.20.1-beta github.com/coreos/go-semver v0.3.0 github.com/gogo/protobuf v1.3.1 + github.com/golang/protobuf v1.3.2 github.com/ipfs/go-cid v0.0.4 github.com/jbenet/goprocess v0.1.3 github.com/libp2p/go-flow-metrics v0.0.3 diff --git a/go.sum b/go.sum index 617966c1..9b911754 100644 --- a/go.sum +++ b/go.sum @@ -34,7 +34,10 @@ github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 h1:ZgQEtGgCBiWRM github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= diff --git a/host/host.go b/host/host.go index 9aad5e12..71c1d694 100644 --- a/host/host.go +++ b/host/host.go @@ -8,6 +8,7 @@ import ( "github.com/libp2p/go-libp2p-core/connmgr" "github.com/libp2p/go-libp2p-core/event" + "github.com/libp2p/go-libp2p-core/introspect" "github.com/libp2p/go-libp2p-core/network" "github.com/libp2p/go-libp2p-core/peer" "github.com/libp2p/go-libp2p-core/peerstore" @@ -73,3 +74,14 @@ type Host interface { // EventBus returns the hosts eventbus EventBus() event.Bus } + +// IntrospectableHost is implemented by Host implementations that are +// introspectable, that is, that expose an introspection server. +type IntrospectableHost interface { + + // Introspector returns the Introspector instance, with which the caller + // can: + // - register data providers. + // - fetch introspection data. + Introspector() introspect.Introspector +} diff --git a/introspect/doc.go b/introspect/doc.go new file mode 100644 index 00000000..104d082a --- /dev/null +++ b/introspect/doc.go @@ -0,0 +1,9 @@ +// Package introspect is EXPERIMENTAL. It is subject to heavy change, and it +// WILL change. For now, it is the simplest implementation to power the +// proof-of-concept of the libp2p introspection framework. +// +// Package introspect contains the abstract skeleton of the introspection system +// of go-libp2p. It holds the introspection data schema, and the primitives that +// allow subsystems to register data providers, and clients to fetch the current +// state of the system. +package introspect diff --git a/introspect/introspect.go b/introspect/introspect.go new file mode 100644 index 00000000..289a30c8 --- /dev/null +++ b/introspect/introspect.go @@ -0,0 +1,25 @@ +package introspect + +import introspect_pb "github.com/libp2p/go-libp2p-core/introspect/pb" + +// ProtoVersion is the current version of the introspection protocol. +const ProtoVersion uint32 = 1 + +// EXPERIMENTAL. Introspector allows other sub-systems/modules to register +// metrics/data providers AND also enables clients to fetch the current state of +// the system. +type Introspector interface { + + // EXPERIMENTAL. RegisterDataProviders allows sub-systems/modules to + // register callbacks that supply introspection data. + RegisterDataProviders(p *DataProviders) error + + // EXPERIMENTAL. FetchFullState returns the full state of the system, by + // calling all known data providers and returning a merged cross-cut of the + // running system. + FetchFullState() (*introspect_pb.State, error) + + // EXPERIMENTAL. ListenAddrs returns the addresses on which the + // introspection server endpoint is listening for clients. + ListenAddrs() []string +} diff --git a/introspect/pb/Makefile b/introspect/pb/Makefile new file mode 100644 index 00000000..73131765 --- /dev/null +++ b/introspect/pb/Makefile @@ -0,0 +1,11 @@ +PB = $(wildcard *.proto) +GO = $(PB:.proto=.pb.go) + +all: $(GO) + +%.pb.go: %.proto + protoc --proto_path=$(PWD):$(PWD)/../..:$(GOPATH)/src --gogofaster_out=Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types:. $< + +clean: + rm -f *.pb.go + rm -f *.go \ No newline at end of file diff --git a/introspect/pb/introspection.pb.go b/introspect/pb/introspection.pb.go new file mode 100644 index 00000000..0b472704 --- /dev/null +++ b/introspect/pb/introspection.pb.go @@ -0,0 +1,7059 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: introspection.proto + +package introspect_pb + +import ( + fmt "fmt" + _ "github.com/gogo/protobuf/gogoproto" + proto "github.com/gogo/protobuf/proto" + github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + types "github.com/gogo/protobuf/types" + io "io" + math "math" + time "time" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +// The status of a connection or stream. +type Status int32 + +const ( + Status_ACTIVE Status = 0 + Status_CLOSED Status = 1 + Status_OPENING Status = 2 + Status_CLOSING Status = 3 + Status_ERROR Status = 4 +) + +var Status_name = map[int32]string{ + 0: "ACTIVE", + 1: "CLOSED", + 2: "OPENING", + 3: "CLOSING", + 4: "ERROR", +} + +var Status_value = map[string]int32{ + "ACTIVE": 0, + "CLOSED": 1, + "OPENING": 2, + "CLOSING": 3, + "ERROR": 4, +} + +func (x Status) String() string { + return proto.EnumName(Status_name, int32(x)) +} + +func (Status) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{0} +} + +// Our role in a connection or stream. +type Role int32 + +const ( + Role_INITIATOR Role = 0 + Role_RESPONDER Role = 1 +) + +var Role_name = map[int32]string{ + 0: "INITIATOR", + 1: "RESPONDER", +} + +var Role_value = map[string]int32{ + "INITIATOR": 0, + "RESPONDER": 1, +} + +func (x Role) String() string { + return proto.EnumName(Role_name, int32(x)) +} + +func (Role) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{1} +} + +// Trigger of the query. +type DHT_Query_Trigger int32 + +const ( + DHT_Query_API DHT_Query_Trigger = 0 + DHT_Query_DISCOVERY DHT_Query_Trigger = 1 +) + +var DHT_Query_Trigger_name = map[int32]string{ + 0: "API", + 1: "DISCOVERY", +} + +var DHT_Query_Trigger_value = map[string]int32{ + "API": 0, + "DISCOVERY": 1, +} + +func (x DHT_Query_Trigger) String() string { + return proto.EnumName(DHT_Query_Trigger_name, int32(x)) +} + +func (DHT_Query_Trigger) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{10, 1, 0} +} + +// Type of the query. +type DHT_Query_Type int32 + +const ( + DHT_Query_CONTENT DHT_Query_Type = 0 + DHT_Query_PROVIDER DHT_Query_Type = 1 + DHT_Query_VALUE DHT_Query_Type = 2 +) + +var DHT_Query_Type_name = map[int32]string{ + 0: "CONTENT", + 1: "PROVIDER", + 2: "VALUE", +} + +var DHT_Query_Type_value = map[string]int32{ + "CONTENT": 0, + "PROVIDER": 1, + "VALUE": 2, +} + +func (x DHT_Query_Type) String() string { + return proto.EnumName(DHT_Query_Type_name, int32(x)) +} + +func (DHT_Query_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{10, 1, 1} +} + +// Status indicating the result of the query +type DHT_Query_Result int32 + +const ( + DHT_Query_SUCCESS DHT_Query_Result = 0 + DHT_Query_ERROR DHT_Query_Result = 1 + DHT_Query_TIMEOUT DHT_Query_Result = 2 + // Pending queries may be absent, depending on data collection + DHT_Query_PENDING DHT_Query_Result = 3 +) + +var DHT_Query_Result_name = map[int32]string{ + 0: "SUCCESS", + 1: "ERROR", + 2: "TIMEOUT", + 3: "PENDING", +} + +var DHT_Query_Result_value = map[string]int32{ + "SUCCESS": 0, + "ERROR": 1, + "TIMEOUT": 2, + "PENDING": 3, +} + +func (x DHT_Query_Result) String() string { + return proto.EnumName(DHT_Query_Result_name, int32(x)) +} + +func (DHT_Query_Result) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{10, 1, 2} +} + +// Version of schema +type Version struct { + Number uint32 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"` +} + +func (m *Version) Reset() { *m = Version{} } +func (m *Version) String() string { return proto.CompactTextString(m) } +func (*Version) ProtoMessage() {} +func (*Version) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{0} +} +func (m *Version) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Version.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 *Version) XXX_Merge(src proto.Message) { + xxx_messageInfo_Version.Merge(m, src) +} +func (m *Version) XXX_Size() int { + return m.Size() +} +func (m *Version) XXX_DiscardUnknown() { + xxx_messageInfo_Version.DiscardUnknown(m) +} + +var xxx_messageInfo_Version proto.InternalMessageInfo + +func (m *Version) GetNumber() uint32 { + if m != nil { + return m.Number + } + return 0 +} + +// ResultCounter is a monotonically increasing counter that reports an ok/err breakdown of the total. +type ResultCounter struct { + Total uint32 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Ok uint32 `protobuf:"varint,2,opt,name=ok,proto3" json:"ok,omitempty"` + Err uint32 `protobuf:"varint,3,opt,name=err,proto3" json:"err,omitempty"` +} + +func (m *ResultCounter) Reset() { *m = ResultCounter{} } +func (m *ResultCounter) String() string { return proto.CompactTextString(m) } +func (*ResultCounter) ProtoMessage() {} +func (*ResultCounter) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{1} +} +func (m *ResultCounter) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResultCounter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResultCounter.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 *ResultCounter) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResultCounter.Merge(m, src) +} +func (m *ResultCounter) XXX_Size() int { + return m.Size() +} +func (m *ResultCounter) XXX_DiscardUnknown() { + xxx_messageInfo_ResultCounter.DiscardUnknown(m) +} + +var xxx_messageInfo_ResultCounter proto.InternalMessageInfo + +func (m *ResultCounter) GetTotal() uint32 { + if m != nil { + return m.Total + } + return 0 +} + +func (m *ResultCounter) GetOk() uint32 { + if m != nil { + return m.Ok + } + return 0 +} + +func (m *ResultCounter) GetErr() uint32 { + if m != nil { + return m.Err + } + return 0 +} + +// Moving totals over sliding time windows. Models sensible time windows, +// we don't have to populate them all at once. +// +// Graphical example: +// +// time past -> present an event 16 min ago +// ======================================================X================>> +// | | 1m +// | |---| 5m +// | |-------------| 15m +// |------------X---------------| 30m +// |------------------------------------------X---------------| 60m +type SlidingCounter struct { + Over_1M uint32 `protobuf:"varint,1,opt,name=over_1m,json=over1m,proto3" json:"over_1m,omitempty"` + Over_5M uint32 `protobuf:"varint,2,opt,name=over_5m,json=over5m,proto3" json:"over_5m,omitempty"` + Over_15M uint32 `protobuf:"varint,3,opt,name=over_15m,json=over15m,proto3" json:"over_15m,omitempty"` + Over_30M uint32 `protobuf:"varint,4,opt,name=over_30m,json=over30m,proto3" json:"over_30m,omitempty"` + Over_1Hr uint32 `protobuf:"varint,5,opt,name=over_1hr,json=over1hr,proto3" json:"over_1hr,omitempty"` + Over_2Hr uint32 `protobuf:"varint,6,opt,name=over_2hr,json=over2hr,proto3" json:"over_2hr,omitempty"` + Over_4Hr uint32 `protobuf:"varint,7,opt,name=over_4hr,json=over4hr,proto3" json:"over_4hr,omitempty"` + Over_8Hr uint32 `protobuf:"varint,8,opt,name=over_8hr,json=over8hr,proto3" json:"over_8hr,omitempty"` + Over_12Hr uint32 `protobuf:"varint,9,opt,name=over_12hr,json=over12hr,proto3" json:"over_12hr,omitempty"` + Over_24Hr uint32 `protobuf:"varint,10,opt,name=over_24hr,json=over24hr,proto3" json:"over_24hr,omitempty"` +} + +func (m *SlidingCounter) Reset() { *m = SlidingCounter{} } +func (m *SlidingCounter) String() string { return proto.CompactTextString(m) } +func (*SlidingCounter) ProtoMessage() {} +func (*SlidingCounter) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{2} +} +func (m *SlidingCounter) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SlidingCounter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SlidingCounter.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 *SlidingCounter) XXX_Merge(src proto.Message) { + xxx_messageInfo_SlidingCounter.Merge(m, src) +} +func (m *SlidingCounter) XXX_Size() int { + return m.Size() +} +func (m *SlidingCounter) XXX_DiscardUnknown() { + xxx_messageInfo_SlidingCounter.DiscardUnknown(m) +} + +var xxx_messageInfo_SlidingCounter proto.InternalMessageInfo + +func (m *SlidingCounter) GetOver_1M() uint32 { + if m != nil { + return m.Over_1M + } + return 0 +} + +func (m *SlidingCounter) GetOver_5M() uint32 { + if m != nil { + return m.Over_5M + } + return 0 +} + +func (m *SlidingCounter) GetOver_15M() uint32 { + if m != nil { + return m.Over_15M + } + return 0 +} + +func (m *SlidingCounter) GetOver_30M() uint32 { + if m != nil { + return m.Over_30M + } + return 0 +} + +func (m *SlidingCounter) GetOver_1Hr() uint32 { + if m != nil { + return m.Over_1Hr + } + return 0 +} + +func (m *SlidingCounter) GetOver_2Hr() uint32 { + if m != nil { + return m.Over_2Hr + } + return 0 +} + +func (m *SlidingCounter) GetOver_4Hr() uint32 { + if m != nil { + return m.Over_4Hr + } + return 0 +} + +func (m *SlidingCounter) GetOver_8Hr() uint32 { + if m != nil { + return m.Over_8Hr + } + return 0 +} + +func (m *SlidingCounter) GetOver_12Hr() uint32 { + if m != nil { + return m.Over_12Hr + } + return 0 +} + +func (m *SlidingCounter) GetOver_24Hr() uint32 { + if m != nil { + return m.Over_24Hr + } + return 0 +} + +// DataGauge reports stats for data traffic in a given direction. +type DataGauge struct { + // Cumulative bytes. + CumBytes uint64 `protobuf:"varint,1,opt,name=cum_bytes,json=cumBytes,proto3" json:"cum_bytes,omitempty"` + // Cumulative packets. + CumPackets uint64 `protobuf:"varint,2,opt,name=cum_packets,json=cumPackets,proto3" json:"cum_packets,omitempty"` + // Instantaneous bandwidth measurement (bytes/second). + InstBw uint64 `protobuf:"varint,3,opt,name=inst_bw,json=instBw,proto3" json:"inst_bw,omitempty"` +} + +func (m *DataGauge) Reset() { *m = DataGauge{} } +func (m *DataGauge) String() string { return proto.CompactTextString(m) } +func (*DataGauge) ProtoMessage() {} +func (*DataGauge) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{3} +} +func (m *DataGauge) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DataGauge) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DataGauge.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 *DataGauge) XXX_Merge(src proto.Message) { + xxx_messageInfo_DataGauge.Merge(m, src) +} +func (m *DataGauge) XXX_Size() int { + return m.Size() +} +func (m *DataGauge) XXX_DiscardUnknown() { + xxx_messageInfo_DataGauge.DiscardUnknown(m) +} + +var xxx_messageInfo_DataGauge proto.InternalMessageInfo + +func (m *DataGauge) GetCumBytes() uint64 { + if m != nil { + return m.CumBytes + } + return 0 +} + +func (m *DataGauge) GetCumPackets() uint64 { + if m != nil { + return m.CumPackets + } + return 0 +} + +func (m *DataGauge) GetInstBw() uint64 { + if m != nil { + return m.InstBw + } + return 0 +} + +// Runtime encapsulates runtime info about a node. +type Runtime struct { + // e.g. go-libp2p, js-libp2p, rust-libp2p, etc. + Implementation string `protobuf:"bytes,1,opt,name=implementation,proto3" json:"implementation,omitempty"` + // e.g. 1.2.3. + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + // e.g. Windows, Unix, macOS, Chrome, Mozilla, etc. + Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform,omitempty"` + // our peer id - the peer id of the host system + PeerId string `protobuf:"bytes,4,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` +} + +func (m *Runtime) Reset() { *m = Runtime{} } +func (m *Runtime) String() string { return proto.CompactTextString(m) } +func (*Runtime) ProtoMessage() {} +func (*Runtime) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{4} +} +func (m *Runtime) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Runtime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Runtime.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 *Runtime) XXX_Merge(src proto.Message) { + xxx_messageInfo_Runtime.Merge(m, src) +} +func (m *Runtime) XXX_Size() int { + return m.Size() +} +func (m *Runtime) XXX_DiscardUnknown() { + xxx_messageInfo_Runtime.DiscardUnknown(m) +} + +var xxx_messageInfo_Runtime proto.InternalMessageInfo + +func (m *Runtime) GetImplementation() string { + if m != nil { + return m.Implementation + } + return "" +} + +func (m *Runtime) GetVersion() string { + if m != nil { + return m.Version + } + return "" +} + +func (m *Runtime) GetPlatform() string { + if m != nil { + return m.Platform + } + return "" +} + +func (m *Runtime) GetPeerId() string { + if m != nil { + return m.PeerId + } + return "" +} + +// EndpointPair is a pair of multiaddrs. +type EndpointPair struct { + // the source multiaddr. + SrcMultiaddr string `protobuf:"bytes,1,opt,name=src_multiaddr,json=srcMultiaddr,proto3" json:"src_multiaddr,omitempty"` + // the destination multiaddr. + DstMultiaddr string `protobuf:"bytes,2,opt,name=dst_multiaddr,json=dstMultiaddr,proto3" json:"dst_multiaddr,omitempty"` +} + +func (m *EndpointPair) Reset() { *m = EndpointPair{} } +func (m *EndpointPair) String() string { return proto.CompactTextString(m) } +func (*EndpointPair) ProtoMessage() {} +func (*EndpointPair) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{5} +} +func (m *EndpointPair) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EndpointPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EndpointPair.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 *EndpointPair) XXX_Merge(src proto.Message) { + xxx_messageInfo_EndpointPair.Merge(m, src) +} +func (m *EndpointPair) XXX_Size() int { + return m.Size() +} +func (m *EndpointPair) XXX_DiscardUnknown() { + xxx_messageInfo_EndpointPair.DiscardUnknown(m) +} + +var xxx_messageInfo_EndpointPair proto.InternalMessageInfo + +func (m *EndpointPair) GetSrcMultiaddr() string { + if m != nil { + return m.SrcMultiaddr + } + return "" +} + +func (m *EndpointPair) GetDstMultiaddr() string { + if m != nil { + return m.DstMultiaddr + } + return "" +} + +// Traffic encloses data transfer statistics. +type Traffic struct { + // snapshot of the data in metrics. + TrafficIn *DataGauge `protobuf:"bytes,1,opt,name=traffic_in,json=trafficIn,proto3" json:"traffic_in,omitempty"` + // snapshot of the data out metrics. + TrafficOut *DataGauge `protobuf:"bytes,2,opt,name=traffic_out,json=trafficOut,proto3" json:"traffic_out,omitempty"` +} + +func (m *Traffic) Reset() { *m = Traffic{} } +func (m *Traffic) String() string { return proto.CompactTextString(m) } +func (*Traffic) ProtoMessage() {} +func (*Traffic) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{6} +} +func (m *Traffic) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Traffic) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Traffic.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 *Traffic) XXX_Merge(src proto.Message) { + xxx_messageInfo_Traffic.Merge(m, src) +} +func (m *Traffic) XXX_Size() int { + return m.Size() +} +func (m *Traffic) XXX_DiscardUnknown() { + xxx_messageInfo_Traffic.DiscardUnknown(m) +} + +var xxx_messageInfo_Traffic proto.InternalMessageInfo + +func (m *Traffic) GetTrafficIn() *DataGauge { + if m != nil { + return m.TrafficIn + } + return nil +} + +func (m *Traffic) GetTrafficOut() *DataGauge { + if m != nil { + return m.TrafficOut + } + return nil +} + +// a list of streams, by reference or inlined. +type StreamList struct { + // NOTE: only one of the next 2 fields can appear, but proto3 + // doesn't support combining oneof and repeated. + // + // streams within this connection by reference. + StreamIds [][]byte `protobuf:"bytes,1,rep,name=stream_ids,json=streamIds,proto3" json:"stream_ids,omitempty"` + // streams within this connection by inlining. + Streams []*Stream `protobuf:"bytes,2,rep,name=streams,proto3" json:"streams,omitempty"` +} + +func (m *StreamList) Reset() { *m = StreamList{} } +func (m *StreamList) String() string { return proto.CompactTextString(m) } +func (*StreamList) ProtoMessage() {} +func (*StreamList) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{7} +} +func (m *StreamList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StreamList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StreamList.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 *StreamList) XXX_Merge(src proto.Message) { + xxx_messageInfo_StreamList.Merge(m, src) +} +func (m *StreamList) XXX_Size() int { + return m.Size() +} +func (m *StreamList) XXX_DiscardUnknown() { + xxx_messageInfo_StreamList.DiscardUnknown(m) +} + +var xxx_messageInfo_StreamList proto.InternalMessageInfo + +func (m *StreamList) GetStreamIds() [][]byte { + if m != nil { + return m.StreamIds + } + return nil +} + +func (m *StreamList) GetStreams() []*Stream { + if m != nil { + return m.Streams + } + return nil +} + +// Connection reports metrics and state of a libp2p connection. +type Connection struct { + // the id of this connection, not to be shown in user tooling, + // used for (cross)referencing connections (e.g. relay). + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // the peer id of the other party. + PeerId string `protobuf:"bytes,2,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + // the status of this connection. + Status Status `protobuf:"varint,3,opt,name=status,proto3,enum=introspect.pb.Status" json:"status,omitempty"` + // a reference to the transport managing this connection. + TransportId []byte `protobuf:"bytes,4,opt,name=transport_id,json=transportId,proto3" json:"transport_id,omitempty"` + // the endpoints participating in this connection. + Endpoints *EndpointPair `protobuf:"bytes,5,opt,name=endpoints,proto3" json:"endpoints,omitempty"` + // the timeline of the connection, see Connection.Timeline. + Timeline *Connection_Timeline `protobuf:"bytes,6,opt,name=timeline,proto3" json:"timeline,omitempty"` + // our role in this connection. + Role Role `protobuf:"varint,7,opt,name=role,proto3,enum=introspect.pb.Role" json:"role,omitempty"` + // traffic statistics. + Traffic *Traffic `protobuf:"bytes,8,opt,name=traffic,proto3" json:"traffic,omitempty"` + // properties of this connection. + Attribs *Connection_Attributes `protobuf:"bytes,9,opt,name=attribs,proto3" json:"attribs,omitempty"` + // the instantaneous latency of this connection in nanoseconds. + LatencyNs uint64 `protobuf:"varint,10,opt,name=latency_ns,json=latencyNs,proto3" json:"latency_ns,omitempty"` + // streams within this connection. + Streams *StreamList `protobuf:"bytes,11,opt,name=streams,proto3" json:"streams,omitempty"` + // if this is a relayed connection, this points to the relaying connection. + // a default value here (empty bytes) indicates this is not a relayed connection. + // + // Types that are valid to be assigned to RelayedOver: + // *Connection_ConnId + // *Connection_Conn + RelayedOver isConnection_RelayedOver `protobuf_oneof:"relayed_over"` + // user provided tags. + UserProvidedTags []string `protobuf:"bytes,99,rep,name=user_provided_tags,json=userProvidedTags,proto3" json:"user_provided_tags,omitempty"` +} + +func (m *Connection) Reset() { *m = Connection{} } +func (m *Connection) String() string { return proto.CompactTextString(m) } +func (*Connection) ProtoMessage() {} +func (*Connection) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{8} +} +func (m *Connection) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Connection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Connection.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 *Connection) XXX_Merge(src proto.Message) { + xxx_messageInfo_Connection.Merge(m, src) +} +func (m *Connection) XXX_Size() int { + return m.Size() +} +func (m *Connection) XXX_DiscardUnknown() { + xxx_messageInfo_Connection.DiscardUnknown(m) +} + +var xxx_messageInfo_Connection proto.InternalMessageInfo + +type isConnection_RelayedOver interface { + isConnection_RelayedOver() + MarshalTo([]byte) (int, error) + Size() int +} + +type Connection_ConnId struct { + ConnId string `protobuf:"bytes,16,opt,name=conn_id,json=connId,proto3,oneof"` +} +type Connection_Conn struct { + Conn *Connection `protobuf:"bytes,17,opt,name=conn,proto3,oneof"` +} + +func (*Connection_ConnId) isConnection_RelayedOver() {} +func (*Connection_Conn) isConnection_RelayedOver() {} + +func (m *Connection) GetRelayedOver() isConnection_RelayedOver { + if m != nil { + return m.RelayedOver + } + return nil +} + +func (m *Connection) GetId() string { + if m != nil { + return m.Id + } + return "" +} + +func (m *Connection) GetPeerId() string { + if m != nil { + return m.PeerId + } + return "" +} + +func (m *Connection) GetStatus() Status { + if m != nil { + return m.Status + } + return Status_ACTIVE +} + +func (m *Connection) GetTransportId() []byte { + if m != nil { + return m.TransportId + } + return nil +} + +func (m *Connection) GetEndpoints() *EndpointPair { + if m != nil { + return m.Endpoints + } + return nil +} + +func (m *Connection) GetTimeline() *Connection_Timeline { + if m != nil { + return m.Timeline + } + return nil +} + +func (m *Connection) GetRole() Role { + if m != nil { + return m.Role + } + return Role_INITIATOR +} + +func (m *Connection) GetTraffic() *Traffic { + if m != nil { + return m.Traffic + } + return nil +} + +func (m *Connection) GetAttribs() *Connection_Attributes { + if m != nil { + return m.Attribs + } + return nil +} + +func (m *Connection) GetLatencyNs() uint64 { + if m != nil { + return m.LatencyNs + } + return 0 +} + +func (m *Connection) GetStreams() *StreamList { + if m != nil { + return m.Streams + } + return nil +} + +func (m *Connection) GetConnId() string { + if x, ok := m.GetRelayedOver().(*Connection_ConnId); ok { + return x.ConnId + } + return "" +} + +func (m *Connection) GetConn() *Connection { + if x, ok := m.GetRelayedOver().(*Connection_Conn); ok { + return x.Conn + } + return nil +} + +func (m *Connection) GetUserProvidedTags() []string { + if m != nil { + return m.UserProvidedTags + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Connection) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Connection_OneofMarshaler, _Connection_OneofUnmarshaler, _Connection_OneofSizer, []interface{}{ + (*Connection_ConnId)(nil), + (*Connection_Conn)(nil), + } +} + +func _Connection_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Connection) + // relayed_over + switch x := m.RelayedOver.(type) { + case *Connection_ConnId: + _ = b.EncodeVarint(16<<3 | proto.WireBytes) + _ = b.EncodeStringBytes(x.ConnId) + case *Connection_Conn: + _ = b.EncodeVarint(17<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Conn); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Connection.RelayedOver has unexpected type %T", x) + } + return nil +} + +func _Connection_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Connection) + switch tag { + case 16: // relayed_over.conn_id + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.RelayedOver = &Connection_ConnId{x} + return true, err + case 17: // relayed_over.conn + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Connection) + err := b.DecodeMessage(msg) + m.RelayedOver = &Connection_Conn{msg} + return true, err + default: + return false, nil + } +} + +func _Connection_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Connection) + // relayed_over + switch x := m.RelayedOver.(type) { + case *Connection_ConnId: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(len(x.ConnId))) + n += len(x.ConnId) + case *Connection_Conn: + s := proto.Size(x.Conn) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Timeline contains the timestamps of the well-known milestones of a connection. +type Connection_Timeline struct { + // the instant when a connection was opened on the wire. + OpenTs *time.Time `protobuf:"bytes,1,opt,name=open_ts,json=openTs,proto3,stdtime" json:"open_ts,omitempty"` + // the instant when the upgrade process (handshake, security, multiplexing) finished. + UpgradedTs *time.Time `protobuf:"bytes,2,opt,name=upgraded_ts,json=upgradedTs,proto3,stdtime" json:"upgraded_ts,omitempty"` + // the instant when this connection was terminated. + CloseTs *time.Time `protobuf:"bytes,3,opt,name=close_ts,json=closeTs,proto3,stdtime" json:"close_ts,omitempty"` +} + +func (m *Connection_Timeline) Reset() { *m = Connection_Timeline{} } +func (m *Connection_Timeline) String() string { return proto.CompactTextString(m) } +func (*Connection_Timeline) ProtoMessage() {} +func (*Connection_Timeline) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{8, 0} +} +func (m *Connection_Timeline) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Connection_Timeline) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Connection_Timeline.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 *Connection_Timeline) XXX_Merge(src proto.Message) { + xxx_messageInfo_Connection_Timeline.Merge(m, src) +} +func (m *Connection_Timeline) XXX_Size() int { + return m.Size() +} +func (m *Connection_Timeline) XXX_DiscardUnknown() { + xxx_messageInfo_Connection_Timeline.DiscardUnknown(m) +} + +var xxx_messageInfo_Connection_Timeline proto.InternalMessageInfo + +func (m *Connection_Timeline) GetOpenTs() *time.Time { + if m != nil { + return m.OpenTs + } + return nil +} + +func (m *Connection_Timeline) GetUpgradedTs() *time.Time { + if m != nil { + return m.UpgradedTs + } + return nil +} + +func (m *Connection_Timeline) GetCloseTs() *time.Time { + if m != nil { + return m.CloseTs + } + return nil +} + +// Attributes encapsulates the attributes of this connection. +type Connection_Attributes struct { + // the multiplexer being used. + Multiplexer string `protobuf:"bytes,1,opt,name=multiplexer,proto3" json:"multiplexer,omitempty"` + // the encryption method being used. + Encryption string `protobuf:"bytes,2,opt,name=encryption,proto3" json:"encryption,omitempty"` +} + +func (m *Connection_Attributes) Reset() { *m = Connection_Attributes{} } +func (m *Connection_Attributes) String() string { return proto.CompactTextString(m) } +func (*Connection_Attributes) ProtoMessage() {} +func (*Connection_Attributes) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{8, 1} +} +func (m *Connection_Attributes) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Connection_Attributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Connection_Attributes.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 *Connection_Attributes) XXX_Merge(src proto.Message) { + xxx_messageInfo_Connection_Attributes.Merge(m, src) +} +func (m *Connection_Attributes) XXX_Size() int { + return m.Size() +} +func (m *Connection_Attributes) XXX_DiscardUnknown() { + xxx_messageInfo_Connection_Attributes.DiscardUnknown(m) +} + +var xxx_messageInfo_Connection_Attributes proto.InternalMessageInfo + +func (m *Connection_Attributes) GetMultiplexer() string { + if m != nil { + return m.Multiplexer + } + return "" +} + +func (m *Connection_Attributes) GetEncryption() string { + if m != nil { + return m.Encryption + } + return "" +} + +// Stream reports metrics and state of a libp2p stream. +type Stream struct { + // the id of this stream, not to be shown in user tooling, + // used for (cross)referencing streams. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // the protocol pinned to this stream. + Protocol string `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` + // our role in this stream. + Role Role `protobuf:"varint,3,opt,name=role,proto3,enum=introspect.pb.Role" json:"role,omitempty"` + // traffic statistics. + Traffic *Traffic `protobuf:"bytes,4,opt,name=traffic,proto3" json:"traffic,omitempty"` + // the connection this stream is hosted under. + Conn *Stream_ConnectionRef `protobuf:"bytes,5,opt,name=conn,proto3" json:"conn,omitempty"` + // the timeline of the stream, see Stream.Timeline. + Timeline *Stream_Timeline `protobuf:"bytes,6,opt,name=timeline,proto3" json:"timeline,omitempty"` + // the status of this stream. + Status Status `protobuf:"varint,7,opt,name=status,proto3,enum=introspect.pb.Status" json:"status,omitempty"` + // the instantaneous latency of this stream in nanoseconds. + // TODO: this is hard to calculate. + LatencyNs uint64 `protobuf:"varint,16,opt,name=latency_ns,json=latencyNs,proto3" json:"latency_ns,omitempty"` + // user provided tags. + UserProvidedTags []string `protobuf:"bytes,99,rep,name=user_provided_tags,json=userProvidedTags,proto3" json:"user_provided_tags,omitempty"` +} + +func (m *Stream) Reset() { *m = Stream{} } +func (m *Stream) String() string { return proto.CompactTextString(m) } +func (*Stream) ProtoMessage() {} +func (*Stream) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{9} +} +func (m *Stream) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Stream) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Stream.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 *Stream) XXX_Merge(src proto.Message) { + xxx_messageInfo_Stream.Merge(m, src) +} +func (m *Stream) XXX_Size() int { + return m.Size() +} +func (m *Stream) XXX_DiscardUnknown() { + xxx_messageInfo_Stream.DiscardUnknown(m) +} + +var xxx_messageInfo_Stream proto.InternalMessageInfo + +func (m *Stream) GetId() string { + if m != nil { + return m.Id + } + return "" +} + +func (m *Stream) GetProtocol() string { + if m != nil { + return m.Protocol + } + return "" +} + +func (m *Stream) GetRole() Role { + if m != nil { + return m.Role + } + return Role_INITIATOR +} + +func (m *Stream) GetTraffic() *Traffic { + if m != nil { + return m.Traffic + } + return nil +} + +func (m *Stream) GetConn() *Stream_ConnectionRef { + if m != nil { + return m.Conn + } + return nil +} + +func (m *Stream) GetTimeline() *Stream_Timeline { + if m != nil { + return m.Timeline + } + return nil +} + +func (m *Stream) GetStatus() Status { + if m != nil { + return m.Status + } + return Status_ACTIVE +} + +func (m *Stream) GetLatencyNs() uint64 { + if m != nil { + return m.LatencyNs + } + return 0 +} + +func (m *Stream) GetUserProvidedTags() []string { + if m != nil { + return m.UserProvidedTags + } + return nil +} + +type Stream_ConnectionRef struct { + // Types that are valid to be assigned to Connection: + // *Stream_ConnectionRef_Conn + // *Stream_ConnectionRef_ConnId + Connection isStream_ConnectionRef_Connection `protobuf_oneof:"connection"` +} + +func (m *Stream_ConnectionRef) Reset() { *m = Stream_ConnectionRef{} } +func (m *Stream_ConnectionRef) String() string { return proto.CompactTextString(m) } +func (*Stream_ConnectionRef) ProtoMessage() {} +func (*Stream_ConnectionRef) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{9, 0} +} +func (m *Stream_ConnectionRef) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Stream_ConnectionRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Stream_ConnectionRef.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 *Stream_ConnectionRef) XXX_Merge(src proto.Message) { + xxx_messageInfo_Stream_ConnectionRef.Merge(m, src) +} +func (m *Stream_ConnectionRef) XXX_Size() int { + return m.Size() +} +func (m *Stream_ConnectionRef) XXX_DiscardUnknown() { + xxx_messageInfo_Stream_ConnectionRef.DiscardUnknown(m) +} + +var xxx_messageInfo_Stream_ConnectionRef proto.InternalMessageInfo + +type isStream_ConnectionRef_Connection interface { + isStream_ConnectionRef_Connection() + MarshalTo([]byte) (int, error) + Size() int +} + +type Stream_ConnectionRef_Conn struct { + Conn *Connection `protobuf:"bytes,1,opt,name=conn,proto3,oneof"` +} +type Stream_ConnectionRef_ConnId struct { + ConnId string `protobuf:"bytes,2,opt,name=conn_id,json=connId,proto3,oneof"` +} + +func (*Stream_ConnectionRef_Conn) isStream_ConnectionRef_Connection() {} +func (*Stream_ConnectionRef_ConnId) isStream_ConnectionRef_Connection() {} + +func (m *Stream_ConnectionRef) GetConnection() isStream_ConnectionRef_Connection { + if m != nil { + return m.Connection + } + return nil +} + +func (m *Stream_ConnectionRef) GetConn() *Connection { + if x, ok := m.GetConnection().(*Stream_ConnectionRef_Conn); ok { + return x.Conn + } + return nil +} + +func (m *Stream_ConnectionRef) GetConnId() string { + if x, ok := m.GetConnection().(*Stream_ConnectionRef_ConnId); ok { + return x.ConnId + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Stream_ConnectionRef) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Stream_ConnectionRef_OneofMarshaler, _Stream_ConnectionRef_OneofUnmarshaler, _Stream_ConnectionRef_OneofSizer, []interface{}{ + (*Stream_ConnectionRef_Conn)(nil), + (*Stream_ConnectionRef_ConnId)(nil), + } +} + +func _Stream_ConnectionRef_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Stream_ConnectionRef) + // connection + switch x := m.Connection.(type) { + case *Stream_ConnectionRef_Conn: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Conn); err != nil { + return err + } + case *Stream_ConnectionRef_ConnId: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + _ = b.EncodeStringBytes(x.ConnId) + case nil: + default: + return fmt.Errorf("Stream_ConnectionRef.Connection has unexpected type %T", x) + } + return nil +} + +func _Stream_ConnectionRef_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Stream_ConnectionRef) + switch tag { + case 1: // connection.conn + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Connection) + err := b.DecodeMessage(msg) + m.Connection = &Stream_ConnectionRef_Conn{msg} + return true, err + case 2: // connection.conn_id + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Connection = &Stream_ConnectionRef_ConnId{x} + return true, err + default: + return false, nil + } +} + +func _Stream_ConnectionRef_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Stream_ConnectionRef) + // connection + switch x := m.Connection.(type) { + case *Stream_ConnectionRef_Conn: + s := proto.Size(x.Conn) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Stream_ConnectionRef_ConnId: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.ConnId))) + n += len(x.ConnId) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Timeline contains the timestamps of the well-known milestones of a stream. +type Stream_Timeline struct { + // the instant when the stream was opened. + OpenTs *time.Time `protobuf:"bytes,1,opt,name=open_ts,json=openTs,proto3,stdtime" json:"open_ts,omitempty"` + // the instant when the stream was terminated. + CloseTs *time.Time `protobuf:"bytes,2,opt,name=close_ts,json=closeTs,proto3,stdtime" json:"close_ts,omitempty"` +} + +func (m *Stream_Timeline) Reset() { *m = Stream_Timeline{} } +func (m *Stream_Timeline) String() string { return proto.CompactTextString(m) } +func (*Stream_Timeline) ProtoMessage() {} +func (*Stream_Timeline) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{9, 1} +} +func (m *Stream_Timeline) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Stream_Timeline) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Stream_Timeline.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 *Stream_Timeline) XXX_Merge(src proto.Message) { + xxx_messageInfo_Stream_Timeline.Merge(m, src) +} +func (m *Stream_Timeline) XXX_Size() int { + return m.Size() +} +func (m *Stream_Timeline) XXX_DiscardUnknown() { + xxx_messageInfo_Stream_Timeline.DiscardUnknown(m) +} + +var xxx_messageInfo_Stream_Timeline proto.InternalMessageInfo + +func (m *Stream_Timeline) GetOpenTs() *time.Time { + if m != nil { + return m.OpenTs + } + return nil +} + +func (m *Stream_Timeline) GetCloseTs() *time.Time { + if m != nil { + return m.CloseTs + } + return nil +} + +// DHT metrics and state. +type DHT struct { + // DHT protocol name + Protocol string `protobuf:"bytes,1,opt,name=protocol,proto3" json:"protocol,omitempty"` + // protocol enabled. + Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"` + // timestap of start up. + StartTs *time.Time `protobuf:"bytes,3,opt,name=start_ts,json=startTs,proto3,stdtime" json:"start_ts,omitempty"` + // params of the dht. + Params *DHT_Params `protobuf:"bytes,4,opt,name=params,proto3" json:"params,omitempty"` + // queries data + Query []*DHT_Query `protobuf:"bytes,5,rep,name=query,proto3" json:"query,omitempty"` +} + +func (m *DHT) Reset() { *m = DHT{} } +func (m *DHT) String() string { return proto.CompactTextString(m) } +func (*DHT) ProtoMessage() {} +func (*DHT) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{10} +} +func (m *DHT) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DHT) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DHT.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 *DHT) XXX_Merge(src proto.Message) { + xxx_messageInfo_DHT.Merge(m, src) +} +func (m *DHT) XXX_Size() int { + return m.Size() +} +func (m *DHT) XXX_DiscardUnknown() { + xxx_messageInfo_DHT.DiscardUnknown(m) +} + +var xxx_messageInfo_DHT proto.InternalMessageInfo + +func (m *DHT) GetProtocol() string { + if m != nil { + return m.Protocol + } + return "" +} + +func (m *DHT) GetEnabled() bool { + if m != nil { + return m.Enabled + } + return false +} + +func (m *DHT) GetStartTs() *time.Time { + if m != nil { + return m.StartTs + } + return nil +} + +func (m *DHT) GetParams() *DHT_Params { + if m != nil { + return m.Params + } + return nil +} + +func (m *DHT) GetQuery() []*DHT_Query { + if m != nil { + return m.Query + } + return nil +} + +type DHT_Params struct { + // maximum number of requests to perform. + K uint64 `protobuf:"varint,1,opt,name=k,proto3" json:"k,omitempty"` + // concurrency of asynchronous requests. + Alpha uint64 `protobuf:"varint,2,opt,name=alpha,proto3" json:"alpha,omitempty"` + // number of disjoint paths to use. + DisjointPaths uint64 `protobuf:"varint,3,opt,name=disjoint_paths,json=disjointPaths,proto3" json:"disjoint_paths,omitempty"` +} + +func (m *DHT_Params) Reset() { *m = DHT_Params{} } +func (m *DHT_Params) String() string { return proto.CompactTextString(m) } +func (*DHT_Params) ProtoMessage() {} +func (*DHT_Params) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{10, 0} +} +func (m *DHT_Params) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DHT_Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DHT_Params.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 *DHT_Params) XXX_Merge(src proto.Message) { + xxx_messageInfo_DHT_Params.Merge(m, src) +} +func (m *DHT_Params) XXX_Size() int { + return m.Size() +} +func (m *DHT_Params) XXX_DiscardUnknown() { + xxx_messageInfo_DHT_Params.DiscardUnknown(m) +} + +var xxx_messageInfo_DHT_Params proto.InternalMessageInfo + +func (m *DHT_Params) GetK() uint64 { + if m != nil { + return m.K + } + return 0 +} + +func (m *DHT_Params) GetAlpha() uint64 { + if m != nil { + return m.Alpha + } + return 0 +} + +func (m *DHT_Params) GetDisjointPaths() uint64 { + if m != nil { + return m.DisjointPaths + } + return 0 +} + +type DHT_Query struct { + // id of the query; used for internal referencing (<== TODO: confirm this) + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // id of the peer being sought by this query + TargetPeerId string `protobuf:"bytes,2,opt,name=target_peer_id,json=targetPeerId,proto3" json:"target_peer_id,omitempty"` + // total time of the query in miliseconds + TotalTimeMs uint64 `protobuf:"varint,3,opt,name=total_time_ms,json=totalTimeMs,proto3" json:"total_time_ms,omitempty"` + // number of iterative lookups before reaching result + TotalSteps uint64 `protobuf:"varint,4,opt,name=total_steps,json=totalSteps,proto3" json:"total_steps,omitempty"` + // peers queried. + PeerIds []string `protobuf:"bytes,5,rep,name=peer_ids,json=peerIds,proto3" json:"peer_ids,omitempty"` + // trigger of the query + Trigger DHT_Query_Trigger `protobuf:"varint,6,opt,name=trigger,proto3,enum=introspect.pb.DHT_Query_Trigger" json:"trigger,omitempty"` + // type of the query. + Type DHT_Query_Type `protobuf:"varint,7,opt,name=type,proto3,enum=introspect.pb.DHT_Query_Type" json:"type,omitempty"` + // status indicating the result of the query + Result DHT_Query_Result `protobuf:"varint,8,opt,name=result,proto3,enum=introspect.pb.DHT_Query_Result" json:"result,omitempty"` + // time query was dispatched + SentTs *time.Time `protobuf:"bytes,9,opt,name=sent_ts,json=sentTs,proto3,stdtime" json:"sent_ts,omitempty"` +} + +func (m *DHT_Query) Reset() { *m = DHT_Query{} } +func (m *DHT_Query) String() string { return proto.CompactTextString(m) } +func (*DHT_Query) ProtoMessage() {} +func (*DHT_Query) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{10, 1} +} +func (m *DHT_Query) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DHT_Query) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DHT_Query.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 *DHT_Query) XXX_Merge(src proto.Message) { + xxx_messageInfo_DHT_Query.Merge(m, src) +} +func (m *DHT_Query) XXX_Size() int { + return m.Size() +} +func (m *DHT_Query) XXX_DiscardUnknown() { + xxx_messageInfo_DHT_Query.DiscardUnknown(m) +} + +var xxx_messageInfo_DHT_Query proto.InternalMessageInfo + +func (m *DHT_Query) GetId() string { + if m != nil { + return m.Id + } + return "" +} + +func (m *DHT_Query) GetTargetPeerId() string { + if m != nil { + return m.TargetPeerId + } + return "" +} + +func (m *DHT_Query) GetTotalTimeMs() uint64 { + if m != nil { + return m.TotalTimeMs + } + return 0 +} + +func (m *DHT_Query) GetTotalSteps() uint64 { + if m != nil { + return m.TotalSteps + } + return 0 +} + +func (m *DHT_Query) GetPeerIds() []string { + if m != nil { + return m.PeerIds + } + return nil +} + +func (m *DHT_Query) GetTrigger() DHT_Query_Trigger { + if m != nil { + return m.Trigger + } + return DHT_Query_API +} + +func (m *DHT_Query) GetType() DHT_Query_Type { + if m != nil { + return m.Type + } + return DHT_Query_CONTENT +} + +func (m *DHT_Query) GetResult() DHT_Query_Result { + if m != nil { + return m.Result + } + return DHT_Query_SUCCESS +} + +func (m *DHT_Query) GetSentTs() *time.Time { + if m != nil { + return m.SentTs + } + return nil +} + +// Subsystems encapsulates all instrumented subsystems for a libp2p host. +type Subsystems struct { + // connections data, source agnostic but currently only supports the Swarm subsystem + Connections []*Connection `protobuf:"bytes,1,rep,name=connections,proto3" json:"connections,omitempty"` + // the DHT subsystem. + Dht *DHT `protobuf:"bytes,2,opt,name=dht,proto3" json:"dht,omitempty"` +} + +func (m *Subsystems) Reset() { *m = Subsystems{} } +func (m *Subsystems) String() string { return proto.CompactTextString(m) } +func (*Subsystems) ProtoMessage() {} +func (*Subsystems) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{11} +} +func (m *Subsystems) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Subsystems) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Subsystems.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 *Subsystems) XXX_Merge(src proto.Message) { + xxx_messageInfo_Subsystems.Merge(m, src) +} +func (m *Subsystems) XXX_Size() int { + return m.Size() +} +func (m *Subsystems) XXX_DiscardUnknown() { + xxx_messageInfo_Subsystems.DiscardUnknown(m) +} + +var xxx_messageInfo_Subsystems proto.InternalMessageInfo + +func (m *Subsystems) GetConnections() []*Connection { + if m != nil { + return m.Connections + } + return nil +} + +func (m *Subsystems) GetDht() *DHT { + if m != nil { + return m.Dht + } + return nil +} + +// Connections and streams output for a time interval is one of these. +type State struct { + // Version of this protobuf + Version *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // system information + Runtime *Runtime `protobuf:"bytes,2,opt,name=runtime,proto3" json:"runtime,omitempty"` + // list of connections + Subsystems *Subsystems `protobuf:"bytes,3,opt,name=subsystems,proto3" json:"subsystems,omitempty"` + // overall traffic for this peer + Traffic *Traffic `protobuf:"bytes,4,opt,name=traffic,proto3" json:"traffic,omitempty"` + // moment this data snapshot and instantaneous values were taken + InstantTs *types.Timestamp `protobuf:"bytes,5,opt,name=instant_ts,json=instantTs,proto3" json:"instant_ts,omitempty"` + // start of included data collection (cumulative values counted from here) + StartTs *types.Timestamp `protobuf:"bytes,6,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"` + // length of time up to instant_ts covered by this data snapshot + SnapshotDurationMs uint32 `protobuf:"varint,7,opt,name=snapshot_duration_ms,json=snapshotDurationMs,proto3" json:"snapshot_duration_ms,omitempty"` +} + +func (m *State) Reset() { *m = State{} } +func (m *State) String() string { return proto.CompactTextString(m) } +func (*State) ProtoMessage() {} +func (*State) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{12} +} +func (m *State) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *State) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_State.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 *State) XXX_Merge(src proto.Message) { + xxx_messageInfo_State.Merge(m, src) +} +func (m *State) XXX_Size() int { + return m.Size() +} +func (m *State) XXX_DiscardUnknown() { + xxx_messageInfo_State.DiscardUnknown(m) +} + +var xxx_messageInfo_State proto.InternalMessageInfo + +func (m *State) GetVersion() *Version { + if m != nil { + return m.Version + } + return nil +} + +func (m *State) GetRuntime() *Runtime { + if m != nil { + return m.Runtime + } + return nil +} + +func (m *State) GetSubsystems() *Subsystems { + if m != nil { + return m.Subsystems + } + return nil +} + +func (m *State) GetTraffic() *Traffic { + if m != nil { + return m.Traffic + } + return nil +} + +func (m *State) GetInstantTs() *types.Timestamp { + if m != nil { + return m.InstantTs + } + return nil +} + +func (m *State) GetStartTs() *types.Timestamp { + if m != nil { + return m.StartTs + } + return nil +} + +func (m *State) GetSnapshotDurationMs() uint32 { + if m != nil { + return m.SnapshotDurationMs + } + return 0 +} + +func init() { + proto.RegisterEnum("introspect.pb.Status", Status_name, Status_value) + proto.RegisterEnum("introspect.pb.Role", Role_name, Role_value) + proto.RegisterEnum("introspect.pb.DHT_Query_Trigger", DHT_Query_Trigger_name, DHT_Query_Trigger_value) + proto.RegisterEnum("introspect.pb.DHT_Query_Type", DHT_Query_Type_name, DHT_Query_Type_value) + proto.RegisterEnum("introspect.pb.DHT_Query_Result", DHT_Query_Result_name, DHT_Query_Result_value) + proto.RegisterType((*Version)(nil), "introspect.pb.Version") + proto.RegisterType((*ResultCounter)(nil), "introspect.pb.ResultCounter") + proto.RegisterType((*SlidingCounter)(nil), "introspect.pb.SlidingCounter") + proto.RegisterType((*DataGauge)(nil), "introspect.pb.DataGauge") + proto.RegisterType((*Runtime)(nil), "introspect.pb.Runtime") + proto.RegisterType((*EndpointPair)(nil), "introspect.pb.EndpointPair") + proto.RegisterType((*Traffic)(nil), "introspect.pb.Traffic") + proto.RegisterType((*StreamList)(nil), "introspect.pb.StreamList") + proto.RegisterType((*Connection)(nil), "introspect.pb.Connection") + proto.RegisterType((*Connection_Timeline)(nil), "introspect.pb.Connection.Timeline") + proto.RegisterType((*Connection_Attributes)(nil), "introspect.pb.Connection.Attributes") + proto.RegisterType((*Stream)(nil), "introspect.pb.Stream") + proto.RegisterType((*Stream_ConnectionRef)(nil), "introspect.pb.Stream.ConnectionRef") + proto.RegisterType((*Stream_Timeline)(nil), "introspect.pb.Stream.Timeline") + proto.RegisterType((*DHT)(nil), "introspect.pb.DHT") + proto.RegisterType((*DHT_Params)(nil), "introspect.pb.DHT.Params") + proto.RegisterType((*DHT_Query)(nil), "introspect.pb.DHT.Query") + proto.RegisterType((*Subsystems)(nil), "introspect.pb.Subsystems") + proto.RegisterType((*State)(nil), "introspect.pb.State") +} + +func init() { proto.RegisterFile("introspection.proto", fileDescriptor_53a8bedf9a75e10a) } + +var fileDescriptor_53a8bedf9a75e10a = []byte{ + // 1686 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4b, 0x8f, 0x1b, 0xc7, + 0x11, 0xe6, 0x63, 0x96, 0xc3, 0x29, 0x72, 0x09, 0xa6, 0xed, 0x38, 0x14, 0x0d, 0xaf, 0xe4, 0xb1, + 0x92, 0x08, 0x86, 0x4d, 0xed, 0x52, 0x16, 0xe4, 0x55, 0x00, 0x03, 0xfb, 0x20, 0x24, 0x06, 0x12, + 0xc9, 0x34, 0x47, 0x8b, 0x04, 0x08, 0x30, 0x18, 0x72, 0x7a, 0xc9, 0xc9, 0xce, 0x2b, 0xdd, 0x3d, + 0x72, 0xf6, 0x10, 0x20, 0xc8, 0x3d, 0x80, 0xaf, 0xb9, 0xe4, 0xb7, 0xe4, 0x12, 0x20, 0x47, 0x1f, + 0x73, 0x4b, 0x20, 0xfd, 0x81, 0xfc, 0x80, 0x1c, 0x82, 0xee, 0x9e, 0xd7, 0x72, 0x29, 0x69, 0x15, + 0xe4, 0x36, 0x55, 0xf5, 0x55, 0x3f, 0xaa, 0xbe, 0xaa, 0xae, 0x81, 0x0f, 0xbc, 0x90, 0xd3, 0x88, + 0xc5, 0x64, 0xc9, 0xbd, 0x28, 0x1c, 0xc4, 0x34, 0xe2, 0x11, 0xda, 0x2d, 0x94, 0x83, 0x78, 0xd1, + 0xff, 0x72, 0xe5, 0xf1, 0x75, 0xb2, 0x18, 0x2c, 0xa3, 0xe0, 0xfe, 0x2a, 0x5a, 0x45, 0xf7, 0x25, + 0x6a, 0x91, 0x9c, 0x4b, 0x49, 0x0a, 0xf2, 0x4b, 0x79, 0xf7, 0x6f, 0xaf, 0xa2, 0x68, 0xe5, 0x93, + 0x02, 0xc5, 0xbd, 0x80, 0x30, 0xee, 0x04, 0xb1, 0x02, 0x98, 0x9f, 0x82, 0x7e, 0x46, 0x28, 0xf3, + 0xa2, 0x10, 0x7d, 0x04, 0x8d, 0x30, 0x09, 0x16, 0x84, 0xf6, 0xaa, 0x77, 0xaa, 0xf7, 0x76, 0x71, + 0x2a, 0x99, 0x4f, 0x60, 0x17, 0x13, 0x96, 0xf8, 0xfc, 0x24, 0x4a, 0x42, 0x4e, 0x28, 0xfa, 0x10, + 0x76, 0x78, 0xc4, 0x1d, 0x3f, 0xc5, 0x29, 0x01, 0x75, 0xa0, 0x16, 0x5d, 0xf4, 0x6a, 0x52, 0x55, + 0x8b, 0x2e, 0x50, 0x17, 0xea, 0x84, 0xd2, 0x5e, 0x5d, 0x2a, 0xc4, 0xa7, 0xf9, 0x97, 0x1a, 0x74, + 0xe6, 0xbe, 0xe7, 0x7a, 0xe1, 0x2a, 0x5b, 0xea, 0x47, 0xa0, 0x47, 0x2f, 0x09, 0xb5, 0x0f, 0x82, + 0x6c, 0x53, 0x21, 0x1e, 0x04, 0xb9, 0xe1, 0x61, 0x90, 0x2e, 0x29, 0x0d, 0x0f, 0x03, 0x74, 0x0b, + 0x9a, 0xca, 0xe3, 0x61, 0x90, 0xae, 0x2d, 0x81, 0x07, 0x25, 0xd3, 0x83, 0xfd, 0xa0, 0xa7, 0x15, + 0xa6, 0x07, 0xfb, 0x25, 0xaf, 0x35, 0xed, 0xed, 0x94, 0xbc, 0xd6, 0x34, 0x37, 0x0d, 0xd7, 0xb4, + 0xd7, 0x28, 0x4c, 0xc3, 0x92, 0xe9, 0xab, 0x35, 0xed, 0xe9, 0x85, 0xe9, 0xab, 0x92, 0xe9, 0xeb, + 0x35, 0xed, 0x35, 0x0b, 0xd3, 0xd7, 0x6b, 0x8a, 0x3e, 0x06, 0x43, 0xed, 0x25, 0x56, 0x34, 0xa4, + 0x4d, 0x62, 0x85, 0x9c, 0x1b, 0x87, 0x62, 0x4d, 0x28, 0x8c, 0x42, 0x36, 0x17, 0x60, 0x9c, 0x3a, + 0xdc, 0x79, 0xe2, 0x24, 0x2b, 0x22, 0x90, 0xcb, 0x24, 0xb0, 0x17, 0x97, 0x9c, 0x30, 0x19, 0x1c, + 0x0d, 0x37, 0x97, 0x49, 0x70, 0x2c, 0x64, 0x74, 0x1b, 0x5a, 0xc2, 0x18, 0x3b, 0xcb, 0x0b, 0xc2, + 0x99, 0x0c, 0x91, 0x86, 0x61, 0x99, 0x04, 0x33, 0xa5, 0x11, 0xf1, 0xf3, 0x42, 0xc6, 0xed, 0xc5, + 0xb7, 0x32, 0x4a, 0x1a, 0x6e, 0x08, 0xf1, 0xf8, 0x5b, 0xf3, 0x0f, 0x55, 0xd0, 0x71, 0x12, 0x0a, + 0x1e, 0xa0, 0x9f, 0x40, 0xc7, 0x0b, 0x62, 0x9f, 0x04, 0x24, 0xe4, 0x8e, 0xe0, 0x9c, 0xdc, 0xc7, + 0xc0, 0x1b, 0x5a, 0xd4, 0x03, 0xfd, 0xa5, 0x22, 0x89, 0xdc, 0xc9, 0xc0, 0x99, 0x88, 0xfa, 0xd0, + 0x8c, 0x7d, 0x87, 0x9f, 0x47, 0x54, 0x65, 0xc3, 0xc0, 0xb9, 0x2c, 0x8e, 0x10, 0x13, 0x42, 0x6d, + 0xcf, 0x95, 0xd9, 0x30, 0x70, 0x43, 0x88, 0x63, 0xd7, 0xfc, 0x25, 0xb4, 0x47, 0xa1, 0x1b, 0x47, + 0x5e, 0xc8, 0x67, 0x8e, 0x47, 0xd1, 0x67, 0xb0, 0xcb, 0xe8, 0xd2, 0x0e, 0x12, 0x9f, 0x7b, 0x8e, + 0xeb, 0xd2, 0xf4, 0x14, 0x6d, 0x46, 0x97, 0xcf, 0x33, 0x9d, 0x00, 0xb9, 0x8c, 0x97, 0x40, 0xea, + 0x24, 0x6d, 0x97, 0xf1, 0x1c, 0x64, 0xfe, 0x1e, 0x74, 0x8b, 0x3a, 0xe7, 0xe7, 0xde, 0x12, 0x3d, + 0x02, 0xe0, 0xea, 0xd3, 0xf6, 0xd4, 0xbd, 0x5a, 0xc3, 0xde, 0xe0, 0x4a, 0x31, 0x0d, 0xf2, 0x60, + 0x63, 0x23, 0xc5, 0x8e, 0x43, 0x74, 0x08, 0xad, 0xcc, 0x31, 0x4a, 0xb8, 0xdc, 0xe6, 0x6d, 0x9e, + 0xd9, 0x2e, 0xd3, 0x84, 0x9b, 0xbf, 0x06, 0x98, 0x73, 0x4a, 0x9c, 0xe0, 0x99, 0xc7, 0x38, 0xfa, + 0x04, 0x80, 0x49, 0xc9, 0xf6, 0x5c, 0x91, 0xc1, 0xfa, 0xbd, 0x36, 0x36, 0x94, 0x66, 0xec, 0x32, + 0x74, 0x1f, 0x74, 0x25, 0x88, 0xf4, 0xd5, 0xef, 0xb5, 0x86, 0x3f, 0xdc, 0xd8, 0x43, 0x2d, 0x85, + 0x33, 0x94, 0xf9, 0x67, 0x1d, 0xe0, 0x24, 0x0a, 0x43, 0xd5, 0x1e, 0x44, 0xbd, 0x79, 0x6e, 0x1a, + 0xaa, 0x9a, 0xe7, 0x96, 0xc3, 0x5d, 0x2b, 0x87, 0x1b, 0x7d, 0x09, 0x0d, 0xc6, 0x1d, 0x9e, 0x30, + 0x99, 0xa1, 0xce, 0x96, 0x7d, 0x84, 0x11, 0xa7, 0x20, 0xf4, 0x29, 0xb4, 0x39, 0x75, 0x42, 0x16, + 0x47, 0x94, 0x67, 0xb9, 0x6b, 0xe3, 0x56, 0xae, 0x1b, 0xbb, 0xe8, 0x10, 0x0c, 0x92, 0x26, 0x90, + 0xc9, 0x72, 0x6a, 0x0d, 0x3f, 0xde, 0x58, 0xb4, 0x9c, 0x60, 0x5c, 0xa0, 0xd1, 0x37, 0xd0, 0x14, + 0xd4, 0xf3, 0xbd, 0x90, 0xc8, 0x6a, 0x6b, 0x0d, 0xcd, 0x0d, 0xcf, 0xe2, 0x8a, 0x03, 0x2b, 0x45, + 0xe2, 0xdc, 0x07, 0xfd, 0x14, 0x34, 0x1a, 0xf9, 0x44, 0x96, 0x63, 0x67, 0xf8, 0xc1, 0x86, 0x2f, + 0x8e, 0x7c, 0x82, 0x25, 0x00, 0xed, 0x83, 0x9e, 0x66, 0x46, 0xd6, 0x67, 0x6b, 0xf8, 0xd1, 0x06, + 0x36, 0x25, 0x0a, 0xce, 0x60, 0xe8, 0x1b, 0xd0, 0x1d, 0xce, 0xa9, 0xb7, 0x60, 0xb2, 0x6a, 0x5b, + 0xc3, 0xbb, 0x6f, 0x3e, 0xd9, 0x91, 0x04, 0x26, 0x9c, 0x30, 0x9c, 0x39, 0x89, 0x7c, 0xfb, 0x0e, + 0x27, 0xe1, 0xf2, 0xd2, 0x0e, 0x99, 0xac, 0x6d, 0x0d, 0x1b, 0xa9, 0x66, 0xc2, 0xd0, 0x83, 0x22, + 0xdf, 0x2d, 0xb9, 0xfc, 0xad, 0xad, 0xf9, 0x16, 0xd4, 0xc9, 0x73, 0x8e, 0x6e, 0x81, 0xbe, 0x8c, + 0xc2, 0x50, 0xe4, 0xa1, 0x2b, 0x92, 0xfa, 0xb4, 0x82, 0x1b, 0x42, 0x31, 0x76, 0xd1, 0x7d, 0xd0, + 0xc4, 0x57, 0xef, 0x07, 0x5b, 0x17, 0x2b, 0xce, 0xfa, 0xb4, 0x82, 0x25, 0x10, 0x7d, 0x01, 0x28, + 0x61, 0x84, 0xda, 0x31, 0x8d, 0x5e, 0x7a, 0x2e, 0x71, 0x6d, 0xee, 0xac, 0x58, 0x6f, 0x79, 0xa7, + 0x7e, 0xcf, 0xc0, 0x5d, 0x61, 0x99, 0xa5, 0x06, 0xcb, 0x59, 0xb1, 0xfe, 0xdf, 0xaa, 0xd0, 0xcc, + 0xe2, 0x8f, 0x0e, 0x41, 0x8f, 0x62, 0x12, 0xda, 0x9c, 0xa5, 0x95, 0xd4, 0x1f, 0xa8, 0x87, 0x65, + 0x90, 0x3d, 0x2c, 0x32, 0x57, 0xf2, 0x61, 0x39, 0xd6, 0xbe, 0xfb, 0xe7, 0xed, 0x2a, 0x6e, 0x08, + 0x07, 0x8b, 0xa1, 0x23, 0x68, 0x25, 0xf1, 0x8a, 0x3a, 0x72, 0x43, 0x96, 0x96, 0xd3, 0xbb, 0xdd, + 0x21, 0x73, 0xb2, 0x18, 0xfa, 0x19, 0x34, 0x97, 0x7e, 0xc4, 0x88, 0xf0, 0xaf, 0xdf, 0xd0, 0x5f, + 0x97, 0x1e, 0x16, 0xeb, 0x4f, 0x00, 0x8a, 0x64, 0xa1, 0x3b, 0xd0, 0x92, 0x1d, 0x24, 0xf6, 0xc9, + 0xef, 0x48, 0xd6, 0x68, 0xca, 0x2a, 0xb4, 0x07, 0x40, 0xc2, 0x25, 0xbd, 0x8c, 0x79, 0xd1, 0xee, + 0x4a, 0x9a, 0xe3, 0x0e, 0xb4, 0x29, 0xf1, 0x9d, 0x4b, 0xe2, 0xda, 0xa2, 0x6f, 0xff, 0x5c, 0x6b, + 0xb6, 0xbb, 0x5d, 0xf3, 0xdf, 0x1a, 0x34, 0x54, 0xfe, 0xae, 0xd5, 0xa5, 0x68, 0x91, 0xe2, 0x94, + 0xcb, 0xc8, 0x4f, 0x97, 0xcb, 0xe5, 0x9c, 0xcd, 0xf5, 0xf7, 0x60, 0xb3, 0x76, 0x33, 0x36, 0x3f, + 0x4a, 0xe9, 0xa1, 0xca, 0xf3, 0xb3, 0xad, 0x5c, 0x2b, 0xb1, 0x04, 0x93, 0xf3, 0x94, 0x26, 0x8f, + 0xaf, 0x55, 0xe8, 0xde, 0x76, 0xe7, 0x2d, 0xd5, 0x59, 0xb4, 0x1a, 0xfd, 0x26, 0xad, 0xe6, 0x6a, + 0xc5, 0x74, 0x37, 0x2b, 0xe6, 0xfd, 0x08, 0xeb, 0xc1, 0xee, 0x95, 0xeb, 0xe4, 0x05, 0x52, 0xbd, + 0x69, 0x81, 0x94, 0x8a, 0xad, 0x76, 0xb5, 0xd8, 0x8e, 0xdb, 0x00, 0xcb, 0xdc, 0xa1, 0xff, 0xc7, + 0xff, 0x53, 0x6d, 0x94, 0x89, 0x5d, 0x7b, 0x4f, 0x62, 0x9b, 0x7f, 0x6d, 0x40, 0xfd, 0xf4, 0xa9, + 0x75, 0x85, 0x5f, 0xd5, 0x0d, 0x7e, 0xf5, 0x40, 0x27, 0xa1, 0xb3, 0xf0, 0x89, 0xba, 0x51, 0x13, + 0x67, 0xa2, 0xd8, 0x9a, 0x71, 0x87, 0xf2, 0xf7, 0xaa, 0x29, 0xe9, 0x61, 0x31, 0x74, 0x00, 0x8d, + 0xd8, 0xa1, 0xa2, 0x93, 0x69, 0x5b, 0x63, 0x7b, 0xfa, 0xd4, 0x1a, 0xcc, 0x24, 0x00, 0xa7, 0x40, + 0x34, 0x80, 0x9d, 0xdf, 0x26, 0x84, 0x5e, 0xf6, 0x76, 0xe4, 0x5b, 0xd7, 0xdb, 0xe2, 0xf1, 0x0b, + 0x61, 0xc7, 0x0a, 0xd6, 0x9f, 0x43, 0x43, 0xad, 0x80, 0xda, 0x50, 0xbd, 0x48, 0xe7, 0x9f, 0xea, + 0x85, 0x98, 0x3d, 0x1d, 0x3f, 0x5e, 0x3b, 0xe9, 0xc8, 0xa3, 0x04, 0xf4, 0x63, 0xe8, 0xb8, 0x1e, + 0xfb, 0x8d, 0x78, 0x62, 0xec, 0xd8, 0xe1, 0x6b, 0x96, 0x0e, 0x3d, 0xbb, 0x99, 0x76, 0x26, 0x94, + 0xfd, 0x3f, 0x69, 0xb0, 0x23, 0x77, 0xb9, 0x56, 0xa4, 0x77, 0xa1, 0xc3, 0x1d, 0xba, 0x22, 0xdc, + 0xbe, 0xfa, 0x86, 0xb6, 0x95, 0x76, 0xa6, 0x5e, 0x52, 0x13, 0x76, 0xe5, 0xac, 0x6b, 0x0b, 0xc2, + 0xdb, 0x41, 0xb6, 0x4b, 0x4b, 0x2a, 0x45, 0xb4, 0x9e, 0xcb, 0xc9, 0x4c, 0x61, 0x18, 0x27, 0xb1, + 0x0a, 0x90, 0x86, 0x41, 0xaa, 0xe6, 0x42, 0x23, 0x26, 0xc7, 0x74, 0x0f, 0x26, 0x83, 0x61, 0x60, + 0x5d, 0x3d, 0xd4, 0x0c, 0x3d, 0x16, 0x55, 0xee, 0xad, 0x56, 0x44, 0x4d, 0xa2, 0x9d, 0xe1, 0x9d, + 0x37, 0x85, 0x69, 0x60, 0x29, 0x1c, 0xce, 0x1c, 0xd0, 0x01, 0x68, 0xfc, 0x32, 0xce, 0x1e, 0xc6, + 0x4f, 0xde, 0xec, 0x78, 0x19, 0x13, 0x2c, 0xa1, 0xe8, 0x11, 0x34, 0xa8, 0x1c, 0xec, 0xe5, 0x0b, + 0xd9, 0x19, 0xde, 0x7e, 0xa3, 0x93, 0x9a, 0xff, 0x71, 0x0a, 0x17, 0x94, 0x67, 0x24, 0x94, 0xdc, + 0x31, 0x6e, 0x4a, 0x79, 0xe1, 0x60, 0x31, 0xf1, 0xbf, 0x91, 0x1e, 0x1d, 0xe9, 0x50, 0x3f, 0x9a, + 0x8d, 0xbb, 0x15, 0xb4, 0x0b, 0xc6, 0xe9, 0x78, 0x7e, 0x32, 0x3d, 0x1b, 0xe1, 0x5f, 0x75, 0xab, + 0xe6, 0x17, 0xa0, 0x89, 0x43, 0xa2, 0x16, 0xe8, 0x27, 0xd3, 0x89, 0x35, 0x9a, 0x58, 0xdd, 0x0a, + 0x6a, 0x43, 0x73, 0x86, 0xa7, 0x67, 0xe3, 0xd3, 0x11, 0xee, 0x56, 0x91, 0x01, 0x3b, 0x67, 0x47, + 0xcf, 0x5e, 0x8c, 0xba, 0x35, 0xf3, 0x31, 0x34, 0xd4, 0xe9, 0x04, 0x7e, 0xfe, 0xe2, 0xe4, 0x64, + 0x34, 0x9f, 0x77, 0x2b, 0x02, 0x31, 0xc2, 0x78, 0x2a, 0xc0, 0x2d, 0xd0, 0xad, 0xf1, 0xf3, 0xd1, + 0xf4, 0x85, 0xd5, 0xad, 0x09, 0x61, 0x36, 0x9a, 0x9c, 0x8e, 0x27, 0x4f, 0xba, 0x75, 0x33, 0x02, + 0x98, 0x27, 0x0b, 0x76, 0xc9, 0x38, 0x09, 0x44, 0x35, 0xb6, 0x8a, 0x1a, 0x57, 0x03, 0xdb, 0xdb, + 0xda, 0x06, 0x2e, 0xa3, 0xd1, 0x5d, 0xa8, 0xbb, 0xeb, 0x6c, 0x5a, 0x44, 0xd7, 0x03, 0x89, 0x85, + 0xd9, 0xfc, 0x4f, 0x0d, 0x76, 0x44, 0x0f, 0x94, 0x0d, 0x3d, 0x1b, 0xa9, 0xab, 0x5b, 0x1b, 0x7a, + 0xfa, 0x57, 0x56, 0x8c, 0xda, 0xfb, 0xa0, 0x53, 0x35, 0xb7, 0xa7, 0xbb, 0x6c, 0x7a, 0xa4, 0x53, + 0x3d, 0xce, 0x60, 0xe8, 0x10, 0x80, 0xe5, 0xd7, 0x4b, 0xab, 0xfc, 0xda, 0xd0, 0x91, 0x03, 0x70, + 0x09, 0xfc, 0x3f, 0xbc, 0x37, 0x87, 0x00, 0xe2, 0x0f, 0xc3, 0x51, 0xb4, 0xd8, 0x79, 0x17, 0x2d, + 0xb0, 0x91, 0xa2, 0x2d, 0x86, 0x1e, 0x96, 0x7a, 0x51, 0xe3, 0x9d, 0x8e, 0x79, 0x17, 0xda, 0x87, + 0x0f, 0x59, 0xe8, 0xc4, 0x6c, 0x1d, 0x71, 0xdb, 0x4d, 0xa8, 0xfc, 0x55, 0x11, 0x45, 0xa9, 0xfe, + 0xd4, 0x50, 0x66, 0x3b, 0x4d, 0x4d, 0xcf, 0xd9, 0xe7, 0x23, 0xf1, 0x48, 0xcb, 0x97, 0x07, 0xa0, + 0x71, 0x74, 0x62, 0x8d, 0xcf, 0x46, 0xdd, 0x8a, 0xf8, 0x3e, 0x79, 0x36, 0x9d, 0x8f, 0x4e, 0x15, + 0x57, 0xa6, 0xb3, 0xd1, 0x44, 0xd0, 0x43, 0x72, 0x45, 0x18, 0x24, 0x57, 0x0a, 0x42, 0x69, 0x9f, + 0xdf, 0x05, 0x4d, 0x3c, 0xcd, 0x82, 0xb7, 0xe3, 0xc9, 0xd8, 0x1a, 0x1f, 0x59, 0x53, 0xac, 0x68, + 0x8c, 0x47, 0xf3, 0xd9, 0x74, 0x22, 0x39, 0x7a, 0xdc, 0xfb, 0xfb, 0xab, 0xbd, 0xea, 0xf7, 0xaf, + 0xf6, 0xaa, 0xff, 0x7a, 0xb5, 0x57, 0xfd, 0xee, 0xf5, 0x5e, 0xe5, 0xfb, 0xd7, 0x7b, 0x95, 0x7f, + 0xbc, 0xde, 0xab, 0x2c, 0x1a, 0xf2, 0x56, 0x0f, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x30, 0xa8, + 0xb8, 0x56, 0xf0, 0x0f, 0x00, 0x00, +} + +func (m *Version) 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 *Version) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Number != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Number)) + } + return i, nil +} + +func (m *ResultCounter) 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 *ResultCounter) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Total != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Total)) + } + if m.Ok != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Ok)) + } + if m.Err != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Err)) + } + return i, nil +} + +func (m *SlidingCounter) 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 *SlidingCounter) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Over_1M != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_1M)) + } + if m.Over_5M != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_5M)) + } + if m.Over_15M != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_15M)) + } + if m.Over_30M != 0 { + dAtA[i] = 0x20 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_30M)) + } + if m.Over_1Hr != 0 { + dAtA[i] = 0x28 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_1Hr)) + } + if m.Over_2Hr != 0 { + dAtA[i] = 0x30 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_2Hr)) + } + if m.Over_4Hr != 0 { + dAtA[i] = 0x38 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_4Hr)) + } + if m.Over_8Hr != 0 { + dAtA[i] = 0x40 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_8Hr)) + } + if m.Over_12Hr != 0 { + dAtA[i] = 0x48 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_12Hr)) + } + if m.Over_24Hr != 0 { + dAtA[i] = 0x50 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_24Hr)) + } + return i, nil +} + +func (m *DataGauge) 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 *DataGauge) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.CumBytes != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.CumBytes)) + } + if m.CumPackets != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.CumPackets)) + } + if m.InstBw != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.InstBw)) + } + return i, nil +} + +func (m *Runtime) 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 *Runtime) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Implementation) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Implementation))) + i += copy(dAtA[i:], m.Implementation) + } + if len(m.Version) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Version))) + i += copy(dAtA[i:], m.Version) + } + if len(m.Platform) > 0 { + dAtA[i] = 0x1a + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Platform))) + i += copy(dAtA[i:], m.Platform) + } + if len(m.PeerId) > 0 { + dAtA[i] = 0x22 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.PeerId))) + i += copy(dAtA[i:], m.PeerId) + } + return i, nil +} + +func (m *EndpointPair) 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 *EndpointPair) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.SrcMultiaddr) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.SrcMultiaddr))) + i += copy(dAtA[i:], m.SrcMultiaddr) + } + if len(m.DstMultiaddr) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.DstMultiaddr))) + i += copy(dAtA[i:], m.DstMultiaddr) + } + return i, nil +} + +func (m *Traffic) 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 *Traffic) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.TrafficIn != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.TrafficIn.Size())) + n1, err := m.TrafficIn.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + if m.TrafficOut != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.TrafficOut.Size())) + n2, err := m.TrafficOut.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + return i, nil +} + +func (m *StreamList) 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 *StreamList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.StreamIds) > 0 { + for _, b := range m.StreamIds { + dAtA[i] = 0xa + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) + } + } + if len(m.Streams) > 0 { + for _, msg := range m.Streams { + dAtA[i] = 0x12 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *Connection) 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 *Connection) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Id) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Id))) + i += copy(dAtA[i:], m.Id) + } + if len(m.PeerId) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.PeerId))) + i += copy(dAtA[i:], m.PeerId) + } + if m.Status != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Status)) + } + if len(m.TransportId) > 0 { + dAtA[i] = 0x22 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.TransportId))) + i += copy(dAtA[i:], m.TransportId) + } + if m.Endpoints != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Endpoints.Size())) + n3, err := m.Endpoints.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + if m.Timeline != nil { + dAtA[i] = 0x32 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Timeline.Size())) + n4, err := m.Timeline.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + } + if m.Role != 0 { + dAtA[i] = 0x38 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Role)) + } + if m.Traffic != nil { + dAtA[i] = 0x42 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Traffic.Size())) + n5, err := m.Traffic.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + } + if m.Attribs != nil { + dAtA[i] = 0x4a + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Attribs.Size())) + n6, err := m.Attribs.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + } + if m.LatencyNs != 0 { + dAtA[i] = 0x50 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.LatencyNs)) + } + if m.Streams != nil { + dAtA[i] = 0x5a + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Streams.Size())) + n7, err := m.Streams.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + } + if m.RelayedOver != nil { + nn8, err := m.RelayedOver.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn8 + } + if len(m.UserProvidedTags) > 0 { + for _, s := range m.UserProvidedTags { + dAtA[i] = 0x9a + i++ + dAtA[i] = 0x6 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + return i, nil +} + +func (m *Connection_ConnId) MarshalTo(dAtA []byte) (int, error) { + i := 0 + dAtA[i] = 0x82 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.ConnId))) + i += copy(dAtA[i:], m.ConnId) + return i, nil +} +func (m *Connection_Conn) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Conn != nil { + dAtA[i] = 0x8a + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Conn.Size())) + n9, err := m.Conn.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 + } + return i, nil +} +func (m *Connection_Timeline) 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 *Connection_Timeline) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.OpenTs != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.OpenTs))) + n10, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.OpenTs, dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + } + if m.UpgradedTs != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.UpgradedTs))) + n11, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.UpgradedTs, dAtA[i:]) + if err != nil { + return 0, err + } + i += n11 + } + if m.CloseTs != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.CloseTs))) + n12, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.CloseTs, dAtA[i:]) + if err != nil { + return 0, err + } + i += n12 + } + return i, nil +} + +func (m *Connection_Attributes) 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 *Connection_Attributes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Multiplexer) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Multiplexer))) + i += copy(dAtA[i:], m.Multiplexer) + } + if len(m.Encryption) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Encryption))) + i += copy(dAtA[i:], m.Encryption) + } + return i, nil +} + +func (m *Stream) 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 *Stream) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Id) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Id))) + i += copy(dAtA[i:], m.Id) + } + if len(m.Protocol) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Protocol))) + i += copy(dAtA[i:], m.Protocol) + } + if m.Role != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Role)) + } + if m.Traffic != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Traffic.Size())) + n13, err := m.Traffic.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n13 + } + if m.Conn != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Conn.Size())) + n14, err := m.Conn.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n14 + } + if m.Timeline != nil { + dAtA[i] = 0x32 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Timeline.Size())) + n15, err := m.Timeline.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n15 + } + if m.Status != 0 { + dAtA[i] = 0x38 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Status)) + } + if m.LatencyNs != 0 { + dAtA[i] = 0x80 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.LatencyNs)) + } + if len(m.UserProvidedTags) > 0 { + for _, s := range m.UserProvidedTags { + dAtA[i] = 0x9a + i++ + dAtA[i] = 0x6 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + return i, nil +} + +func (m *Stream_ConnectionRef) 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 *Stream_ConnectionRef) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Connection != nil { + nn16, err := m.Connection.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn16 + } + return i, nil +} + +func (m *Stream_ConnectionRef_Conn) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Conn != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Conn.Size())) + n17, err := m.Conn.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n17 + } + return i, nil +} +func (m *Stream_ConnectionRef_ConnId) MarshalTo(dAtA []byte) (int, error) { + i := 0 + dAtA[i] = 0x12 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.ConnId))) + i += copy(dAtA[i:], m.ConnId) + return i, nil +} +func (m *Stream_Timeline) 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 *Stream_Timeline) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.OpenTs != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.OpenTs))) + n18, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.OpenTs, dAtA[i:]) + if err != nil { + return 0, err + } + i += n18 + } + if m.CloseTs != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.CloseTs))) + n19, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.CloseTs, dAtA[i:]) + if err != nil { + return 0, err + } + i += n19 + } + return i, nil +} + +func (m *DHT) 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 *DHT) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Protocol) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Protocol))) + i += copy(dAtA[i:], m.Protocol) + } + if m.Enabled { + dAtA[i] = 0x10 + i++ + if m.Enabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + if m.StartTs != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.StartTs))) + n20, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.StartTs, dAtA[i:]) + if err != nil { + return 0, err + } + i += n20 + } + if m.Params != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Params.Size())) + n21, err := m.Params.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n21 + } + if len(m.Query) > 0 { + for _, msg := range m.Query { + dAtA[i] = 0x2a + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *DHT_Params) 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 *DHT_Params) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.K != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.K)) + } + if m.Alpha != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Alpha)) + } + if m.DisjointPaths != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.DisjointPaths)) + } + return i, nil +} + +func (m *DHT_Query) 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 *DHT_Query) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Id) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Id))) + i += copy(dAtA[i:], m.Id) + } + if len(m.TargetPeerId) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.TargetPeerId))) + i += copy(dAtA[i:], m.TargetPeerId) + } + if m.TotalTimeMs != 0 { + dAtA[i] = 0x18 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.TotalTimeMs)) + } + if m.TotalSteps != 0 { + dAtA[i] = 0x20 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.TotalSteps)) + } + if len(m.PeerIds) > 0 { + for _, s := range m.PeerIds { + dAtA[i] = 0x2a + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if m.Trigger != 0 { + dAtA[i] = 0x30 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Trigger)) + } + if m.Type != 0 { + dAtA[i] = 0x38 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Type)) + } + if m.Result != 0 { + dAtA[i] = 0x40 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Result)) + } + if m.SentTs != nil { + dAtA[i] = 0x4a + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.SentTs))) + n22, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.SentTs, dAtA[i:]) + if err != nil { + return 0, err + } + i += n22 + } + return i, nil +} + +func (m *Subsystems) 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 *Subsystems) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Connections) > 0 { + for _, msg := range m.Connections { + dAtA[i] = 0xa + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if m.Dht != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Dht.Size())) + n23, err := m.Dht.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n23 + } + return i, nil +} + +func (m *State) 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 *State) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Version != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Version.Size())) + n24, err := m.Version.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n24 + } + if m.Runtime != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Runtime.Size())) + n25, err := m.Runtime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n25 + } + if m.Subsystems != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Subsystems.Size())) + n26, err := m.Subsystems.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n26 + } + if m.Traffic != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.Traffic.Size())) + n27, err := m.Traffic.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n27 + } + if m.InstantTs != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.InstantTs.Size())) + n28, err := m.InstantTs.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n28 + } + if m.StartTs != nil { + dAtA[i] = 0x32 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.StartTs.Size())) + n29, err := m.StartTs.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n29 + } + if m.SnapshotDurationMs != 0 { + dAtA[i] = 0x38 + i++ + i = encodeVarintIntrospection(dAtA, i, uint64(m.SnapshotDurationMs)) + } + return i, nil +} + +func encodeVarintIntrospection(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 *Version) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Number != 0 { + n += 1 + sovIntrospection(uint64(m.Number)) + } + return n +} + +func (m *ResultCounter) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Total != 0 { + n += 1 + sovIntrospection(uint64(m.Total)) + } + if m.Ok != 0 { + n += 1 + sovIntrospection(uint64(m.Ok)) + } + if m.Err != 0 { + n += 1 + sovIntrospection(uint64(m.Err)) + } + return n +} + +func (m *SlidingCounter) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Over_1M != 0 { + n += 1 + sovIntrospection(uint64(m.Over_1M)) + } + if m.Over_5M != 0 { + n += 1 + sovIntrospection(uint64(m.Over_5M)) + } + if m.Over_15M != 0 { + n += 1 + sovIntrospection(uint64(m.Over_15M)) + } + if m.Over_30M != 0 { + n += 1 + sovIntrospection(uint64(m.Over_30M)) + } + if m.Over_1Hr != 0 { + n += 1 + sovIntrospection(uint64(m.Over_1Hr)) + } + if m.Over_2Hr != 0 { + n += 1 + sovIntrospection(uint64(m.Over_2Hr)) + } + if m.Over_4Hr != 0 { + n += 1 + sovIntrospection(uint64(m.Over_4Hr)) + } + if m.Over_8Hr != 0 { + n += 1 + sovIntrospection(uint64(m.Over_8Hr)) + } + if m.Over_12Hr != 0 { + n += 1 + sovIntrospection(uint64(m.Over_12Hr)) + } + if m.Over_24Hr != 0 { + n += 1 + sovIntrospection(uint64(m.Over_24Hr)) + } + return n +} + +func (m *DataGauge) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CumBytes != 0 { + n += 1 + sovIntrospection(uint64(m.CumBytes)) + } + if m.CumPackets != 0 { + n += 1 + sovIntrospection(uint64(m.CumPackets)) + } + if m.InstBw != 0 { + n += 1 + sovIntrospection(uint64(m.InstBw)) + } + return n +} + +func (m *Runtime) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Implementation) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + l = len(m.Version) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + l = len(m.Platform) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + l = len(m.PeerId) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func (m *EndpointPair) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.SrcMultiaddr) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + l = len(m.DstMultiaddr) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func (m *Traffic) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.TrafficIn != nil { + l = m.TrafficIn.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.TrafficOut != nil { + l = m.TrafficOut.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func (m *StreamList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.StreamIds) > 0 { + for _, b := range m.StreamIds { + l = len(b) + n += 1 + l + sovIntrospection(uint64(l)) + } + } + if len(m.Streams) > 0 { + for _, e := range m.Streams { + l = e.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + } + return n +} + +func (m *Connection) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Id) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + l = len(m.PeerId) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Status != 0 { + n += 1 + sovIntrospection(uint64(m.Status)) + } + l = len(m.TransportId) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Endpoints != nil { + l = m.Endpoints.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Timeline != nil { + l = m.Timeline.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Role != 0 { + n += 1 + sovIntrospection(uint64(m.Role)) + } + if m.Traffic != nil { + l = m.Traffic.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Attribs != nil { + l = m.Attribs.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.LatencyNs != 0 { + n += 1 + sovIntrospection(uint64(m.LatencyNs)) + } + if m.Streams != nil { + l = m.Streams.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.RelayedOver != nil { + n += m.RelayedOver.Size() + } + if len(m.UserProvidedTags) > 0 { + for _, s := range m.UserProvidedTags { + l = len(s) + n += 2 + l + sovIntrospection(uint64(l)) + } + } + return n +} + +func (m *Connection_ConnId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ConnId) + n += 2 + l + sovIntrospection(uint64(l)) + return n +} +func (m *Connection_Conn) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Conn != nil { + l = m.Conn.Size() + n += 2 + l + sovIntrospection(uint64(l)) + } + return n +} +func (m *Connection_Timeline) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.OpenTs != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.OpenTs) + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.UpgradedTs != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.UpgradedTs) + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.CloseTs != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.CloseTs) + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func (m *Connection_Attributes) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Multiplexer) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + l = len(m.Encryption) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func (m *Stream) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Id) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + l = len(m.Protocol) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Role != 0 { + n += 1 + sovIntrospection(uint64(m.Role)) + } + if m.Traffic != nil { + l = m.Traffic.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Conn != nil { + l = m.Conn.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Timeline != nil { + l = m.Timeline.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Status != 0 { + n += 1 + sovIntrospection(uint64(m.Status)) + } + if m.LatencyNs != 0 { + n += 2 + sovIntrospection(uint64(m.LatencyNs)) + } + if len(m.UserProvidedTags) > 0 { + for _, s := range m.UserProvidedTags { + l = len(s) + n += 2 + l + sovIntrospection(uint64(l)) + } + } + return n +} + +func (m *Stream_ConnectionRef) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Connection != nil { + n += m.Connection.Size() + } + return n +} + +func (m *Stream_ConnectionRef_Conn) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Conn != nil { + l = m.Conn.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} +func (m *Stream_ConnectionRef_ConnId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ConnId) + n += 1 + l + sovIntrospection(uint64(l)) + return n +} +func (m *Stream_Timeline) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.OpenTs != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.OpenTs) + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.CloseTs != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.CloseTs) + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func (m *DHT) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Protocol) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Enabled { + n += 2 + } + if m.StartTs != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.StartTs) + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Params != nil { + l = m.Params.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if len(m.Query) > 0 { + for _, e := range m.Query { + l = e.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + } + return n +} + +func (m *DHT_Params) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.K != 0 { + n += 1 + sovIntrospection(uint64(m.K)) + } + if m.Alpha != 0 { + n += 1 + sovIntrospection(uint64(m.Alpha)) + } + if m.DisjointPaths != 0 { + n += 1 + sovIntrospection(uint64(m.DisjointPaths)) + } + return n +} + +func (m *DHT_Query) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Id) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + l = len(m.TargetPeerId) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.TotalTimeMs != 0 { + n += 1 + sovIntrospection(uint64(m.TotalTimeMs)) + } + if m.TotalSteps != 0 { + n += 1 + sovIntrospection(uint64(m.TotalSteps)) + } + if len(m.PeerIds) > 0 { + for _, s := range m.PeerIds { + l = len(s) + n += 1 + l + sovIntrospection(uint64(l)) + } + } + if m.Trigger != 0 { + n += 1 + sovIntrospection(uint64(m.Trigger)) + } + if m.Type != 0 { + n += 1 + sovIntrospection(uint64(m.Type)) + } + if m.Result != 0 { + n += 1 + sovIntrospection(uint64(m.Result)) + } + if m.SentTs != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.SentTs) + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func (m *Subsystems) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Connections) > 0 { + for _, e := range m.Connections { + l = e.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + } + if m.Dht != nil { + l = m.Dht.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func (m *State) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Version != nil { + l = m.Version.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Runtime != nil { + l = m.Runtime.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Subsystems != nil { + l = m.Subsystems.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Traffic != nil { + l = m.Traffic.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.InstantTs != nil { + l = m.InstantTs.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.StartTs != nil { + l = m.StartTs.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.SnapshotDurationMs != 0 { + n += 1 + sovIntrospection(uint64(m.SnapshotDurationMs)) + } + return n +} + +func sovIntrospection(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozIntrospection(x uint64) (n int) { + return sovIntrospection(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Version) 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 ErrIntOverflowIntrospection + } + 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: Version: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Version: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Number", wireType) + } + m.Number = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Number |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResultCounter) 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 ErrIntOverflowIntrospection + } + 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: ResultCounter: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResultCounter: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType) + } + m.Total = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Total |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ok", wireType) + } + m.Ok = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Ok |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Err", wireType) + } + m.Err = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Err |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SlidingCounter) 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 ErrIntOverflowIntrospection + } + 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: SlidingCounter: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SlidingCounter: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_1M", wireType) + } + m.Over_1M = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_1M |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_5M", wireType) + } + m.Over_5M = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_5M |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_15M", wireType) + } + m.Over_15M = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_15M |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_30M", wireType) + } + m.Over_30M = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_30M |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_1Hr", wireType) + } + m.Over_1Hr = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_1Hr |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_2Hr", wireType) + } + m.Over_2Hr = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_2Hr |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_4Hr", wireType) + } + m.Over_4Hr = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_4Hr |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_8Hr", wireType) + } + m.Over_8Hr = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_8Hr |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_12Hr", wireType) + } + m.Over_12Hr = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_12Hr |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_24Hr", wireType) + } + m.Over_24Hr = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_24Hr |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DataGauge) 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 ErrIntOverflowIntrospection + } + 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: DataGauge: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DataGauge: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CumBytes", wireType) + } + m.CumBytes = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CumBytes |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CumPackets", wireType) + } + m.CumPackets = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CumPackets |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field InstBw", wireType) + } + m.InstBw = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.InstBw |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Runtime) 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 ErrIntOverflowIntrospection + } + 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: Runtime: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Runtime: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Implementation", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Implementation = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Platform", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Platform = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PeerId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PeerId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EndpointPair) 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 ErrIntOverflowIntrospection + } + 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: EndpointPair: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EndpointPair: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SrcMultiaddr", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SrcMultiaddr = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DstMultiaddr", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DstMultiaddr = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Traffic) 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 ErrIntOverflowIntrospection + } + 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: Traffic: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Traffic: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TrafficIn", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TrafficIn == nil { + m.TrafficIn = &DataGauge{} + } + if err := m.TrafficIn.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TrafficOut", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TrafficOut == nil { + m.TrafficOut = &DataGauge{} + } + if err := m.TrafficOut.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StreamList) 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 ErrIntOverflowIntrospection + } + 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: StreamList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StreamList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StreamIds", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StreamIds = append(m.StreamIds, make([]byte, postIndex-iNdEx)) + copy(m.StreamIds[len(m.StreamIds)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Streams", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Streams = append(m.Streams, &Stream{}) + if err := m.Streams[len(m.Streams)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Connection) 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 ErrIntOverflowIntrospection + } + 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: Connection: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Connection: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Id = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PeerId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PeerId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= Status(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TransportId", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TransportId = append(m.TransportId[:0], dAtA[iNdEx:postIndex]...) + if m.TransportId == nil { + m.TransportId = []byte{} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Endpoints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Endpoints == nil { + m.Endpoints = &EndpointPair{} + } + if err := m.Endpoints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timeline", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Timeline == nil { + m.Timeline = &Connection_Timeline{} + } + if err := m.Timeline.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) + } + m.Role = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Role |= Role(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Traffic", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Traffic == nil { + m.Traffic = &Traffic{} + } + if err := m.Traffic.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Attribs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Attribs == nil { + m.Attribs = &Connection_Attributes{} + } + if err := m.Attribs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LatencyNs", wireType) + } + m.LatencyNs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LatencyNs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Streams", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Streams == nil { + m.Streams = &StreamList{} + } + if err := m.Streams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConnId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RelayedOver = &Connection_ConnId{string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conn", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &Connection{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.RelayedOver = &Connection_Conn{v} + iNdEx = postIndex + case 99: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UserProvidedTags", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UserProvidedTags = append(m.UserProvidedTags, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Connection_Timeline) 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 ErrIntOverflowIntrospection + } + 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: Timeline: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Timeline: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OpenTs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OpenTs == nil { + m.OpenTs = new(time.Time) + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.OpenTs, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpgradedTs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UpgradedTs == nil { + m.UpgradedTs = new(time.Time) + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.UpgradedTs, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CloseTs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CloseTs == nil { + m.CloseTs = new(time.Time) + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.CloseTs, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Connection_Attributes) 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 ErrIntOverflowIntrospection + } + 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: Attributes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Attributes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Multiplexer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Multiplexer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Encryption", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Encryption = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Stream) 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 ErrIntOverflowIntrospection + } + 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: Stream: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Stream: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Id = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Protocol", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Protocol = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) + } + m.Role = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Role |= Role(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Traffic", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Traffic == nil { + m.Traffic = &Traffic{} + } + if err := m.Traffic.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conn", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Conn == nil { + m.Conn = &Stream_ConnectionRef{} + } + if err := m.Conn.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timeline", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Timeline == nil { + m.Timeline = &Stream_Timeline{} + } + if err := m.Timeline.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= Status(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 16: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LatencyNs", wireType) + } + m.LatencyNs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LatencyNs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 99: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UserProvidedTags", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UserProvidedTags = append(m.UserProvidedTags, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Stream_ConnectionRef) 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 ErrIntOverflowIntrospection + } + 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: ConnectionRef: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ConnectionRef: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conn", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &Connection{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Connection = &Stream_ConnectionRef_Conn{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConnId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Connection = &Stream_ConnectionRef_ConnId{string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Stream_Timeline) 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 ErrIntOverflowIntrospection + } + 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: Timeline: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Timeline: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OpenTs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OpenTs == nil { + m.OpenTs = new(time.Time) + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.OpenTs, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CloseTs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CloseTs == nil { + m.CloseTs = new(time.Time) + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.CloseTs, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DHT) 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 ErrIntOverflowIntrospection + } + 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: DHT: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DHT: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Protocol", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Protocol = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Enabled = bool(v != 0) + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StartTs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StartTs == nil { + m.StartTs = new(time.Time) + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.StartTs, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Params == nil { + m.Params = &DHT_Params{} + } + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Query = append(m.Query, &DHT_Query{}) + if err := m.Query[len(m.Query)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DHT_Params) 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 ErrIntOverflowIntrospection + } + 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: Params: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field K", wireType) + } + m.K = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.K |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Alpha", wireType) + } + m.Alpha = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Alpha |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DisjointPaths", wireType) + } + m.DisjointPaths = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DisjointPaths |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DHT_Query) 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 ErrIntOverflowIntrospection + } + 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: Query: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Query: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Id = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetPeerId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TargetPeerId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalTimeMs", wireType) + } + m.TotalTimeMs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TotalTimeMs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalSteps", wireType) + } + m.TotalSteps = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TotalSteps |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PeerIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PeerIds = append(m.PeerIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Trigger", wireType) + } + m.Trigger = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Trigger |= DHT_Query_Trigger(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= DHT_Query_Type(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + } + m.Result = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Result |= DHT_Query_Result(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SentTs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SentTs == nil { + m.SentTs = new(time.Time) + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.SentTs, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Subsystems) 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 ErrIntOverflowIntrospection + } + 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: Subsystems: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Subsystems: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Connections", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Connections = append(m.Connections, &Connection{}) + if err := m.Connections[len(m.Connections)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Dht", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Dht == nil { + m.Dht = &DHT{} + } + if err := m.Dht.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *State) 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 ErrIntOverflowIntrospection + } + 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: State: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: State: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Version == nil { + m.Version = &Version{} + } + if err := m.Version.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Runtime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Runtime == nil { + m.Runtime = &Runtime{} + } + if err := m.Runtime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Subsystems", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Subsystems == nil { + m.Subsystems = &Subsystems{} + } + if err := m.Subsystems.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Traffic", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Traffic == nil { + m.Traffic = &Traffic{} + } + if err := m.Traffic.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InstantTs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.InstantTs == nil { + m.InstantTs = &types.Timestamp{} + } + if err := m.InstantTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StartTs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StartTs == nil { + m.StartTs = &types.Timestamp{} + } + if err := m.StartTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SnapshotDurationMs", wireType) + } + m.SnapshotDurationMs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SnapshotDurationMs |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipIntrospection(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, ErrIntOverflowIntrospection + } + 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, ErrIntOverflowIntrospection + } + 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, ErrIntOverflowIntrospection + } + 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, ErrInvalidLengthIntrospection + } + iNdEx += length + if iNdEx < 0 { + return 0, ErrInvalidLengthIntrospection + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIntrospection + } + 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 := skipIntrospection(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + if iNdEx < 0 { + return 0, ErrInvalidLengthIntrospection + } + } + 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 ( + ErrInvalidLengthIntrospection = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowIntrospection = fmt.Errorf("proto: integer overflow") +) diff --git a/introspect/pb/introspection.proto b/introspect/pb/introspection.proto new file mode 100644 index 00000000..ceac5c8e --- /dev/null +++ b/introspect/pb/introspection.proto @@ -0,0 +1,296 @@ +syntax = "proto3"; +package introspect.pb; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; + +// Version of schema +message Version { + uint32 number = 1; +} +// ResultCounter is a monotonically increasing counter that reports an ok/err breakdown of the total. +message ResultCounter { + uint32 total = 1; + uint32 ok = 2; + uint32 err = 3; +} + +// Moving totals over sliding time windows. Models sensible time windows, +// we don't have to populate them all at once. +// +// Graphical example: +// +// time past -> present an event 16 min ago +// ======================================================X================>> +// | | 1m +// | |---| 5m +// | |-------------| 15m +// |------------X---------------| 30m +// |------------------------------------------X---------------| 60m +message SlidingCounter { + uint32 over_1m = 1; + uint32 over_5m = 2; + uint32 over_15m = 3; + uint32 over_30m = 4; + uint32 over_1hr = 5; + uint32 over_2hr = 6; + uint32 over_4hr = 7; + uint32 over_8hr = 8; + uint32 over_12hr = 9; + uint32 over_24hr = 10; +} + +// DataGauge reports stats for data traffic in a given direction. +message DataGauge { + // Cumulative bytes. + uint64 cum_bytes = 1; + // Cumulative packets. + uint64 cum_packets = 2; + // Instantaneous bandwidth measurement (bytes/second). + uint64 inst_bw = 3; +} + + +// Runtime encapsulates runtime info about a node. +message Runtime { + // e.g. go-libp2p, js-libp2p, rust-libp2p, etc. + string implementation = 1; + // e.g. 1.2.3. + string version = 2; + // e.g. Windows, Unix, macOS, Chrome, Mozilla, etc. + string platform = 3; + // our peer id - the peer id of the host system + string peer_id = 4; +} + +// EndpointPair is a pair of multiaddrs. +message EndpointPair { + // the source multiaddr. + string src_multiaddr = 1; + // the destination multiaddr. + string dst_multiaddr = 2; +} + +// The status of a connection or stream. +enum Status { + ACTIVE = 0; + CLOSED = 1; + OPENING = 2; + CLOSING = 3; + ERROR = 4; +} + +// Our role in a connection or stream. +enum Role { + INITIATOR = 0; + RESPONDER = 1; +} + +// Traffic encloses data transfer statistics. +message Traffic { + // snapshot of the data in metrics. + DataGauge traffic_in = 1; + // snapshot of the data out metrics. + DataGauge traffic_out = 2; +} + +// a list of streams, by reference or inlined. +message StreamList { + // NOTE: only one of the next 2 fields can appear, but proto3 + // doesn't support combining oneof and repeated. + // + // streams within this connection by reference. + repeated bytes stream_ids = 1; + // streams within this connection by inlining. + repeated Stream streams = 2; +} + +// Connection reports metrics and state of a libp2p connection. +message Connection { + // Timeline contains the timestamps of the well-known milestones of a connection. + message Timeline { + // the instant when a connection was opened on the wire. + google.protobuf.Timestamp open_ts = 1 [(gogoproto.stdtime) = true]; + // the instant when the upgrade process (handshake, security, multiplexing) finished. + google.protobuf.Timestamp upgraded_ts = 2 [(gogoproto.stdtime) = true]; + // the instant when this connection was terminated. + google.protobuf.Timestamp close_ts = 3 [(gogoproto.stdtime) = true]; + } + + // Attributes encapsulates the attributes of this connection. + message Attributes { + // the multiplexer being used. + string multiplexer = 1; + // the encryption method being used. + string encryption = 2; + } + + // the id of this connection, not to be shown in user tooling, + // used for (cross)referencing connections (e.g. relay). + string id = 1; + // the peer id of the other party. + string peer_id = 2; + // the status of this connection. + Status status = 3; + // a reference to the transport managing this connection. + bytes transport_id = 4; + // the endpoints participating in this connection. + EndpointPair endpoints = 5; + // the timeline of the connection, see Connection.Timeline. + Timeline timeline = 6; + // our role in this connection. + Role role = 7; + // traffic statistics. + Traffic traffic = 8; + // properties of this connection. + Attributes attribs = 9; + // the instantaneous latency of this connection in nanoseconds. + uint64 latency_ns = 10; + // streams within this connection. + StreamList streams = 11; + + reserved 12 to 15; + + // if this is a relayed connection, this points to the relaying connection. + // a default value here (empty bytes) indicates this is not a relayed connection. + oneof relayed_over { + string conn_id = 16; + Connection conn = 17; + } + // user provided tags. + repeated string user_provided_tags = 99; +} + +// Stream reports metrics and state of a libp2p stream. +message Stream { + message ConnectionRef { + oneof connection { + // the parent connection inlined. + Connection conn = 1; + // the parent connection by reference. + string conn_id = 2; + } + } + + // Timeline contains the timestamps of the well-known milestones of a stream. + message Timeline { + // the instant when the stream was opened. + google.protobuf.Timestamp open_ts = 1 [(gogoproto.stdtime) = true]; + // the instant when the stream was terminated. + google.protobuf.Timestamp close_ts = 2 [(gogoproto.stdtime) = true]; + } + + // the id of this stream, not to be shown in user tooling, + // used for (cross)referencing streams. + string id = 1; + // the protocol pinned to this stream. + string protocol = 2; + // our role in this stream. + Role role = 3; + // traffic statistics. + Traffic traffic = 4; + // the connection this stream is hosted under. + ConnectionRef conn = 5; + // the timeline of the stream, see Stream.Timeline. + Timeline timeline = 6; + // the status of this stream. + Status status = 7; + + // the instantaneous latency of this stream in nanoseconds. + // TODO: this is hard to calculate. + uint64 latency_ns = 16; + // user provided tags. + repeated string user_provided_tags = 99; +} + +// DHT metrics and state. +message DHT { + message Params { + // maximum number of requests to perform. + uint64 k = 1; + // concurrency of asynchronous requests. + uint64 alpha = 2; + // number of disjoint paths to use. + uint64 disjoint_paths = 3; + } + + message Query { + // Trigger of the query. + enum Trigger { + API = 0; + DISCOVERY = 1; + } + + // Type of the query. + enum Type { + CONTENT = 0; + PROVIDER = 1; + VALUE = 2; + } + + // Status indicating the result of the query + enum Result { + SUCCESS = 0; + ERROR = 1; + TIMEOUT = 2; + // Pending queries may be absent, depending on data collection + PENDING = 3; + } + + // id of the query; used for internal referencing (<== TODO: confirm this) + string id = 1; + // id of the peer being sought by this query + string target_peer_id = 2; + // total time of the query in miliseconds + uint64 total_time_ms = 3; + // number of iterative lookups before reaching result + uint64 total_steps = 4; + // peers queried. + repeated string peer_ids = 5; + // trigger of the query + Trigger trigger = 6; + // type of the query. + Type type = 7; + // status indicating the result of the query + Result result = 8; + // time query was dispatched + google.protobuf.Timestamp sent_ts = 9 [(gogoproto.stdtime) = true]; + } + + // DHT protocol name + string protocol = 1; + // protocol enabled. + bool enabled = 2; + // timestap of start up. + google.protobuf.Timestamp start_ts = 3 [(gogoproto.stdtime) = true]; + // params of the dht. + Params params = 4; + // queries data + repeated Query query = 5; +} + +// Subsystems encapsulates all instrumented subsystems for a libp2p host. +message Subsystems { + // connections data, source agnostic but currently only supports the Swarm subsystem + repeated Connection connections = 1; + // the DHT subsystem. + DHT dht = 2; +} + +// Connections and streams output for a time interval is one of these. +message State { + // Version of this protobuf + Version version = 1; + // system information + Runtime runtime = 2; + // list of connections + Subsystems subsystems = 3; + // overall traffic for this peer + Traffic traffic = 4; + // moment this data snapshot and instantaneous values were taken + google.protobuf.Timestamp instant_ts = 5; + // start of included data collection (cumulative values counted from here) + google.protobuf.Timestamp start_ts = 6; + // length of time up to instant_ts covered by this data snapshot + uint32 snapshot_duration_ms = 7; +} \ No newline at end of file diff --git a/introspect/providers.go b/introspect/providers.go new file mode 100644 index 00000000..ee2f85bf --- /dev/null +++ b/introspect/providers.go @@ -0,0 +1,54 @@ +package introspect + +import introspect_pb "github.com/libp2p/go-libp2p-core/introspect/pb" + +type ( + // QueryOutput determines the output form of a query result. + QueryOutput int + + // ConnectionID represents a connection ID. + ConnectionID string + + // StreamID represents a stream ID. + StreamID string +) + +const ( + // QueryOutputFull dictates that we need to resolve the whole object in the + // query output. + QueryOutputFull QueryOutput = iota + + // QueryOutputList dictates that we need to resolve only the identifiers of + // the object in the query output. + QueryOutputList +) + +// EXPERIMENTAL. DataProviders enumerates the functions that resolve each entity +// type. It is used by go-libp2p modules to register callback functions capable +// of processing entity queries. +type DataProviders struct { + // Runtime is the provider function that returns system runtime information. + Runtime func() (*introspect_pb.Runtime, error) + + // Connection is the provider that is called when information about + // Connections is required. + Connection func(ConnectionQueryParams) ([]*introspect_pb.Connection, error) + + // Stream is the provider that is called when information about Streams is + // required. + Stream func(StreamQueryParams) (*introspect_pb.StreamList, error) + + // Traffic is the provider that is called when information about network + // statistics is required. + Traffic func() (*introspect_pb.Traffic, error) +} + +type ConnectionQueryParams struct { + Output QueryOutput + Include []ConnectionID +} + +type StreamQueryParams struct { + Output QueryOutput + Include []StreamID +} From a448afcc2c218a85e05b50c6d1b7c2a442d9438d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Fri, 7 Feb 2020 14:53:11 +0000 Subject: [PATCH 02/19] introspection: rename package, rm ListenAddr() from interface. (#111) --- go.mod | 1 - go.sum | 17 -- host/host.go | 8 +- {introspect => introspection}/doc.go | 4 +- {introspect => introspection}/introspect.go | 15 +- {introspect => introspection}/pb/Makefile | 0 .../pb/introspection.pb.go | 278 +++++++++--------- .../pb/introspection.proto | 3 +- {introspect => introspection}/providers.go | 12 +- 9 files changed, 160 insertions(+), 178 deletions(-) rename {introspect => introspection}/doc.go (79%) rename {introspect => introspection}/introspect.go (63%) rename {introspect => introspection}/pb/Makefile (100%) rename {introspect => introspection}/pb/introspection.pb.go (92%) rename {introspect => introspection}/pb/introspection.proto (99%) rename {introspect => introspection}/providers.go (78%) diff --git a/go.mod b/go.mod index b6266720..b560b4e7 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,6 @@ require ( github.com/btcsuite/btcd v0.20.1-beta github.com/coreos/go-semver v0.3.0 github.com/gogo/protobuf v1.3.1 - github.com/golang/protobuf v1.3.2 github.com/ipfs/go-cid v0.0.4 github.com/jbenet/goprocess v0.1.3 github.com/libp2p/go-flow-metrics v0.0.3 diff --git a/go.sum b/go.sum index 9b911754..e1a3ba05 100644 --- a/go.sum +++ b/go.sum @@ -36,17 +36,9 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= -github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= -github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= -github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/ipfs/go-cid v0.0.3 h1:UIAh32wymBpStoe83YCzwVQQ5Oy/H0FdxvUS6DJDzms= -github.com/ipfs/go-cid v0.0.3/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= github.com/ipfs/go-cid v0.0.4 h1:UlfXKrZx1DjZoBhQHmNHLC1fK1dUJDN20Y28A7s+gJ8= github.com/ipfs/go-cid v0.0.4/go.mod h1:4LLaPOQwmk5z9LBgQnpkivrx8BJjUyGwTXCd5Xfj6+M= github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA= @@ -86,8 +78,6 @@ github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1f github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= -github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= -github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU= github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= @@ -98,14 +88,10 @@ github.com/mr-tron/base58 v1.1.3 h1:v+sk57XuaCKGXpWtVBX8YJzO7hMGx4Aajh4TQbdEFdc= github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= -github.com/multiformats/go-multiaddr v0.1.2 h1:HWYHNSyyllbQopmVIF5K7JKJugiah+L9/kuZKHbmNdQ= -github.com/multiformats/go-multiaddr v0.1.2/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4= github.com/multiformats/go-multiaddr v0.2.0 h1:lR52sFwcTCuQb6bTfnXF6zA2XfyYvyd+5a9qECv/J90= github.com/multiformats/go-multiaddr v0.2.0/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4= github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= -github.com/multiformats/go-multihash v0.0.1 h1:HHwN1K12I+XllBCrqKnhX949Orn4oawPkegHMu2vDqQ= -github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= github.com/multiformats/go-multihash v0.0.8 h1:wrYcW5yxSi3dU07n5jnuS5PrNwyHy0zRHGVoUugWvXg= github.com/multiformats/go-multihash v0.0.8/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= github.com/multiformats/go-multihash v0.0.10 h1:lMoNbh2Ssd9PUF74Nz008KGzGPlfeV6wH3rit5IIGCM= @@ -143,7 +129,6 @@ go.opencensus.io v0.22.2 h1:75k/FF0Q2YM8QYo07VPddOLBslDt1MZOdEslOHvmzAs= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -170,8 +155,6 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190219092855-153ac476189d h1:Z0Ahzd7HltpJtjAHHxX8QFP3j1yYgiuvjbjRzDj/KH0= -golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/host/host.go b/host/host.go index 71c1d694..990067a1 100644 --- a/host/host.go +++ b/host/host.go @@ -8,7 +8,7 @@ import ( "github.com/libp2p/go-libp2p-core/connmgr" "github.com/libp2p/go-libp2p-core/event" - "github.com/libp2p/go-libp2p-core/introspect" + "github.com/libp2p/go-libp2p-core/introspection" "github.com/libp2p/go-libp2p-core/network" "github.com/libp2p/go-libp2p-core/peer" "github.com/libp2p/go-libp2p-core/peerstore" @@ -79,9 +79,9 @@ type Host interface { // introspectable, that is, that expose an introspection server. type IntrospectableHost interface { - // Introspector returns the Introspector instance, with which the caller - // can: + // Introspector returns the introspection.Introspector instance, with which + // the caller can: // - register data providers. // - fetch introspection data. - Introspector() introspect.Introspector + Introspector() introspection.Introspector } diff --git a/introspect/doc.go b/introspection/doc.go similarity index 79% rename from introspect/doc.go rename to introspection/doc.go index 104d082a..d075bec4 100644 --- a/introspect/doc.go +++ b/introspection/doc.go @@ -1,4 +1,4 @@ -// Package introspect is EXPERIMENTAL. It is subject to heavy change, and it +// Package introspection is EXPERIMENTAL. It is subject to heavy change, and it // WILL change. For now, it is the simplest implementation to power the // proof-of-concept of the libp2p introspection framework. // @@ -6,4 +6,4 @@ // of go-libp2p. It holds the introspection data schema, and the primitives that // allow subsystems to register data providers, and clients to fetch the current // state of the system. -package introspect +package introspection diff --git a/introspect/introspect.go b/introspection/introspect.go similarity index 63% rename from introspect/introspect.go rename to introspection/introspect.go index 289a30c8..a6fbf037 100644 --- a/introspect/introspect.go +++ b/introspection/introspect.go @@ -1,6 +1,6 @@ -package introspect +package introspection -import introspect_pb "github.com/libp2p/go-libp2p-core/introspect/pb" +import introspection_pb "github.com/libp2p/go-libp2p-core/introspection/pb" // ProtoVersion is the current version of the introspection protocol. const ProtoVersion uint32 = 1 @@ -8,8 +8,11 @@ const ProtoVersion uint32 = 1 // EXPERIMENTAL. Introspector allows other sub-systems/modules to register // metrics/data providers AND also enables clients to fetch the current state of // the system. +// +// Introspector implementations are usually injected in introspection endpoints +// (e.g. the default WebSocket endpoint) to serve the data to clients, but they +// can also be used separately for embedding or testing. type Introspector interface { - // EXPERIMENTAL. RegisterDataProviders allows sub-systems/modules to // register callbacks that supply introspection data. RegisterDataProviders(p *DataProviders) error @@ -17,9 +20,5 @@ type Introspector interface { // EXPERIMENTAL. FetchFullState returns the full state of the system, by // calling all known data providers and returning a merged cross-cut of the // running system. - FetchFullState() (*introspect_pb.State, error) - - // EXPERIMENTAL. ListenAddrs returns the addresses on which the - // introspection server endpoint is listening for clients. - ListenAddrs() []string + FetchFullState() (*introspection_pb.State, error) } diff --git a/introspect/pb/Makefile b/introspection/pb/Makefile similarity index 100% rename from introspect/pb/Makefile rename to introspection/pb/Makefile diff --git a/introspect/pb/introspection.pb.go b/introspection/pb/introspection.pb.go similarity index 92% rename from introspect/pb/introspection.pb.go rename to introspection/pb/introspection.pb.go index 0b472704..c8cf6be9 100644 --- a/introspect/pb/introspection.pb.go +++ b/introspection/pb/introspection.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-gogo. DO NOT EDIT. // source: introspection.proto -package introspect_pb +package introspection_pb import ( fmt "fmt" @@ -722,7 +722,7 @@ type Connection struct { // the peer id of the other party. PeerId string `protobuf:"bytes,2,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` // the status of this connection. - Status Status `protobuf:"varint,3,opt,name=status,proto3,enum=introspect.pb.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,3,opt,name=status,proto3,enum=introspection.pb.Status" json:"status,omitempty"` // a reference to the transport managing this connection. TransportId []byte `protobuf:"bytes,4,opt,name=transport_id,json=transportId,proto3" json:"transport_id,omitempty"` // the endpoints participating in this connection. @@ -730,7 +730,7 @@ type Connection struct { // the timeline of the connection, see Connection.Timeline. Timeline *Connection_Timeline `protobuf:"bytes,6,opt,name=timeline,proto3" json:"timeline,omitempty"` // our role in this connection. - Role Role `protobuf:"varint,7,opt,name=role,proto3,enum=introspect.pb.Role" json:"role,omitempty"` + Role Role `protobuf:"varint,7,opt,name=role,proto3,enum=introspection.pb.Role" json:"role,omitempty"` // traffic statistics. Traffic *Traffic `protobuf:"bytes,8,opt,name=traffic,proto3" json:"traffic,omitempty"` // properties of this connection. @@ -1101,7 +1101,7 @@ type Stream struct { // the protocol pinned to this stream. Protocol string `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` // our role in this stream. - Role Role `protobuf:"varint,3,opt,name=role,proto3,enum=introspect.pb.Role" json:"role,omitempty"` + Role Role `protobuf:"varint,3,opt,name=role,proto3,enum=introspection.pb.Role" json:"role,omitempty"` // traffic statistics. Traffic *Traffic `protobuf:"bytes,4,opt,name=traffic,proto3" json:"traffic,omitempty"` // the connection this stream is hosted under. @@ -1109,7 +1109,7 @@ type Stream struct { // the timeline of the stream, see Stream.Timeline. Timeline *Stream_Timeline `protobuf:"bytes,6,opt,name=timeline,proto3" json:"timeline,omitempty"` // the status of this stream. - Status Status `protobuf:"varint,7,opt,name=status,proto3,enum=introspect.pb.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,7,opt,name=status,proto3,enum=introspection.pb.Status" json:"status,omitempty"` // the instantaneous latency of this stream in nanoseconds. // TODO: this is hard to calculate. LatencyNs uint64 `protobuf:"varint,16,opt,name=latency_ns,json=latencyNs,proto3" json:"latency_ns,omitempty"` @@ -1572,11 +1572,11 @@ type DHT_Query struct { // peers queried. PeerIds []string `protobuf:"bytes,5,rep,name=peer_ids,json=peerIds,proto3" json:"peer_ids,omitempty"` // trigger of the query - Trigger DHT_Query_Trigger `protobuf:"varint,6,opt,name=trigger,proto3,enum=introspect.pb.DHT_Query_Trigger" json:"trigger,omitempty"` + Trigger DHT_Query_Trigger `protobuf:"varint,6,opt,name=trigger,proto3,enum=introspection.pb.DHT_Query_Trigger" json:"trigger,omitempty"` // type of the query. - Type DHT_Query_Type `protobuf:"varint,7,opt,name=type,proto3,enum=introspect.pb.DHT_Query_Type" json:"type,omitempty"` + Type DHT_Query_Type `protobuf:"varint,7,opt,name=type,proto3,enum=introspection.pb.DHT_Query_Type" json:"type,omitempty"` // status indicating the result of the query - Result DHT_Query_Result `protobuf:"varint,8,opt,name=result,proto3,enum=introspect.pb.DHT_Query_Result" json:"result,omitempty"` + Result DHT_Query_Result `protobuf:"varint,8,opt,name=result,proto3,enum=introspection.pb.DHT_Query_Result" json:"result,omitempty"` // time query was dispatched SentTs *time.Time `protobuf:"bytes,9,opt,name=sent_ts,json=sentTs,proto3,stdtime" json:"sent_ts,omitempty"` } @@ -1833,142 +1833,142 @@ func (m *State) GetSnapshotDurationMs() uint32 { } func init() { - proto.RegisterEnum("introspect.pb.Status", Status_name, Status_value) - proto.RegisterEnum("introspect.pb.Role", Role_name, Role_value) - proto.RegisterEnum("introspect.pb.DHT_Query_Trigger", DHT_Query_Trigger_name, DHT_Query_Trigger_value) - proto.RegisterEnum("introspect.pb.DHT_Query_Type", DHT_Query_Type_name, DHT_Query_Type_value) - proto.RegisterEnum("introspect.pb.DHT_Query_Result", DHT_Query_Result_name, DHT_Query_Result_value) - proto.RegisterType((*Version)(nil), "introspect.pb.Version") - proto.RegisterType((*ResultCounter)(nil), "introspect.pb.ResultCounter") - proto.RegisterType((*SlidingCounter)(nil), "introspect.pb.SlidingCounter") - proto.RegisterType((*DataGauge)(nil), "introspect.pb.DataGauge") - proto.RegisterType((*Runtime)(nil), "introspect.pb.Runtime") - proto.RegisterType((*EndpointPair)(nil), "introspect.pb.EndpointPair") - proto.RegisterType((*Traffic)(nil), "introspect.pb.Traffic") - proto.RegisterType((*StreamList)(nil), "introspect.pb.StreamList") - proto.RegisterType((*Connection)(nil), "introspect.pb.Connection") - proto.RegisterType((*Connection_Timeline)(nil), "introspect.pb.Connection.Timeline") - proto.RegisterType((*Connection_Attributes)(nil), "introspect.pb.Connection.Attributes") - proto.RegisterType((*Stream)(nil), "introspect.pb.Stream") - proto.RegisterType((*Stream_ConnectionRef)(nil), "introspect.pb.Stream.ConnectionRef") - proto.RegisterType((*Stream_Timeline)(nil), "introspect.pb.Stream.Timeline") - proto.RegisterType((*DHT)(nil), "introspect.pb.DHT") - proto.RegisterType((*DHT_Params)(nil), "introspect.pb.DHT.Params") - proto.RegisterType((*DHT_Query)(nil), "introspect.pb.DHT.Query") - proto.RegisterType((*Subsystems)(nil), "introspect.pb.Subsystems") - proto.RegisterType((*State)(nil), "introspect.pb.State") + proto.RegisterEnum("introspection.pb.Status", Status_name, Status_value) + proto.RegisterEnum("introspection.pb.Role", Role_name, Role_value) + proto.RegisterEnum("introspection.pb.DHT_Query_Trigger", DHT_Query_Trigger_name, DHT_Query_Trigger_value) + proto.RegisterEnum("introspection.pb.DHT_Query_Type", DHT_Query_Type_name, DHT_Query_Type_value) + proto.RegisterEnum("introspection.pb.DHT_Query_Result", DHT_Query_Result_name, DHT_Query_Result_value) + proto.RegisterType((*Version)(nil), "introspection.pb.Version") + proto.RegisterType((*ResultCounter)(nil), "introspection.pb.ResultCounter") + proto.RegisterType((*SlidingCounter)(nil), "introspection.pb.SlidingCounter") + proto.RegisterType((*DataGauge)(nil), "introspection.pb.DataGauge") + proto.RegisterType((*Runtime)(nil), "introspection.pb.Runtime") + proto.RegisterType((*EndpointPair)(nil), "introspection.pb.EndpointPair") + proto.RegisterType((*Traffic)(nil), "introspection.pb.Traffic") + proto.RegisterType((*StreamList)(nil), "introspection.pb.StreamList") + proto.RegisterType((*Connection)(nil), "introspection.pb.Connection") + proto.RegisterType((*Connection_Timeline)(nil), "introspection.pb.Connection.Timeline") + proto.RegisterType((*Connection_Attributes)(nil), "introspection.pb.Connection.Attributes") + proto.RegisterType((*Stream)(nil), "introspection.pb.Stream") + proto.RegisterType((*Stream_ConnectionRef)(nil), "introspection.pb.Stream.ConnectionRef") + proto.RegisterType((*Stream_Timeline)(nil), "introspection.pb.Stream.Timeline") + proto.RegisterType((*DHT)(nil), "introspection.pb.DHT") + proto.RegisterType((*DHT_Params)(nil), "introspection.pb.DHT.Params") + proto.RegisterType((*DHT_Query)(nil), "introspection.pb.DHT.Query") + proto.RegisterType((*Subsystems)(nil), "introspection.pb.Subsystems") + proto.RegisterType((*State)(nil), "introspection.pb.State") } func init() { proto.RegisterFile("introspection.proto", fileDescriptor_53a8bedf9a75e10a) } var fileDescriptor_53a8bedf9a75e10a = []byte{ - // 1686 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4b, 0x8f, 0x1b, 0xc7, - 0x11, 0xe6, 0x63, 0x96, 0xc3, 0x29, 0x72, 0x09, 0xa6, 0xed, 0x38, 0x14, 0x0d, 0xaf, 0xe4, 0xb1, - 0x92, 0x08, 0x86, 0x4d, 0xed, 0x52, 0x16, 0xe4, 0x55, 0x00, 0x03, 0xfb, 0x20, 0x24, 0x06, 0x12, - 0xc9, 0x34, 0x47, 0x8b, 0x04, 0x08, 0x30, 0x18, 0x72, 0x7a, 0xc9, 0xc9, 0xce, 0x2b, 0xdd, 0x3d, - 0x72, 0xf6, 0x10, 0x20, 0xc8, 0x3d, 0x80, 0xaf, 0xb9, 0xe4, 0xb7, 0xe4, 0x12, 0x20, 0x47, 0x1f, - 0x73, 0x4b, 0x20, 0xfd, 0x81, 0xfc, 0x80, 0x1c, 0x82, 0xee, 0x9e, 0xd7, 0x72, 0x29, 0x69, 0x15, - 0xe4, 0x36, 0x55, 0xf5, 0x55, 0x3f, 0xaa, 0xbe, 0xaa, 0xae, 0x81, 0x0f, 0xbc, 0x90, 0xd3, 0x88, - 0xc5, 0x64, 0xc9, 0xbd, 0x28, 0x1c, 0xc4, 0x34, 0xe2, 0x11, 0xda, 0x2d, 0x94, 0x83, 0x78, 0xd1, - 0xff, 0x72, 0xe5, 0xf1, 0x75, 0xb2, 0x18, 0x2c, 0xa3, 0xe0, 0xfe, 0x2a, 0x5a, 0x45, 0xf7, 0x25, - 0x6a, 0x91, 0x9c, 0x4b, 0x49, 0x0a, 0xf2, 0x4b, 0x79, 0xf7, 0x6f, 0xaf, 0xa2, 0x68, 0xe5, 0x93, - 0x02, 0xc5, 0xbd, 0x80, 0x30, 0xee, 0x04, 0xb1, 0x02, 0x98, 0x9f, 0x82, 0x7e, 0x46, 0x28, 0xf3, - 0xa2, 0x10, 0x7d, 0x04, 0x8d, 0x30, 0x09, 0x16, 0x84, 0xf6, 0xaa, 0x77, 0xaa, 0xf7, 0x76, 0x71, - 0x2a, 0x99, 0x4f, 0x60, 0x17, 0x13, 0x96, 0xf8, 0xfc, 0x24, 0x4a, 0x42, 0x4e, 0x28, 0xfa, 0x10, - 0x76, 0x78, 0xc4, 0x1d, 0x3f, 0xc5, 0x29, 0x01, 0x75, 0xa0, 0x16, 0x5d, 0xf4, 0x6a, 0x52, 0x55, - 0x8b, 0x2e, 0x50, 0x17, 0xea, 0x84, 0xd2, 0x5e, 0x5d, 0x2a, 0xc4, 0xa7, 0xf9, 0x97, 0x1a, 0x74, - 0xe6, 0xbe, 0xe7, 0x7a, 0xe1, 0x2a, 0x5b, 0xea, 0x47, 0xa0, 0x47, 0x2f, 0x09, 0xb5, 0x0f, 0x82, - 0x6c, 0x53, 0x21, 0x1e, 0x04, 0xb9, 0xe1, 0x61, 0x90, 0x2e, 0x29, 0x0d, 0x0f, 0x03, 0x74, 0x0b, - 0x9a, 0xca, 0xe3, 0x61, 0x90, 0xae, 0x2d, 0x81, 0x07, 0x25, 0xd3, 0x83, 0xfd, 0xa0, 0xa7, 0x15, - 0xa6, 0x07, 0xfb, 0x25, 0xaf, 0x35, 0xed, 0xed, 0x94, 0xbc, 0xd6, 0x34, 0x37, 0x0d, 0xd7, 0xb4, - 0xd7, 0x28, 0x4c, 0xc3, 0x92, 0xe9, 0xab, 0x35, 0xed, 0xe9, 0x85, 0xe9, 0xab, 0x92, 0xe9, 0xeb, - 0x35, 0xed, 0x35, 0x0b, 0xd3, 0xd7, 0x6b, 0x8a, 0x3e, 0x06, 0x43, 0xed, 0x25, 0x56, 0x34, 0xa4, - 0x4d, 0x62, 0x85, 0x9c, 0x1b, 0x87, 0x62, 0x4d, 0x28, 0x8c, 0x42, 0x36, 0x17, 0x60, 0x9c, 0x3a, - 0xdc, 0x79, 0xe2, 0x24, 0x2b, 0x22, 0x90, 0xcb, 0x24, 0xb0, 0x17, 0x97, 0x9c, 0x30, 0x19, 0x1c, - 0x0d, 0x37, 0x97, 0x49, 0x70, 0x2c, 0x64, 0x74, 0x1b, 0x5a, 0xc2, 0x18, 0x3b, 0xcb, 0x0b, 0xc2, - 0x99, 0x0c, 0x91, 0x86, 0x61, 0x99, 0x04, 0x33, 0xa5, 0x11, 0xf1, 0xf3, 0x42, 0xc6, 0xed, 0xc5, - 0xb7, 0x32, 0x4a, 0x1a, 0x6e, 0x08, 0xf1, 0xf8, 0x5b, 0xf3, 0x0f, 0x55, 0xd0, 0x71, 0x12, 0x0a, - 0x1e, 0xa0, 0x9f, 0x40, 0xc7, 0x0b, 0x62, 0x9f, 0x04, 0x24, 0xe4, 0x8e, 0xe0, 0x9c, 0xdc, 0xc7, - 0xc0, 0x1b, 0x5a, 0xd4, 0x03, 0xfd, 0xa5, 0x22, 0x89, 0xdc, 0xc9, 0xc0, 0x99, 0x88, 0xfa, 0xd0, - 0x8c, 0x7d, 0x87, 0x9f, 0x47, 0x54, 0x65, 0xc3, 0xc0, 0xb9, 0x2c, 0x8e, 0x10, 0x13, 0x42, 0x6d, - 0xcf, 0x95, 0xd9, 0x30, 0x70, 0x43, 0x88, 0x63, 0xd7, 0xfc, 0x25, 0xb4, 0x47, 0xa1, 0x1b, 0x47, - 0x5e, 0xc8, 0x67, 0x8e, 0x47, 0xd1, 0x67, 0xb0, 0xcb, 0xe8, 0xd2, 0x0e, 0x12, 0x9f, 0x7b, 0x8e, - 0xeb, 0xd2, 0xf4, 0x14, 0x6d, 0x46, 0x97, 0xcf, 0x33, 0x9d, 0x00, 0xb9, 0x8c, 0x97, 0x40, 0xea, - 0x24, 0x6d, 0x97, 0xf1, 0x1c, 0x64, 0xfe, 0x1e, 0x74, 0x8b, 0x3a, 0xe7, 0xe7, 0xde, 0x12, 0x3d, - 0x02, 0xe0, 0xea, 0xd3, 0xf6, 0xd4, 0xbd, 0x5a, 0xc3, 0xde, 0xe0, 0x4a, 0x31, 0x0d, 0xf2, 0x60, - 0x63, 0x23, 0xc5, 0x8e, 0x43, 0x74, 0x08, 0xad, 0xcc, 0x31, 0x4a, 0xb8, 0xdc, 0xe6, 0x6d, 0x9e, - 0xd9, 0x2e, 0xd3, 0x84, 0x9b, 0xbf, 0x06, 0x98, 0x73, 0x4a, 0x9c, 0xe0, 0x99, 0xc7, 0x38, 0xfa, - 0x04, 0x80, 0x49, 0xc9, 0xf6, 0x5c, 0x91, 0xc1, 0xfa, 0xbd, 0x36, 0x36, 0x94, 0x66, 0xec, 0x32, - 0x74, 0x1f, 0x74, 0x25, 0x88, 0xf4, 0xd5, 0xef, 0xb5, 0x86, 0x3f, 0xdc, 0xd8, 0x43, 0x2d, 0x85, - 0x33, 0x94, 0xf9, 0x67, 0x1d, 0xe0, 0x24, 0x0a, 0x43, 0xd5, 0x1e, 0x44, 0xbd, 0x79, 0x6e, 0x1a, - 0xaa, 0x9a, 0xe7, 0x96, 0xc3, 0x5d, 0x2b, 0x87, 0x1b, 0x7d, 0x09, 0x0d, 0xc6, 0x1d, 0x9e, 0x30, - 0x99, 0xa1, 0xce, 0x96, 0x7d, 0x84, 0x11, 0xa7, 0x20, 0xf4, 0x29, 0xb4, 0x39, 0x75, 0x42, 0x16, - 0x47, 0x94, 0x67, 0xb9, 0x6b, 0xe3, 0x56, 0xae, 0x1b, 0xbb, 0xe8, 0x10, 0x0c, 0x92, 0x26, 0x90, - 0xc9, 0x72, 0x6a, 0x0d, 0x3f, 0xde, 0x58, 0xb4, 0x9c, 0x60, 0x5c, 0xa0, 0xd1, 0x37, 0xd0, 0x14, - 0xd4, 0xf3, 0xbd, 0x90, 0xc8, 0x6a, 0x6b, 0x0d, 0xcd, 0x0d, 0xcf, 0xe2, 0x8a, 0x03, 0x2b, 0x45, - 0xe2, 0xdc, 0x07, 0xfd, 0x14, 0x34, 0x1a, 0xf9, 0x44, 0x96, 0x63, 0x67, 0xf8, 0xc1, 0x86, 0x2f, - 0x8e, 0x7c, 0x82, 0x25, 0x00, 0xed, 0x83, 0x9e, 0x66, 0x46, 0xd6, 0x67, 0x6b, 0xf8, 0xd1, 0x06, - 0x36, 0x25, 0x0a, 0xce, 0x60, 0xe8, 0x1b, 0xd0, 0x1d, 0xce, 0xa9, 0xb7, 0x60, 0xb2, 0x6a, 0x5b, - 0xc3, 0xbb, 0x6f, 0x3e, 0xd9, 0x91, 0x04, 0x26, 0x9c, 0x30, 0x9c, 0x39, 0x89, 0x7c, 0xfb, 0x0e, - 0x27, 0xe1, 0xf2, 0xd2, 0x0e, 0x99, 0xac, 0x6d, 0x0d, 0x1b, 0xa9, 0x66, 0xc2, 0xd0, 0x83, 0x22, - 0xdf, 0x2d, 0xb9, 0xfc, 0xad, 0xad, 0xf9, 0x16, 0xd4, 0xc9, 0x73, 0x8e, 0x6e, 0x81, 0xbe, 0x8c, - 0xc2, 0x50, 0xe4, 0xa1, 0x2b, 0x92, 0xfa, 0xb4, 0x82, 0x1b, 0x42, 0x31, 0x76, 0xd1, 0x7d, 0xd0, - 0xc4, 0x57, 0xef, 0x07, 0x5b, 0x17, 0x2b, 0xce, 0xfa, 0xb4, 0x82, 0x25, 0x10, 0x7d, 0x01, 0x28, - 0x61, 0x84, 0xda, 0x31, 0x8d, 0x5e, 0x7a, 0x2e, 0x71, 0x6d, 0xee, 0xac, 0x58, 0x6f, 0x79, 0xa7, - 0x7e, 0xcf, 0xc0, 0x5d, 0x61, 0x99, 0xa5, 0x06, 0xcb, 0x59, 0xb1, 0xfe, 0xdf, 0xaa, 0xd0, 0xcc, - 0xe2, 0x8f, 0x0e, 0x41, 0x8f, 0x62, 0x12, 0xda, 0x9c, 0xa5, 0x95, 0xd4, 0x1f, 0xa8, 0x87, 0x65, - 0x90, 0x3d, 0x2c, 0x32, 0x57, 0xf2, 0x61, 0x39, 0xd6, 0xbe, 0xfb, 0xe7, 0xed, 0x2a, 0x6e, 0x08, - 0x07, 0x8b, 0xa1, 0x23, 0x68, 0x25, 0xf1, 0x8a, 0x3a, 0x72, 0x43, 0x96, 0x96, 0xd3, 0xbb, 0xdd, - 0x21, 0x73, 0xb2, 0x18, 0xfa, 0x19, 0x34, 0x97, 0x7e, 0xc4, 0x88, 0xf0, 0xaf, 0xdf, 0xd0, 0x5f, - 0x97, 0x1e, 0x16, 0xeb, 0x4f, 0x00, 0x8a, 0x64, 0xa1, 0x3b, 0xd0, 0x92, 0x1d, 0x24, 0xf6, 0xc9, - 0xef, 0x48, 0xd6, 0x68, 0xca, 0x2a, 0xb4, 0x07, 0x40, 0xc2, 0x25, 0xbd, 0x8c, 0x79, 0xd1, 0xee, - 0x4a, 0x9a, 0xe3, 0x0e, 0xb4, 0x29, 0xf1, 0x9d, 0x4b, 0xe2, 0xda, 0xa2, 0x6f, 0xff, 0x5c, 0x6b, - 0xb6, 0xbb, 0x5d, 0xf3, 0xdf, 0x1a, 0x34, 0x54, 0xfe, 0xae, 0xd5, 0xa5, 0x68, 0x91, 0xe2, 0x94, - 0xcb, 0xc8, 0x4f, 0x97, 0xcb, 0xe5, 0x9c, 0xcd, 0xf5, 0xf7, 0x60, 0xb3, 0x76, 0x33, 0x36, 0x3f, - 0x4a, 0xe9, 0xa1, 0xca, 0xf3, 0xb3, 0xad, 0x5c, 0x2b, 0xb1, 0x04, 0x93, 0xf3, 0x94, 0x26, 0x8f, - 0xaf, 0x55, 0xe8, 0xde, 0x76, 0xe7, 0x2d, 0xd5, 0x59, 0xb4, 0x1a, 0xfd, 0x26, 0xad, 0xe6, 0x6a, - 0xc5, 0x74, 0x37, 0x2b, 0xe6, 0xfd, 0x08, 0xeb, 0xc1, 0xee, 0x95, 0xeb, 0xe4, 0x05, 0x52, 0xbd, - 0x69, 0x81, 0x94, 0x8a, 0xad, 0x76, 0xb5, 0xd8, 0x8e, 0xdb, 0x00, 0xcb, 0xdc, 0xa1, 0xff, 0xc7, - 0xff, 0x53, 0x6d, 0x94, 0x89, 0x5d, 0x7b, 0x4f, 0x62, 0x9b, 0x7f, 0x6d, 0x40, 0xfd, 0xf4, 0xa9, - 0x75, 0x85, 0x5f, 0xd5, 0x0d, 0x7e, 0xf5, 0x40, 0x27, 0xa1, 0xb3, 0xf0, 0x89, 0xba, 0x51, 0x13, - 0x67, 0xa2, 0xd8, 0x9a, 0x71, 0x87, 0xf2, 0xf7, 0xaa, 0x29, 0xe9, 0x61, 0x31, 0x74, 0x00, 0x8d, - 0xd8, 0xa1, 0xa2, 0x93, 0x69, 0x5b, 0x63, 0x7b, 0xfa, 0xd4, 0x1a, 0xcc, 0x24, 0x00, 0xa7, 0x40, - 0x34, 0x80, 0x9d, 0xdf, 0x26, 0x84, 0x5e, 0xf6, 0x76, 0xe4, 0x5b, 0xd7, 0xdb, 0xe2, 0xf1, 0x0b, - 0x61, 0xc7, 0x0a, 0xd6, 0x9f, 0x43, 0x43, 0xad, 0x80, 0xda, 0x50, 0xbd, 0x48, 0xe7, 0x9f, 0xea, - 0x85, 0x98, 0x3d, 0x1d, 0x3f, 0x5e, 0x3b, 0xe9, 0xc8, 0xa3, 0x04, 0xf4, 0x63, 0xe8, 0xb8, 0x1e, - 0xfb, 0x8d, 0x78, 0x62, 0xec, 0xd8, 0xe1, 0x6b, 0x96, 0x0e, 0x3d, 0xbb, 0x99, 0x76, 0x26, 0x94, - 0xfd, 0x3f, 0x69, 0xb0, 0x23, 0x77, 0xb9, 0x56, 0xa4, 0x77, 0xa1, 0xc3, 0x1d, 0xba, 0x22, 0xdc, - 0xbe, 0xfa, 0x86, 0xb6, 0x95, 0x76, 0xa6, 0x5e, 0x52, 0x13, 0x76, 0xe5, 0xac, 0x6b, 0x0b, 0xc2, - 0xdb, 0x41, 0xb6, 0x4b, 0x4b, 0x2a, 0x45, 0xb4, 0x9e, 0xcb, 0xc9, 0x4c, 0x61, 0x18, 0x27, 0xb1, - 0x0a, 0x90, 0x86, 0x41, 0xaa, 0xe6, 0x42, 0x23, 0x26, 0xc7, 0x74, 0x0f, 0x26, 0x83, 0x61, 0x60, - 0x5d, 0x3d, 0xd4, 0x0c, 0x3d, 0x16, 0x55, 0xee, 0xad, 0x56, 0x44, 0x4d, 0xa2, 0x9d, 0xe1, 0x9d, - 0x37, 0x85, 0x69, 0x60, 0x29, 0x1c, 0xce, 0x1c, 0xd0, 0x01, 0x68, 0xfc, 0x32, 0xce, 0x1e, 0xc6, - 0x4f, 0xde, 0xec, 0x78, 0x19, 0x13, 0x2c, 0xa1, 0xe8, 0x11, 0x34, 0xa8, 0x1c, 0xec, 0xe5, 0x0b, - 0xd9, 0x19, 0xde, 0x7e, 0xa3, 0x93, 0x9a, 0xff, 0x71, 0x0a, 0x17, 0x94, 0x67, 0x24, 0x94, 0xdc, - 0x31, 0x6e, 0x4a, 0x79, 0xe1, 0x60, 0x31, 0xf1, 0xbf, 0x91, 0x1e, 0x1d, 0xe9, 0x50, 0x3f, 0x9a, - 0x8d, 0xbb, 0x15, 0xb4, 0x0b, 0xc6, 0xe9, 0x78, 0x7e, 0x32, 0x3d, 0x1b, 0xe1, 0x5f, 0x75, 0xab, - 0xe6, 0x17, 0xa0, 0x89, 0x43, 0xa2, 0x16, 0xe8, 0x27, 0xd3, 0x89, 0x35, 0x9a, 0x58, 0xdd, 0x0a, - 0x6a, 0x43, 0x73, 0x86, 0xa7, 0x67, 0xe3, 0xd3, 0x11, 0xee, 0x56, 0x91, 0x01, 0x3b, 0x67, 0x47, - 0xcf, 0x5e, 0x8c, 0xba, 0x35, 0xf3, 0x31, 0x34, 0xd4, 0xe9, 0x04, 0x7e, 0xfe, 0xe2, 0xe4, 0x64, - 0x34, 0x9f, 0x77, 0x2b, 0x02, 0x31, 0xc2, 0x78, 0x2a, 0xc0, 0x2d, 0xd0, 0xad, 0xf1, 0xf3, 0xd1, - 0xf4, 0x85, 0xd5, 0xad, 0x09, 0x61, 0x36, 0x9a, 0x9c, 0x8e, 0x27, 0x4f, 0xba, 0x75, 0x33, 0x02, - 0x98, 0x27, 0x0b, 0x76, 0xc9, 0x38, 0x09, 0x44, 0x35, 0xb6, 0x8a, 0x1a, 0x57, 0x03, 0xdb, 0xdb, - 0xda, 0x06, 0x2e, 0xa3, 0xd1, 0x5d, 0xa8, 0xbb, 0xeb, 0x6c, 0x5a, 0x44, 0xd7, 0x03, 0x89, 0x85, - 0xd9, 0xfc, 0x4f, 0x0d, 0x76, 0x44, 0x0f, 0x94, 0x0d, 0x3d, 0x1b, 0xa9, 0xab, 0x5b, 0x1b, 0x7a, - 0xfa, 0x57, 0x56, 0x8c, 0xda, 0xfb, 0xa0, 0x53, 0x35, 0xb7, 0xa7, 0xbb, 0x6c, 0x7a, 0xa4, 0x53, - 0x3d, 0xce, 0x60, 0xe8, 0x10, 0x80, 0xe5, 0xd7, 0x4b, 0xab, 0xfc, 0xda, 0xd0, 0x91, 0x03, 0x70, - 0x09, 0xfc, 0x3f, 0xbc, 0x37, 0x87, 0x00, 0xe2, 0x0f, 0xc3, 0x51, 0xb4, 0xd8, 0x79, 0x17, 0x2d, - 0xb0, 0x91, 0xa2, 0x2d, 0x86, 0x1e, 0x96, 0x7a, 0x51, 0xe3, 0x9d, 0x8e, 0x79, 0x17, 0xda, 0x87, - 0x0f, 0x59, 0xe8, 0xc4, 0x6c, 0x1d, 0x71, 0xdb, 0x4d, 0xa8, 0xfc, 0x55, 0x11, 0x45, 0xa9, 0xfe, - 0xd4, 0x50, 0x66, 0x3b, 0x4d, 0x4d, 0xcf, 0xd9, 0xe7, 0x23, 0xf1, 0x48, 0xcb, 0x97, 0x07, 0xa0, - 0x71, 0x74, 0x62, 0x8d, 0xcf, 0x46, 0xdd, 0x8a, 0xf8, 0x3e, 0x79, 0x36, 0x9d, 0x8f, 0x4e, 0x15, - 0x57, 0xa6, 0xb3, 0xd1, 0x44, 0xd0, 0x43, 0x72, 0x45, 0x18, 0x24, 0x57, 0x0a, 0x42, 0x69, 0x9f, - 0xdf, 0x05, 0x4d, 0x3c, 0xcd, 0x82, 0xb7, 0xe3, 0xc9, 0xd8, 0x1a, 0x1f, 0x59, 0x53, 0xac, 0x68, - 0x8c, 0x47, 0xf3, 0xd9, 0x74, 0x22, 0x39, 0x7a, 0xdc, 0xfb, 0xfb, 0xab, 0xbd, 0xea, 0xf7, 0xaf, - 0xf6, 0xaa, 0xff, 0x7a, 0xb5, 0x57, 0xfd, 0xee, 0xf5, 0x5e, 0xe5, 0xfb, 0xd7, 0x7b, 0x95, 0x7f, - 0xbc, 0xde, 0xab, 0x2c, 0x1a, 0xf2, 0x56, 0x0f, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x30, 0xa8, - 0xb8, 0x56, 0xf0, 0x0f, 0x00, 0x00, + // 1683 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4b, 0x93, 0x1b, 0x49, + 0x11, 0xd6, 0xa3, 0xa5, 0x56, 0xa7, 0x34, 0x0a, 0x51, 0x2c, 0x8b, 0x2c, 0xc3, 0xd8, 0xee, 0x7d, + 0x39, 0x1c, 0x8b, 0xd6, 0xd6, 0xd8, 0xc4, 0xae, 0xf1, 0x12, 0x31, 0x0f, 0x85, 0x2d, 0xc2, 0x96, + 0x44, 0xa9, 0x3d, 0x01, 0xa7, 0x8e, 0x96, 0xba, 0x46, 0x6a, 0xa6, 0x5f, 0x54, 0x55, 0x7b, 0x99, + 0x1b, 0xb1, 0x5c, 0x38, 0xee, 0x89, 0x23, 0xff, 0x81, 0x1f, 0x41, 0x04, 0x37, 0xf6, 0xc8, 0x0d, + 0xc2, 0xfe, 0x23, 0x44, 0x3d, 0x5a, 0xea, 0x79, 0x79, 0x66, 0x08, 0x6e, 0x9d, 0x99, 0x5f, 0x56, + 0x56, 0x57, 0x7e, 0x99, 0x59, 0x05, 0x3f, 0x0c, 0x62, 0x4e, 0x13, 0x96, 0x92, 0x05, 0x0f, 0x92, + 0xb8, 0x9f, 0xd2, 0x84, 0x27, 0xa8, 0x73, 0x46, 0x39, 0xef, 0xfd, 0x6c, 0x19, 0xf0, 0x55, 0x36, + 0xef, 0x2f, 0x92, 0xe8, 0x8b, 0x65, 0xb2, 0x4c, 0xbe, 0x90, 0xc0, 0x79, 0x76, 0x24, 0x25, 0x29, + 0xc8, 0x2f, 0xb5, 0x40, 0xef, 0xce, 0x32, 0x49, 0x96, 0x21, 0xd9, 0xa0, 0x78, 0x10, 0x11, 0xc6, + 0xbd, 0x28, 0x55, 0x00, 0xfb, 0x1e, 0x98, 0x87, 0x84, 0xb2, 0x20, 0x89, 0xd1, 0x87, 0x50, 0x8f, + 0xb3, 0x68, 0x4e, 0x68, 0xb7, 0x7c, 0xb7, 0x7c, 0x7f, 0x0b, 0x6b, 0xc9, 0x7e, 0x0e, 0x5b, 0x98, + 0xb0, 0x2c, 0xe4, 0xfb, 0x49, 0x16, 0x73, 0x42, 0xd1, 0x07, 0x50, 0xe3, 0x09, 0xf7, 0x42, 0x8d, + 0x53, 0x02, 0x6a, 0x43, 0x25, 0x39, 0xee, 0x56, 0xa4, 0xaa, 0x92, 0x1c, 0xa3, 0x0e, 0x54, 0x09, + 0xa5, 0xdd, 0xaa, 0x54, 0x88, 0x4f, 0xfb, 0xaf, 0x15, 0x68, 0xcf, 0xc2, 0xc0, 0x0f, 0xe2, 0x65, + 0xbe, 0xd4, 0x8f, 0xc1, 0x4c, 0xde, 0x10, 0xea, 0x3e, 0x8a, 0xf2, 0xa0, 0x42, 0x7c, 0x14, 0xad, + 0x0d, 0x4f, 0x22, 0xbd, 0xa4, 0x34, 0x3c, 0x89, 0xd0, 0x2d, 0x68, 0x28, 0x8f, 0x27, 0x91, 0x5e, + 0x5b, 0x02, 0x1f, 0x15, 0x4c, 0x3b, 0x0f, 0xa3, 0xae, 0xb1, 0x31, 0xed, 0x3c, 0x2c, 0x78, 0xad, + 0x68, 0xb7, 0x56, 0xf0, 0x5a, 0xd1, 0xb5, 0x69, 0xb0, 0xa2, 0xdd, 0xfa, 0xc6, 0x34, 0x28, 0x98, + 0x1e, 0xaf, 0x68, 0xd7, 0xdc, 0x98, 0x1e, 0x17, 0x4c, 0x5f, 0xae, 0x68, 0xb7, 0xb1, 0x31, 0x7d, + 0xb9, 0xa2, 0xe8, 0x36, 0x58, 0x2a, 0x96, 0x58, 0xd1, 0x92, 0x36, 0x89, 0x15, 0xf2, 0xda, 0x38, + 0x10, 0x6b, 0xc2, 0xc6, 0x28, 0x64, 0x7b, 0x0e, 0xd6, 0x81, 0xc7, 0xbd, 0xe7, 0x5e, 0xb6, 0x24, + 0x02, 0xb9, 0xc8, 0x22, 0x77, 0x7e, 0xc2, 0x09, 0x93, 0x87, 0x63, 0xe0, 0xc6, 0x22, 0x8b, 0xf6, + 0x84, 0x8c, 0xee, 0x40, 0x53, 0x18, 0x53, 0x6f, 0x71, 0x4c, 0x38, 0x93, 0x47, 0x64, 0x60, 0x58, + 0x64, 0xd1, 0x54, 0x69, 0xc4, 0xf9, 0x05, 0x31, 0xe3, 0xee, 0xfc, 0x1b, 0x79, 0x4a, 0x06, 0xae, + 0x0b, 0x71, 0xef, 0x1b, 0xfb, 0x8f, 0x65, 0x30, 0x71, 0x16, 0x0b, 0x1e, 0xa0, 0x4f, 0xa1, 0x1d, + 0x44, 0x69, 0x48, 0x22, 0x12, 0x73, 0x4f, 0x30, 0x4c, 0xc6, 0xb1, 0xf0, 0x19, 0x2d, 0xea, 0x82, + 0xf9, 0x46, 0x91, 0x44, 0x46, 0xb2, 0x70, 0x2e, 0xa2, 0x1e, 0x34, 0xd2, 0xd0, 0xe3, 0x47, 0x09, + 0x55, 0xd9, 0xb0, 0xf0, 0x5a, 0x16, 0x5b, 0x48, 0x09, 0xa1, 0x6e, 0xe0, 0xcb, 0x6c, 0x58, 0xb8, + 0x2e, 0xc4, 0x91, 0x6f, 0xff, 0x06, 0x5a, 0xc3, 0xd8, 0x4f, 0x93, 0x20, 0xe6, 0x53, 0x2f, 0xa0, + 0xe8, 0x23, 0xd8, 0x62, 0x74, 0xe1, 0x46, 0x59, 0xc8, 0x03, 0xcf, 0xf7, 0xa9, 0xde, 0x45, 0x8b, + 0xd1, 0xc5, 0xab, 0x5c, 0x27, 0x40, 0x3e, 0xe3, 0x05, 0x90, 0xda, 0x49, 0xcb, 0x67, 0x7c, 0x0d, + 0xb2, 0xff, 0x54, 0x06, 0xd3, 0xa1, 0xde, 0xd1, 0x51, 0xb0, 0x40, 0x4f, 0x01, 0xb8, 0xfa, 0x74, + 0x03, 0xf5, 0x63, 0xcd, 0xc1, 0xed, 0xfe, 0xd9, 0x82, 0xea, 0xaf, 0x0f, 0x1c, 0x5b, 0x1a, 0x3e, + 0x8a, 0xd1, 0x33, 0x68, 0xe6, 0xbe, 0x49, 0xc6, 0x65, 0xa8, 0x2b, 0x9c, 0xf3, 0x58, 0x93, 0x8c, + 0xdb, 0x2e, 0xc0, 0x8c, 0x53, 0xe2, 0x45, 0x2f, 0x03, 0xc6, 0xd1, 0x4f, 0x01, 0x98, 0x94, 0xdc, + 0xc0, 0x17, 0x89, 0xac, 0xde, 0x6f, 0x61, 0x4b, 0x69, 0x46, 0x3e, 0x43, 0x03, 0x30, 0x95, 0x20, + 0xb2, 0x58, 0xbd, 0xdf, 0x1c, 0x74, 0xcf, 0x87, 0x51, 0xab, 0xe1, 0x1c, 0x68, 0xff, 0xcd, 0x04, + 0xd8, 0x4f, 0xe2, 0x58, 0x21, 0x44, 0xe5, 0x05, 0xbe, 0x3e, 0xb4, 0x4a, 0xe0, 0x17, 0x0f, 0xbe, + 0x52, 0x3c, 0x78, 0xf4, 0x10, 0xea, 0x8c, 0x7b, 0x3c, 0x63, 0x32, 0x57, 0xed, 0x8b, 0x43, 0x09, + 0x3b, 0xd6, 0x38, 0x74, 0x0f, 0x5a, 0x9c, 0x7a, 0x31, 0x4b, 0x13, 0xca, 0xf3, 0x44, 0xb6, 0x70, + 0x73, 0xad, 0x1b, 0xf9, 0xe8, 0x19, 0x58, 0x44, 0x67, 0x93, 0xc9, 0xda, 0x6a, 0x0e, 0xb6, 0xcf, + 0xaf, 0x5b, 0x4c, 0x38, 0xde, 0x38, 0xa0, 0x5d, 0x68, 0x08, 0x2a, 0x86, 0x41, 0x4c, 0x64, 0xf5, + 0x35, 0x07, 0x9f, 0x9c, 0x77, 0xde, 0xfc, 0x6b, 0xdf, 0xd1, 0x60, 0xbc, 0x76, 0x43, 0x0f, 0xc0, + 0xa0, 0x49, 0x48, 0x64, 0x85, 0xb6, 0x07, 0x1f, 0x9e, 0x77, 0xc7, 0x49, 0x48, 0xb0, 0xc4, 0xa0, + 0x1d, 0x30, 0x75, 0xa2, 0x64, 0xd5, 0x36, 0x07, 0xb7, 0xce, 0xc3, 0x35, 0x81, 0x70, 0x8e, 0x44, + 0xbb, 0x60, 0x7a, 0x9c, 0xd3, 0x60, 0xce, 0x64, 0x39, 0x37, 0x07, 0x9f, 0xbd, 0x77, 0x8b, 0xbb, + 0x12, 0x9b, 0x71, 0xc2, 0x70, 0xee, 0x27, 0x48, 0x10, 0x7a, 0x9c, 0xc4, 0x8b, 0x13, 0x37, 0x66, + 0xb2, 0xee, 0x0d, 0x6c, 0x69, 0xcd, 0x98, 0xa1, 0x9f, 0x6f, 0x48, 0xd0, 0x94, 0x11, 0x7e, 0x72, + 0x19, 0x09, 0x04, 0xa5, 0xd6, 0x44, 0x40, 0xb7, 0xc0, 0x5c, 0x24, 0x71, 0x2c, 0x32, 0xd3, 0x11, + 0x99, 0x7e, 0x51, 0xc2, 0x75, 0xa1, 0x18, 0xf9, 0x68, 0x00, 0x86, 0xf8, 0xea, 0xfe, 0xe0, 0xb2, + 0xf5, 0x36, 0x3b, 0x7e, 0x51, 0xc2, 0x12, 0x8b, 0x3e, 0x07, 0x94, 0x31, 0x42, 0xdd, 0x94, 0x26, + 0x6f, 0x02, 0x9f, 0xf8, 0x2e, 0xf7, 0x96, 0xac, 0xbb, 0xb8, 0x5b, 0xbd, 0x6f, 0xe1, 0x8e, 0xb0, + 0x4c, 0xb5, 0xc1, 0xf1, 0x96, 0xac, 0xf7, 0xf7, 0x32, 0x34, 0xf2, 0x74, 0xa0, 0xaf, 0xc0, 0x4c, + 0x52, 0x12, 0xbb, 0x9c, 0xe9, 0x52, 0xeb, 0xf5, 0xd5, 0xe8, 0xe9, 0xe7, 0xa3, 0x47, 0xa6, 0x4e, + 0x8e, 0x9e, 0x3d, 0xe3, 0xbb, 0x7f, 0xdf, 0x29, 0xe3, 0xba, 0x70, 0x70, 0x04, 0x05, 0x9a, 0x59, + 0xba, 0xa4, 0x9e, 0x0c, 0xc8, 0x74, 0xb1, 0x5d, 0xed, 0x0e, 0xb9, 0x93, 0xc3, 0xd0, 0x2f, 0xa0, + 0xb1, 0x08, 0x13, 0x46, 0x84, 0x7f, 0xf5, 0x9a, 0xfe, 0xa6, 0xf4, 0x70, 0x58, 0x6f, 0x0c, 0xb0, + 0x49, 0x19, 0xba, 0x0b, 0x4d, 0xd9, 0x63, 0xd2, 0x90, 0xfc, 0x81, 0xe4, 0xad, 0xa8, 0xa8, 0x42, + 0xdb, 0x00, 0x24, 0x5e, 0xd0, 0x93, 0x94, 0x6f, 0x1a, 0x62, 0x41, 0xb3, 0xd7, 0x86, 0x16, 0x25, + 0xa1, 0x77, 0x42, 0x7c, 0x57, 0x74, 0xf6, 0x5f, 0x19, 0x8d, 0x56, 0xa7, 0x63, 0x7f, 0x5b, 0x83, + 0xba, 0x4a, 0xe1, 0xb9, 0x7a, 0x15, 0x4d, 0x54, 0xec, 0x72, 0x91, 0x84, 0x7a, 0xb9, 0xb5, 0xbc, + 0x26, 0x77, 0xf5, 0x66, 0xe4, 0x36, 0xae, 0x4d, 0xee, 0xa7, 0x9a, 0x27, 0xaa, 0x72, 0x3f, 0xbd, + 0x8c, 0x77, 0x05, 0xba, 0x60, 0x72, 0xa4, 0xf9, 0xf2, 0xf5, 0xb9, 0xe2, 0xbd, 0x77, 0xa9, 0xff, + 0x05, 0x85, 0xbb, 0x69, 0x47, 0xe6, 0x35, 0xdb, 0xd1, 0xe9, 0x32, 0xea, 0x9c, 0x2d, 0xa3, 0x9b, + 0xf1, 0x37, 0x84, 0xad, 0x53, 0x3f, 0xb5, 0x2e, 0x99, 0xf2, 0x0d, 0x4a, 0xa6, 0x50, 0x81, 0x95, + 0xd3, 0x15, 0xb8, 0xd7, 0x02, 0x58, 0xac, 0x1d, 0x7a, 0xdf, 0xfe, 0x9f, 0xaa, 0xa5, 0x48, 0xf5, + 0xca, 0x0d, 0xa9, 0x6e, 0xff, 0xb3, 0x0e, 0xd5, 0x83, 0x17, 0xce, 0x29, 0xc6, 0x95, 0xcf, 0x30, + 0xae, 0x0b, 0x26, 0x89, 0xbd, 0x79, 0x48, 0xd4, 0x1f, 0x35, 0x70, 0x2e, 0x8a, 0xd0, 0x8c, 0x7b, + 0x94, 0xdf, 0xa8, 0xca, 0xa4, 0x87, 0xc3, 0xd0, 0x63, 0xa8, 0xa7, 0x1e, 0x15, 0x1d, 0xce, 0xb8, + 0xec, 0x78, 0x0f, 0x5e, 0x38, 0xfd, 0xa9, 0xc4, 0x60, 0x8d, 0x45, 0x8f, 0xa0, 0xf6, 0xfb, 0x8c, + 0xd0, 0x93, 0x6e, 0x4d, 0xce, 0xc6, 0xdb, 0x17, 0x3b, 0xfd, 0x5a, 0x40, 0xb0, 0x42, 0xf6, 0x66, + 0x50, 0x57, 0x8b, 0xa0, 0x16, 0x94, 0x8f, 0xf5, 0xcd, 0xa9, 0x7c, 0x2c, 0x6e, 0xad, 0x5e, 0x98, + 0xae, 0x3c, 0x7d, 0x59, 0x52, 0x02, 0xfa, 0x04, 0xda, 0x7e, 0xc0, 0x7e, 0x27, 0x86, 0x91, 0x9b, + 0x7a, 0x7c, 0xc5, 0xf4, 0x75, 0x69, 0x2b, 0xd7, 0x4e, 0x85, 0xb2, 0xf7, 0x17, 0x03, 0x6a, 0x32, + 0xca, 0xb9, 0xe2, 0xfd, 0x18, 0xda, 0xdc, 0xa3, 0x4b, 0xc2, 0xdd, 0xd3, 0x33, 0xb7, 0xa5, 0xb4, + 0x53, 0x35, 0x79, 0x6d, 0xd8, 0x92, 0xb7, 0x64, 0x57, 0x90, 0xdf, 0x8d, 0xf2, 0x28, 0x4d, 0xa9, + 0x14, 0x67, 0xf6, 0x4a, 0xde, 0xe9, 0x14, 0x86, 0x71, 0x92, 0xaa, 0x63, 0x32, 0x30, 0x48, 0xd5, + 0x4c, 0x68, 0xc4, 0x9d, 0x53, 0xc7, 0x60, 0xf2, 0x3c, 0x2c, 0x6c, 0xaa, 0xc1, 0xce, 0xd0, 0xd7, + 0xa2, 0xf4, 0x83, 0xe5, 0x92, 0xa8, 0x3b, 0x6c, 0x7b, 0xf0, 0xd1, 0x7b, 0x4e, 0xaa, 0xef, 0x28, + 0x28, 0xce, 0x7d, 0xd0, 0x63, 0x30, 0xf8, 0x49, 0x9a, 0x8f, 0xd0, 0xbb, 0xef, 0xf5, 0x3d, 0x49, + 0x09, 0x96, 0x68, 0xf4, 0x14, 0xea, 0x54, 0x3e, 0x0c, 0xe4, 0x2c, 0x6d, 0x0f, 0xec, 0xf7, 0xf9, + 0xa9, 0x27, 0x04, 0xd6, 0x1e, 0xa2, 0x02, 0x18, 0x89, 0x25, 0x95, 0xac, 0xeb, 0x56, 0x80, 0x70, + 0x70, 0x98, 0x78, 0xb2, 0xe8, 0x1f, 0x40, 0x26, 0x54, 0x77, 0xa7, 0xa3, 0x4e, 0x09, 0x6d, 0x81, + 0x75, 0x30, 0x9a, 0xed, 0x4f, 0x0e, 0x87, 0xf8, 0xb7, 0x9d, 0xb2, 0xfd, 0x39, 0x18, 0x62, 0x9f, + 0xa8, 0x09, 0xe6, 0xfe, 0x64, 0xec, 0x0c, 0xc7, 0x4e, 0xa7, 0x84, 0x5a, 0xd0, 0x98, 0xe2, 0xc9, + 0xe1, 0xe8, 0x60, 0x88, 0x3b, 0x65, 0x64, 0x41, 0xed, 0x70, 0xf7, 0xe5, 0xeb, 0x61, 0xa7, 0x62, + 0x3f, 0x85, 0xba, 0xda, 0x9d, 0xc0, 0xcf, 0x5e, 0xef, 0xef, 0x0f, 0x67, 0xb3, 0x4e, 0x49, 0x20, + 0x86, 0x18, 0x4f, 0x04, 0xb8, 0x09, 0xa6, 0x33, 0x7a, 0x35, 0x9c, 0xbc, 0x76, 0x3a, 0x15, 0x21, + 0x4c, 0x87, 0xe3, 0x83, 0xd1, 0xf8, 0x79, 0xa7, 0x6a, 0x67, 0x00, 0xb3, 0x6c, 0xce, 0x4e, 0x18, + 0x27, 0x11, 0x43, 0xbf, 0x84, 0xe6, 0xa6, 0xe4, 0xd5, 0x65, 0xef, 0x8a, 0x46, 0x82, 0x8b, 0x0e, + 0xe8, 0x33, 0xa8, 0xfa, 0xab, 0xfc, 0xbe, 0xf9, 0xa3, 0x0b, 0x8f, 0x13, 0x0b, 0x84, 0xfd, 0xe7, + 0x2a, 0xd4, 0x44, 0x6f, 0x94, 0x4d, 0x3f, 0xbf, 0x9b, 0x97, 0x2f, 0x6b, 0xfa, 0xfa, 0x85, 0xb7, + 0xb9, 0xb6, 0xef, 0x80, 0x49, 0xd5, 0x1b, 0x40, 0xc7, 0xba, 0xc0, 0x49, 0x3f, 0x12, 0x70, 0x8e, + 0x44, 0xcf, 0x00, 0xd8, 0xfa, 0x57, 0x75, 0x03, 0xb8, 0xe8, 0x9e, 0xb2, 0xc6, 0xe0, 0x02, 0xfe, + 0x7f, 0x1b, 0x4e, 0x5f, 0x01, 0x88, 0x67, 0x8b, 0xa7, 0x88, 0x52, 0xbb, 0x8a, 0x28, 0xd8, 0xd2, + 0x68, 0x87, 0xa1, 0x27, 0x85, 0x66, 0x55, 0xbf, 0xd2, 0x71, 0xdd, 0xa6, 0x1e, 0xc2, 0x07, 0x2c, + 0xf6, 0x52, 0xb6, 0x4a, 0xb8, 0xeb, 0x67, 0x54, 0xbe, 0x7f, 0x44, 0xbd, 0xaa, 0xe7, 0x1f, 0xca, + 0x6d, 0x07, 0xda, 0xf4, 0x8a, 0x3d, 0x18, 0x8a, 0xb9, 0x2e, 0xa7, 0x13, 0x40, 0x7d, 0x77, 0xdf, + 0x19, 0x1d, 0x0e, 0x3b, 0x25, 0xf1, 0xbd, 0xff, 0x72, 0x32, 0x1b, 0x1e, 0x28, 0xf6, 0x4c, 0xa6, + 0xc3, 0xb1, 0x20, 0x8c, 0x64, 0x8f, 0x30, 0x48, 0xf6, 0x6c, 0x28, 0x66, 0x3c, 0xf8, 0x18, 0x0c, + 0x31, 0xca, 0x05, 0x93, 0x47, 0xe3, 0x91, 0x33, 0xda, 0x75, 0x26, 0x58, 0x11, 0x1b, 0x0f, 0x67, + 0xd3, 0xc9, 0x58, 0xb2, 0x76, 0xaf, 0xfb, 0x8f, 0xb7, 0xdb, 0xe5, 0xef, 0xdf, 0x6e, 0x97, 0xff, + 0xf3, 0x76, 0xbb, 0xfc, 0xdd, 0xbb, 0xed, 0xd2, 0xf7, 0xef, 0xb6, 0x4b, 0xff, 0x7a, 0xb7, 0x5d, + 0x9a, 0xd7, 0xe5, 0x5f, 0xed, 0xfc, 0x37, 0x00, 0x00, 0xff, 0xff, 0x98, 0x28, 0x60, 0xfb, 0x48, + 0x10, 0x00, 0x00, } func (m *Version) Marshal() (dAtA []byte, err error) { diff --git a/introspect/pb/introspection.proto b/introspection/pb/introspection.proto similarity index 99% rename from introspect/pb/introspection.proto rename to introspection/pb/introspection.proto index ceac5c8e..a99d1a2c 100644 --- a/introspect/pb/introspection.proto +++ b/introspection/pb/introspection.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -package introspect.pb; +package introspection.pb; import "github.com/gogo/protobuf/gogoproto/gogo.proto"; import "google/protobuf/timestamp.proto"; @@ -8,6 +8,7 @@ import "google/protobuf/timestamp.proto"; message Version { uint32 number = 1; } + // ResultCounter is a monotonically increasing counter that reports an ok/err breakdown of the total. message ResultCounter { uint32 total = 1; diff --git a/introspect/providers.go b/introspection/providers.go similarity index 78% rename from introspect/providers.go rename to introspection/providers.go index ee2f85bf..599729db 100644 --- a/introspect/providers.go +++ b/introspection/providers.go @@ -1,6 +1,6 @@ -package introspect +package introspection -import introspect_pb "github.com/libp2p/go-libp2p-core/introspect/pb" +import introspection_pb "github.com/libp2p/go-libp2p-core/introspection/pb" type ( // QueryOutput determines the output form of a query result. @@ -28,19 +28,19 @@ const ( // of processing entity queries. type DataProviders struct { // Runtime is the provider function that returns system runtime information. - Runtime func() (*introspect_pb.Runtime, error) + Runtime func() (*introspection_pb.Runtime, error) // Connection is the provider that is called when information about // Connections is required. - Connection func(ConnectionQueryParams) ([]*introspect_pb.Connection, error) + Connection func(ConnectionQueryParams) ([]*introspection_pb.Connection, error) // Stream is the provider that is called when information about Streams is // required. - Stream func(StreamQueryParams) (*introspect_pb.StreamList, error) + Stream func(StreamQueryParams) (*introspection_pb.StreamList, error) // Traffic is the provider that is called when information about network // statistics is required. - Traffic func() (*introspect_pb.Traffic, error) + Traffic func() (*introspection_pb.Traffic, error) } type ConnectionQueryParams struct { From c109bc7f907eb619dc32ef20d5142858c5c87566 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Mon, 10 Feb 2020 16:36:49 +0000 Subject: [PATCH 03/19] add an introspection.Endpoint interface. --- host/host.go | 14 ++++++++------ introspection/endpoint.go | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 introspection/endpoint.go diff --git a/host/host.go b/host/host.go index 990067a1..9246785b 100644 --- a/host/host.go +++ b/host/host.go @@ -76,12 +76,14 @@ type Host interface { } // IntrospectableHost is implemented by Host implementations that are -// introspectable, that is, that expose an introspection server. +// introspectable, that is, that may have introspection capability. type IntrospectableHost interface { - - // Introspector returns the introspection.Introspector instance, with which - // the caller can: - // - register data providers. - // - fetch introspection data. + // Introspector the introspector, or nil if one hasn't been registered. With + // it, the call can register data providers, and can fetch introspection + // data. Introspector() introspection.Introspector + + // IntrospectionEndpoint returns the introspection endpoint, or nil if one + // hasn't been registered. + IntrospectionEndpoint() introspection.Endpoint } diff --git a/introspection/endpoint.go b/introspection/endpoint.go new file mode 100644 index 00000000..9c0773e1 --- /dev/null +++ b/introspection/endpoint.go @@ -0,0 +1,20 @@ +package introspection + +// Endpoint is the interface to be implemented by introspection +// endpoints/servers. +// +// An introspection endpoint exposes introspection data over the wire via a +// protocol and data format, e.g. WebSockets with Protobuf. +type Endpoint interface { + // Start starts the introspection endpoint. It must only be called once, and + // once the server is started, subsequent calls made without first calling + // Close will error. + Start() error + + // Close stops the introspection endpoint. Calls to Close on an already + // closed endpoint, or an unstarted endpoint, must noop. + Close() error + + // ListenAddrs returns the listen addresses of this endpoint. + ListenAddrs() []string +} From 7513ae8da7ca3c972668d58001ad53f15c8ed5c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Mon, 10 Feb 2020 16:37:20 +0000 Subject: [PATCH 04/19] network: add Opened timestamp to network.Stat. --- network/network.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/network/network.go b/network/network.go index 467109c4..33edf9b0 100644 --- a/network/network.go +++ b/network/network.go @@ -8,6 +8,7 @@ package network import ( "context" "io" + "time" "github.com/jbenet/goprocess" "github.com/libp2p/go-libp2p-core/peer" @@ -55,8 +56,12 @@ const ( // Stat stores metadata pertaining to a given Stream/Conn. type Stat struct { + // Direction specifies whether this is an inbound or an outbound connection. Direction Direction - Extra map[interface{}]interface{} + // Opened is the timestamp when this connection was opened. + Opened time.Time + // Extra stores additional metadata about this connection. + Extra map[interface{}]interface{} } // StreamHandler is the type of function used to listen for From fab9d25b5d8f07941ea20be5568396705ac54b30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Mon, 10 Feb 2020 11:28:27 +0000 Subject: [PATCH 05/19] introspection.proto: fix stream ID type. --- introspection/pb/introspection.pb.go | 175 ++++++++++++++------------- introspection/pb/introspection.proto | 2 +- 2 files changed, 92 insertions(+), 85 deletions(-) diff --git a/introspection/pb/introspection.pb.go b/introspection/pb/introspection.pb.go index c8cf6be9..4d8d06d1 100644 --- a/introspection/pb/introspection.pb.go +++ b/introspection/pb/introspection.pb.go @@ -662,7 +662,7 @@ type StreamList struct { // doesn't support combining oneof and repeated. // // streams within this connection by reference. - StreamIds [][]byte `protobuf:"bytes,1,rep,name=stream_ids,json=streamIds,proto3" json:"stream_ids,omitempty"` + StreamIds []string `protobuf:"bytes,1,rep,name=stream_ids,json=streamIds,proto3" json:"stream_ids,omitempty"` // streams within this connection by inlining. Streams []*Stream `protobuf:"bytes,2,rep,name=streams,proto3" json:"streams,omitempty"` } @@ -700,7 +700,7 @@ func (m *StreamList) XXX_DiscardUnknown() { var xxx_messageInfo_StreamList proto.InternalMessageInfo -func (m *StreamList) GetStreamIds() [][]byte { +func (m *StreamList) GetStreamIds() []string { if m != nil { return m.StreamIds } @@ -1862,7 +1862,7 @@ func init() { func init() { proto.RegisterFile("introspection.proto", fileDescriptor_53a8bedf9a75e10a) } var fileDescriptor_53a8bedf9a75e10a = []byte{ - // 1683 bytes of a gzipped FileDescriptorProto + // 1681 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4b, 0x93, 0x1b, 0x49, 0x11, 0xd6, 0xa3, 0xa5, 0x56, 0xa7, 0x34, 0x0a, 0x51, 0x2c, 0x8b, 0x2c, 0xc3, 0xd8, 0xee, 0x7d, 0x39, 0x1c, 0x8b, 0xd6, 0xd6, 0xd8, 0xc4, 0xae, 0xf1, 0x12, 0x31, 0x0f, 0x85, 0x2d, 0xc2, 0x96, @@ -1899,76 +1899,76 @@ var fileDescriptor_53a8bedf9a75e10a = []byte{ 0x03, 0xf5, 0x63, 0xcd, 0xc1, 0xed, 0xfe, 0xd9, 0x82, 0xea, 0xaf, 0x0f, 0x1c, 0x5b, 0x1a, 0x3e, 0x8a, 0xd1, 0x33, 0x68, 0xe6, 0xbe, 0x49, 0xc6, 0x65, 0xa8, 0x2b, 0x9c, 0xf3, 0x58, 0x93, 0x8c, 0xdb, 0x2e, 0xc0, 0x8c, 0x53, 0xe2, 0x45, 0x2f, 0x03, 0xc6, 0xd1, 0x4f, 0x01, 0x98, 0x94, 0xdc, - 0xc0, 0x17, 0x89, 0xac, 0xde, 0x6f, 0x61, 0x4b, 0x69, 0x46, 0x3e, 0x43, 0x03, 0x30, 0x95, 0x20, - 0xb2, 0x58, 0xbd, 0xdf, 0x1c, 0x74, 0xcf, 0x87, 0x51, 0xab, 0xe1, 0x1c, 0x68, 0xff, 0xcd, 0x04, - 0xd8, 0x4f, 0xe2, 0x58, 0x21, 0x44, 0xe5, 0x05, 0xbe, 0x3e, 0xb4, 0x4a, 0xe0, 0x17, 0x0f, 0xbe, - 0x52, 0x3c, 0x78, 0xf4, 0x10, 0xea, 0x8c, 0x7b, 0x3c, 0x63, 0x32, 0x57, 0xed, 0x8b, 0x43, 0x09, - 0x3b, 0xd6, 0x38, 0x74, 0x0f, 0x5a, 0x9c, 0x7a, 0x31, 0x4b, 0x13, 0xca, 0xf3, 0x44, 0xb6, 0x70, - 0x73, 0xad, 0x1b, 0xf9, 0xe8, 0x19, 0x58, 0x44, 0x67, 0x93, 0xc9, 0xda, 0x6a, 0x0e, 0xb6, 0xcf, - 0xaf, 0x5b, 0x4c, 0x38, 0xde, 0x38, 0xa0, 0x5d, 0x68, 0x08, 0x2a, 0x86, 0x41, 0x4c, 0x64, 0xf5, - 0x35, 0x07, 0x9f, 0x9c, 0x77, 0xde, 0xfc, 0x6b, 0xdf, 0xd1, 0x60, 0xbc, 0x76, 0x43, 0x0f, 0xc0, - 0xa0, 0x49, 0x48, 0x64, 0x85, 0xb6, 0x07, 0x1f, 0x9e, 0x77, 0xc7, 0x49, 0x48, 0xb0, 0xc4, 0xa0, - 0x1d, 0x30, 0x75, 0xa2, 0x64, 0xd5, 0x36, 0x07, 0xb7, 0xce, 0xc3, 0x35, 0x81, 0x70, 0x8e, 0x44, - 0xbb, 0x60, 0x7a, 0x9c, 0xd3, 0x60, 0xce, 0x64, 0x39, 0x37, 0x07, 0x9f, 0xbd, 0x77, 0x8b, 0xbb, - 0x12, 0x9b, 0x71, 0xc2, 0x70, 0xee, 0x27, 0x48, 0x10, 0x7a, 0x9c, 0xc4, 0x8b, 0x13, 0x37, 0x66, - 0xb2, 0xee, 0x0d, 0x6c, 0x69, 0xcd, 0x98, 0xa1, 0x9f, 0x6f, 0x48, 0xd0, 0x94, 0x11, 0x7e, 0x72, - 0x19, 0x09, 0x04, 0xa5, 0xd6, 0x44, 0x40, 0xb7, 0xc0, 0x5c, 0x24, 0x71, 0x2c, 0x32, 0xd3, 0x11, - 0x99, 0x7e, 0x51, 0xc2, 0x75, 0xa1, 0x18, 0xf9, 0x68, 0x00, 0x86, 0xf8, 0xea, 0xfe, 0xe0, 0xb2, - 0xf5, 0x36, 0x3b, 0x7e, 0x51, 0xc2, 0x12, 0x8b, 0x3e, 0x07, 0x94, 0x31, 0x42, 0xdd, 0x94, 0x26, - 0x6f, 0x02, 0x9f, 0xf8, 0x2e, 0xf7, 0x96, 0xac, 0xbb, 0xb8, 0x5b, 0xbd, 0x6f, 0xe1, 0x8e, 0xb0, - 0x4c, 0xb5, 0xc1, 0xf1, 0x96, 0xac, 0xf7, 0xf7, 0x32, 0x34, 0xf2, 0x74, 0xa0, 0xaf, 0xc0, 0x4c, - 0x52, 0x12, 0xbb, 0x9c, 0xe9, 0x52, 0xeb, 0xf5, 0xd5, 0xe8, 0xe9, 0xe7, 0xa3, 0x47, 0xa6, 0x4e, - 0x8e, 0x9e, 0x3d, 0xe3, 0xbb, 0x7f, 0xdf, 0x29, 0xe3, 0xba, 0x70, 0x70, 0x04, 0x05, 0x9a, 0x59, - 0xba, 0xa4, 0x9e, 0x0c, 0xc8, 0x74, 0xb1, 0x5d, 0xed, 0x0e, 0xb9, 0x93, 0xc3, 0xd0, 0x2f, 0xa0, - 0xb1, 0x08, 0x13, 0x46, 0x84, 0x7f, 0xf5, 0x9a, 0xfe, 0xa6, 0xf4, 0x70, 0x58, 0x6f, 0x0c, 0xb0, - 0x49, 0x19, 0xba, 0x0b, 0x4d, 0xd9, 0x63, 0xd2, 0x90, 0xfc, 0x81, 0xe4, 0xad, 0xa8, 0xa8, 0x42, - 0xdb, 0x00, 0x24, 0x5e, 0xd0, 0x93, 0x94, 0x6f, 0x1a, 0x62, 0x41, 0xb3, 0xd7, 0x86, 0x16, 0x25, - 0xa1, 0x77, 0x42, 0x7c, 0x57, 0x74, 0xf6, 0x5f, 0x19, 0x8d, 0x56, 0xa7, 0x63, 0x7f, 0x5b, 0x83, - 0xba, 0x4a, 0xe1, 0xb9, 0x7a, 0x15, 0x4d, 0x54, 0xec, 0x72, 0x91, 0x84, 0x7a, 0xb9, 0xb5, 0xbc, - 0x26, 0x77, 0xf5, 0x66, 0xe4, 0x36, 0xae, 0x4d, 0xee, 0xa7, 0x9a, 0x27, 0xaa, 0x72, 0x3f, 0xbd, - 0x8c, 0x77, 0x05, 0xba, 0x60, 0x72, 0xa4, 0xf9, 0xf2, 0xf5, 0xb9, 0xe2, 0xbd, 0x77, 0xa9, 0xff, - 0x05, 0x85, 0xbb, 0x69, 0x47, 0xe6, 0x35, 0xdb, 0xd1, 0xe9, 0x32, 0xea, 0x9c, 0x2d, 0xa3, 0x9b, - 0xf1, 0x37, 0x84, 0xad, 0x53, 0x3f, 0xb5, 0x2e, 0x99, 0xf2, 0x0d, 0x4a, 0xa6, 0x50, 0x81, 0x95, - 0xd3, 0x15, 0xb8, 0xd7, 0x02, 0x58, 0xac, 0x1d, 0x7a, 0xdf, 0xfe, 0x9f, 0xaa, 0xa5, 0x48, 0xf5, - 0xca, 0x0d, 0xa9, 0x6e, 0xff, 0xb3, 0x0e, 0xd5, 0x83, 0x17, 0xce, 0x29, 0xc6, 0x95, 0xcf, 0x30, - 0xae, 0x0b, 0x26, 0x89, 0xbd, 0x79, 0x48, 0xd4, 0x1f, 0x35, 0x70, 0x2e, 0x8a, 0xd0, 0x8c, 0x7b, - 0x94, 0xdf, 0xa8, 0xca, 0xa4, 0x87, 0xc3, 0xd0, 0x63, 0xa8, 0xa7, 0x1e, 0x15, 0x1d, 0xce, 0xb8, - 0xec, 0x78, 0x0f, 0x5e, 0x38, 0xfd, 0xa9, 0xc4, 0x60, 0x8d, 0x45, 0x8f, 0xa0, 0xf6, 0xfb, 0x8c, - 0xd0, 0x93, 0x6e, 0x4d, 0xce, 0xc6, 0xdb, 0x17, 0x3b, 0xfd, 0x5a, 0x40, 0xb0, 0x42, 0xf6, 0x66, - 0x50, 0x57, 0x8b, 0xa0, 0x16, 0x94, 0x8f, 0xf5, 0xcd, 0xa9, 0x7c, 0x2c, 0x6e, 0xad, 0x5e, 0x98, - 0xae, 0x3c, 0x7d, 0x59, 0x52, 0x02, 0xfa, 0x04, 0xda, 0x7e, 0xc0, 0x7e, 0x27, 0x86, 0x91, 0x9b, - 0x7a, 0x7c, 0xc5, 0xf4, 0x75, 0x69, 0x2b, 0xd7, 0x4e, 0x85, 0xb2, 0xf7, 0x17, 0x03, 0x6a, 0x32, - 0xca, 0xb9, 0xe2, 0xfd, 0x18, 0xda, 0xdc, 0xa3, 0x4b, 0xc2, 0xdd, 0xd3, 0x33, 0xb7, 0xa5, 0xb4, - 0x53, 0x35, 0x79, 0x6d, 0xd8, 0x92, 0xb7, 0x64, 0x57, 0x90, 0xdf, 0x8d, 0xf2, 0x28, 0x4d, 0xa9, - 0x14, 0x67, 0xf6, 0x4a, 0xde, 0xe9, 0x14, 0x86, 0x71, 0x92, 0xaa, 0x63, 0x32, 0x30, 0x48, 0xd5, - 0x4c, 0x68, 0xc4, 0x9d, 0x53, 0xc7, 0x60, 0xf2, 0x3c, 0x2c, 0x6c, 0xaa, 0xc1, 0xce, 0xd0, 0xd7, - 0xa2, 0xf4, 0x83, 0xe5, 0x92, 0xa8, 0x3b, 0x6c, 0x7b, 0xf0, 0xd1, 0x7b, 0x4e, 0xaa, 0xef, 0x28, - 0x28, 0xce, 0x7d, 0xd0, 0x63, 0x30, 0xf8, 0x49, 0x9a, 0x8f, 0xd0, 0xbb, 0xef, 0xf5, 0x3d, 0x49, - 0x09, 0x96, 0x68, 0xf4, 0x14, 0xea, 0x54, 0x3e, 0x0c, 0xe4, 0x2c, 0x6d, 0x0f, 0xec, 0xf7, 0xf9, - 0xa9, 0x27, 0x04, 0xd6, 0x1e, 0xa2, 0x02, 0x18, 0x89, 0x25, 0x95, 0xac, 0xeb, 0x56, 0x80, 0x70, - 0x70, 0x98, 0x78, 0xb2, 0xe8, 0x1f, 0x40, 0x26, 0x54, 0x77, 0xa7, 0xa3, 0x4e, 0x09, 0x6d, 0x81, - 0x75, 0x30, 0x9a, 0xed, 0x4f, 0x0e, 0x87, 0xf8, 0xb7, 0x9d, 0xb2, 0xfd, 0x39, 0x18, 0x62, 0x9f, - 0xa8, 0x09, 0xe6, 0xfe, 0x64, 0xec, 0x0c, 0xc7, 0x4e, 0xa7, 0x84, 0x5a, 0xd0, 0x98, 0xe2, 0xc9, - 0xe1, 0xe8, 0x60, 0x88, 0x3b, 0x65, 0x64, 0x41, 0xed, 0x70, 0xf7, 0xe5, 0xeb, 0x61, 0xa7, 0x62, - 0x3f, 0x85, 0xba, 0xda, 0x9d, 0xc0, 0xcf, 0x5e, 0xef, 0xef, 0x0f, 0x67, 0xb3, 0x4e, 0x49, 0x20, - 0x86, 0x18, 0x4f, 0x04, 0xb8, 0x09, 0xa6, 0x33, 0x7a, 0x35, 0x9c, 0xbc, 0x76, 0x3a, 0x15, 0x21, - 0x4c, 0x87, 0xe3, 0x83, 0xd1, 0xf8, 0x79, 0xa7, 0x6a, 0x67, 0x00, 0xb3, 0x6c, 0xce, 0x4e, 0x18, - 0x27, 0x11, 0x43, 0xbf, 0x84, 0xe6, 0xa6, 0xe4, 0xd5, 0x65, 0xef, 0x8a, 0x46, 0x82, 0x8b, 0x0e, - 0xe8, 0x33, 0xa8, 0xfa, 0xab, 0xfc, 0xbe, 0xf9, 0xa3, 0x0b, 0x8f, 0x13, 0x0b, 0x84, 0xfd, 0xe7, - 0x2a, 0xd4, 0x44, 0x6f, 0x94, 0x4d, 0x3f, 0xbf, 0x9b, 0x97, 0x2f, 0x6b, 0xfa, 0xfa, 0x85, 0xb7, - 0xb9, 0xb6, 0xef, 0x80, 0x49, 0xd5, 0x1b, 0x40, 0xc7, 0xba, 0xc0, 0x49, 0x3f, 0x12, 0x70, 0x8e, - 0x44, 0xcf, 0x00, 0xd8, 0xfa, 0x57, 0x75, 0x03, 0xb8, 0xe8, 0x9e, 0xb2, 0xc6, 0xe0, 0x02, 0xfe, - 0x7f, 0x1b, 0x4e, 0x5f, 0x01, 0x88, 0x67, 0x8b, 0xa7, 0x88, 0x52, 0xbb, 0x8a, 0x28, 0xd8, 0xd2, - 0x68, 0x87, 0xa1, 0x27, 0x85, 0x66, 0x55, 0xbf, 0xd2, 0x71, 0xdd, 0xa6, 0x1e, 0xc2, 0x07, 0x2c, - 0xf6, 0x52, 0xb6, 0x4a, 0xb8, 0xeb, 0x67, 0x54, 0xbe, 0x7f, 0x44, 0xbd, 0xaa, 0xe7, 0x1f, 0xca, - 0x6d, 0x07, 0xda, 0xf4, 0x8a, 0x3d, 0x18, 0x8a, 0xb9, 0x2e, 0xa7, 0x13, 0x40, 0x7d, 0x77, 0xdf, - 0x19, 0x1d, 0x0e, 0x3b, 0x25, 0xf1, 0xbd, 0xff, 0x72, 0x32, 0x1b, 0x1e, 0x28, 0xf6, 0x4c, 0xa6, - 0xc3, 0xb1, 0x20, 0x8c, 0x64, 0x8f, 0x30, 0x48, 0xf6, 0x6c, 0x28, 0x66, 0x3c, 0xf8, 0x18, 0x0c, - 0x31, 0xca, 0x05, 0x93, 0x47, 0xe3, 0x91, 0x33, 0xda, 0x75, 0x26, 0x58, 0x11, 0x1b, 0x0f, 0x67, - 0xd3, 0xc9, 0x58, 0xb2, 0x76, 0xaf, 0xfb, 0x8f, 0xb7, 0xdb, 0xe5, 0xef, 0xdf, 0x6e, 0x97, 0xff, - 0xf3, 0x76, 0xbb, 0xfc, 0xdd, 0xbb, 0xed, 0xd2, 0xf7, 0xef, 0xb6, 0x4b, 0xff, 0x7a, 0xb7, 0x5d, - 0x9a, 0xd7, 0xe5, 0x5f, 0xed, 0xfc, 0x37, 0x00, 0x00, 0xff, 0xff, 0x98, 0x28, 0x60, 0xfb, 0x48, - 0x10, 0x00, 0x00, + 0xc0, 0x17, 0x89, 0xac, 0xde, 0xb7, 0xb0, 0xa5, 0x34, 0x23, 0x9f, 0xa1, 0x01, 0x98, 0x4a, 0x10, + 0x59, 0xac, 0xde, 0x6f, 0x0e, 0xba, 0xe7, 0xc3, 0xa8, 0xd5, 0x70, 0x0e, 0xb4, 0xff, 0x66, 0x02, + 0xec, 0x27, 0x71, 0xac, 0x10, 0xa2, 0xf2, 0x02, 0x5f, 0x1f, 0x5a, 0x25, 0xf0, 0x8b, 0x07, 0x5f, + 0x29, 0x1e, 0x3c, 0x7a, 0x08, 0x75, 0xc6, 0x3d, 0x9e, 0x31, 0x99, 0xab, 0xf6, 0xc5, 0xa1, 0x84, + 0x1d, 0x6b, 0x1c, 0xba, 0x07, 0x2d, 0x4e, 0xbd, 0x98, 0xa5, 0x09, 0xe5, 0x79, 0x22, 0x5b, 0xb8, + 0xb9, 0xd6, 0x8d, 0x7c, 0xf4, 0x0c, 0x2c, 0xa2, 0xb3, 0xc9, 0x64, 0x6d, 0x35, 0x07, 0xdb, 0xe7, + 0xd7, 0x2d, 0x26, 0x1c, 0x6f, 0x1c, 0xd0, 0x2e, 0x34, 0x04, 0x15, 0xc3, 0x20, 0x26, 0xb2, 0xfa, + 0x9a, 0x83, 0x4f, 0xce, 0x3b, 0x6f, 0xfe, 0xb5, 0xef, 0x68, 0x30, 0x5e, 0xbb, 0xa1, 0x07, 0x60, + 0xd0, 0x24, 0x24, 0xb2, 0x42, 0xdb, 0x83, 0x0f, 0xcf, 0xbb, 0xe3, 0x24, 0x24, 0x58, 0x62, 0xd0, + 0x0e, 0x98, 0x3a, 0x51, 0xb2, 0x6a, 0x9b, 0x83, 0x5b, 0xe7, 0xe1, 0x9a, 0x40, 0x38, 0x47, 0xa2, + 0x5d, 0x30, 0x3d, 0xce, 0x69, 0x30, 0x67, 0xb2, 0x9c, 0x9b, 0x83, 0xcf, 0xde, 0xbb, 0xc5, 0x5d, + 0x89, 0xcd, 0x38, 0x61, 0x38, 0xf7, 0x13, 0x24, 0x08, 0x3d, 0x4e, 0xe2, 0xc5, 0x89, 0x1b, 0x33, + 0x59, 0xf7, 0x06, 0xb6, 0xb4, 0x66, 0xcc, 0xd0, 0xcf, 0x37, 0x24, 0x68, 0xca, 0x08, 0x3f, 0xb9, + 0x8c, 0x04, 0x82, 0x52, 0x6b, 0x22, 0xa0, 0x5b, 0x60, 0x2e, 0x92, 0x38, 0x16, 0x99, 0xe9, 0x88, + 0x4c, 0xbf, 0x28, 0xe1, 0xba, 0x50, 0x8c, 0x7c, 0x34, 0x00, 0x43, 0x7c, 0x75, 0x7f, 0x70, 0xd9, + 0x7a, 0x9b, 0x1d, 0xbf, 0x28, 0x61, 0x89, 0x45, 0x9f, 0x03, 0xca, 0x18, 0xa1, 0x6e, 0x4a, 0x93, + 0x37, 0x81, 0x4f, 0x7c, 0x97, 0x7b, 0x4b, 0xd6, 0x5d, 0x48, 0xca, 0x76, 0x84, 0x65, 0xaa, 0x0d, + 0x8e, 0xb7, 0x64, 0xbd, 0xbf, 0x97, 0xa1, 0x91, 0xa7, 0x03, 0x7d, 0x05, 0x66, 0x92, 0x92, 0xd8, + 0xe5, 0x4c, 0x97, 0x5a, 0xaf, 0xaf, 0x46, 0x4f, 0x3f, 0x1f, 0x3d, 0x32, 0x75, 0x72, 0xf4, 0xec, + 0x19, 0xdf, 0xfd, 0xfb, 0x4e, 0x19, 0xd7, 0x85, 0x83, 0x23, 0x28, 0xd0, 0xcc, 0xd2, 0x25, 0xf5, + 0x64, 0x40, 0xa6, 0x8b, 0xed, 0x6a, 0x77, 0xc8, 0x9d, 0x1c, 0x86, 0x7e, 0x01, 0x8d, 0x45, 0x98, + 0x30, 0x22, 0xfc, 0xab, 0xd7, 0xf4, 0x37, 0xa5, 0x87, 0xc3, 0x7a, 0x63, 0x80, 0x4d, 0xca, 0xd0, + 0x5d, 0x68, 0xca, 0x1e, 0x93, 0x86, 0xe4, 0x0f, 0x24, 0x6f, 0x45, 0x45, 0x15, 0xda, 0x06, 0x20, + 0xf1, 0x82, 0x9e, 0xa4, 0x7c, 0xd3, 0x10, 0x0b, 0x9a, 0xbd, 0x36, 0xb4, 0x28, 0x09, 0xbd, 0x13, + 0xe2, 0xbb, 0xa2, 0xb3, 0xff, 0xca, 0x68, 0xb4, 0x3a, 0x1d, 0xfb, 0xdb, 0x1a, 0xd4, 0x55, 0x0a, + 0xcf, 0xd5, 0xab, 0x68, 0xa2, 0x62, 0x97, 0x8b, 0x24, 0xd4, 0xcb, 0xad, 0xe5, 0x35, 0xb9, 0xab, + 0x37, 0x23, 0xb7, 0x71, 0x6d, 0x72, 0x3f, 0xd5, 0x3c, 0x51, 0x95, 0xfb, 0xe9, 0x65, 0xbc, 0x2b, + 0xd0, 0x05, 0x93, 0x23, 0xcd, 0x97, 0xaf, 0xcf, 0x15, 0xef, 0xbd, 0x4b, 0xfd, 0x2f, 0x28, 0xdc, + 0x4d, 0x3b, 0x32, 0xaf, 0xd9, 0x8e, 0x4e, 0x97, 0x51, 0xe7, 0x6c, 0x19, 0xdd, 0x8c, 0xbf, 0x21, + 0x6c, 0x9d, 0xfa, 0xa9, 0x75, 0xc9, 0x94, 0x6f, 0x50, 0x32, 0x85, 0x0a, 0xac, 0x9c, 0xae, 0xc0, + 0xbd, 0x16, 0xc0, 0x62, 0xed, 0xd0, 0xfb, 0xf6, 0xff, 0x54, 0x2d, 0x45, 0xaa, 0x57, 0x6e, 0x48, + 0x75, 0xfb, 0x9f, 0x75, 0xa8, 0x1e, 0xbc, 0x70, 0x4e, 0x31, 0xae, 0x7c, 0x86, 0x71, 0x5d, 0x30, + 0x49, 0xec, 0xcd, 0x43, 0xa2, 0xfe, 0xa8, 0x81, 0x73, 0x51, 0x84, 0x66, 0xdc, 0xa3, 0xfc, 0x46, + 0x55, 0x26, 0x3d, 0x1c, 0x86, 0x1e, 0x43, 0x3d, 0xf5, 0xa8, 0xe8, 0x70, 0xc6, 0x65, 0xc7, 0x7b, + 0xf0, 0xc2, 0xe9, 0x4f, 0x25, 0x06, 0x6b, 0x2c, 0x7a, 0x04, 0xb5, 0xdf, 0x67, 0x84, 0x9e, 0x74, + 0x6b, 0x72, 0x36, 0xde, 0xbe, 0xd8, 0xe9, 0xd7, 0x02, 0x82, 0x15, 0xb2, 0x37, 0x83, 0xba, 0x5a, + 0x04, 0xb5, 0xa0, 0x7c, 0xac, 0x6f, 0x4e, 0xe5, 0x63, 0x71, 0x6b, 0xf5, 0xc2, 0x74, 0xe5, 0xe9, + 0xcb, 0x92, 0x12, 0xd0, 0x27, 0xd0, 0xf6, 0x03, 0xf6, 0x3b, 0x31, 0x8c, 0xdc, 0xd4, 0xe3, 0x2b, + 0xa6, 0xaf, 0x4b, 0x5b, 0xb9, 0x76, 0x2a, 0x94, 0xbd, 0xbf, 0x18, 0x50, 0x93, 0x51, 0xce, 0x15, + 0xef, 0xc7, 0xd0, 0xe6, 0x1e, 0x5d, 0x12, 0xee, 0x9e, 0x9e, 0xb9, 0x2d, 0xa5, 0x9d, 0xaa, 0xc9, + 0x6b, 0xc3, 0x96, 0xbc, 0x25, 0xbb, 0x82, 0xfc, 0x6e, 0x94, 0x47, 0x69, 0x4a, 0xa5, 0x38, 0xb3, + 0x57, 0xf2, 0x4e, 0xa7, 0x30, 0x8c, 0x93, 0x54, 0x1d, 0x93, 0x81, 0x41, 0xaa, 0x66, 0x42, 0x23, + 0xee, 0x9c, 0x3a, 0x06, 0x93, 0xe7, 0x61, 0x61, 0x53, 0x0d, 0x76, 0x86, 0xbe, 0x16, 0xa5, 0x1f, + 0x2c, 0x97, 0x44, 0xdd, 0x61, 0xdb, 0x83, 0x8f, 0xde, 0x73, 0x52, 0x7d, 0x47, 0x41, 0x71, 0xee, + 0x83, 0x1e, 0x83, 0xc1, 0x4f, 0xd2, 0x7c, 0x84, 0xde, 0x7d, 0xaf, 0xef, 0x49, 0x4a, 0xb0, 0x44, + 0xa3, 0xa7, 0x50, 0xa7, 0xf2, 0x61, 0x20, 0x67, 0x69, 0x7b, 0x60, 0xbf, 0xcf, 0x4f, 0x3d, 0x21, + 0xb0, 0xf6, 0x10, 0x15, 0xc0, 0x48, 0x2c, 0xa9, 0x64, 0x5d, 0xb7, 0x02, 0x84, 0x83, 0xc3, 0xc4, + 0x93, 0x45, 0xff, 0x00, 0x32, 0xa1, 0xba, 0x3b, 0x1d, 0x75, 0x4a, 0x68, 0x0b, 0xac, 0x83, 0xd1, + 0x6c, 0x7f, 0x72, 0x38, 0xc4, 0xbf, 0xed, 0x94, 0xed, 0xcf, 0xc1, 0x10, 0xfb, 0x44, 0x4d, 0x30, + 0xf7, 0x27, 0x63, 0x67, 0x38, 0x76, 0x3a, 0x25, 0xd4, 0x82, 0xc6, 0x14, 0x4f, 0x0e, 0x47, 0x07, + 0x43, 0xdc, 0x29, 0x23, 0x0b, 0x6a, 0x87, 0xbb, 0x2f, 0x5f, 0x0f, 0x3b, 0x15, 0xfb, 0x29, 0xd4, + 0xd5, 0xee, 0x04, 0x7e, 0xf6, 0x7a, 0x7f, 0x7f, 0x38, 0x9b, 0x75, 0x4a, 0x02, 0x31, 0xc4, 0x78, + 0x22, 0xc0, 0x4d, 0x30, 0x9d, 0xd1, 0xab, 0xe1, 0xe4, 0xb5, 0xd3, 0xa9, 0x08, 0x61, 0x3a, 0x1c, + 0x1f, 0x8c, 0xc6, 0xcf, 0x3b, 0x55, 0x3b, 0x03, 0x98, 0x65, 0x73, 0x76, 0xc2, 0x38, 0x89, 0x18, + 0xfa, 0x25, 0x34, 0x37, 0x25, 0xaf, 0x2e, 0x7b, 0x57, 0x34, 0x12, 0x5c, 0x74, 0x40, 0x9f, 0x41, + 0xd5, 0x5f, 0xe5, 0xf7, 0xcd, 0x1f, 0x5d, 0x78, 0x9c, 0x58, 0x20, 0xec, 0x3f, 0x57, 0xa1, 0x26, + 0x7a, 0xa3, 0x6c, 0xfa, 0xf9, 0xdd, 0xbc, 0x7c, 0x59, 0xd3, 0xd7, 0x2f, 0xbc, 0xcd, 0xb5, 0x7d, + 0x07, 0x4c, 0xaa, 0xde, 0x00, 0x3a, 0xd6, 0x05, 0x4e, 0xfa, 0x91, 0x80, 0x73, 0x24, 0x7a, 0x06, + 0xc0, 0xd6, 0xbf, 0xaa, 0x1b, 0xc0, 0x45, 0xf7, 0x94, 0x35, 0x06, 0x17, 0xf0, 0xff, 0xdb, 0x70, + 0xfa, 0x0a, 0x40, 0x3c, 0x5b, 0x3c, 0x45, 0x94, 0xda, 0x55, 0x44, 0xc1, 0x96, 0x46, 0x3b, 0x0c, + 0x3d, 0x29, 0x34, 0xab, 0xfa, 0x95, 0x8e, 0xeb, 0x36, 0xf5, 0x10, 0x3e, 0x60, 0xb1, 0x97, 0xb2, + 0x55, 0xc2, 0x5d, 0x3f, 0xa3, 0xf2, 0xfd, 0x23, 0xea, 0x55, 0x3d, 0xff, 0x50, 0x6e, 0x3b, 0xd0, + 0xa6, 0x57, 0xec, 0xc1, 0x50, 0xcc, 0x75, 0x39, 0x9d, 0x00, 0xea, 0xbb, 0xfb, 0xce, 0xe8, 0x70, + 0xd8, 0x29, 0x89, 0xef, 0xfd, 0x97, 0x93, 0xd9, 0xf0, 0x40, 0xb1, 0x67, 0x32, 0x1d, 0x8e, 0x05, + 0x61, 0x24, 0x7b, 0x84, 0x41, 0xb2, 0x67, 0x43, 0x31, 0xe3, 0xc1, 0xc7, 0x60, 0x88, 0x51, 0x2e, + 0x98, 0x3c, 0x1a, 0x8f, 0x9c, 0xd1, 0xae, 0x33, 0xc1, 0x8a, 0xd8, 0x78, 0x38, 0x9b, 0x4e, 0xc6, + 0x92, 0xb5, 0x7b, 0xdd, 0x7f, 0xbc, 0xdd, 0x2e, 0x7f, 0xff, 0x76, 0xbb, 0xfc, 0x9f, 0xb7, 0xdb, + 0xe5, 0xef, 0xde, 0x6d, 0x97, 0xbe, 0x7f, 0xb7, 0x5d, 0xfa, 0xd7, 0xbb, 0xed, 0xd2, 0xbc, 0x2e, + 0xff, 0x6a, 0xe7, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd7, 0x2b, 0xfb, 0x74, 0x48, 0x10, 0x00, + 0x00, } func (m *Version) Marshal() (dAtA []byte, err error) { @@ -2254,11 +2254,18 @@ func (m *StreamList) MarshalTo(dAtA []byte) (int, error) { var l int _ = l if len(m.StreamIds) > 0 { - for _, b := range m.StreamIds { + for _, s := range m.StreamIds { dAtA[i] = 0xa i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(b))) - i += copy(dAtA[i:], b) + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) } } if len(m.Streams) > 0 { @@ -3148,8 +3155,8 @@ func (m *StreamList) Size() (n int) { var l int _ = l if len(m.StreamIds) > 0 { - for _, b := range m.StreamIds { - l = len(b) + for _, s := range m.StreamIds { + l = len(s) n += 1 + l + sovIntrospection(uint64(l)) } } @@ -4525,7 +4532,7 @@ func (m *StreamList) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field StreamIds", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -4535,23 +4542,23 @@ func (m *StreamList) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.StreamIds = append(m.StreamIds, make([]byte, postIndex-iNdEx)) - copy(m.StreamIds[len(m.StreamIds)-1], dAtA[iNdEx:postIndex]) + m.StreamIds = append(m.StreamIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 2: if wireType != 2 { diff --git a/introspection/pb/introspection.proto b/introspection/pb/introspection.proto index a99d1a2c..6e9faa8a 100644 --- a/introspection/pb/introspection.proto +++ b/introspection/pb/introspection.proto @@ -101,7 +101,7 @@ message StreamList { // doesn't support combining oneof and repeated. // // streams within this connection by reference. - repeated bytes stream_ids = 1; + repeated string stream_ids = 1; // streams within this connection by inlining. repeated Stream streams = 2; } From 6d6f8284b841aebbe08513214dff1075510d1d79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Mon, 10 Feb 2020 12:00:56 +0000 Subject: [PATCH 06/19] introspection.proto: make transport ID a string. --- introspection/pb/introspection.pb.go | 223 +++++++++++++-------------- introspection/pb/introspection.proto | 6 +- 2 files changed, 113 insertions(+), 116 deletions(-) diff --git a/introspection/pb/introspection.pb.go b/introspection/pb/introspection.pb.go index 4d8d06d1..76a3f6a3 100644 --- a/introspection/pb/introspection.pb.go +++ b/introspection/pb/introspection.pb.go @@ -724,7 +724,7 @@ type Connection struct { // the status of this connection. Status Status `protobuf:"varint,3,opt,name=status,proto3,enum=introspection.pb.Status" json:"status,omitempty"` // a reference to the transport managing this connection. - TransportId []byte `protobuf:"bytes,4,opt,name=transport_id,json=transportId,proto3" json:"transport_id,omitempty"` + TransportId string `protobuf:"bytes,4,opt,name=transport_id,json=transportId,proto3" json:"transport_id,omitempty"` // the endpoints participating in this connection. Endpoints *EndpointPair `protobuf:"bytes,5,opt,name=endpoints,proto3" json:"endpoints,omitempty"` // the timeline of the connection, see Connection.Timeline. @@ -827,11 +827,11 @@ func (m *Connection) GetStatus() Status { return Status_ACTIVE } -func (m *Connection) GetTransportId() []byte { +func (m *Connection) GetTransportId() string { if m != nil { return m.TransportId } - return nil + return "" } func (m *Connection) GetEndpoints() *EndpointPair { @@ -1862,113 +1862,112 @@ func init() { func init() { proto.RegisterFile("introspection.proto", fileDescriptor_53a8bedf9a75e10a) } var fileDescriptor_53a8bedf9a75e10a = []byte{ - // 1681 bytes of a gzipped FileDescriptorProto + // 1679 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4b, 0x93, 0x1b, 0x49, 0x11, 0xd6, 0xa3, 0xa5, 0x56, 0xa7, 0x34, 0x0a, 0x51, 0x2c, 0x8b, 0x2c, 0xc3, 0xd8, 0xee, 0x7d, 0x39, 0x1c, 0x8b, 0xd6, 0xd6, 0xd8, 0xc4, 0xae, 0xf1, 0x12, 0x31, 0x0f, 0x85, 0x2d, 0xc2, 0x96, 0x44, 0xa9, 0x3d, 0x01, 0xa7, 0x8e, 0x96, 0xba, 0x46, 0x6a, 0xa6, 0x5f, 0x54, 0x55, 0x7b, 0x99, 0x1b, 0xb1, 0x5c, 0x38, 0xee, 0x89, 0x23, 0xff, 0x81, 0x1f, 0x41, 0x04, 0x37, 0xf6, 0xc8, 0x0d, - 0xc2, 0xfe, 0x23, 0x44, 0x3d, 0x5a, 0xea, 0x79, 0x79, 0x66, 0x08, 0x6e, 0x9d, 0x99, 0x5f, 0x56, - 0x56, 0x57, 0x7e, 0x99, 0x59, 0x05, 0x3f, 0x0c, 0x62, 0x4e, 0x13, 0x96, 0x92, 0x05, 0x0f, 0x92, - 0xb8, 0x9f, 0xd2, 0x84, 0x27, 0xa8, 0x73, 0x46, 0x39, 0xef, 0xfd, 0x6c, 0x19, 0xf0, 0x55, 0x36, - 0xef, 0x2f, 0x92, 0xe8, 0x8b, 0x65, 0xb2, 0x4c, 0xbe, 0x90, 0xc0, 0x79, 0x76, 0x24, 0x25, 0x29, - 0xc8, 0x2f, 0xb5, 0x40, 0xef, 0xce, 0x32, 0x49, 0x96, 0x21, 0xd9, 0xa0, 0x78, 0x10, 0x11, 0xc6, - 0xbd, 0x28, 0x55, 0x00, 0xfb, 0x1e, 0x98, 0x87, 0x84, 0xb2, 0x20, 0x89, 0xd1, 0x87, 0x50, 0x8f, - 0xb3, 0x68, 0x4e, 0x68, 0xb7, 0x7c, 0xb7, 0x7c, 0x7f, 0x0b, 0x6b, 0xc9, 0x7e, 0x0e, 0x5b, 0x98, - 0xb0, 0x2c, 0xe4, 0xfb, 0x49, 0x16, 0x73, 0x42, 0xd1, 0x07, 0x50, 0xe3, 0x09, 0xf7, 0x42, 0x8d, - 0x53, 0x02, 0x6a, 0x43, 0x25, 0x39, 0xee, 0x56, 0xa4, 0xaa, 0x92, 0x1c, 0xa3, 0x0e, 0x54, 0x09, - 0xa5, 0xdd, 0xaa, 0x54, 0x88, 0x4f, 0xfb, 0xaf, 0x15, 0x68, 0xcf, 0xc2, 0xc0, 0x0f, 0xe2, 0x65, - 0xbe, 0xd4, 0x8f, 0xc1, 0x4c, 0xde, 0x10, 0xea, 0x3e, 0x8a, 0xf2, 0xa0, 0x42, 0x7c, 0x14, 0xad, - 0x0d, 0x4f, 0x22, 0xbd, 0xa4, 0x34, 0x3c, 0x89, 0xd0, 0x2d, 0x68, 0x28, 0x8f, 0x27, 0x91, 0x5e, - 0x5b, 0x02, 0x1f, 0x15, 0x4c, 0x3b, 0x0f, 0xa3, 0xae, 0xb1, 0x31, 0xed, 0x3c, 0x2c, 0x78, 0xad, - 0x68, 0xb7, 0x56, 0xf0, 0x5a, 0xd1, 0xb5, 0x69, 0xb0, 0xa2, 0xdd, 0xfa, 0xc6, 0x34, 0x28, 0x98, - 0x1e, 0xaf, 0x68, 0xd7, 0xdc, 0x98, 0x1e, 0x17, 0x4c, 0x5f, 0xae, 0x68, 0xb7, 0xb1, 0x31, 0x7d, - 0xb9, 0xa2, 0xe8, 0x36, 0x58, 0x2a, 0x96, 0x58, 0xd1, 0x92, 0x36, 0x89, 0x15, 0xf2, 0xda, 0x38, - 0x10, 0x6b, 0xc2, 0xc6, 0x28, 0x64, 0x7b, 0x0e, 0xd6, 0x81, 0xc7, 0xbd, 0xe7, 0x5e, 0xb6, 0x24, - 0x02, 0xb9, 0xc8, 0x22, 0x77, 0x7e, 0xc2, 0x09, 0x93, 0x87, 0x63, 0xe0, 0xc6, 0x22, 0x8b, 0xf6, - 0x84, 0x8c, 0xee, 0x40, 0x53, 0x18, 0x53, 0x6f, 0x71, 0x4c, 0x38, 0x93, 0x47, 0x64, 0x60, 0x58, - 0x64, 0xd1, 0x54, 0x69, 0xc4, 0xf9, 0x05, 0x31, 0xe3, 0xee, 0xfc, 0x1b, 0x79, 0x4a, 0x06, 0xae, - 0x0b, 0x71, 0xef, 0x1b, 0xfb, 0x8f, 0x65, 0x30, 0x71, 0x16, 0x0b, 0x1e, 0xa0, 0x4f, 0xa1, 0x1d, - 0x44, 0x69, 0x48, 0x22, 0x12, 0x73, 0x4f, 0x30, 0x4c, 0xc6, 0xb1, 0xf0, 0x19, 0x2d, 0xea, 0x82, - 0xf9, 0x46, 0x91, 0x44, 0x46, 0xb2, 0x70, 0x2e, 0xa2, 0x1e, 0x34, 0xd2, 0xd0, 0xe3, 0x47, 0x09, - 0x55, 0xd9, 0xb0, 0xf0, 0x5a, 0x16, 0x5b, 0x48, 0x09, 0xa1, 0x6e, 0xe0, 0xcb, 0x6c, 0x58, 0xb8, - 0x2e, 0xc4, 0x91, 0x6f, 0xff, 0x06, 0x5a, 0xc3, 0xd8, 0x4f, 0x93, 0x20, 0xe6, 0x53, 0x2f, 0xa0, - 0xe8, 0x23, 0xd8, 0x62, 0x74, 0xe1, 0x46, 0x59, 0xc8, 0x03, 0xcf, 0xf7, 0xa9, 0xde, 0x45, 0x8b, - 0xd1, 0xc5, 0xab, 0x5c, 0x27, 0x40, 0x3e, 0xe3, 0x05, 0x90, 0xda, 0x49, 0xcb, 0x67, 0x7c, 0x0d, - 0xb2, 0xff, 0x54, 0x06, 0xd3, 0xa1, 0xde, 0xd1, 0x51, 0xb0, 0x40, 0x4f, 0x01, 0xb8, 0xfa, 0x74, - 0x03, 0xf5, 0x63, 0xcd, 0xc1, 0xed, 0xfe, 0xd9, 0x82, 0xea, 0xaf, 0x0f, 0x1c, 0x5b, 0x1a, 0x3e, - 0x8a, 0xd1, 0x33, 0x68, 0xe6, 0xbe, 0x49, 0xc6, 0x65, 0xa8, 0x2b, 0x9c, 0xf3, 0x58, 0x93, 0x8c, - 0xdb, 0x2e, 0xc0, 0x8c, 0x53, 0xe2, 0x45, 0x2f, 0x03, 0xc6, 0xd1, 0x4f, 0x01, 0x98, 0x94, 0xdc, - 0xc0, 0x17, 0x89, 0xac, 0xde, 0xb7, 0xb0, 0xa5, 0x34, 0x23, 0x9f, 0xa1, 0x01, 0x98, 0x4a, 0x10, - 0x59, 0xac, 0xde, 0x6f, 0x0e, 0xba, 0xe7, 0xc3, 0xa8, 0xd5, 0x70, 0x0e, 0xb4, 0xff, 0x66, 0x02, - 0xec, 0x27, 0x71, 0xac, 0x10, 0xa2, 0xf2, 0x02, 0x5f, 0x1f, 0x5a, 0x25, 0xf0, 0x8b, 0x07, 0x5f, - 0x29, 0x1e, 0x3c, 0x7a, 0x08, 0x75, 0xc6, 0x3d, 0x9e, 0x31, 0x99, 0xab, 0xf6, 0xc5, 0xa1, 0x84, - 0x1d, 0x6b, 0x1c, 0xba, 0x07, 0x2d, 0x4e, 0xbd, 0x98, 0xa5, 0x09, 0xe5, 0x79, 0x22, 0x5b, 0xb8, - 0xb9, 0xd6, 0x8d, 0x7c, 0xf4, 0x0c, 0x2c, 0xa2, 0xb3, 0xc9, 0x64, 0x6d, 0x35, 0x07, 0xdb, 0xe7, - 0xd7, 0x2d, 0x26, 0x1c, 0x6f, 0x1c, 0xd0, 0x2e, 0x34, 0x04, 0x15, 0xc3, 0x20, 0x26, 0xb2, 0xfa, - 0x9a, 0x83, 0x4f, 0xce, 0x3b, 0x6f, 0xfe, 0xb5, 0xef, 0x68, 0x30, 0x5e, 0xbb, 0xa1, 0x07, 0x60, - 0xd0, 0x24, 0x24, 0xb2, 0x42, 0xdb, 0x83, 0x0f, 0xcf, 0xbb, 0xe3, 0x24, 0x24, 0x58, 0x62, 0xd0, - 0x0e, 0x98, 0x3a, 0x51, 0xb2, 0x6a, 0x9b, 0x83, 0x5b, 0xe7, 0xe1, 0x9a, 0x40, 0x38, 0x47, 0xa2, - 0x5d, 0x30, 0x3d, 0xce, 0x69, 0x30, 0x67, 0xb2, 0x9c, 0x9b, 0x83, 0xcf, 0xde, 0xbb, 0xc5, 0x5d, - 0x89, 0xcd, 0x38, 0x61, 0x38, 0xf7, 0x13, 0x24, 0x08, 0x3d, 0x4e, 0xe2, 0xc5, 0x89, 0x1b, 0x33, - 0x59, 0xf7, 0x06, 0xb6, 0xb4, 0x66, 0xcc, 0xd0, 0xcf, 0x37, 0x24, 0x68, 0xca, 0x08, 0x3f, 0xb9, - 0x8c, 0x04, 0x82, 0x52, 0x6b, 0x22, 0xa0, 0x5b, 0x60, 0x2e, 0x92, 0x38, 0x16, 0x99, 0xe9, 0x88, - 0x4c, 0xbf, 0x28, 0xe1, 0xba, 0x50, 0x8c, 0x7c, 0x34, 0x00, 0x43, 0x7c, 0x75, 0x7f, 0x70, 0xd9, - 0x7a, 0x9b, 0x1d, 0xbf, 0x28, 0x61, 0x89, 0x45, 0x9f, 0x03, 0xca, 0x18, 0xa1, 0x6e, 0x4a, 0x93, - 0x37, 0x81, 0x4f, 0x7c, 0x97, 0x7b, 0x4b, 0xd6, 0x5d, 0x48, 0xca, 0x76, 0x84, 0x65, 0xaa, 0x0d, - 0x8e, 0xb7, 0x64, 0xbd, 0xbf, 0x97, 0xa1, 0x91, 0xa7, 0x03, 0x7d, 0x05, 0x66, 0x92, 0x92, 0xd8, - 0xe5, 0x4c, 0x97, 0x5a, 0xaf, 0xaf, 0x46, 0x4f, 0x3f, 0x1f, 0x3d, 0x32, 0x75, 0x72, 0xf4, 0xec, - 0x19, 0xdf, 0xfd, 0xfb, 0x4e, 0x19, 0xd7, 0x85, 0x83, 0x23, 0x28, 0xd0, 0xcc, 0xd2, 0x25, 0xf5, - 0x64, 0x40, 0xa6, 0x8b, 0xed, 0x6a, 0x77, 0xc8, 0x9d, 0x1c, 0x86, 0x7e, 0x01, 0x8d, 0x45, 0x98, - 0x30, 0x22, 0xfc, 0xab, 0xd7, 0xf4, 0x37, 0xa5, 0x87, 0xc3, 0x7a, 0x63, 0x80, 0x4d, 0xca, 0xd0, - 0x5d, 0x68, 0xca, 0x1e, 0x93, 0x86, 0xe4, 0x0f, 0x24, 0x6f, 0x45, 0x45, 0x15, 0xda, 0x06, 0x20, - 0xf1, 0x82, 0x9e, 0xa4, 0x7c, 0xd3, 0x10, 0x0b, 0x9a, 0xbd, 0x36, 0xb4, 0x28, 0x09, 0xbd, 0x13, - 0xe2, 0xbb, 0xa2, 0xb3, 0xff, 0xca, 0x68, 0xb4, 0x3a, 0x1d, 0xfb, 0xdb, 0x1a, 0xd4, 0x55, 0x0a, - 0xcf, 0xd5, 0xab, 0x68, 0xa2, 0x62, 0x97, 0x8b, 0x24, 0xd4, 0xcb, 0xad, 0xe5, 0x35, 0xb9, 0xab, - 0x37, 0x23, 0xb7, 0x71, 0x6d, 0x72, 0x3f, 0xd5, 0x3c, 0x51, 0x95, 0xfb, 0xe9, 0x65, 0xbc, 0x2b, - 0xd0, 0x05, 0x93, 0x23, 0xcd, 0x97, 0xaf, 0xcf, 0x15, 0xef, 0xbd, 0x4b, 0xfd, 0x2f, 0x28, 0xdc, - 0x4d, 0x3b, 0x32, 0xaf, 0xd9, 0x8e, 0x4e, 0x97, 0x51, 0xe7, 0x6c, 0x19, 0xdd, 0x8c, 0xbf, 0x21, - 0x6c, 0x9d, 0xfa, 0xa9, 0x75, 0xc9, 0x94, 0x6f, 0x50, 0x32, 0x85, 0x0a, 0xac, 0x9c, 0xae, 0xc0, - 0xbd, 0x16, 0xc0, 0x62, 0xed, 0xd0, 0xfb, 0xf6, 0xff, 0x54, 0x2d, 0x45, 0xaa, 0x57, 0x6e, 0x48, - 0x75, 0xfb, 0x9f, 0x75, 0xa8, 0x1e, 0xbc, 0x70, 0x4e, 0x31, 0xae, 0x7c, 0x86, 0x71, 0x5d, 0x30, - 0x49, 0xec, 0xcd, 0x43, 0xa2, 0xfe, 0xa8, 0x81, 0x73, 0x51, 0x84, 0x66, 0xdc, 0xa3, 0xfc, 0x46, - 0x55, 0x26, 0x3d, 0x1c, 0x86, 0x1e, 0x43, 0x3d, 0xf5, 0xa8, 0xe8, 0x70, 0xc6, 0x65, 0xc7, 0x7b, - 0xf0, 0xc2, 0xe9, 0x4f, 0x25, 0x06, 0x6b, 0x2c, 0x7a, 0x04, 0xb5, 0xdf, 0x67, 0x84, 0x9e, 0x74, - 0x6b, 0x72, 0x36, 0xde, 0xbe, 0xd8, 0xe9, 0xd7, 0x02, 0x82, 0x15, 0xb2, 0x37, 0x83, 0xba, 0x5a, - 0x04, 0xb5, 0xa0, 0x7c, 0xac, 0x6f, 0x4e, 0xe5, 0x63, 0x71, 0x6b, 0xf5, 0xc2, 0x74, 0xe5, 0xe9, - 0xcb, 0x92, 0x12, 0xd0, 0x27, 0xd0, 0xf6, 0x03, 0xf6, 0x3b, 0x31, 0x8c, 0xdc, 0xd4, 0xe3, 0x2b, - 0xa6, 0xaf, 0x4b, 0x5b, 0xb9, 0x76, 0x2a, 0x94, 0xbd, 0xbf, 0x18, 0x50, 0x93, 0x51, 0xce, 0x15, - 0xef, 0xc7, 0xd0, 0xe6, 0x1e, 0x5d, 0x12, 0xee, 0x9e, 0x9e, 0xb9, 0x2d, 0xa5, 0x9d, 0xaa, 0xc9, - 0x6b, 0xc3, 0x96, 0xbc, 0x25, 0xbb, 0x82, 0xfc, 0x6e, 0x94, 0x47, 0x69, 0x4a, 0xa5, 0x38, 0xb3, - 0x57, 0xf2, 0x4e, 0xa7, 0x30, 0x8c, 0x93, 0x54, 0x1d, 0x93, 0x81, 0x41, 0xaa, 0x66, 0x42, 0x23, - 0xee, 0x9c, 0x3a, 0x06, 0x93, 0xe7, 0x61, 0x61, 0x53, 0x0d, 0x76, 0x86, 0xbe, 0x16, 0xa5, 0x1f, - 0x2c, 0x97, 0x44, 0xdd, 0x61, 0xdb, 0x83, 0x8f, 0xde, 0x73, 0x52, 0x7d, 0x47, 0x41, 0x71, 0xee, - 0x83, 0x1e, 0x83, 0xc1, 0x4f, 0xd2, 0x7c, 0x84, 0xde, 0x7d, 0xaf, 0xef, 0x49, 0x4a, 0xb0, 0x44, - 0xa3, 0xa7, 0x50, 0xa7, 0xf2, 0x61, 0x20, 0x67, 0x69, 0x7b, 0x60, 0xbf, 0xcf, 0x4f, 0x3d, 0x21, - 0xb0, 0xf6, 0x10, 0x15, 0xc0, 0x48, 0x2c, 0xa9, 0x64, 0x5d, 0xb7, 0x02, 0x84, 0x83, 0xc3, 0xc4, - 0x93, 0x45, 0xff, 0x00, 0x32, 0xa1, 0xba, 0x3b, 0x1d, 0x75, 0x4a, 0x68, 0x0b, 0xac, 0x83, 0xd1, - 0x6c, 0x7f, 0x72, 0x38, 0xc4, 0xbf, 0xed, 0x94, 0xed, 0xcf, 0xc1, 0x10, 0xfb, 0x44, 0x4d, 0x30, - 0xf7, 0x27, 0x63, 0x67, 0x38, 0x76, 0x3a, 0x25, 0xd4, 0x82, 0xc6, 0x14, 0x4f, 0x0e, 0x47, 0x07, - 0x43, 0xdc, 0x29, 0x23, 0x0b, 0x6a, 0x87, 0xbb, 0x2f, 0x5f, 0x0f, 0x3b, 0x15, 0xfb, 0x29, 0xd4, - 0xd5, 0xee, 0x04, 0x7e, 0xf6, 0x7a, 0x7f, 0x7f, 0x38, 0x9b, 0x75, 0x4a, 0x02, 0x31, 0xc4, 0x78, - 0x22, 0xc0, 0x4d, 0x30, 0x9d, 0xd1, 0xab, 0xe1, 0xe4, 0xb5, 0xd3, 0xa9, 0x08, 0x61, 0x3a, 0x1c, - 0x1f, 0x8c, 0xc6, 0xcf, 0x3b, 0x55, 0x3b, 0x03, 0x98, 0x65, 0x73, 0x76, 0xc2, 0x38, 0x89, 0x18, - 0xfa, 0x25, 0x34, 0x37, 0x25, 0xaf, 0x2e, 0x7b, 0x57, 0x34, 0x12, 0x5c, 0x74, 0x40, 0x9f, 0x41, - 0xd5, 0x5f, 0xe5, 0xf7, 0xcd, 0x1f, 0x5d, 0x78, 0x9c, 0x58, 0x20, 0xec, 0x3f, 0x57, 0xa1, 0x26, - 0x7a, 0xa3, 0x6c, 0xfa, 0xf9, 0xdd, 0xbc, 0x7c, 0x59, 0xd3, 0xd7, 0x2f, 0xbc, 0xcd, 0xb5, 0x7d, - 0x07, 0x4c, 0xaa, 0xde, 0x00, 0x3a, 0xd6, 0x05, 0x4e, 0xfa, 0x91, 0x80, 0x73, 0x24, 0x7a, 0x06, - 0xc0, 0xd6, 0xbf, 0xaa, 0x1b, 0xc0, 0x45, 0xf7, 0x94, 0x35, 0x06, 0x17, 0xf0, 0xff, 0xdb, 0x70, - 0xfa, 0x0a, 0x40, 0x3c, 0x5b, 0x3c, 0x45, 0x94, 0xda, 0x55, 0x44, 0xc1, 0x96, 0x46, 0x3b, 0x0c, - 0x3d, 0x29, 0x34, 0xab, 0xfa, 0x95, 0x8e, 0xeb, 0x36, 0xf5, 0x10, 0x3e, 0x60, 0xb1, 0x97, 0xb2, - 0x55, 0xc2, 0x5d, 0x3f, 0xa3, 0xf2, 0xfd, 0x23, 0xea, 0x55, 0x3d, 0xff, 0x50, 0x6e, 0x3b, 0xd0, - 0xa6, 0x57, 0xec, 0xc1, 0x50, 0xcc, 0x75, 0x39, 0x9d, 0x00, 0xea, 0xbb, 0xfb, 0xce, 0xe8, 0x70, - 0xd8, 0x29, 0x89, 0xef, 0xfd, 0x97, 0x93, 0xd9, 0xf0, 0x40, 0xb1, 0x67, 0x32, 0x1d, 0x8e, 0x05, - 0x61, 0x24, 0x7b, 0x84, 0x41, 0xb2, 0x67, 0x43, 0x31, 0xe3, 0xc1, 0xc7, 0x60, 0x88, 0x51, 0x2e, - 0x98, 0x3c, 0x1a, 0x8f, 0x9c, 0xd1, 0xae, 0x33, 0xc1, 0x8a, 0xd8, 0x78, 0x38, 0x9b, 0x4e, 0xc6, - 0x92, 0xb5, 0x7b, 0xdd, 0x7f, 0xbc, 0xdd, 0x2e, 0x7f, 0xff, 0x76, 0xbb, 0xfc, 0x9f, 0xb7, 0xdb, - 0xe5, 0xef, 0xde, 0x6d, 0x97, 0xbe, 0x7f, 0xb7, 0x5d, 0xfa, 0xd7, 0xbb, 0xed, 0xd2, 0xbc, 0x2e, - 0xff, 0x6a, 0xe7, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd7, 0x2b, 0xfb, 0x74, 0x48, 0x10, 0x00, - 0x00, + 0xc2, 0xfe, 0x23, 0x44, 0x55, 0xf5, 0x6b, 0x5e, 0x9e, 0x19, 0x82, 0x5b, 0x67, 0xe6, 0x97, 0x95, + 0xd5, 0x95, 0x5f, 0x66, 0x56, 0xc1, 0x0f, 0xbd, 0x90, 0xd3, 0x88, 0xc5, 0x64, 0xc5, 0xbd, 0x28, + 0x1c, 0xc6, 0x34, 0xe2, 0x11, 0xea, 0x9d, 0x51, 0x2e, 0x07, 0x3f, 0x5b, 0x7b, 0x7c, 0x93, 0x2c, + 0x87, 0xab, 0x28, 0xf8, 0x62, 0x1d, 0xad, 0xa3, 0x2f, 0x24, 0x70, 0x99, 0x1c, 0x49, 0x49, 0x0a, + 0xf2, 0x4b, 0x2d, 0x30, 0xb8, 0xb3, 0x8e, 0xa2, 0xb5, 0x4f, 0x0a, 0x14, 0xf7, 0x02, 0xc2, 0xb8, + 0x13, 0xc4, 0x0a, 0x60, 0xde, 0x03, 0xfd, 0x90, 0x50, 0xe6, 0x45, 0x21, 0xfa, 0x10, 0x9a, 0x61, + 0x12, 0x2c, 0x09, 0xed, 0x57, 0xef, 0x56, 0xef, 0x6f, 0xe1, 0x54, 0x32, 0x9f, 0xc3, 0x16, 0x26, + 0x2c, 0xf1, 0xf9, 0x7e, 0x94, 0x84, 0x9c, 0x50, 0xf4, 0x01, 0x34, 0x78, 0xc4, 0x1d, 0x3f, 0xc5, + 0x29, 0x01, 0x75, 0xa1, 0x16, 0x1d, 0xf7, 0x6b, 0x52, 0x55, 0x8b, 0x8e, 0x51, 0x0f, 0xea, 0x84, + 0xd2, 0x7e, 0x5d, 0x2a, 0xc4, 0xa7, 0xf9, 0xd7, 0x1a, 0x74, 0x17, 0xbe, 0xe7, 0x7a, 0xe1, 0x3a, + 0x5b, 0xea, 0xc7, 0xa0, 0x47, 0x6f, 0x08, 0xb5, 0x1f, 0x05, 0x59, 0x50, 0x21, 0x3e, 0x0a, 0x72, + 0xc3, 0x93, 0x20, 0x5d, 0x52, 0x1a, 0x9e, 0x04, 0xe8, 0x16, 0xb4, 0x94, 0xc7, 0x93, 0x20, 0x5d, + 0x5b, 0x02, 0x1f, 0x95, 0x4c, 0x3b, 0x0f, 0x83, 0xbe, 0x56, 0x98, 0x76, 0x1e, 0x96, 0xbc, 0x36, + 0xb4, 0xdf, 0x28, 0x79, 0x6d, 0x68, 0x6e, 0x1a, 0x6d, 0x68, 0xbf, 0x59, 0x98, 0x46, 0x25, 0xd3, + 0xe3, 0x0d, 0xed, 0xeb, 0x85, 0xe9, 0x71, 0xc9, 0xf4, 0xe5, 0x86, 0xf6, 0x5b, 0x85, 0xe9, 0xcb, + 0x0d, 0x45, 0xb7, 0xc1, 0x50, 0xb1, 0xc4, 0x8a, 0x86, 0xb4, 0x49, 0xac, 0x90, 0x73, 0xe3, 0x48, + 0xac, 0x09, 0x85, 0x51, 0xc8, 0xe6, 0x12, 0x8c, 0x03, 0x87, 0x3b, 0xcf, 0x9d, 0x64, 0x4d, 0x04, + 0x72, 0x95, 0x04, 0xf6, 0xf2, 0x84, 0x13, 0x26, 0x0f, 0x47, 0xc3, 0xad, 0x55, 0x12, 0xec, 0x09, + 0x19, 0xdd, 0x81, 0xb6, 0x30, 0xc6, 0xce, 0xea, 0x98, 0x70, 0x26, 0x8f, 0x48, 0xc3, 0xb0, 0x4a, + 0x82, 0xb9, 0xd2, 0x88, 0xf3, 0xf3, 0x42, 0xc6, 0xed, 0xe5, 0x37, 0xf2, 0x94, 0x34, 0xdc, 0x14, + 0xe2, 0xde, 0x37, 0xe6, 0x1f, 0xab, 0xa0, 0xe3, 0x24, 0x14, 0x3c, 0x40, 0x9f, 0x42, 0xd7, 0x0b, + 0x62, 0x9f, 0x04, 0x24, 0xe4, 0x8e, 0x60, 0x98, 0x8c, 0x63, 0xe0, 0x33, 0x5a, 0xd4, 0x07, 0xfd, + 0x8d, 0x22, 0x89, 0x8c, 0x64, 0xe0, 0x4c, 0x44, 0x03, 0x68, 0xc5, 0xbe, 0xc3, 0x8f, 0x22, 0xaa, + 0xb2, 0x61, 0xe0, 0x5c, 0x16, 0x5b, 0x88, 0x09, 0xa1, 0xb6, 0xe7, 0xca, 0x6c, 0x18, 0xb8, 0x29, + 0xc4, 0x89, 0x6b, 0xfe, 0x06, 0x3a, 0xe3, 0xd0, 0x8d, 0x23, 0x2f, 0xe4, 0x73, 0xc7, 0xa3, 0xe8, + 0x23, 0xd8, 0x62, 0x74, 0x65, 0x07, 0x89, 0xcf, 0x3d, 0xc7, 0x75, 0x69, 0xba, 0x8b, 0x0e, 0xa3, + 0xab, 0x57, 0x99, 0x4e, 0x80, 0x5c, 0xc6, 0x4b, 0x20, 0xb5, 0x93, 0x8e, 0xcb, 0x78, 0x0e, 0x32, + 0xff, 0x54, 0x05, 0xdd, 0xa2, 0xce, 0xd1, 0x91, 0xb7, 0x42, 0x4f, 0x01, 0xb8, 0xfa, 0xb4, 0x3d, + 0xf5, 0x63, 0xed, 0xd1, 0xed, 0xe1, 0xd9, 0x82, 0x1a, 0xe6, 0x07, 0x8e, 0x8d, 0x14, 0x3e, 0x09, + 0xd1, 0x33, 0x68, 0x67, 0xbe, 0x51, 0xc2, 0x65, 0xa8, 0x2b, 0x9c, 0xb3, 0x58, 0xb3, 0x84, 0x9b, + 0x36, 0xc0, 0x82, 0x53, 0xe2, 0x04, 0x2f, 0x3d, 0xc6, 0xd1, 0x4f, 0x01, 0x98, 0x94, 0x6c, 0xcf, + 0x15, 0x89, 0xac, 0xdf, 0x37, 0xb0, 0xa1, 0x34, 0x13, 0x97, 0xa1, 0x11, 0xe8, 0x4a, 0x10, 0x59, + 0xac, 0xdf, 0x6f, 0x8f, 0xfa, 0xe7, 0xc3, 0xa8, 0xd5, 0x70, 0x06, 0x34, 0xff, 0xa6, 0x03, 0xec, + 0x47, 0x61, 0xa8, 0x10, 0xa2, 0xf2, 0x3c, 0x37, 0x3d, 0xb4, 0x9a, 0xe7, 0x96, 0x0f, 0xbe, 0x56, + 0x3e, 0x78, 0xf4, 0x10, 0x9a, 0x8c, 0x3b, 0x3c, 0x61, 0x32, 0x57, 0xdd, 0x8b, 0x43, 0x09, 0x3b, + 0x4e, 0x71, 0xe8, 0x1e, 0x74, 0x38, 0x75, 0x42, 0x16, 0x47, 0x94, 0x17, 0x89, 0x6c, 0xe7, 0xba, + 0x89, 0x8b, 0x9e, 0x81, 0x41, 0xd2, 0x6c, 0x32, 0x59, 0x5b, 0xed, 0xd1, 0xf6, 0xf9, 0x75, 0xcb, + 0x09, 0xc7, 0x85, 0x03, 0xda, 0x85, 0x96, 0xa0, 0xa2, 0xef, 0x85, 0x44, 0x56, 0x5f, 0x7b, 0xf4, + 0xc9, 0x79, 0xe7, 0xe2, 0x5f, 0x87, 0x56, 0x0a, 0xc6, 0xb9, 0x1b, 0x7a, 0x00, 0x1a, 0x8d, 0x7c, + 0x22, 0x2b, 0xb4, 0x3b, 0xfa, 0xf0, 0xbc, 0x3b, 0x8e, 0x7c, 0x82, 0x25, 0x06, 0xed, 0x80, 0x9e, + 0x26, 0x4a, 0x56, 0x6d, 0x7b, 0x74, 0xeb, 0x3c, 0x3c, 0x25, 0x10, 0xce, 0x90, 0x68, 0x17, 0x74, + 0x87, 0x73, 0xea, 0x2d, 0x99, 0x2c, 0xe7, 0xf6, 0xe8, 0xb3, 0xf7, 0x6e, 0x71, 0x57, 0x62, 0x13, + 0x4e, 0x18, 0xce, 0xfc, 0x04, 0x09, 0x7c, 0x87, 0x93, 0x70, 0x75, 0x62, 0x87, 0x4c, 0xd6, 0xbd, + 0x86, 0x8d, 0x54, 0x33, 0x65, 0xe8, 0xe7, 0x05, 0x09, 0xda, 0x32, 0xc2, 0x4f, 0x2e, 0x23, 0x81, + 0xa0, 0x54, 0x4e, 0x04, 0x74, 0x0b, 0xf4, 0x55, 0x14, 0x86, 0x22, 0x33, 0x3d, 0x91, 0x99, 0x17, + 0x15, 0xdc, 0x14, 0x8a, 0x89, 0x8b, 0x46, 0xa0, 0x89, 0xaf, 0xfe, 0x0f, 0x2e, 0x5b, 0xaf, 0xd8, + 0xf1, 0x8b, 0x0a, 0x96, 0x58, 0xf4, 0x39, 0xa0, 0x84, 0x11, 0x6a, 0xc7, 0x34, 0x7a, 0xe3, 0xb9, + 0xc4, 0xb5, 0xb9, 0xb3, 0x66, 0xfd, 0x95, 0xa4, 0x6c, 0x4f, 0x58, 0xe6, 0xa9, 0xc1, 0x72, 0xd6, + 0x6c, 0xf0, 0xf7, 0x2a, 0xb4, 0xb2, 0x74, 0xa0, 0xaf, 0x40, 0x8f, 0x62, 0x12, 0xda, 0x9c, 0xa5, + 0xa5, 0x36, 0x18, 0xaa, 0xd1, 0x33, 0xcc, 0x46, 0x8f, 0x4c, 0x9d, 0x1c, 0x3d, 0x7b, 0xda, 0x77, + 0xff, 0xbe, 0x53, 0xc5, 0x4d, 0xe1, 0x60, 0x09, 0x0a, 0xb4, 0x93, 0x78, 0x4d, 0x1d, 0x19, 0x90, + 0xa5, 0xc5, 0x76, 0xb5, 0x3b, 0x64, 0x4e, 0x16, 0x43, 0xbf, 0x80, 0xd6, 0xca, 0x8f, 0x18, 0x11, + 0xfe, 0xf5, 0x6b, 0xfa, 0xeb, 0xd2, 0xc3, 0x62, 0x83, 0x29, 0x40, 0x91, 0x32, 0x74, 0x17, 0xda, + 0xb2, 0xc7, 0xc4, 0x3e, 0xf9, 0x03, 0xc9, 0x5a, 0x51, 0x59, 0x85, 0xb6, 0x01, 0x48, 0xb8, 0xa2, + 0x27, 0x31, 0x2f, 0x1a, 0x62, 0x49, 0xb3, 0xd7, 0x85, 0x0e, 0x25, 0xbe, 0x73, 0x42, 0x5c, 0x5b, + 0x74, 0xf6, 0x5f, 0x69, 0xad, 0x4e, 0xaf, 0x67, 0x7e, 0xdb, 0x80, 0xa6, 0x4a, 0xe1, 0xb9, 0x7a, + 0x15, 0x4d, 0x54, 0xec, 0x72, 0x15, 0xf9, 0xe9, 0x72, 0xb9, 0x9c, 0x93, 0xbb, 0x7e, 0x33, 0x72, + 0x6b, 0xd7, 0x26, 0xf7, 0xd3, 0x94, 0x27, 0xaa, 0x72, 0x3f, 0xbd, 0x8c, 0x77, 0x25, 0xba, 0x60, + 0x72, 0x94, 0xf2, 0xe5, 0xeb, 0x73, 0xc5, 0x7b, 0xef, 0x52, 0xff, 0x0b, 0x0a, 0xb7, 0x68, 0x47, + 0xfa, 0x35, 0xdb, 0xd1, 0xe9, 0x32, 0xea, 0x9d, 0x2d, 0xa3, 0x9b, 0xf1, 0xd7, 0x87, 0xad, 0x53, + 0x3f, 0x95, 0x97, 0x4c, 0xf5, 0x06, 0x25, 0x53, 0xaa, 0xc0, 0xda, 0xe9, 0x0a, 0xdc, 0xeb, 0x00, + 0xac, 0x72, 0x87, 0xc1, 0xb7, 0xff, 0xa7, 0x6a, 0x29, 0x53, 0xbd, 0x76, 0x43, 0xaa, 0x9b, 0xff, + 0x6c, 0x42, 0xfd, 0xe0, 0x85, 0x75, 0x8a, 0x71, 0xd5, 0x33, 0x8c, 0xeb, 0x83, 0x4e, 0x42, 0x67, + 0xe9, 0x13, 0xf5, 0x47, 0x2d, 0x9c, 0x89, 0x22, 0x34, 0xe3, 0x0e, 0xe5, 0x37, 0xaa, 0x32, 0xe9, + 0x61, 0x31, 0xf4, 0x18, 0x9a, 0xb1, 0x43, 0x45, 0x87, 0xd3, 0x2e, 0x3b, 0xde, 0x83, 0x17, 0xd6, + 0x70, 0x2e, 0x31, 0x38, 0xc5, 0xa2, 0x47, 0xd0, 0xf8, 0x7d, 0x42, 0xe8, 0x49, 0xbf, 0x21, 0x67, + 0xe3, 0xed, 0x8b, 0x9d, 0x7e, 0x2d, 0x20, 0x58, 0x21, 0x07, 0x0b, 0x68, 0xaa, 0x45, 0x50, 0x07, + 0xaa, 0xc7, 0xe9, 0xcd, 0xa9, 0x7a, 0x2c, 0x6e, 0xad, 0x8e, 0x1f, 0x6f, 0x9c, 0xf4, 0xb2, 0xa4, + 0x04, 0xf4, 0x09, 0x74, 0x5d, 0x8f, 0xfd, 0x4e, 0x0c, 0x23, 0x3b, 0x76, 0xf8, 0x86, 0xa5, 0xd7, + 0xa5, 0xad, 0x4c, 0x3b, 0x17, 0xca, 0xc1, 0x5f, 0x34, 0x68, 0xc8, 0x28, 0xe7, 0x8a, 0xf7, 0x63, + 0xe8, 0x72, 0x87, 0xae, 0x09, 0xb7, 0x4f, 0xcf, 0xdc, 0x8e, 0xd2, 0xce, 0xd5, 0xe4, 0x35, 0x61, + 0x4b, 0xde, 0x92, 0x6d, 0x41, 0x7e, 0x3b, 0xc8, 0xa2, 0xb4, 0xa5, 0x52, 0x9c, 0xd9, 0x2b, 0x79, + 0xa7, 0x53, 0x18, 0xc6, 0x49, 0xac, 0x8e, 0x49, 0xc3, 0x20, 0x55, 0x0b, 0xa1, 0x11, 0x77, 0xce, + 0x34, 0x06, 0x93, 0xe7, 0x61, 0x60, 0x5d, 0x0d, 0x76, 0x86, 0xbe, 0x16, 0xa5, 0xef, 0xad, 0xd7, + 0x44, 0xdd, 0x61, 0xbb, 0xa3, 0x8f, 0xde, 0x73, 0x52, 0x43, 0x4b, 0x41, 0x71, 0xe6, 0x83, 0x1e, + 0x83, 0xc6, 0x4f, 0xe2, 0x6c, 0x84, 0xde, 0x7d, 0xaf, 0xef, 0x49, 0x4c, 0xb0, 0x44, 0xa3, 0xa7, + 0xd0, 0xa4, 0xf2, 0x61, 0x20, 0x67, 0x69, 0x77, 0x64, 0xbe, 0xcf, 0x4f, 0x3d, 0x21, 0x70, 0xea, + 0x21, 0x2a, 0x80, 0x91, 0x50, 0x52, 0xc9, 0xb8, 0x6e, 0x05, 0x08, 0x07, 0x8b, 0x89, 0x27, 0x4b, + 0xfa, 0x03, 0x48, 0x87, 0xfa, 0xee, 0x7c, 0xd2, 0xab, 0xa0, 0x2d, 0x30, 0x0e, 0x26, 0x8b, 0xfd, + 0xd9, 0xe1, 0x18, 0xff, 0xb6, 0x57, 0x35, 0x3f, 0x07, 0x4d, 0xec, 0x13, 0xb5, 0x41, 0xdf, 0x9f, + 0x4d, 0xad, 0xf1, 0xd4, 0xea, 0x55, 0x50, 0x07, 0x5a, 0x73, 0x3c, 0x3b, 0x9c, 0x1c, 0x8c, 0x71, + 0xaf, 0x8a, 0x0c, 0x68, 0x1c, 0xee, 0xbe, 0x7c, 0x3d, 0xee, 0xd5, 0xcc, 0xa7, 0xd0, 0x54, 0xbb, + 0x13, 0xf8, 0xc5, 0xeb, 0xfd, 0xfd, 0xf1, 0x62, 0xd1, 0xab, 0x08, 0xc4, 0x18, 0xe3, 0x99, 0x00, + 0xb7, 0x41, 0xb7, 0x26, 0xaf, 0xc6, 0xb3, 0xd7, 0x56, 0xaf, 0x26, 0x84, 0xf9, 0x78, 0x7a, 0x30, + 0x99, 0x3e, 0xef, 0xd5, 0xcd, 0x04, 0x60, 0x91, 0x2c, 0xd9, 0x09, 0xe3, 0x24, 0x60, 0xe8, 0x97, + 0xd0, 0x2e, 0x4a, 0x5e, 0x5d, 0xf6, 0xae, 0x68, 0x24, 0xb8, 0xec, 0x80, 0x3e, 0x83, 0xba, 0xbb, + 0xc9, 0xee, 0x9b, 0x3f, 0xba, 0xf0, 0x38, 0xb1, 0x40, 0x98, 0x7f, 0xae, 0x43, 0x43, 0xf4, 0x46, + 0xd9, 0xf4, 0xb3, 0xbb, 0x79, 0xf5, 0xb2, 0xa6, 0x9f, 0xbe, 0xf0, 0x8a, 0x6b, 0xfb, 0x0e, 0xe8, + 0x54, 0xbd, 0x01, 0xd2, 0x58, 0x17, 0x38, 0xa5, 0x8f, 0x04, 0x9c, 0x21, 0xd1, 0x33, 0x00, 0x96, + 0xff, 0x6a, 0xda, 0x00, 0x2e, 0xba, 0xa7, 0xe4, 0x18, 0x5c, 0xc2, 0xff, 0x6f, 0xc3, 0xe9, 0x2b, + 0x00, 0xf1, 0x6c, 0x71, 0x14, 0x51, 0x1a, 0x57, 0x11, 0x05, 0x1b, 0x29, 0xda, 0x62, 0xe8, 0x49, + 0xa9, 0x59, 0x35, 0xaf, 0x74, 0xcc, 0xdb, 0xd4, 0x43, 0xf8, 0x80, 0x85, 0x4e, 0xcc, 0x36, 0x11, + 0xb7, 0xdd, 0x84, 0xca, 0xf7, 0x8f, 0xa8, 0x57, 0xf5, 0xfc, 0x43, 0x99, 0xed, 0x20, 0x35, 0xbd, + 0x62, 0x0f, 0xc6, 0x62, 0xae, 0xcb, 0xe9, 0x04, 0xd0, 0xdc, 0xdd, 0xb7, 0x26, 0x87, 0xe3, 0x5e, + 0x45, 0x7c, 0xef, 0xbf, 0x9c, 0x2d, 0xc6, 0x07, 0x8a, 0x3d, 0xb3, 0xf9, 0x78, 0x2a, 0x08, 0x23, + 0xd9, 0x23, 0x0c, 0x92, 0x3d, 0x05, 0xc5, 0xb4, 0x07, 0x1f, 0x83, 0x26, 0x46, 0xb9, 0x60, 0xf2, + 0x64, 0x3a, 0xb1, 0x26, 0xbb, 0xd6, 0x0c, 0x2b, 0x62, 0xe3, 0xf1, 0x62, 0x3e, 0x9b, 0x4a, 0xd6, + 0xee, 0xf5, 0xff, 0xf1, 0x76, 0xbb, 0xfa, 0xfd, 0xdb, 0xed, 0xea, 0x7f, 0xde, 0x6e, 0x57, 0xbf, + 0x7b, 0xb7, 0x5d, 0xf9, 0xfe, 0xdd, 0x76, 0xe5, 0x5f, 0xef, 0xb6, 0x2b, 0xcb, 0xa6, 0xfc, 0xab, + 0x9d, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x5e, 0xda, 0xeb, 0x7e, 0x48, 0x10, 0x00, 0x00, } func (m *Version) Marshal() (dAtA []byte, err error) { @@ -4734,7 +4733,7 @@ func (m *Connection) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field TransportId", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -4744,25 +4743,23 @@ func (m *Connection) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.TransportId = append(m.TransportId[:0], dAtA[iNdEx:postIndex]...) - if m.TransportId == nil { - m.TransportId = []byte{} - } + m.TransportId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: if wireType != 2 { diff --git a/introspection/pb/introspection.proto b/introspection/pb/introspection.proto index 6e9faa8a..1919905c 100644 --- a/introspection/pb/introspection.proto +++ b/introspection/pb/introspection.proto @@ -101,7 +101,7 @@ message StreamList { // doesn't support combining oneof and repeated. // // streams within this connection by reference. - repeated string stream_ids = 1; + repeated string stream_ids = 1; // streams within this connection by inlining. repeated Stream streams = 2; } @@ -134,7 +134,7 @@ message Connection { // the status of this connection. Status status = 3; // a reference to the transport managing this connection. - bytes transport_id = 4; + string transport_id = 4; // the endpoints participating in this connection. EndpointPair endpoints = 5; // the timeline of the connection, see Connection.Timeline. @@ -155,7 +155,7 @@ message Connection { // if this is a relayed connection, this points to the relaying connection. // a default value here (empty bytes) indicates this is not a relayed connection. oneof relayed_over { - string conn_id = 16; + string conn_id = 16; Connection conn = 17; } // user provided tags. From d47936597d5b2fef39ee9b90db2b5bb069673860 Mon Sep 17 00:00:00 2001 From: Aarsh Shah Date: Tue, 14 Apr 2020 17:14:38 +0530 Subject: [PATCH 07/19] first draft --- introspection/introspect.go | 7 + introspection/pb/introspection.pb.go | 7246 ++++++++++++++++---------- introspection/pb/introspection.proto | 236 +- 3 files changed, 4751 insertions(+), 2738 deletions(-) diff --git a/introspection/introspect.go b/introspection/introspect.go index a6fbf037..87781f7b 100644 --- a/introspection/introspect.go +++ b/introspection/introspect.go @@ -5,6 +5,9 @@ import introspection_pb "github.com/libp2p/go-libp2p-core/introspection/pb" // ProtoVersion is the current version of the introspection protocol. const ProtoVersion uint32 = 1 +// ProtoVersionPb is the proto representation of the current introspection protocol. +var ProtoVersionPb *introspection_pb.Version = &introspection_pb.Version{Version: ProtoVersion} + // EXPERIMENTAL. Introspector allows other sub-systems/modules to register // metrics/data providers AND also enables clients to fetch the current state of // the system. @@ -21,4 +24,8 @@ type Introspector interface { // calling all known data providers and returning a merged cross-cut of the // running system. FetchFullState() (*introspection_pb.State, error) + + // EXPERIMENTAL. FetchRuntime returns the runtime information + // of the system. + FetchRuntime() (*introspection_pb.Runtime, error) } diff --git a/introspection/pb/introspection.pb.go b/introspection/pb/introspection.pb.go index 76a3f6a3..d354e494 100644 --- a/introspection/pb/introspection.pb.go +++ b/introspection/pb/introspection.pb.go @@ -1,30 +1,27 @@ // Code generated by protoc-gen-gogo. DO NOT EDIT. // source: introspection.proto -package introspection_pb +package introspection import ( fmt "fmt" - _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" - github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" types "github.com/gogo/protobuf/types" io "io" math "math" - time "time" + math_bits "math/bits" ) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf -var _ = time.Kitchen // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // The status of a connection or stream. type Status int32 @@ -87,97 +84,150 @@ func (Role) EnumDescriptor() ([]byte, []int) { return fileDescriptor_53a8bedf9a75e10a, []int{1} } -// Trigger of the query. -type DHT_Query_Trigger int32 +// tell listener how to sort, filter or display known content properties +type Runtime_EventProperty_PropertyType int32 const ( - DHT_Query_API DHT_Query_Trigger = 0 - DHT_Query_DISCOVERY DHT_Query_Trigger = 1 + // treat as a simple primitive + Runtime_EventProperty_STRING Runtime_EventProperty_PropertyType = 0 + Runtime_EventProperty_NUMBER Runtime_EventProperty_PropertyType = 2 + // apply human-readable formatting + Runtime_EventProperty_TIME Runtime_EventProperty_PropertyType = 10 + Runtime_EventProperty_PEERID Runtime_EventProperty_PropertyType = 11 + // embedded arrays and/or object trees + Runtime_EventProperty_JSON Runtime_EventProperty_PropertyType = 90 ) -var DHT_Query_Trigger_name = map[int32]string{ - 0: "API", - 1: "DISCOVERY", +var Runtime_EventProperty_PropertyType_name = map[int32]string{ + 0: "STRING", + 2: "NUMBER", + 10: "TIME", + 11: "PEERID", + 90: "JSON", } -var DHT_Query_Trigger_value = map[string]int32{ - "API": 0, - "DISCOVERY": 1, +var Runtime_EventProperty_PropertyType_value = map[string]int32{ + "STRING": 0, + "NUMBER": 2, + "TIME": 10, + "PEERID": 11, + "JSON": 90, } -func (x DHT_Query_Trigger) String() string { - return proto.EnumName(DHT_Query_Trigger_name, int32(x)) +func (x Runtime_EventProperty_PropertyType) String() string { + return proto.EnumName(Runtime_EventProperty_PropertyType_name, int32(x)) } -func (DHT_Query_Trigger) EnumDescriptor() ([]byte, []int) { +func (Runtime_EventProperty_PropertyType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{4, 1, 0} +} + +// The DHT's relationship with this peer +type DHT_PeerInDHT_Status int32 + +const ( + // Connected, in a bucket, ready to send/receive queries + DHT_PeerInDHT_ACTIVE DHT_PeerInDHT_Status = 0 + // Not currently connected, still "in" a bucket (e.g. temporarily disconnected) + DHT_PeerInDHT_MISSING DHT_PeerInDHT_Status = 1 + // Removed from a bucket or candidate list (e.g. connection lost or too slow) + DHT_PeerInDHT_REJECTED DHT_PeerInDHT_Status = 2 + // Was reachable when last checked, waiting to join a currently-full bucket + DHT_PeerInDHT_CANDIDATE DHT_PeerInDHT_Status = 3 +) + +var DHT_PeerInDHT_Status_name = map[int32]string{ + 0: "ACTIVE", + 1: "MISSING", + 2: "REJECTED", + 3: "CANDIDATE", +} + +var DHT_PeerInDHT_Status_value = map[string]int32{ + "ACTIVE": 0, + "MISSING": 1, + "REJECTED": 2, + "CANDIDATE": 3, +} + +func (x DHT_PeerInDHT_Status) String() string { + return proto.EnumName(DHT_PeerInDHT_Status_name, int32(x)) +} + +func (DHT_PeerInDHT_Status) EnumDescriptor() ([]byte, []int) { return fileDescriptor_53a8bedf9a75e10a, []int{10, 1, 0} } -// Type of the query. -type DHT_Query_Type int32 +// The signal to be sent to the server +type ClientSignal_Signal int32 const ( - DHT_Query_CONTENT DHT_Query_Type = 0 - DHT_Query_PROVIDER DHT_Query_Type = 1 - DHT_Query_VALUE DHT_Query_Type = 2 + // SEND_DATA is used for pull-based data emitters + ClientSignal_SEND_DATA ClientSignal_Signal = 0 + // START_PUSH_EMITTER, STOP_PUSH_EMITTER, PAUSE_PUSH_EMITTER & UNPAUSE_PUSH_EMITTER + // are all used in the operation of push-based data emitters + ClientSignal_START_PUSH_EMITTER ClientSignal_Signal = 1 + ClientSignal_STOP_PUSH_EMITTER ClientSignal_Signal = 2 + ClientSignal_PAUSE_PUSH_EMITTER ClientSignal_Signal = 3 + ClientSignal_UNPAUSE_PUSH_EMITTER ClientSignal_Signal = 4 + ClientSignal_CONFIG_EMITTER ClientSignal_Signal = 10 ) -var DHT_Query_Type_name = map[int32]string{ - 0: "CONTENT", - 1: "PROVIDER", - 2: "VALUE", +var ClientSignal_Signal_name = map[int32]string{ + 0: "SEND_DATA", + 1: "START_PUSH_EMITTER", + 2: "STOP_PUSH_EMITTER", + 3: "PAUSE_PUSH_EMITTER", + 4: "UNPAUSE_PUSH_EMITTER", + 10: "CONFIG_EMITTER", } -var DHT_Query_Type_value = map[string]int32{ - "CONTENT": 0, - "PROVIDER": 1, - "VALUE": 2, +var ClientSignal_Signal_value = map[string]int32{ + "SEND_DATA": 0, + "START_PUSH_EMITTER": 1, + "STOP_PUSH_EMITTER": 2, + "PAUSE_PUSH_EMITTER": 3, + "UNPAUSE_PUSH_EMITTER": 4, + "CONFIG_EMITTER": 10, } -func (x DHT_Query_Type) String() string { - return proto.EnumName(DHT_Query_Type_name, int32(x)) +func (x ClientSignal_Signal) String() string { + return proto.EnumName(ClientSignal_Signal_name, int32(x)) } -func (DHT_Query_Type) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{10, 1, 1} +func (ClientSignal_Signal) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{15, 0} } -// Status indicating the result of the query -type DHT_Query_Result int32 +// The source the data is expected to come from +type ClientSignal_DataSource int32 const ( - DHT_Query_SUCCESS DHT_Query_Result = 0 - DHT_Query_ERROR DHT_Query_Result = 1 - DHT_Query_TIMEOUT DHT_Query_Result = 2 - // Pending queries may be absent, depending on data collection - DHT_Query_PENDING DHT_Query_Result = 3 + ClientSignal_STATE ClientSignal_DataSource = 0 + ClientSignal_RUNTIME ClientSignal_DataSource = 1 ) -var DHT_Query_Result_name = map[int32]string{ - 0: "SUCCESS", - 1: "ERROR", - 2: "TIMEOUT", - 3: "PENDING", +var ClientSignal_DataSource_name = map[int32]string{ + 0: "STATE", + 1: "RUNTIME", } -var DHT_Query_Result_value = map[string]int32{ - "SUCCESS": 0, - "ERROR": 1, - "TIMEOUT": 2, - "PENDING": 3, +var ClientSignal_DataSource_value = map[string]int32{ + "STATE": 0, + "RUNTIME": 1, } -func (x DHT_Query_Result) String() string { - return proto.EnumName(DHT_Query_Result_name, int32(x)) +func (x ClientSignal_DataSource) String() string { + return proto.EnumName(ClientSignal_DataSource_name, int32(x)) } -func (DHT_Query_Result) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{10, 1, 2} +func (ClientSignal_DataSource) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{15, 1} } // Version of schema type Version struct { - Number uint32 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"` + Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` } func (m *Version) Reset() { *m = Version{} } @@ -194,7 +244,7 @@ func (m *Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Version.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -213,9 +263,9 @@ func (m *Version) XXX_DiscardUnknown() { var xxx_messageInfo_Version proto.InternalMessageInfo -func (m *Version) GetNumber() uint32 { +func (m *Version) GetVersion() uint32 { if m != nil { - return m.Number + return m.Version } return 0 } @@ -241,7 +291,7 @@ func (m *ResultCounter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error return xxx_messageInfo_ResultCounter.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -320,7 +370,7 @@ func (m *SlidingCounter) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro return xxx_messageInfo_SlidingCounter.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -433,7 +483,7 @@ func (m *DataGauge) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DataGauge.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -483,6 +533,12 @@ type Runtime struct { Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform,omitempty"` // our peer id - the peer id of the host system PeerId string `protobuf:"bytes,4,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + // length of time to keep stale data + KeepStaleDataMs uint32 `protobuf:"varint,5,opt,name=keep_stale_data_ms,json=keepStaleDataMs,proto3" json:"keep_stale_data_ms,omitempty"` + // frequency to send new states + SendStateIntervalMs uint32 `protobuf:"varint,6,opt,name=send_state_interval_ms,json=sendStateIntervalMs,proto3" json:"send_state_interval_ms,omitempty"` + // metadata describing configured event types + EventTypes []*Runtime_EventType `protobuf:"bytes,7,rep,name=event_types,json=eventTypes,proto3" json:"event_types,omitempty"` } func (m *Runtime) Reset() { *m = Runtime{} } @@ -499,7 +555,7 @@ func (m *Runtime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Runtime.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -546,6 +602,135 @@ func (m *Runtime) GetPeerId() string { return "" } +func (m *Runtime) GetKeepStaleDataMs() uint32 { + if m != nil { + return m.KeepStaleDataMs + } + return 0 +} + +func (m *Runtime) GetSendStateIntervalMs() uint32 { + if m != nil { + return m.SendStateIntervalMs + } + return 0 +} + +func (m *Runtime) GetEventTypes() []*Runtime_EventType { + if m != nil { + return m.EventTypes + } + return nil +} + +// metadata about types of event data being sent +type Runtime_EventType struct { + // Name of event type e.g. PeerConnecting + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Properties []*Runtime_EventProperty `protobuf:"bytes,2,rep,name=properties,proto3" json:"properties,omitempty"` +} + +func (m *Runtime_EventType) Reset() { *m = Runtime_EventType{} } +func (m *Runtime_EventType) String() string { return proto.CompactTextString(m) } +func (*Runtime_EventType) ProtoMessage() {} +func (*Runtime_EventType) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{4, 0} +} +func (m *Runtime_EventType) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Runtime_EventType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Runtime_EventType.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Runtime_EventType) XXX_Merge(src proto.Message) { + xxx_messageInfo_Runtime_EventType.Merge(m, src) +} +func (m *Runtime_EventType) XXX_Size() int { + return m.Size() +} +func (m *Runtime_EventType) XXX_DiscardUnknown() { + xxx_messageInfo_Runtime_EventType.DiscardUnknown(m) +} + +var xxx_messageInfo_Runtime_EventType proto.InternalMessageInfo + +func (m *Runtime_EventType) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Runtime_EventType) GetProperties() []*Runtime_EventProperty { + if m != nil { + return m.Properties + } + return nil +} + +// metadata about content types in event's key:value content field +type Runtime_EventProperty struct { + // property name of content e.g. openTs + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type Runtime_EventProperty_PropertyType `protobuf:"varint,2,opt,name=type,proto3,enum=introspection.Runtime_EventProperty_PropertyType" json:"type,omitempty"` +} + +func (m *Runtime_EventProperty) Reset() { *m = Runtime_EventProperty{} } +func (m *Runtime_EventProperty) String() string { return proto.CompactTextString(m) } +func (*Runtime_EventProperty) ProtoMessage() {} +func (*Runtime_EventProperty) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{4, 1} +} +func (m *Runtime_EventProperty) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Runtime_EventProperty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Runtime_EventProperty.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Runtime_EventProperty) XXX_Merge(src proto.Message) { + xxx_messageInfo_Runtime_EventProperty.Merge(m, src) +} +func (m *Runtime_EventProperty) XXX_Size() int { + return m.Size() +} +func (m *Runtime_EventProperty) XXX_DiscardUnknown() { + xxx_messageInfo_Runtime_EventProperty.DiscardUnknown(m) +} + +var xxx_messageInfo_Runtime_EventProperty proto.InternalMessageInfo + +func (m *Runtime_EventProperty) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Runtime_EventProperty) GetType() Runtime_EventProperty_PropertyType { + if m != nil { + return m.Type + } + return Runtime_EventProperty_STRING +} + // EndpointPair is a pair of multiaddrs. type EndpointPair struct { // the source multiaddr. @@ -568,7 +753,7 @@ func (m *EndpointPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) return xxx_messageInfo_EndpointPair.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -623,7 +808,7 @@ func (m *Traffic) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Traffic.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -662,7 +847,7 @@ type StreamList struct { // doesn't support combining oneof and repeated. // // streams within this connection by reference. - StreamIds []string `protobuf:"bytes,1,rep,name=stream_ids,json=streamIds,proto3" json:"stream_ids,omitempty"` + StreamIds [][]byte `protobuf:"bytes,1,rep,name=stream_ids,json=streamIds,proto3" json:"stream_ids,omitempty"` // streams within this connection by inlining. Streams []*Stream `protobuf:"bytes,2,rep,name=streams,proto3" json:"streams,omitempty"` } @@ -681,7 +866,7 @@ func (m *StreamList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StreamList.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -700,7 +885,7 @@ func (m *StreamList) XXX_DiscardUnknown() { var xxx_messageInfo_StreamList proto.InternalMessageInfo -func (m *StreamList) GetStreamIds() []string { +func (m *StreamList) GetStreamIds() [][]byte { if m != nil { return m.StreamIds } @@ -718,19 +903,19 @@ func (m *StreamList) GetStreams() []*Stream { type Connection struct { // the id of this connection, not to be shown in user tooling, // used for (cross)referencing connections (e.g. relay). - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // the peer id of the other party. PeerId string `protobuf:"bytes,2,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` // the status of this connection. - Status Status `protobuf:"varint,3,opt,name=status,proto3,enum=introspection.pb.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,3,opt,name=status,proto3,enum=introspection.Status" json:"status,omitempty"` // a reference to the transport managing this connection. - TransportId string `protobuf:"bytes,4,opt,name=transport_id,json=transportId,proto3" json:"transport_id,omitempty"` + TransportId []byte `protobuf:"bytes,4,opt,name=transport_id,json=transportId,proto3" json:"transport_id,omitempty"` // the endpoints participating in this connection. Endpoints *EndpointPair `protobuf:"bytes,5,opt,name=endpoints,proto3" json:"endpoints,omitempty"` // the timeline of the connection, see Connection.Timeline. Timeline *Connection_Timeline `protobuf:"bytes,6,opt,name=timeline,proto3" json:"timeline,omitempty"` // our role in this connection. - Role Role `protobuf:"varint,7,opt,name=role,proto3,enum=introspection.pb.Role" json:"role,omitempty"` + Role Role `protobuf:"varint,7,opt,name=role,proto3,enum=introspection.Role" json:"role,omitempty"` // traffic statistics. Traffic *Traffic `protobuf:"bytes,8,opt,name=traffic,proto3" json:"traffic,omitempty"` // properties of this connection. @@ -764,7 +949,7 @@ func (m *Connection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Connection.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -790,10 +975,10 @@ type isConnection_RelayedOver interface { } type Connection_ConnId struct { - ConnId string `protobuf:"bytes,16,opt,name=conn_id,json=connId,proto3,oneof"` + ConnId []byte `protobuf:"bytes,16,opt,name=conn_id,json=connId,proto3,oneof" json:"conn_id,omitempty"` } type Connection_Conn struct { - Conn *Connection `protobuf:"bytes,17,opt,name=conn,proto3,oneof"` + Conn *Connection `protobuf:"bytes,17,opt,name=conn,proto3,oneof" json:"conn,omitempty"` } func (*Connection_ConnId) isConnection_RelayedOver() {} @@ -806,11 +991,11 @@ func (m *Connection) GetRelayedOver() isConnection_RelayedOver { return nil } -func (m *Connection) GetId() string { +func (m *Connection) GetId() []byte { if m != nil { return m.Id } - return "" + return nil } func (m *Connection) GetPeerId() string { @@ -827,11 +1012,11 @@ func (m *Connection) GetStatus() Status { return Status_ACTIVE } -func (m *Connection) GetTransportId() string { +func (m *Connection) GetTransportId() []byte { if m != nil { return m.TransportId } - return "" + return nil } func (m *Connection) GetEndpoints() *EndpointPair { @@ -883,11 +1068,11 @@ func (m *Connection) GetStreams() *StreamList { return nil } -func (m *Connection) GetConnId() string { +func (m *Connection) GetConnId() []byte { if x, ok := m.GetRelayedOver().(*Connection_ConnId); ok { return x.ConnId } - return "" + return nil } func (m *Connection) GetConn() *Connection { @@ -904,84 +1089,22 @@ func (m *Connection) GetUserProvidedTags() []string { return nil } -// XXX_OneofFuncs is for the internal use of the proto package. -func (*Connection) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _Connection_OneofMarshaler, _Connection_OneofUnmarshaler, _Connection_OneofSizer, []interface{}{ +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Connection) XXX_OneofWrappers() []interface{} { + return []interface{}{ (*Connection_ConnId)(nil), (*Connection_Conn)(nil), } } -func _Connection_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*Connection) - // relayed_over - switch x := m.RelayedOver.(type) { - case *Connection_ConnId: - _ = b.EncodeVarint(16<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.ConnId) - case *Connection_Conn: - _ = b.EncodeVarint(17<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Conn); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("Connection.RelayedOver has unexpected type %T", x) - } - return nil -} - -func _Connection_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*Connection) - switch tag { - case 16: // relayed_over.conn_id - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.RelayedOver = &Connection_ConnId{x} - return true, err - case 17: // relayed_over.conn - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Connection) - err := b.DecodeMessage(msg) - m.RelayedOver = &Connection_Conn{msg} - return true, err - default: - return false, nil - } -} - -func _Connection_OneofSizer(msg proto.Message) (n int) { - m := msg.(*Connection) - // relayed_over - switch x := m.RelayedOver.(type) { - case *Connection_ConnId: - n += 2 // tag and wire - n += proto.SizeVarint(uint64(len(x.ConnId))) - n += len(x.ConnId) - case *Connection_Conn: - s := proto.Size(x.Conn) - n += 2 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - // Timeline contains the timestamps of the well-known milestones of a connection. type Connection_Timeline struct { // the instant when a connection was opened on the wire. - OpenTs *time.Time `protobuf:"bytes,1,opt,name=open_ts,json=openTs,proto3,stdtime" json:"open_ts,omitempty"` + OpenTs *types.Timestamp `protobuf:"bytes,1,opt,name=open_ts,json=openTs,proto3" json:"open_ts,omitempty"` // the instant when the upgrade process (handshake, security, multiplexing) finished. - UpgradedTs *time.Time `protobuf:"bytes,2,opt,name=upgraded_ts,json=upgradedTs,proto3,stdtime" json:"upgraded_ts,omitempty"` + UpgradedTs *types.Timestamp `protobuf:"bytes,2,opt,name=upgraded_ts,json=upgradedTs,proto3" json:"upgraded_ts,omitempty"` // the instant when this connection was terminated. - CloseTs *time.Time `protobuf:"bytes,3,opt,name=close_ts,json=closeTs,proto3,stdtime" json:"close_ts,omitempty"` + CloseTs *types.Timestamp `protobuf:"bytes,3,opt,name=close_ts,json=closeTs,proto3" json:"close_ts,omitempty"` } func (m *Connection_Timeline) Reset() { *m = Connection_Timeline{} } @@ -998,7 +1121,7 @@ func (m *Connection_Timeline) XXX_Marshal(b []byte, deterministic bool) ([]byte, return xxx_messageInfo_Connection_Timeline.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -1017,21 +1140,21 @@ func (m *Connection_Timeline) XXX_DiscardUnknown() { var xxx_messageInfo_Connection_Timeline proto.InternalMessageInfo -func (m *Connection_Timeline) GetOpenTs() *time.Time { +func (m *Connection_Timeline) GetOpenTs() *types.Timestamp { if m != nil { return m.OpenTs } return nil } -func (m *Connection_Timeline) GetUpgradedTs() *time.Time { +func (m *Connection_Timeline) GetUpgradedTs() *types.Timestamp { if m != nil { return m.UpgradedTs } return nil } -func (m *Connection_Timeline) GetCloseTs() *time.Time { +func (m *Connection_Timeline) GetCloseTs() *types.Timestamp { if m != nil { return m.CloseTs } @@ -1060,7 +1183,7 @@ func (m *Connection_Attributes) XXX_Marshal(b []byte, deterministic bool) ([]byt return xxx_messageInfo_Connection_Attributes.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -1097,11 +1220,11 @@ func (m *Connection_Attributes) GetEncryption() string { type Stream struct { // the id of this stream, not to be shown in user tooling, // used for (cross)referencing streams. - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // the protocol pinned to this stream. Protocol string `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` // our role in this stream. - Role Role `protobuf:"varint,3,opt,name=role,proto3,enum=introspection.pb.Role" json:"role,omitempty"` + Role Role `protobuf:"varint,3,opt,name=role,proto3,enum=introspection.Role" json:"role,omitempty"` // traffic statistics. Traffic *Traffic `protobuf:"bytes,4,opt,name=traffic,proto3" json:"traffic,omitempty"` // the connection this stream is hosted under. @@ -1109,7 +1232,7 @@ type Stream struct { // the timeline of the stream, see Stream.Timeline. Timeline *Stream_Timeline `protobuf:"bytes,6,opt,name=timeline,proto3" json:"timeline,omitempty"` // the status of this stream. - Status Status `protobuf:"varint,7,opt,name=status,proto3,enum=introspection.pb.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,7,opt,name=status,proto3,enum=introspection.Status" json:"status,omitempty"` // the instantaneous latency of this stream in nanoseconds. // TODO: this is hard to calculate. LatencyNs uint64 `protobuf:"varint,16,opt,name=latency_ns,json=latencyNs,proto3" json:"latency_ns,omitempty"` @@ -1131,7 +1254,7 @@ func (m *Stream) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Stream.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -1150,11 +1273,11 @@ func (m *Stream) XXX_DiscardUnknown() { var xxx_messageInfo_Stream proto.InternalMessageInfo -func (m *Stream) GetId() string { +func (m *Stream) GetId() []byte { if m != nil { return m.Id } - return "" + return nil } func (m *Stream) GetProtocol() string { @@ -1234,7 +1357,7 @@ func (m *Stream_ConnectionRef) XXX_Marshal(b []byte, deterministic bool) ([]byte return xxx_messageInfo_Stream_ConnectionRef.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -1260,10 +1383,10 @@ type isStream_ConnectionRef_Connection interface { } type Stream_ConnectionRef_Conn struct { - Conn *Connection `protobuf:"bytes,1,opt,name=conn,proto3,oneof"` + Conn *Connection `protobuf:"bytes,1,opt,name=conn,proto3,oneof" json:"conn,omitempty"` } type Stream_ConnectionRef_ConnId struct { - ConnId string `protobuf:"bytes,2,opt,name=conn_id,json=connId,proto3,oneof"` + ConnId []byte `protobuf:"bytes,2,opt,name=conn_id,json=connId,proto3,oneof" json:"conn_id,omitempty"` } func (*Stream_ConnectionRef_Conn) isStream_ConnectionRef_Connection() {} @@ -1283,89 +1406,27 @@ func (m *Stream_ConnectionRef) GetConn() *Connection { return nil } -func (m *Stream_ConnectionRef) GetConnId() string { +func (m *Stream_ConnectionRef) GetConnId() []byte { if x, ok := m.GetConnection().(*Stream_ConnectionRef_ConnId); ok { return x.ConnId } - return "" + return nil } -// XXX_OneofFuncs is for the internal use of the proto package. -func (*Stream_ConnectionRef) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _Stream_ConnectionRef_OneofMarshaler, _Stream_ConnectionRef_OneofUnmarshaler, _Stream_ConnectionRef_OneofSizer, []interface{}{ +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Stream_ConnectionRef) XXX_OneofWrappers() []interface{} { + return []interface{}{ (*Stream_ConnectionRef_Conn)(nil), (*Stream_ConnectionRef_ConnId)(nil), } } -func _Stream_ConnectionRef_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*Stream_ConnectionRef) - // connection - switch x := m.Connection.(type) { - case *Stream_ConnectionRef_Conn: - _ = b.EncodeVarint(1<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Conn); err != nil { - return err - } - case *Stream_ConnectionRef_ConnId: - _ = b.EncodeVarint(2<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.ConnId) - case nil: - default: - return fmt.Errorf("Stream_ConnectionRef.Connection has unexpected type %T", x) - } - return nil -} - -func _Stream_ConnectionRef_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*Stream_ConnectionRef) - switch tag { - case 1: // connection.conn - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Connection) - err := b.DecodeMessage(msg) - m.Connection = &Stream_ConnectionRef_Conn{msg} - return true, err - case 2: // connection.conn_id - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Connection = &Stream_ConnectionRef_ConnId{x} - return true, err - default: - return false, nil - } -} - -func _Stream_ConnectionRef_OneofSizer(msg proto.Message) (n int) { - m := msg.(*Stream_ConnectionRef) - // connection - switch x := m.Connection.(type) { - case *Stream_ConnectionRef_Conn: - s := proto.Size(x.Conn) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *Stream_ConnectionRef_ConnId: - n += 1 // tag and wire - n += proto.SizeVarint(uint64(len(x.ConnId))) - n += len(x.ConnId) - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - // Timeline contains the timestamps of the well-known milestones of a stream. type Stream_Timeline struct { // the instant when the stream was opened. - OpenTs *time.Time `protobuf:"bytes,1,opt,name=open_ts,json=openTs,proto3,stdtime" json:"open_ts,omitempty"` + OpenTs *types.Timestamp `protobuf:"bytes,1,opt,name=open_ts,json=openTs,proto3" json:"open_ts,omitempty"` // the instant when the stream was terminated. - CloseTs *time.Time `protobuf:"bytes,2,opt,name=close_ts,json=closeTs,proto3,stdtime" json:"close_ts,omitempty"` + CloseTs *types.Timestamp `protobuf:"bytes,2,opt,name=close_ts,json=closeTs,proto3" json:"close_ts,omitempty"` } func (m *Stream_Timeline) Reset() { *m = Stream_Timeline{} } @@ -1382,7 +1443,7 @@ func (m *Stream_Timeline) XXX_Marshal(b []byte, deterministic bool) ([]byte, err return xxx_messageInfo_Stream_Timeline.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -1401,14 +1462,14 @@ func (m *Stream_Timeline) XXX_DiscardUnknown() { var xxx_messageInfo_Stream_Timeline proto.InternalMessageInfo -func (m *Stream_Timeline) GetOpenTs() *time.Time { +func (m *Stream_Timeline) GetOpenTs() *types.Timestamp { if m != nil { return m.OpenTs } return nil } -func (m *Stream_Timeline) GetCloseTs() *time.Time { +func (m *Stream_Timeline) GetCloseTs() *types.Timestamp { if m != nil { return m.CloseTs } @@ -1422,11 +1483,15 @@ type DHT struct { // protocol enabled. Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"` // timestap of start up. - StartTs *time.Time `protobuf:"bytes,3,opt,name=start_ts,json=startTs,proto3,stdtime" json:"start_ts,omitempty"` + StartTs *types.Timestamp `protobuf:"bytes,3,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"` // params of the dht. Params *DHT_Params `protobuf:"bytes,4,opt,name=params,proto3" json:"params,omitempty"` - // queries data - Query []*DHT_Query `protobuf:"bytes,5,rep,name=query,proto3" json:"query,omitempty"` + // existing, intantiated buckets and their contents + Buckets []*DHT_Bucket `protobuf:"bytes,5,rep,name=buckets,proto3" json:"buckets,omitempty"` + // counts inbound queries received from other peers + IncomingQueries *DHT_QueryGauge `protobuf:"bytes,6,opt,name=incoming_queries,json=incomingQueries,proto3" json:"incoming_queries,omitempty"` + // counts outbound queries dispatched by this peer + OutgoingQueries *DHT_QueryGauge `protobuf:"bytes,7,opt,name=outgoing_queries,json=outgoingQueries,proto3" json:"outgoing_queries,omitempty"` } func (m *DHT) Reset() { *m = DHT{} } @@ -1443,7 +1508,7 @@ func (m *DHT) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DHT.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -1476,7 +1541,7 @@ func (m *DHT) GetEnabled() bool { return false } -func (m *DHT) GetStartTs() *time.Time { +func (m *DHT) GetStartTs() *types.Timestamp { if m != nil { return m.StartTs } @@ -1490,9 +1555,23 @@ func (m *DHT) GetParams() *DHT_Params { return nil } -func (m *DHT) GetQuery() []*DHT_Query { +func (m *DHT) GetBuckets() []*DHT_Bucket { + if m != nil { + return m.Buckets + } + return nil +} + +func (m *DHT) GetIncomingQueries() *DHT_QueryGauge { + if m != nil { + return m.IncomingQueries + } + return nil +} + +func (m *DHT) GetOutgoingQueries() *DHT_QueryGauge { if m != nil { - return m.Query + return m.OutgoingQueries } return nil } @@ -1520,7 +1599,7 @@ func (m *DHT_Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DHT_Params.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -1560,121 +1639,187 @@ func (m *DHT_Params) GetDisjointPaths() uint64 { return 0 } -type DHT_Query struct { - // id of the query; used for internal referencing (<== TODO: confirm this) - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - // id of the peer being sought by this query - TargetPeerId string `protobuf:"bytes,2,opt,name=target_peer_id,json=targetPeerId,proto3" json:"target_peer_id,omitempty"` - // total time of the query in miliseconds - TotalTimeMs uint64 `protobuf:"varint,3,opt,name=total_time_ms,json=totalTimeMs,proto3" json:"total_time_ms,omitempty"` - // number of iterative lookups before reaching result - TotalSteps uint64 `protobuf:"varint,4,opt,name=total_steps,json=totalSteps,proto3" json:"total_steps,omitempty"` - // peers queried. - PeerIds []string `protobuf:"bytes,5,rep,name=peer_ids,json=peerIds,proto3" json:"peer_ids,omitempty"` - // trigger of the query - Trigger DHT_Query_Trigger `protobuf:"varint,6,opt,name=trigger,proto3,enum=introspection.pb.DHT_Query_Trigger" json:"trigger,omitempty"` - // type of the query. - Type DHT_Query_Type `protobuf:"varint,7,opt,name=type,proto3,enum=introspection.pb.DHT_Query_Type" json:"type,omitempty"` - // status indicating the result of the query - Result DHT_Query_Result `protobuf:"varint,8,opt,name=result,proto3,enum=introspection.pb.DHT_Query_Result" json:"result,omitempty"` - // time query was dispatched - SentTs *time.Time `protobuf:"bytes,9,opt,name=sent_ts,json=sentTs,proto3,stdtime" json:"sent_ts,omitempty"` -} - -func (m *DHT_Query) Reset() { *m = DHT_Query{} } -func (m *DHT_Query) String() string { return proto.CompactTextString(m) } -func (*DHT_Query) ProtoMessage() {} -func (*DHT_Query) Descriptor() ([]byte, []int) { +// Peer in DHT +type DHT_PeerInDHT struct { + // the peer id of the host system + PeerId string `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + // the peer's status when data snapshot is taken + Status DHT_PeerInDHT_Status `protobuf:"varint,2,opt,name=status,proto3,enum=introspection.DHT_PeerInDHT_Status" json:"status,omitempty"` + // age in bucket (ms) + AgeInBucket uint32 `protobuf:"varint,3,opt,name=age_in_bucket,json=ageInBucket,proto3" json:"age_in_bucket,omitempty"` +} + +func (m *DHT_PeerInDHT) Reset() { *m = DHT_PeerInDHT{} } +func (m *DHT_PeerInDHT) String() string { return proto.CompactTextString(m) } +func (*DHT_PeerInDHT) ProtoMessage() {} +func (*DHT_PeerInDHT) Descriptor() ([]byte, []int) { return fileDescriptor_53a8bedf9a75e10a, []int{10, 1} } -func (m *DHT_Query) XXX_Unmarshal(b []byte) error { +func (m *DHT_PeerInDHT) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *DHT_Query) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *DHT_PeerInDHT) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_DHT_Query.Marshal(b, m, deterministic) + return xxx_messageInfo_DHT_PeerInDHT.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } return b[:n], nil } } -func (m *DHT_Query) XXX_Merge(src proto.Message) { - xxx_messageInfo_DHT_Query.Merge(m, src) +func (m *DHT_PeerInDHT) XXX_Merge(src proto.Message) { + xxx_messageInfo_DHT_PeerInDHT.Merge(m, src) } -func (m *DHT_Query) XXX_Size() int { +func (m *DHT_PeerInDHT) XXX_Size() int { return m.Size() } -func (m *DHT_Query) XXX_DiscardUnknown() { - xxx_messageInfo_DHT_Query.DiscardUnknown(m) +func (m *DHT_PeerInDHT) XXX_DiscardUnknown() { + xxx_messageInfo_DHT_PeerInDHT.DiscardUnknown(m) } -var xxx_messageInfo_DHT_Query proto.InternalMessageInfo +var xxx_messageInfo_DHT_PeerInDHT proto.InternalMessageInfo -func (m *DHT_Query) GetId() string { +func (m *DHT_PeerInDHT) GetPeerId() string { if m != nil { - return m.Id + return m.PeerId } return "" } -func (m *DHT_Query) GetTargetPeerId() string { +func (m *DHT_PeerInDHT) GetStatus() DHT_PeerInDHT_Status { if m != nil { - return m.TargetPeerId + return m.Status } - return "" + return DHT_PeerInDHT_ACTIVE } -func (m *DHT_Query) GetTotalTimeMs() uint64 { +func (m *DHT_PeerInDHT) GetAgeInBucket() uint32 { if m != nil { - return m.TotalTimeMs + return m.AgeInBucket } return 0 } -func (m *DHT_Query) GetTotalSteps() uint64 { +// A "k-bucket" containing peers of a certain kadamelia distance +type DHT_Bucket struct { + // Contains peers of this distance; or, 0 is "catch-all" bucket + Distance uint32 `protobuf:"varint,1,opt,name=distance,proto3" json:"distance,omitempty"` + // Peers associated with this bucket + Peers []*DHT_PeerInDHT `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"` +} + +func (m *DHT_Bucket) Reset() { *m = DHT_Bucket{} } +func (m *DHT_Bucket) String() string { return proto.CompactTextString(m) } +func (*DHT_Bucket) ProtoMessage() {} +func (*DHT_Bucket) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{10, 2} +} +func (m *DHT_Bucket) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DHT_Bucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DHT_Bucket.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DHT_Bucket) XXX_Merge(src proto.Message) { + xxx_messageInfo_DHT_Bucket.Merge(m, src) +} +func (m *DHT_Bucket) XXX_Size() int { + return m.Size() +} +func (m *DHT_Bucket) XXX_DiscardUnknown() { + xxx_messageInfo_DHT_Bucket.DiscardUnknown(m) +} + +var xxx_messageInfo_DHT_Bucket proto.InternalMessageInfo + +func (m *DHT_Bucket) GetDistance() uint32 { if m != nil { - return m.TotalSteps + return m.Distance } return 0 } -func (m *DHT_Query) GetPeerIds() []string { +func (m *DHT_Bucket) GetPeers() []*DHT_PeerInDHT { if m != nil { - return m.PeerIds + return m.Peers } return nil } -func (m *DHT_Query) GetTrigger() DHT_Query_Trigger { - if m != nil { - return m.Trigger +// Counters of query events, by status +type DHT_QueryGauge struct { + // Cumulative counter of queries with "SUCCESS" status + Success uint64 `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + // Cumulative counter of queries with "ERROR" status + Error uint64 `protobuf:"varint,2,opt,name=error,proto3" json:"error,omitempty"` + // Cumulative counter of queries with "TIMEOUT" status + Timeout uint64 `protobuf:"varint,3,opt,name=timeout,proto3" json:"timeout,omitempty"` +} + +func (m *DHT_QueryGauge) Reset() { *m = DHT_QueryGauge{} } +func (m *DHT_QueryGauge) String() string { return proto.CompactTextString(m) } +func (*DHT_QueryGauge) ProtoMessage() {} +func (*DHT_QueryGauge) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{10, 3} +} +func (m *DHT_QueryGauge) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DHT_QueryGauge) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DHT_QueryGauge.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return DHT_Query_API +} +func (m *DHT_QueryGauge) XXX_Merge(src proto.Message) { + xxx_messageInfo_DHT_QueryGauge.Merge(m, src) +} +func (m *DHT_QueryGauge) XXX_Size() int { + return m.Size() +} +func (m *DHT_QueryGauge) XXX_DiscardUnknown() { + xxx_messageInfo_DHT_QueryGauge.DiscardUnknown(m) } -func (m *DHT_Query) GetType() DHT_Query_Type { +var xxx_messageInfo_DHT_QueryGauge proto.InternalMessageInfo + +func (m *DHT_QueryGauge) GetSuccess() uint64 { if m != nil { - return m.Type + return m.Success } - return DHT_Query_CONTENT + return 0 } -func (m *DHT_Query) GetResult() DHT_Query_Result { +func (m *DHT_QueryGauge) GetError() uint64 { if m != nil { - return m.Result + return m.Error } - return DHT_Query_SUCCESS + return 0 } -func (m *DHT_Query) GetSentTs() *time.Time { +func (m *DHT_QueryGauge) GetTimeout() uint64 { if m != nil { - return m.SentTs + return m.Timeout } - return nil + return 0 } // Subsystems encapsulates all instrumented subsystems for a libp2p host. @@ -1699,7 +1844,7 @@ func (m *Subsystems) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Subsystems.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -1734,20 +1879,16 @@ func (m *Subsystems) GetDht() *DHT { // Connections and streams output for a time interval is one of these. type State struct { - // Version of this protobuf - Version *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - // system information - Runtime *Runtime `protobuf:"bytes,2,opt,name=runtime,proto3" json:"runtime,omitempty"` // list of connections - Subsystems *Subsystems `protobuf:"bytes,3,opt,name=subsystems,proto3" json:"subsystems,omitempty"` + Subsystems *Subsystems `protobuf:"bytes,1,opt,name=subsystems,proto3" json:"subsystems,omitempty"` // overall traffic for this peer - Traffic *Traffic `protobuf:"bytes,4,opt,name=traffic,proto3" json:"traffic,omitempty"` + Traffic *Traffic `protobuf:"bytes,2,opt,name=traffic,proto3" json:"traffic,omitempty"` // moment this data snapshot and instantaneous values were taken - InstantTs *types.Timestamp `protobuf:"bytes,5,opt,name=instant_ts,json=instantTs,proto3" json:"instant_ts,omitempty"` + InstantTs *types.Timestamp `protobuf:"bytes,3,opt,name=instant_ts,json=instantTs,proto3" json:"instant_ts,omitempty"` // start of included data collection (cumulative values counted from here) - StartTs *types.Timestamp `protobuf:"bytes,6,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"` + StartTs *types.Timestamp `protobuf:"bytes,4,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"` // length of time up to instant_ts covered by this data snapshot - SnapshotDurationMs uint32 `protobuf:"varint,7,opt,name=snapshot_duration_ms,json=snapshotDurationMs,proto3" json:"snapshot_duration_ms,omitempty"` + SnapshotDurationMs uint32 `protobuf:"varint,5,opt,name=snapshot_duration_ms,json=snapshotDurationMs,proto3" json:"snapshot_duration_ms,omitempty"` } func (m *State) Reset() { *m = State{} } @@ -1764,7 +1905,7 @@ func (m *State) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_State.Marshal(b, m, deterministic) } else { b = b[:cap(b)] - n, err := m.MarshalTo(b) + n, err := m.MarshalToSizedBuffer(b) if err != nil { return nil, err } @@ -1783,20 +1924,6 @@ func (m *State) XXX_DiscardUnknown() { var xxx_messageInfo_State proto.InternalMessageInfo -func (m *State) GetVersion() *Version { - if m != nil { - return m.Version - } - return nil -} - -func (m *State) GetRuntime() *Runtime { - if m != nil { - return m.Runtime - } - return nil -} - func (m *State) GetSubsystems() *Subsystems { if m != nil { return m.Subsystems @@ -1832,1715 +1959,3579 @@ func (m *State) GetSnapshotDurationMs() uint32 { return 0 } -func init() { - proto.RegisterEnum("introspection.pb.Status", Status_name, Status_value) - proto.RegisterEnum("introspection.pb.Role", Role_name, Role_value) - proto.RegisterEnum("introspection.pb.DHT_Query_Trigger", DHT_Query_Trigger_name, DHT_Query_Trigger_value) - proto.RegisterEnum("introspection.pb.DHT_Query_Type", DHT_Query_Type_name, DHT_Query_Type_value) - proto.RegisterEnum("introspection.pb.DHT_Query_Result", DHT_Query_Result_name, DHT_Query_Result_value) - proto.RegisterType((*Version)(nil), "introspection.pb.Version") - proto.RegisterType((*ResultCounter)(nil), "introspection.pb.ResultCounter") - proto.RegisterType((*SlidingCounter)(nil), "introspection.pb.SlidingCounter") - proto.RegisterType((*DataGauge)(nil), "introspection.pb.DataGauge") - proto.RegisterType((*Runtime)(nil), "introspection.pb.Runtime") - proto.RegisterType((*EndpointPair)(nil), "introspection.pb.EndpointPair") - proto.RegisterType((*Traffic)(nil), "introspection.pb.Traffic") - proto.RegisterType((*StreamList)(nil), "introspection.pb.StreamList") - proto.RegisterType((*Connection)(nil), "introspection.pb.Connection") - proto.RegisterType((*Connection_Timeline)(nil), "introspection.pb.Connection.Timeline") - proto.RegisterType((*Connection_Attributes)(nil), "introspection.pb.Connection.Attributes") - proto.RegisterType((*Stream)(nil), "introspection.pb.Stream") - proto.RegisterType((*Stream_ConnectionRef)(nil), "introspection.pb.Stream.ConnectionRef") - proto.RegisterType((*Stream_Timeline)(nil), "introspection.pb.Stream.Timeline") - proto.RegisterType((*DHT)(nil), "introspection.pb.DHT") - proto.RegisterType((*DHT_Params)(nil), "introspection.pb.DHT.Params") - proto.RegisterType((*DHT_Query)(nil), "introspection.pb.DHT.Query") - proto.RegisterType((*Subsystems)(nil), "introspection.pb.Subsystems") - proto.RegisterType((*State)(nil), "introspection.pb.State") +// Event +type Event struct { + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Ts *types.Timestamp `protobuf:"bytes,2,opt,name=ts,proto3" json:"ts,omitempty"` + Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` } -func init() { proto.RegisterFile("introspection.proto", fileDescriptor_53a8bedf9a75e10a) } - -var fileDescriptor_53a8bedf9a75e10a = []byte{ - // 1679 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4b, 0x93, 0x1b, 0x49, - 0x11, 0xd6, 0xa3, 0xa5, 0x56, 0xa7, 0x34, 0x0a, 0x51, 0x2c, 0x8b, 0x2c, 0xc3, 0xd8, 0xee, 0x7d, - 0x39, 0x1c, 0x8b, 0xd6, 0xd6, 0xd8, 0xc4, 0xae, 0xf1, 0x12, 0x31, 0x0f, 0x85, 0x2d, 0xc2, 0x96, - 0x44, 0xa9, 0x3d, 0x01, 0xa7, 0x8e, 0x96, 0xba, 0x46, 0x6a, 0xa6, 0x5f, 0x54, 0x55, 0x7b, 0x99, - 0x1b, 0xb1, 0x5c, 0x38, 0xee, 0x89, 0x23, 0xff, 0x81, 0x1f, 0x41, 0x04, 0x37, 0xf6, 0xc8, 0x0d, - 0xc2, 0xfe, 0x23, 0x44, 0x55, 0xf5, 0x6b, 0x5e, 0x9e, 0x19, 0x82, 0x5b, 0x67, 0xe6, 0x97, 0x95, - 0xd5, 0x95, 0x5f, 0x66, 0x56, 0xc1, 0x0f, 0xbd, 0x90, 0xd3, 0x88, 0xc5, 0x64, 0xc5, 0xbd, 0x28, - 0x1c, 0xc6, 0x34, 0xe2, 0x11, 0xea, 0x9d, 0x51, 0x2e, 0x07, 0x3f, 0x5b, 0x7b, 0x7c, 0x93, 0x2c, - 0x87, 0xab, 0x28, 0xf8, 0x62, 0x1d, 0xad, 0xa3, 0x2f, 0x24, 0x70, 0x99, 0x1c, 0x49, 0x49, 0x0a, - 0xf2, 0x4b, 0x2d, 0x30, 0xb8, 0xb3, 0x8e, 0xa2, 0xb5, 0x4f, 0x0a, 0x14, 0xf7, 0x02, 0xc2, 0xb8, - 0x13, 0xc4, 0x0a, 0x60, 0xde, 0x03, 0xfd, 0x90, 0x50, 0xe6, 0x45, 0x21, 0xfa, 0x10, 0x9a, 0x61, - 0x12, 0x2c, 0x09, 0xed, 0x57, 0xef, 0x56, 0xef, 0x6f, 0xe1, 0x54, 0x32, 0x9f, 0xc3, 0x16, 0x26, - 0x2c, 0xf1, 0xf9, 0x7e, 0x94, 0x84, 0x9c, 0x50, 0xf4, 0x01, 0x34, 0x78, 0xc4, 0x1d, 0x3f, 0xc5, - 0x29, 0x01, 0x75, 0xa1, 0x16, 0x1d, 0xf7, 0x6b, 0x52, 0x55, 0x8b, 0x8e, 0x51, 0x0f, 0xea, 0x84, - 0xd2, 0x7e, 0x5d, 0x2a, 0xc4, 0xa7, 0xf9, 0xd7, 0x1a, 0x74, 0x17, 0xbe, 0xe7, 0x7a, 0xe1, 0x3a, - 0x5b, 0xea, 0xc7, 0xa0, 0x47, 0x6f, 0x08, 0xb5, 0x1f, 0x05, 0x59, 0x50, 0x21, 0x3e, 0x0a, 0x72, - 0xc3, 0x93, 0x20, 0x5d, 0x52, 0x1a, 0x9e, 0x04, 0xe8, 0x16, 0xb4, 0x94, 0xc7, 0x93, 0x20, 0x5d, - 0x5b, 0x02, 0x1f, 0x95, 0x4c, 0x3b, 0x0f, 0x83, 0xbe, 0x56, 0x98, 0x76, 0x1e, 0x96, 0xbc, 0x36, - 0xb4, 0xdf, 0x28, 0x79, 0x6d, 0x68, 0x6e, 0x1a, 0x6d, 0x68, 0xbf, 0x59, 0x98, 0x46, 0x25, 0xd3, - 0xe3, 0x0d, 0xed, 0xeb, 0x85, 0xe9, 0x71, 0xc9, 0xf4, 0xe5, 0x86, 0xf6, 0x5b, 0x85, 0xe9, 0xcb, - 0x0d, 0x45, 0xb7, 0xc1, 0x50, 0xb1, 0xc4, 0x8a, 0x86, 0xb4, 0x49, 0xac, 0x90, 0x73, 0xe3, 0x48, - 0xac, 0x09, 0x85, 0x51, 0xc8, 0xe6, 0x12, 0x8c, 0x03, 0x87, 0x3b, 0xcf, 0x9d, 0x64, 0x4d, 0x04, - 0x72, 0x95, 0x04, 0xf6, 0xf2, 0x84, 0x13, 0x26, 0x0f, 0x47, 0xc3, 0xad, 0x55, 0x12, 0xec, 0x09, - 0x19, 0xdd, 0x81, 0xb6, 0x30, 0xc6, 0xce, 0xea, 0x98, 0x70, 0x26, 0x8f, 0x48, 0xc3, 0xb0, 0x4a, - 0x82, 0xb9, 0xd2, 0x88, 0xf3, 0xf3, 0x42, 0xc6, 0xed, 0xe5, 0x37, 0xf2, 0x94, 0x34, 0xdc, 0x14, - 0xe2, 0xde, 0x37, 0xe6, 0x1f, 0xab, 0xa0, 0xe3, 0x24, 0x14, 0x3c, 0x40, 0x9f, 0x42, 0xd7, 0x0b, - 0x62, 0x9f, 0x04, 0x24, 0xe4, 0x8e, 0x60, 0x98, 0x8c, 0x63, 0xe0, 0x33, 0x5a, 0xd4, 0x07, 0xfd, - 0x8d, 0x22, 0x89, 0x8c, 0x64, 0xe0, 0x4c, 0x44, 0x03, 0x68, 0xc5, 0xbe, 0xc3, 0x8f, 0x22, 0xaa, - 0xb2, 0x61, 0xe0, 0x5c, 0x16, 0x5b, 0x88, 0x09, 0xa1, 0xb6, 0xe7, 0xca, 0x6c, 0x18, 0xb8, 0x29, - 0xc4, 0x89, 0x6b, 0xfe, 0x06, 0x3a, 0xe3, 0xd0, 0x8d, 0x23, 0x2f, 0xe4, 0x73, 0xc7, 0xa3, 0xe8, - 0x23, 0xd8, 0x62, 0x74, 0x65, 0x07, 0x89, 0xcf, 0x3d, 0xc7, 0x75, 0x69, 0xba, 0x8b, 0x0e, 0xa3, - 0xab, 0x57, 0x99, 0x4e, 0x80, 0x5c, 0xc6, 0x4b, 0x20, 0xb5, 0x93, 0x8e, 0xcb, 0x78, 0x0e, 0x32, - 0xff, 0x54, 0x05, 0xdd, 0xa2, 0xce, 0xd1, 0x91, 0xb7, 0x42, 0x4f, 0x01, 0xb8, 0xfa, 0xb4, 0x3d, - 0xf5, 0x63, 0xed, 0xd1, 0xed, 0xe1, 0xd9, 0x82, 0x1a, 0xe6, 0x07, 0x8e, 0x8d, 0x14, 0x3e, 0x09, - 0xd1, 0x33, 0x68, 0x67, 0xbe, 0x51, 0xc2, 0x65, 0xa8, 0x2b, 0x9c, 0xb3, 0x58, 0xb3, 0x84, 0x9b, - 0x36, 0xc0, 0x82, 0x53, 0xe2, 0x04, 0x2f, 0x3d, 0xc6, 0xd1, 0x4f, 0x01, 0x98, 0x94, 0x6c, 0xcf, - 0x15, 0x89, 0xac, 0xdf, 0x37, 0xb0, 0xa1, 0x34, 0x13, 0x97, 0xa1, 0x11, 0xe8, 0x4a, 0x10, 0x59, - 0xac, 0xdf, 0x6f, 0x8f, 0xfa, 0xe7, 0xc3, 0xa8, 0xd5, 0x70, 0x06, 0x34, 0xff, 0xa6, 0x03, 0xec, - 0x47, 0x61, 0xa8, 0x10, 0xa2, 0xf2, 0x3c, 0x37, 0x3d, 0xb4, 0x9a, 0xe7, 0x96, 0x0f, 0xbe, 0x56, - 0x3e, 0x78, 0xf4, 0x10, 0x9a, 0x8c, 0x3b, 0x3c, 0x61, 0x32, 0x57, 0xdd, 0x8b, 0x43, 0x09, 0x3b, - 0x4e, 0x71, 0xe8, 0x1e, 0x74, 0x38, 0x75, 0x42, 0x16, 0x47, 0x94, 0x17, 0x89, 0x6c, 0xe7, 0xba, - 0x89, 0x8b, 0x9e, 0x81, 0x41, 0xd2, 0x6c, 0x32, 0x59, 0x5b, 0xed, 0xd1, 0xf6, 0xf9, 0x75, 0xcb, - 0x09, 0xc7, 0x85, 0x03, 0xda, 0x85, 0x96, 0xa0, 0xa2, 0xef, 0x85, 0x44, 0x56, 0x5f, 0x7b, 0xf4, - 0xc9, 0x79, 0xe7, 0xe2, 0x5f, 0x87, 0x56, 0x0a, 0xc6, 0xb9, 0x1b, 0x7a, 0x00, 0x1a, 0x8d, 0x7c, - 0x22, 0x2b, 0xb4, 0x3b, 0xfa, 0xf0, 0xbc, 0x3b, 0x8e, 0x7c, 0x82, 0x25, 0x06, 0xed, 0x80, 0x9e, - 0x26, 0x4a, 0x56, 0x6d, 0x7b, 0x74, 0xeb, 0x3c, 0x3c, 0x25, 0x10, 0xce, 0x90, 0x68, 0x17, 0x74, - 0x87, 0x73, 0xea, 0x2d, 0x99, 0x2c, 0xe7, 0xf6, 0xe8, 0xb3, 0xf7, 0x6e, 0x71, 0x57, 0x62, 0x13, - 0x4e, 0x18, 0xce, 0xfc, 0x04, 0x09, 0x7c, 0x87, 0x93, 0x70, 0x75, 0x62, 0x87, 0x4c, 0xd6, 0xbd, - 0x86, 0x8d, 0x54, 0x33, 0x65, 0xe8, 0xe7, 0x05, 0x09, 0xda, 0x32, 0xc2, 0x4f, 0x2e, 0x23, 0x81, - 0xa0, 0x54, 0x4e, 0x04, 0x74, 0x0b, 0xf4, 0x55, 0x14, 0x86, 0x22, 0x33, 0x3d, 0x91, 0x99, 0x17, - 0x15, 0xdc, 0x14, 0x8a, 0x89, 0x8b, 0x46, 0xa0, 0x89, 0xaf, 0xfe, 0x0f, 0x2e, 0x5b, 0xaf, 0xd8, - 0xf1, 0x8b, 0x0a, 0x96, 0x58, 0xf4, 0x39, 0xa0, 0x84, 0x11, 0x6a, 0xc7, 0x34, 0x7a, 0xe3, 0xb9, - 0xc4, 0xb5, 0xb9, 0xb3, 0x66, 0xfd, 0x95, 0xa4, 0x6c, 0x4f, 0x58, 0xe6, 0xa9, 0xc1, 0x72, 0xd6, - 0x6c, 0xf0, 0xf7, 0x2a, 0xb4, 0xb2, 0x74, 0xa0, 0xaf, 0x40, 0x8f, 0x62, 0x12, 0xda, 0x9c, 0xa5, - 0xa5, 0x36, 0x18, 0xaa, 0xd1, 0x33, 0xcc, 0x46, 0x8f, 0x4c, 0x9d, 0x1c, 0x3d, 0x7b, 0xda, 0x77, - 0xff, 0xbe, 0x53, 0xc5, 0x4d, 0xe1, 0x60, 0x09, 0x0a, 0xb4, 0x93, 0x78, 0x4d, 0x1d, 0x19, 0x90, - 0xa5, 0xc5, 0x76, 0xb5, 0x3b, 0x64, 0x4e, 0x16, 0x43, 0xbf, 0x80, 0xd6, 0xca, 0x8f, 0x18, 0x11, - 0xfe, 0xf5, 0x6b, 0xfa, 0xeb, 0xd2, 0xc3, 0x62, 0x83, 0x29, 0x40, 0x91, 0x32, 0x74, 0x17, 0xda, - 0xb2, 0xc7, 0xc4, 0x3e, 0xf9, 0x03, 0xc9, 0x5a, 0x51, 0x59, 0x85, 0xb6, 0x01, 0x48, 0xb8, 0xa2, - 0x27, 0x31, 0x2f, 0x1a, 0x62, 0x49, 0xb3, 0xd7, 0x85, 0x0e, 0x25, 0xbe, 0x73, 0x42, 0x5c, 0x5b, - 0x74, 0xf6, 0x5f, 0x69, 0xad, 0x4e, 0xaf, 0x67, 0x7e, 0xdb, 0x80, 0xa6, 0x4a, 0xe1, 0xb9, 0x7a, - 0x15, 0x4d, 0x54, 0xec, 0x72, 0x15, 0xf9, 0xe9, 0x72, 0xb9, 0x9c, 0x93, 0xbb, 0x7e, 0x33, 0x72, - 0x6b, 0xd7, 0x26, 0xf7, 0xd3, 0x94, 0x27, 0xaa, 0x72, 0x3f, 0xbd, 0x8c, 0x77, 0x25, 0xba, 0x60, - 0x72, 0x94, 0xf2, 0xe5, 0xeb, 0x73, 0xc5, 0x7b, 0xef, 0x52, 0xff, 0x0b, 0x0a, 0xb7, 0x68, 0x47, - 0xfa, 0x35, 0xdb, 0xd1, 0xe9, 0x32, 0xea, 0x9d, 0x2d, 0xa3, 0x9b, 0xf1, 0xd7, 0x87, 0xad, 0x53, - 0x3f, 0x95, 0x97, 0x4c, 0xf5, 0x06, 0x25, 0x53, 0xaa, 0xc0, 0xda, 0xe9, 0x0a, 0xdc, 0xeb, 0x00, - 0xac, 0x72, 0x87, 0xc1, 0xb7, 0xff, 0xa7, 0x6a, 0x29, 0x53, 0xbd, 0x76, 0x43, 0xaa, 0x9b, 0xff, - 0x6c, 0x42, 0xfd, 0xe0, 0x85, 0x75, 0x8a, 0x71, 0xd5, 0x33, 0x8c, 0xeb, 0x83, 0x4e, 0x42, 0x67, - 0xe9, 0x13, 0xf5, 0x47, 0x2d, 0x9c, 0x89, 0x22, 0x34, 0xe3, 0x0e, 0xe5, 0x37, 0xaa, 0x32, 0xe9, - 0x61, 0x31, 0xf4, 0x18, 0x9a, 0xb1, 0x43, 0x45, 0x87, 0xd3, 0x2e, 0x3b, 0xde, 0x83, 0x17, 0xd6, - 0x70, 0x2e, 0x31, 0x38, 0xc5, 0xa2, 0x47, 0xd0, 0xf8, 0x7d, 0x42, 0xe8, 0x49, 0xbf, 0x21, 0x67, - 0xe3, 0xed, 0x8b, 0x9d, 0x7e, 0x2d, 0x20, 0x58, 0x21, 0x07, 0x0b, 0x68, 0xaa, 0x45, 0x50, 0x07, - 0xaa, 0xc7, 0xe9, 0xcd, 0xa9, 0x7a, 0x2c, 0x6e, 0xad, 0x8e, 0x1f, 0x6f, 0x9c, 0xf4, 0xb2, 0xa4, - 0x04, 0xf4, 0x09, 0x74, 0x5d, 0x8f, 0xfd, 0x4e, 0x0c, 0x23, 0x3b, 0x76, 0xf8, 0x86, 0xa5, 0xd7, - 0xa5, 0xad, 0x4c, 0x3b, 0x17, 0xca, 0xc1, 0x5f, 0x34, 0x68, 0xc8, 0x28, 0xe7, 0x8a, 0xf7, 0x63, - 0xe8, 0x72, 0x87, 0xae, 0x09, 0xb7, 0x4f, 0xcf, 0xdc, 0x8e, 0xd2, 0xce, 0xd5, 0xe4, 0x35, 0x61, - 0x4b, 0xde, 0x92, 0x6d, 0x41, 0x7e, 0x3b, 0xc8, 0xa2, 0xb4, 0xa5, 0x52, 0x9c, 0xd9, 0x2b, 0x79, - 0xa7, 0x53, 0x18, 0xc6, 0x49, 0xac, 0x8e, 0x49, 0xc3, 0x20, 0x55, 0x0b, 0xa1, 0x11, 0x77, 0xce, - 0x34, 0x06, 0x93, 0xe7, 0x61, 0x60, 0x5d, 0x0d, 0x76, 0x86, 0xbe, 0x16, 0xa5, 0xef, 0xad, 0xd7, - 0x44, 0xdd, 0x61, 0xbb, 0xa3, 0x8f, 0xde, 0x73, 0x52, 0x43, 0x4b, 0x41, 0x71, 0xe6, 0x83, 0x1e, - 0x83, 0xc6, 0x4f, 0xe2, 0x6c, 0x84, 0xde, 0x7d, 0xaf, 0xef, 0x49, 0x4c, 0xb0, 0x44, 0xa3, 0xa7, - 0xd0, 0xa4, 0xf2, 0x61, 0x20, 0x67, 0x69, 0x77, 0x64, 0xbe, 0xcf, 0x4f, 0x3d, 0x21, 0x70, 0xea, - 0x21, 0x2a, 0x80, 0x91, 0x50, 0x52, 0xc9, 0xb8, 0x6e, 0x05, 0x08, 0x07, 0x8b, 0x89, 0x27, 0x4b, - 0xfa, 0x03, 0x48, 0x87, 0xfa, 0xee, 0x7c, 0xd2, 0xab, 0xa0, 0x2d, 0x30, 0x0e, 0x26, 0x8b, 0xfd, - 0xd9, 0xe1, 0x18, 0xff, 0xb6, 0x57, 0x35, 0x3f, 0x07, 0x4d, 0xec, 0x13, 0xb5, 0x41, 0xdf, 0x9f, - 0x4d, 0xad, 0xf1, 0xd4, 0xea, 0x55, 0x50, 0x07, 0x5a, 0x73, 0x3c, 0x3b, 0x9c, 0x1c, 0x8c, 0x71, - 0xaf, 0x8a, 0x0c, 0x68, 0x1c, 0xee, 0xbe, 0x7c, 0x3d, 0xee, 0xd5, 0xcc, 0xa7, 0xd0, 0x54, 0xbb, - 0x13, 0xf8, 0xc5, 0xeb, 0xfd, 0xfd, 0xf1, 0x62, 0xd1, 0xab, 0x08, 0xc4, 0x18, 0xe3, 0x99, 0x00, - 0xb7, 0x41, 0xb7, 0x26, 0xaf, 0xc6, 0xb3, 0xd7, 0x56, 0xaf, 0x26, 0x84, 0xf9, 0x78, 0x7a, 0x30, - 0x99, 0x3e, 0xef, 0xd5, 0xcd, 0x04, 0x60, 0x91, 0x2c, 0xd9, 0x09, 0xe3, 0x24, 0x60, 0xe8, 0x97, - 0xd0, 0x2e, 0x4a, 0x5e, 0x5d, 0xf6, 0xae, 0x68, 0x24, 0xb8, 0xec, 0x80, 0x3e, 0x83, 0xba, 0xbb, - 0xc9, 0xee, 0x9b, 0x3f, 0xba, 0xf0, 0x38, 0xb1, 0x40, 0x98, 0x7f, 0xae, 0x43, 0x43, 0xf4, 0x46, - 0xd9, 0xf4, 0xb3, 0xbb, 0x79, 0xf5, 0xb2, 0xa6, 0x9f, 0xbe, 0xf0, 0x8a, 0x6b, 0xfb, 0x0e, 0xe8, - 0x54, 0xbd, 0x01, 0xd2, 0x58, 0x17, 0x38, 0xa5, 0x8f, 0x04, 0x9c, 0x21, 0xd1, 0x33, 0x00, 0x96, - 0xff, 0x6a, 0xda, 0x00, 0x2e, 0xba, 0xa7, 0xe4, 0x18, 0x5c, 0xc2, 0xff, 0x6f, 0xc3, 0xe9, 0x2b, - 0x00, 0xf1, 0x6c, 0x71, 0x14, 0x51, 0x1a, 0x57, 0x11, 0x05, 0x1b, 0x29, 0xda, 0x62, 0xe8, 0x49, - 0xa9, 0x59, 0x35, 0xaf, 0x74, 0xcc, 0xdb, 0xd4, 0x43, 0xf8, 0x80, 0x85, 0x4e, 0xcc, 0x36, 0x11, - 0xb7, 0xdd, 0x84, 0xca, 0xf7, 0x8f, 0xa8, 0x57, 0xf5, 0xfc, 0x43, 0x99, 0xed, 0x20, 0x35, 0xbd, - 0x62, 0x0f, 0xc6, 0x62, 0xae, 0xcb, 0xe9, 0x04, 0xd0, 0xdc, 0xdd, 0xb7, 0x26, 0x87, 0xe3, 0x5e, - 0x45, 0x7c, 0xef, 0xbf, 0x9c, 0x2d, 0xc6, 0x07, 0x8a, 0x3d, 0xb3, 0xf9, 0x78, 0x2a, 0x08, 0x23, - 0xd9, 0x23, 0x0c, 0x92, 0x3d, 0x05, 0xc5, 0xb4, 0x07, 0x1f, 0x83, 0x26, 0x46, 0xb9, 0x60, 0xf2, - 0x64, 0x3a, 0xb1, 0x26, 0xbb, 0xd6, 0x0c, 0x2b, 0x62, 0xe3, 0xf1, 0x62, 0x3e, 0x9b, 0x4a, 0xd6, - 0xee, 0xf5, 0xff, 0xf1, 0x76, 0xbb, 0xfa, 0xfd, 0xdb, 0xed, 0xea, 0x7f, 0xde, 0x6e, 0x57, 0xbf, - 0x7b, 0xb7, 0x5d, 0xf9, 0xfe, 0xdd, 0x76, 0xe5, 0x5f, 0xef, 0xb6, 0x2b, 0xcb, 0xa6, 0xfc, 0xab, - 0x9d, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x5e, 0xda, 0xeb, 0x7e, 0x48, 0x10, 0x00, 0x00, +func (m *Event) Reset() { *m = Event{} } +func (m *Event) String() string { return proto.CompactTextString(m) } +func (*Event) ProtoMessage() {} +func (*Event) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{13} } - -func (m *Version) 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 *Event) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) } - -func (m *Version) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Number != 0 { - dAtA[i] = 0x8 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Number)) +func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Event.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return i, nil +} +func (m *Event) XXX_Merge(src proto.Message) { + xxx_messageInfo_Event.Merge(m, src) +} +func (m *Event) XXX_Size() int { + return m.Size() +} +func (m *Event) XXX_DiscardUnknown() { + xxx_messageInfo_Event.DiscardUnknown(m) } -func (m *ResultCounter) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err +var xxx_messageInfo_Event proto.InternalMessageInfo + +func (m *Event) GetType() string { + if m != nil { + return m.Type } - return dAtA[:n], nil + return "" } -func (m *ResultCounter) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Total != 0 { - dAtA[i] = 0x8 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Total)) - } - if m.Ok != 0 { - dAtA[i] = 0x10 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Ok)) - } - if m.Err != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Err)) +func (m *Event) GetTs() *types.Timestamp { + if m != nil { + return m.Ts } - return i, nil + return nil } -func (m *SlidingCounter) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err +func (m *Event) GetContent() string { + if m != nil { + return m.Content } - return dAtA[:n], nil + return "" } -func (m *SlidingCounter) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Over_1M != 0 { - dAtA[i] = 0x8 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_1M)) +// ProtocolDataPacket wraps messages to be sent to clients to allow extension +// based on new types of data sources +type ProtocolDataPacket struct { + // Version of this protobuf + Version *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // The Message this contains + // + // Types that are valid to be assigned to Message: + // *ProtocolDataPacket_State + // *ProtocolDataPacket_Runtime + // *ProtocolDataPacket_Event + Message isProtocolDataPacket_Message `protobuf_oneof:"message"` +} + +func (m *ProtocolDataPacket) Reset() { *m = ProtocolDataPacket{} } +func (m *ProtocolDataPacket) String() string { return proto.CompactTextString(m) } +func (*ProtocolDataPacket) ProtoMessage() {} +func (*ProtocolDataPacket) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{14} +} +func (m *ProtocolDataPacket) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProtocolDataPacket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProtocolDataPacket.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - if m.Over_5M != 0 { - dAtA[i] = 0x10 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_5M)) +} +func (m *ProtocolDataPacket) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtocolDataPacket.Merge(m, src) +} +func (m *ProtocolDataPacket) XXX_Size() int { + return m.Size() +} +func (m *ProtocolDataPacket) XXX_DiscardUnknown() { + xxx_messageInfo_ProtocolDataPacket.DiscardUnknown(m) +} + +var xxx_messageInfo_ProtocolDataPacket proto.InternalMessageInfo + +type isProtocolDataPacket_Message interface { + isProtocolDataPacket_Message() + MarshalTo([]byte) (int, error) + Size() int +} + +type ProtocolDataPacket_State struct { + State *State `protobuf:"bytes,2,opt,name=state,proto3,oneof" json:"state,omitempty"` +} +type ProtocolDataPacket_Runtime struct { + Runtime *Runtime `protobuf:"bytes,3,opt,name=runtime,proto3,oneof" json:"runtime,omitempty"` +} +type ProtocolDataPacket_Event struct { + Event *Event `protobuf:"bytes,4,opt,name=event,proto3,oneof" json:"event,omitempty"` +} + +func (*ProtocolDataPacket_State) isProtocolDataPacket_Message() {} +func (*ProtocolDataPacket_Runtime) isProtocolDataPacket_Message() {} +func (*ProtocolDataPacket_Event) isProtocolDataPacket_Message() {} + +func (m *ProtocolDataPacket) GetMessage() isProtocolDataPacket_Message { + if m != nil { + return m.Message } - if m.Over_15M != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_15M)) + return nil +} + +func (m *ProtocolDataPacket) GetVersion() *Version { + if m != nil { + return m.Version } - if m.Over_30M != 0 { - dAtA[i] = 0x20 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_30M)) + return nil +} + +func (m *ProtocolDataPacket) GetState() *State { + if x, ok := m.GetMessage().(*ProtocolDataPacket_State); ok { + return x.State } - if m.Over_1Hr != 0 { - dAtA[i] = 0x28 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_1Hr)) + return nil +} + +func (m *ProtocolDataPacket) GetRuntime() *Runtime { + if x, ok := m.GetMessage().(*ProtocolDataPacket_Runtime); ok { + return x.Runtime } - if m.Over_2Hr != 0 { - dAtA[i] = 0x30 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_2Hr)) + return nil +} + +func (m *ProtocolDataPacket) GetEvent() *Event { + if x, ok := m.GetMessage().(*ProtocolDataPacket_Event); ok { + return x.Event } - if m.Over_4Hr != 0 { - dAtA[i] = 0x38 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_4Hr)) + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ProtocolDataPacket) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ProtocolDataPacket_State)(nil), + (*ProtocolDataPacket_Runtime)(nil), + (*ProtocolDataPacket_Event)(nil), } - if m.Over_8Hr != 0 { - dAtA[i] = 0x40 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_8Hr)) +} + +// ClientSignal is a type of message to be sent from clients to the server to signal +// within the operation of the protocol +type ClientSignal struct { + // Version of this protobuf + Version *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // Signal to be sent + Signal ClientSignal_Signal `protobuf:"varint,2,opt,name=signal,proto3,enum=introspection.ClientSignal_Signal" json:"signal,omitempty"` + // Correlated DataSource for this signal (if any) + DataSource ClientSignal_DataSource `protobuf:"varint,3,opt,name=data_source,json=dataSource,proto3,enum=introspection.ClientSignal_DataSource" json:"data_source,omitempty"` + // Optional: JSON stringified content to be sent to the emitter + Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"` +} + +func (m *ClientSignal) Reset() { *m = ClientSignal{} } +func (m *ClientSignal) String() string { return proto.CompactTextString(m) } +func (*ClientSignal) ProtoMessage() {} +func (*ClientSignal) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{15} +} +func (m *ClientSignal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ClientSignal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ClientSignal.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - if m.Over_12Hr != 0 { - dAtA[i] = 0x48 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_12Hr)) +} +func (m *ClientSignal) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClientSignal.Merge(m, src) +} +func (m *ClientSignal) XXX_Size() int { + return m.Size() +} +func (m *ClientSignal) XXX_DiscardUnknown() { + xxx_messageInfo_ClientSignal.DiscardUnknown(m) +} + +var xxx_messageInfo_ClientSignal proto.InternalMessageInfo + +func (m *ClientSignal) GetVersion() *Version { + if m != nil { + return m.Version } - if m.Over_24Hr != 0 { - dAtA[i] = 0x50 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_24Hr)) + return nil +} + +func (m *ClientSignal) GetSignal() ClientSignal_Signal { + if m != nil { + return m.Signal } - return i, nil + return ClientSignal_SEND_DATA } -func (m *DataGauge) Marshal() (dAtA []byte, err error) { +func (m *ClientSignal) GetDataSource() ClientSignal_DataSource { + if m != nil { + return m.DataSource + } + return ClientSignal_STATE +} + +func (m *ClientSignal) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + +func init() { + proto.RegisterEnum("introspection.Status", Status_name, Status_value) + proto.RegisterEnum("introspection.Role", Role_name, Role_value) + proto.RegisterEnum("introspection.Runtime_EventProperty_PropertyType", Runtime_EventProperty_PropertyType_name, Runtime_EventProperty_PropertyType_value) + proto.RegisterEnum("introspection.DHT_PeerInDHT_Status", DHT_PeerInDHT_Status_name, DHT_PeerInDHT_Status_value) + proto.RegisterEnum("introspection.ClientSignal_Signal", ClientSignal_Signal_name, ClientSignal_Signal_value) + proto.RegisterEnum("introspection.ClientSignal_DataSource", ClientSignal_DataSource_name, ClientSignal_DataSource_value) + proto.RegisterType((*Version)(nil), "introspection.Version") + proto.RegisterType((*ResultCounter)(nil), "introspection.ResultCounter") + proto.RegisterType((*SlidingCounter)(nil), "introspection.SlidingCounter") + proto.RegisterType((*DataGauge)(nil), "introspection.DataGauge") + proto.RegisterType((*Runtime)(nil), "introspection.Runtime") + proto.RegisterType((*Runtime_EventType)(nil), "introspection.Runtime.EventType") + proto.RegisterType((*Runtime_EventProperty)(nil), "introspection.Runtime.EventProperty") + proto.RegisterType((*EndpointPair)(nil), "introspection.EndpointPair") + proto.RegisterType((*Traffic)(nil), "introspection.Traffic") + proto.RegisterType((*StreamList)(nil), "introspection.StreamList") + proto.RegisterType((*Connection)(nil), "introspection.Connection") + proto.RegisterType((*Connection_Timeline)(nil), "introspection.Connection.Timeline") + proto.RegisterType((*Connection_Attributes)(nil), "introspection.Connection.Attributes") + proto.RegisterType((*Stream)(nil), "introspection.Stream") + proto.RegisterType((*Stream_ConnectionRef)(nil), "introspection.Stream.ConnectionRef") + proto.RegisterType((*Stream_Timeline)(nil), "introspection.Stream.Timeline") + proto.RegisterType((*DHT)(nil), "introspection.DHT") + proto.RegisterType((*DHT_Params)(nil), "introspection.DHT.Params") + proto.RegisterType((*DHT_PeerInDHT)(nil), "introspection.DHT.PeerInDHT") + proto.RegisterType((*DHT_Bucket)(nil), "introspection.DHT.Bucket") + proto.RegisterType((*DHT_QueryGauge)(nil), "introspection.DHT.QueryGauge") + proto.RegisterType((*Subsystems)(nil), "introspection.Subsystems") + proto.RegisterType((*State)(nil), "introspection.State") + proto.RegisterType((*Event)(nil), "introspection.Event") + proto.RegisterType((*ProtocolDataPacket)(nil), "introspection.ProtocolDataPacket") + proto.RegisterType((*ClientSignal)(nil), "introspection.ClientSignal") +} + +func init() { proto.RegisterFile("introspection.proto", fileDescriptor_53a8bedf9a75e10a) } + +var fileDescriptor_53a8bedf9a75e10a = []byte{ + // 2046 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0xcf, 0x73, 0xdb, 0xc6, + 0xf5, 0xe7, 0x2f, 0xf1, 0xc7, 0x23, 0xa5, 0x30, 0x1b, 0xc7, 0x5f, 0x86, 0xf9, 0x46, 0x71, 0x61, + 0x37, 0xf5, 0xb8, 0xa9, 0x6c, 0xd3, 0xf1, 0x24, 0x4e, 0x66, 0x3c, 0x23, 0x89, 0x88, 0x45, 0x4f, + 0x44, 0x31, 0x4b, 0xd8, 0x93, 0xe9, 0x74, 0x06, 0x03, 0x01, 0x6b, 0x0a, 0x15, 0x08, 0xa0, 0xbb, + 0x0b, 0xa5, 0x3a, 0xf4, 0xdc, 0x4b, 0x0f, 0x3d, 0xf4, 0xd0, 0x53, 0xff, 0x88, 0xf6, 0xdc, 0x43, + 0x0f, 0x9d, 0xe9, 0x31, 0xc7, 0x1e, 0x5b, 0xfb, 0x1f, 0xe9, 0xbc, 0xc5, 0x02, 0x04, 0x29, 0x56, + 0x65, 0xda, 0x13, 0xf7, 0xbd, 0xf7, 0x79, 0x6f, 0xb1, 0xef, 0xd7, 0xee, 0x23, 0xbc, 0xe3, 0x87, + 0x92, 0x47, 0x22, 0x66, 0xae, 0xf4, 0xa3, 0x70, 0x2f, 0xe6, 0x91, 0x8c, 0xc8, 0xf6, 0x12, 0xb3, + 0xff, 0xe1, 0x2c, 0x8a, 0x66, 0x01, 0xbb, 0xaf, 0x84, 0xa7, 0xc9, 0xab, 0xfb, 0xd2, 0x9f, 0x33, + 0x21, 0x9d, 0x79, 0x9c, 0xe2, 0x8d, 0xdb, 0xd0, 0x78, 0xc9, 0xb8, 0xf0, 0xa3, 0x90, 0xf4, 0xa0, + 0x71, 0x91, 0x2e, 0x7b, 0xe5, 0x5b, 0xe5, 0xbb, 0xdb, 0x34, 0x23, 0x8d, 0x67, 0xb0, 0x4d, 0x99, + 0x48, 0x02, 0x79, 0x18, 0x25, 0xa1, 0x64, 0x9c, 0xdc, 0x80, 0x2d, 0x19, 0x49, 0x27, 0xd0, 0xc0, + 0x94, 0x20, 0x3b, 0x50, 0x89, 0xce, 0x7b, 0x15, 0xc5, 0xaa, 0x44, 0xe7, 0xa4, 0x0b, 0x55, 0xc6, + 0x79, 0xaf, 0xaa, 0x18, 0xb8, 0x34, 0xfe, 0x50, 0x81, 0x9d, 0x69, 0xe0, 0x7b, 0x7e, 0x38, 0xcb, + 0x4c, 0xfd, 0x1f, 0x34, 0xa2, 0x0b, 0xc6, 0xed, 0x87, 0x73, 0x6d, 0xac, 0x8e, 0xe4, 0xc3, 0x79, + 0x2e, 0x78, 0x3c, 0xd7, 0x26, 0x95, 0xe0, 0xf1, 0x9c, 0xbc, 0x07, 0xcd, 0x54, 0xe3, 0xf1, 0x5c, + 0xdb, 0x56, 0xc0, 0x87, 0x05, 0xd1, 0xa3, 0x07, 0xf3, 0x5e, 0x6d, 0x21, 0x7a, 0xf4, 0xa0, 0xa0, + 0x75, 0xc6, 0x7b, 0x5b, 0x05, 0xad, 0x33, 0x9e, 0x8b, 0x06, 0x67, 0xbc, 0x57, 0x5f, 0x88, 0x06, + 0x05, 0xd1, 0x27, 0x67, 0xbc, 0xd7, 0x58, 0x88, 0x3e, 0x29, 0x88, 0x3e, 0x3b, 0xe3, 0xbd, 0xe6, + 0x42, 0xf4, 0xd9, 0x19, 0x27, 0xef, 0x43, 0x2b, 0xdd, 0x0b, 0x2d, 0xb6, 0x94, 0x4c, 0x61, 0x91, + 0xce, 0x85, 0x03, 0xb4, 0x09, 0x0b, 0x21, 0xd2, 0xc6, 0x29, 0xb4, 0x86, 0x8e, 0x74, 0x9e, 0x39, + 0xc9, 0x8c, 0x21, 0xd2, 0x4d, 0xe6, 0xf6, 0xe9, 0xa5, 0x64, 0x42, 0x39, 0xa7, 0x46, 0x9b, 0x6e, + 0x32, 0x3f, 0x40, 0x9a, 0x7c, 0x08, 0x6d, 0x14, 0xc6, 0x8e, 0x7b, 0xce, 0xa4, 0x50, 0x2e, 0xaa, + 0x51, 0x70, 0x93, 0xf9, 0x24, 0xe5, 0xa0, 0xff, 0xfc, 0x50, 0x48, 0xfb, 0xf4, 0x5b, 0xe5, 0xa5, + 0x1a, 0xad, 0x23, 0x79, 0xf0, 0xad, 0xf1, 0x97, 0x1a, 0x34, 0x68, 0x12, 0x62, 0x26, 0x90, 0x8f, + 0x60, 0xc7, 0x9f, 0xc7, 0x01, 0x9b, 0xb3, 0x50, 0x3a, 0x32, 0x0b, 0x7d, 0x8b, 0xae, 0x70, 0x8b, + 0xb9, 0x51, 0x51, 0x80, 0x8c, 0x24, 0x7d, 0x68, 0xc6, 0x81, 0x23, 0x5f, 0x45, 0x3c, 0x8d, 0x46, + 0x8b, 0xe6, 0x34, 0x7e, 0x42, 0xcc, 0x18, 0xb7, 0x7d, 0x4f, 0x45, 0xa3, 0x45, 0xeb, 0x48, 0x8e, + 0x3c, 0xf2, 0x63, 0x20, 0xe7, 0x8c, 0xc5, 0xb6, 0x90, 0x4e, 0xc0, 0x6c, 0xcf, 0x91, 0x8e, 0x3d, + 0x17, 0x3a, 0x2c, 0x6f, 0xa1, 0x64, 0x8a, 0x02, 0xf4, 0xc4, 0xb1, 0x20, 0x8f, 0xe0, 0xa6, 0x60, + 0xa1, 0x87, 0x60, 0xc9, 0x6c, 0x1f, 0xb3, 0xe6, 0xc2, 0x09, 0x50, 0x21, 0x0d, 0xd6, 0x3b, 0x28, + 0x9d, 0xa2, 0x70, 0xa4, 0x65, 0xc7, 0x82, 0xec, 0x43, 0x9b, 0x5d, 0xb0, 0x50, 0xda, 0xf2, 0x32, + 0x66, 0xa2, 0xd7, 0xb8, 0x55, 0xbd, 0xdb, 0x1e, 0xdc, 0xda, 0x5b, 0x2e, 0x19, 0xed, 0x85, 0x3d, + 0x13, 0x91, 0xd6, 0x65, 0xcc, 0x28, 0xb0, 0x6c, 0x29, 0xfa, 0x0c, 0x5a, 0xb9, 0x80, 0x10, 0xa8, + 0x85, 0xce, 0x9c, 0x69, 0xf7, 0xa8, 0x35, 0x19, 0x02, 0xc4, 0x3c, 0x8a, 0x19, 0x97, 0x3e, 0xc3, + 0x08, 0xe0, 0x16, 0x77, 0xae, 0xdb, 0x62, 0x92, 0xa2, 0x2f, 0x69, 0x41, 0xaf, 0xff, 0xc7, 0x32, + 0x6c, 0x2f, 0x49, 0xd7, 0xee, 0x65, 0x42, 0x0d, 0x4f, 0xa2, 0xbc, 0xbf, 0x33, 0x78, 0xb8, 0xc9, + 0x2e, 0x7b, 0xd9, 0x42, 0x9d, 0x4c, 0xa9, 0x1b, 0x5f, 0x42, 0xa7, 0xc8, 0x25, 0x00, 0xf5, 0xa9, + 0x45, 0x47, 0xe3, 0x67, 0xdd, 0x12, 0xae, 0xc7, 0x2f, 0x8e, 0x0f, 0x4c, 0xda, 0xad, 0x90, 0x26, + 0xd4, 0xac, 0xd1, 0xb1, 0xd9, 0x05, 0xe4, 0x4e, 0x4c, 0x93, 0x8e, 0x86, 0xdd, 0x36, 0x72, 0x9f, + 0x4f, 0x4f, 0xc6, 0xdd, 0x9f, 0x1a, 0xdf, 0x40, 0xc7, 0x0c, 0xbd, 0x38, 0xf2, 0x43, 0x39, 0x71, + 0x7c, 0x4e, 0x6e, 0xc3, 0xb6, 0xe0, 0xae, 0x3d, 0x4f, 0x02, 0xe9, 0x3b, 0x9e, 0xc7, 0xf5, 0xb7, + 0x77, 0x04, 0x77, 0x8f, 0x33, 0x1e, 0x82, 0x3c, 0x21, 0x0b, 0xa0, 0x34, 0x95, 0x3a, 0x9e, 0x90, + 0x39, 0xc8, 0xf8, 0x15, 0x34, 0x2c, 0xee, 0xbc, 0x7a, 0xe5, 0xbb, 0xe4, 0x53, 0x00, 0x99, 0x2e, + 0x6d, 0x3f, 0x4d, 0xcc, 0xf6, 0xa0, 0xb7, 0x72, 0xf2, 0xbc, 0x5a, 0x68, 0x4b, 0x63, 0x47, 0x21, + 0x79, 0x02, 0xed, 0x4c, 0x31, 0x4a, 0xa4, 0xda, 0xe6, 0x3a, 0xcd, 0x6c, 0x97, 0x93, 0x44, 0x1a, + 0x3f, 0x03, 0x98, 0x4a, 0xce, 0x9c, 0xf9, 0x57, 0xbe, 0x90, 0xe4, 0x03, 0x00, 0xa1, 0x28, 0xdb, + 0xf7, 0xb0, 0x04, 0xab, 0x77, 0x3b, 0xb4, 0x95, 0x72, 0x46, 0x9e, 0x20, 0xf7, 0xa1, 0x91, 0x12, + 0x59, 0xf4, 0xdf, 0x5d, 0xd9, 0x23, 0x35, 0x45, 0x33, 0x94, 0xf1, 0xeb, 0x06, 0xc0, 0x61, 0x14, + 0x86, 0xa9, 0x18, 0x1b, 0xa6, 0xef, 0xa9, 0x83, 0x75, 0x68, 0xc5, 0xf7, 0x8a, 0xf5, 0x52, 0x59, + 0xaa, 0x97, 0x9f, 0x40, 0x1d, 0xb3, 0x3f, 0x11, 0xaa, 0xc4, 0x76, 0xd6, 0xec, 0x83, 0x42, 0xaa, + 0x41, 0xe4, 0x07, 0xd0, 0x91, 0xdc, 0x09, 0x45, 0x1c, 0x71, 0x99, 0x15, 0x5f, 0x87, 0xb6, 0x73, + 0xde, 0xc8, 0x23, 0x4f, 0xa0, 0xc5, 0x74, 0x00, 0xd3, 0xc2, 0x6b, 0x0f, 0xde, 0x5f, 0x31, 0x5a, + 0x0c, 0x30, 0x5d, 0xa0, 0xc9, 0x53, 0x68, 0x62, 0xb2, 0x05, 0x7e, 0xc8, 0x54, 0x05, 0xb6, 0x07, + 0xc6, 0x8a, 0xe6, 0xe2, 0x88, 0x7b, 0x96, 0x46, 0xd2, 0x5c, 0x87, 0xfc, 0x08, 0x6a, 0x3c, 0x0a, + 0x98, 0xea, 0xa7, 0x3b, 0x83, 0x77, 0x56, 0x53, 0x39, 0x0a, 0x18, 0x55, 0x00, 0xf2, 0x00, 0x1a, + 0x3a, 0x32, 0xaa, 0xc1, 0xb6, 0x07, 0x37, 0x57, 0xb0, 0x3a, 0x51, 0x68, 0x06, 0x23, 0x4f, 0xa1, + 0xe1, 0x48, 0xc9, 0xfd, 0x53, 0xa1, 0xda, 0xee, 0xd5, 0x72, 0x2c, 0x7c, 0xd9, 0xbe, 0x02, 0x26, + 0x92, 0x09, 0x9a, 0x29, 0x61, 0xbc, 0x03, 0x47, 0xb2, 0xd0, 0xbd, 0xb4, 0x43, 0xa1, 0x9a, 0x73, + 0x8d, 0xb6, 0x34, 0x67, 0x8c, 0x9d, 0x28, 0x8f, 0x77, 0x5b, 0x99, 0x7f, 0x6f, 0x6d, 0xbc, 0x31, + 0x75, 0xf2, 0x98, 0x93, 0xf7, 0xa0, 0xe1, 0x46, 0x61, 0x88, 0x71, 0xe8, 0x62, 0x1c, 0x8e, 0x4a, + 0xb4, 0x8e, 0x8c, 0x91, 0x47, 0xee, 0x43, 0x0d, 0x57, 0xbd, 0xb7, 0xd7, 0x1a, 0x5b, 0x7c, 0xeb, + 0x51, 0x89, 0x2a, 0x20, 0xf9, 0x18, 0x48, 0x22, 0x18, 0xb7, 0x63, 0x1e, 0x5d, 0xf8, 0x1e, 0xf3, + 0x6c, 0xe9, 0xcc, 0x44, 0xcf, 0xbd, 0x55, 0xbd, 0xdb, 0xa2, 0x5d, 0x94, 0x4c, 0xb4, 0xc0, 0x72, + 0x66, 0xa2, 0xff, 0xa7, 0x32, 0x34, 0x33, 0xff, 0xe3, 0xb7, 0x47, 0x31, 0x0b, 0x6d, 0x29, 0x74, + 0x25, 0xf5, 0xf7, 0xd2, 0xb7, 0xc1, 0x5e, 0xf6, 0x36, 0x50, 0xb1, 0x52, 0x6f, 0x03, 0x5a, 0x47, + 0xa8, 0x25, 0xc8, 0x17, 0xd0, 0x4e, 0xe2, 0x19, 0x77, 0xd4, 0x56, 0x42, 0x17, 0xd2, 0x75, 0x8a, + 0x90, 0xc1, 0x2d, 0x41, 0x1e, 0x43, 0xd3, 0x0d, 0x22, 0xc1, 0x50, 0xb3, 0xfa, 0x1f, 0x35, 0x1b, + 0x0a, 0x6b, 0x89, 0xfe, 0x18, 0x60, 0x11, 0x1a, 0x72, 0x0b, 0xda, 0xaa, 0x5f, 0xc4, 0x01, 0xfb, + 0x25, 0xcb, 0xda, 0x4a, 0x91, 0x45, 0x76, 0x01, 0x58, 0xe8, 0xf2, 0xcb, 0x58, 0x2e, 0x6e, 0xa7, + 0x02, 0xe7, 0x60, 0x07, 0x3a, 0x9c, 0x05, 0xce, 0x25, 0xf3, 0x6c, 0xbc, 0x66, 0x9f, 0xd7, 0x9a, + 0x9d, 0x6e, 0xd7, 0x78, 0x53, 0x83, 0x7a, 0x1a, 0xad, 0x2b, 0x55, 0x88, 0x37, 0x1a, 0x7e, 0x9f, + 0x1b, 0x05, 0xda, 0x5c, 0x4e, 0xe7, 0xb9, 0x5b, 0xfd, 0x1e, 0xb9, 0x5b, 0xdb, 0x2c, 0x77, 0x3f, + 0xd5, 0xc9, 0x90, 0x16, 0xe3, 0xed, 0xb5, 0x99, 0x55, 0xc8, 0x09, 0xca, 0x5e, 0xe9, 0xa4, 0xf8, + 0xfc, 0x4a, 0x3d, 0xee, 0xae, 0x57, 0x5e, 0x53, 0x8b, 0x8b, 0xc6, 0xd2, 0xd8, 0xa4, 0xb1, 0x2c, + 0xd7, 0x47, 0x77, 0xb5, 0x3e, 0xbe, 0x5f, 0x7a, 0xfa, 0xb0, 0xbd, 0x74, 0x9c, 0xbc, 0x1c, 0xca, + 0x9b, 0x96, 0x43, 0xa1, 0xb4, 0x2a, 0xcb, 0xa5, 0x75, 0xd0, 0x01, 0x70, 0x73, 0x85, 0xfe, 0xc5, + 0xff, 0x5a, 0x08, 0xc5, 0x5c, 0xae, 0x6c, 0x9c, 0xcb, 0xc6, 0x9f, 0xeb, 0x50, 0x1d, 0x1e, 0x59, + 0x4b, 0x29, 0x55, 0x5e, 0x49, 0xa9, 0x1e, 0x34, 0x58, 0xe8, 0x9c, 0x06, 0x2c, 0x3d, 0x44, 0x93, + 0x66, 0x24, 0x6e, 0x2a, 0xa4, 0xc3, 0xe5, 0x86, 0x05, 0xa4, 0xb0, 0x96, 0x20, 0x0f, 0xa1, 0x1e, + 0x3b, 0x1c, 0x9b, 0x54, 0x6d, 0xad, 0x23, 0x87, 0x47, 0xd6, 0xde, 0x44, 0x01, 0xa8, 0x06, 0xa2, + 0x4f, 0x4e, 0x93, 0xf4, 0x21, 0xb9, 0xa5, 0x2e, 0xb2, 0x75, 0x3a, 0x07, 0x0a, 0x41, 0x33, 0x24, + 0x39, 0x82, 0xae, 0x1f, 0xba, 0xd1, 0xdc, 0x0f, 0x67, 0xf6, 0x2f, 0x12, 0xc6, 0xf1, 0x11, 0x94, + 0xe6, 0xdf, 0x07, 0x6b, 0xb4, 0xbf, 0x4e, 0x18, 0xbf, 0x4c, 0xef, 0xdb, 0xb7, 0x32, 0xb5, 0xaf, + 0x53, 0x2d, 0xb4, 0x14, 0x25, 0x72, 0x16, 0x15, 0x2d, 0x35, 0x36, 0xb2, 0x94, 0xa9, 0x69, 0x4b, + 0xfd, 0x29, 0xd4, 0xd3, 0xa3, 0x91, 0x0e, 0x94, 0xcf, 0xf5, 0xa3, 0xb9, 0x7c, 0x8e, 0x03, 0x8b, + 0x13, 0xc4, 0x67, 0x8e, 0x7e, 0x27, 0xa7, 0x04, 0xf9, 0x21, 0xec, 0x78, 0xbe, 0xf8, 0x39, 0x5e, + 0x6b, 0x76, 0xec, 0xc8, 0x33, 0xa1, 0x5f, 0xca, 0xdb, 0x19, 0x77, 0x82, 0xcc, 0xfe, 0x5f, 0xcb, + 0xd0, 0x9a, 0xe0, 0x45, 0x1c, 0x62, 0x2c, 0x0b, 0x97, 0x74, 0x79, 0xe9, 0x92, 0xfe, 0x22, 0xaf, + 0xa5, 0xf4, 0x91, 0x76, 0x7b, 0x9d, 0xdf, 0x33, 0x33, 0xab, 0x95, 0x65, 0xc0, 0xb6, 0x33, 0xc3, + 0xd7, 0xad, 0x9d, 0xba, 0x57, 0x4f, 0x36, 0x6d, 0x67, 0xc6, 0x46, 0x61, 0xea, 0x79, 0xe3, 0x29, + 0xb6, 0x2c, 0x85, 0x06, 0xa8, 0xef, 0x1f, 0x5a, 0xa3, 0x97, 0x66, 0xb7, 0x44, 0xda, 0xd0, 0x38, + 0x1e, 0x4d, 0xa7, 0xf8, 0x86, 0x2b, 0x93, 0x0e, 0x34, 0xa9, 0xf9, 0xdc, 0x3c, 0xb4, 0xcc, 0x61, + 0xb7, 0x42, 0xb6, 0xa1, 0x75, 0xb8, 0x3f, 0x1e, 0x8e, 0x86, 0xfb, 0x96, 0xd9, 0xad, 0xf6, 0xbf, + 0x81, 0x7a, 0x6a, 0x09, 0xf3, 0xd1, 0xf3, 0x85, 0x74, 0x42, 0x97, 0xe9, 0xa9, 0x2b, 0xa7, 0xc9, + 0x00, 0xb6, 0xf0, 0x40, 0xd9, 0x93, 0xe6, 0xff, 0xaf, 0x3b, 0x05, 0x4d, 0xa1, 0xfd, 0x97, 0x00, + 0x8b, 0xa8, 0x60, 0x46, 0x8b, 0xc4, 0x75, 0x99, 0xc8, 0xa6, 0x96, 0x8c, 0xc4, 0x30, 0x30, 0xce, + 0x23, 0x9e, 0x85, 0x41, 0x11, 0x88, 0xc7, 0x86, 0x84, 0x4f, 0xb5, 0xd4, 0xff, 0x19, 0x69, 0x44, + 0x00, 0xd3, 0xe4, 0x54, 0x5c, 0x0a, 0xc9, 0xe6, 0xea, 0x36, 0x5a, 0xd4, 0x74, 0xfa, 0x1c, 0xbb, + 0xae, 0x4d, 0xd0, 0x22, 0x9a, 0xdc, 0x81, 0xaa, 0x77, 0x96, 0xbd, 0x05, 0xc9, 0xd5, 0x43, 0x51, + 0x14, 0x1b, 0xbf, 0xaf, 0xc0, 0x96, 0x1a, 0x25, 0xc8, 0x13, 0x00, 0x91, 0x6f, 0xfd, 0x6f, 0x5a, + 0xd2, 0xe2, 0xdb, 0x68, 0x01, 0x5c, 0xec, 0xfd, 0x95, 0xcd, 0x7a, 0xff, 0x13, 0x00, 0x1c, 0xce, + 0x9c, 0x70, 0xc3, 0x5a, 0x6f, 0x69, 0x74, 0xda, 0x99, 0xf2, 0x26, 0x51, 0xdb, 0xbc, 0x49, 0x3c, + 0x80, 0x1b, 0x22, 0x74, 0x62, 0x71, 0x16, 0x49, 0xdb, 0x4b, 0xb8, 0x9a, 0xf2, 0x16, 0x33, 0x18, + 0xc9, 0x64, 0x43, 0x2d, 0x3a, 0x16, 0x86, 0x03, 0x5b, 0x6a, 0xbc, 0xc0, 0xf1, 0x44, 0x8d, 0x22, + 0x7a, 0x3c, 0xc1, 0x35, 0xb9, 0x07, 0x95, 0x8d, 0x3a, 0x63, 0x45, 0x0a, 0x0c, 0xb7, 0x1b, 0x85, + 0x92, 0x85, 0x52, 0x0f, 0x8c, 0x19, 0x69, 0xfc, 0xb3, 0x0c, 0x64, 0xa2, 0xfb, 0x22, 0x3e, 0xcf, + 0xd3, 0x51, 0x16, 0xfd, 0x59, 0xfc, 0x63, 0xe2, 0xaa, 0x3f, 0xf5, 0x3f, 0x18, 0x8b, 0xa1, 0xf4, + 0x63, 0xd8, 0x52, 0xd3, 0xa2, 0xfe, 0xa2, 0x1b, 0x6b, 0x6e, 0x35, 0x76, 0x54, 0xa2, 0x29, 0x88, + 0x0c, 0xa0, 0xc1, 0xd3, 0x01, 0x4a, 0xbb, 0xfe, 0xe6, 0xfa, 0xf1, 0xea, 0xa8, 0x44, 0x33, 0x20, + 0xee, 0xa0, 0x46, 0x45, 0xed, 0xf3, 0xd5, 0x1d, 0x94, 0xa7, 0x70, 0x07, 0x05, 0x3a, 0x68, 0x41, + 0x63, 0xce, 0x84, 0x70, 0x66, 0xcc, 0xf8, 0x5d, 0x15, 0x3a, 0x87, 0x81, 0xcf, 0x42, 0x39, 0xf5, + 0x67, 0xa1, 0x13, 0xfc, 0x17, 0xa7, 0xfb, 0x1c, 0xea, 0x42, 0xe9, 0xea, 0x46, 0x73, 0xe5, 0xf9, + 0x5d, 0x30, 0xbf, 0x97, 0xfe, 0x50, 0xad, 0x41, 0x9e, 0x41, 0x5b, 0x8d, 0xdb, 0x22, 0x4a, 0xb8, + 0x9b, 0xbd, 0x63, 0x3e, 0xba, 0xce, 0x00, 0x06, 0x62, 0xaa, 0xd0, 0x14, 0xbc, 0x7c, 0x5d, 0x8c, + 0x62, 0x6d, 0x39, 0x8a, 0xbf, 0x29, 0x43, 0x5d, 0x9f, 0x6d, 0x1b, 0x5a, 0x53, 0x73, 0x3c, 0xb4, + 0x87, 0xfb, 0xd6, 0x7e, 0xb7, 0x44, 0x6e, 0x02, 0x99, 0x5a, 0xfb, 0xd4, 0xb2, 0x27, 0x2f, 0xa6, + 0x47, 0xb6, 0x79, 0x3c, 0xb2, 0x2c, 0x93, 0x76, 0xcb, 0xe4, 0x5d, 0x78, 0x7b, 0x6a, 0x9d, 0x4c, + 0x96, 0xd9, 0x15, 0x84, 0x4f, 0xf6, 0x5f, 0x4c, 0xcd, 0x65, 0x7e, 0x95, 0xf4, 0xe0, 0xc6, 0x8b, + 0xf1, 0x1a, 0x49, 0x8d, 0x10, 0xd8, 0x39, 0x3c, 0x19, 0x7f, 0x39, 0x7a, 0x96, 0xf3, 0xc0, 0xb8, + 0x03, 0xb0, 0x38, 0x02, 0x69, 0xc1, 0xd6, 0xd4, 0xc2, 0x76, 0xa8, 0x1a, 0x27, 0x7d, 0x31, 0x56, + 0x63, 0x6e, 0xf9, 0x9e, 0xb9, 0xb6, 0xb7, 0x02, 0xd4, 0x0f, 0xbf, 0x3a, 0x99, 0x9a, 0xc3, 0x6e, + 0x19, 0xe1, 0x27, 0x13, 0x73, 0x8c, 0x7d, 0xb6, 0x82, 0x04, 0x0a, 0x90, 0xa8, 0xa2, 0x4d, 0x93, + 0xd2, 0x13, 0xda, 0xad, 0xdd, 0xbb, 0x03, 0x35, 0x7c, 0x04, 0xe2, 0xc1, 0x47, 0xe3, 0x91, 0x35, + 0xda, 0xb7, 0x4e, 0x68, 0xb7, 0x84, 0x24, 0x35, 0xa7, 0x93, 0x93, 0xf1, 0x10, 0xcf, 0x7b, 0xd0, + 0xfb, 0xdb, 0xeb, 0xdd, 0xf2, 0x77, 0xaf, 0x77, 0xcb, 0xff, 0x78, 0xbd, 0x5b, 0xfe, 0xed, 0x9b, + 0xdd, 0xd2, 0x77, 0x6f, 0x76, 0x4b, 0x7f, 0x7f, 0xb3, 0x5b, 0x3a, 0xad, 0xab, 0x9a, 0x79, 0xf4, + 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc6, 0x6b, 0x49, 0xa8, 0xdc, 0x13, 0x00, 0x00, +} + +func (m *Version) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *DataGauge) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *Version) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Version) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if m.CumBytes != 0 { + if m.Version != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Version)) + i-- dAtA[i] = 0x8 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.CumBytes)) - } - if m.CumPackets != 0 { - dAtA[i] = 0x10 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.CumPackets)) - } - if m.InstBw != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.InstBw)) } - return i, nil + return len(dAtA) - i, nil } -func (m *Runtime) Marshal() (dAtA []byte, err error) { +func (m *ResultCounter) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *Runtime) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *ResultCounter) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResultCounter) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if len(m.Implementation) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Implementation))) - i += copy(dAtA[i:], m.Implementation) - } - if len(m.Version) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Version))) - i += copy(dAtA[i:], m.Version) + if m.Err != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Err)) + i-- + dAtA[i] = 0x18 } - if len(m.Platform) > 0 { - dAtA[i] = 0x1a - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Platform))) - i += copy(dAtA[i:], m.Platform) + if m.Ok != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Ok)) + i-- + dAtA[i] = 0x10 } - if len(m.PeerId) > 0 { - dAtA[i] = 0x22 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.PeerId))) - i += copy(dAtA[i:], m.PeerId) + if m.Total != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Total)) + i-- + dAtA[i] = 0x8 } - return i, nil + return len(dAtA) - i, nil } -func (m *EndpointPair) Marshal() (dAtA []byte, err error) { +func (m *SlidingCounter) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *EndpointPair) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *SlidingCounter) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SlidingCounter) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if len(m.SrcMultiaddr) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.SrcMultiaddr))) - i += copy(dAtA[i:], m.SrcMultiaddr) + if m.Over_24Hr != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_24Hr)) + i-- + dAtA[i] = 0x50 } - if len(m.DstMultiaddr) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.DstMultiaddr))) - i += copy(dAtA[i:], m.DstMultiaddr) + if m.Over_12Hr != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_12Hr)) + i-- + dAtA[i] = 0x48 + } + if m.Over_8Hr != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_8Hr)) + i-- + dAtA[i] = 0x40 + } + if m.Over_4Hr != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_4Hr)) + i-- + dAtA[i] = 0x38 + } + if m.Over_2Hr != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_2Hr)) + i-- + dAtA[i] = 0x30 + } + if m.Over_1Hr != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_1Hr)) + i-- + dAtA[i] = 0x28 + } + if m.Over_30M != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_30M)) + i-- + dAtA[i] = 0x20 + } + if m.Over_15M != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_15M)) + i-- + dAtA[i] = 0x18 + } + if m.Over_5M != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_5M)) + i-- + dAtA[i] = 0x10 + } + if m.Over_1M != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Over_1M)) + i-- + dAtA[i] = 0x8 } - return i, nil + return len(dAtA) - i, nil } -func (m *Traffic) Marshal() (dAtA []byte, err error) { +func (m *DataGauge) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *Traffic) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *DataGauge) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DataGauge) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if m.TrafficIn != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.TrafficIn.Size())) - n1, err := m.TrafficIn.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 + if m.InstBw != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.InstBw)) + i-- + dAtA[i] = 0x18 } - if m.TrafficOut != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.TrafficOut.Size())) - n2, err := m.TrafficOut.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 + if m.CumPackets != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.CumPackets)) + i-- + dAtA[i] = 0x10 + } + if m.CumBytes != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.CumBytes)) + i-- + dAtA[i] = 0x8 } - return i, nil + return len(dAtA) - i, nil } -func (m *StreamList) Marshal() (dAtA []byte, err error) { +func (m *Runtime) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *StreamList) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.StreamIds) > 0 { - for _, s := range m.StreamIds { - dAtA[i] = 0xa - i++ - l = len(s) - for l >= 1<<7 { - dAtA[i] = uint8(uint64(l)&0x7f | 0x80) - l >>= 7 - i++ - } - dAtA[i] = uint8(l) - i++ - i += copy(dAtA[i:], s) - } - } - if len(m.Streams) > 0 { - for _, msg := range m.Streams { - dAtA[i] = 0x12 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *Connection) Marshal() (dAtA []byte, err error) { +func (m *Runtime) MarshalTo(dAtA []byte) (int, error) { size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil + return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Connection) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *Runtime) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if len(m.Id) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Id))) - i += copy(dAtA[i:], m.Id) - } - if len(m.PeerId) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.PeerId))) - i += copy(dAtA[i:], m.PeerId) - } - if m.Status != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Status)) - } - if len(m.TransportId) > 0 { - dAtA[i] = 0x22 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.TransportId))) - i += copy(dAtA[i:], m.TransportId) - } - if m.Endpoints != nil { - dAtA[i] = 0x2a - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Endpoints.Size())) - n3, err := m.Endpoints.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n3 - } - if m.Timeline != nil { - dAtA[i] = 0x32 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Timeline.Size())) - n4, err := m.Timeline.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err + if len(m.EventTypes) > 0 { + for iNdEx := len(m.EventTypes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.EventTypes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a } - i += n4 - } - if m.Role != 0 { - dAtA[i] = 0x38 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Role)) } - if m.Traffic != nil { - dAtA[i] = 0x42 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Traffic.Size())) - n5, err := m.Traffic.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n5 + if m.SendStateIntervalMs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.SendStateIntervalMs)) + i-- + dAtA[i] = 0x30 } - if m.Attribs != nil { - dAtA[i] = 0x4a - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Attribs.Size())) - n6, err := m.Attribs.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n6 + if m.KeepStaleDataMs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.KeepStaleDataMs)) + i-- + dAtA[i] = 0x28 } - if m.LatencyNs != 0 { - dAtA[i] = 0x50 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.LatencyNs)) + if len(m.PeerId) > 0 { + i -= len(m.PeerId) + copy(dAtA[i:], m.PeerId) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.PeerId))) + i-- + dAtA[i] = 0x22 } - if m.Streams != nil { - dAtA[i] = 0x5a - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Streams.Size())) - n7, err := m.Streams.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n7 + if len(m.Platform) > 0 { + i -= len(m.Platform) + copy(dAtA[i:], m.Platform) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Platform))) + i-- + dAtA[i] = 0x1a } - if m.RelayedOver != nil { - nn8, err := m.RelayedOver.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn8 + if len(m.Version) > 0 { + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0x12 } - if len(m.UserProvidedTags) > 0 { - for _, s := range m.UserProvidedTags { - dAtA[i] = 0x9a - i++ - dAtA[i] = 0x6 - i++ - l = len(s) - for l >= 1<<7 { - dAtA[i] = uint8(uint64(l)&0x7f | 0x80) - l >>= 7 - i++ - } - dAtA[i] = uint8(l) - i++ - i += copy(dAtA[i:], s) - } + if len(m.Implementation) > 0 { + i -= len(m.Implementation) + copy(dAtA[i:], m.Implementation) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Implementation))) + i-- + dAtA[i] = 0xa } - return i, nil + return len(dAtA) - i, nil } -func (m *Connection_ConnId) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.ConnId))) - i += copy(dAtA[i:], m.ConnId) - return i, nil -} -func (m *Connection_Conn) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Conn != nil { - dAtA[i] = 0x8a - i++ - dAtA[i] = 0x1 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Conn.Size())) - n9, err := m.Conn.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n9 - } - return i, nil -} -func (m *Connection_Timeline) Marshal() (dAtA []byte, err error) { +func (m *Runtime_EventType) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *Connection_Timeline) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *Runtime_EventType) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Runtime_EventType) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if m.OpenTs != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.OpenTs))) - n10, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.OpenTs, dAtA[i:]) - if err != nil { - return 0, err - } - i += n10 - } - if m.UpgradedTs != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.UpgradedTs))) - n11, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.UpgradedTs, dAtA[i:]) - if err != nil { - return 0, err + if len(m.Properties) > 0 { + for iNdEx := len(m.Properties) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Properties[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 } - i += n11 } - if m.CloseTs != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.CloseTs))) - n12, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.CloseTs, dAtA[i:]) - if err != nil { - return 0, err - } - i += n12 + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa } - return i, nil + return len(dAtA) - i, nil } -func (m *Connection_Attributes) Marshal() (dAtA []byte, err error) { +func (m *Runtime_EventProperty) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *Connection_Attributes) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *Runtime_EventProperty) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Runtime_EventProperty) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if len(m.Multiplexer) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Multiplexer))) - i += copy(dAtA[i:], m.Multiplexer) + if m.Type != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Type)) + i-- + dAtA[i] = 0x10 } - if len(m.Encryption) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Encryption))) - i += copy(dAtA[i:], m.Encryption) + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa } - return i, nil + return len(dAtA) - i, nil } -func (m *Stream) Marshal() (dAtA []byte, err error) { +func (m *EndpointPair) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *Stream) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *EndpointPair) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EndpointPair) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if len(m.Id) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Id))) - i += copy(dAtA[i:], m.Id) - } - if len(m.Protocol) > 0 { + if len(m.DstMultiaddr) > 0 { + i -= len(m.DstMultiaddr) + copy(dAtA[i:], m.DstMultiaddr) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.DstMultiaddr))) + i-- dAtA[i] = 0x12 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Protocol))) - i += copy(dAtA[i:], m.Protocol) - } - if m.Role != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Role)) - } - if m.Traffic != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Traffic.Size())) - n13, err := m.Traffic.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n13 - } - if m.Conn != nil { - dAtA[i] = 0x2a - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Conn.Size())) - n14, err := m.Conn.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n14 - } - if m.Timeline != nil { - dAtA[i] = 0x32 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Timeline.Size())) - n15, err := m.Timeline.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n15 } - if m.Status != 0 { - dAtA[i] = 0x38 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Status)) - } - if m.LatencyNs != 0 { - dAtA[i] = 0x80 - i++ - dAtA[i] = 0x1 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.LatencyNs)) - } - if len(m.UserProvidedTags) > 0 { - for _, s := range m.UserProvidedTags { - dAtA[i] = 0x9a - i++ - dAtA[i] = 0x6 - i++ - l = len(s) - for l >= 1<<7 { - dAtA[i] = uint8(uint64(l)&0x7f | 0x80) - l >>= 7 - i++ - } - dAtA[i] = uint8(l) - i++ - i += copy(dAtA[i:], s) - } + if len(m.SrcMultiaddr) > 0 { + i -= len(m.SrcMultiaddr) + copy(dAtA[i:], m.SrcMultiaddr) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.SrcMultiaddr))) + i-- + dAtA[i] = 0xa } - return i, nil + return len(dAtA) - i, nil } -func (m *Stream_ConnectionRef) Marshal() (dAtA []byte, err error) { +func (m *Traffic) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *Stream_ConnectionRef) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *Traffic) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Traffic) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if m.Connection != nil { - nn16, err := m.Connection.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err + if m.TrafficOut != nil { + { + size, err := m.TrafficOut.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) } - i += nn16 + i-- + dAtA[i] = 0x12 } - return i, nil -} - -func (m *Stream_ConnectionRef_Conn) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Conn != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Conn.Size())) - n17, err := m.Conn.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err + if m.TrafficIn != nil { + { + size, err := m.TrafficIn.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) } - i += n17 + i-- + dAtA[i] = 0xa } - return i, nil + return len(dAtA) - i, nil } -func (m *Stream_ConnectionRef_ConnId) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x12 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.ConnId))) - i += copy(dAtA[i:], m.ConnId) - return i, nil -} -func (m *Stream_Timeline) Marshal() (dAtA []byte, err error) { + +func (m *StreamList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *Stream_Timeline) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *StreamList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StreamList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if m.OpenTs != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.OpenTs))) - n18, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.OpenTs, dAtA[i:]) - if err != nil { - return 0, err + if len(m.Streams) > 0 { + for iNdEx := len(m.Streams) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Streams[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 } - i += n18 } - if m.CloseTs != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.CloseTs))) - n19, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.CloseTs, dAtA[i:]) - if err != nil { - return 0, err + if len(m.StreamIds) > 0 { + for iNdEx := len(m.StreamIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.StreamIds[iNdEx]) + copy(dAtA[i:], m.StreamIds[iNdEx]) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.StreamIds[iNdEx]))) + i-- + dAtA[i] = 0xa } - i += n19 } - return i, nil + return len(dAtA) - i, nil } -func (m *DHT) Marshal() (dAtA []byte, err error) { +func (m *Connection) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *DHT) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *Connection) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Connection) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if len(m.Protocol) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Protocol))) - i += copy(dAtA[i:], m.Protocol) - } - if m.Enabled { - dAtA[i] = 0x10 - i++ - if m.Enabled { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if len(m.UserProvidedTags) > 0 { + for iNdEx := len(m.UserProvidedTags) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.UserProvidedTags[iNdEx]) + copy(dAtA[i:], m.UserProvidedTags[iNdEx]) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.UserProvidedTags[iNdEx]))) + i-- + dAtA[i] = 0x6 + i-- + dAtA[i] = 0x9a } - i++ } - if m.StartTs != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.StartTs))) - n20, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.StartTs, dAtA[i:]) - if err != nil { - return 0, err + if m.RelayedOver != nil { + { + size := m.RelayedOver.Size() + i -= size + if _, err := m.RelayedOver.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } } - i += n20 } - if m.Params != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Params.Size())) - n21, err := m.Params.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err + if m.Streams != nil { + { + size, err := m.Streams.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) } - i += n21 + i-- + dAtA[i] = 0x5a } - if len(m.Query) > 0 { - for _, msg := range m.Query { - dAtA[i] = 0x2a - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) + if m.LatencyNs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.LatencyNs)) + i-- + dAtA[i] = 0x50 + } + if m.Attribs != nil { + { + size, err := m.Attribs.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + if m.Traffic != nil { + { + size, err := m.Traffic.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if m.Role != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Role)) + i-- + dAtA[i] = 0x38 + } + if m.Timeline != nil { + { + size, err := m.Timeline.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.Endpoints != nil { + { + size, err := m.Endpoints.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } - i += n + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x2a + } + if len(m.TransportId) > 0 { + i -= len(m.TransportId) + copy(dAtA[i:], m.TransportId) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.TransportId))) + i-- + dAtA[i] = 0x22 + } + if m.Status != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x18 + } + if len(m.PeerId) > 0 { + i -= len(m.PeerId) + copy(dAtA[i:], m.PeerId) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.PeerId))) + i-- + dAtA[i] = 0x12 + } + if len(m.Id) > 0 { + i -= len(m.Id) + copy(dAtA[i:], m.Id) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Id))) + i-- + dAtA[i] = 0xa } - return i, nil + return len(dAtA) - i, nil } -func (m *DHT_Params) Marshal() (dAtA []byte, err error) { +func (m *Connection_ConnId) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Connection_ConnId) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ConnId != nil { + i -= len(m.ConnId) + copy(dAtA[i:], m.ConnId) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.ConnId))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + return len(dAtA) - i, nil +} +func (m *Connection_Conn) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Connection_Conn) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Conn != nil { + { + size, err := m.Conn.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + return len(dAtA) - i, nil +} +func (m *Connection_Timeline) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *DHT_Params) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *Connection_Timeline) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Connection_Timeline) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if m.K != 0 { - dAtA[i] = 0x8 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.K)) + if m.CloseTs != nil { + { + size, err := m.CloseTs.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a } - if m.Alpha != 0 { - dAtA[i] = 0x10 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Alpha)) + if m.UpgradedTs != nil { + { + size, err := m.UpgradedTs.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 } - if m.DisjointPaths != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.DisjointPaths)) + if m.OpenTs != nil { + { + size, err := m.OpenTs.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa } - return i, nil + return len(dAtA) - i, nil } -func (m *DHT_Query) Marshal() (dAtA []byte, err error) { +func (m *Connection_Attributes) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *DHT_Query) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *Connection_Attributes) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Connection_Attributes) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if len(m.Id) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Id))) - i += copy(dAtA[i:], m.Id) - } - if len(m.TargetPeerId) > 0 { + if len(m.Encryption) > 0 { + i -= len(m.Encryption) + copy(dAtA[i:], m.Encryption) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Encryption))) + i-- dAtA[i] = 0x12 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.TargetPeerId))) - i += copy(dAtA[i:], m.TargetPeerId) } - if m.TotalTimeMs != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.TotalTimeMs)) + if len(m.Multiplexer) > 0 { + i -= len(m.Multiplexer) + copy(dAtA[i:], m.Multiplexer) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Multiplexer))) + i-- + dAtA[i] = 0xa } - if m.TotalSteps != 0 { - dAtA[i] = 0x20 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.TotalSteps)) + return len(dAtA) - i, nil +} + +func (m *Stream) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - if len(m.PeerIds) > 0 { - for _, s := range m.PeerIds { - dAtA[i] = 0x2a - i++ - l = len(s) - for l >= 1<<7 { - dAtA[i] = uint8(uint64(l)&0x7f | 0x80) - l >>= 7 - i++ - } - dAtA[i] = uint8(l) - i++ - i += copy(dAtA[i:], s) + return dAtA[:n], nil +} + +func (m *Stream) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Stream) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.UserProvidedTags) > 0 { + for iNdEx := len(m.UserProvidedTags) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.UserProvidedTags[iNdEx]) + copy(dAtA[i:], m.UserProvidedTags[iNdEx]) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.UserProvidedTags[iNdEx]))) + i-- + dAtA[i] = 0x6 + i-- + dAtA[i] = 0x9a } } - if m.Trigger != 0 { - dAtA[i] = 0x30 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Trigger)) + if m.LatencyNs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.LatencyNs)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x80 } - if m.Type != 0 { + if m.Status != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Status)) + i-- dAtA[i] = 0x38 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Type)) } - if m.Result != 0 { - dAtA[i] = 0x40 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Result)) + if m.Timeline != nil { + { + size, err := m.Timeline.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 } - if m.SentTs != nil { - dAtA[i] = 0x4a - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.SentTs))) - n22, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.SentTs, dAtA[i:]) - if err != nil { - return 0, err + if m.Conn != nil { + { + size, err := m.Conn.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.Traffic != nil { + { + size, err := m.Traffic.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) } - i += n22 + i-- + dAtA[i] = 0x22 + } + if m.Role != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Role)) + i-- + dAtA[i] = 0x18 + } + if len(m.Protocol) > 0 { + i -= len(m.Protocol) + copy(dAtA[i:], m.Protocol) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Protocol))) + i-- + dAtA[i] = 0x12 + } + if len(m.Id) > 0 { + i -= len(m.Id) + copy(dAtA[i:], m.Id) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Id))) + i-- + dAtA[i] = 0xa } - return i, nil + return len(dAtA) - i, nil } -func (m *Subsystems) Marshal() (dAtA []byte, err error) { +func (m *Stream_ConnectionRef) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *Subsystems) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *Stream_ConnectionRef) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Stream_ConnectionRef) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if len(m.Connections) > 0 { - for _, msg := range m.Connections { - dAtA[i] = 0xa - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { + if m.Connection != nil { + { + size := m.Connection.Size() + i -= size + if _, err := m.Connection.MarshalTo(dAtA[i:]); err != nil { return 0, err } - i += n } } - if m.Dht != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Dht.Size())) - n23, err := m.Dht.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err + return len(dAtA) - i, nil +} + +func (m *Stream_ConnectionRef_Conn) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Stream_ConnectionRef_Conn) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Conn != nil { + { + size, err := m.Conn.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) } - i += n23 + i-- + dAtA[i] = 0xa } - return i, nil + return len(dAtA) - i, nil +} +func (m *Stream_ConnectionRef_ConnId) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *State) Marshal() (dAtA []byte, err error) { +func (m *Stream_ConnectionRef_ConnId) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ConnId != nil { + i -= len(m.ConnId) + copy(dAtA[i:], m.ConnId) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.ConnId))) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *Stream_Timeline) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) if err != nil { return nil, err } return dAtA[:n], nil } -func (m *State) MarshalTo(dAtA []byte) (int, error) { - var i int +func (m *Stream_Timeline) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Stream_Timeline) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) _ = i var l int _ = l - if m.Version != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Version.Size())) - n24, err := m.Version.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err + if m.CloseTs != nil { + { + size, err := m.CloseTs.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) } - i += n24 - } - if m.Runtime != nil { + i-- dAtA[i] = 0x12 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Runtime.Size())) - n25, err := m.Runtime.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n25 } - if m.Subsystems != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Subsystems.Size())) - n26, err := m.Subsystems.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err + if m.OpenTs != nil { + { + size, err := m.OpenTs.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) } - i += n26 + i-- + dAtA[i] = 0xa } - if m.Traffic != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.Traffic.Size())) - n27, err := m.Traffic.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err + return len(dAtA) - i, nil +} + +func (m *DHT) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DHT) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DHT) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.OutgoingQueries != nil { + { + size, err := m.OutgoingQueries.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) } - i += n27 + i-- + dAtA[i] = 0x3a } - if m.InstantTs != nil { - dAtA[i] = 0x2a - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.InstantTs.Size())) - n28, err := m.InstantTs.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err + if m.IncomingQueries != nil { + { + size, err := m.IncomingQueries.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if len(m.Buckets) > 0 { + for iNdEx := len(m.Buckets) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Buckets[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } + if m.Params != nil { + { + size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) } - i += n28 + i-- + dAtA[i] = 0x22 } if m.StartTs != nil { - dAtA[i] = 0x32 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.StartTs.Size())) - n29, err := m.StartTs.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err + { + size, err := m.StartTs.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) } - i += n29 + i-- + dAtA[i] = 0x1a } - if m.SnapshotDurationMs != 0 { - dAtA[i] = 0x38 - i++ - i = encodeVarintIntrospection(dAtA, i, uint64(m.SnapshotDurationMs)) + if m.Enabled { + i-- + if m.Enabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if len(m.Protocol) > 0 { + i -= len(m.Protocol) + copy(dAtA[i:], m.Protocol) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Protocol))) + i-- + dAtA[i] = 0xa } - return i, nil + return len(dAtA) - i, nil } -func encodeVarintIntrospection(dAtA []byte, offset int, v uint64) int { - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *DHT_Params) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - dAtA[offset] = uint8(v) - return offset + 1 + return dAtA[:n], nil } -func (m *Version) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Number != 0 { - n += 1 + sovIntrospection(uint64(m.Number)) - } - return n + +func (m *DHT_Params) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ResultCounter) Size() (n int) { - if m == nil { - return 0 - } +func (m *DHT_Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.Total != 0 { - n += 1 + sovIntrospection(uint64(m.Total)) + if m.DisjointPaths != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.DisjointPaths)) + i-- + dAtA[i] = 0x18 } - if m.Ok != 0 { - n += 1 + sovIntrospection(uint64(m.Ok)) + if m.Alpha != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Alpha)) + i-- + dAtA[i] = 0x10 } - if m.Err != 0 { - n += 1 + sovIntrospection(uint64(m.Err)) + if m.K != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.K)) + i-- + dAtA[i] = 0x8 } - return n + return len(dAtA) - i, nil } -func (m *SlidingCounter) Size() (n int) { - if m == nil { - return 0 +func (m *DHT_PeerInDHT) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *DHT_PeerInDHT) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DHT_PeerInDHT) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.Over_1M != 0 { - n += 1 + sovIntrospection(uint64(m.Over_1M)) - } - if m.Over_5M != 0 { - n += 1 + sovIntrospection(uint64(m.Over_5M)) - } - if m.Over_15M != 0 { - n += 1 + sovIntrospection(uint64(m.Over_15M)) - } - if m.Over_30M != 0 { - n += 1 + sovIntrospection(uint64(m.Over_30M)) - } - if m.Over_1Hr != 0 { - n += 1 + sovIntrospection(uint64(m.Over_1Hr)) - } - if m.Over_2Hr != 0 { - n += 1 + sovIntrospection(uint64(m.Over_2Hr)) - } - if m.Over_4Hr != 0 { - n += 1 + sovIntrospection(uint64(m.Over_4Hr)) - } - if m.Over_8Hr != 0 { - n += 1 + sovIntrospection(uint64(m.Over_8Hr)) + if m.AgeInBucket != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.AgeInBucket)) + i-- + dAtA[i] = 0x18 } - if m.Over_12Hr != 0 { - n += 1 + sovIntrospection(uint64(m.Over_12Hr)) + if m.Status != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x10 } - if m.Over_24Hr != 0 { - n += 1 + sovIntrospection(uint64(m.Over_24Hr)) + if len(m.PeerId) > 0 { + i -= len(m.PeerId) + copy(dAtA[i:], m.PeerId) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.PeerId))) + i-- + dAtA[i] = 0xa } - return n + return len(dAtA) - i, nil } -func (m *DataGauge) Size() (n int) { - if m == nil { - return 0 +func (m *DHT_Bucket) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *DHT_Bucket) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DHT_Bucket) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.CumBytes != 0 { - n += 1 + sovIntrospection(uint64(m.CumBytes)) - } - if m.CumPackets != 0 { - n += 1 + sovIntrospection(uint64(m.CumPackets)) + if len(m.Peers) > 0 { + for iNdEx := len(m.Peers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Peers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } } - if m.InstBw != 0 { - n += 1 + sovIntrospection(uint64(m.InstBw)) + if m.Distance != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Distance)) + i-- + dAtA[i] = 0x8 } - return n + return len(dAtA) - i, nil } -func (m *Runtime) Size() (n int) { - if m == nil { - return 0 +func (m *DHT_QueryGauge) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *DHT_QueryGauge) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DHT_QueryGauge) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = len(m.Implementation) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) - } - l = len(m.Version) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) + if m.Timeout != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Timeout)) + i-- + dAtA[i] = 0x18 } - l = len(m.Platform) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) + if m.Error != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Error)) + i-- + dAtA[i] = 0x10 } - l = len(m.PeerId) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) + if m.Success != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Success)) + i-- + dAtA[i] = 0x8 } - return n + return len(dAtA) - i, nil } -func (m *EndpointPair) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.SrcMultiaddr) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) - } - l = len(m.DstMultiaddr) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) +func (m *Subsystems) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - return n + return dAtA[:n], nil } -func (m *Traffic) Size() (n int) { - if m == nil { - return 0 - } +func (m *Subsystems) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Subsystems) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.TrafficIn != nil { - l = m.TrafficIn.Size() - n += 1 + l + sovIntrospection(uint64(l)) + if m.Dht != nil { + { + size, err := m.Dht.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 } - if m.TrafficOut != nil { - l = m.TrafficOut.Size() - n += 1 + l + sovIntrospection(uint64(l)) + if len(m.Connections) > 0 { + for iNdEx := len(m.Connections) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Connections[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } } - return n + return len(dAtA) - i, nil } -func (m *StreamList) Size() (n int) { - if m == nil { - return 0 +func (m *State) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *State) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *State) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if len(m.StreamIds) > 0 { - for _, s := range m.StreamIds { - l = len(s) - n += 1 + l + sovIntrospection(uint64(l)) + if m.SnapshotDurationMs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.SnapshotDurationMs)) + i-- + dAtA[i] = 0x28 + } + if m.StartTs != nil { + { + size, err := m.StartTs.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x22 } - if len(m.Streams) > 0 { - for _, e := range m.Streams { - l = e.Size() - n += 1 + l + sovIntrospection(uint64(l)) + if m.InstantTs != nil { + { + size, err := m.InstantTs.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x1a } - return n + if m.Traffic != nil { + { + size, err := m.Traffic.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Subsystems != nil { + { + size, err := m.Subsystems.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *Connection) Size() (n int) { - if m == nil { - return 0 +func (m *Event) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *Event) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = len(m.Id) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) + if len(m.Content) > 0 { + i -= len(m.Content) + copy(dAtA[i:], m.Content) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Content))) + i-- + dAtA[i] = 0x1a } - l = len(m.PeerId) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) + if m.Ts != nil { + { + size, err := m.Ts.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 } - if m.Status != 0 { - n += 1 + sovIntrospection(uint64(m.Status)) + if len(m.Type) > 0 { + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa } - l = len(m.TransportId) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) + return len(dAtA) - i, nil +} + +func (m *ProtocolDataPacket) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - if m.Endpoints != nil { - l = m.Endpoints.Size() - n += 1 + l + sovIntrospection(uint64(l)) + return dAtA[:n], nil +} + +func (m *ProtocolDataPacket) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProtocolDataPacket) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Message != nil { + { + size := m.Message.Size() + i -= size + if _, err := m.Message.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } } - if m.Timeline != nil { - l = m.Timeline.Size() - n += 1 + l + sovIntrospection(uint64(l)) + if m.Version != nil { + { + size, err := m.Version.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa } - if m.Role != 0 { - n += 1 + sovIntrospection(uint64(m.Role)) + return len(dAtA) - i, nil +} + +func (m *ProtocolDataPacket_State) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProtocolDataPacket_State) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.State != nil { + { + size, err := m.State.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 } - if m.Traffic != nil { - l = m.Traffic.Size() - n += 1 + l + sovIntrospection(uint64(l)) + return len(dAtA) - i, nil +} +func (m *ProtocolDataPacket_Runtime) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProtocolDataPacket_Runtime) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Runtime != nil { + { + size, err := m.Runtime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a } - if m.Attribs != nil { - l = m.Attribs.Size() - n += 1 + l + sovIntrospection(uint64(l)) + return len(dAtA) - i, nil +} +func (m *ProtocolDataPacket_Event) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProtocolDataPacket_Event) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Event != nil { + { + size, err := m.Event.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 } - if m.LatencyNs != 0 { - n += 1 + sovIntrospection(uint64(m.LatencyNs)) + return len(dAtA) - i, nil +} +func (m *ClientSignal) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - if m.Streams != nil { - l = m.Streams.Size() - n += 1 + l + sovIntrospection(uint64(l)) + return dAtA[:n], nil +} + +func (m *ClientSignal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ClientSignal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Content) > 0 { + i -= len(m.Content) + copy(dAtA[i:], m.Content) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Content))) + i-- + dAtA[i] = 0x22 } - if m.RelayedOver != nil { - n += m.RelayedOver.Size() + if m.DataSource != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.DataSource)) + i-- + dAtA[i] = 0x18 } - if len(m.UserProvidedTags) > 0 { - for _, s := range m.UserProvidedTags { - l = len(s) - n += 2 + l + sovIntrospection(uint64(l)) + if m.Signal != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Signal)) + i-- + dAtA[i] = 0x10 + } + if m.Version != nil { + { + size, err := m.Version.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0xa } - return n + return len(dAtA) - i, nil } -func (m *Connection_ConnId) Size() (n int) { - if m == nil { - return 0 +func encodeVarintIntrospection(dAtA []byte, offset int, v uint64) int { + offset -= sovIntrospection(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ } - var l int - _ = l - l = len(m.ConnId) - n += 2 + l + sovIntrospection(uint64(l)) - return n + dAtA[offset] = uint8(v) + return base } -func (m *Connection_Conn) Size() (n int) { +func (m *Version) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Conn != nil { - l = m.Conn.Size() - n += 2 + l + sovIntrospection(uint64(l)) + if m.Version != 0 { + n += 1 + sovIntrospection(uint64(m.Version)) } return n } -func (m *Connection_Timeline) Size() (n int) { + +func (m *ResultCounter) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.OpenTs != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.OpenTs) - n += 1 + l + sovIntrospection(uint64(l)) + if m.Total != 0 { + n += 1 + sovIntrospection(uint64(m.Total)) } - if m.UpgradedTs != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.UpgradedTs) - n += 1 + l + sovIntrospection(uint64(l)) + if m.Ok != 0 { + n += 1 + sovIntrospection(uint64(m.Ok)) } - if m.CloseTs != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.CloseTs) - n += 1 + l + sovIntrospection(uint64(l)) + if m.Err != 0 { + n += 1 + sovIntrospection(uint64(m.Err)) } return n } -func (m *Connection_Attributes) Size() (n int) { +func (m *SlidingCounter) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Multiplexer) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) + if m.Over_1M != 0 { + n += 1 + sovIntrospection(uint64(m.Over_1M)) } - l = len(m.Encryption) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) + if m.Over_5M != 0 { + n += 1 + sovIntrospection(uint64(m.Over_5M)) } - return n -} - -func (m *Stream) Size() (n int) { - if m == nil { - return 0 + if m.Over_15M != 0 { + n += 1 + sovIntrospection(uint64(m.Over_15M)) } - var l int + if m.Over_30M != 0 { + n += 1 + sovIntrospection(uint64(m.Over_30M)) + } + if m.Over_1Hr != 0 { + n += 1 + sovIntrospection(uint64(m.Over_1Hr)) + } + if m.Over_2Hr != 0 { + n += 1 + sovIntrospection(uint64(m.Over_2Hr)) + } + if m.Over_4Hr != 0 { + n += 1 + sovIntrospection(uint64(m.Over_4Hr)) + } + if m.Over_8Hr != 0 { + n += 1 + sovIntrospection(uint64(m.Over_8Hr)) + } + if m.Over_12Hr != 0 { + n += 1 + sovIntrospection(uint64(m.Over_12Hr)) + } + if m.Over_24Hr != 0 { + n += 1 + sovIntrospection(uint64(m.Over_24Hr)) + } + return n +} + +func (m *DataGauge) Size() (n int) { + if m == nil { + return 0 + } + var l int _ = l - l = len(m.Id) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) + if m.CumBytes != 0 { + n += 1 + sovIntrospection(uint64(m.CumBytes)) } - l = len(m.Protocol) + if m.CumPackets != 0 { + n += 1 + sovIntrospection(uint64(m.CumPackets)) + } + if m.InstBw != 0 { + n += 1 + sovIntrospection(uint64(m.InstBw)) + } + return n +} + +func (m *Runtime) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Implementation) if l > 0 { n += 1 + l + sovIntrospection(uint64(l)) } - if m.Role != 0 { - n += 1 + sovIntrospection(uint64(m.Role)) - } - if m.Traffic != nil { - l = m.Traffic.Size() + l = len(m.Version) + if l > 0 { n += 1 + l + sovIntrospection(uint64(l)) } - if m.Conn != nil { - l = m.Conn.Size() + l = len(m.Platform) + if l > 0 { n += 1 + l + sovIntrospection(uint64(l)) } - if m.Timeline != nil { - l = m.Timeline.Size() + l = len(m.PeerId) + if l > 0 { n += 1 + l + sovIntrospection(uint64(l)) } - if m.Status != 0 { - n += 1 + sovIntrospection(uint64(m.Status)) + if m.KeepStaleDataMs != 0 { + n += 1 + sovIntrospection(uint64(m.KeepStaleDataMs)) } - if m.LatencyNs != 0 { - n += 2 + sovIntrospection(uint64(m.LatencyNs)) + if m.SendStateIntervalMs != 0 { + n += 1 + sovIntrospection(uint64(m.SendStateIntervalMs)) } - if len(m.UserProvidedTags) > 0 { - for _, s := range m.UserProvidedTags { - l = len(s) - n += 2 + l + sovIntrospection(uint64(l)) + if len(m.EventTypes) > 0 { + for _, e := range m.EventTypes { + l = e.Size() + n += 1 + l + sovIntrospection(uint64(l)) } } return n } -func (m *Stream_ConnectionRef) Size() (n int) { +func (m *Runtime_EventType) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Connection != nil { - n += m.Connection.Size() + l = len(m.Name) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + if len(m.Properties) > 0 { + for _, e := range m.Properties { + l = e.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } } return n } -func (m *Stream_ConnectionRef_Conn) Size() (n int) { +func (m *Runtime_EventProperty) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Conn != nil { - l = m.Conn.Size() + l = len(m.Name) + if l > 0 { n += 1 + l + sovIntrospection(uint64(l)) } + if m.Type != 0 { + n += 1 + sovIntrospection(uint64(m.Type)) + } return n } -func (m *Stream_ConnectionRef_ConnId) Size() (n int) { + +func (m *EndpointPair) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.ConnId) - n += 1 + l + sovIntrospection(uint64(l)) + l = len(m.SrcMultiaddr) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + l = len(m.DstMultiaddr) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } return n } -func (m *Stream_Timeline) Size() (n int) { + +func (m *Traffic) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.OpenTs != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.OpenTs) + if m.TrafficIn != nil { + l = m.TrafficIn.Size() n += 1 + l + sovIntrospection(uint64(l)) } - if m.CloseTs != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.CloseTs) + if m.TrafficOut != nil { + l = m.TrafficOut.Size() n += 1 + l + sovIntrospection(uint64(l)) } return n } -func (m *DHT) Size() (n int) { +func (m *StreamList) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Protocol) + if len(m.StreamIds) > 0 { + for _, b := range m.StreamIds { + l = len(b) + n += 1 + l + sovIntrospection(uint64(l)) + } + } + if len(m.Streams) > 0 { + for _, e := range m.Streams { + l = e.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + } + return n +} + +func (m *Connection) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Id) if l > 0 { n += 1 + l + sovIntrospection(uint64(l)) } - if m.Enabled { - n += 2 + l = len(m.PeerId) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) } - if m.StartTs != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.StartTs) + if m.Status != 0 { + n += 1 + sovIntrospection(uint64(m.Status)) + } + l = len(m.TransportId) + if l > 0 { n += 1 + l + sovIntrospection(uint64(l)) } - if m.Params != nil { - l = m.Params.Size() + if m.Endpoints != nil { + l = m.Endpoints.Size() n += 1 + l + sovIntrospection(uint64(l)) } - if len(m.Query) > 0 { - for _, e := range m.Query { - l = e.Size() - n += 1 + l + sovIntrospection(uint64(l)) + if m.Timeline != nil { + l = m.Timeline.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Role != 0 { + n += 1 + sovIntrospection(uint64(m.Role)) + } + if m.Traffic != nil { + l = m.Traffic.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Attribs != nil { + l = m.Attribs.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.LatencyNs != 0 { + n += 1 + sovIntrospection(uint64(m.LatencyNs)) + } + if m.Streams != nil { + l = m.Streams.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.RelayedOver != nil { + n += m.RelayedOver.Size() + } + if len(m.UserProvidedTags) > 0 { + for _, s := range m.UserProvidedTags { + l = len(s) + n += 2 + l + sovIntrospection(uint64(l)) } } return n } -func (m *DHT_Params) Size() (n int) { +func (m *Connection_ConnId) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.K != 0 { - n += 1 + sovIntrospection(uint64(m.K)) + if m.ConnId != nil { + l = len(m.ConnId) + n += 2 + l + sovIntrospection(uint64(l)) } - if m.Alpha != 0 { - n += 1 + sovIntrospection(uint64(m.Alpha)) + return n +} +func (m *Connection_Conn) Size() (n int) { + if m == nil { + return 0 } - if m.DisjointPaths != 0 { - n += 1 + sovIntrospection(uint64(m.DisjointPaths)) + var l int + _ = l + if m.Conn != nil { + l = m.Conn.Size() + n += 2 + l + sovIntrospection(uint64(l)) } return n } - -func (m *DHT_Query) Size() (n int) { +func (m *Connection_Timeline) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Id) - if l > 0 { + if m.OpenTs != nil { + l = m.OpenTs.Size() n += 1 + l + sovIntrospection(uint64(l)) } - l = len(m.TargetPeerId) - if l > 0 { + if m.UpgradedTs != nil { + l = m.UpgradedTs.Size() n += 1 + l + sovIntrospection(uint64(l)) } - if m.TotalTimeMs != 0 { - n += 1 + sovIntrospection(uint64(m.TotalTimeMs)) - } - if m.TotalSteps != 0 { - n += 1 + sovIntrospection(uint64(m.TotalSteps)) - } - if len(m.PeerIds) > 0 { - for _, s := range m.PeerIds { - l = len(s) - n += 1 + l + sovIntrospection(uint64(l)) - } - } - if m.Trigger != 0 { - n += 1 + sovIntrospection(uint64(m.Trigger)) + if m.CloseTs != nil { + l = m.CloseTs.Size() + n += 1 + l + sovIntrospection(uint64(l)) } - if m.Type != 0 { - n += 1 + sovIntrospection(uint64(m.Type)) + return n +} + +func (m *Connection_Attributes) Size() (n int) { + if m == nil { + return 0 } - if m.Result != 0 { - n += 1 + sovIntrospection(uint64(m.Result)) + var l int + _ = l + l = len(m.Multiplexer) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) } - if m.SentTs != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.SentTs) + l = len(m.Encryption) + if l > 0 { n += 1 + l + sovIntrospection(uint64(l)) } return n } -func (m *Subsystems) Size() (n int) { +func (m *Stream) Size() (n int) { if m == nil { return 0 } var l int _ = l - if len(m.Connections) > 0 { - for _, e := range m.Connections { - l = e.Size() - n += 1 + l + sovIntrospection(uint64(l)) + l = len(m.Id) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + l = len(m.Protocol) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Role != 0 { + n += 1 + sovIntrospection(uint64(m.Role)) + } + if m.Traffic != nil { + l = m.Traffic.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Conn != nil { + l = m.Conn.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Timeline != nil { + l = m.Timeline.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Status != 0 { + n += 1 + sovIntrospection(uint64(m.Status)) + } + if m.LatencyNs != 0 { + n += 2 + sovIntrospection(uint64(m.LatencyNs)) + } + if len(m.UserProvidedTags) > 0 { + for _, s := range m.UserProvidedTags { + l = len(s) + n += 2 + l + sovIntrospection(uint64(l)) + } + } + return n +} + +func (m *Stream_ConnectionRef) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Connection != nil { + n += m.Connection.Size() + } + return n +} + +func (m *Stream_ConnectionRef_Conn) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Conn != nil { + l = m.Conn.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} +func (m *Stream_ConnectionRef_ConnId) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ConnId != nil { + l = len(m.ConnId) + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} +func (m *Stream_Timeline) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.OpenTs != nil { + l = m.OpenTs.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.CloseTs != nil { + l = m.CloseTs.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func (m *DHT) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Protocol) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Enabled { + n += 2 + } + if m.StartTs != nil { + l = m.StartTs.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Params != nil { + l = m.Params.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if len(m.Buckets) > 0 { + for _, e := range m.Buckets { + l = e.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + } + if m.IncomingQueries != nil { + l = m.IncomingQueries.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.OutgoingQueries != nil { + l = m.OutgoingQueries.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func (m *DHT_Params) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.K != 0 { + n += 1 + sovIntrospection(uint64(m.K)) + } + if m.Alpha != 0 { + n += 1 + sovIntrospection(uint64(m.Alpha)) + } + if m.DisjointPaths != 0 { + n += 1 + sovIntrospection(uint64(m.DisjointPaths)) + } + return n +} + +func (m *DHT_PeerInDHT) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.PeerId) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Status != 0 { + n += 1 + sovIntrospection(uint64(m.Status)) + } + if m.AgeInBucket != 0 { + n += 1 + sovIntrospection(uint64(m.AgeInBucket)) + } + return n +} + +func (m *DHT_Bucket) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Distance != 0 { + n += 1 + sovIntrospection(uint64(m.Distance)) + } + if len(m.Peers) > 0 { + for _, e := range m.Peers { + l = e.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + } + return n +} + +func (m *DHT_QueryGauge) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Success != 0 { + n += 1 + sovIntrospection(uint64(m.Success)) + } + if m.Error != 0 { + n += 1 + sovIntrospection(uint64(m.Error)) + } + if m.Timeout != 0 { + n += 1 + sovIntrospection(uint64(m.Timeout)) + } + return n +} + +func (m *Subsystems) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Connections) > 0 { + for _, e := range m.Connections { + l = e.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + } + if m.Dht != nil { + l = m.Dht.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func (m *State) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Subsystems != nil { + l = m.Subsystems.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Traffic != nil { + l = m.Traffic.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.InstantTs != nil { + l = m.InstantTs.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.StartTs != nil { + l = m.StartTs.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.SnapshotDurationMs != 0 { + n += 1 + sovIntrospection(uint64(m.SnapshotDurationMs)) + } + return n +} + +func (m *Event) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Ts != nil { + l = m.Ts.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + l = len(m.Content) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func (m *ProtocolDataPacket) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Version != nil { + l = m.Version.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Message != nil { + n += m.Message.Size() + } + return n +} + +func (m *ProtocolDataPacket_State) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.State != nil { + l = m.State.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} +func (m *ProtocolDataPacket_Runtime) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Runtime != nil { + l = m.Runtime.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} +func (m *ProtocolDataPacket_Event) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Event != nil { + l = m.Event.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} +func (m *ClientSignal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Version != nil { + l = m.Version.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.Signal != 0 { + n += 1 + sovIntrospection(uint64(m.Signal)) + } + if m.DataSource != 0 { + n += 1 + sovIntrospection(uint64(m.DataSource)) + } + l = len(m.Content) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func sovIntrospection(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozIntrospection(x uint64) (n int) { + return sovIntrospection(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Version) 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 ErrIntOverflowIntrospection + } + 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: Version: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Version: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + m.Version = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Version |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResultCounter) 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 ErrIntOverflowIntrospection + } + 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: ResultCounter: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResultCounter: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType) + } + m.Total = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Total |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ok", wireType) + } + m.Ok = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Ok |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Err", wireType) + } + m.Err = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Err |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SlidingCounter) 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 ErrIntOverflowIntrospection + } + 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: SlidingCounter: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SlidingCounter: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_1M", wireType) + } + m.Over_1M = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_1M |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_5M", wireType) + } + m.Over_5M = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_5M |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_15M", wireType) + } + m.Over_15M = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_15M |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_30M", wireType) + } + m.Over_30M = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_30M |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_1Hr", wireType) + } + m.Over_1Hr = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_1Hr |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_2Hr", wireType) + } + m.Over_2Hr = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_2Hr |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_4Hr", wireType) + } + m.Over_4Hr = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_4Hr |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_8Hr", wireType) + } + m.Over_8Hr = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_8Hr |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_12Hr", wireType) + } + m.Over_12Hr = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_12Hr |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Over_24Hr", wireType) + } + m.Over_24Hr = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Over_24Hr |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DataGauge) 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 ErrIntOverflowIntrospection + } + 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: DataGauge: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DataGauge: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CumBytes", wireType) + } + m.CumBytes = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CumBytes |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CumPackets", wireType) + } + m.CumPackets = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CumPackets |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field InstBw", wireType) + } + m.InstBw = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.InstBw |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Runtime) 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 ErrIntOverflowIntrospection + } + 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: Runtime: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Runtime: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Implementation", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Implementation = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Platform", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Platform = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PeerId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PeerId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KeepStaleDataMs", wireType) + } + m.KeepStaleDataMs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.KeepStaleDataMs |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SendStateIntervalMs", wireType) + } + m.SendStateIntervalMs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SendStateIntervalMs |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EventTypes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EventTypes = append(m.EventTypes, &Runtime_EventType{}) + if err := m.EventTypes[len(m.EventTypes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Runtime_EventType) 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 ErrIntOverflowIntrospection + } + 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: EventType: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventType: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Properties", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Properties = append(m.Properties, &Runtime_EventProperty{}) + if err := m.Properties[len(m.Properties)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } - if m.Dht != nil { - l = m.Dht.Size() - n += 1 + l + sovIntrospection(uint64(l)) - } - return n -} - -func (m *State) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Version != nil { - l = m.Version.Size() - n += 1 + l + sovIntrospection(uint64(l)) - } - if m.Runtime != nil { - l = m.Runtime.Size() - n += 1 + l + sovIntrospection(uint64(l)) - } - if m.Subsystems != nil { - l = m.Subsystems.Size() - n += 1 + l + sovIntrospection(uint64(l)) - } - if m.Traffic != nil { - l = m.Traffic.Size() - n += 1 + l + sovIntrospection(uint64(l)) - } - if m.InstantTs != nil { - l = m.InstantTs.Size() - n += 1 + l + sovIntrospection(uint64(l)) - } - if m.StartTs != nil { - l = m.StartTs.Size() - n += 1 + l + sovIntrospection(uint64(l)) - } - if m.SnapshotDurationMs != 0 { - n += 1 + sovIntrospection(uint64(m.SnapshotDurationMs)) - } - return n -} -func sovIntrospection(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } + if iNdEx > l { + return io.ErrUnexpectedEOF } - return n -} -func sozIntrospection(x uint64) (n int) { - return sovIntrospection(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + return nil } -func (m *Version) Unmarshal(dAtA []byte) error { +func (m *Runtime_EventProperty) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3563,17 +5554,49 @@ func (m *Version) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Version: wiretype end group for non-group") + return fmt.Errorf("proto: EventProperty: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Version: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EventProperty: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Number", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) } - m.Number = 0 + m.Type = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -3583,7 +5606,7 @@ func (m *Version) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Number |= uint32(b&0x7F) << shift + m.Type |= Runtime_EventProperty_PropertyType(b&0x7F) << shift if b < 0x80 { break } @@ -3612,7 +5635,7 @@ func (m *Version) Unmarshal(dAtA []byte) error { } return nil } -func (m *ResultCounter) Unmarshal(dAtA []byte) error { +func (m *EndpointPair) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3635,17 +5658,17 @@ func (m *ResultCounter) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ResultCounter: wiretype end group for non-group") + return fmt.Errorf("proto: EndpointPair: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ResultCounter: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EndpointPair: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SrcMultiaddr", wireType) } - m.Total = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -3655,16 +5678,29 @@ func (m *ResultCounter) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Total |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SrcMultiaddr = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Ok", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DstMultiaddr", wireType) } - m.Ok = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -3674,16 +5710,82 @@ func (m *ResultCounter) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Ok |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Err", wireType) + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection } - m.Err = 0 + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DstMultiaddr = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Traffic) 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 ErrIntOverflowIntrospection + } + 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: Traffic: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Traffic: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TrafficIn", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -3693,11 +5795,64 @@ func (m *ResultCounter) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Err |= uint32(b&0x7F) << shift + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TrafficIn == nil { + m.TrafficIn = &DataGauge{} + } + if err := m.TrafficIn.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TrafficOut", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TrafficOut == nil { + m.TrafficOut = &DataGauge{} + } + if err := m.TrafficOut.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipIntrospection(dAtA[iNdEx:]) @@ -3722,7 +5877,7 @@ func (m *ResultCounter) Unmarshal(dAtA []byte) error { } return nil } -func (m *SlidingCounter) Unmarshal(dAtA []byte) error { +func (m *StreamList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3745,93 +5900,17 @@ func (m *SlidingCounter) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SlidingCounter: wiretype end group for non-group") + return fmt.Errorf("proto: StreamList: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SlidingCounter: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: StreamList: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Over_1M", wireType) - } - m.Over_1M = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Over_1M |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Over_5M", wireType) - } - m.Over_5M = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Over_5M |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Over_15M", wireType) - } - m.Over_15M = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Over_15M |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Over_30M", wireType) - } - m.Over_30M = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Over_30M |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Over_1Hr", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StreamIds", wireType) } - m.Over_1Hr = 0 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -3841,54 +5920,29 @@ func (m *SlidingCounter) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Over_1Hr |= uint32(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Over_2Hr", wireType) - } - m.Over_2Hr = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Over_2Hr |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } + if byteLen < 0 { + return ErrInvalidLengthIntrospection } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Over_4Hr", wireType) + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection } - m.Over_4Hr = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Over_4Hr |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } + if postIndex > l { + return io.ErrUnexpectedEOF } - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Over_8Hr", wireType) + m.StreamIds = append(m.StreamIds, make([]byte, postIndex-iNdEx)) + copy(m.StreamIds[len(m.StreamIds)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Streams", wireType) } - m.Over_8Hr = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -3898,49 +5952,26 @@ func (m *SlidingCounter) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Over_8Hr |= uint32(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Over_12Hr", wireType) + if msglen < 0 { + return ErrInvalidLengthIntrospection } - m.Over_12Hr = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Over_12Hr |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection } - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Over_24Hr", wireType) + if postIndex > l { + return io.ErrUnexpectedEOF } - m.Over_24Hr = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Over_24Hr |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } + m.Streams = append(m.Streams, &Stream{}) + if err := m.Streams[len(m.Streams)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipIntrospection(dAtA[iNdEx:]) @@ -3965,7 +5996,7 @@ func (m *SlidingCounter) Unmarshal(dAtA []byte) error { } return nil } -func (m *DataGauge) Unmarshal(dAtA []byte) error { +func (m *Connection) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3984,21 +6015,87 @@ func (m *DataGauge) Unmarshal(dAtA []byte) error { if b < 0x80 { break } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DataGauge: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DataGauge: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Connection: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Connection: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Id = append(m.Id[:0], dAtA[iNdEx:postIndex]...) + if m.Id == nil { + m.Id = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PeerId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PeerId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CumBytes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) } - m.CumBytes = 0 + m.Status = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -4008,16 +6105,16 @@ func (m *DataGauge) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.CumBytes |= uint64(b&0x7F) << shift + m.Status |= Status(b&0x7F) << shift if b < 0x80 { break } } - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CumPackets", wireType) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TransportId", wireType) } - m.CumPackets = 0 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -4027,16 +6124,31 @@ func (m *DataGauge) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.CumPackets |= uint64(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field InstBw", wireType) + if byteLen < 0 { + return ErrInvalidLengthIntrospection } - m.InstBw = 0 + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TransportId = append(m.TransportId[:0], dAtA[iNdEx:postIndex]...) + if m.TransportId == nil { + m.TransportId = []byte{} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Endpoints", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -4046,69 +6158,33 @@ func (m *DataGauge) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.InstBw |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - default: - iNdEx = preIndex - skippy, err := skipIntrospection(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { + if msglen < 0 { return ErrInvalidLengthIntrospection } - if (iNdEx + skippy) < 0 { + postIndex := iNdEx + msglen + if postIndex < 0 { return ErrInvalidLengthIntrospection } - if (iNdEx + skippy) > l { + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Runtime) 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 ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.Endpoints == nil { + m.Endpoints = &EndpointPair{} } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if err := m.Endpoints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Runtime: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Runtime: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Implementation", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Timeline", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -4118,29 +6194,52 @@ func (m *Runtime) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.Implementation = string(dAtA[iNdEx:postIndex]) + if m.Timeline == nil { + m.Timeline = &Connection_Timeline{} + } + if err := m.Timeline.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 2: + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) + } + m.Role = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Role |= Role(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Traffic", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -4150,29 +6249,33 @@ func (m *Runtime) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.Version = string(dAtA[iNdEx:postIndex]) + if m.Traffic == nil { + m.Traffic = &Traffic{} + } + if err := m.Traffic.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 3: + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Platform", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Attribs", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -4182,29 +6285,52 @@ func (m *Runtime) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.Platform = string(dAtA[iNdEx:postIndex]) + if m.Attribs == nil { + m.Attribs = &Connection_Attributes{} + } + if err := m.Attribs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 4: + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LatencyNs", wireType) + } + m.LatencyNs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LatencyNs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PeerId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Streams", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -4214,82 +6340,66 @@ func (m *Runtime) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.PeerId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipIntrospection(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthIntrospection + if m.Streams == nil { + m.Streams = &StreamList{} } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthIntrospection + if err := m.Streams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConnId", wireType) } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EndpointPair) 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 ErrIntOverflowIntrospection + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if byteLen < 0 { + return ErrInvalidLengthIntrospection } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EndpointPair: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EndpointPair: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := make([]byte, postIndex-iNdEx) + copy(v, dAtA[iNdEx:postIndex]) + m.RelayedOver = &Connection_ConnId{v} + iNdEx = postIndex + case 17: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SrcMultiaddr", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Conn", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -4299,27 +6409,30 @@ func (m *EndpointPair) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.SrcMultiaddr = string(dAtA[iNdEx:postIndex]) + v := &Connection{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.RelayedOver = &Connection_Conn{v} iNdEx = postIndex - case 2: + case 99: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DstMultiaddr", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field UserProvidedTags", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4347,7 +6460,7 @@ func (m *EndpointPair) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DstMultiaddr = string(dAtA[iNdEx:postIndex]) + m.UserProvidedTags = append(m.UserProvidedTags, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -4373,7 +6486,7 @@ func (m *EndpointPair) Unmarshal(dAtA []byte) error { } return nil } -func (m *Traffic) Unmarshal(dAtA []byte) error { +func (m *Connection_Timeline) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4396,15 +6509,15 @@ func (m *Traffic) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Traffic: wiretype end group for non-group") + return fmt.Errorf("proto: Timeline: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Traffic: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Timeline: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TrafficIn", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OpenTs", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4431,16 +6544,16 @@ func (m *Traffic) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.TrafficIn == nil { - m.TrafficIn = &DataGauge{} + if m.OpenTs == nil { + m.OpenTs = &types.Timestamp{} } - if err := m.TrafficIn.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.OpenTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TrafficOut", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field UpgradedTs", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4467,10 +6580,46 @@ func (m *Traffic) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.TrafficOut == nil { - m.TrafficOut = &DataGauge{} + if m.UpgradedTs == nil { + m.UpgradedTs = &types.Timestamp{} } - if err := m.TrafficOut.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.UpgradedTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CloseTs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CloseTs == nil { + m.CloseTs = &types.Timestamp{} + } + if err := m.CloseTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4498,7 +6647,7 @@ func (m *Traffic) Unmarshal(dAtA []byte) error { } return nil } -func (m *StreamList) Unmarshal(dAtA []byte) error { +func (m *Connection_Attributes) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4521,15 +6670,15 @@ func (m *StreamList) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: StreamList: wiretype end group for non-group") + return fmt.Errorf("proto: Attributes: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: StreamList: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Attributes: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StreamIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Multiplexer", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4557,13 +6706,13 @@ func (m *StreamList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.StreamIds = append(m.StreamIds, string(dAtA[iNdEx:postIndex])) + m.Multiplexer = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Streams", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Encryption", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -4573,25 +6722,23 @@ func (m *StreamList) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.Streams = append(m.Streams, &Stream{}) - if err := m.Streams[len(m.Streams)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Encryption = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -4617,7 +6764,7 @@ func (m *StreamList) Unmarshal(dAtA []byte) error { } return nil } -func (m *Connection) Unmarshal(dAtA []byte) error { +func (m *Stream) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4640,132 +6787,17 @@ func (m *Connection) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Connection: wiretype end group for non-group") + return fmt.Errorf("proto: Stream: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Connection: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Stream: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Id = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PeerId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.PeerId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - m.Status = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Status |= Status(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TransportId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TransportId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Endpoints", wireType) - } - var msglen int + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -4775,33 +6807,31 @@ func (m *Connection) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + if byteLen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + msglen + postIndex := iNdEx + byteLen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Endpoints == nil { - m.Endpoints = &EndpointPair{} - } - if err := m.Endpoints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + m.Id = append(m.Id[:0], dAtA[iNdEx:postIndex]...) + if m.Id == nil { + m.Id = []byte{} } iNdEx = postIndex - case 6: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timeline", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Protocol", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -4811,29 +6841,25 @@ func (m *Connection) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Timeline == nil { - m.Timeline = &Connection_Timeline{} - } - if err := m.Timeline.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Protocol = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 7: + case 3: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) } @@ -4852,7 +6878,7 @@ func (m *Connection) Unmarshal(dAtA []byte) error { break } } - case 8: + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Traffic", wireType) } @@ -4888,9 +6914,9 @@ func (m *Connection) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 9: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Attribs", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Conn", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4917,35 +6943,16 @@ func (m *Connection) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Attribs == nil { - m.Attribs = &Connection_Attributes{} + if m.Conn == nil { + m.Conn = &Stream_ConnectionRef{} } - if err := m.Attribs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Conn.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LatencyNs", wireType) - } - m.LatencyNs = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.LatencyNs |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 11: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Streams", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Timeline", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4972,18 +6979,18 @@ func (m *Connection) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Streams == nil { - m.Streams = &StreamList{} + if m.Timeline == nil { + m.Timeline = &Stream_Timeline{} } - if err := m.Streams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Timeline.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConnId", wireType) + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) } - var stringLen uint64 + m.Status = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -4993,29 +7000,16 @@ func (m *Connection) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.Status |= Status(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RelayedOver = &Connection_ConnId{string(dAtA[iNdEx:postIndex])} - iNdEx = postIndex - case 17: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conn", wireType) + case 16: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LatencyNs", wireType) } - var msglen int + m.LatencyNs = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -5025,27 +7019,11 @@ func (m *Connection) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.LatencyNs |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &Connection{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.RelayedOver = &Connection_Conn{v} - iNdEx = postIndex case 99: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field UserProvidedTags", wireType) @@ -5102,7 +7080,7 @@ func (m *Connection) Unmarshal(dAtA []byte) error { } return nil } -func (m *Connection_Timeline) Unmarshal(dAtA []byte) error { +func (m *Stream_ConnectionRef) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5125,15 +7103,15 @@ func (m *Connection_Timeline) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Timeline: wiretype end group for non-group") + return fmt.Errorf("proto: ConnectionRef: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Timeline: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ConnectionRef: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OpenTs", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Conn", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5160,54 +7138,17 @@ func (m *Connection_Timeline) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.OpenTs == nil { - m.OpenTs = new(time.Time) - } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.OpenTs, dAtA[iNdEx:postIndex]); err != nil { + v := &Connection{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } + m.Connection = &Stream_ConnectionRef_Conn{v} iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpgradedTs", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.UpgradedTs == nil { - m.UpgradedTs = new(time.Time) - } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.UpgradedTs, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CloseTs", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ConnId", wireType) } - var msglen int + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -5217,27 +7158,24 @@ func (m *Connection_Timeline) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + if byteLen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + msglen + postIndex := iNdEx + byteLen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - if m.CloseTs == nil { - m.CloseTs = new(time.Time) - } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.CloseTs, dAtA[iNdEx:postIndex]); err != nil { - return err - } + v := make([]byte, postIndex-iNdEx) + copy(v, dAtA[iNdEx:postIndex]) + m.Connection = &Stream_ConnectionRef_ConnId{v} iNdEx = postIndex default: iNdEx = preIndex @@ -5263,7 +7201,7 @@ func (m *Connection_Timeline) Unmarshal(dAtA []byte) error { } return nil } -func (m *Connection_Attributes) Unmarshal(dAtA []byte) error { +func (m *Stream_Timeline) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5286,17 +7224,17 @@ func (m *Connection_Attributes) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Attributes: wiretype end group for non-group") + return fmt.Errorf("proto: Timeline: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Attributes: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Timeline: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Multiplexer", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OpenTs", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -5306,29 +7244,33 @@ func (m *Connection_Attributes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.Multiplexer = string(dAtA[iNdEx:postIndex]) + if m.OpenTs == nil { + m.OpenTs = &types.Timestamp{} + } + if err := m.OpenTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Encryption", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CloseTs", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -5338,23 +7280,27 @@ func (m *Connection_Attributes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.Encryption = string(dAtA[iNdEx:postIndex]) + if m.CloseTs == nil { + m.CloseTs = &types.Timestamp{} + } + if err := m.CloseTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -5380,7 +7326,7 @@ func (m *Connection_Attributes) Unmarshal(dAtA []byte) error { } return nil } -func (m *Stream) Unmarshal(dAtA []byte) error { +func (m *DHT) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5403,45 +7349,13 @@ func (m *Stream) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Stream: wiretype end group for non-group") + return fmt.Errorf("proto: DHT: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Stream: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DHT: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Id = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Protocol", wireType) } @@ -5473,11 +7387,11 @@ func (m *Stream) Unmarshal(dAtA []byte) error { } m.Protocol = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType) } - m.Role = 0 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -5487,14 +7401,15 @@ func (m *Stream) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Role |= Role(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - case 4: + m.Enabled = bool(v != 0) + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Traffic", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StartTs", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5521,16 +7436,16 @@ func (m *Stream) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Traffic == nil { - m.Traffic = &Traffic{} + if m.StartTs == nil { + m.StartTs = &types.Timestamp{} } - if err := m.Traffic.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.StartTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 5: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conn", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5557,16 +7472,16 @@ func (m *Stream) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Conn == nil { - m.Conn = &Stream_ConnectionRef{} + if m.Params == nil { + m.Params = &DHT_Params{} } - if err := m.Conn.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 6: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timeline", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Buckets", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5593,56 +7508,16 @@ func (m *Stream) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Timeline == nil { - m.Timeline = &Stream_Timeline{} - } - if err := m.Timeline.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Buckets = append(m.Buckets, &DHT_Bucket{}) + if err := m.Buckets[len(m.Buckets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - m.Status = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Status |= Status(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 16: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LatencyNs", wireType) - } - m.LatencyNs = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.LatencyNs |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 99: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UserProvidedTags", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field IncomingQueries", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -5652,80 +7527,31 @@ func (m *Stream) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.UserProvidedTags = append(m.UserProvidedTags, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipIntrospection(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthIntrospection - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthIntrospection - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Stream_ConnectionRef) 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 ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.IncomingQueries == nil { + m.IncomingQueries = &DHT_QueryGauge{} } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if err := m.IncomingQueries.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ConnectionRef: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ConnectionRef: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conn", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OutgoingQueries", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5752,43 +7578,12 @@ func (m *Stream_ConnectionRef) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &Connection{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Connection = &Stream_ConnectionRef_Conn{v} - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConnId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthIntrospection + if m.OutgoingQueries == nil { + m.OutgoingQueries = &DHT_QueryGauge{} } - if postIndex > l { - return io.ErrUnexpectedEOF + if err := m.OutgoingQueries.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.Connection = &Stream_ConnectionRef_ConnId{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex default: iNdEx = preIndex @@ -5814,7 +7609,7 @@ func (m *Stream_ConnectionRef) Unmarshal(dAtA []byte) error { } return nil } -func (m *Stream_Timeline) Unmarshal(dAtA []byte) error { +func (m *DHT_Params) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5837,17 +7632,17 @@ func (m *Stream_Timeline) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Timeline: wiretype end group for non-group") + return fmt.Errorf("proto: Params: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Timeline: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OpenTs", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field K", wireType) } - var msglen int + m.K = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -5857,33 +7652,16 @@ func (m *Stream_Timeline) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.K |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.OpenTs == nil { - m.OpenTs = new(time.Time) - } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.OpenTs, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CloseTs", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Alpha", wireType) } - var msglen int + m.Alpha = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -5893,28 +7671,30 @@ func (m *Stream_Timeline) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.Alpha |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.CloseTs == nil { - m.CloseTs = new(time.Time) + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DisjointPaths", wireType) } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.CloseTs, dAtA[iNdEx:postIndex]); err != nil { - return err + m.DisjointPaths = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DisjointPaths |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipIntrospection(dAtA[iNdEx:]) @@ -5939,7 +7719,7 @@ func (m *Stream_Timeline) Unmarshal(dAtA []byte) error { } return nil } -func (m *DHT) Unmarshal(dAtA []byte) error { +func (m *DHT_PeerInDHT) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5962,15 +7742,15 @@ func (m *DHT) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DHT: wiretype end group for non-group") + return fmt.Errorf("proto: PeerInDHT: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DHT: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: PeerInDHT: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Protocol", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PeerId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -5998,13 +7778,13 @@ func (m *DHT) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Protocol = string(dAtA[iNdEx:postIndex]) + m.PeerId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) } - var v int + m.Status = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6014,17 +7794,16 @@ func (m *DHT) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + m.Status |= DHT_PeerInDHT_Status(b&0x7F) << shift if b < 0x80 { break } } - m.Enabled = bool(v != 0) case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTs", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AgeInBucket", wireType) } - var msglen int + m.AgeInBucket = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6034,33 +7813,69 @@ func (m *DHT) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.AgeInBucket |= uint32(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (iNdEx + skippy) < 0 { return ErrInvalidLengthIntrospection } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - if m.StartTs == nil { - m.StartTs = new(time.Time) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DHT_Bucket) 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 ErrIntOverflowIntrospection } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.StartTs, dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - var msglen int + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Bucket: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Bucket: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Distance", wireType) + } + m.Distance = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6070,31 +7885,14 @@ func (m *DHT) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.Distance |= uint32(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Params == nil { - m.Params = &DHT_Params{} - } - if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Peers", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6121,8 +7919,8 @@ func (m *DHT) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Query = append(m.Query, &DHT_Query{}) - if err := m.Query[len(m.Query)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Peers = append(m.Peers, &DHT_PeerInDHT{}) + if err := m.Peers[len(m.Peers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -6150,7 +7948,7 @@ func (m *DHT) Unmarshal(dAtA []byte) error { } return nil } -func (m *DHT_Params) Unmarshal(dAtA []byte) error { +func (m *DHT_QueryGauge) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6173,17 +7971,17 @@ func (m *DHT_Params) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Params: wiretype end group for non-group") + return fmt.Errorf("proto: QueryGauge: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryGauge: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field K", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) } - m.K = 0 + m.Success = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6193,16 +7991,16 @@ func (m *DHT_Params) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.K |= uint64(b&0x7F) << shift + m.Success |= uint64(b&0x7F) << shift if b < 0x80 { break } } case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Alpha", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) } - m.Alpha = 0 + m.Error = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6212,16 +8010,16 @@ func (m *DHT_Params) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Alpha |= uint64(b&0x7F) << shift + m.Error |= uint64(b&0x7F) << shift if b < 0x80 { break } } case 3: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DisjointPaths", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Timeout", wireType) } - m.DisjointPaths = 0 + m.Timeout = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6231,7 +8029,7 @@ func (m *DHT_Params) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.DisjointPaths |= uint64(b&0x7F) << shift + m.Timeout |= uint64(b&0x7F) << shift if b < 0x80 { break } @@ -6260,7 +8058,7 @@ func (m *DHT_Params) Unmarshal(dAtA []byte) error { } return nil } -func (m *DHT_Query) Unmarshal(dAtA []byte) error { +func (m *Subsystems) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6283,17 +8081,17 @@ func (m *DHT_Query) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Query: wiretype end group for non-group") + return fmt.Errorf("proto: Subsystems: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Query: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Subsystems: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Connections", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6303,29 +8101,31 @@ func (m *DHT_Query) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.Id = string(dAtA[iNdEx:postIndex]) + m.Connections = append(m.Connections, &Connection{}) + if err := m.Connections[len(m.Connections)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetPeerId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Dht", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6335,67 +8135,86 @@ func (m *DHT_Query) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.TargetPeerId = string(dAtA[iNdEx:postIndex]) + if m.Dht == nil { + m.Dht = &DHT{} + } + if err := m.Dht.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalTimeMs", wireType) + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err } - m.TotalTimeMs = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.TotalTimeMs |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + if skippy < 0 { + return ErrInvalidLengthIntrospection } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalSteps", wireType) + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection } - m.TotalSteps = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.TotalSteps |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - case 5: + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *State) 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 ErrIntOverflowIntrospection + } + 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: State: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: State: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PeerIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Subsystems", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6405,29 +8224,33 @@ func (m *DHT_Query) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.PeerIds = append(m.PeerIds, string(dAtA[iNdEx:postIndex])) + if m.Subsystems == nil { + m.Subsystems = &Subsystems{} + } + if err := m.Subsystems.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Trigger", wireType) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Traffic", wireType) } - m.Trigger = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6437,35 +8260,33 @@ func (m *DHT_Query) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Trigger |= DHT_Query_Trigger(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + if msglen < 0 { + return ErrInvalidLengthIntrospection } - m.Type = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Type |= DHT_Query_Type(b&0x7F) << shift - if b < 0x80 { - break - } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection } - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Traffic == nil { + m.Traffic = &Traffic{} + } + if err := m.Traffic.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.Result = 0 + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InstantTs", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6475,14 +8296,31 @@ func (m *DHT_Query) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Result |= DHT_Query_Result(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - case 9: + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.InstantTs == nil { + m.InstantTs = &types.Timestamp{} + } + if err := m.InstantTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SentTs", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StartTs", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6509,13 +8347,32 @@ func (m *DHT_Query) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.SentTs == nil { - m.SentTs = new(time.Time) + if m.StartTs == nil { + m.StartTs = &types.Timestamp{} } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.SentTs, dAtA[iNdEx:postIndex]); err != nil { + if err := m.StartTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SnapshotDurationMs", wireType) + } + m.SnapshotDurationMs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SnapshotDurationMs |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipIntrospection(dAtA[iNdEx:]) @@ -6540,7 +8397,7 @@ func (m *DHT_Query) Unmarshal(dAtA []byte) error { } return nil } -func (m *Subsystems) Unmarshal(dAtA []byte) error { +func (m *Event) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6563,17 +8420,17 @@ func (m *Subsystems) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Subsystems: wiretype end group for non-group") + return fmt.Errorf("proto: Event: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Subsystems: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Connections", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6583,29 +8440,27 @@ func (m *Subsystems) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.Connections = append(m.Connections, &Connection{}) - if err := m.Connections[len(m.Connections)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Type = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Dht", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Ts", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6632,13 +8487,45 @@ func (m *Subsystems) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Dht == nil { - m.Dht = &DHT{} + if m.Ts == nil { + m.Ts = &types.Timestamp{} } - if err := m.Dht.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Ts.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Content", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Content = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipIntrospection(dAtA[iNdEx:]) @@ -6663,7 +8550,7 @@ func (m *Subsystems) Unmarshal(dAtA []byte) error { } return nil } -func (m *State) Unmarshal(dAtA []byte) error { +func (m *ProtocolDataPacket) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6686,10 +8573,10 @@ func (m *State) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: State: wiretype end group for non-group") + return fmt.Errorf("proto: ProtocolDataPacket: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: State: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ProtocolDataPacket: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -6730,7 +8617,7 @@ func (m *State) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Runtime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6757,16 +8644,15 @@ func (m *State) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Runtime == nil { - m.Runtime = &Runtime{} - } - if err := m.Runtime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + v := &State{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } + m.Message = &ProtocolDataPacket_State{v} iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Subsystems", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Runtime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6793,16 +8679,15 @@ func (m *State) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Subsystems == nil { - m.Subsystems = &Subsystems{} - } - if err := m.Subsystems.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + v := &Runtime{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } + m.Message = &ProtocolDataPacket_Runtime{v} iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Traffic", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Event", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6829,16 +8714,68 @@ func (m *State) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Traffic == nil { - m.Traffic = &Traffic{} - } - if err := m.Traffic.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + v := &Event{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } + m.Message = &ProtocolDataPacket_Event{v} iNdEx = postIndex - case 5: + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClientSignal) 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 ErrIntOverflowIntrospection + } + 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: ClientSignal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClientSignal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field InstantTs", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6865,18 +8802,18 @@ func (m *State) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.InstantTs == nil { - m.InstantTs = &types.Timestamp{} + if m.Version == nil { + m.Version = &Version{} } - if err := m.InstantTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Version.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTs", wireType) + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Signal", wireType) } - var msglen int + m.Signal = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6886,33 +8823,35 @@ func (m *State) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.Signal |= ClientSignal_Signal(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.StartTs == nil { - m.StartTs = &types.Timestamp{} + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DataSource", wireType) } - if err := m.StartTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + m.DataSource = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DataSource |= ClientSignal_DataSource(b&0x7F) << shift + if b < 0x80 { + break + } } - iNdEx = postIndex - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SnapshotDurationMs", wireType) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Content", wireType) } - m.SnapshotDurationMs = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6922,11 +8861,24 @@ func (m *State) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.SnapshotDurationMs |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Content = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipIntrospection(dAtA[iNdEx:]) @@ -6954,6 +8906,7 @@ func (m *State) Unmarshal(dAtA []byte) error { func skipIntrospection(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 + depth := 0 for iNdEx < l { var wire uint64 for shift := uint(0); ; shift += 7 { @@ -6985,10 +8938,8 @@ func skipIntrospection(dAtA []byte) (n int, err error) { break } } - return iNdEx, nil case 1: iNdEx += 8 - return iNdEx, nil case 2: var length int for shift := uint(0); ; shift += 7 { @@ -7009,55 +8960,30 @@ func skipIntrospection(dAtA []byte) (n int, err error) { return 0, ErrInvalidLengthIntrospection } iNdEx += length - if iNdEx < 0 { - return 0, ErrInvalidLengthIntrospection - } - return iNdEx, nil case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowIntrospection - } - 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 := skipIntrospection(dAtA[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - if iNdEx < 0 { - return 0, ErrInvalidLengthIntrospection - } - } - return iNdEx, nil + depth++ case 4: - return iNdEx, nil + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupIntrospection + } + depth-- case 5: iNdEx += 4 - return iNdEx, nil default: return 0, fmt.Errorf("proto: illegal wireType %d", wireType) } + if iNdEx < 0 { + return 0, ErrInvalidLengthIntrospection + } + if depth == 0 { + return iNdEx, nil + } } - panic("unreachable") + return 0, io.ErrUnexpectedEOF } var ( - ErrInvalidLengthIntrospection = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowIntrospection = fmt.Errorf("proto: integer overflow") + ErrInvalidLengthIntrospection = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowIntrospection = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupIntrospection = fmt.Errorf("proto: unexpected end of group") ) diff --git a/introspection/pb/introspection.proto b/introspection/pb/introspection.proto index 1919905c..82f52767 100644 --- a/introspection/pb/introspection.proto +++ b/introspection/pb/introspection.proto @@ -1,14 +1,13 @@ syntax = "proto3"; -package introspection.pb; -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; import "google/protobuf/timestamp.proto"; +package introspection; + // Version of schema message Version { - uint32 number = 1; + uint32 version = 1; } - // ResultCounter is a monotonically increasing counter that reports an ok/err breakdown of the total. message ResultCounter { uint32 total = 1; @@ -54,14 +53,45 @@ message DataGauge { // Runtime encapsulates runtime info about a node. message Runtime { + // metadata about types of event data being sent + message EventType { + // Name of event type e.g. PeerConnecting + string name = 1; + repeated EventProperty properties = 2; + } + + // metadata about content types in event's key:value content field + message EventProperty { + // tell listener how to sort, filter or display known content properties + enum PropertyType { + // treat as a simple primitive + STRING = 0; // default + NUMBER = 2; + // apply human-readable formatting + TIME = 10; + PEERID = 11; + // embedded arrays and/or object trees + JSON = 90; + } + // property name of content e.g. openTs + string name = 1; + PropertyType type = 2; + } + // e.g. go-libp2p, js-libp2p, rust-libp2p, etc. - string implementation = 1; + string implementation = 1; // e.g. 1.2.3. - string version = 2; + string version = 2; // e.g. Windows, Unix, macOS, Chrome, Mozilla, etc. - string platform = 3; + string platform = 3; // our peer id - the peer id of the host system - string peer_id = 4; + string peer_id = 4; + // length of time to keep stale data + uint32 keep_stale_data_ms = 5; + // frequency to send new states + uint32 send_state_interval_ms = 6; + // metadata describing configured event types + repeated EventType event_types = 7; } // EndpointPair is a pair of multiaddrs. @@ -101,7 +131,7 @@ message StreamList { // doesn't support combining oneof and repeated. // // streams within this connection by reference. - repeated string stream_ids = 1; + repeated bytes stream_ids = 1; // streams within this connection by inlining. repeated Stream streams = 2; } @@ -111,11 +141,11 @@ message Connection { // Timeline contains the timestamps of the well-known milestones of a connection. message Timeline { // the instant when a connection was opened on the wire. - google.protobuf.Timestamp open_ts = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Timestamp open_ts = 1; // the instant when the upgrade process (handshake, security, multiplexing) finished. - google.protobuf.Timestamp upgraded_ts = 2 [(gogoproto.stdtime) = true]; + google.protobuf.Timestamp upgraded_ts = 2; // the instant when this connection was terminated. - google.protobuf.Timestamp close_ts = 3 [(gogoproto.stdtime) = true]; + google.protobuf.Timestamp close_ts = 3; } // Attributes encapsulates the attributes of this connection. @@ -128,13 +158,13 @@ message Connection { // the id of this connection, not to be shown in user tooling, // used for (cross)referencing connections (e.g. relay). - string id = 1; + bytes id = 1; // the peer id of the other party. string peer_id = 2; // the status of this connection. Status status = 3; // a reference to the transport managing this connection. - string transport_id = 4; + bytes transport_id = 4; // the endpoints participating in this connection. EndpointPair endpoints = 5; // the timeline of the connection, see Connection.Timeline. @@ -148,14 +178,14 @@ message Connection { // the instantaneous latency of this connection in nanoseconds. uint64 latency_ns = 10; // streams within this connection. - StreamList streams = 11; + StreamList streams = 11; reserved 12 to 15; // if this is a relayed connection, this points to the relaying connection. // a default value here (empty bytes) indicates this is not a relayed connection. oneof relayed_over { - string conn_id = 16; + bytes conn_id = 16; Connection conn = 17; } // user provided tags. @@ -169,37 +199,37 @@ message Stream { // the parent connection inlined. Connection conn = 1; // the parent connection by reference. - string conn_id = 2; + bytes conn_id = 2; } } // Timeline contains the timestamps of the well-known milestones of a stream. message Timeline { // the instant when the stream was opened. - google.protobuf.Timestamp open_ts = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Timestamp open_ts = 1; // the instant when the stream was terminated. - google.protobuf.Timestamp close_ts = 2 [(gogoproto.stdtime) = true]; + google.protobuf.Timestamp close_ts = 2; } // the id of this stream, not to be shown in user tooling, // used for (cross)referencing streams. - string id = 1; + bytes id = 1; // the protocol pinned to this stream. - string protocol = 2; + string protocol = 2; // our role in this stream. - Role role = 3; + Role role = 3; // traffic statistics. - Traffic traffic = 4; + Traffic traffic = 4; // the connection this stream is hosted under. - ConnectionRef conn = 5; + ConnectionRef conn = 5; // the timeline of the stream, see Stream.Timeline. - Timeline timeline = 6; + Timeline timeline = 6; // the status of this stream. - Status status = 7; + Status status = 7; // the instantaneous latency of this stream in nanoseconds. // TODO: this is hard to calculate. - uint64 latency_ns = 16; + uint64 latency_ns = 16; // user provided tags. repeated string user_provided_tags = 99; } @@ -215,47 +245,44 @@ message DHT { uint64 disjoint_paths = 3; } - message Query { - // Trigger of the query. - enum Trigger { - API = 0; - DISCOVERY = 1; - } - - // Type of the query. - enum Type { - CONTENT = 0; - PROVIDER = 1; - VALUE = 2; + // Peer in DHT + message PeerInDHT { + // The DHT's relationship with this peer + enum Status { + // Connected, in a bucket, ready to send/receive queries + ACTIVE = 0; + // Not currently connected, still "in" a bucket (e.g. temporarily disconnected) + MISSING = 1; + // Removed from a bucket or candidate list (e.g. connection lost or too slow) + REJECTED = 2; + // Was reachable when last checked, waiting to join a currently-full bucket + CANDIDATE = 3; } + // the peer id of the host system + string peer_id = 1; + // the peer's status when data snapshot is taken + Status status = 2; + // age in bucket (ms) + uint32 age_in_bucket = 3; + } - // Status indicating the result of the query - enum Result { - SUCCESS = 0; - ERROR = 1; - TIMEOUT = 2; - // Pending queries may be absent, depending on data collection - PENDING = 3; - } + // A "k-bucket" containing peers of a certain kadamelia distance + message Bucket { + // Contains peers of this distance; or, 0 is "catch-all" bucket + uint32 distance = 1; + // Peers associated with this bucket + repeated PeerInDHT peers = 2; + // Bucket may need more fields depending on WIP remodeling + } - // id of the query; used for internal referencing (<== TODO: confirm this) - string id = 1; - // id of the peer being sought by this query - string target_peer_id = 2; - // total time of the query in miliseconds - uint64 total_time_ms = 3; - // number of iterative lookups before reaching result - uint64 total_steps = 4; - // peers queried. - repeated string peer_ids = 5; - // trigger of the query - Trigger trigger = 6; - // type of the query. - Type type = 7; - // status indicating the result of the query - Result result = 8; - // time query was dispatched - google.protobuf.Timestamp sent_ts = 9 [(gogoproto.stdtime) = true]; + // Counters of query events, by status + message QueryGauge { + // Cumulative counter of queries with "SUCCESS" status + uint64 success = 1; + // Cumulative counter of queries with "ERROR" status + uint64 error = 2; + // Cumulative counter of queries with "TIMEOUT" status + uint64 timeout = 3; } // DHT protocol name @@ -263,11 +290,15 @@ message DHT { // protocol enabled. bool enabled = 2; // timestap of start up. - google.protobuf.Timestamp start_ts = 3 [(gogoproto.stdtime) = true]; + google.protobuf.Timestamp start_ts = 3; // params of the dht. Params params = 4; - // queries data - repeated Query query = 5; + // existing, intantiated buckets and their contents + repeated Bucket buckets = 5; + // counts inbound queries received from other peers + QueryGauge incoming_queries = 6; + // counts outbound queries dispatched by this peer + QueryGauge outgoing_queries = 7; } // Subsystems encapsulates all instrumented subsystems for a libp2p host. @@ -275,23 +306,72 @@ message Subsystems { // connections data, source agnostic but currently only supports the Swarm subsystem repeated Connection connections = 1; // the DHT subsystem. - DHT dht = 2; + DHT dht = 2; } // Connections and streams output for a time interval is one of these. message State { - // Version of this protobuf - Version version = 1; - // system information - Runtime runtime = 2; // list of connections - Subsystems subsystems = 3; + Subsystems subsystems = 1; // overall traffic for this peer - Traffic traffic = 4; + Traffic traffic = 2; // moment this data snapshot and instantaneous values were taken - google.protobuf.Timestamp instant_ts = 5; + google.protobuf.Timestamp instant_ts = 3; // start of included data collection (cumulative values counted from here) - google.protobuf.Timestamp start_ts = 6; + google.protobuf.Timestamp start_ts = 4; // length of time up to instant_ts covered by this data snapshot - uint32 snapshot_duration_ms = 7; + uint32 snapshot_duration_ms = 5; +} + +// Event +message Event { + string type = 1; + google.protobuf.Timestamp ts = 2; + string content = 3; // stringified json +} + +// ProtocolDataPacket wraps messages to be sent to clients to allow extension +// based on new types of data sources +message ProtocolDataPacket { + // Version of this protobuf + Version version = 1; + // The Message this contains + oneof message { + State state = 2; + Runtime runtime = 3; + Event event = 4; + } +} + +// ClientSignal is a type of message to be sent from clients to the server to signal +// within the operation of the protocol +message ClientSignal { + // The signal to be sent to the server + enum Signal { + // SEND_DATA is used for pull-based data emitters + SEND_DATA = 0; + // START_PUSH_EMITTER, STOP_PUSH_EMITTER, PAUSE_PUSH_EMITTER & UNPAUSE_PUSH_EMITTER + // are all used in the operation of push-based data emitters + START_PUSH_EMITTER = 1; + STOP_PUSH_EMITTER = 2; + PAUSE_PUSH_EMITTER = 3; + UNPAUSE_PUSH_EMITTER = 4; + + CONFIG_EMITTER = 10; + } + + // The source the data is expected to come from + enum DataSource { + STATE = 0; // A full state snapshot + RUNTIME = 1; // A runtime data message + } + + // Version of this protobuf + Version version = 1; + // Signal to be sent + Signal signal = 2; + // Correlated DataSource for this signal (if any) + DataSource data_source = 3; + // Optional: JSON stringified content to be sent to the emitter + string content = 4; } \ No newline at end of file From fcc117eae71af893b81c481ddd45b8cab6f33bbb Mon Sep 17 00:00:00 2001 From: Aarsh Shah Date: Wed, 15 Apr 2020 11:51:27 +0530 Subject: [PATCH 08/19] required changes --- introspection/pb/introspection.pb.go | 413 ++++++++++++++++----------- introspection/pb/introspection.proto | 264 ++++++++--------- 2 files changed, 381 insertions(+), 296 deletions(-) diff --git a/introspection/pb/introspection.pb.go b/introspection/pb/introspection.pb.go index d354e494..830d6fc8 100644 --- a/introspection/pb/introspection.pb.go +++ b/introspection/pb/introspection.pb.go @@ -90,28 +90,31 @@ type Runtime_EventProperty_PropertyType int32 const ( // treat as a simple primitive Runtime_EventProperty_STRING Runtime_EventProperty_PropertyType = 0 - Runtime_EventProperty_NUMBER Runtime_EventProperty_PropertyType = 2 + Runtime_EventProperty_NUMBER Runtime_EventProperty_PropertyType = 1 // apply human-readable formatting - Runtime_EventProperty_TIME Runtime_EventProperty_PropertyType = 10 - Runtime_EventProperty_PEERID Runtime_EventProperty_PropertyType = 11 + Runtime_EventProperty_TIME Runtime_EventProperty_PropertyType = 10 + Runtime_EventProperty_PEERID Runtime_EventProperty_PropertyType = 11 + Runtime_EventProperty_MULTIADDR Runtime_EventProperty_PropertyType = 12 // embedded arrays and/or object trees Runtime_EventProperty_JSON Runtime_EventProperty_PropertyType = 90 ) var Runtime_EventProperty_PropertyType_name = map[int32]string{ 0: "STRING", - 2: "NUMBER", + 1: "NUMBER", 10: "TIME", 11: "PEERID", + 12: "MULTIADDR", 90: "JSON", } var Runtime_EventProperty_PropertyType_value = map[string]int32{ - "STRING": 0, - "NUMBER": 2, - "TIME": 10, - "PEERID": 11, - "JSON": 90, + "STRING": 0, + "NUMBER": 1, + "TIME": 10, + "PEERID": 11, + "MULTIADDR": 12, + "JSON": 90, } func (x Runtime_EventProperty_PropertyType) String() string { @@ -162,32 +165,26 @@ func (DHT_PeerInDHT_Status) EnumDescriptor() ([]byte, []int) { type ClientSignal_Signal int32 const ( - // SEND_DATA is used for pull-based data emitters + // SEND_DATA with `data_source` requests messages from pull-based data emitters ClientSignal_SEND_DATA ClientSignal_Signal = 0 - // START_PUSH_EMITTER, STOP_PUSH_EMITTER, PAUSE_PUSH_EMITTER & UNPAUSE_PUSH_EMITTER - // are all used in the operation of push-based data emitters - ClientSignal_START_PUSH_EMITTER ClientSignal_Signal = 1 - ClientSignal_STOP_PUSH_EMITTER ClientSignal_Signal = 2 - ClientSignal_PAUSE_PUSH_EMITTER ClientSignal_Signal = 3 - ClientSignal_UNPAUSE_PUSH_EMITTER ClientSignal_Signal = 4 - ClientSignal_CONFIG_EMITTER ClientSignal_Signal = 10 + // PAUSE_ & UNPAUSE_PUSH_EMITTER allows control of push-based data emitters + ClientSignal_PAUSE_PUSH_EMITTER ClientSignal_Signal = 1 + ClientSignal_UNPAUSE_PUSH_EMITTER ClientSignal_Signal = 2 + // CONFIG_EMITTER with `content` sends a JSON object of settings to the emitter + ClientSignal_CONFIG_EMITTER ClientSignal_Signal = 10 ) var ClientSignal_Signal_name = map[int32]string{ 0: "SEND_DATA", - 1: "START_PUSH_EMITTER", - 2: "STOP_PUSH_EMITTER", - 3: "PAUSE_PUSH_EMITTER", - 4: "UNPAUSE_PUSH_EMITTER", + 1: "PAUSE_PUSH_EMITTER", + 2: "UNPAUSE_PUSH_EMITTER", 10: "CONFIG_EMITTER", } var ClientSignal_Signal_value = map[string]int32{ "SEND_DATA": 0, - "START_PUSH_EMITTER": 1, - "STOP_PUSH_EMITTER": 2, - "PAUSE_PUSH_EMITTER": 3, - "UNPAUSE_PUSH_EMITTER": 4, + "PAUSE_PUSH_EMITTER": 1, + "UNPAUSE_PUSH_EMITTER": 2, "CONFIG_EMITTER": 10, } @@ -680,8 +677,11 @@ func (m *Runtime_EventType) GetProperties() []*Runtime_EventProperty { // metadata about content types in event's key:value content field type Runtime_EventProperty struct { // property name of content e.g. openTs - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // type to interpret content value as Type Runtime_EventProperty_PropertyType `protobuf:"varint,2,opt,name=type,proto3,enum=introspection.Runtime_EventProperty_PropertyType" json:"type,omitempty"` + // if true, expect an array of values of type + HasMultiple bool `protobuf:"varint,3,opt,name=has_multiple,json=hasMultiple,proto3" json:"has_multiple,omitempty"` } func (m *Runtime_EventProperty) Reset() { *m = Runtime_EventProperty{} } @@ -731,6 +731,13 @@ func (m *Runtime_EventProperty) GetType() Runtime_EventProperty_PropertyType { return Runtime_EventProperty_STRING } +func (m *Runtime_EventProperty) GetHasMultiple() bool { + if m != nil { + return m.HasMultiple + } + return false +} + // EndpointPair is a pair of multiaddrs. type EndpointPair struct { // the source multiaddr. @@ -1577,12 +1584,15 @@ func (m *DHT) GetOutgoingQueries() *DHT_QueryGauge { } type DHT_Params struct { - // maximum number of requests to perform. + // routing table bucket size. K uint64 `protobuf:"varint,1,opt,name=k,proto3" json:"k,omitempty"` // concurrency of asynchronous requests. Alpha uint64 `protobuf:"varint,2,opt,name=alpha,proto3" json:"alpha,omitempty"` // number of disjoint paths to use. DisjointPaths uint64 `protobuf:"varint,3,opt,name=disjoint_paths,json=disjointPaths,proto3" json:"disjoint_paths,omitempty"` + // number of peers closest to a target that must have responded + // in order for a given query path to complete + Beta uint64 `protobuf:"varint,4,opt,name=beta,proto3" json:"beta,omitempty"` } func (m *DHT_Params) Reset() { *m = DHT_Params{} } @@ -1639,6 +1649,13 @@ func (m *DHT_Params) GetDisjointPaths() uint64 { return 0 } +func (m *DHT_Params) GetBeta() uint64 { + if m != nil { + return m.Beta + } + return 0 +} + // Peer in DHT type DHT_PeerInDHT struct { // the peer id of the host system @@ -1705,8 +1722,9 @@ func (m *DHT_PeerInDHT) GetAgeInBucket() uint32 { // A "k-bucket" containing peers of a certain kadamelia distance type DHT_Bucket struct { - // Contains peers of this distance; or, 0 is "catch-all" bucket - Distance uint32 `protobuf:"varint,1,opt,name=distance,proto3" json:"distance,omitempty"` + // CPL (Common Prefix Length) is the length of the common prefix + // between the ids of every peer in this bucket and the DHT peer id + Cpl uint32 `protobuf:"varint,1,opt,name=cpl,proto3" json:"cpl,omitempty"` // Peers associated with this bucket Peers []*DHT_PeerInDHT `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"` } @@ -1744,9 +1762,9 @@ func (m *DHT_Bucket) XXX_DiscardUnknown() { var xxx_messageInfo_DHT_Bucket proto.InternalMessageInfo -func (m *DHT_Bucket) GetDistance() uint32 { +func (m *DHT_Bucket) GetCpl() uint32 { if m != nil { - return m.Distance + return m.Cpl } return 0 } @@ -2243,135 +2261,136 @@ func init() { func init() { proto.RegisterFile("introspection.proto", fileDescriptor_53a8bedf9a75e10a) } var fileDescriptor_53a8bedf9a75e10a = []byte{ - // 2046 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0xcf, 0x73, 0xdb, 0xc6, - 0xf5, 0xe7, 0x2f, 0xf1, 0xc7, 0x23, 0xa5, 0x30, 0x1b, 0xc7, 0x5f, 0x86, 0xf9, 0x46, 0x71, 0x61, - 0x37, 0xf5, 0xb8, 0xa9, 0x6c, 0xd3, 0xf1, 0x24, 0x4e, 0x66, 0x3c, 0x23, 0x89, 0x88, 0x45, 0x4f, - 0x44, 0x31, 0x4b, 0xd8, 0x93, 0xe9, 0x74, 0x06, 0x03, 0x01, 0x6b, 0x0a, 0x15, 0x08, 0xa0, 0xbb, - 0x0b, 0xa5, 0x3a, 0xf4, 0xdc, 0x4b, 0x0f, 0x3d, 0xf4, 0xd0, 0x53, 0xff, 0x88, 0xf6, 0xdc, 0x43, - 0x0f, 0x9d, 0xe9, 0x31, 0xc7, 0x1e, 0x5b, 0xfb, 0x1f, 0xe9, 0xbc, 0xc5, 0x02, 0x04, 0x29, 0x56, - 0x65, 0xda, 0x13, 0xf7, 0xbd, 0xf7, 0x79, 0x6f, 0xb1, 0xef, 0xd7, 0xee, 0x23, 0xbc, 0xe3, 0x87, - 0x92, 0x47, 0x22, 0x66, 0xae, 0xf4, 0xa3, 0x70, 0x2f, 0xe6, 0x91, 0x8c, 0xc8, 0xf6, 0x12, 0xb3, - 0xff, 0xe1, 0x2c, 0x8a, 0x66, 0x01, 0xbb, 0xaf, 0x84, 0xa7, 0xc9, 0xab, 0xfb, 0xd2, 0x9f, 0x33, - 0x21, 0x9d, 0x79, 0x9c, 0xe2, 0x8d, 0xdb, 0xd0, 0x78, 0xc9, 0xb8, 0xf0, 0xa3, 0x90, 0xf4, 0xa0, - 0x71, 0x91, 0x2e, 0x7b, 0xe5, 0x5b, 0xe5, 0xbb, 0xdb, 0x34, 0x23, 0x8d, 0x67, 0xb0, 0x4d, 0x99, - 0x48, 0x02, 0x79, 0x18, 0x25, 0xa1, 0x64, 0x9c, 0xdc, 0x80, 0x2d, 0x19, 0x49, 0x27, 0xd0, 0xc0, - 0x94, 0x20, 0x3b, 0x50, 0x89, 0xce, 0x7b, 0x15, 0xc5, 0xaa, 0x44, 0xe7, 0xa4, 0x0b, 0x55, 0xc6, - 0x79, 0xaf, 0xaa, 0x18, 0xb8, 0x34, 0xfe, 0x50, 0x81, 0x9d, 0x69, 0xe0, 0x7b, 0x7e, 0x38, 0xcb, - 0x4c, 0xfd, 0x1f, 0x34, 0xa2, 0x0b, 0xc6, 0xed, 0x87, 0x73, 0x6d, 0xac, 0x8e, 0xe4, 0xc3, 0x79, - 0x2e, 0x78, 0x3c, 0xd7, 0x26, 0x95, 0xe0, 0xf1, 0x9c, 0xbc, 0x07, 0xcd, 0x54, 0xe3, 0xf1, 0x5c, - 0xdb, 0x56, 0xc0, 0x87, 0x05, 0xd1, 0xa3, 0x07, 0xf3, 0x5e, 0x6d, 0x21, 0x7a, 0xf4, 0xa0, 0xa0, - 0x75, 0xc6, 0x7b, 0x5b, 0x05, 0xad, 0x33, 0x9e, 0x8b, 0x06, 0x67, 0xbc, 0x57, 0x5f, 0x88, 0x06, - 0x05, 0xd1, 0x27, 0x67, 0xbc, 0xd7, 0x58, 0x88, 0x3e, 0x29, 0x88, 0x3e, 0x3b, 0xe3, 0xbd, 0xe6, - 0x42, 0xf4, 0xd9, 0x19, 0x27, 0xef, 0x43, 0x2b, 0xdd, 0x0b, 0x2d, 0xb6, 0x94, 0x4c, 0x61, 0x91, - 0xce, 0x85, 0x03, 0xb4, 0x09, 0x0b, 0x21, 0xd2, 0xc6, 0x29, 0xb4, 0x86, 0x8e, 0x74, 0x9e, 0x39, - 0xc9, 0x8c, 0x21, 0xd2, 0x4d, 0xe6, 0xf6, 0xe9, 0xa5, 0x64, 0x42, 0x39, 0xa7, 0x46, 0x9b, 0x6e, - 0x32, 0x3f, 0x40, 0x9a, 0x7c, 0x08, 0x6d, 0x14, 0xc6, 0x8e, 0x7b, 0xce, 0xa4, 0x50, 0x2e, 0xaa, - 0x51, 0x70, 0x93, 0xf9, 0x24, 0xe5, 0xa0, 0xff, 0xfc, 0x50, 0x48, 0xfb, 0xf4, 0x5b, 0xe5, 0xa5, - 0x1a, 0xad, 0x23, 0x79, 0xf0, 0xad, 0xf1, 0x97, 0x1a, 0x34, 0x68, 0x12, 0x62, 0x26, 0x90, 0x8f, - 0x60, 0xc7, 0x9f, 0xc7, 0x01, 0x9b, 0xb3, 0x50, 0x3a, 0x32, 0x0b, 0x7d, 0x8b, 0xae, 0x70, 0x8b, - 0xb9, 0x51, 0x51, 0x80, 0x8c, 0x24, 0x7d, 0x68, 0xc6, 0x81, 0x23, 0x5f, 0x45, 0x3c, 0x8d, 0x46, - 0x8b, 0xe6, 0x34, 0x7e, 0x42, 0xcc, 0x18, 0xb7, 0x7d, 0x4f, 0x45, 0xa3, 0x45, 0xeb, 0x48, 0x8e, - 0x3c, 0xf2, 0x63, 0x20, 0xe7, 0x8c, 0xc5, 0xb6, 0x90, 0x4e, 0xc0, 0x6c, 0xcf, 0x91, 0x8e, 0x3d, - 0x17, 0x3a, 0x2c, 0x6f, 0xa1, 0x64, 0x8a, 0x02, 0xf4, 0xc4, 0xb1, 0x20, 0x8f, 0xe0, 0xa6, 0x60, - 0xa1, 0x87, 0x60, 0xc9, 0x6c, 0x1f, 0xb3, 0xe6, 0xc2, 0x09, 0x50, 0x21, 0x0d, 0xd6, 0x3b, 0x28, - 0x9d, 0xa2, 0x70, 0xa4, 0x65, 0xc7, 0x82, 0xec, 0x43, 0x9b, 0x5d, 0xb0, 0x50, 0xda, 0xf2, 0x32, - 0x66, 0xa2, 0xd7, 0xb8, 0x55, 0xbd, 0xdb, 0x1e, 0xdc, 0xda, 0x5b, 0x2e, 0x19, 0xed, 0x85, 0x3d, - 0x13, 0x91, 0xd6, 0x65, 0xcc, 0x28, 0xb0, 0x6c, 0x29, 0xfa, 0x0c, 0x5a, 0xb9, 0x80, 0x10, 0xa8, - 0x85, 0xce, 0x9c, 0x69, 0xf7, 0xa8, 0x35, 0x19, 0x02, 0xc4, 0x3c, 0x8a, 0x19, 0x97, 0x3e, 0xc3, - 0x08, 0xe0, 0x16, 0x77, 0xae, 0xdb, 0x62, 0x92, 0xa2, 0x2f, 0x69, 0x41, 0xaf, 0xff, 0xc7, 0x32, - 0x6c, 0x2f, 0x49, 0xd7, 0xee, 0x65, 0x42, 0x0d, 0x4f, 0xa2, 0xbc, 0xbf, 0x33, 0x78, 0xb8, 0xc9, - 0x2e, 0x7b, 0xd9, 0x42, 0x9d, 0x4c, 0xa9, 0x1b, 0x5f, 0x42, 0xa7, 0xc8, 0x25, 0x00, 0xf5, 0xa9, - 0x45, 0x47, 0xe3, 0x67, 0xdd, 0x12, 0xae, 0xc7, 0x2f, 0x8e, 0x0f, 0x4c, 0xda, 0xad, 0x90, 0x26, - 0xd4, 0xac, 0xd1, 0xb1, 0xd9, 0x05, 0xe4, 0x4e, 0x4c, 0x93, 0x8e, 0x86, 0xdd, 0x36, 0x72, 0x9f, - 0x4f, 0x4f, 0xc6, 0xdd, 0x9f, 0x1a, 0xdf, 0x40, 0xc7, 0x0c, 0xbd, 0x38, 0xf2, 0x43, 0x39, 0x71, - 0x7c, 0x4e, 0x6e, 0xc3, 0xb6, 0xe0, 0xae, 0x3d, 0x4f, 0x02, 0xe9, 0x3b, 0x9e, 0xc7, 0xf5, 0xb7, - 0x77, 0x04, 0x77, 0x8f, 0x33, 0x1e, 0x82, 0x3c, 0x21, 0x0b, 0xa0, 0x34, 0x95, 0x3a, 0x9e, 0x90, - 0x39, 0xc8, 0xf8, 0x15, 0x34, 0x2c, 0xee, 0xbc, 0x7a, 0xe5, 0xbb, 0xe4, 0x53, 0x00, 0x99, 0x2e, - 0x6d, 0x3f, 0x4d, 0xcc, 0xf6, 0xa0, 0xb7, 0x72, 0xf2, 0xbc, 0x5a, 0x68, 0x4b, 0x63, 0x47, 0x21, - 0x79, 0x02, 0xed, 0x4c, 0x31, 0x4a, 0xa4, 0xda, 0xe6, 0x3a, 0xcd, 0x6c, 0x97, 0x93, 0x44, 0x1a, - 0x3f, 0x03, 0x98, 0x4a, 0xce, 0x9c, 0xf9, 0x57, 0xbe, 0x90, 0xe4, 0x03, 0x00, 0xa1, 0x28, 0xdb, - 0xf7, 0xb0, 0x04, 0xab, 0x77, 0x3b, 0xb4, 0x95, 0x72, 0x46, 0x9e, 0x20, 0xf7, 0xa1, 0x91, 0x12, - 0x59, 0xf4, 0xdf, 0x5d, 0xd9, 0x23, 0x35, 0x45, 0x33, 0x94, 0xf1, 0xeb, 0x06, 0xc0, 0x61, 0x14, - 0x86, 0xa9, 0x18, 0x1b, 0xa6, 0xef, 0xa9, 0x83, 0x75, 0x68, 0xc5, 0xf7, 0x8a, 0xf5, 0x52, 0x59, - 0xaa, 0x97, 0x9f, 0x40, 0x1d, 0xb3, 0x3f, 0x11, 0xaa, 0xc4, 0x76, 0xd6, 0xec, 0x83, 0x42, 0xaa, - 0x41, 0xe4, 0x07, 0xd0, 0x91, 0xdc, 0x09, 0x45, 0x1c, 0x71, 0x99, 0x15, 0x5f, 0x87, 0xb6, 0x73, - 0xde, 0xc8, 0x23, 0x4f, 0xa0, 0xc5, 0x74, 0x00, 0xd3, 0xc2, 0x6b, 0x0f, 0xde, 0x5f, 0x31, 0x5a, - 0x0c, 0x30, 0x5d, 0xa0, 0xc9, 0x53, 0x68, 0x62, 0xb2, 0x05, 0x7e, 0xc8, 0x54, 0x05, 0xb6, 0x07, - 0xc6, 0x8a, 0xe6, 0xe2, 0x88, 0x7b, 0x96, 0x46, 0xd2, 0x5c, 0x87, 0xfc, 0x08, 0x6a, 0x3c, 0x0a, - 0x98, 0xea, 0xa7, 0x3b, 0x83, 0x77, 0x56, 0x53, 0x39, 0x0a, 0x18, 0x55, 0x00, 0xf2, 0x00, 0x1a, - 0x3a, 0x32, 0xaa, 0xc1, 0xb6, 0x07, 0x37, 0x57, 0xb0, 0x3a, 0x51, 0x68, 0x06, 0x23, 0x4f, 0xa1, - 0xe1, 0x48, 0xc9, 0xfd, 0x53, 0xa1, 0xda, 0xee, 0xd5, 0x72, 0x2c, 0x7c, 0xd9, 0xbe, 0x02, 0x26, - 0x92, 0x09, 0x9a, 0x29, 0x61, 0xbc, 0x03, 0x47, 0xb2, 0xd0, 0xbd, 0xb4, 0x43, 0xa1, 0x9a, 0x73, - 0x8d, 0xb6, 0x34, 0x67, 0x8c, 0x9d, 0x28, 0x8f, 0x77, 0x5b, 0x99, 0x7f, 0x6f, 0x6d, 0xbc, 0x31, - 0x75, 0xf2, 0x98, 0x93, 0xf7, 0xa0, 0xe1, 0x46, 0x61, 0x88, 0x71, 0xe8, 0x62, 0x1c, 0x8e, 0x4a, - 0xb4, 0x8e, 0x8c, 0x91, 0x47, 0xee, 0x43, 0x0d, 0x57, 0xbd, 0xb7, 0xd7, 0x1a, 0x5b, 0x7c, 0xeb, - 0x51, 0x89, 0x2a, 0x20, 0xf9, 0x18, 0x48, 0x22, 0x18, 0xb7, 0x63, 0x1e, 0x5d, 0xf8, 0x1e, 0xf3, - 0x6c, 0xe9, 0xcc, 0x44, 0xcf, 0xbd, 0x55, 0xbd, 0xdb, 0xa2, 0x5d, 0x94, 0x4c, 0xb4, 0xc0, 0x72, - 0x66, 0xa2, 0xff, 0xa7, 0x32, 0x34, 0x33, 0xff, 0xe3, 0xb7, 0x47, 0x31, 0x0b, 0x6d, 0x29, 0x74, - 0x25, 0xf5, 0xf7, 0xd2, 0xb7, 0xc1, 0x5e, 0xf6, 0x36, 0x50, 0xb1, 0x52, 0x6f, 0x03, 0x5a, 0x47, - 0xa8, 0x25, 0xc8, 0x17, 0xd0, 0x4e, 0xe2, 0x19, 0x77, 0xd4, 0x56, 0x42, 0x17, 0xd2, 0x75, 0x8a, - 0x90, 0xc1, 0x2d, 0x41, 0x1e, 0x43, 0xd3, 0x0d, 0x22, 0xc1, 0x50, 0xb3, 0xfa, 0x1f, 0x35, 0x1b, - 0x0a, 0x6b, 0x89, 0xfe, 0x18, 0x60, 0x11, 0x1a, 0x72, 0x0b, 0xda, 0xaa, 0x5f, 0xc4, 0x01, 0xfb, - 0x25, 0xcb, 0xda, 0x4a, 0x91, 0x45, 0x76, 0x01, 0x58, 0xe8, 0xf2, 0xcb, 0x58, 0x2e, 0x6e, 0xa7, - 0x02, 0xe7, 0x60, 0x07, 0x3a, 0x9c, 0x05, 0xce, 0x25, 0xf3, 0x6c, 0xbc, 0x66, 0x9f, 0xd7, 0x9a, - 0x9d, 0x6e, 0xd7, 0x78, 0x53, 0x83, 0x7a, 0x1a, 0xad, 0x2b, 0x55, 0x88, 0x37, 0x1a, 0x7e, 0x9f, - 0x1b, 0x05, 0xda, 0x5c, 0x4e, 0xe7, 0xb9, 0x5b, 0xfd, 0x1e, 0xb9, 0x5b, 0xdb, 0x2c, 0x77, 0x3f, - 0xd5, 0xc9, 0x90, 0x16, 0xe3, 0xed, 0xb5, 0x99, 0x55, 0xc8, 0x09, 0xca, 0x5e, 0xe9, 0xa4, 0xf8, - 0xfc, 0x4a, 0x3d, 0xee, 0xae, 0x57, 0x5e, 0x53, 0x8b, 0x8b, 0xc6, 0xd2, 0xd8, 0xa4, 0xb1, 0x2c, - 0xd7, 0x47, 0x77, 0xb5, 0x3e, 0xbe, 0x5f, 0x7a, 0xfa, 0xb0, 0xbd, 0x74, 0x9c, 0xbc, 0x1c, 0xca, - 0x9b, 0x96, 0x43, 0xa1, 0xb4, 0x2a, 0xcb, 0xa5, 0x75, 0xd0, 0x01, 0x70, 0x73, 0x85, 0xfe, 0xc5, - 0xff, 0x5a, 0x08, 0xc5, 0x5c, 0xae, 0x6c, 0x9c, 0xcb, 0xc6, 0x9f, 0xeb, 0x50, 0x1d, 0x1e, 0x59, - 0x4b, 0x29, 0x55, 0x5e, 0x49, 0xa9, 0x1e, 0x34, 0x58, 0xe8, 0x9c, 0x06, 0x2c, 0x3d, 0x44, 0x93, - 0x66, 0x24, 0x6e, 0x2a, 0xa4, 0xc3, 0xe5, 0x86, 0x05, 0xa4, 0xb0, 0x96, 0x20, 0x0f, 0xa1, 0x1e, - 0x3b, 0x1c, 0x9b, 0x54, 0x6d, 0xad, 0x23, 0x87, 0x47, 0xd6, 0xde, 0x44, 0x01, 0xa8, 0x06, 0xa2, - 0x4f, 0x4e, 0x93, 0xf4, 0x21, 0xb9, 0xa5, 0x2e, 0xb2, 0x75, 0x3a, 0x07, 0x0a, 0x41, 0x33, 0x24, - 0x39, 0x82, 0xae, 0x1f, 0xba, 0xd1, 0xdc, 0x0f, 0x67, 0xf6, 0x2f, 0x12, 0xc6, 0xf1, 0x11, 0x94, - 0xe6, 0xdf, 0x07, 0x6b, 0xb4, 0xbf, 0x4e, 0x18, 0xbf, 0x4c, 0xef, 0xdb, 0xb7, 0x32, 0xb5, 0xaf, - 0x53, 0x2d, 0xb4, 0x14, 0x25, 0x72, 0x16, 0x15, 0x2d, 0x35, 0x36, 0xb2, 0x94, 0xa9, 0x69, 0x4b, - 0xfd, 0x29, 0xd4, 0xd3, 0xa3, 0x91, 0x0e, 0x94, 0xcf, 0xf5, 0xa3, 0xb9, 0x7c, 0x8e, 0x03, 0x8b, - 0x13, 0xc4, 0x67, 0x8e, 0x7e, 0x27, 0xa7, 0x04, 0xf9, 0x21, 0xec, 0x78, 0xbe, 0xf8, 0x39, 0x5e, - 0x6b, 0x76, 0xec, 0xc8, 0x33, 0xa1, 0x5f, 0xca, 0xdb, 0x19, 0x77, 0x82, 0xcc, 0xfe, 0x5f, 0xcb, - 0xd0, 0x9a, 0xe0, 0x45, 0x1c, 0x62, 0x2c, 0x0b, 0x97, 0x74, 0x79, 0xe9, 0x92, 0xfe, 0x22, 0xaf, - 0xa5, 0xf4, 0x91, 0x76, 0x7b, 0x9d, 0xdf, 0x33, 0x33, 0xab, 0x95, 0x65, 0xc0, 0xb6, 0x33, 0xc3, - 0xd7, 0xad, 0x9d, 0xba, 0x57, 0x4f, 0x36, 0x6d, 0x67, 0xc6, 0x46, 0x61, 0xea, 0x79, 0xe3, 0x29, - 0xb6, 0x2c, 0x85, 0x06, 0xa8, 0xef, 0x1f, 0x5a, 0xa3, 0x97, 0x66, 0xb7, 0x44, 0xda, 0xd0, 0x38, - 0x1e, 0x4d, 0xa7, 0xf8, 0x86, 0x2b, 0x93, 0x0e, 0x34, 0xa9, 0xf9, 0xdc, 0x3c, 0xb4, 0xcc, 0x61, - 0xb7, 0x42, 0xb6, 0xa1, 0x75, 0xb8, 0x3f, 0x1e, 0x8e, 0x86, 0xfb, 0x96, 0xd9, 0xad, 0xf6, 0xbf, - 0x81, 0x7a, 0x6a, 0x09, 0xf3, 0xd1, 0xf3, 0x85, 0x74, 0x42, 0x97, 0xe9, 0xa9, 0x2b, 0xa7, 0xc9, - 0x00, 0xb6, 0xf0, 0x40, 0xd9, 0x93, 0xe6, 0xff, 0xaf, 0x3b, 0x05, 0x4d, 0xa1, 0xfd, 0x97, 0x00, - 0x8b, 0xa8, 0x60, 0x46, 0x8b, 0xc4, 0x75, 0x99, 0xc8, 0xa6, 0x96, 0x8c, 0xc4, 0x30, 0x30, 0xce, - 0x23, 0x9e, 0x85, 0x41, 0x11, 0x88, 0xc7, 0x86, 0x84, 0x4f, 0xb5, 0xd4, 0xff, 0x19, 0x69, 0x44, - 0x00, 0xd3, 0xe4, 0x54, 0x5c, 0x0a, 0xc9, 0xe6, 0xea, 0x36, 0x5a, 0xd4, 0x74, 0xfa, 0x1c, 0xbb, - 0xae, 0x4d, 0xd0, 0x22, 0x9a, 0xdc, 0x81, 0xaa, 0x77, 0x96, 0xbd, 0x05, 0xc9, 0xd5, 0x43, 0x51, - 0x14, 0x1b, 0xbf, 0xaf, 0xc0, 0x96, 0x1a, 0x25, 0xc8, 0x13, 0x00, 0x91, 0x6f, 0xfd, 0x6f, 0x5a, - 0xd2, 0xe2, 0xdb, 0x68, 0x01, 0x5c, 0xec, 0xfd, 0x95, 0xcd, 0x7a, 0xff, 0x13, 0x00, 0x1c, 0xce, - 0x9c, 0x70, 0xc3, 0x5a, 0x6f, 0x69, 0x74, 0xda, 0x99, 0xf2, 0x26, 0x51, 0xdb, 0xbc, 0x49, 0x3c, - 0x80, 0x1b, 0x22, 0x74, 0x62, 0x71, 0x16, 0x49, 0xdb, 0x4b, 0xb8, 0x9a, 0xf2, 0x16, 0x33, 0x18, - 0xc9, 0x64, 0x43, 0x2d, 0x3a, 0x16, 0x86, 0x03, 0x5b, 0x6a, 0xbc, 0xc0, 0xf1, 0x44, 0x8d, 0x22, - 0x7a, 0x3c, 0xc1, 0x35, 0xb9, 0x07, 0x95, 0x8d, 0x3a, 0x63, 0x45, 0x0a, 0x0c, 0xb7, 0x1b, 0x85, - 0x92, 0x85, 0x52, 0x0f, 0x8c, 0x19, 0x69, 0xfc, 0xb3, 0x0c, 0x64, 0xa2, 0xfb, 0x22, 0x3e, 0xcf, - 0xd3, 0x51, 0x16, 0xfd, 0x59, 0xfc, 0x63, 0xe2, 0xaa, 0x3f, 0xf5, 0x3f, 0x18, 0x8b, 0xa1, 0xf4, - 0x63, 0xd8, 0x52, 0xd3, 0xa2, 0xfe, 0xa2, 0x1b, 0x6b, 0x6e, 0x35, 0x76, 0x54, 0xa2, 0x29, 0x88, - 0x0c, 0xa0, 0xc1, 0xd3, 0x01, 0x4a, 0xbb, 0xfe, 0xe6, 0xfa, 0xf1, 0xea, 0xa8, 0x44, 0x33, 0x20, - 0xee, 0xa0, 0x46, 0x45, 0xed, 0xf3, 0xd5, 0x1d, 0x94, 0xa7, 0x70, 0x07, 0x05, 0x3a, 0x68, 0x41, - 0x63, 0xce, 0x84, 0x70, 0x66, 0xcc, 0xf8, 0x5d, 0x15, 0x3a, 0x87, 0x81, 0xcf, 0x42, 0x39, 0xf5, - 0x67, 0xa1, 0x13, 0xfc, 0x17, 0xa7, 0xfb, 0x1c, 0xea, 0x42, 0xe9, 0xea, 0x46, 0x73, 0xe5, 0xf9, - 0x5d, 0x30, 0xbf, 0x97, 0xfe, 0x50, 0xad, 0x41, 0x9e, 0x41, 0x5b, 0x8d, 0xdb, 0x22, 0x4a, 0xb8, - 0x9b, 0xbd, 0x63, 0x3e, 0xba, 0xce, 0x00, 0x06, 0x62, 0xaa, 0xd0, 0x14, 0xbc, 0x7c, 0x5d, 0x8c, - 0x62, 0x6d, 0x39, 0x8a, 0xbf, 0x29, 0x43, 0x5d, 0x9f, 0x6d, 0x1b, 0x5a, 0x53, 0x73, 0x3c, 0xb4, - 0x87, 0xfb, 0xd6, 0x7e, 0xb7, 0x44, 0x6e, 0x02, 0x99, 0x5a, 0xfb, 0xd4, 0xb2, 0x27, 0x2f, 0xa6, - 0x47, 0xb6, 0x79, 0x3c, 0xb2, 0x2c, 0x93, 0x76, 0xcb, 0xe4, 0x5d, 0x78, 0x7b, 0x6a, 0x9d, 0x4c, - 0x96, 0xd9, 0x15, 0x84, 0x4f, 0xf6, 0x5f, 0x4c, 0xcd, 0x65, 0x7e, 0x95, 0xf4, 0xe0, 0xc6, 0x8b, - 0xf1, 0x1a, 0x49, 0x8d, 0x10, 0xd8, 0x39, 0x3c, 0x19, 0x7f, 0x39, 0x7a, 0x96, 0xf3, 0xc0, 0xb8, - 0x03, 0xb0, 0x38, 0x02, 0x69, 0xc1, 0xd6, 0xd4, 0xc2, 0x76, 0xa8, 0x1a, 0x27, 0x7d, 0x31, 0x56, - 0x63, 0x6e, 0xf9, 0x9e, 0xb9, 0xb6, 0xb7, 0x02, 0xd4, 0x0f, 0xbf, 0x3a, 0x99, 0x9a, 0xc3, 0x6e, - 0x19, 0xe1, 0x27, 0x13, 0x73, 0x8c, 0x7d, 0xb6, 0x82, 0x04, 0x0a, 0x90, 0xa8, 0xa2, 0x4d, 0x93, - 0xd2, 0x13, 0xda, 0xad, 0xdd, 0xbb, 0x03, 0x35, 0x7c, 0x04, 0xe2, 0xc1, 0x47, 0xe3, 0x91, 0x35, - 0xda, 0xb7, 0x4e, 0x68, 0xb7, 0x84, 0x24, 0x35, 0xa7, 0x93, 0x93, 0xf1, 0x10, 0xcf, 0x7b, 0xd0, - 0xfb, 0xdb, 0xeb, 0xdd, 0xf2, 0x77, 0xaf, 0x77, 0xcb, 0xff, 0x78, 0xbd, 0x5b, 0xfe, 0xed, 0x9b, - 0xdd, 0xd2, 0x77, 0x6f, 0x76, 0x4b, 0x7f, 0x7f, 0xb3, 0x5b, 0x3a, 0xad, 0xab, 0x9a, 0x79, 0xf4, - 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc6, 0x6b, 0x49, 0xa8, 0xdc, 0x13, 0x00, 0x00, + // 2055 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0x4f, 0x73, 0x1b, 0x49, + 0x15, 0xd7, 0x3f, 0xeb, 0xcf, 0x93, 0xec, 0x15, 0x9d, 0x10, 0x14, 0x2d, 0xeb, 0x0d, 0x93, 0xb0, + 0xa4, 0xc2, 0xe2, 0x24, 0xca, 0xa6, 0x76, 0xb3, 0x5b, 0x95, 0x2a, 0xdb, 0x12, 0xb1, 0x52, 0xb1, + 0xac, 0x6d, 0x8d, 0x53, 0x14, 0x05, 0x35, 0x35, 0x9e, 0xe9, 0x48, 0x83, 0x47, 0x33, 0x43, 0x77, + 0x8f, 0x17, 0x1f, 0x38, 0x73, 0xe5, 0xc8, 0x89, 0x2f, 0xc1, 0x67, 0xa0, 0xe0, 0xb8, 0x47, 0x8e, + 0x90, 0xec, 0x37, 0xe0, 0x0b, 0x50, 0xaf, 0xa7, 0x67, 0x34, 0x92, 0x85, 0xd1, 0xb2, 0x27, 0xf5, + 0xeb, 0xf7, 0x7b, 0xaf, 0xa7, 0xdf, 0xbf, 0x7e, 0x4f, 0x70, 0xc3, 0x0b, 0x24, 0x0f, 0x45, 0xc4, + 0x1c, 0xe9, 0x85, 0xc1, 0x5e, 0xc4, 0x43, 0x19, 0x92, 0xed, 0xa5, 0xcd, 0xee, 0x87, 0xd3, 0x30, + 0x9c, 0xfa, 0xec, 0xa1, 0x62, 0x9e, 0xc5, 0x6f, 0x1e, 0x4a, 0x6f, 0xce, 0x84, 0xb4, 0xe7, 0x51, + 0x82, 0x37, 0xee, 0x42, 0xed, 0x35, 0xe3, 0xc2, 0x0b, 0x03, 0xd2, 0x81, 0xda, 0x45, 0xb2, 0xec, + 0x14, 0xef, 0x14, 0xef, 0x6f, 0xd3, 0x94, 0x34, 0x5e, 0xc0, 0x36, 0x65, 0x22, 0xf6, 0xe5, 0x61, + 0x18, 0x07, 0x92, 0x71, 0x72, 0x13, 0xb6, 0x64, 0x28, 0x6d, 0x5f, 0x03, 0x13, 0x82, 0xec, 0x40, + 0x29, 0x3c, 0xef, 0x94, 0xd4, 0x56, 0x29, 0x3c, 0x27, 0x6d, 0x28, 0x33, 0xce, 0x3b, 0x65, 0xb5, + 0x81, 0x4b, 0xe3, 0xcf, 0x25, 0xd8, 0x99, 0xf8, 0x9e, 0xeb, 0x05, 0xd3, 0x54, 0xd5, 0x0f, 0xa0, + 0x16, 0x5e, 0x30, 0x6e, 0x3d, 0x9e, 0x6b, 0x65, 0x55, 0x24, 0x1f, 0xcf, 0x33, 0xc6, 0xd3, 0xb9, + 0x56, 0xa9, 0x18, 0x4f, 0xe7, 0xe4, 0x36, 0xd4, 0x13, 0x89, 0xa7, 0x73, 0xad, 0x5b, 0x01, 0x1f, + 0xe7, 0x58, 0x4f, 0x1e, 0xcd, 0x3b, 0x95, 0x05, 0xeb, 0xc9, 0xa3, 0x9c, 0xd4, 0x8c, 0x77, 0xb6, + 0x72, 0x52, 0x33, 0x9e, 0xb1, 0x7a, 0x33, 0xde, 0xa9, 0x2e, 0x58, 0xbd, 0x1c, 0xeb, 0x93, 0x19, + 0xef, 0xd4, 0x16, 0xac, 0x4f, 0x72, 0xac, 0xcf, 0x66, 0xbc, 0x53, 0x5f, 0xb0, 0x3e, 0x9b, 0x71, + 0xf2, 0x3e, 0x34, 0x92, 0xb3, 0x50, 0x63, 0x43, 0xf1, 0x14, 0x16, 0xe9, 0x8c, 0xd9, 0x43, 0x9d, + 0xb0, 0x60, 0x22, 0x6d, 0x9c, 0x41, 0xa3, 0x6f, 0x4b, 0xfb, 0x85, 0x1d, 0x4f, 0x19, 0x22, 0x9d, + 0x78, 0x6e, 0x9d, 0x5d, 0x4a, 0x26, 0x94, 0x71, 0x2a, 0xb4, 0xee, 0xc4, 0xf3, 0x03, 0xa4, 0xc9, + 0x87, 0xd0, 0x44, 0x66, 0x64, 0x3b, 0xe7, 0x4c, 0x0a, 0x65, 0xa2, 0x0a, 0x05, 0x27, 0x9e, 0x8f, + 0x93, 0x1d, 0xb4, 0x9f, 0x17, 0x08, 0x69, 0x9d, 0x7d, 0xa5, 0xac, 0x54, 0xa1, 0x55, 0x24, 0x0f, + 0xbe, 0x32, 0xfe, 0x5d, 0x81, 0x1a, 0x8d, 0x03, 0x8c, 0x04, 0xf2, 0x11, 0xec, 0x78, 0xf3, 0xc8, + 0x67, 0x73, 0x16, 0x48, 0x5b, 0xa6, 0xae, 0x6f, 0xd0, 0x95, 0xdd, 0x7c, 0x6c, 0x94, 0x14, 0x20, + 0x25, 0x49, 0x17, 0xea, 0x91, 0x6f, 0xcb, 0x37, 0x21, 0x4f, 0xbc, 0xd1, 0xa0, 0x19, 0x8d, 0x9f, + 0x10, 0x31, 0xc6, 0x2d, 0xcf, 0x55, 0xde, 0x68, 0xd0, 0x2a, 0x92, 0x43, 0x97, 0xfc, 0x14, 0xc8, + 0x39, 0x63, 0x91, 0x25, 0xa4, 0xed, 0x33, 0xcb, 0xb5, 0xa5, 0x6d, 0xcd, 0x85, 0x76, 0xcb, 0x7b, + 0xc8, 0x99, 0x20, 0x03, 0x2d, 0x71, 0x2c, 0xc8, 0x13, 0xb8, 0x25, 0x58, 0xe0, 0x22, 0x58, 0x32, + 0xcb, 0xc3, 0xa8, 0xb9, 0xb0, 0x7d, 0x14, 0x48, 0x9c, 0x75, 0x03, 0xb9, 0x13, 0x64, 0x0e, 0x35, + 0xef, 0x58, 0x90, 0x7d, 0x68, 0xb2, 0x0b, 0x16, 0x48, 0x4b, 0x5e, 0x46, 0x4c, 0x74, 0x6a, 0x77, + 0xca, 0xf7, 0x9b, 0xbd, 0x3b, 0x7b, 0xcb, 0x29, 0xa3, 0xad, 0xb0, 0x37, 0x40, 0xa4, 0x79, 0x19, + 0x31, 0x0a, 0x2c, 0x5d, 0x8a, 0x2e, 0x83, 0x46, 0xc6, 0x20, 0x04, 0x2a, 0x81, 0x3d, 0x67, 0xda, + 0x3c, 0x6a, 0x4d, 0xfa, 0x00, 0x11, 0x0f, 0x23, 0xc6, 0xa5, 0xc7, 0xd0, 0x03, 0x78, 0xc4, 0xbd, + 0xeb, 0x8e, 0x18, 0x27, 0xe8, 0x4b, 0x9a, 0x93, 0xeb, 0x7e, 0x53, 0x84, 0xed, 0x25, 0xee, 0xda, + 0xb3, 0x06, 0x50, 0xc1, 0x9b, 0x28, 0xeb, 0xef, 0xf4, 0x1e, 0x6f, 0x72, 0xca, 0x5e, 0xba, 0x50, + 0x37, 0x53, 0xe2, 0xe4, 0x47, 0xd0, 0x9a, 0xd9, 0xc2, 0x9a, 0xc7, 0xbe, 0xf4, 0x22, 0x9f, 0x29, + 0x8f, 0xd5, 0x69, 0x73, 0x66, 0x8b, 0x63, 0xbd, 0x65, 0x9c, 0x42, 0x2b, 0x2f, 0x48, 0x00, 0xaa, + 0x13, 0x93, 0x0e, 0x47, 0x2f, 0xda, 0x05, 0x5c, 0x8f, 0x4e, 0x8f, 0x0f, 0x06, 0xb4, 0x5d, 0x24, + 0x75, 0xa8, 0x98, 0xc3, 0xe3, 0x41, 0x1b, 0x70, 0x77, 0x3c, 0x18, 0xd0, 0x61, 0xbf, 0xdd, 0x24, + 0xdb, 0xd0, 0x38, 0x3e, 0x7d, 0x65, 0x0e, 0xf7, 0xfb, 0x7d, 0xda, 0x6e, 0x21, 0xe8, 0xe5, 0xe4, + 0x64, 0xd4, 0xfe, 0xa5, 0xf1, 0x0b, 0x68, 0x0d, 0x02, 0x37, 0x0a, 0xbd, 0x40, 0x8e, 0x6d, 0x8f, + 0x93, 0xbb, 0xb0, 0x2d, 0xb8, 0x93, 0x7c, 0x89, 0xed, 0xba, 0x5c, 0xdf, 0xb6, 0x25, 0xb8, 0x73, + 0x9c, 0xee, 0x21, 0xc8, 0x15, 0x32, 0x07, 0x4a, 0x82, 0xaf, 0xe5, 0x0a, 0x99, 0x81, 0x8c, 0xdf, + 0x43, 0xcd, 0xe4, 0xf6, 0x9b, 0x37, 0x9e, 0x43, 0x3e, 0x05, 0x90, 0xc9, 0xd2, 0xf2, 0x92, 0x50, + 0x6e, 0xf6, 0x3a, 0x2b, 0xb6, 0xca, 0xf2, 0x8b, 0x36, 0x34, 0x76, 0x18, 0x90, 0x67, 0xd0, 0x4c, + 0x05, 0xc3, 0x58, 0xaa, 0x63, 0xae, 0x93, 0x4c, 0x4f, 0x39, 0x89, 0xa5, 0xf1, 0x2b, 0x80, 0x89, + 0xe4, 0xcc, 0x9e, 0xbf, 0xf2, 0x84, 0x24, 0x1f, 0x00, 0x08, 0x45, 0x59, 0x9e, 0x8b, 0x49, 0x5b, + 0xbe, 0xdf, 0xa2, 0x8d, 0x64, 0x67, 0xe8, 0x0a, 0xf2, 0x10, 0x6a, 0x09, 0x91, 0xc6, 0xcb, 0xf7, + 0x57, 0xce, 0x48, 0x54, 0xd1, 0x14, 0x65, 0xfc, 0xa1, 0x06, 0x70, 0x18, 0x06, 0x41, 0xc2, 0xc6, + 0x12, 0xeb, 0xb9, 0xea, 0x62, 0x2d, 0x5a, 0xf2, 0xdc, 0x7c, 0x86, 0x95, 0x96, 0x32, 0xec, 0x67, + 0x50, 0xc5, 0x7c, 0x89, 0x85, 0x72, 0xf1, 0xce, 0x9a, 0x73, 0x90, 0x49, 0x35, 0x08, 0xe3, 0x42, + 0x72, 0x3b, 0x10, 0x51, 0xc8, 0x65, 0x9a, 0xae, 0x2d, 0xda, 0xcc, 0xf6, 0x86, 0x2e, 0x79, 0x06, + 0x0d, 0xa6, 0x1d, 0x98, 0xa4, 0x6a, 0xb3, 0xf7, 0xfe, 0x8a, 0xd2, 0xbc, 0x83, 0xe9, 0x02, 0x4d, + 0x9e, 0x43, 0x1d, 0xc3, 0xd3, 0xf7, 0x02, 0xa6, 0x72, 0xb6, 0xd9, 0x33, 0x56, 0x24, 0x17, 0x57, + 0xdc, 0x33, 0x35, 0x92, 0x66, 0x32, 0xe4, 0x27, 0x50, 0xe1, 0xa1, 0xcf, 0x54, 0x05, 0xde, 0xe9, + 0xdd, 0x58, 0x0d, 0xfe, 0xd0, 0x67, 0x54, 0x01, 0xc8, 0x23, 0xa8, 0x69, 0xcf, 0xa8, 0x92, 0xdc, + 0xec, 0xdd, 0x5a, 0xc1, 0xea, 0x40, 0xa1, 0x29, 0x8c, 0x3c, 0x87, 0x9a, 0x2d, 0x25, 0xf7, 0xce, + 0x84, 0x2a, 0xd4, 0x57, 0x13, 0x38, 0xf7, 0x65, 0xfb, 0x0a, 0x18, 0x4b, 0x26, 0x68, 0x2a, 0x84, + 0xfe, 0xf6, 0x6d, 0xc9, 0x02, 0xe7, 0xd2, 0x0a, 0x84, 0x2a, 0xe7, 0x15, 0xda, 0xd0, 0x3b, 0x23, + 0xac, 0x5d, 0x99, 0xbf, 0x9b, 0x4a, 0xfd, 0xed, 0xb5, 0xfe, 0xc6, 0xd0, 0xc9, 0x7c, 0x4e, 0x6e, + 0x43, 0xcd, 0x09, 0x83, 0x00, 0xfd, 0xd0, 0x46, 0x3f, 0x1c, 0x15, 0x68, 0x15, 0x37, 0x86, 0x2e, + 0x79, 0x08, 0x15, 0x5c, 0x75, 0xbe, 0xb7, 0x56, 0xd9, 0xe2, 0x5b, 0x8f, 0x0a, 0x54, 0x01, 0xc9, + 0xc7, 0x40, 0x62, 0xc1, 0xb8, 0x15, 0xf1, 0xf0, 0xc2, 0x73, 0x99, 0x6b, 0x49, 0x7b, 0x2a, 0x3a, + 0xce, 0x9d, 0xf2, 0xfd, 0x06, 0x6d, 0x23, 0x67, 0xac, 0x19, 0xa6, 0x3d, 0x15, 0xdd, 0xbf, 0x14, + 0xa1, 0x9e, 0xda, 0x1f, 0xbf, 0x3d, 0x8c, 0x58, 0x60, 0x49, 0xa1, 0x33, 0xa9, 0xbb, 0x97, 0x74, + 0x13, 0x7b, 0x69, 0x37, 0xa1, 0x7c, 0xa5, 0xba, 0x09, 0x5a, 0x45, 0xa8, 0x29, 0xc8, 0x17, 0xd0, + 0x8c, 0xa3, 0x29, 0xb7, 0xd5, 0x51, 0x42, 0x27, 0xd2, 0x75, 0x82, 0x90, 0xc2, 0x4d, 0x41, 0x9e, + 0x42, 0xdd, 0xf1, 0x43, 0xc1, 0x50, 0xb2, 0xfc, 0x3f, 0x25, 0x6b, 0x0a, 0x6b, 0x8a, 0xee, 0x08, + 0x60, 0xe1, 0x1a, 0x72, 0x07, 0x9a, 0x69, 0x79, 0xfb, 0x1d, 0x4b, 0xcb, 0x4a, 0x7e, 0x8b, 0xec, + 0x02, 0xb0, 0xc0, 0xe1, 0x97, 0x91, 0x5c, 0xbc, 0x67, 0xb9, 0x9d, 0x83, 0x1d, 0x68, 0x71, 0xe6, + 0xdb, 0x97, 0xcc, 0xb5, 0xf0, 0x61, 0x7e, 0x59, 0xa9, 0xb7, 0xda, 0x6d, 0xe3, 0x5d, 0x05, 0xaa, + 0x89, 0xb7, 0xae, 0x64, 0x21, 0xbe, 0x81, 0xf8, 0x7d, 0x4e, 0xe8, 0x6b, 0x75, 0x19, 0x9d, 0xc5, + 0x6e, 0xf9, 0x5b, 0xc4, 0x6e, 0x65, 0xb3, 0xd8, 0xfd, 0x54, 0x07, 0x43, 0x92, 0x8c, 0x77, 0xd7, + 0x46, 0x56, 0x2e, 0x26, 0x28, 0x7b, 0xa3, 0x83, 0xe2, 0xf3, 0x2b, 0xf9, 0xb8, 0xbb, 0x5e, 0x78, + 0x4d, 0x2e, 0x2e, 0x0a, 0x4b, 0x6d, 0x93, 0xc2, 0xb2, 0x9c, 0x1f, 0xed, 0xd5, 0xfc, 0xf8, 0x76, + 0xe1, 0xe9, 0xc1, 0xf6, 0xd2, 0x75, 0xb2, 0x74, 0x28, 0x6e, 0x9a, 0x0e, 0xb9, 0xd4, 0x2a, 0x2d, + 0xa7, 0xd6, 0x41, 0x0b, 0xc0, 0xc9, 0x04, 0xba, 0x17, 0xdf, 0x35, 0x11, 0xf2, 0xb1, 0x5c, 0xda, + 0x38, 0x96, 0x8d, 0xbf, 0x55, 0xa1, 0xdc, 0x3f, 0x32, 0x97, 0x42, 0xaa, 0xb8, 0x12, 0x52, 0x1d, + 0xa8, 0xb1, 0xc0, 0x3e, 0xf3, 0x59, 0x72, 0x89, 0x3a, 0x4d, 0x49, 0x3c, 0x54, 0x48, 0x9b, 0xcb, + 0x0d, 0x13, 0x48, 0x61, 0x4d, 0x41, 0x1e, 0x43, 0x35, 0xb2, 0x39, 0x16, 0xa9, 0xca, 0x5a, 0x43, + 0xf6, 0x8f, 0xcc, 0xbd, 0xb1, 0x02, 0x50, 0x0d, 0x44, 0x9b, 0x9c, 0xc5, 0x49, 0xeb, 0xb9, 0xa5, + 0x1e, 0xb2, 0x75, 0x32, 0x07, 0x0a, 0x41, 0x53, 0x24, 0x39, 0x82, 0xb6, 0x17, 0x38, 0xe1, 0xdc, + 0x0b, 0xa6, 0xd6, 0x6f, 0x63, 0xc6, 0xb1, 0x6d, 0x4a, 0xe2, 0xef, 0x83, 0x35, 0xd2, 0x5f, 0xc6, + 0x8c, 0x5f, 0x26, 0xef, 0xed, 0x7b, 0xa9, 0xd8, 0x97, 0x89, 0x14, 0x6a, 0x0a, 0x63, 0x39, 0x0d, + 0xf3, 0x9a, 0x6a, 0x1b, 0x69, 0x4a, 0xc5, 0xb4, 0xa6, 0xee, 0x14, 0xaa, 0xc9, 0xd5, 0x48, 0x0b, + 0x8a, 0xe7, 0xba, 0xcd, 0x2e, 0x9e, 0xe3, 0x88, 0x63, 0xfb, 0xd1, 0xcc, 0xd6, 0x9d, 0x75, 0x42, + 0x90, 0x1f, 0xc3, 0x8e, 0xeb, 0x89, 0xdf, 0xe0, 0xb3, 0x66, 0x45, 0xb6, 0x9c, 0x09, 0xdd, 0x5b, + 0x6f, 0xa7, 0xbb, 0x63, 0xdc, 0xc4, 0x0e, 0xee, 0x8c, 0x49, 0x5b, 0x99, 0xb3, 0x42, 0xd5, 0xba, + 0xfb, 0xd7, 0x22, 0x34, 0xc6, 0xf8, 0x38, 0x07, 0xe8, 0xdf, 0xdc, 0xc3, 0x5d, 0x5c, 0x7a, 0xb8, + 0xbf, 0xc8, 0xf2, 0x2b, 0x69, 0xf5, 0xee, 0xae, 0xf3, 0x45, 0xaa, 0x66, 0x35, 0xdb, 0x0c, 0xd8, + 0xb6, 0xa7, 0xd8, 0x23, 0x5b, 0x89, 0xc9, 0xf5, 0x7c, 0xd4, 0xb4, 0xa7, 0x6c, 0x18, 0x24, 0xde, + 0x30, 0x9e, 0x63, 0x19, 0x53, 0x68, 0x80, 0xea, 0xfe, 0xa1, 0x39, 0x7c, 0x3d, 0x68, 0x17, 0x48, + 0x13, 0x6a, 0xc7, 0xc3, 0xc9, 0x04, 0xdb, 0xbc, 0x22, 0x69, 0x41, 0x9d, 0x0e, 0x5e, 0x0e, 0x0e, + 0xcd, 0x41, 0xbf, 0x5d, 0xc2, 0x96, 0xee, 0x70, 0x7f, 0xd4, 0x1f, 0xf6, 0xf7, 0xcd, 0x41, 0xbb, + 0xdc, 0x1d, 0x41, 0x35, 0xd1, 0x84, 0xf3, 0x9d, 0x13, 0xa5, 0x33, 0x20, 0x2e, 0x49, 0x0f, 0xb6, + 0xf0, 0x1a, 0x69, 0x73, 0xf3, 0xc3, 0xeb, 0xbe, 0x9d, 0x26, 0xd0, 0xee, 0x6b, 0x80, 0x85, 0x7f, + 0x30, 0xb6, 0x45, 0xec, 0x38, 0x4c, 0xa4, 0x13, 0x4f, 0x4a, 0xa2, 0x43, 0x18, 0xe7, 0x21, 0x4f, + 0x1d, 0xa2, 0x08, 0xc4, 0x63, 0x69, 0xc2, 0xa6, 0x2d, 0xf1, 0x44, 0x4a, 0x1a, 0x21, 0xc0, 0x24, + 0x3e, 0x13, 0x97, 0x42, 0xb2, 0xb9, 0x7a, 0x97, 0x16, 0xd9, 0x9d, 0x34, 0x66, 0xd7, 0x15, 0x0c, + 0x9a, 0x47, 0x93, 0x7b, 0x50, 0x76, 0x67, 0x69, 0x57, 0x48, 0xae, 0x5e, 0x8a, 0x22, 0xdb, 0xf8, + 0x53, 0x09, 0xb6, 0xd4, 0x18, 0x42, 0x9e, 0x01, 0x88, 0xec, 0xe8, 0xff, 0x52, 0x9c, 0x16, 0xdf, + 0x46, 0x73, 0xe0, 0xfc, 0x2b, 0x50, 0xda, 0xec, 0x15, 0x78, 0x06, 0x80, 0x83, 0x9d, 0x1d, 0x6c, + 0x98, 0xf5, 0x0d, 0x8d, 0x4e, 0x6a, 0x54, 0x56, 0x2e, 0x2a, 0x9b, 0x97, 0x8b, 0x47, 0x70, 0x53, + 0x04, 0x76, 0x24, 0x66, 0xa1, 0xb4, 0xdc, 0x98, 0xab, 0x09, 0x71, 0x31, 0xbf, 0x91, 0x94, 0xd7, + 0xd7, 0xac, 0x63, 0x61, 0xd8, 0xb0, 0xa5, 0x46, 0x13, 0x4c, 0x0c, 0x35, 0xc6, 0xe8, 0xd1, 0x46, + 0xcd, 0x24, 0x0f, 0xa0, 0xb4, 0x51, 0x8d, 0x2c, 0x49, 0x81, 0xee, 0x76, 0xc2, 0x40, 0xb2, 0x40, + 0xea, 0x61, 0x33, 0x25, 0x8d, 0x7f, 0x15, 0x81, 0x8c, 0x75, 0x85, 0xc4, 0x46, 0x3d, 0x19, 0x83, + 0xd1, 0x9e, 0xf9, 0x3f, 0x35, 0xae, 0xda, 0x53, 0xff, 0xfb, 0xb1, 0x18, 0x68, 0x3f, 0x86, 0x2d, + 0x35, 0x69, 0xea, 0x2f, 0xba, 0xb9, 0xe6, 0x7d, 0x63, 0x47, 0x05, 0x9a, 0x80, 0x48, 0x0f, 0x6a, + 0x3c, 0x19, 0xbe, 0xb4, 0xe9, 0x6f, 0xad, 0x1f, 0xcd, 0x8e, 0x0a, 0x34, 0x05, 0xe2, 0x09, 0x6a, + 0xcc, 0xd4, 0x36, 0x5f, 0x3d, 0x41, 0x59, 0x0a, 0x4f, 0x50, 0xa0, 0x83, 0x06, 0xd4, 0xe6, 0x4c, + 0x08, 0x7b, 0xca, 0x8c, 0x6f, 0x4a, 0xd0, 0x3a, 0xf4, 0x3d, 0x16, 0xc8, 0x89, 0x37, 0x0d, 0x6c, + 0xff, 0xff, 0xb8, 0xdd, 0xe7, 0x50, 0x15, 0x4a, 0x56, 0x97, 0x97, 0x2b, 0x8d, 0x78, 0x4e, 0xfd, + 0x5e, 0xf2, 0x43, 0xb5, 0x04, 0x79, 0x01, 0x4d, 0x35, 0xaa, 0x8b, 0x30, 0xe6, 0x4e, 0xda, 0xd1, + 0x7c, 0x74, 0x9d, 0x02, 0x74, 0xc4, 0x44, 0xa1, 0x29, 0xb8, 0xd9, 0x3a, 0xef, 0xc5, 0xca, 0xb2, + 0x17, 0x7f, 0x0d, 0x55, 0x7d, 0xb5, 0x6d, 0x68, 0x4c, 0x06, 0xa3, 0xbe, 0xd5, 0xdf, 0x37, 0xf7, + 0xdb, 0x05, 0x72, 0x0b, 0xc8, 0x78, 0xff, 0x74, 0x32, 0xb0, 0xc6, 0xa7, 0x93, 0x23, 0x6b, 0x70, + 0x3c, 0x34, 0x4d, 0x35, 0x85, 0x76, 0xe0, 0xe6, 0xe9, 0x68, 0x0d, 0xa7, 0x44, 0x08, 0xec, 0x1c, + 0x9e, 0x8c, 0x7e, 0x3e, 0x7c, 0x91, 0xed, 0x81, 0x71, 0x0f, 0x60, 0xf1, 0x49, 0xa4, 0x01, 0x5b, + 0x13, 0x13, 0x8b, 0x9a, 0x2a, 0x7f, 0xf4, 0x74, 0xa4, 0xe6, 0xd9, 0xe2, 0x83, 0xc1, 0xda, 0x0a, + 0x09, 0x50, 0x3d, 0x7c, 0x75, 0x32, 0x19, 0xf4, 0xdb, 0x45, 0x84, 0x9f, 0x8c, 0x07, 0x23, 0xac, + 0x96, 0x25, 0x24, 0x90, 0x81, 0x44, 0x19, 0x75, 0x0e, 0x28, 0x3d, 0xa1, 0xed, 0xca, 0x83, 0x7b, + 0x50, 0xc1, 0xf6, 0x0e, 0x6f, 0x32, 0x1c, 0x0d, 0xcd, 0xe1, 0xbe, 0x79, 0x42, 0xdb, 0x05, 0x24, + 0xe9, 0x60, 0x32, 0x3e, 0x19, 0xf5, 0xf1, 0x02, 0x07, 0x9d, 0xbf, 0xbf, 0xdd, 0x2d, 0x7e, 0xfd, + 0x76, 0xb7, 0xf8, 0xcf, 0xb7, 0xbb, 0xc5, 0x3f, 0xbe, 0xdb, 0x2d, 0x7c, 0xfd, 0x6e, 0xb7, 0xf0, + 0x8f, 0x77, 0xbb, 0x85, 0xb3, 0xaa, 0xca, 0x81, 0x27, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x1a, + 0xd0, 0xc7, 0x1b, 0xe8, 0x13, 0x00, 0x00, } func (m *Version) Marshal() (dAtA []byte, err error) { @@ -2690,6 +2709,16 @@ func (m *Runtime_EventProperty) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.HasMultiple { + i-- + if m.HasMultiple { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } if m.Type != 0 { i = encodeVarintIntrospection(dAtA, i, uint64(m.Type)) i-- @@ -3450,6 +3479,11 @@ func (m *DHT_Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Beta != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Beta)) + i-- + dAtA[i] = 0x20 + } if m.DisjointPaths != 0 { i = encodeVarintIntrospection(dAtA, i, uint64(m.DisjointPaths)) i-- @@ -3542,8 +3576,8 @@ func (m *DHT_Bucket) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x12 } } - if m.Distance != 0 { - i = encodeVarintIntrospection(dAtA, i, uint64(m.Distance)) + if m.Cpl != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Cpl)) i-- dAtA[i] = 0x8 } @@ -4088,6 +4122,9 @@ func (m *Runtime_EventProperty) Size() (n int) { if m.Type != 0 { n += 1 + sovIntrospection(uint64(m.Type)) } + if m.HasMultiple { + n += 2 + } return n } @@ -4417,6 +4454,9 @@ func (m *DHT_Params) Size() (n int) { if m.DisjointPaths != 0 { n += 1 + sovIntrospection(uint64(m.DisjointPaths)) } + if m.Beta != 0 { + n += 1 + sovIntrospection(uint64(m.Beta)) + } return n } @@ -4445,8 +4485,8 @@ func (m *DHT_Bucket) Size() (n int) { } var l int _ = l - if m.Distance != 0 { - n += 1 + sovIntrospection(uint64(m.Distance)) + if m.Cpl != 0 { + n += 1 + sovIntrospection(uint64(m.Cpl)) } if len(m.Peers) > 0 { for _, e := range m.Peers { @@ -5611,6 +5651,26 @@ func (m *Runtime_EventProperty) Unmarshal(dAtA []byte) error { break } } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HasMultiple", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.HasMultiple = bool(v != 0) default: iNdEx = preIndex skippy, err := skipIntrospection(dAtA[iNdEx:]) @@ -7695,6 +7755,25 @@ func (m *DHT_Params) Unmarshal(dAtA []byte) error { break } } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Beta", wireType) + } + m.Beta = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Beta |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipIntrospection(dAtA[iNdEx:]) @@ -7873,9 +7952,9 @@ func (m *DHT_Bucket) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Distance", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Cpl", wireType) } - m.Distance = 0 + m.Cpl = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -7885,7 +7964,7 @@ func (m *DHT_Bucket) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Distance |= uint32(b&0x7F) << shift + m.Cpl |= uint32(b&0x7F) << shift if b < 0x80 { break } diff --git a/introspection/pb/introspection.proto b/introspection/pb/introspection.proto index 82f52767..5de55491 100644 --- a/introspection/pb/introspection.proto +++ b/introspection/pb/introspection.proto @@ -55,27 +55,31 @@ message DataGauge { message Runtime { // metadata about types of event data being sent message EventType { - // Name of event type e.g. PeerConnecting - string name = 1; - repeated EventProperty properties = 2; + // Name of event type e.g. PeerConnecting + string name = 1; + repeated EventProperty properties = 2; } // metadata about content types in event's key:value content field message EventProperty { - // tell listener how to sort, filter or display known content properties - enum PropertyType { - // treat as a simple primitive - STRING = 0; // default - NUMBER = 2; - // apply human-readable formatting - TIME = 10; - PEERID = 11; - // embedded arrays and/or object trees - JSON = 90; - } - // property name of content e.g. openTs - string name = 1; - PropertyType type = 2; + // tell listener how to sort, filter or display known content properties + enum PropertyType { + // treat as a simple primitive + STRING = 0; // default + NUMBER = 1; + // apply human-readable formatting + TIME = 10; + PEERID = 11; + MULTIADDR = 12; + // embedded arrays and/or object trees + JSON = 90; + } + // property name of content e.g. openTs + string name = 1; + // type to interpret content value as + PropertyType type = 2; + // if true, expect an array of values of type + bool has_multiple = 3; } // e.g. go-libp2p, js-libp2p, rust-libp2p, etc. @@ -236,91 +240,95 @@ message Stream { // DHT metrics and state. message DHT { - message Params { - // maximum number of requests to perform. - uint64 k = 1; - // concurrency of asynchronous requests. - uint64 alpha = 2; - // number of disjoint paths to use. - uint64 disjoint_paths = 3; - } - - // Peer in DHT - message PeerInDHT { - // The DHT's relationship with this peer - enum Status { - // Connected, in a bucket, ready to send/receive queries - ACTIVE = 0; - // Not currently connected, still "in" a bucket (e.g. temporarily disconnected) - MISSING = 1; - // Removed from a bucket or candidate list (e.g. connection lost or too slow) - REJECTED = 2; - // Was reachable when last checked, waiting to join a currently-full bucket - CANDIDATE = 3; + message Params { + // routing table bucket size. + uint64 k = 1; + // concurrency of asynchronous requests. + uint64 alpha = 2; + // number of disjoint paths to use. + uint64 disjoint_paths = 3; + // number of peers closest to a target that must have responded + // in order for a given query path to complete + uint64 beta = 4; + } + + // Peer in DHT + message PeerInDHT { + // The DHT's relationship with this peer + enum Status { + // Connected, in a bucket, ready to send/receive queries + ACTIVE = 0; + // Not currently connected, still "in" a bucket (e.g. temporarily disconnected) + MISSING = 1; + // Removed from a bucket or candidate list (e.g. connection lost or too slow) + REJECTED = 2; + // Was reachable when last checked, waiting to join a currently-full bucket + CANDIDATE = 3; + } + // the peer id of the host system + string peer_id = 1; + // the peer's status when data snapshot is taken + Status status = 2; + // age in bucket (ms) + uint32 age_in_bucket = 3; + } + + // A "k-bucket" containing peers of a certain kadamelia distance + message Bucket { + // CPL (Common Prefix Length) is the length of the common prefix + // between the ids of every peer in this bucket and the DHT peer id + uint32 cpl = 1; + // Peers associated with this bucket + repeated PeerInDHT peers = 2; + // Bucket may need more fields depending on WIP remodeling + } + + // Counters of query events, by status + message QueryGauge { + // Cumulative counter of queries with "SUCCESS" status + uint64 success = 1; + // Cumulative counter of queries with "ERROR" status + uint64 error = 2; + // Cumulative counter of queries with "TIMEOUT" status + uint64 timeout = 3; } - // the peer id of the host system - string peer_id = 1; - // the peer's status when data snapshot is taken - Status status = 2; - // age in bucket (ms) - uint32 age_in_bucket = 3; - } - - // A "k-bucket" containing peers of a certain kadamelia distance - message Bucket { - // Contains peers of this distance; or, 0 is "catch-all" bucket - uint32 distance = 1; - // Peers associated with this bucket - repeated PeerInDHT peers = 2; - // Bucket may need more fields depending on WIP remodeling - } - - // Counters of query events, by status - message QueryGauge { - // Cumulative counter of queries with "SUCCESS" status - uint64 success = 1; - // Cumulative counter of queries with "ERROR" status - uint64 error = 2; - // Cumulative counter of queries with "TIMEOUT" status - uint64 timeout = 3; - } - - // DHT protocol name - string protocol = 1; - // protocol enabled. - bool enabled = 2; - // timestap of start up. - google.protobuf.Timestamp start_ts = 3; - // params of the dht. - Params params = 4; - // existing, intantiated buckets and their contents - repeated Bucket buckets = 5; - // counts inbound queries received from other peers - QueryGauge incoming_queries = 6; - // counts outbound queries dispatched by this peer - QueryGauge outgoing_queries = 7; + + // DHT protocol name + string protocol = 1; + // protocol enabled. + bool enabled = 2; + // timestap of start up. + google.protobuf.Timestamp start_ts = 3; + // params of the dht. + Params params = 4; + // existing, intantiated buckets and their contents + repeated Bucket buckets = 5; + // counts inbound queries received from other peers + QueryGauge incoming_queries = 6; + // counts outbound queries dispatched by this peer + QueryGauge outgoing_queries = 7; } // Subsystems encapsulates all instrumented subsystems for a libp2p host. message Subsystems { - // connections data, source agnostic but currently only supports the Swarm subsystem - repeated Connection connections = 1; - // the DHT subsystem. - DHT dht = 2; + // connections data, source agnostic but currently only supports the Swarm subsystem + repeated Connection connections = 1; + // the DHT subsystem. + DHT dht = 2; } // Connections and streams output for a time interval is one of these. message State { - // list of connections - Subsystems subsystems = 1; - // overall traffic for this peer - Traffic traffic = 2; - // moment this data snapshot and instantaneous values were taken - google.protobuf.Timestamp instant_ts = 3; - // start of included data collection (cumulative values counted from here) - google.protobuf.Timestamp start_ts = 4; - // length of time up to instant_ts covered by this data snapshot - uint32 snapshot_duration_ms = 5; + // list of connections + Subsystems subsystems = 1; + // overall traffic for this peer + Traffic traffic = 2; + // moment this data snapshot and instantaneous values were taken + google.protobuf.Timestamp instant_ts = 3; + // start of included data collection (cumulative values counted from here) + google.protobuf.Timestamp start_ts = 4; + // length of time up to instant_ts covered by this data snapshot + uint32 snapshot_duration_ms = 5; } // Event @@ -333,45 +341,43 @@ message Event { // ProtocolDataPacket wraps messages to be sent to clients to allow extension // based on new types of data sources message ProtocolDataPacket { - // Version of this protobuf - Version version = 1; - // The Message this contains - oneof message { - State state = 2; - Runtime runtime = 3; - Event event = 4; - } + // Version of this protobuf + Version version = 1; + // The Message this contains + oneof message { + State state = 2; + Runtime runtime = 3; + Event event = 4; + } } // ClientSignal is a type of message to be sent from clients to the server to signal // within the operation of the protocol message ClientSignal { - // The signal to be sent to the server - enum Signal { - // SEND_DATA is used for pull-based data emitters - SEND_DATA = 0; - // START_PUSH_EMITTER, STOP_PUSH_EMITTER, PAUSE_PUSH_EMITTER & UNPAUSE_PUSH_EMITTER - // are all used in the operation of push-based data emitters - START_PUSH_EMITTER = 1; - STOP_PUSH_EMITTER = 2; - PAUSE_PUSH_EMITTER = 3; - UNPAUSE_PUSH_EMITTER = 4; - - CONFIG_EMITTER = 10; - } - - // The source the data is expected to come from - enum DataSource { - STATE = 0; // A full state snapshot - RUNTIME = 1; // A runtime data message - } - - // Version of this protobuf - Version version = 1; - // Signal to be sent - Signal signal = 2; - // Correlated DataSource for this signal (if any) - DataSource data_source = 3; - // Optional: JSON stringified content to be sent to the emitter - string content = 4; + // The signal to be sent to the server + enum Signal { + // SEND_DATA with `data_source` requests messages from pull-based data emitters + SEND_DATA = 0; + // PAUSE_ & UNPAUSE_PUSH_EMITTER allows control of push-based data emitters + PAUSE_PUSH_EMITTER = 1; + UNPAUSE_PUSH_EMITTER = 2; + + // CONFIG_EMITTER with `content` sends a JSON object of settings to the emitter + CONFIG_EMITTER = 10; + } + + // The source the data is expected to come from + enum DataSource { + STATE = 0; // A full state snapshot + RUNTIME = 1; // A runtime data message + } + + // Version of this protobuf + Version version = 1; + // Signal to be sent + Signal signal = 2; + // Correlated DataSource for this signal (if any) + DataSource data_source = 3; + // Optional: JSON stringified content to be sent to the emitter + string content = 4; } \ No newline at end of file From 8fb76f42df5015dda050025a8b578f061967db02 Mon Sep 17 00:00:00 2001 From: Aarsh Shah Date: Wed, 15 Apr 2020 12:46:19 +0530 Subject: [PATCH 09/19] event bus should return all types --- event/bus.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/event/bus.go b/event/bus.go index 9dcf9378..d7f15adf 100644 --- a/event/bus.go +++ b/event/bus.go @@ -1,6 +1,9 @@ package event -import "io" +import ( + "io" + "reflect" +) // SubscriptionOpt represents a subscriber option. Use the options exposed by the implementation of choice. type SubscriptionOpt = func(interface{}) error @@ -71,4 +74,11 @@ type Bus interface { // defer em.Close() // MUST call this after being done with the emitter // em.Emit(EventT{}) Emitter(eventType interface{}, opts ...EmitterOpt) (Emitter, error) + + // GetAllEventTypes returns all the event types that this bus + // has Emitters or Subscribers for. + // The caller is guaranteed that this function will ONLY return non pointer types i.e. + // the results of calling reflect.Type.Elem() on the pointer types passed + // to both `Bus.Emitter` AND `Bus.Subscribe`. + GetAllEventTypes() []reflect.Type } From 9126769533e2d8e22aeaf8c55702d5e12506a14b Mon Sep 17 00:00:00 2001 From: Aarsh Shah Date: Wed, 15 Apr 2020 21:12:18 +0530 Subject: [PATCH 10/19] wild card subs --- event/bus.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/event/bus.go b/event/bus.go index d7f15adf..3dd103bf 100644 --- a/event/bus.go +++ b/event/bus.go @@ -14,6 +14,10 @@ type EmitterOpt = func(interface{}) error // CancelFunc closes a subscriber. type CancelFunc = func() +// WildcardSubscriptionType is the `eventType` clients of the eventbus should use +// in the call to `Bus.Subscribe` if they want to subscribe to ALL events emitted by the eventbus. +var WildcardSubscriptionType = reflect.TypeOf(new(interface{})) + // Emitter represents an actor that emits events onto the eventbus. type Emitter interface { io.Closer @@ -42,6 +46,9 @@ type Bus interface { // // Failing to drain the channel may cause publishers to block. // + // If you want to subscribe to ALL events emitted by the bus, please use `WildcardSubscriptionType` + // as the `eventType` in this call i.e. `eventbus.Subscribe(WildcardSubscriptionType)` + // // Simple example // // sub, err := eventbus.Subscribe(new(EventType)) From 0a7a9856715c5e705a50278d214785f7c197d61b Mon Sep 17 00:00:00 2001 From: Aarsh Shah Date: Thu, 16 Apr 2020 22:32:47 +0530 Subject: [PATCH 11/19] changes for introspection --- event/bus.go | 2 +- introspection/pb/introspection.pb.go | 1342 +++++++++++++------------- introspection/pb/introspection.proto | 44 +- 3 files changed, 703 insertions(+), 685 deletions(-) diff --git a/event/bus.go b/event/bus.go index 3dd103bf..7ee181e8 100644 --- a/event/bus.go +++ b/event/bus.go @@ -16,7 +16,7 @@ type CancelFunc = func() // WildcardSubscriptionType is the `eventType` clients of the eventbus should use // in the call to `Bus.Subscribe` if they want to subscribe to ALL events emitted by the eventbus. -var WildcardSubscriptionType = reflect.TypeOf(new(interface{})) +var WildcardSubscriptionType = new(interface{}) // Emitter represents an actor that emits events onto the eventbus. type Emitter interface { diff --git a/introspection/pb/introspection.pb.go b/introspection/pb/introspection.pb.go index 830d6fc8..ff4729ac 100644 --- a/introspection/pb/introspection.pb.go +++ b/introspection/pb/introspection.pb.go @@ -84,22 +84,22 @@ func (Role) EnumDescriptor() ([]byte, []int) { return fileDescriptor_53a8bedf9a75e10a, []int{1} } -// tell listener how to sort, filter or display known content properties -type Runtime_EventProperty_PropertyType int32 +// tells client how to sort, filter or display known content properties +type EventType_EventProperty_PropertyType int32 const ( - // treat as a simple primitive - Runtime_EventProperty_STRING Runtime_EventProperty_PropertyType = 0 - Runtime_EventProperty_NUMBER Runtime_EventProperty_PropertyType = 1 - // apply human-readable formatting - Runtime_EventProperty_TIME Runtime_EventProperty_PropertyType = 10 - Runtime_EventProperty_PEERID Runtime_EventProperty_PropertyType = 11 - Runtime_EventProperty_MULTIADDR Runtime_EventProperty_PropertyType = 12 - // embedded arrays and/or object trees - Runtime_EventProperty_JSON Runtime_EventProperty_PropertyType = 90 + // for properties to treat as a simple primitive + EventType_EventProperty_STRING EventType_EventProperty_PropertyType = 0 + EventType_EventProperty_NUMBER EventType_EventProperty_PropertyType = 1 + // for properties with special human-readable formatting + EventType_EventProperty_TIME EventType_EventProperty_PropertyType = 10 + EventType_EventProperty_PEERID EventType_EventProperty_PropertyType = 11 + EventType_EventProperty_MULTIADDR EventType_EventProperty_PropertyType = 12 + // for complex structures like nested arrays, object trees etc + EventType_EventProperty_JSON EventType_EventProperty_PropertyType = 90 ) -var Runtime_EventProperty_PropertyType_name = map[int32]string{ +var EventType_EventProperty_PropertyType_name = map[int32]string{ 0: "STRING", 1: "NUMBER", 10: "TIME", @@ -108,7 +108,7 @@ var Runtime_EventProperty_PropertyType_name = map[int32]string{ 90: "JSON", } -var Runtime_EventProperty_PropertyType_value = map[string]int32{ +var EventType_EventProperty_PropertyType_value = map[string]int32{ "STRING": 0, "NUMBER": 1, "TIME": 10, @@ -117,12 +117,12 @@ var Runtime_EventProperty_PropertyType_value = map[string]int32{ "JSON": 90, } -func (x Runtime_EventProperty_PropertyType) String() string { - return proto.EnumName(Runtime_EventProperty_PropertyType_name, int32(x)) +func (x EventType_EventProperty_PropertyType) String() string { + return proto.EnumName(EventType_EventProperty_PropertyType_name, int32(x)) } -func (Runtime_EventProperty_PropertyType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{4, 1, 0} +func (EventType_EventProperty_PropertyType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{4, 0, 0} } // The DHT's relationship with this peer @@ -158,7 +158,7 @@ func (x DHT_PeerInDHT_Status) String() string { } func (DHT_PeerInDHT_Status) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{10, 1, 0} + return fileDescriptor_53a8bedf9a75e10a, []int{11, 1, 0} } // The signal to be sent to the server @@ -193,7 +193,7 @@ func (x ClientSignal_Signal) String() string { } func (ClientSignal_Signal) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{15, 0} + return fileDescriptor_53a8bedf9a75e10a, []int{16, 0} } // The source the data is expected to come from @@ -219,7 +219,7 @@ func (x ClientSignal_DataSource) String() string { } func (ClientSignal_DataSource) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{15, 1} + return fileDescriptor_53a8bedf9a75e10a, []int{16, 1} } // Version of schema @@ -520,36 +520,27 @@ func (m *DataGauge) GetInstBw() uint64 { return 0 } -// Runtime encapsulates runtime info about a node. -type Runtime struct { - // e.g. go-libp2p, js-libp2p, rust-libp2p, etc. - Implementation string `protobuf:"bytes,1,opt,name=implementation,proto3" json:"implementation,omitempty"` - // e.g. 1.2.3. - Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` - // e.g. Windows, Unix, macOS, Chrome, Mozilla, etc. - Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform,omitempty"` - // our peer id - the peer id of the host system - PeerId string `protobuf:"bytes,4,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` - // length of time to keep stale data - KeepStaleDataMs uint32 `protobuf:"varint,5,opt,name=keep_stale_data_ms,json=keepStaleDataMs,proto3" json:"keep_stale_data_ms,omitempty"` - // frequency to send new states - SendStateIntervalMs uint32 `protobuf:"varint,6,opt,name=send_state_interval_ms,json=sendStateIntervalMs,proto3" json:"send_state_interval_ms,omitempty"` - // metadata describing configured event types - EventTypes []*Runtime_EventType `protobuf:"bytes,7,rep,name=event_types,json=eventTypes,proto3" json:"event_types,omitempty"` +// describes a type of event +type EventType struct { + // name of event type, e.g. PeerConnecting + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // for runtime, send property_types for all events already seen in events list + // for events, only send property_types in the first event of a type not in runtime + PropertyTypes []*EventType_EventProperty `protobuf:"bytes,2,rep,name=property_types,json=propertyTypes,proto3" json:"property_types,omitempty"` } -func (m *Runtime) Reset() { *m = Runtime{} } -func (m *Runtime) String() string { return proto.CompactTextString(m) } -func (*Runtime) ProtoMessage() {} -func (*Runtime) Descriptor() ([]byte, []int) { +func (m *EventType) Reset() { *m = EventType{} } +func (m *EventType) String() string { return proto.CompactTextString(m) } +func (*EventType) ProtoMessage() {} +func (*EventType) Descriptor() ([]byte, []int) { return fileDescriptor_53a8bedf9a75e10a, []int{4} } -func (m *Runtime) XXX_Unmarshal(b []byte) error { +func (m *EventType) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *Runtime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *EventType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_Runtime.Marshal(b, m, deterministic) + return xxx_messageInfo_EventType.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -559,86 +550,54 @@ func (m *Runtime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return b[:n], nil } } -func (m *Runtime) XXX_Merge(src proto.Message) { - xxx_messageInfo_Runtime.Merge(m, src) +func (m *EventType) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventType.Merge(m, src) } -func (m *Runtime) XXX_Size() int { +func (m *EventType) XXX_Size() int { return m.Size() } -func (m *Runtime) XXX_DiscardUnknown() { - xxx_messageInfo_Runtime.DiscardUnknown(m) -} - -var xxx_messageInfo_Runtime proto.InternalMessageInfo - -func (m *Runtime) GetImplementation() string { - if m != nil { - return m.Implementation - } - return "" -} - -func (m *Runtime) GetVersion() string { - if m != nil { - return m.Version - } - return "" +func (m *EventType) XXX_DiscardUnknown() { + xxx_messageInfo_EventType.DiscardUnknown(m) } -func (m *Runtime) GetPlatform() string { - if m != nil { - return m.Platform - } - return "" -} +var xxx_messageInfo_EventType proto.InternalMessageInfo -func (m *Runtime) GetPeerId() string { +func (m *EventType) GetName() string { if m != nil { - return m.PeerId + return m.Name } return "" } -func (m *Runtime) GetKeepStaleDataMs() uint32 { - if m != nil { - return m.KeepStaleDataMs - } - return 0 -} - -func (m *Runtime) GetSendStateIntervalMs() uint32 { - if m != nil { - return m.SendStateIntervalMs - } - return 0 -} - -func (m *Runtime) GetEventTypes() []*Runtime_EventType { +func (m *EventType) GetPropertyTypes() []*EventType_EventProperty { if m != nil { - return m.EventTypes + return m.PropertyTypes } return nil } -// metadata about types of event data being sent -type Runtime_EventType struct { - // Name of event type e.g. PeerConnecting - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Properties []*Runtime_EventProperty `protobuf:"bytes,2,rep,name=properties,proto3" json:"properties,omitempty"` +// metadata about content types in event's top-level content JSON +type EventType_EventProperty struct { + // property name of content e.g. openTs + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // type to interpret content value as + Type EventType_EventProperty_PropertyType `protobuf:"varint,2,opt,name=type,proto3,enum=introspection.EventType_EventProperty_PropertyType" json:"type,omitempty"` + // if true, expect an array of values of `type`; else, singular + HasMultiple bool `protobuf:"varint,3,opt,name=has_multiple,json=hasMultiple,proto3" json:"has_multiple,omitempty"` } -func (m *Runtime_EventType) Reset() { *m = Runtime_EventType{} } -func (m *Runtime_EventType) String() string { return proto.CompactTextString(m) } -func (*Runtime_EventType) ProtoMessage() {} -func (*Runtime_EventType) Descriptor() ([]byte, []int) { +func (m *EventType_EventProperty) Reset() { *m = EventType_EventProperty{} } +func (m *EventType_EventProperty) String() string { return proto.CompactTextString(m) } +func (*EventType_EventProperty) ProtoMessage() {} +func (*EventType_EventProperty) Descriptor() ([]byte, []int) { return fileDescriptor_53a8bedf9a75e10a, []int{4, 0} } -func (m *Runtime_EventType) XXX_Unmarshal(b []byte) error { +func (m *EventType_EventProperty) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *Runtime_EventType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *EventType_EventProperty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_Runtime_EventType.Marshal(b, m, deterministic) + return xxx_messageInfo_EventType_EventProperty.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -648,54 +607,69 @@ func (m *Runtime_EventType) XXX_Marshal(b []byte, deterministic bool) ([]byte, e return b[:n], nil } } -func (m *Runtime_EventType) XXX_Merge(src proto.Message) { - xxx_messageInfo_Runtime_EventType.Merge(m, src) +func (m *EventType_EventProperty) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventType_EventProperty.Merge(m, src) } -func (m *Runtime_EventType) XXX_Size() int { +func (m *EventType_EventProperty) XXX_Size() int { return m.Size() } -func (m *Runtime_EventType) XXX_DiscardUnknown() { - xxx_messageInfo_Runtime_EventType.DiscardUnknown(m) +func (m *EventType_EventProperty) XXX_DiscardUnknown() { + xxx_messageInfo_EventType_EventProperty.DiscardUnknown(m) } -var xxx_messageInfo_Runtime_EventType proto.InternalMessageInfo +var xxx_messageInfo_EventType_EventProperty proto.InternalMessageInfo -func (m *Runtime_EventType) GetName() string { +func (m *EventType_EventProperty) GetName() string { if m != nil { return m.Name } return "" } -func (m *Runtime_EventType) GetProperties() []*Runtime_EventProperty { +func (m *EventType_EventProperty) GetType() EventType_EventProperty_PropertyType { if m != nil { - return m.Properties + return m.Type } - return nil + return EventType_EventProperty_STRING } -// metadata about content types in event's key:value content field -type Runtime_EventProperty struct { - // property name of content e.g. openTs - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // type to interpret content value as - Type Runtime_EventProperty_PropertyType `protobuf:"varint,2,opt,name=type,proto3,enum=introspection.Runtime_EventProperty_PropertyType" json:"type,omitempty"` - // if true, expect an array of values of type - HasMultiple bool `protobuf:"varint,3,opt,name=has_multiple,json=hasMultiple,proto3" json:"has_multiple,omitempty"` +func (m *EventType_EventProperty) GetHasMultiple() bool { + if m != nil { + return m.HasMultiple + } + return false +} + +// Runtime encapsulates runtime info about a node. +type Runtime struct { + // e.g. go-libp2p, js-libp2p, rust-libp2p, etc. + Implementation string `protobuf:"bytes,1,opt,name=implementation,proto3" json:"implementation,omitempty"` + // e.g. 1.2.3. + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + // e.g. Windows, Unix, macOS, Chrome, Mozilla, etc. + Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform,omitempty"` + // our peer id - the peer id of the host system + PeerId string `protobuf:"bytes,4,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + // length of time to keep stale data + KeepStaleDataMs uint32 `protobuf:"varint,5,opt,name=keep_stale_data_ms,json=keepStaleDataMs,proto3" json:"keep_stale_data_ms,omitempty"` + // frequency to send new states + SendStateIntervalMs uint32 `protobuf:"varint,6,opt,name=send_state_interval_ms,json=sendStateIntervalMs,proto3" json:"send_state_interval_ms,omitempty"` + // metadata describing configured event types + EventTypes []*EventType `protobuf:"bytes,7,rep,name=event_types,json=eventTypes,proto3" json:"event_types,omitempty"` } -func (m *Runtime_EventProperty) Reset() { *m = Runtime_EventProperty{} } -func (m *Runtime_EventProperty) String() string { return proto.CompactTextString(m) } -func (*Runtime_EventProperty) ProtoMessage() {} -func (*Runtime_EventProperty) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{4, 1} +func (m *Runtime) Reset() { *m = Runtime{} } +func (m *Runtime) String() string { return proto.CompactTextString(m) } +func (*Runtime) ProtoMessage() {} +func (*Runtime) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{5} } -func (m *Runtime_EventProperty) XXX_Unmarshal(b []byte) error { +func (m *Runtime) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *Runtime_EventProperty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *Runtime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_Runtime_EventProperty.Marshal(b, m, deterministic) + return xxx_messageInfo_Runtime.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -705,37 +679,65 @@ func (m *Runtime_EventProperty) XXX_Marshal(b []byte, deterministic bool) ([]byt return b[:n], nil } } -func (m *Runtime_EventProperty) XXX_Merge(src proto.Message) { - xxx_messageInfo_Runtime_EventProperty.Merge(m, src) +func (m *Runtime) XXX_Merge(src proto.Message) { + xxx_messageInfo_Runtime.Merge(m, src) } -func (m *Runtime_EventProperty) XXX_Size() int { +func (m *Runtime) XXX_Size() int { return m.Size() } -func (m *Runtime_EventProperty) XXX_DiscardUnknown() { - xxx_messageInfo_Runtime_EventProperty.DiscardUnknown(m) +func (m *Runtime) XXX_DiscardUnknown() { + xxx_messageInfo_Runtime.DiscardUnknown(m) } -var xxx_messageInfo_Runtime_EventProperty proto.InternalMessageInfo +var xxx_messageInfo_Runtime proto.InternalMessageInfo -func (m *Runtime_EventProperty) GetName() string { +func (m *Runtime) GetImplementation() string { if m != nil { - return m.Name + return m.Implementation } return "" } -func (m *Runtime_EventProperty) GetType() Runtime_EventProperty_PropertyType { +func (m *Runtime) GetVersion() string { if m != nil { - return m.Type + return m.Version } - return Runtime_EventProperty_STRING + return "" } -func (m *Runtime_EventProperty) GetHasMultiple() bool { +func (m *Runtime) GetPlatform() string { if m != nil { - return m.HasMultiple + return m.Platform } - return false + return "" +} + +func (m *Runtime) GetPeerId() string { + if m != nil { + return m.PeerId + } + return "" +} + +func (m *Runtime) GetKeepStaleDataMs() uint32 { + if m != nil { + return m.KeepStaleDataMs + } + return 0 +} + +func (m *Runtime) GetSendStateIntervalMs() uint32 { + if m != nil { + return m.SendStateIntervalMs + } + return 0 +} + +func (m *Runtime) GetEventTypes() []*EventType { + if m != nil { + return m.EventTypes + } + return nil } // EndpointPair is a pair of multiaddrs. @@ -750,7 +752,7 @@ func (m *EndpointPair) Reset() { *m = EndpointPair{} } func (m *EndpointPair) String() string { return proto.CompactTextString(m) } func (*EndpointPair) ProtoMessage() {} func (*EndpointPair) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{5} + return fileDescriptor_53a8bedf9a75e10a, []int{6} } func (m *EndpointPair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -805,7 +807,7 @@ func (m *Traffic) Reset() { *m = Traffic{} } func (m *Traffic) String() string { return proto.CompactTextString(m) } func (*Traffic) ProtoMessage() {} func (*Traffic) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{6} + return fileDescriptor_53a8bedf9a75e10a, []int{7} } func (m *Traffic) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -863,7 +865,7 @@ func (m *StreamList) Reset() { *m = StreamList{} } func (m *StreamList) String() string { return proto.CompactTextString(m) } func (*StreamList) ProtoMessage() {} func (*StreamList) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{7} + return fileDescriptor_53a8bedf9a75e10a, []int{8} } func (m *StreamList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -946,7 +948,7 @@ func (m *Connection) Reset() { *m = Connection{} } func (m *Connection) String() string { return proto.CompactTextString(m) } func (*Connection) ProtoMessage() {} func (*Connection) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{8} + return fileDescriptor_53a8bedf9a75e10a, []int{9} } func (m *Connection) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1118,7 +1120,7 @@ func (m *Connection_Timeline) Reset() { *m = Connection_Timeline{} } func (m *Connection_Timeline) String() string { return proto.CompactTextString(m) } func (*Connection_Timeline) ProtoMessage() {} func (*Connection_Timeline) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{8, 0} + return fileDescriptor_53a8bedf9a75e10a, []int{9, 0} } func (m *Connection_Timeline) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1180,7 +1182,7 @@ func (m *Connection_Attributes) Reset() { *m = Connection_Attributes{} } func (m *Connection_Attributes) String() string { return proto.CompactTextString(m) } func (*Connection_Attributes) ProtoMessage() {} func (*Connection_Attributes) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{8, 1} + return fileDescriptor_53a8bedf9a75e10a, []int{9, 1} } func (m *Connection_Attributes) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1251,7 +1253,7 @@ func (m *Stream) Reset() { *m = Stream{} } func (m *Stream) String() string { return proto.CompactTextString(m) } func (*Stream) ProtoMessage() {} func (*Stream) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{9} + return fileDescriptor_53a8bedf9a75e10a, []int{10} } func (m *Stream) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1354,7 +1356,7 @@ func (m *Stream_ConnectionRef) Reset() { *m = Stream_ConnectionRef{} } func (m *Stream_ConnectionRef) String() string { return proto.CompactTextString(m) } func (*Stream_ConnectionRef) ProtoMessage() {} func (*Stream_ConnectionRef) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{9, 0} + return fileDescriptor_53a8bedf9a75e10a, []int{10, 0} } func (m *Stream_ConnectionRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1440,7 +1442,7 @@ func (m *Stream_Timeline) Reset() { *m = Stream_Timeline{} } func (m *Stream_Timeline) String() string { return proto.CompactTextString(m) } func (*Stream_Timeline) ProtoMessage() {} func (*Stream_Timeline) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{9, 1} + return fileDescriptor_53a8bedf9a75e10a, []int{10, 1} } func (m *Stream_Timeline) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1505,7 +1507,7 @@ func (m *DHT) Reset() { *m = DHT{} } func (m *DHT) String() string { return proto.CompactTextString(m) } func (*DHT) ProtoMessage() {} func (*DHT) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{10} + return fileDescriptor_53a8bedf9a75e10a, []int{11} } func (m *DHT) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1599,7 +1601,7 @@ func (m *DHT_Params) Reset() { *m = DHT_Params{} } func (m *DHT_Params) String() string { return proto.CompactTextString(m) } func (*DHT_Params) ProtoMessage() {} func (*DHT_Params) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{10, 0} + return fileDescriptor_53a8bedf9a75e10a, []int{11, 0} } func (m *DHT_Params) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1670,7 +1672,7 @@ func (m *DHT_PeerInDHT) Reset() { *m = DHT_PeerInDHT{} } func (m *DHT_PeerInDHT) String() string { return proto.CompactTextString(m) } func (*DHT_PeerInDHT) ProtoMessage() {} func (*DHT_PeerInDHT) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{10, 1} + return fileDescriptor_53a8bedf9a75e10a, []int{11, 1} } func (m *DHT_PeerInDHT) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1733,7 +1735,7 @@ func (m *DHT_Bucket) Reset() { *m = DHT_Bucket{} } func (m *DHT_Bucket) String() string { return proto.CompactTextString(m) } func (*DHT_Bucket) ProtoMessage() {} func (*DHT_Bucket) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{10, 2} + return fileDescriptor_53a8bedf9a75e10a, []int{11, 2} } func (m *DHT_Bucket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1790,7 +1792,7 @@ func (m *DHT_QueryGauge) Reset() { *m = DHT_QueryGauge{} } func (m *DHT_QueryGauge) String() string { return proto.CompactTextString(m) } func (*DHT_QueryGauge) ProtoMessage() {} func (*DHT_QueryGauge) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{10, 3} + return fileDescriptor_53a8bedf9a75e10a, []int{11, 3} } func (m *DHT_QueryGauge) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1852,7 +1854,7 @@ func (m *Subsystems) Reset() { *m = Subsystems{} } func (m *Subsystems) String() string { return proto.CompactTextString(m) } func (*Subsystems) ProtoMessage() {} func (*Subsystems) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{11} + return fileDescriptor_53a8bedf9a75e10a, []int{12} } func (m *Subsystems) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1913,7 +1915,7 @@ func (m *State) Reset() { *m = State{} } func (m *State) String() string { return proto.CompactTextString(m) } func (*State) ProtoMessage() {} func (*State) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{12} + return fileDescriptor_53a8bedf9a75e10a, []int{13} } func (m *State) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1979,16 +1981,19 @@ func (m *State) GetSnapshotDurationMs() uint32 { // Event type Event struct { - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - Ts *types.Timestamp `protobuf:"bytes,2,opt,name=ts,proto3" json:"ts,omitempty"` - Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` + // definition of event type, containing only `name` unless this is first encounter of novel event + Type *EventType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + // time this event occurred + Ts *types.Timestamp `protobuf:"bytes,2,opt,name=ts,proto3" json:"ts,omitempty"` + // stringified json; top-level keys and value types match EventProperty definitions + Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` } func (m *Event) Reset() { *m = Event{} } func (m *Event) String() string { return proto.CompactTextString(m) } func (*Event) ProtoMessage() {} func (*Event) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{13} + return fileDescriptor_53a8bedf9a75e10a, []int{14} } func (m *Event) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2017,11 +2022,11 @@ func (m *Event) XXX_DiscardUnknown() { var xxx_messageInfo_Event proto.InternalMessageInfo -func (m *Event) GetType() string { +func (m *Event) GetType() *EventType { if m != nil { return m.Type } - return "" + return nil } func (m *Event) GetTs() *types.Timestamp { @@ -2056,7 +2061,7 @@ func (m *ProtocolDataPacket) Reset() { *m = ProtocolDataPacket{} } func (m *ProtocolDataPacket) String() string { return proto.CompactTextString(m) } func (*ProtocolDataPacket) ProtoMessage() {} func (*ProtocolDataPacket) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{14} + return fileDescriptor_53a8bedf9a75e10a, []int{15} } func (m *ProtocolDataPacket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2166,7 +2171,7 @@ func (m *ClientSignal) Reset() { *m = ClientSignal{} } func (m *ClientSignal) String() string { return proto.CompactTextString(m) } func (*ClientSignal) ProtoMessage() {} func (*ClientSignal) Descriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{15} + return fileDescriptor_53a8bedf9a75e10a, []int{16} } func (m *ClientSignal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2226,7 +2231,7 @@ func (m *ClientSignal) GetContent() string { func init() { proto.RegisterEnum("introspection.Status", Status_name, Status_value) proto.RegisterEnum("introspection.Role", Role_name, Role_value) - proto.RegisterEnum("introspection.Runtime_EventProperty_PropertyType", Runtime_EventProperty_PropertyType_name, Runtime_EventProperty_PropertyType_value) + proto.RegisterEnum("introspection.EventType_EventProperty_PropertyType", EventType_EventProperty_PropertyType_name, EventType_EventProperty_PropertyType_value) proto.RegisterEnum("introspection.DHT_PeerInDHT_Status", DHT_PeerInDHT_Status_name, DHT_PeerInDHT_Status_value) proto.RegisterEnum("introspection.ClientSignal_Signal", ClientSignal_Signal_name, ClientSignal_Signal_value) proto.RegisterEnum("introspection.ClientSignal_DataSource", ClientSignal_DataSource_name, ClientSignal_DataSource_value) @@ -2234,9 +2239,9 @@ func init() { proto.RegisterType((*ResultCounter)(nil), "introspection.ResultCounter") proto.RegisterType((*SlidingCounter)(nil), "introspection.SlidingCounter") proto.RegisterType((*DataGauge)(nil), "introspection.DataGauge") + proto.RegisterType((*EventType)(nil), "introspection.EventType") + proto.RegisterType((*EventType_EventProperty)(nil), "introspection.EventType.EventProperty") proto.RegisterType((*Runtime)(nil), "introspection.Runtime") - proto.RegisterType((*Runtime_EventType)(nil), "introspection.Runtime.EventType") - proto.RegisterType((*Runtime_EventProperty)(nil), "introspection.Runtime.EventProperty") proto.RegisterType((*EndpointPair)(nil), "introspection.EndpointPair") proto.RegisterType((*Traffic)(nil), "introspection.Traffic") proto.RegisterType((*StreamList)(nil), "introspection.StreamList") @@ -2261,136 +2266,136 @@ func init() { func init() { proto.RegisterFile("introspection.proto", fileDescriptor_53a8bedf9a75e10a) } var fileDescriptor_53a8bedf9a75e10a = []byte{ - // 2055 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0x4f, 0x73, 0x1b, 0x49, - 0x15, 0xd7, 0x3f, 0xeb, 0xcf, 0x93, 0xec, 0x15, 0x9d, 0x10, 0x14, 0x2d, 0xeb, 0x0d, 0x93, 0xb0, - 0xa4, 0xc2, 0xe2, 0x24, 0xca, 0xa6, 0x76, 0xb3, 0x5b, 0x95, 0x2a, 0xdb, 0x12, 0xb1, 0x52, 0xb1, - 0xac, 0x6d, 0x8d, 0x53, 0x14, 0x05, 0x35, 0x35, 0x9e, 0xe9, 0x48, 0x83, 0x47, 0x33, 0x43, 0x77, - 0x8f, 0x17, 0x1f, 0x38, 0x73, 0xe5, 0xc8, 0x89, 0x2f, 0xc1, 0x67, 0xa0, 0xe0, 0xb8, 0x47, 0x8e, - 0x90, 0xec, 0x37, 0xe0, 0x0b, 0x50, 0xaf, 0xa7, 0x67, 0x34, 0x92, 0x85, 0xd1, 0xb2, 0x27, 0xf5, - 0xeb, 0xf7, 0x7b, 0xaf, 0xa7, 0xdf, 0xbf, 0x7e, 0x4f, 0x70, 0xc3, 0x0b, 0x24, 0x0f, 0x45, 0xc4, - 0x1c, 0xe9, 0x85, 0xc1, 0x5e, 0xc4, 0x43, 0x19, 0x92, 0xed, 0xa5, 0xcd, 0xee, 0x87, 0xd3, 0x30, - 0x9c, 0xfa, 0xec, 0xa1, 0x62, 0x9e, 0xc5, 0x6f, 0x1e, 0x4a, 0x6f, 0xce, 0x84, 0xb4, 0xe7, 0x51, - 0x82, 0x37, 0xee, 0x42, 0xed, 0x35, 0xe3, 0xc2, 0x0b, 0x03, 0xd2, 0x81, 0xda, 0x45, 0xb2, 0xec, - 0x14, 0xef, 0x14, 0xef, 0x6f, 0xd3, 0x94, 0x34, 0x5e, 0xc0, 0x36, 0x65, 0x22, 0xf6, 0xe5, 0x61, - 0x18, 0x07, 0x92, 0x71, 0x72, 0x13, 0xb6, 0x64, 0x28, 0x6d, 0x5f, 0x03, 0x13, 0x82, 0xec, 0x40, - 0x29, 0x3c, 0xef, 0x94, 0xd4, 0x56, 0x29, 0x3c, 0x27, 0x6d, 0x28, 0x33, 0xce, 0x3b, 0x65, 0xb5, - 0x81, 0x4b, 0xe3, 0xcf, 0x25, 0xd8, 0x99, 0xf8, 0x9e, 0xeb, 0x05, 0xd3, 0x54, 0xd5, 0x0f, 0xa0, - 0x16, 0x5e, 0x30, 0x6e, 0x3d, 0x9e, 0x6b, 0x65, 0x55, 0x24, 0x1f, 0xcf, 0x33, 0xc6, 0xd3, 0xb9, - 0x56, 0xa9, 0x18, 0x4f, 0xe7, 0xe4, 0x36, 0xd4, 0x13, 0x89, 0xa7, 0x73, 0xad, 0x5b, 0x01, 0x1f, - 0xe7, 0x58, 0x4f, 0x1e, 0xcd, 0x3b, 0x95, 0x05, 0xeb, 0xc9, 0xa3, 0x9c, 0xd4, 0x8c, 0x77, 0xb6, - 0x72, 0x52, 0x33, 0x9e, 0xb1, 0x7a, 0x33, 0xde, 0xa9, 0x2e, 0x58, 0xbd, 0x1c, 0xeb, 0x93, 0x19, - 0xef, 0xd4, 0x16, 0xac, 0x4f, 0x72, 0xac, 0xcf, 0x66, 0xbc, 0x53, 0x5f, 0xb0, 0x3e, 0x9b, 0x71, - 0xf2, 0x3e, 0x34, 0x92, 0xb3, 0x50, 0x63, 0x43, 0xf1, 0x14, 0x16, 0xe9, 0x8c, 0xd9, 0x43, 0x9d, - 0xb0, 0x60, 0x22, 0x6d, 0x9c, 0x41, 0xa3, 0x6f, 0x4b, 0xfb, 0x85, 0x1d, 0x4f, 0x19, 0x22, 0x9d, - 0x78, 0x6e, 0x9d, 0x5d, 0x4a, 0x26, 0x94, 0x71, 0x2a, 0xb4, 0xee, 0xc4, 0xf3, 0x03, 0xa4, 0xc9, - 0x87, 0xd0, 0x44, 0x66, 0x64, 0x3b, 0xe7, 0x4c, 0x0a, 0x65, 0xa2, 0x0a, 0x05, 0x27, 0x9e, 0x8f, - 0x93, 0x1d, 0xb4, 0x9f, 0x17, 0x08, 0x69, 0x9d, 0x7d, 0xa5, 0xac, 0x54, 0xa1, 0x55, 0x24, 0x0f, - 0xbe, 0x32, 0xfe, 0x5d, 0x81, 0x1a, 0x8d, 0x03, 0x8c, 0x04, 0xf2, 0x11, 0xec, 0x78, 0xf3, 0xc8, - 0x67, 0x73, 0x16, 0x48, 0x5b, 0xa6, 0xae, 0x6f, 0xd0, 0x95, 0xdd, 0x7c, 0x6c, 0x94, 0x14, 0x20, - 0x25, 0x49, 0x17, 0xea, 0x91, 0x6f, 0xcb, 0x37, 0x21, 0x4f, 0xbc, 0xd1, 0xa0, 0x19, 0x8d, 0x9f, - 0x10, 0x31, 0xc6, 0x2d, 0xcf, 0x55, 0xde, 0x68, 0xd0, 0x2a, 0x92, 0x43, 0x97, 0xfc, 0x14, 0xc8, - 0x39, 0x63, 0x91, 0x25, 0xa4, 0xed, 0x33, 0xcb, 0xb5, 0xa5, 0x6d, 0xcd, 0x85, 0x76, 0xcb, 0x7b, - 0xc8, 0x99, 0x20, 0x03, 0x2d, 0x71, 0x2c, 0xc8, 0x13, 0xb8, 0x25, 0x58, 0xe0, 0x22, 0x58, 0x32, - 0xcb, 0xc3, 0xa8, 0xb9, 0xb0, 0x7d, 0x14, 0x48, 0x9c, 0x75, 0x03, 0xb9, 0x13, 0x64, 0x0e, 0x35, - 0xef, 0x58, 0x90, 0x7d, 0x68, 0xb2, 0x0b, 0x16, 0x48, 0x4b, 0x5e, 0x46, 0x4c, 0x74, 0x6a, 0x77, - 0xca, 0xf7, 0x9b, 0xbd, 0x3b, 0x7b, 0xcb, 0x29, 0xa3, 0xad, 0xb0, 0x37, 0x40, 0xa4, 0x79, 0x19, - 0x31, 0x0a, 0x2c, 0x5d, 0x8a, 0x2e, 0x83, 0x46, 0xc6, 0x20, 0x04, 0x2a, 0x81, 0x3d, 0x67, 0xda, - 0x3c, 0x6a, 0x4d, 0xfa, 0x00, 0x11, 0x0f, 0x23, 0xc6, 0xa5, 0xc7, 0xd0, 0x03, 0x78, 0xc4, 0xbd, - 0xeb, 0x8e, 0x18, 0x27, 0xe8, 0x4b, 0x9a, 0x93, 0xeb, 0x7e, 0x53, 0x84, 0xed, 0x25, 0xee, 0xda, - 0xb3, 0x06, 0x50, 0xc1, 0x9b, 0x28, 0xeb, 0xef, 0xf4, 0x1e, 0x6f, 0x72, 0xca, 0x5e, 0xba, 0x50, - 0x37, 0x53, 0xe2, 0xe4, 0x47, 0xd0, 0x9a, 0xd9, 0xc2, 0x9a, 0xc7, 0xbe, 0xf4, 0x22, 0x9f, 0x29, - 0x8f, 0xd5, 0x69, 0x73, 0x66, 0x8b, 0x63, 0xbd, 0x65, 0x9c, 0x42, 0x2b, 0x2f, 0x48, 0x00, 0xaa, - 0x13, 0x93, 0x0e, 0x47, 0x2f, 0xda, 0x05, 0x5c, 0x8f, 0x4e, 0x8f, 0x0f, 0x06, 0xb4, 0x5d, 0x24, - 0x75, 0xa8, 0x98, 0xc3, 0xe3, 0x41, 0x1b, 0x70, 0x77, 0x3c, 0x18, 0xd0, 0x61, 0xbf, 0xdd, 0x24, - 0xdb, 0xd0, 0x38, 0x3e, 0x7d, 0x65, 0x0e, 0xf7, 0xfb, 0x7d, 0xda, 0x6e, 0x21, 0xe8, 0xe5, 0xe4, - 0x64, 0xd4, 0xfe, 0xa5, 0xf1, 0x0b, 0x68, 0x0d, 0x02, 0x37, 0x0a, 0xbd, 0x40, 0x8e, 0x6d, 0x8f, - 0x93, 0xbb, 0xb0, 0x2d, 0xb8, 0x93, 0x7c, 0x89, 0xed, 0xba, 0x5c, 0xdf, 0xb6, 0x25, 0xb8, 0x73, - 0x9c, 0xee, 0x21, 0xc8, 0x15, 0x32, 0x07, 0x4a, 0x82, 0xaf, 0xe5, 0x0a, 0x99, 0x81, 0x8c, 0xdf, - 0x43, 0xcd, 0xe4, 0xf6, 0x9b, 0x37, 0x9e, 0x43, 0x3e, 0x05, 0x90, 0xc9, 0xd2, 0xf2, 0x92, 0x50, - 0x6e, 0xf6, 0x3a, 0x2b, 0xb6, 0xca, 0xf2, 0x8b, 0x36, 0x34, 0x76, 0x18, 0x90, 0x67, 0xd0, 0x4c, - 0x05, 0xc3, 0x58, 0xaa, 0x63, 0xae, 0x93, 0x4c, 0x4f, 0x39, 0x89, 0xa5, 0xf1, 0x2b, 0x80, 0x89, - 0xe4, 0xcc, 0x9e, 0xbf, 0xf2, 0x84, 0x24, 0x1f, 0x00, 0x08, 0x45, 0x59, 0x9e, 0x8b, 0x49, 0x5b, - 0xbe, 0xdf, 0xa2, 0x8d, 0x64, 0x67, 0xe8, 0x0a, 0xf2, 0x10, 0x6a, 0x09, 0x91, 0xc6, 0xcb, 0xf7, - 0x57, 0xce, 0x48, 0x54, 0xd1, 0x14, 0x65, 0xfc, 0xa1, 0x06, 0x70, 0x18, 0x06, 0x41, 0xc2, 0xc6, - 0x12, 0xeb, 0xb9, 0xea, 0x62, 0x2d, 0x5a, 0xf2, 0xdc, 0x7c, 0x86, 0x95, 0x96, 0x32, 0xec, 0x67, - 0x50, 0xc5, 0x7c, 0x89, 0x85, 0x72, 0xf1, 0xce, 0x9a, 0x73, 0x90, 0x49, 0x35, 0x08, 0xe3, 0x42, - 0x72, 0x3b, 0x10, 0x51, 0xc8, 0x65, 0x9a, 0xae, 0x2d, 0xda, 0xcc, 0xf6, 0x86, 0x2e, 0x79, 0x06, - 0x0d, 0xa6, 0x1d, 0x98, 0xa4, 0x6a, 0xb3, 0xf7, 0xfe, 0x8a, 0xd2, 0xbc, 0x83, 0xe9, 0x02, 0x4d, - 0x9e, 0x43, 0x1d, 0xc3, 0xd3, 0xf7, 0x02, 0xa6, 0x72, 0xb6, 0xd9, 0x33, 0x56, 0x24, 0x17, 0x57, - 0xdc, 0x33, 0x35, 0x92, 0x66, 0x32, 0xe4, 0x27, 0x50, 0xe1, 0xa1, 0xcf, 0x54, 0x05, 0xde, 0xe9, - 0xdd, 0x58, 0x0d, 0xfe, 0xd0, 0x67, 0x54, 0x01, 0xc8, 0x23, 0xa8, 0x69, 0xcf, 0xa8, 0x92, 0xdc, - 0xec, 0xdd, 0x5a, 0xc1, 0xea, 0x40, 0xa1, 0x29, 0x8c, 0x3c, 0x87, 0x9a, 0x2d, 0x25, 0xf7, 0xce, - 0x84, 0x2a, 0xd4, 0x57, 0x13, 0x38, 0xf7, 0x65, 0xfb, 0x0a, 0x18, 0x4b, 0x26, 0x68, 0x2a, 0x84, - 0xfe, 0xf6, 0x6d, 0xc9, 0x02, 0xe7, 0xd2, 0x0a, 0x84, 0x2a, 0xe7, 0x15, 0xda, 0xd0, 0x3b, 0x23, - 0xac, 0x5d, 0x99, 0xbf, 0x9b, 0x4a, 0xfd, 0xed, 0xb5, 0xfe, 0xc6, 0xd0, 0xc9, 0x7c, 0x4e, 0x6e, - 0x43, 0xcd, 0x09, 0x83, 0x00, 0xfd, 0xd0, 0x46, 0x3f, 0x1c, 0x15, 0x68, 0x15, 0x37, 0x86, 0x2e, - 0x79, 0x08, 0x15, 0x5c, 0x75, 0xbe, 0xb7, 0x56, 0xd9, 0xe2, 0x5b, 0x8f, 0x0a, 0x54, 0x01, 0xc9, - 0xc7, 0x40, 0x62, 0xc1, 0xb8, 0x15, 0xf1, 0xf0, 0xc2, 0x73, 0x99, 0x6b, 0x49, 0x7b, 0x2a, 0x3a, - 0xce, 0x9d, 0xf2, 0xfd, 0x06, 0x6d, 0x23, 0x67, 0xac, 0x19, 0xa6, 0x3d, 0x15, 0xdd, 0xbf, 0x14, - 0xa1, 0x9e, 0xda, 0x1f, 0xbf, 0x3d, 0x8c, 0x58, 0x60, 0x49, 0xa1, 0x33, 0xa9, 0xbb, 0x97, 0x74, - 0x13, 0x7b, 0x69, 0x37, 0xa1, 0x7c, 0xa5, 0xba, 0x09, 0x5a, 0x45, 0xa8, 0x29, 0xc8, 0x17, 0xd0, - 0x8c, 0xa3, 0x29, 0xb7, 0xd5, 0x51, 0x42, 0x27, 0xd2, 0x75, 0x82, 0x90, 0xc2, 0x4d, 0x41, 0x9e, - 0x42, 0xdd, 0xf1, 0x43, 0xc1, 0x50, 0xb2, 0xfc, 0x3f, 0x25, 0x6b, 0x0a, 0x6b, 0x8a, 0xee, 0x08, - 0x60, 0xe1, 0x1a, 0x72, 0x07, 0x9a, 0x69, 0x79, 0xfb, 0x1d, 0x4b, 0xcb, 0x4a, 0x7e, 0x8b, 0xec, - 0x02, 0xb0, 0xc0, 0xe1, 0x97, 0x91, 0x5c, 0xbc, 0x67, 0xb9, 0x9d, 0x83, 0x1d, 0x68, 0x71, 0xe6, - 0xdb, 0x97, 0xcc, 0xb5, 0xf0, 0x61, 0x7e, 0x59, 0xa9, 0xb7, 0xda, 0x6d, 0xe3, 0x5d, 0x05, 0xaa, - 0x89, 0xb7, 0xae, 0x64, 0x21, 0xbe, 0x81, 0xf8, 0x7d, 0x4e, 0xe8, 0x6b, 0x75, 0x19, 0x9d, 0xc5, - 0x6e, 0xf9, 0x5b, 0xc4, 0x6e, 0x65, 0xb3, 0xd8, 0xfd, 0x54, 0x07, 0x43, 0x92, 0x8c, 0x77, 0xd7, - 0x46, 0x56, 0x2e, 0x26, 0x28, 0x7b, 0xa3, 0x83, 0xe2, 0xf3, 0x2b, 0xf9, 0xb8, 0xbb, 0x5e, 0x78, - 0x4d, 0x2e, 0x2e, 0x0a, 0x4b, 0x6d, 0x93, 0xc2, 0xb2, 0x9c, 0x1f, 0xed, 0xd5, 0xfc, 0xf8, 0x76, - 0xe1, 0xe9, 0xc1, 0xf6, 0xd2, 0x75, 0xb2, 0x74, 0x28, 0x6e, 0x9a, 0x0e, 0xb9, 0xd4, 0x2a, 0x2d, - 0xa7, 0xd6, 0x41, 0x0b, 0xc0, 0xc9, 0x04, 0xba, 0x17, 0xdf, 0x35, 0x11, 0xf2, 0xb1, 0x5c, 0xda, - 0x38, 0x96, 0x8d, 0xbf, 0x55, 0xa1, 0xdc, 0x3f, 0x32, 0x97, 0x42, 0xaa, 0xb8, 0x12, 0x52, 0x1d, - 0xa8, 0xb1, 0xc0, 0x3e, 0xf3, 0x59, 0x72, 0x89, 0x3a, 0x4d, 0x49, 0x3c, 0x54, 0x48, 0x9b, 0xcb, - 0x0d, 0x13, 0x48, 0x61, 0x4d, 0x41, 0x1e, 0x43, 0x35, 0xb2, 0x39, 0x16, 0xa9, 0xca, 0x5a, 0x43, - 0xf6, 0x8f, 0xcc, 0xbd, 0xb1, 0x02, 0x50, 0x0d, 0x44, 0x9b, 0x9c, 0xc5, 0x49, 0xeb, 0xb9, 0xa5, - 0x1e, 0xb2, 0x75, 0x32, 0x07, 0x0a, 0x41, 0x53, 0x24, 0x39, 0x82, 0xb6, 0x17, 0x38, 0xe1, 0xdc, - 0x0b, 0xa6, 0xd6, 0x6f, 0x63, 0xc6, 0xb1, 0x6d, 0x4a, 0xe2, 0xef, 0x83, 0x35, 0xd2, 0x5f, 0xc6, - 0x8c, 0x5f, 0x26, 0xef, 0xed, 0x7b, 0xa9, 0xd8, 0x97, 0x89, 0x14, 0x6a, 0x0a, 0x63, 0x39, 0x0d, - 0xf3, 0x9a, 0x6a, 0x1b, 0x69, 0x4a, 0xc5, 0xb4, 0xa6, 0xee, 0x14, 0xaa, 0xc9, 0xd5, 0x48, 0x0b, - 0x8a, 0xe7, 0xba, 0xcd, 0x2e, 0x9e, 0xe3, 0x88, 0x63, 0xfb, 0xd1, 0xcc, 0xd6, 0x9d, 0x75, 0x42, - 0x90, 0x1f, 0xc3, 0x8e, 0xeb, 0x89, 0xdf, 0xe0, 0xb3, 0x66, 0x45, 0xb6, 0x9c, 0x09, 0xdd, 0x5b, - 0x6f, 0xa7, 0xbb, 0x63, 0xdc, 0xc4, 0x0e, 0xee, 0x8c, 0x49, 0x5b, 0x99, 0xb3, 0x42, 0xd5, 0xba, - 0xfb, 0xd7, 0x22, 0x34, 0xc6, 0xf8, 0x38, 0x07, 0xe8, 0xdf, 0xdc, 0xc3, 0x5d, 0x5c, 0x7a, 0xb8, - 0xbf, 0xc8, 0xf2, 0x2b, 0x69, 0xf5, 0xee, 0xae, 0xf3, 0x45, 0xaa, 0x66, 0x35, 0xdb, 0x0c, 0xd8, - 0xb6, 0xa7, 0xd8, 0x23, 0x5b, 0x89, 0xc9, 0xf5, 0x7c, 0xd4, 0xb4, 0xa7, 0x6c, 0x18, 0x24, 0xde, - 0x30, 0x9e, 0x63, 0x19, 0x53, 0x68, 0x80, 0xea, 0xfe, 0xa1, 0x39, 0x7c, 0x3d, 0x68, 0x17, 0x48, - 0x13, 0x6a, 0xc7, 0xc3, 0xc9, 0x04, 0xdb, 0xbc, 0x22, 0x69, 0x41, 0x9d, 0x0e, 0x5e, 0x0e, 0x0e, - 0xcd, 0x41, 0xbf, 0x5d, 0xc2, 0x96, 0xee, 0x70, 0x7f, 0xd4, 0x1f, 0xf6, 0xf7, 0xcd, 0x41, 0xbb, - 0xdc, 0x1d, 0x41, 0x35, 0xd1, 0x84, 0xf3, 0x9d, 0x13, 0xa5, 0x33, 0x20, 0x2e, 0x49, 0x0f, 0xb6, - 0xf0, 0x1a, 0x69, 0x73, 0xf3, 0xc3, 0xeb, 0xbe, 0x9d, 0x26, 0xd0, 0xee, 0x6b, 0x80, 0x85, 0x7f, - 0x30, 0xb6, 0x45, 0xec, 0x38, 0x4c, 0xa4, 0x13, 0x4f, 0x4a, 0xa2, 0x43, 0x18, 0xe7, 0x21, 0x4f, - 0x1d, 0xa2, 0x08, 0xc4, 0x63, 0x69, 0xc2, 0xa6, 0x2d, 0xf1, 0x44, 0x4a, 0x1a, 0x21, 0xc0, 0x24, - 0x3e, 0x13, 0x97, 0x42, 0xb2, 0xb9, 0x7a, 0x97, 0x16, 0xd9, 0x9d, 0x34, 0x66, 0xd7, 0x15, 0x0c, - 0x9a, 0x47, 0x93, 0x7b, 0x50, 0x76, 0x67, 0x69, 0x57, 0x48, 0xae, 0x5e, 0x8a, 0x22, 0xdb, 0xf8, - 0x53, 0x09, 0xb6, 0xd4, 0x18, 0x42, 0x9e, 0x01, 0x88, 0xec, 0xe8, 0xff, 0x52, 0x9c, 0x16, 0xdf, - 0x46, 0x73, 0xe0, 0xfc, 0x2b, 0x50, 0xda, 0xec, 0x15, 0x78, 0x06, 0x80, 0x83, 0x9d, 0x1d, 0x6c, - 0x98, 0xf5, 0x0d, 0x8d, 0x4e, 0x6a, 0x54, 0x56, 0x2e, 0x2a, 0x9b, 0x97, 0x8b, 0x47, 0x70, 0x53, - 0x04, 0x76, 0x24, 0x66, 0xa1, 0xb4, 0xdc, 0x98, 0xab, 0x09, 0x71, 0x31, 0xbf, 0x91, 0x94, 0xd7, - 0xd7, 0xac, 0x63, 0x61, 0xd8, 0xb0, 0xa5, 0x46, 0x13, 0x4c, 0x0c, 0x35, 0xc6, 0xe8, 0xd1, 0x46, - 0xcd, 0x24, 0x0f, 0xa0, 0xb4, 0x51, 0x8d, 0x2c, 0x49, 0x81, 0xee, 0x76, 0xc2, 0x40, 0xb2, 0x40, - 0xea, 0x61, 0x33, 0x25, 0x8d, 0x7f, 0x15, 0x81, 0x8c, 0x75, 0x85, 0xc4, 0x46, 0x3d, 0x19, 0x83, - 0xd1, 0x9e, 0xf9, 0x3f, 0x35, 0xae, 0xda, 0x53, 0xff, 0xfb, 0xb1, 0x18, 0x68, 0x3f, 0x86, 0x2d, - 0x35, 0x69, 0xea, 0x2f, 0xba, 0xb9, 0xe6, 0x7d, 0x63, 0x47, 0x05, 0x9a, 0x80, 0x48, 0x0f, 0x6a, - 0x3c, 0x19, 0xbe, 0xb4, 0xe9, 0x6f, 0xad, 0x1f, 0xcd, 0x8e, 0x0a, 0x34, 0x05, 0xe2, 0x09, 0x6a, - 0xcc, 0xd4, 0x36, 0x5f, 0x3d, 0x41, 0x59, 0x0a, 0x4f, 0x50, 0xa0, 0x83, 0x06, 0xd4, 0xe6, 0x4c, - 0x08, 0x7b, 0xca, 0x8c, 0x6f, 0x4a, 0xd0, 0x3a, 0xf4, 0x3d, 0x16, 0xc8, 0x89, 0x37, 0x0d, 0x6c, - 0xff, 0xff, 0xb8, 0xdd, 0xe7, 0x50, 0x15, 0x4a, 0x56, 0x97, 0x97, 0x2b, 0x8d, 0x78, 0x4e, 0xfd, - 0x5e, 0xf2, 0x43, 0xb5, 0x04, 0x79, 0x01, 0x4d, 0x35, 0xaa, 0x8b, 0x30, 0xe6, 0x4e, 0xda, 0xd1, - 0x7c, 0x74, 0x9d, 0x02, 0x74, 0xc4, 0x44, 0xa1, 0x29, 0xb8, 0xd9, 0x3a, 0xef, 0xc5, 0xca, 0xb2, - 0x17, 0x7f, 0x0d, 0x55, 0x7d, 0xb5, 0x6d, 0x68, 0x4c, 0x06, 0xa3, 0xbe, 0xd5, 0xdf, 0x37, 0xf7, - 0xdb, 0x05, 0x72, 0x0b, 0xc8, 0x78, 0xff, 0x74, 0x32, 0xb0, 0xc6, 0xa7, 0x93, 0x23, 0x6b, 0x70, - 0x3c, 0x34, 0x4d, 0x35, 0x85, 0x76, 0xe0, 0xe6, 0xe9, 0x68, 0x0d, 0xa7, 0x44, 0x08, 0xec, 0x1c, - 0x9e, 0x8c, 0x7e, 0x3e, 0x7c, 0x91, 0xed, 0x81, 0x71, 0x0f, 0x60, 0xf1, 0x49, 0xa4, 0x01, 0x5b, - 0x13, 0x13, 0x8b, 0x9a, 0x2a, 0x7f, 0xf4, 0x74, 0xa4, 0xe6, 0xd9, 0xe2, 0x83, 0xc1, 0xda, 0x0a, - 0x09, 0x50, 0x3d, 0x7c, 0x75, 0x32, 0x19, 0xf4, 0xdb, 0x45, 0x84, 0x9f, 0x8c, 0x07, 0x23, 0xac, - 0x96, 0x25, 0x24, 0x90, 0x81, 0x44, 0x19, 0x75, 0x0e, 0x28, 0x3d, 0xa1, 0xed, 0xca, 0x83, 0x7b, - 0x50, 0xc1, 0xf6, 0x0e, 0x6f, 0x32, 0x1c, 0x0d, 0xcd, 0xe1, 0xbe, 0x79, 0x42, 0xdb, 0x05, 0x24, - 0xe9, 0x60, 0x32, 0x3e, 0x19, 0xf5, 0xf1, 0x02, 0x07, 0x9d, 0xbf, 0xbf, 0xdd, 0x2d, 0x7e, 0xfd, - 0x76, 0xb7, 0xf8, 0xcf, 0xb7, 0xbb, 0xc5, 0x3f, 0xbe, 0xdb, 0x2d, 0x7c, 0xfd, 0x6e, 0xb7, 0xf0, - 0x8f, 0x77, 0xbb, 0x85, 0xb3, 0xaa, 0xca, 0x81, 0x27, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x1a, - 0xd0, 0xc7, 0x1b, 0xe8, 0x13, 0x00, 0x00, + // 2060 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0x5f, 0x73, 0x1b, 0x49, + 0x11, 0xd7, 0x3f, 0xeb, 0x4f, 0x4b, 0xf2, 0x89, 0x49, 0x08, 0x8a, 0x8e, 0xf3, 0x85, 0x4d, 0x08, + 0xa9, 0x10, 0x9c, 0x44, 0xb9, 0xd4, 0x5d, 0xee, 0xaa, 0x52, 0x65, 0x5b, 0xc2, 0x56, 0x2a, 0x92, + 0x75, 0xa3, 0x75, 0x8a, 0xa2, 0xa0, 0xb6, 0xd6, 0xbb, 0x13, 0x69, 0xf1, 0x6a, 0x77, 0x99, 0x99, + 0xf5, 0xe1, 0xa2, 0x78, 0xe6, 0x95, 0x47, 0x5e, 0xe0, 0x4b, 0xf0, 0x19, 0x28, 0x78, 0xbc, 0x37, + 0x78, 0x84, 0x84, 0xe2, 0x73, 0x50, 0x3d, 0x3b, 0x2b, 0xad, 0x65, 0x25, 0xe8, 0xe0, 0x49, 0xd3, + 0xdd, 0xbf, 0xee, 0xd9, 0x99, 0xfe, 0x33, 0xdd, 0x82, 0x6b, 0x5e, 0x20, 0x79, 0x28, 0x22, 0xe6, + 0x48, 0x2f, 0x0c, 0x76, 0x23, 0x1e, 0xca, 0x90, 0x34, 0x2f, 0x31, 0x3b, 0x1f, 0x4f, 0xc3, 0x70, + 0xea, 0xb3, 0x87, 0x4a, 0x78, 0x1a, 0xbf, 0x7e, 0x28, 0xbd, 0x39, 0x13, 0xd2, 0x9e, 0x47, 0x09, + 0xde, 0xb8, 0x0d, 0x95, 0x57, 0x8c, 0x0b, 0x2f, 0x0c, 0x48, 0x1b, 0x2a, 0xe7, 0xc9, 0xb2, 0x9d, + 0xbf, 0x95, 0xbf, 0xd7, 0xa4, 0x29, 0x69, 0x1c, 0x42, 0x93, 0x32, 0x11, 0xfb, 0xf2, 0x20, 0x8c, + 0x03, 0xc9, 0x38, 0xb9, 0x0e, 0x5b, 0x32, 0x94, 0xb6, 0xaf, 0x81, 0x09, 0x41, 0xb6, 0xa1, 0x10, + 0x9e, 0xb5, 0x0b, 0x8a, 0x55, 0x08, 0xcf, 0x48, 0x0b, 0x8a, 0x8c, 0xf3, 0x76, 0x51, 0x31, 0x70, + 0x69, 0xfc, 0xb1, 0x00, 0xdb, 0x13, 0xdf, 0x73, 0xbd, 0x60, 0x9a, 0x9a, 0xfa, 0x0e, 0x54, 0xc2, + 0x73, 0xc6, 0xad, 0xc7, 0x73, 0x6d, 0xac, 0x8c, 0xe4, 0xe3, 0xf9, 0x42, 0xf0, 0x74, 0xae, 0x4d, + 0x2a, 0xc1, 0xd3, 0x39, 0xb9, 0x09, 0xd5, 0x44, 0xe3, 0xe9, 0x5c, 0xdb, 0x56, 0xc0, 0xc7, 0x19, + 0xd1, 0x93, 0x47, 0xf3, 0x76, 0x69, 0x29, 0x7a, 0xf2, 0x28, 0xa3, 0x35, 0xe3, 0xed, 0xad, 0x8c, + 0xd6, 0x8c, 0x2f, 0x44, 0xdd, 0x19, 0x6f, 0x97, 0x97, 0xa2, 0x6e, 0x46, 0xf4, 0xc9, 0x8c, 0xb7, + 0x2b, 0x4b, 0xd1, 0x27, 0x19, 0xd1, 0x67, 0x33, 0xde, 0xae, 0x2e, 0x45, 0x9f, 0xcd, 0x38, 0xf9, + 0x10, 0x6a, 0xc9, 0x5e, 0x68, 0xb1, 0xa6, 0x64, 0x0a, 0x8b, 0xf4, 0x42, 0xd8, 0x45, 0x9b, 0xb0, + 0x14, 0x22, 0x6d, 0x9c, 0x42, 0xad, 0x67, 0x4b, 0xfb, 0xd0, 0x8e, 0xa7, 0x0c, 0x91, 0x4e, 0x3c, + 0xb7, 0x4e, 0x2f, 0x24, 0x13, 0xea, 0x72, 0x4a, 0xb4, 0xea, 0xc4, 0xf3, 0x7d, 0xa4, 0xc9, 0xc7, + 0x50, 0x47, 0x61, 0x64, 0x3b, 0x67, 0x4c, 0x0a, 0x75, 0x45, 0x25, 0x0a, 0x4e, 0x3c, 0x1f, 0x27, + 0x1c, 0xbc, 0x3f, 0x2f, 0x10, 0xd2, 0x3a, 0xfd, 0x4a, 0xdd, 0x52, 0x89, 0x96, 0x91, 0xdc, 0xff, + 0xca, 0xf8, 0x5b, 0x01, 0x6a, 0xfd, 0x73, 0x16, 0x48, 0xf3, 0x22, 0x62, 0x84, 0x40, 0x29, 0xb0, + 0xe7, 0x4c, 0xd9, 0xaf, 0x51, 0xb5, 0x26, 0x43, 0xd8, 0x8e, 0x78, 0x18, 0x31, 0x2e, 0x2f, 0x2c, + 0x79, 0x11, 0x31, 0x34, 0x5f, 0xbc, 0x57, 0xef, 0xde, 0xdd, 0xbd, 0x1c, 0x72, 0x0b, 0x2b, 0xc9, + 0x6a, 0xac, 0x75, 0x68, 0x33, 0xd5, 0x46, 0x99, 0xe8, 0xfc, 0x3b, 0x0f, 0xcd, 0x4b, 0x80, 0xb5, + 0x9b, 0x1e, 0x42, 0x09, 0xf7, 0x52, 0x27, 0xd9, 0xee, 0x3e, 0xd9, 0x6c, 0xab, 0xdd, 0x71, 0x66, + 0x27, 0xaa, 0x0c, 0x90, 0xef, 0x41, 0x63, 0x66, 0x0b, 0x6b, 0x1e, 0xfb, 0xd2, 0x8b, 0x7c, 0xa6, + 0x4e, 0x5f, 0xa5, 0xf5, 0x99, 0x2d, 0x86, 0x9a, 0x65, 0x9c, 0x40, 0x23, 0xab, 0x48, 0x00, 0xca, + 0x13, 0x93, 0x0e, 0x46, 0x87, 0xad, 0x1c, 0xae, 0x47, 0x27, 0xc3, 0xfd, 0x3e, 0x6d, 0xe5, 0x49, + 0x15, 0x4a, 0xe6, 0x60, 0xd8, 0x6f, 0x01, 0x72, 0xc7, 0xfd, 0x3e, 0x1d, 0xf4, 0x5a, 0x75, 0xd2, + 0x84, 0xda, 0xf0, 0xe4, 0xa5, 0x39, 0xd8, 0xeb, 0xf5, 0x68, 0xab, 0x81, 0xa0, 0x17, 0x93, 0xe3, + 0x51, 0xeb, 0xa7, 0xc6, 0x1f, 0x0a, 0x50, 0xa1, 0x71, 0x80, 0x39, 0x46, 0xee, 0xc2, 0xb6, 0x37, + 0x8f, 0x7c, 0x36, 0x67, 0x81, 0xb4, 0x65, 0x9a, 0x54, 0x35, 0xba, 0xc2, 0xcd, 0x66, 0x5d, 0x41, + 0x01, 0x52, 0x92, 0x74, 0xa0, 0x1a, 0xf9, 0xb6, 0x7c, 0x1d, 0xf2, 0x24, 0xce, 0x6b, 0x74, 0x41, + 0xa3, 0x73, 0x23, 0xc6, 0xb8, 0xe5, 0xb9, 0x2a, 0xce, 0x6b, 0xb4, 0x8c, 0xe4, 0xc0, 0x25, 0x3f, + 0x04, 0x72, 0xc6, 0x58, 0x64, 0x09, 0x69, 0xfb, 0xcc, 0x72, 0x6d, 0x69, 0x5b, 0x73, 0xa1, 0x03, + 0xfe, 0x03, 0x94, 0x4c, 0x50, 0x80, 0x31, 0x36, 0x14, 0xe4, 0x09, 0xdc, 0x10, 0x2c, 0x70, 0x11, + 0x2c, 0x99, 0xe5, 0x61, 0x3e, 0x9e, 0xdb, 0x3e, 0x2a, 0x24, 0x69, 0x70, 0x0d, 0xa5, 0x13, 0x14, + 0x0e, 0xb4, 0x6c, 0x28, 0xc8, 0x33, 0xa8, 0x33, 0x74, 0x81, 0x8e, 0x8c, 0x8a, 0x8a, 0x8c, 0xf6, + 0xbb, 0xdc, 0x45, 0x81, 0xa5, 0x4b, 0x61, 0xfc, 0x04, 0x1a, 0xfd, 0xc0, 0x8d, 0x42, 0x2f, 0x90, + 0x63, 0xdb, 0xe3, 0xe4, 0x36, 0x34, 0x05, 0x77, 0x12, 0x4f, 0xd9, 0xae, 0xcb, 0xf5, 0x15, 0x35, + 0x04, 0x77, 0x86, 0x29, 0x0f, 0x41, 0xae, 0x90, 0x19, 0x50, 0x72, 0x4d, 0x0d, 0x57, 0xc8, 0x05, + 0xc8, 0xf8, 0x0d, 0x54, 0x4c, 0x6e, 0xbf, 0x7e, 0xed, 0x39, 0xe4, 0x53, 0x00, 0x99, 0x2c, 0x2d, + 0x2f, 0xb9, 0xf4, 0xab, 0x9f, 0xb7, 0xc8, 0x31, 0x5a, 0xd3, 0xd8, 0x41, 0x80, 0x07, 0x4b, 0x15, + 0xc3, 0x58, 0xaa, 0x6d, 0xde, 0xa7, 0x99, 0xee, 0x72, 0x1c, 0x4b, 0xe3, 0x67, 0x00, 0x13, 0xc9, + 0x99, 0x3d, 0x7f, 0xe9, 0x09, 0x49, 0x3e, 0x02, 0x10, 0x8a, 0xb2, 0x3c, 0x17, 0x13, 0xb7, 0x78, + 0xaf, 0x41, 0x6b, 0x09, 0x67, 0xe0, 0x0a, 0xf2, 0x10, 0x2a, 0x09, 0x91, 0xa6, 0xd5, 0xb7, 0x57, + 0xf6, 0x48, 0x4c, 0xd1, 0x14, 0x65, 0xfc, 0xb6, 0x02, 0x70, 0x10, 0x06, 0x41, 0x22, 0xc6, 0x32, + 0xeb, 0xb9, 0xea, 0x60, 0x0d, 0x5a, 0xf0, 0xdc, 0x6c, 0x2c, 0x14, 0x2e, 0xc5, 0xc2, 0x8f, 0xa0, + 0x8c, 0x9e, 0x8d, 0x85, 0x0a, 0x9f, 0xed, 0x35, 0xfb, 0xa0, 0x90, 0x6a, 0x10, 0xe6, 0x8d, 0xe4, + 0x76, 0x20, 0xa2, 0x90, 0xcb, 0x34, 0xb0, 0x1a, 0xb4, 0xbe, 0xe0, 0x0d, 0x5c, 0xf2, 0x0c, 0x6a, + 0x4c, 0x3b, 0x30, 0x09, 0xaa, 0x7a, 0xf7, 0xc3, 0x55, 0xcf, 0x67, 0x1c, 0x4c, 0x97, 0x68, 0xf2, + 0x1c, 0xaa, 0x98, 0x17, 0xbe, 0x17, 0x30, 0x15, 0x5d, 0xf5, 0xae, 0xb1, 0xa2, 0xb9, 0x3c, 0xe2, + 0xae, 0xa9, 0x91, 0x74, 0xa1, 0x43, 0x7e, 0x00, 0x25, 0x1e, 0xfa, 0x4c, 0x55, 0xe1, 0xed, 0xee, + 0xb5, 0x15, 0x5d, 0x1a, 0xfa, 0x8c, 0x2a, 0x00, 0x79, 0x04, 0x15, 0xed, 0x19, 0x55, 0x96, 0xeb, + 0xdd, 0x1b, 0x2b, 0x58, 0x1d, 0x28, 0x34, 0x85, 0x91, 0xe7, 0x50, 0xb1, 0xa5, 0xe4, 0xde, 0xa9, + 0x50, 0xc5, 0xba, 0xde, 0xbd, 0xf3, 0xee, 0x2f, 0xdb, 0x53, 0xc0, 0x58, 0x32, 0x41, 0x53, 0x25, + 0xf4, 0xb7, 0x6f, 0x4b, 0x16, 0x38, 0x17, 0x56, 0x20, 0x54, 0x49, 0x2f, 0xd1, 0x9a, 0xe6, 0x8c, + 0x30, 0xcb, 0x16, 0xfe, 0xae, 0x2b, 0xf3, 0x37, 0xd7, 0xfa, 0x1b, 0x43, 0x67, 0xe1, 0x73, 0x72, + 0x13, 0x2a, 0x4e, 0x18, 0x04, 0xe8, 0x87, 0x16, 0xfa, 0xe1, 0x28, 0x47, 0xcb, 0xc8, 0x18, 0xb8, + 0xe4, 0x21, 0x94, 0x70, 0xd5, 0xfe, 0xd6, 0x5a, 0x63, 0xcb, 0x6f, 0x3d, 0xca, 0x51, 0x05, 0x24, + 0x0f, 0x80, 0xc4, 0x82, 0x71, 0x2b, 0xe2, 0xe1, 0xb9, 0xe7, 0x32, 0xd7, 0x92, 0xf6, 0x54, 0xb4, + 0x9d, 0x5b, 0xc5, 0x7b, 0x35, 0xda, 0x42, 0xc9, 0x58, 0x0b, 0x4c, 0x7b, 0x2a, 0x3a, 0x7f, 0xca, + 0x43, 0x35, 0xbd, 0x7f, 0xfc, 0xf6, 0x30, 0x62, 0x81, 0x25, 0x85, 0xce, 0xa4, 0xce, 0x6e, 0xd2, + 0x51, 0xec, 0xa6, 0x1d, 0x85, 0xf2, 0x95, 0xea, 0x28, 0x68, 0x19, 0xa1, 0xa6, 0x20, 0x5f, 0x40, + 0x3d, 0x8e, 0xa6, 0xdc, 0x56, 0x5b, 0x09, 0x9d, 0x48, 0xef, 0x53, 0x84, 0x14, 0x6e, 0x0a, 0xf2, + 0x14, 0xaa, 0x8e, 0x1f, 0x0a, 0x86, 0x9a, 0xc5, 0xff, 0xaa, 0x59, 0x51, 0x58, 0x53, 0x74, 0x46, + 0x00, 0x4b, 0xd7, 0x90, 0x5b, 0x50, 0x4f, 0xcb, 0xff, 0xaf, 0x58, 0x5a, 0x56, 0xb2, 0x2c, 0xb2, + 0x03, 0xc0, 0x02, 0x87, 0x5f, 0x44, 0x72, 0x59, 0x79, 0x33, 0x9c, 0xfd, 0x6d, 0x68, 0x70, 0xe6, + 0xdb, 0x17, 0xcc, 0xb5, 0xf0, 0x71, 0x7e, 0x51, 0xaa, 0x36, 0x5a, 0x2d, 0xe3, 0x6d, 0x09, 0xca, + 0x89, 0xb7, 0xae, 0x64, 0x21, 0x56, 0x6b, 0xfc, 0x3e, 0x27, 0xf4, 0xb5, 0xb9, 0x05, 0xbd, 0x88, + 0xdd, 0xe2, 0x37, 0x88, 0xdd, 0xd2, 0x66, 0xb1, 0xfb, 0xa9, 0x0e, 0x86, 0x24, 0x19, 0x6f, 0xaf, + 0x8d, 0xac, 0x4c, 0x4c, 0x50, 0xf6, 0x5a, 0x07, 0xc5, 0xe7, 0x57, 0xf2, 0x71, 0x67, 0xbd, 0xf2, + 0x9a, 0x5c, 0x5c, 0x16, 0x96, 0xca, 0x26, 0x85, 0xe5, 0x72, 0x7e, 0xb4, 0x56, 0xf3, 0xe3, 0x9b, + 0x85, 0xa7, 0x07, 0xcd, 0x4b, 0xc7, 0x59, 0xa4, 0x43, 0x7e, 0xd3, 0x74, 0xc8, 0xa4, 0x56, 0xe1, + 0x72, 0x6a, 0xed, 0x37, 0x00, 0x9c, 0x85, 0x42, 0xe7, 0xfc, 0xff, 0x4d, 0x84, 0x6c, 0x2c, 0x17, + 0x36, 0x8e, 0x65, 0xe3, 0x2f, 0x65, 0x28, 0xf6, 0x8e, 0xcc, 0x4b, 0x21, 0x95, 0x5f, 0x09, 0xa9, + 0x36, 0x54, 0x58, 0x60, 0x9f, 0xfa, 0x2c, 0x39, 0x44, 0x95, 0xa6, 0x24, 0x6e, 0x2a, 0xa4, 0xcd, + 0xe5, 0x86, 0x09, 0xa4, 0xb0, 0xa6, 0x20, 0x8f, 0xa1, 0x1c, 0xd9, 0x1c, 0x8b, 0x54, 0x69, 0xed, + 0x45, 0xf6, 0x8e, 0xcc, 0xdd, 0xb1, 0x02, 0x50, 0x0d, 0xc4, 0x3b, 0x39, 0x8d, 0x93, 0xf6, 0x73, + 0x4b, 0x3d, 0x64, 0xeb, 0x74, 0xf6, 0x15, 0x82, 0xa6, 0x48, 0x72, 0x04, 0x2d, 0x2f, 0x70, 0xc2, + 0xb9, 0x17, 0x4c, 0xad, 0x5f, 0xc6, 0x8c, 0x7b, 0x4c, 0xe8, 0xf8, 0xfb, 0x68, 0x8d, 0xf6, 0x97, + 0x31, 0xe3, 0x17, 0xc9, 0x7b, 0xfb, 0x41, 0xaa, 0xf6, 0x65, 0xa2, 0x85, 0x96, 0xc2, 0x58, 0x4e, + 0xc3, 0xac, 0xa5, 0xca, 0x46, 0x96, 0x52, 0x35, 0x6d, 0xa9, 0x33, 0x85, 0x72, 0x72, 0x34, 0xd2, + 0x80, 0xfc, 0x99, 0x6e, 0xb5, 0xf3, 0x67, 0x38, 0xe6, 0xd8, 0x7e, 0x34, 0xb3, 0x75, 0x77, 0x9d, + 0x10, 0xe4, 0xfb, 0xb0, 0xed, 0x7a, 0xe2, 0x17, 0xf8, 0xac, 0x59, 0x91, 0x2d, 0x67, 0x42, 0xf7, + 0xd7, 0xcd, 0x94, 0x3b, 0x46, 0x26, 0xf6, 0xb8, 0xa7, 0x4c, 0xda, 0xea, 0x3a, 0x4b, 0x54, 0xad, + 0x3b, 0x7f, 0xce, 0x43, 0x6d, 0x8c, 0x8f, 0x73, 0x80, 0xfe, 0xcd, 0x3c, 0xdc, 0xf9, 0x4b, 0x0f, + 0xf7, 0x17, 0x8b, 0xfc, 0x4a, 0x9a, 0xe1, 0xdb, 0xeb, 0x7c, 0x91, 0x9a, 0x59, 0xcd, 0x36, 0x03, + 0x9a, 0xf6, 0x14, 0xbb, 0x39, 0x2b, 0xb9, 0x72, 0x3d, 0x23, 0xd5, 0xed, 0x29, 0x1b, 0x04, 0x89, + 0x37, 0x8c, 0xe7, 0x58, 0xc6, 0x14, 0x1a, 0xa0, 0xbc, 0x77, 0x60, 0x0e, 0x5e, 0xf5, 0x5b, 0x39, + 0x52, 0x87, 0xca, 0x70, 0x30, 0x99, 0x60, 0x1b, 0x9c, 0x27, 0x0d, 0xa8, 0xd2, 0xfe, 0x8b, 0xfe, + 0x81, 0xd9, 0xef, 0xb5, 0x0a, 0xd8, 0xf2, 0x1e, 0xec, 0x8d, 0x7a, 0x83, 0xde, 0x9e, 0xd9, 0x6f, + 0x15, 0x3b, 0x23, 0x28, 0x27, 0x96, 0x70, 0xc6, 0x73, 0xa2, 0x74, 0x0e, 0xc4, 0x25, 0xe9, 0xc2, + 0x16, 0x1e, 0x23, 0x6d, 0x6e, 0xbe, 0xfb, 0xbe, 0x6f, 0xa7, 0x09, 0xb4, 0xf3, 0x0a, 0x60, 0xe9, + 0x1f, 0x8c, 0x6d, 0x11, 0x3b, 0x0e, 0x13, 0xe9, 0xd4, 0x93, 0x92, 0xe8, 0x10, 0xc6, 0x79, 0xc8, + 0x53, 0x87, 0x28, 0x02, 0xf1, 0x58, 0x9a, 0xb0, 0x69, 0x4b, 0x3c, 0x91, 0x92, 0x46, 0x08, 0x30, + 0x89, 0x4f, 0xc5, 0x85, 0x90, 0x6c, 0xae, 0xde, 0xa5, 0x65, 0x76, 0x27, 0x8d, 0xd9, 0xfb, 0x0a, + 0x06, 0xcd, 0xa2, 0xc9, 0x1d, 0x28, 0xba, 0xb3, 0xb4, 0x2b, 0x24, 0x57, 0x0f, 0x45, 0x51, 0x6c, + 0xfc, 0xbe, 0x00, 0x5b, 0xaa, 0x61, 0x26, 0xcf, 0x00, 0xc4, 0x62, 0xeb, 0x77, 0x14, 0xa7, 0xe5, + 0xb7, 0xd1, 0x0c, 0x38, 0xfb, 0x0a, 0x14, 0x36, 0x7b, 0x05, 0x9e, 0x01, 0xe0, 0x70, 0x67, 0x07, + 0x1b, 0x66, 0x7d, 0x4d, 0xa3, 0x93, 0x1a, 0xb5, 0x28, 0x17, 0xa5, 0xcd, 0xcb, 0xc5, 0x23, 0xb8, + 0x2e, 0x02, 0x3b, 0x12, 0xb3, 0x50, 0x5a, 0x6e, 0xcc, 0xd5, 0x2c, 0xb3, 0x9c, 0x34, 0x48, 0x2a, + 0xeb, 0x69, 0xd1, 0x50, 0x18, 0xbf, 0x86, 0x2d, 0x35, 0x15, 0x90, 0x07, 0x7a, 0xd0, 0x5b, 0xdf, + 0x9a, 0x2f, 0x27, 0x87, 0x64, 0x9a, 0xbb, 0x0f, 0x85, 0x8d, 0xaa, 0x67, 0x41, 0x0a, 0x0c, 0x04, + 0x27, 0x0c, 0x24, 0x0b, 0xa4, 0x1e, 0x98, 0x52, 0xd2, 0xf8, 0x67, 0x1e, 0xc8, 0x58, 0xd7, 0x4e, + 0x6c, 0xe1, 0x93, 0x21, 0x19, 0x6f, 0x3a, 0xfb, 0x97, 0xc7, 0xd5, 0x9b, 0xd6, 0xff, 0x8d, 0x2c, + 0x87, 0xb2, 0x07, 0xb0, 0xa5, 0xa6, 0x25, 0xfd, 0x45, 0xd7, 0xd7, 0xbc, 0x7c, 0xec, 0x28, 0x47, + 0x13, 0x10, 0xe9, 0x42, 0x85, 0x27, 0xf3, 0xa0, 0x76, 0xca, 0xaa, 0x7d, 0x3d, 0x2d, 0x1e, 0xe5, + 0x68, 0x0a, 0xc4, 0x1d, 0xd4, 0xc8, 0xa4, 0xbd, 0x71, 0x7d, 0xdd, 0xfd, 0xe0, 0x0e, 0x0a, 0xb4, + 0x5f, 0x83, 0xca, 0x9c, 0x09, 0x61, 0x4f, 0x99, 0xf1, 0xaf, 0x02, 0x34, 0x0e, 0x7c, 0x8f, 0x05, + 0x72, 0xe2, 0x4d, 0x03, 0xdb, 0xff, 0x1f, 0x4e, 0xf7, 0x39, 0x94, 0x85, 0xd2, 0xd5, 0x85, 0xe7, + 0x4a, 0x8b, 0x9e, 0x31, 0xbf, 0x9b, 0xfc, 0x50, 0xad, 0x41, 0x0e, 0xa1, 0xae, 0xc6, 0x4d, 0x11, + 0xc6, 0xdc, 0x49, 0x7b, 0x9d, 0xbb, 0xef, 0x33, 0x80, 0x8e, 0x98, 0x28, 0x34, 0x05, 0x77, 0xb1, + 0xce, 0x7a, 0xb1, 0x74, 0xd9, 0x8b, 0x3f, 0x87, 0xb2, 0x3e, 0x5a, 0x13, 0x6a, 0x93, 0xfe, 0xa8, + 0x67, 0xf5, 0xf6, 0xcc, 0xbd, 0x56, 0x8e, 0xdc, 0x00, 0x32, 0xde, 0x3b, 0x99, 0xf4, 0xad, 0xf1, + 0xc9, 0xe4, 0xc8, 0xea, 0x0f, 0x07, 0xa6, 0xa9, 0xe6, 0xf7, 0x36, 0x5c, 0x3f, 0x19, 0xad, 0x91, + 0x14, 0x08, 0x81, 0xed, 0x83, 0xe3, 0xd1, 0x8f, 0x07, 0x87, 0x0b, 0x1e, 0x18, 0x77, 0x00, 0x96, + 0x9f, 0x44, 0x6a, 0xb0, 0x35, 0x31, 0xb1, 0xdc, 0xa9, 0xc2, 0x48, 0x4f, 0x46, 0xea, 0x9f, 0x80, + 0xfc, 0xfd, 0xfe, 0xda, 0xda, 0x09, 0x50, 0x3e, 0x78, 0x79, 0x3c, 0xe9, 0xf7, 0x5a, 0x79, 0x84, + 0x1f, 0x8f, 0xfb, 0x23, 0xac, 0xa3, 0x05, 0x24, 0x50, 0x80, 0x44, 0x11, 0x6d, 0xf6, 0x29, 0x3d, + 0xa6, 0xad, 0xd2, 0xfd, 0x3b, 0x50, 0xc2, 0xc6, 0x0f, 0x4f, 0x32, 0x18, 0x0d, 0xcc, 0xc1, 0x9e, + 0x79, 0x4c, 0x5b, 0x39, 0x24, 0x69, 0x7f, 0x32, 0x3e, 0x1e, 0xf5, 0xf0, 0x00, 0xfb, 0xed, 0xbf, + 0xbe, 0xd9, 0xc9, 0x7f, 0xfd, 0x66, 0x27, 0xff, 0x8f, 0x37, 0x3b, 0xf9, 0xdf, 0xbd, 0xdd, 0xc9, + 0x7d, 0xfd, 0x76, 0x27, 0xf7, 0xf7, 0xb7, 0x3b, 0xb9, 0xd3, 0xb2, 0xca, 0x81, 0x27, 0xff, 0x09, + 0x00, 0x00, 0xff, 0xff, 0xfd, 0xc7, 0x36, 0x7c, 0x06, 0x14, 0x00, 0x00, } func (m *Version) Marshal() (dAtA []byte, err error) { @@ -2570,7 +2575,7 @@ func (m *DataGauge) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Runtime) Marshal() (dAtA []byte, err error) { +func (m *EventType) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2580,20 +2585,20 @@ func (m *Runtime) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Runtime) MarshalTo(dAtA []byte) (int, error) { +func (m *EventType) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Runtime) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *EventType) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.EventTypes) > 0 { - for iNdEx := len(m.EventTypes) - 1; iNdEx >= 0; iNdEx-- { + if len(m.PropertyTypes) > 0 { + for iNdEx := len(m.PropertyTypes) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.EventTypes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.PropertyTypes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2601,51 +2606,20 @@ func (m *Runtime) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintIntrospection(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x3a + dAtA[i] = 0x12 } } - if m.SendStateIntervalMs != 0 { - i = encodeVarintIntrospection(dAtA, i, uint64(m.SendStateIntervalMs)) - i-- - dAtA[i] = 0x30 - } - if m.KeepStaleDataMs != 0 { - i = encodeVarintIntrospection(dAtA, i, uint64(m.KeepStaleDataMs)) - i-- - dAtA[i] = 0x28 - } - if len(m.PeerId) > 0 { - i -= len(m.PeerId) - copy(dAtA[i:], m.PeerId) - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.PeerId))) - i-- - dAtA[i] = 0x22 - } - if len(m.Platform) > 0 { - i -= len(m.Platform) - copy(dAtA[i:], m.Platform) - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Platform))) - i-- - dAtA[i] = 0x1a - } - if len(m.Version) > 0 { - i -= len(m.Version) - copy(dAtA[i:], m.Version) - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Version))) - i-- - dAtA[i] = 0x12 - } - if len(m.Implementation) > 0 { - i -= len(m.Implementation) - copy(dAtA[i:], m.Implementation) - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Implementation))) + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Name))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Runtime_EventType) Marshal() (dAtA []byte, err error) { +func (m *EventType_EventProperty) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2655,29 +2629,30 @@ func (m *Runtime_EventType) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Runtime_EventType) MarshalTo(dAtA []byte) (int, error) { +func (m *EventType_EventProperty) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Runtime_EventType) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *EventType_EventProperty) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Properties) > 0 { - for iNdEx := len(m.Properties) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Properties[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintIntrospection(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 + if m.HasMultiple { + i-- + if m.HasMultiple { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } + i-- + dAtA[i] = 0x18 + } + if m.Type != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Type)) + i-- + dAtA[i] = 0x10 } if len(m.Name) > 0 { i -= len(m.Name) @@ -2689,7 +2664,7 @@ func (m *Runtime_EventType) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Runtime_EventProperty) Marshal() (dAtA []byte, err error) { +func (m *Runtime) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2699,35 +2674,65 @@ func (m *Runtime_EventProperty) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Runtime_EventProperty) MarshalTo(dAtA []byte) (int, error) { +func (m *Runtime) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Runtime_EventProperty) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *Runtime) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.HasMultiple { - i-- - if m.HasMultiple { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if len(m.EventTypes) > 0 { + for iNdEx := len(m.EventTypes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.EventTypes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a } + } + if m.SendStateIntervalMs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.SendStateIntervalMs)) i-- - dAtA[i] = 0x18 + dAtA[i] = 0x30 } - if m.Type != 0 { - i = encodeVarintIntrospection(dAtA, i, uint64(m.Type)) + if m.KeepStaleDataMs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.KeepStaleDataMs)) i-- - dAtA[i] = 0x10 + dAtA[i] = 0x28 } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Name))) + if len(m.PeerId) > 0 { + i -= len(m.PeerId) + copy(dAtA[i:], m.PeerId) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.PeerId))) + i-- + dAtA[i] = 0x22 + } + if len(m.Platform) > 0 { + i -= len(m.Platform) + copy(dAtA[i:], m.Platform) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Platform))) + i-- + dAtA[i] = 0x1a + } + if len(m.Version) > 0 { + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0x12 + } + if len(m.Implementation) > 0 { + i -= len(m.Implementation) + copy(dAtA[i:], m.Implementation) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Implementation))) i-- dAtA[i] = 0xa } @@ -3786,10 +3791,15 @@ func (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 } - if len(m.Type) > 0 { - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Type))) + if m.Type != nil { + { + size, err := m.Type.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0xa } @@ -4053,36 +4063,18 @@ func (m *DataGauge) Size() (n int) { return n } -func (m *Runtime) Size() (n int) { +func (m *EventType) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Implementation) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) - } - l = len(m.Version) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) - } - l = len(m.Platform) - if l > 0 { - n += 1 + l + sovIntrospection(uint64(l)) - } - l = len(m.PeerId) + l = len(m.Name) if l > 0 { n += 1 + l + sovIntrospection(uint64(l)) } - if m.KeepStaleDataMs != 0 { - n += 1 + sovIntrospection(uint64(m.KeepStaleDataMs)) - } - if m.SendStateIntervalMs != 0 { - n += 1 + sovIntrospection(uint64(m.SendStateIntervalMs)) - } - if len(m.EventTypes) > 0 { - for _, e := range m.EventTypes { + if len(m.PropertyTypes) > 0 { + for _, e := range m.PropertyTypes { l = e.Size() n += 1 + l + sovIntrospection(uint64(l)) } @@ -4090,7 +4082,7 @@ func (m *Runtime) Size() (n int) { return n } -func (m *Runtime_EventType) Size() (n int) { +func (m *EventType_EventProperty) Size() (n int) { if m == nil { return 0 } @@ -4100,30 +4092,48 @@ func (m *Runtime_EventType) Size() (n int) { if l > 0 { n += 1 + l + sovIntrospection(uint64(l)) } - if len(m.Properties) > 0 { - for _, e := range m.Properties { - l = e.Size() - n += 1 + l + sovIntrospection(uint64(l)) - } + if m.Type != 0 { + n += 1 + sovIntrospection(uint64(m.Type)) + } + if m.HasMultiple { + n += 2 } return n } -func (m *Runtime_EventProperty) Size() (n int) { +func (m *Runtime) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Name) + l = len(m.Implementation) if l > 0 { n += 1 + l + sovIntrospection(uint64(l)) } - if m.Type != 0 { - n += 1 + sovIntrospection(uint64(m.Type)) + l = len(m.Version) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) } - if m.HasMultiple { - n += 2 + l = len(m.Platform) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + l = len(m.PeerId) + if l > 0 { + n += 1 + l + sovIntrospection(uint64(l)) + } + if m.KeepStaleDataMs != 0 { + n += 1 + sovIntrospection(uint64(m.KeepStaleDataMs)) + } + if m.SendStateIntervalMs != 0 { + n += 1 + sovIntrospection(uint64(m.SendStateIntervalMs)) + } + if len(m.EventTypes) > 0 { + for _, e := range m.EventTypes { + l = e.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } } return n } @@ -4568,8 +4578,8 @@ func (m *Event) Size() (n int) { } var l int _ = l - l = len(m.Type) - if l > 0 { + if m.Type != nil { + l = m.Type.Size() n += 1 + l + sovIntrospection(uint64(l)) } if m.Ts != nil { @@ -5158,9 +5168,251 @@ func (m *DataGauge) Unmarshal(dAtA []byte) error { } case 3: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field InstBw", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field InstBw", wireType) + } + m.InstBw = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.InstBw |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventType) 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 ErrIntOverflowIntrospection + } + 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: EventType: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventType: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PropertyTypes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PropertyTypes = append(m.PropertyTypes, &EventType_EventProperty{}) + if err := m.PropertyTypes[len(m.PropertyTypes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventType_EventProperty) 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 ErrIntOverflowIntrospection + } + 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: EventProperty: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventProperty: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= EventType_EventProperty_PropertyType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HasMultiple", wireType) } - m.InstBw = 0 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -5170,11 +5422,12 @@ func (m *DataGauge) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.InstBw |= uint64(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } + m.HasMultiple = bool(v != 0) default: iNdEx = preIndex skippy, err := skipIntrospection(dAtA[iNdEx:]) @@ -5423,7 +5676,7 @@ func (m *Runtime) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.EventTypes = append(m.EventTypes, &Runtime_EventType{}) + m.EventTypes = append(m.EventTypes, &EventType{}) if err := m.EventTypes[len(m.EventTypes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -5452,249 +5705,6 @@ func (m *Runtime) Unmarshal(dAtA []byte) error { } return nil } -func (m *Runtime_EventType) 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 ErrIntOverflowIntrospection - } - 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: EventType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EventType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Properties", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Properties = append(m.Properties, &Runtime_EventProperty{}) - if err := m.Properties[len(m.Properties)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipIntrospection(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthIntrospection - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthIntrospection - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Runtime_EventProperty) 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 ErrIntOverflowIntrospection - } - 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: EventProperty: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EventProperty: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - m.Type = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Type |= Runtime_EventProperty_PropertyType(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field HasMultiple", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.HasMultiple = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipIntrospection(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthIntrospection - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthIntrospection - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *EndpointPair) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -8509,7 +8519,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -8519,23 +8529,27 @@ func (m *Event) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthIntrospection } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthIntrospection } if postIndex > l { return io.ErrUnexpectedEOF } - m.Type = string(dAtA[iNdEx:postIndex]) + if m.Type == nil { + m.Type = &EventType{} + } + if err := m.Type.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 2 { diff --git a/introspection/pb/introspection.proto b/introspection/pb/introspection.proto index 5de55491..f9508a7a 100644 --- a/introspection/pb/introspection.proto +++ b/introspection/pb/introspection.proto @@ -50,38 +50,39 @@ message DataGauge { uint64 inst_bw = 3; } - -// Runtime encapsulates runtime info about a node. -message Runtime { - // metadata about types of event data being sent - message EventType { - // Name of event type e.g. PeerConnecting - string name = 1; - repeated EventProperty properties = 2; - } - - // metadata about content types in event's key:value content field +// describes a type of event +message EventType { + // metadata about content types in event's top-level content JSON message EventProperty { - // tell listener how to sort, filter or display known content properties + // tells client how to sort, filter or display known content properties enum PropertyType { - // treat as a simple primitive + // for properties to treat as a simple primitive STRING = 0; // default NUMBER = 1; - // apply human-readable formatting + // for properties with special human-readable formatting TIME = 10; PEERID = 11; MULTIADDR = 12; - // embedded arrays and/or object trees + // for complex structures like nested arrays, object trees etc JSON = 90; } // property name of content e.g. openTs string name = 1; // type to interpret content value as PropertyType type = 2; - // if true, expect an array of values of type - bool has_multiple = 3; + // if true, expect an array of values of `type`; else, singular + bool has_multiple = 3; } + // name of event type, e.g. PeerConnecting + string name = 1; + // for runtime, send property_types for all events already seen in events list + // for events, only send property_types in the first event of a type not in runtime + repeated EventProperty property_types = 2; +} + +// Runtime encapsulates runtime info about a node. +message Runtime { // e.g. go-libp2p, js-libp2p, rust-libp2p, etc. string implementation = 1; // e.g. 1.2.3. @@ -333,9 +334,12 @@ message State { // Event message Event { - string type = 1; - google.protobuf.Timestamp ts = 2; - string content = 3; // stringified json + // definition of event type, containing only `name` unless this is first encounter of novel event + EventType type = 1; + // time this event occurred + google.protobuf.Timestamp ts = 2; + // stringified json; top-level keys and value types match EventProperty definitions + string content = 3; } // ProtocolDataPacket wraps messages to be sent to clients to allow extension From 086efa616a18259a1846c93a93f1e0c6dd58f5dc Mon Sep 17 00:00:00 2001 From: Aarsh Shah Date: Thu, 16 Apr 2020 23:30:09 +0530 Subject: [PATCH 12/19] pass evt bus --- introspection/endpoint.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/introspection/endpoint.go b/introspection/endpoint.go index 9c0773e1..b5fec8ea 100644 --- a/introspection/endpoint.go +++ b/introspection/endpoint.go @@ -1,5 +1,7 @@ package introspection +import "github.com/libp2p/go-libp2p-core/event" + // Endpoint is the interface to be implemented by introspection // endpoints/servers. // @@ -9,7 +11,9 @@ type Endpoint interface { // Start starts the introspection endpoint. It must only be called once, and // once the server is started, subsequent calls made without first calling // Close will error. - Start() error + // It takes an event bus a parameter and uses it to subscribe to + // events that need to be pushed to the client. + Start(bus event.Bus) error // Close stops the introspection endpoint. Calls to Close on an already // closed endpoint, or an unstarted endpoint, must noop. From 365e59346b4b5526d2daa83c94add556d9a11df1 Mon Sep 17 00:00:00 2001 From: Aarsh Shah Date: Fri, 17 Apr 2020 13:32:53 +0530 Subject: [PATCH 13/19] dht events --- event/dht.go | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 event/dht.go diff --git a/event/dht.go b/event/dht.go new file mode 100644 index 00000000..9059db10 --- /dev/null +++ b/event/dht.go @@ -0,0 +1,10 @@ +package event + +// TODO This is simply for being able to show DHT events on the UI for now. +// DhtEvent is an event related to the DHT. +type DhtEvent struct { + // EventType is the type of the event that has occured. + EventType string + // EventJson is the JSON representation of the event payload. + EventJson string +} \ No newline at end of file From b224967ed43f6a723ef1133fff656381cfe116fc Mon Sep 17 00:00:00 2001 From: Aarsh Shah Date: Fri, 17 Apr 2020 13:46:28 +0530 Subject: [PATCH 14/19] JS String type --- event/dht.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/event/dht.go b/event/dht.go index 9059db10..56d7523e 100644 --- a/event/dht.go +++ b/event/dht.go @@ -1,10 +1,15 @@ package event +// TODO This is all hacky. Please don't judge the programmer on the +// basis of any of this. + +type JSString string + // TODO This is simply for being able to show DHT events on the UI for now. // DhtEvent is an event related to the DHT. type DhtEvent struct { // EventType is the type of the event that has occured. EventType string // EventJson is the JSON representation of the event payload. - EventJson string -} \ No newline at end of file + EventJson JSString +} From 616e011e7e9dc53653b8b80442bb2f78762ec657 Mon Sep 17 00:00:00 2001 From: Aarsh Shah Date: Fri, 24 Apr 2020 14:10:47 +0530 Subject: [PATCH 15/19] changed timestamps to int --- introspection/pb/introspection.pb.go | 689 +++++++++------------------ introspection/pb/introspection.proto | 28 +- 2 files changed, 243 insertions(+), 474 deletions(-) diff --git a/introspection/pb/introspection.pb.go b/introspection/pb/introspection.pb.go index ff4729ac..164edd33 100644 --- a/introspection/pb/introspection.pb.go +++ b/introspection/pb/introspection.pb.go @@ -6,7 +6,6 @@ package introspection import ( fmt "fmt" proto "github.com/gogo/protobuf/proto" - types "github.com/gogo/protobuf/types" io "io" math "math" math_bits "math/bits" @@ -1106,14 +1105,14 @@ func (*Connection) XXX_OneofWrappers() []interface{} { } } -// Timeline contains the timestamps of the well-known milestones of a connection. +// Timeline contains the timestamps (ms since epoch) of the well-known milestones of a connection. type Connection_Timeline struct { // the instant when a connection was opened on the wire. - OpenTs *types.Timestamp `protobuf:"bytes,1,opt,name=open_ts,json=openTs,proto3" json:"open_ts,omitempty"` + OpenTs uint64 `protobuf:"varint,1,opt,name=open_ts,json=openTs,proto3" json:"open_ts,omitempty"` // the instant when the upgrade process (handshake, security, multiplexing) finished. - UpgradedTs *types.Timestamp `protobuf:"bytes,2,opt,name=upgraded_ts,json=upgradedTs,proto3" json:"upgraded_ts,omitempty"` + UpgradedTs uint64 `protobuf:"varint,2,opt,name=upgraded_ts,json=upgradedTs,proto3" json:"upgraded_ts,omitempty"` // the instant when this connection was terminated. - CloseTs *types.Timestamp `protobuf:"bytes,3,opt,name=close_ts,json=closeTs,proto3" json:"close_ts,omitempty"` + CloseTs uint64 `protobuf:"varint,3,opt,name=close_ts,json=closeTs,proto3" json:"close_ts,omitempty"` } func (m *Connection_Timeline) Reset() { *m = Connection_Timeline{} } @@ -1149,25 +1148,25 @@ func (m *Connection_Timeline) XXX_DiscardUnknown() { var xxx_messageInfo_Connection_Timeline proto.InternalMessageInfo -func (m *Connection_Timeline) GetOpenTs() *types.Timestamp { +func (m *Connection_Timeline) GetOpenTs() uint64 { if m != nil { return m.OpenTs } - return nil + return 0 } -func (m *Connection_Timeline) GetUpgradedTs() *types.Timestamp { +func (m *Connection_Timeline) GetUpgradedTs() uint64 { if m != nil { return m.UpgradedTs } - return nil + return 0 } -func (m *Connection_Timeline) GetCloseTs() *types.Timestamp { +func (m *Connection_Timeline) GetCloseTs() uint64 { if m != nil { return m.CloseTs } - return nil + return 0 } // Attributes encapsulates the attributes of this connection. @@ -1430,12 +1429,12 @@ func (*Stream_ConnectionRef) XXX_OneofWrappers() []interface{} { } } -// Timeline contains the timestamps of the well-known milestones of a stream. +// Timeline contains the timestamps (ms since epoch) of the well-known milestones of a stream. type Stream_Timeline struct { // the instant when the stream was opened. - OpenTs *types.Timestamp `protobuf:"bytes,1,opt,name=open_ts,json=openTs,proto3" json:"open_ts,omitempty"` + OpenTs uint64 `protobuf:"varint,1,opt,name=open_ts,json=openTs,proto3" json:"open_ts,omitempty"` // the instant when the stream was terminated. - CloseTs *types.Timestamp `protobuf:"bytes,2,opt,name=close_ts,json=closeTs,proto3" json:"close_ts,omitempty"` + CloseTs uint64 `protobuf:"varint,2,opt,name=close_ts,json=closeTs,proto3" json:"close_ts,omitempty"` } func (m *Stream_Timeline) Reset() { *m = Stream_Timeline{} } @@ -1471,18 +1470,18 @@ func (m *Stream_Timeline) XXX_DiscardUnknown() { var xxx_messageInfo_Stream_Timeline proto.InternalMessageInfo -func (m *Stream_Timeline) GetOpenTs() *types.Timestamp { +func (m *Stream_Timeline) GetOpenTs() uint64 { if m != nil { return m.OpenTs } - return nil + return 0 } -func (m *Stream_Timeline) GetCloseTs() *types.Timestamp { +func (m *Stream_Timeline) GetCloseTs() uint64 { if m != nil { return m.CloseTs } - return nil + return 0 } // DHT metrics and state. @@ -1491,8 +1490,8 @@ type DHT struct { Protocol string `protobuf:"bytes,1,opt,name=protocol,proto3" json:"protocol,omitempty"` // protocol enabled. Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"` - // timestap of start up. - StartTs *types.Timestamp `protobuf:"bytes,3,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"` + // timestamp (ms since epoch) of start up. + StartTs uint64 `protobuf:"varint,3,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"` // params of the dht. Params *DHT_Params `protobuf:"bytes,4,opt,name=params,proto3" json:"params,omitempty"` // existing, intantiated buckets and their contents @@ -1550,11 +1549,11 @@ func (m *DHT) GetEnabled() bool { return false } -func (m *DHT) GetStartTs() *types.Timestamp { +func (m *DHT) GetStartTs() uint64 { if m != nil { return m.StartTs } - return nil + return 0 } func (m *DHT) GetParams() *DHT_Params { @@ -1904,9 +1903,9 @@ type State struct { // overall traffic for this peer Traffic *Traffic `protobuf:"bytes,2,opt,name=traffic,proto3" json:"traffic,omitempty"` // moment this data snapshot and instantaneous values were taken - InstantTs *types.Timestamp `protobuf:"bytes,3,opt,name=instant_ts,json=instantTs,proto3" json:"instant_ts,omitempty"` + InstantTs uint64 `protobuf:"varint,3,opt,name=instant_ts,json=instantTs,proto3" json:"instant_ts,omitempty"` // start of included data collection (cumulative values counted from here) - StartTs *types.Timestamp `protobuf:"bytes,4,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"` + StartTs uint64 `protobuf:"varint,4,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"` // length of time up to instant_ts covered by this data snapshot SnapshotDurationMs uint32 `protobuf:"varint,5,opt,name=snapshot_duration_ms,json=snapshotDurationMs,proto3" json:"snapshot_duration_ms,omitempty"` } @@ -1958,18 +1957,18 @@ func (m *State) GetTraffic() *Traffic { return nil } -func (m *State) GetInstantTs() *types.Timestamp { +func (m *State) GetInstantTs() uint64 { if m != nil { return m.InstantTs } - return nil + return 0 } -func (m *State) GetStartTs() *types.Timestamp { +func (m *State) GetStartTs() uint64 { if m != nil { return m.StartTs } - return nil + return 0 } func (m *State) GetSnapshotDurationMs() uint32 { @@ -1983,8 +1982,8 @@ func (m *State) GetSnapshotDurationMs() uint32 { type Event struct { // definition of event type, containing only `name` unless this is first encounter of novel event Type *EventType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - // time this event occurred - Ts *types.Timestamp `protobuf:"bytes,2,opt,name=ts,proto3" json:"ts,omitempty"` + // time this event occurred (ms since epoch) + Ts uint64 `protobuf:"varint,2,opt,name=ts,proto3" json:"ts,omitempty"` // stringified json; top-level keys and value types match EventProperty definitions Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` } @@ -2029,11 +2028,11 @@ func (m *Event) GetType() *EventType { return nil } -func (m *Event) GetTs() *types.Timestamp { +func (m *Event) GetTs() uint64 { if m != nil { return m.Ts } - return nil + return 0 } func (m *Event) GetContent() string { @@ -2266,136 +2265,133 @@ func init() { func init() { proto.RegisterFile("introspection.proto", fileDescriptor_53a8bedf9a75e10a) } var fileDescriptor_53a8bedf9a75e10a = []byte{ - // 2060 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0x5f, 0x73, 0x1b, 0x49, - 0x11, 0xd7, 0x3f, 0xeb, 0x4f, 0x4b, 0xf2, 0x89, 0x49, 0x08, 0x8a, 0x8e, 0xf3, 0x85, 0x4d, 0x08, - 0xa9, 0x10, 0x9c, 0x44, 0xb9, 0xd4, 0x5d, 0xee, 0xaa, 0x52, 0x65, 0x5b, 0xc2, 0x56, 0x2a, 0x92, - 0x75, 0xa3, 0x75, 0x8a, 0xa2, 0xa0, 0xb6, 0xd6, 0xbb, 0x13, 0x69, 0xf1, 0x6a, 0x77, 0x99, 0x99, - 0xf5, 0xe1, 0xa2, 0x78, 0xe6, 0x95, 0x47, 0x5e, 0xe0, 0x4b, 0xf0, 0x19, 0x28, 0x78, 0xbc, 0x37, - 0x78, 0x84, 0x84, 0xe2, 0x73, 0x50, 0x3d, 0x3b, 0x2b, 0xad, 0x65, 0x25, 0xe8, 0xe0, 0x49, 0xd3, - 0xdd, 0xbf, 0xee, 0xd9, 0x99, 0xfe, 0x33, 0xdd, 0x82, 0x6b, 0x5e, 0x20, 0x79, 0x28, 0x22, 0xe6, - 0x48, 0x2f, 0x0c, 0x76, 0x23, 0x1e, 0xca, 0x90, 0x34, 0x2f, 0x31, 0x3b, 0x1f, 0x4f, 0xc3, 0x70, - 0xea, 0xb3, 0x87, 0x4a, 0x78, 0x1a, 0xbf, 0x7e, 0x28, 0xbd, 0x39, 0x13, 0xd2, 0x9e, 0x47, 0x09, - 0xde, 0xb8, 0x0d, 0x95, 0x57, 0x8c, 0x0b, 0x2f, 0x0c, 0x48, 0x1b, 0x2a, 0xe7, 0xc9, 0xb2, 0x9d, - 0xbf, 0x95, 0xbf, 0xd7, 0xa4, 0x29, 0x69, 0x1c, 0x42, 0x93, 0x32, 0x11, 0xfb, 0xf2, 0x20, 0x8c, - 0x03, 0xc9, 0x38, 0xb9, 0x0e, 0x5b, 0x32, 0x94, 0xb6, 0xaf, 0x81, 0x09, 0x41, 0xb6, 0xa1, 0x10, - 0x9e, 0xb5, 0x0b, 0x8a, 0x55, 0x08, 0xcf, 0x48, 0x0b, 0x8a, 0x8c, 0xf3, 0x76, 0x51, 0x31, 0x70, - 0x69, 0xfc, 0xb1, 0x00, 0xdb, 0x13, 0xdf, 0x73, 0xbd, 0x60, 0x9a, 0x9a, 0xfa, 0x0e, 0x54, 0xc2, - 0x73, 0xc6, 0xad, 0xc7, 0x73, 0x6d, 0xac, 0x8c, 0xe4, 0xe3, 0xf9, 0x42, 0xf0, 0x74, 0xae, 0x4d, - 0x2a, 0xc1, 0xd3, 0x39, 0xb9, 0x09, 0xd5, 0x44, 0xe3, 0xe9, 0x5c, 0xdb, 0x56, 0xc0, 0xc7, 0x19, - 0xd1, 0x93, 0x47, 0xf3, 0x76, 0x69, 0x29, 0x7a, 0xf2, 0x28, 0xa3, 0x35, 0xe3, 0xed, 0xad, 0x8c, - 0xd6, 0x8c, 0x2f, 0x44, 0xdd, 0x19, 0x6f, 0x97, 0x97, 0xa2, 0x6e, 0x46, 0xf4, 0xc9, 0x8c, 0xb7, - 0x2b, 0x4b, 0xd1, 0x27, 0x19, 0xd1, 0x67, 0x33, 0xde, 0xae, 0x2e, 0x45, 0x9f, 0xcd, 0x38, 0xf9, - 0x10, 0x6a, 0xc9, 0x5e, 0x68, 0xb1, 0xa6, 0x64, 0x0a, 0x8b, 0xf4, 0x42, 0xd8, 0x45, 0x9b, 0xb0, - 0x14, 0x22, 0x6d, 0x9c, 0x42, 0xad, 0x67, 0x4b, 0xfb, 0xd0, 0x8e, 0xa7, 0x0c, 0x91, 0x4e, 0x3c, - 0xb7, 0x4e, 0x2f, 0x24, 0x13, 0xea, 0x72, 0x4a, 0xb4, 0xea, 0xc4, 0xf3, 0x7d, 0xa4, 0xc9, 0xc7, - 0x50, 0x47, 0x61, 0x64, 0x3b, 0x67, 0x4c, 0x0a, 0x75, 0x45, 0x25, 0x0a, 0x4e, 0x3c, 0x1f, 0x27, - 0x1c, 0xbc, 0x3f, 0x2f, 0x10, 0xd2, 0x3a, 0xfd, 0x4a, 0xdd, 0x52, 0x89, 0x96, 0x91, 0xdc, 0xff, - 0xca, 0xf8, 0x5b, 0x01, 0x6a, 0xfd, 0x73, 0x16, 0x48, 0xf3, 0x22, 0x62, 0x84, 0x40, 0x29, 0xb0, - 0xe7, 0x4c, 0xd9, 0xaf, 0x51, 0xb5, 0x26, 0x43, 0xd8, 0x8e, 0x78, 0x18, 0x31, 0x2e, 0x2f, 0x2c, - 0x79, 0x11, 0x31, 0x34, 0x5f, 0xbc, 0x57, 0xef, 0xde, 0xdd, 0xbd, 0x1c, 0x72, 0x0b, 0x2b, 0xc9, - 0x6a, 0xac, 0x75, 0x68, 0x33, 0xd5, 0x46, 0x99, 0xe8, 0xfc, 0x3b, 0x0f, 0xcd, 0x4b, 0x80, 0xb5, - 0x9b, 0x1e, 0x42, 0x09, 0xf7, 0x52, 0x27, 0xd9, 0xee, 0x3e, 0xd9, 0x6c, 0xab, 0xdd, 0x71, 0x66, - 0x27, 0xaa, 0x0c, 0x90, 0xef, 0x41, 0x63, 0x66, 0x0b, 0x6b, 0x1e, 0xfb, 0xd2, 0x8b, 0x7c, 0xa6, - 0x4e, 0x5f, 0xa5, 0xf5, 0x99, 0x2d, 0x86, 0x9a, 0x65, 0x9c, 0x40, 0x23, 0xab, 0x48, 0x00, 0xca, - 0x13, 0x93, 0x0e, 0x46, 0x87, 0xad, 0x1c, 0xae, 0x47, 0x27, 0xc3, 0xfd, 0x3e, 0x6d, 0xe5, 0x49, - 0x15, 0x4a, 0xe6, 0x60, 0xd8, 0x6f, 0x01, 0x72, 0xc7, 0xfd, 0x3e, 0x1d, 0xf4, 0x5a, 0x75, 0xd2, - 0x84, 0xda, 0xf0, 0xe4, 0xa5, 0x39, 0xd8, 0xeb, 0xf5, 0x68, 0xab, 0x81, 0xa0, 0x17, 0x93, 0xe3, - 0x51, 0xeb, 0xa7, 0xc6, 0x1f, 0x0a, 0x50, 0xa1, 0x71, 0x80, 0x39, 0x46, 0xee, 0xc2, 0xb6, 0x37, - 0x8f, 0x7c, 0x36, 0x67, 0x81, 0xb4, 0x65, 0x9a, 0x54, 0x35, 0xba, 0xc2, 0xcd, 0x66, 0x5d, 0x41, - 0x01, 0x52, 0x92, 0x74, 0xa0, 0x1a, 0xf9, 0xb6, 0x7c, 0x1d, 0xf2, 0x24, 0xce, 0x6b, 0x74, 0x41, - 0xa3, 0x73, 0x23, 0xc6, 0xb8, 0xe5, 0xb9, 0x2a, 0xce, 0x6b, 0xb4, 0x8c, 0xe4, 0xc0, 0x25, 0x3f, - 0x04, 0x72, 0xc6, 0x58, 0x64, 0x09, 0x69, 0xfb, 0xcc, 0x72, 0x6d, 0x69, 0x5b, 0x73, 0xa1, 0x03, - 0xfe, 0x03, 0x94, 0x4c, 0x50, 0x80, 0x31, 0x36, 0x14, 0xe4, 0x09, 0xdc, 0x10, 0x2c, 0x70, 0x11, - 0x2c, 0x99, 0xe5, 0x61, 0x3e, 0x9e, 0xdb, 0x3e, 0x2a, 0x24, 0x69, 0x70, 0x0d, 0xa5, 0x13, 0x14, - 0x0e, 0xb4, 0x6c, 0x28, 0xc8, 0x33, 0xa8, 0x33, 0x74, 0x81, 0x8e, 0x8c, 0x8a, 0x8a, 0x8c, 0xf6, - 0xbb, 0xdc, 0x45, 0x81, 0xa5, 0x4b, 0x61, 0xfc, 0x04, 0x1a, 0xfd, 0xc0, 0x8d, 0x42, 0x2f, 0x90, - 0x63, 0xdb, 0xe3, 0xe4, 0x36, 0x34, 0x05, 0x77, 0x12, 0x4f, 0xd9, 0xae, 0xcb, 0xf5, 0x15, 0x35, - 0x04, 0x77, 0x86, 0x29, 0x0f, 0x41, 0xae, 0x90, 0x19, 0x50, 0x72, 0x4d, 0x0d, 0x57, 0xc8, 0x05, - 0xc8, 0xf8, 0x0d, 0x54, 0x4c, 0x6e, 0xbf, 0x7e, 0xed, 0x39, 0xe4, 0x53, 0x00, 0x99, 0x2c, 0x2d, - 0x2f, 0xb9, 0xf4, 0xab, 0x9f, 0xb7, 0xc8, 0x31, 0x5a, 0xd3, 0xd8, 0x41, 0x80, 0x07, 0x4b, 0x15, - 0xc3, 0x58, 0xaa, 0x6d, 0xde, 0xa7, 0x99, 0xee, 0x72, 0x1c, 0x4b, 0xe3, 0x67, 0x00, 0x13, 0xc9, - 0x99, 0x3d, 0x7f, 0xe9, 0x09, 0x49, 0x3e, 0x02, 0x10, 0x8a, 0xb2, 0x3c, 0x17, 0x13, 0xb7, 0x78, - 0xaf, 0x41, 0x6b, 0x09, 0x67, 0xe0, 0x0a, 0xf2, 0x10, 0x2a, 0x09, 0x91, 0xa6, 0xd5, 0xb7, 0x57, - 0xf6, 0x48, 0x4c, 0xd1, 0x14, 0x65, 0xfc, 0xb6, 0x02, 0x70, 0x10, 0x06, 0x41, 0x22, 0xc6, 0x32, - 0xeb, 0xb9, 0xea, 0x60, 0x0d, 0x5a, 0xf0, 0xdc, 0x6c, 0x2c, 0x14, 0x2e, 0xc5, 0xc2, 0x8f, 0xa0, - 0x8c, 0x9e, 0x8d, 0x85, 0x0a, 0x9f, 0xed, 0x35, 0xfb, 0xa0, 0x90, 0x6a, 0x10, 0xe6, 0x8d, 0xe4, - 0x76, 0x20, 0xa2, 0x90, 0xcb, 0x34, 0xb0, 0x1a, 0xb4, 0xbe, 0xe0, 0x0d, 0x5c, 0xf2, 0x0c, 0x6a, - 0x4c, 0x3b, 0x30, 0x09, 0xaa, 0x7a, 0xf7, 0xc3, 0x55, 0xcf, 0x67, 0x1c, 0x4c, 0x97, 0x68, 0xf2, - 0x1c, 0xaa, 0x98, 0x17, 0xbe, 0x17, 0x30, 0x15, 0x5d, 0xf5, 0xae, 0xb1, 0xa2, 0xb9, 0x3c, 0xe2, - 0xae, 0xa9, 0x91, 0x74, 0xa1, 0x43, 0x7e, 0x00, 0x25, 0x1e, 0xfa, 0x4c, 0x55, 0xe1, 0xed, 0xee, - 0xb5, 0x15, 0x5d, 0x1a, 0xfa, 0x8c, 0x2a, 0x00, 0x79, 0x04, 0x15, 0xed, 0x19, 0x55, 0x96, 0xeb, - 0xdd, 0x1b, 0x2b, 0x58, 0x1d, 0x28, 0x34, 0x85, 0x91, 0xe7, 0x50, 0xb1, 0xa5, 0xe4, 0xde, 0xa9, - 0x50, 0xc5, 0xba, 0xde, 0xbd, 0xf3, 0xee, 0x2f, 0xdb, 0x53, 0xc0, 0x58, 0x32, 0x41, 0x53, 0x25, - 0xf4, 0xb7, 0x6f, 0x4b, 0x16, 0x38, 0x17, 0x56, 0x20, 0x54, 0x49, 0x2f, 0xd1, 0x9a, 0xe6, 0x8c, - 0x30, 0xcb, 0x16, 0xfe, 0xae, 0x2b, 0xf3, 0x37, 0xd7, 0xfa, 0x1b, 0x43, 0x67, 0xe1, 0x73, 0x72, - 0x13, 0x2a, 0x4e, 0x18, 0x04, 0xe8, 0x87, 0x16, 0xfa, 0xe1, 0x28, 0x47, 0xcb, 0xc8, 0x18, 0xb8, - 0xe4, 0x21, 0x94, 0x70, 0xd5, 0xfe, 0xd6, 0x5a, 0x63, 0xcb, 0x6f, 0x3d, 0xca, 0x51, 0x05, 0x24, - 0x0f, 0x80, 0xc4, 0x82, 0x71, 0x2b, 0xe2, 0xe1, 0xb9, 0xe7, 0x32, 0xd7, 0x92, 0xf6, 0x54, 0xb4, - 0x9d, 0x5b, 0xc5, 0x7b, 0x35, 0xda, 0x42, 0xc9, 0x58, 0x0b, 0x4c, 0x7b, 0x2a, 0x3a, 0x7f, 0xca, - 0x43, 0x35, 0xbd, 0x7f, 0xfc, 0xf6, 0x30, 0x62, 0x81, 0x25, 0x85, 0xce, 0xa4, 0xce, 0x6e, 0xd2, - 0x51, 0xec, 0xa6, 0x1d, 0x85, 0xf2, 0x95, 0xea, 0x28, 0x68, 0x19, 0xa1, 0xa6, 0x20, 0x5f, 0x40, - 0x3d, 0x8e, 0xa6, 0xdc, 0x56, 0x5b, 0x09, 0x9d, 0x48, 0xef, 0x53, 0x84, 0x14, 0x6e, 0x0a, 0xf2, - 0x14, 0xaa, 0x8e, 0x1f, 0x0a, 0x86, 0x9a, 0xc5, 0xff, 0xaa, 0x59, 0x51, 0x58, 0x53, 0x74, 0x46, - 0x00, 0x4b, 0xd7, 0x90, 0x5b, 0x50, 0x4f, 0xcb, 0xff, 0xaf, 0x58, 0x5a, 0x56, 0xb2, 0x2c, 0xb2, - 0x03, 0xc0, 0x02, 0x87, 0x5f, 0x44, 0x72, 0x59, 0x79, 0x33, 0x9c, 0xfd, 0x6d, 0x68, 0x70, 0xe6, - 0xdb, 0x17, 0xcc, 0xb5, 0xf0, 0x71, 0x7e, 0x51, 0xaa, 0x36, 0x5a, 0x2d, 0xe3, 0x6d, 0x09, 0xca, - 0x89, 0xb7, 0xae, 0x64, 0x21, 0x56, 0x6b, 0xfc, 0x3e, 0x27, 0xf4, 0xb5, 0xb9, 0x05, 0xbd, 0x88, - 0xdd, 0xe2, 0x37, 0x88, 0xdd, 0xd2, 0x66, 0xb1, 0xfb, 0xa9, 0x0e, 0x86, 0x24, 0x19, 0x6f, 0xaf, - 0x8d, 0xac, 0x4c, 0x4c, 0x50, 0xf6, 0x5a, 0x07, 0xc5, 0xe7, 0x57, 0xf2, 0x71, 0x67, 0xbd, 0xf2, - 0x9a, 0x5c, 0x5c, 0x16, 0x96, 0xca, 0x26, 0x85, 0xe5, 0x72, 0x7e, 0xb4, 0x56, 0xf3, 0xe3, 0x9b, - 0x85, 0xa7, 0x07, 0xcd, 0x4b, 0xc7, 0x59, 0xa4, 0x43, 0x7e, 0xd3, 0x74, 0xc8, 0xa4, 0x56, 0xe1, - 0x72, 0x6a, 0xed, 0x37, 0x00, 0x9c, 0x85, 0x42, 0xe7, 0xfc, 0xff, 0x4d, 0x84, 0x6c, 0x2c, 0x17, - 0x36, 0x8e, 0x65, 0xe3, 0x2f, 0x65, 0x28, 0xf6, 0x8e, 0xcc, 0x4b, 0x21, 0x95, 0x5f, 0x09, 0xa9, - 0x36, 0x54, 0x58, 0x60, 0x9f, 0xfa, 0x2c, 0x39, 0x44, 0x95, 0xa6, 0x24, 0x6e, 0x2a, 0xa4, 0xcd, - 0xe5, 0x86, 0x09, 0xa4, 0xb0, 0xa6, 0x20, 0x8f, 0xa1, 0x1c, 0xd9, 0x1c, 0x8b, 0x54, 0x69, 0xed, - 0x45, 0xf6, 0x8e, 0xcc, 0xdd, 0xb1, 0x02, 0x50, 0x0d, 0xc4, 0x3b, 0x39, 0x8d, 0x93, 0xf6, 0x73, - 0x4b, 0x3d, 0x64, 0xeb, 0x74, 0xf6, 0x15, 0x82, 0xa6, 0x48, 0x72, 0x04, 0x2d, 0x2f, 0x70, 0xc2, - 0xb9, 0x17, 0x4c, 0xad, 0x5f, 0xc6, 0x8c, 0x7b, 0x4c, 0xe8, 0xf8, 0xfb, 0x68, 0x8d, 0xf6, 0x97, - 0x31, 0xe3, 0x17, 0xc9, 0x7b, 0xfb, 0x41, 0xaa, 0xf6, 0x65, 0xa2, 0x85, 0x96, 0xc2, 0x58, 0x4e, - 0xc3, 0xac, 0xa5, 0xca, 0x46, 0x96, 0x52, 0x35, 0x6d, 0xa9, 0x33, 0x85, 0x72, 0x72, 0x34, 0xd2, - 0x80, 0xfc, 0x99, 0x6e, 0xb5, 0xf3, 0x67, 0x38, 0xe6, 0xd8, 0x7e, 0x34, 0xb3, 0x75, 0x77, 0x9d, - 0x10, 0xe4, 0xfb, 0xb0, 0xed, 0x7a, 0xe2, 0x17, 0xf8, 0xac, 0x59, 0x91, 0x2d, 0x67, 0x42, 0xf7, - 0xd7, 0xcd, 0x94, 0x3b, 0x46, 0x26, 0xf6, 0xb8, 0xa7, 0x4c, 0xda, 0xea, 0x3a, 0x4b, 0x54, 0xad, - 0x3b, 0x7f, 0xce, 0x43, 0x6d, 0x8c, 0x8f, 0x73, 0x80, 0xfe, 0xcd, 0x3c, 0xdc, 0xf9, 0x4b, 0x0f, - 0xf7, 0x17, 0x8b, 0xfc, 0x4a, 0x9a, 0xe1, 0xdb, 0xeb, 0x7c, 0x91, 0x9a, 0x59, 0xcd, 0x36, 0x03, - 0x9a, 0xf6, 0x14, 0xbb, 0x39, 0x2b, 0xb9, 0x72, 0x3d, 0x23, 0xd5, 0xed, 0x29, 0x1b, 0x04, 0x89, - 0x37, 0x8c, 0xe7, 0x58, 0xc6, 0x14, 0x1a, 0xa0, 0xbc, 0x77, 0x60, 0x0e, 0x5e, 0xf5, 0x5b, 0x39, - 0x52, 0x87, 0xca, 0x70, 0x30, 0x99, 0x60, 0x1b, 0x9c, 0x27, 0x0d, 0xa8, 0xd2, 0xfe, 0x8b, 0xfe, - 0x81, 0xd9, 0xef, 0xb5, 0x0a, 0xd8, 0xf2, 0x1e, 0xec, 0x8d, 0x7a, 0x83, 0xde, 0x9e, 0xd9, 0x6f, - 0x15, 0x3b, 0x23, 0x28, 0x27, 0x96, 0x70, 0xc6, 0x73, 0xa2, 0x74, 0x0e, 0xc4, 0x25, 0xe9, 0xc2, - 0x16, 0x1e, 0x23, 0x6d, 0x6e, 0xbe, 0xfb, 0xbe, 0x6f, 0xa7, 0x09, 0xb4, 0xf3, 0x0a, 0x60, 0xe9, - 0x1f, 0x8c, 0x6d, 0x11, 0x3b, 0x0e, 0x13, 0xe9, 0xd4, 0x93, 0x92, 0xe8, 0x10, 0xc6, 0x79, 0xc8, - 0x53, 0x87, 0x28, 0x02, 0xf1, 0x58, 0x9a, 0xb0, 0x69, 0x4b, 0x3c, 0x91, 0x92, 0x46, 0x08, 0x30, - 0x89, 0x4f, 0xc5, 0x85, 0x90, 0x6c, 0xae, 0xde, 0xa5, 0x65, 0x76, 0x27, 0x8d, 0xd9, 0xfb, 0x0a, - 0x06, 0xcd, 0xa2, 0xc9, 0x1d, 0x28, 0xba, 0xb3, 0xb4, 0x2b, 0x24, 0x57, 0x0f, 0x45, 0x51, 0x6c, - 0xfc, 0xbe, 0x00, 0x5b, 0xaa, 0x61, 0x26, 0xcf, 0x00, 0xc4, 0x62, 0xeb, 0x77, 0x14, 0xa7, 0xe5, - 0xb7, 0xd1, 0x0c, 0x38, 0xfb, 0x0a, 0x14, 0x36, 0x7b, 0x05, 0x9e, 0x01, 0xe0, 0x70, 0x67, 0x07, - 0x1b, 0x66, 0x7d, 0x4d, 0xa3, 0x93, 0x1a, 0xb5, 0x28, 0x17, 0xa5, 0xcd, 0xcb, 0xc5, 0x23, 0xb8, - 0x2e, 0x02, 0x3b, 0x12, 0xb3, 0x50, 0x5a, 0x6e, 0xcc, 0xd5, 0x2c, 0xb3, 0x9c, 0x34, 0x48, 0x2a, - 0xeb, 0x69, 0xd1, 0x50, 0x18, 0xbf, 0x86, 0x2d, 0x35, 0x15, 0x90, 0x07, 0x7a, 0xd0, 0x5b, 0xdf, - 0x9a, 0x2f, 0x27, 0x87, 0x64, 0x9a, 0xbb, 0x0f, 0x85, 0x8d, 0xaa, 0x67, 0x41, 0x0a, 0x0c, 0x04, - 0x27, 0x0c, 0x24, 0x0b, 0xa4, 0x1e, 0x98, 0x52, 0xd2, 0xf8, 0x67, 0x1e, 0xc8, 0x58, 0xd7, 0x4e, - 0x6c, 0xe1, 0x93, 0x21, 0x19, 0x6f, 0x3a, 0xfb, 0x97, 0xc7, 0xd5, 0x9b, 0xd6, 0xff, 0x8d, 0x2c, - 0x87, 0xb2, 0x07, 0xb0, 0xa5, 0xa6, 0x25, 0xfd, 0x45, 0xd7, 0xd7, 0xbc, 0x7c, 0xec, 0x28, 0x47, - 0x13, 0x10, 0xe9, 0x42, 0x85, 0x27, 0xf3, 0xa0, 0x76, 0xca, 0xaa, 0x7d, 0x3d, 0x2d, 0x1e, 0xe5, - 0x68, 0x0a, 0xc4, 0x1d, 0xd4, 0xc8, 0xa4, 0xbd, 0x71, 0x7d, 0xdd, 0xfd, 0xe0, 0x0e, 0x0a, 0xb4, - 0x5f, 0x83, 0xca, 0x9c, 0x09, 0x61, 0x4f, 0x99, 0xf1, 0xaf, 0x02, 0x34, 0x0e, 0x7c, 0x8f, 0x05, - 0x72, 0xe2, 0x4d, 0x03, 0xdb, 0xff, 0x1f, 0x4e, 0xf7, 0x39, 0x94, 0x85, 0xd2, 0xd5, 0x85, 0xe7, - 0x4a, 0x8b, 0x9e, 0x31, 0xbf, 0x9b, 0xfc, 0x50, 0xad, 0x41, 0x0e, 0xa1, 0xae, 0xc6, 0x4d, 0x11, - 0xc6, 0xdc, 0x49, 0x7b, 0x9d, 0xbb, 0xef, 0x33, 0x80, 0x8e, 0x98, 0x28, 0x34, 0x05, 0x77, 0xb1, - 0xce, 0x7a, 0xb1, 0x74, 0xd9, 0x8b, 0x3f, 0x87, 0xb2, 0x3e, 0x5a, 0x13, 0x6a, 0x93, 0xfe, 0xa8, - 0x67, 0xf5, 0xf6, 0xcc, 0xbd, 0x56, 0x8e, 0xdc, 0x00, 0x32, 0xde, 0x3b, 0x99, 0xf4, 0xad, 0xf1, - 0xc9, 0xe4, 0xc8, 0xea, 0x0f, 0x07, 0xa6, 0xa9, 0xe6, 0xf7, 0x36, 0x5c, 0x3f, 0x19, 0xad, 0x91, - 0x14, 0x08, 0x81, 0xed, 0x83, 0xe3, 0xd1, 0x8f, 0x07, 0x87, 0x0b, 0x1e, 0x18, 0x77, 0x00, 0x96, - 0x9f, 0x44, 0x6a, 0xb0, 0x35, 0x31, 0xb1, 0xdc, 0xa9, 0xc2, 0x48, 0x4f, 0x46, 0xea, 0x9f, 0x80, - 0xfc, 0xfd, 0xfe, 0xda, 0xda, 0x09, 0x50, 0x3e, 0x78, 0x79, 0x3c, 0xe9, 0xf7, 0x5a, 0x79, 0x84, - 0x1f, 0x8f, 0xfb, 0x23, 0xac, 0xa3, 0x05, 0x24, 0x50, 0x80, 0x44, 0x11, 0x6d, 0xf6, 0x29, 0x3d, - 0xa6, 0xad, 0xd2, 0xfd, 0x3b, 0x50, 0xc2, 0xc6, 0x0f, 0x4f, 0x32, 0x18, 0x0d, 0xcc, 0xc1, 0x9e, - 0x79, 0x4c, 0x5b, 0x39, 0x24, 0x69, 0x7f, 0x32, 0x3e, 0x1e, 0xf5, 0xf0, 0x00, 0xfb, 0xed, 0xbf, - 0xbe, 0xd9, 0xc9, 0x7f, 0xfd, 0x66, 0x27, 0xff, 0x8f, 0x37, 0x3b, 0xf9, 0xdf, 0xbd, 0xdd, 0xc9, - 0x7d, 0xfd, 0x76, 0x27, 0xf7, 0xf7, 0xb7, 0x3b, 0xb9, 0xd3, 0xb2, 0xca, 0x81, 0x27, 0xff, 0x09, - 0x00, 0x00, 0xff, 0xff, 0xfd, 0xc7, 0x36, 0x7c, 0x06, 0x14, 0x00, 0x00, + // 2012 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x5f, 0x6f, 0xdb, 0xc8, + 0x11, 0xd7, 0x3f, 0xeb, 0xcf, 0xe8, 0xcf, 0xa9, 0x7b, 0x69, 0xaa, 0xf8, 0x1a, 0x37, 0x65, 0xd2, + 0x34, 0xb8, 0xa6, 0xbe, 0x44, 0xb9, 0xe0, 0x2e, 0x77, 0x40, 0x00, 0xdb, 0x52, 0x6d, 0x05, 0x91, + 0xac, 0x5b, 0xd1, 0x41, 0x51, 0xb4, 0x20, 0x68, 0x72, 0x23, 0xb1, 0xa6, 0x48, 0x76, 0x77, 0xe9, + 0xab, 0x1f, 0xfa, 0x1d, 0xfa, 0x05, 0xda, 0x2f, 0x70, 0x6f, 0xfd, 0x0e, 0x05, 0xfa, 0x78, 0x6f, + 0xed, 0xe3, 0x35, 0x29, 0xfa, 0x39, 0x8a, 0x59, 0x2e, 0x29, 0xca, 0x56, 0x02, 0x5f, 0x9f, 0xb4, + 0x33, 0xf3, 0x9b, 0x59, 0xee, 0xce, 0x9f, 0x9d, 0x11, 0x7c, 0xe8, 0x05, 0x92, 0x87, 0x22, 0x62, + 0x8e, 0xf4, 0xc2, 0x60, 0x37, 0xe2, 0xa1, 0x0c, 0x49, 0x7b, 0x8d, 0x69, 0xdc, 0x85, 0xda, 0x2b, + 0xc6, 0x85, 0x17, 0x06, 0xa4, 0x07, 0xb5, 0xf3, 0x64, 0xd9, 0x2b, 0xde, 0x29, 0x3e, 0x68, 0xd3, + 0x94, 0x34, 0x0e, 0xa1, 0x4d, 0x99, 0x88, 0x7d, 0x79, 0x10, 0xc6, 0x81, 0x64, 0x9c, 0xdc, 0x80, + 0x2d, 0x19, 0x4a, 0xdb, 0xd7, 0xc0, 0x84, 0x20, 0x1d, 0x28, 0x85, 0x67, 0xbd, 0x92, 0x62, 0x95, + 0xc2, 0x33, 0xd2, 0x85, 0x32, 0xe3, 0xbc, 0x57, 0x56, 0x0c, 0x5c, 0x1a, 0x7f, 0x2d, 0x41, 0x67, + 0xe6, 0x7b, 0xae, 0x17, 0xcc, 0x53, 0x53, 0x3f, 0x82, 0x5a, 0x78, 0xce, 0xb8, 0xf5, 0x78, 0xa9, + 0x8d, 0x55, 0x91, 0x7c, 0xbc, 0xcc, 0x04, 0x4f, 0x97, 0xda, 0xa4, 0x12, 0x3c, 0x5d, 0x92, 0x5b, + 0x50, 0x4f, 0x34, 0x9e, 0x2e, 0xb5, 0x6d, 0x05, 0x7c, 0x9c, 0x13, 0x3d, 0x79, 0xb4, 0xec, 0x55, + 0x56, 0xa2, 0x27, 0x8f, 0x72, 0x5a, 0x0b, 0xde, 0xdb, 0xca, 0x69, 0x2d, 0x78, 0x26, 0xea, 0x2f, + 0x78, 0xaf, 0xba, 0x12, 0xf5, 0x73, 0xa2, 0x4f, 0x17, 0xbc, 0x57, 0x5b, 0x89, 0x3e, 0xcd, 0x89, + 0x3e, 0x5f, 0xf0, 0x5e, 0x7d, 0x25, 0xfa, 0x7c, 0xc1, 0xc9, 0x47, 0xd0, 0x48, 0xf6, 0x42, 0x8b, + 0x0d, 0x25, 0x53, 0x58, 0xa4, 0x33, 0x61, 0x1f, 0x6d, 0xc2, 0x4a, 0x88, 0xb4, 0x71, 0x0a, 0x8d, + 0x81, 0x2d, 0xed, 0x43, 0x3b, 0x9e, 0x33, 0x44, 0x3a, 0xf1, 0xd2, 0x3a, 0xbd, 0x90, 0x4c, 0xa8, + 0xcb, 0xa9, 0xd0, 0xba, 0x13, 0x2f, 0xf7, 0x91, 0x26, 0x3f, 0x81, 0x26, 0x0a, 0x23, 0xdb, 0x39, + 0x63, 0x52, 0xa8, 0x2b, 0xaa, 0x50, 0x70, 0xe2, 0xe5, 0x34, 0xe1, 0xe0, 0xfd, 0x79, 0x81, 0x90, + 0xd6, 0xe9, 0xd7, 0xea, 0x96, 0x2a, 0xb4, 0x8a, 0xe4, 0xfe, 0xd7, 0xc6, 0x3f, 0x4b, 0xd0, 0x18, + 0x9e, 0xb3, 0x40, 0x9a, 0x17, 0x11, 0x23, 0x04, 0x2a, 0x81, 0xbd, 0x64, 0xca, 0x7e, 0x83, 0xaa, + 0x35, 0x19, 0x43, 0x27, 0xe2, 0x61, 0xc4, 0xb8, 0xbc, 0xb0, 0xe4, 0x45, 0xc4, 0xd0, 0x7c, 0xf9, + 0x41, 0xb3, 0x7f, 0x7f, 0x77, 0x3d, 0xa2, 0x32, 0x2b, 0xc9, 0x6a, 0xaa, 0x75, 0x68, 0x3b, 0xd5, + 0x46, 0x99, 0xd8, 0xfe, 0x6f, 0x11, 0xda, 0x6b, 0x80, 0x8d, 0x9b, 0x1e, 0x42, 0x05, 0xf7, 0x52, + 0x27, 0xe9, 0xf4, 0x9f, 0x5c, 0x6f, 0xab, 0xdd, 0x69, 0x6e, 0x27, 0xaa, 0x0c, 0x90, 0x9f, 0x42, + 0x6b, 0x61, 0x0b, 0x6b, 0x19, 0xfb, 0xd2, 0x8b, 0x7c, 0xa6, 0x4e, 0x5f, 0xa7, 0xcd, 0x85, 0x2d, + 0xc6, 0x9a, 0x65, 0x9c, 0x40, 0x2b, 0xaf, 0x48, 0x00, 0xaa, 0x33, 0x93, 0x8e, 0x26, 0x87, 0xdd, + 0x02, 0xae, 0x27, 0x27, 0xe3, 0xfd, 0x21, 0xed, 0x16, 0x49, 0x1d, 0x2a, 0xe6, 0x68, 0x3c, 0xec, + 0x02, 0x72, 0xa7, 0xc3, 0x21, 0x1d, 0x0d, 0xba, 0x4d, 0xd2, 0x86, 0xc6, 0xf8, 0xe4, 0xa5, 0x39, + 0xda, 0x1b, 0x0c, 0x68, 0xb7, 0x85, 0xa0, 0x17, 0xb3, 0xe3, 0x49, 0xf7, 0x37, 0xc6, 0x5f, 0x4a, + 0x50, 0xa3, 0x71, 0x20, 0xbd, 0x25, 0x23, 0xf7, 0xa1, 0xe3, 0x2d, 0x23, 0x9f, 0x2d, 0x59, 0x20, + 0x6d, 0x99, 0x26, 0x55, 0x83, 0x5e, 0xe2, 0xe6, 0xb3, 0xae, 0xa4, 0x00, 0x29, 0x49, 0xb6, 0xa1, + 0x1e, 0xf9, 0xb6, 0x7c, 0x1d, 0xf2, 0x24, 0xce, 0x1b, 0x34, 0xa3, 0xd1, 0xb9, 0x11, 0x63, 0xdc, + 0xf2, 0x5c, 0x15, 0xe7, 0x0d, 0x5a, 0x45, 0x72, 0xe4, 0x92, 0x5f, 0x00, 0x39, 0x63, 0x2c, 0xb2, + 0x84, 0xb4, 0x7d, 0x66, 0xb9, 0xb6, 0xb4, 0xad, 0xa5, 0xd0, 0x01, 0xff, 0x01, 0x4a, 0x66, 0x28, + 0xc0, 0x18, 0x1b, 0x0b, 0xf2, 0x04, 0x6e, 0x0a, 0x16, 0xb8, 0x08, 0x96, 0xcc, 0xf2, 0x30, 0x1f, + 0xcf, 0x6d, 0x1f, 0x15, 0x92, 0x34, 0xf8, 0x10, 0xa5, 0x33, 0x14, 0x8e, 0xb4, 0x6c, 0x2c, 0xc8, + 0x33, 0x68, 0x32, 0x74, 0x81, 0x8e, 0x8c, 0x9a, 0x8a, 0x8c, 0xde, 0xbb, 0xdc, 0x45, 0x81, 0xa5, + 0x4b, 0x61, 0xfc, 0x1a, 0x5a, 0xc3, 0xc0, 0x8d, 0x42, 0x2f, 0x90, 0x53, 0xdb, 0xe3, 0xe4, 0x2e, + 0xb4, 0x05, 0x77, 0x12, 0x4f, 0xd9, 0xae, 0xcb, 0xf5, 0x15, 0xb5, 0x04, 0x77, 0xc6, 0x29, 0x0f, + 0x41, 0xae, 0x90, 0x39, 0x50, 0x72, 0x4d, 0x2d, 0x57, 0xc8, 0x0c, 0x64, 0xfc, 0x09, 0x6a, 0x26, + 0xb7, 0x5f, 0xbf, 0xf6, 0x1c, 0xf2, 0x19, 0x80, 0x4c, 0x96, 0x96, 0x97, 0x5c, 0xfa, 0xd5, 0xcf, + 0xcb, 0x72, 0x8c, 0x36, 0x34, 0x76, 0x14, 0xe0, 0xc1, 0x52, 0xc5, 0x30, 0x96, 0x6a, 0x9b, 0xf7, + 0x69, 0xa6, 0xbb, 0x1c, 0xc7, 0xd2, 0xf8, 0x2d, 0xc0, 0x4c, 0x72, 0x66, 0x2f, 0x5f, 0x7a, 0x42, + 0x92, 0xdb, 0x00, 0x42, 0x51, 0x96, 0xe7, 0x62, 0xe2, 0x96, 0x1f, 0xb4, 0x68, 0x23, 0xe1, 0x8c, + 0x5c, 0x41, 0x3e, 0x81, 0x5a, 0x42, 0xa4, 0x69, 0xf5, 0xc3, 0x4b, 0x7b, 0x24, 0xa6, 0x68, 0x8a, + 0x32, 0xfe, 0x56, 0x05, 0x38, 0x08, 0x83, 0x20, 0x11, 0x63, 0x99, 0xf5, 0x5c, 0x75, 0xb0, 0x16, + 0x2d, 0x79, 0x6e, 0x3e, 0x16, 0x4a, 0x6b, 0xb1, 0xf0, 0x4b, 0xa8, 0xa2, 0x67, 0x63, 0xa1, 0xc2, + 0xa7, 0xb3, 0x61, 0x1f, 0x14, 0x52, 0x0d, 0xc2, 0xbc, 0x91, 0xdc, 0x0e, 0x44, 0x14, 0x72, 0x99, + 0x06, 0x56, 0x8b, 0x36, 0x33, 0xde, 0xc8, 0x25, 0xcf, 0xa0, 0xc1, 0xb4, 0x03, 0x93, 0xa0, 0x6a, + 0xf6, 0x3f, 0xba, 0xec, 0xf9, 0x9c, 0x83, 0xe9, 0x0a, 0x4d, 0x9e, 0x43, 0x1d, 0xf3, 0xc2, 0xf7, + 0x02, 0xa6, 0xa2, 0xab, 0xd9, 0x37, 0x2e, 0x69, 0xae, 0x8e, 0xb8, 0x6b, 0x6a, 0x24, 0xcd, 0x74, + 0xc8, 0xcf, 0xa1, 0xc2, 0x43, 0x9f, 0xa9, 0x2a, 0xdc, 0xe9, 0x7f, 0x78, 0x49, 0x97, 0x86, 0x3e, + 0xa3, 0x0a, 0x40, 0x1e, 0x41, 0x4d, 0x7b, 0x46, 0x95, 0xe5, 0x66, 0xff, 0xe6, 0x25, 0xac, 0x0e, + 0x14, 0x9a, 0xc2, 0xc8, 0x73, 0xa8, 0xd9, 0x52, 0x72, 0xef, 0x54, 0xa8, 0x62, 0xdd, 0xec, 0xdf, + 0x7b, 0xf7, 0x97, 0xed, 0x29, 0x60, 0x2c, 0x99, 0xa0, 0xa9, 0x12, 0xfa, 0xdb, 0xb7, 0x25, 0x0b, + 0x9c, 0x0b, 0x2b, 0x10, 0xaa, 0xa4, 0x57, 0x68, 0x43, 0x73, 0x26, 0x98, 0x65, 0x99, 0xbf, 0x9b, + 0xca, 0xfc, 0xad, 0x8d, 0xfe, 0xc6, 0xd0, 0xc9, 0x7c, 0x4e, 0x6e, 0x41, 0xcd, 0x09, 0x83, 0x00, + 0xfd, 0xd0, 0x45, 0x3f, 0x1c, 0x15, 0x68, 0x15, 0x19, 0x23, 0x97, 0x7c, 0x02, 0x15, 0x5c, 0xf5, + 0x7e, 0xb0, 0xd1, 0xd8, 0xea, 0x5b, 0x8f, 0x0a, 0x54, 0x01, 0xc9, 0x43, 0x20, 0xb1, 0x60, 0xdc, + 0x8a, 0x78, 0x78, 0xee, 0xb9, 0xcc, 0xb5, 0xa4, 0x3d, 0x17, 0x3d, 0xe7, 0x4e, 0xf9, 0x41, 0x83, + 0x76, 0x51, 0x32, 0xd5, 0x02, 0xd3, 0x9e, 0x8b, 0x6d, 0x0b, 0xea, 0xe9, 0xf5, 0xab, 0x37, 0x38, + 0x62, 0x81, 0x25, 0xd3, 0xf7, 0xa7, 0x8a, 0xa4, 0xa9, 0x5e, 0x9f, 0x38, 0x9a, 0x73, 0x5b, 0x59, + 0xcb, 0x5e, 0x9f, 0x94, 0x65, 0xe2, 0xf7, 0xd7, 0x1d, 0x3f, 0x14, 0x0c, 0xa5, 0xc9, 0xf3, 0x53, + 0x53, 0xb4, 0x29, 0xb6, 0x27, 0x00, 0xab, 0x5b, 0x24, 0x77, 0xa0, 0x99, 0x56, 0xea, 0x3f, 0xb2, + 0xb4, 0x02, 0xe4, 0x59, 0x64, 0x07, 0x80, 0x05, 0x0e, 0xbf, 0x88, 0xe4, 0xaa, 0x48, 0xe6, 0x38, + 0xfb, 0x1d, 0x68, 0x71, 0xe6, 0xdb, 0x17, 0xcc, 0xb5, 0xf0, 0x1d, 0x7d, 0x51, 0xa9, 0xb7, 0xba, + 0x5d, 0xe3, 0x9b, 0x0a, 0x54, 0x93, 0x8b, 0xbd, 0x92, 0x30, 0x58, 0x58, 0xb1, 0x17, 0x72, 0x42, + 0x5f, 0x9b, 0xcb, 0xe8, 0x2c, 0xcc, 0xca, 0xdf, 0x23, 0xcc, 0x2a, 0xd7, 0x0b, 0xb3, 0xcf, 0xb4, + 0xdf, 0x92, 0xbc, 0xb9, 0xbb, 0x31, 0x08, 0x72, 0xee, 0xa3, 0xec, 0xb5, 0xf6, 0xdf, 0x17, 0x57, + 0x52, 0x67, 0x67, 0xb3, 0xf2, 0x86, 0xb4, 0x59, 0xd5, 0x80, 0xda, 0x75, 0x6a, 0xc0, 0x7a, 0x28, + 0x77, 0x2f, 0x87, 0xf2, 0xf7, 0x8b, 0x24, 0x0f, 0xda, 0x6b, 0xc7, 0xc9, 0x22, 0xb7, 0x78, 0xdd, + 0xc8, 0xcd, 0x65, 0x41, 0x69, 0x3d, 0x0b, 0xf6, 0x5b, 0x00, 0x4e, 0xa6, 0xb0, 0xfd, 0xfc, 0x3a, + 0x41, 0x9b, 0x8f, 0xc9, 0xd2, 0x5a, 0x4c, 0x1a, 0xdf, 0x54, 0xa1, 0x3c, 0x38, 0x32, 0xd7, 0x42, + 0xa3, 0x78, 0x29, 0x34, 0x7a, 0x50, 0x63, 0x81, 0x7d, 0xea, 0xb3, 0xe4, 0x63, 0xea, 0x34, 0x25, + 0xd1, 0xb0, 0x90, 0x36, 0x97, 0xb9, 0x60, 0x57, 0xb4, 0x29, 0xc8, 0x63, 0xa8, 0x46, 0x36, 0xc7, + 0xdc, 0xaf, 0x6c, 0x3c, 0xf4, 0xe0, 0xc8, 0xdc, 0x9d, 0x2a, 0x00, 0xd5, 0x40, 0xac, 0x17, 0xa7, + 0x71, 0xd2, 0xd5, 0x6d, 0xa9, 0xf7, 0x61, 0x93, 0xce, 0xbe, 0x42, 0xd0, 0x14, 0x49, 0x8e, 0xa0, + 0xeb, 0x05, 0x4e, 0xb8, 0xf4, 0x82, 0xb9, 0xf5, 0x87, 0x98, 0x71, 0x8f, 0x09, 0x1d, 0x2b, 0xb7, + 0x37, 0x68, 0x7f, 0x15, 0x33, 0x7e, 0x91, 0x3c, 0x63, 0x1f, 0xa4, 0x6a, 0x5f, 0x25, 0x5a, 0x68, + 0x29, 0x8c, 0xe5, 0x3c, 0xcc, 0x5b, 0xaa, 0x5d, 0xcb, 0x52, 0xaa, 0xa6, 0x2d, 0x6d, 0xcf, 0xa1, + 0x9a, 0x1c, 0x8d, 0xb4, 0xa0, 0x78, 0xa6, 0x9d, 0x51, 0x3c, 0xc3, 0xe9, 0xc1, 0xf6, 0xa3, 0x85, + 0xad, 0x9d, 0x90, 0x10, 0xe4, 0x67, 0xd0, 0x71, 0x3d, 0xf1, 0x7b, 0x7c, 0x2d, 0xac, 0xc8, 0x96, + 0x8b, 0xf4, 0x2a, 0xdb, 0x29, 0x77, 0x8a, 0x4c, 0x6c, 0x1d, 0x4f, 0x99, 0xb4, 0xd5, 0x75, 0x56, + 0xa8, 0x5a, 0x6f, 0xff, 0xbd, 0x08, 0x8d, 0x29, 0xbe, 0x79, 0x01, 0xfa, 0x30, 0xf7, 0x1e, 0x16, + 0xd7, 0xde, 0xc3, 0x2f, 0xb3, 0x5c, 0x48, 0x7a, 0xcc, 0xbb, 0x9b, 0x7c, 0x91, 0x9a, 0xb9, 0x9c, + 0x19, 0x06, 0xb4, 0xed, 0x39, 0x36, 0x49, 0x56, 0x72, 0xe5, 0x7a, 0xf4, 0x68, 0xda, 0x73, 0x36, + 0x0a, 0x12, 0x6f, 0x18, 0xcf, 0xb1, 0xe4, 0x28, 0x34, 0x40, 0x75, 0xef, 0xc0, 0x1c, 0xbd, 0x1a, + 0x76, 0x0b, 0xa4, 0x09, 0xb5, 0xf1, 0x68, 0x36, 0xc3, 0xee, 0xb2, 0x48, 0x5a, 0x50, 0xa7, 0xc3, + 0x17, 0xc3, 0x03, 0x73, 0x38, 0xe8, 0x96, 0xb0, 0x93, 0x3c, 0xd8, 0x9b, 0x0c, 0x46, 0x83, 0x3d, + 0x73, 0xd8, 0x2d, 0x6f, 0x4f, 0xa0, 0x9a, 0x58, 0xc2, 0xd1, 0xc9, 0x89, 0xd2, 0xf1, 0x0a, 0x97, + 0xa4, 0x0f, 0x5b, 0x78, 0x8c, 0xb4, 0x67, 0xf8, 0xf1, 0xfb, 0xbe, 0x9d, 0x26, 0xd0, 0xed, 0x57, + 0x00, 0x2b, 0xff, 0x60, 0xfc, 0x8a, 0xd8, 0x71, 0x98, 0x48, 0xf3, 0x22, 0x25, 0xd1, 0x21, 0x8c, + 0xf3, 0x90, 0xa7, 0x0e, 0x51, 0x04, 0xe2, 0xb1, 0x8c, 0x60, 0x2f, 0xa4, 0x83, 0x5a, 0x93, 0x46, + 0x08, 0x30, 0x8b, 0x4f, 0xc5, 0x85, 0x90, 0x6c, 0x29, 0xc8, 0x97, 0xd0, 0x5c, 0x65, 0x62, 0xd2, + 0xef, 0xbc, 0x2f, 0xb9, 0x69, 0x1e, 0x4d, 0xee, 0x41, 0xd9, 0x5d, 0xa4, 0xcd, 0x16, 0xb9, 0x7a, + 0x28, 0x8a, 0x62, 0xe3, 0xbb, 0x22, 0x6c, 0xa9, 0x3e, 0x94, 0x3c, 0x03, 0x10, 0xd9, 0xd6, 0xef, + 0x28, 0x24, 0xab, 0x6f, 0xa3, 0x39, 0x70, 0xbe, 0x62, 0x97, 0xae, 0x57, 0xb1, 0x6f, 0x03, 0xe0, + 0xcc, 0x64, 0x07, 0xb9, 0xcc, 0x6e, 0x68, 0x4e, 0x52, 0x4f, 0xb2, 0xb4, 0xaf, 0xac, 0xa7, 0xfd, + 0x23, 0xb8, 0x21, 0x02, 0x3b, 0x12, 0x8b, 0x50, 0x5a, 0x6e, 0xcc, 0x55, 0xab, 0xbf, 0x6a, 0xc4, + 0x49, 0x2a, 0x1b, 0x68, 0xd1, 0x58, 0x18, 0x16, 0x6c, 0xa9, 0xa6, 0x99, 0x3c, 0xd4, 0x73, 0xd0, + 0xe6, 0xce, 0x75, 0xd5, 0x58, 0x27, 0xc3, 0x4e, 0x07, 0x4a, 0x59, 0x35, 0x2b, 0x49, 0x81, 0x4e, + 0x73, 0xc2, 0x40, 0xb2, 0x40, 0xea, 0x99, 0x21, 0x25, 0x8d, 0x7f, 0x17, 0x81, 0x4c, 0x75, 0x2d, + 0xc3, 0x2e, 0x36, 0x99, 0x13, 0xf1, 0x56, 0xf2, 0x53, 0xff, 0xd5, 0x5b, 0xd1, 0x7f, 0x0f, 0xac, + 0xe6, 0x92, 0x87, 0xb0, 0xa5, 0x06, 0x06, 0x7d, 0x8b, 0x37, 0x36, 0xbc, 0x28, 0xec, 0xa8, 0x40, + 0x13, 0x10, 0xe9, 0x43, 0x8d, 0x27, 0x23, 0x91, 0xfa, 0xa0, 0xab, 0xf6, 0xf5, 0xc0, 0x74, 0x54, + 0xa0, 0x29, 0x10, 0x77, 0x50, 0x53, 0x83, 0xae, 0x99, 0x37, 0x36, 0xdd, 0x01, 0xee, 0xa0, 0x40, + 0xfb, 0x0d, 0xa8, 0x2d, 0x99, 0x10, 0xf6, 0x9c, 0x19, 0xff, 0x29, 0x41, 0xeb, 0xc0, 0xf7, 0x58, + 0x20, 0x67, 0xde, 0x3c, 0xb0, 0xfd, 0xff, 0xe3, 0x74, 0x5f, 0x40, 0x55, 0x28, 0x5d, 0x5d, 0x24, + 0xae, 0x74, 0xa9, 0x39, 0xf3, 0xbb, 0xc9, 0x0f, 0xd5, 0x1a, 0xe4, 0x10, 0x9a, 0x6a, 0xe2, 0x12, + 0x61, 0xcc, 0x9d, 0xb4, 0x87, 0xb8, 0xff, 0x3e, 0x03, 0xe8, 0x88, 0x99, 0x42, 0x53, 0x70, 0xb3, + 0x75, 0xde, 0x8b, 0x95, 0x75, 0x2f, 0xfe, 0x0e, 0xaa, 0xfa, 0x68, 0x6d, 0x68, 0xcc, 0x86, 0x93, + 0x81, 0x35, 0xd8, 0x33, 0xf7, 0xba, 0x05, 0x72, 0x13, 0xc8, 0x74, 0xef, 0x64, 0x36, 0xb4, 0xa6, + 0x27, 0xb3, 0x23, 0x6b, 0x38, 0x1e, 0x99, 0xa6, 0x1a, 0x61, 0x7b, 0x70, 0xe3, 0x64, 0xb2, 0x41, + 0x52, 0x22, 0x04, 0x3a, 0x07, 0xc7, 0x93, 0x5f, 0x8d, 0x0e, 0x33, 0x1e, 0x18, 0xf7, 0x00, 0x56, + 0x9f, 0x44, 0x1a, 0xb0, 0x35, 0x33, 0xb1, 0x34, 0xa9, 0x22, 0x46, 0x4f, 0x26, 0x6a, 0x18, 0x2e, + 0x7e, 0x3c, 0xdc, 0x58, 0xe7, 0x00, 0xaa, 0x07, 0x2f, 0x8f, 0x67, 0xc3, 0x41, 0xb7, 0x88, 0xf0, + 0xe3, 0xe9, 0x70, 0x82, 0x35, 0xaf, 0x84, 0x04, 0x0a, 0x90, 0x28, 0xa3, 0xcd, 0x21, 0xa5, 0xc7, + 0xb4, 0x5b, 0xf9, 0xf8, 0x1e, 0x54, 0xb0, 0xa1, 0xc2, 0x93, 0x8c, 0x26, 0x23, 0x73, 0xb4, 0x67, + 0x1e, 0xd3, 0x6e, 0x01, 0x49, 0x3a, 0x9c, 0x4d, 0x8f, 0x27, 0x03, 0x3c, 0xc0, 0x7e, 0xef, 0x1f, + 0x6f, 0x76, 0x8a, 0xdf, 0xbe, 0xd9, 0x29, 0x7e, 0xf7, 0x66, 0xa7, 0xf8, 0xe7, 0xb7, 0x3b, 0x85, + 0x6f, 0xdf, 0xee, 0x14, 0xfe, 0xf5, 0x76, 0xa7, 0x70, 0x5a, 0x55, 0x4f, 0xf3, 0x93, 0xff, 0x05, + 0x00, 0x00, 0xff, 0xff, 0x32, 0x96, 0xd8, 0x25, 0xe8, 0x12, 0x00, 0x00, } func (m *Version) Marshal() (dAtA []byte, err error) { @@ -3069,41 +3065,20 @@ func (m *Connection_Timeline) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.CloseTs != nil { - { - size, err := m.CloseTs.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintIntrospection(dAtA, i, uint64(size)) - } + if m.CloseTs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.CloseTs)) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x18 } - if m.UpgradedTs != nil { - { - size, err := m.UpgradedTs.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintIntrospection(dAtA, i, uint64(size)) - } + if m.UpgradedTs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.UpgradedTs)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x10 } - if m.OpenTs != nil { - { - size, err := m.OpenTs.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintIntrospection(dAtA, i, uint64(size)) - } + if m.OpenTs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.OpenTs)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } return len(dAtA) - i, nil } @@ -3335,29 +3310,15 @@ func (m *Stream_Timeline) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.CloseTs != nil { - { - size, err := m.CloseTs.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintIntrospection(dAtA, i, uint64(size)) - } + if m.CloseTs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.CloseTs)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x10 } - if m.OpenTs != nil { - { - size, err := m.OpenTs.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintIntrospection(dAtA, i, uint64(size)) - } + if m.OpenTs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.OpenTs)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } return len(dAtA) - i, nil } @@ -3432,17 +3393,10 @@ func (m *DHT) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x22 } - if m.StartTs != nil { - { - size, err := m.StartTs.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintIntrospection(dAtA, i, uint64(size)) - } + if m.StartTs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.StartTs)) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x18 } if m.Enabled { i-- @@ -3701,29 +3655,15 @@ func (m *State) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x28 } - if m.StartTs != nil { - { - size, err := m.StartTs.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintIntrospection(dAtA, i, uint64(size)) - } + if m.StartTs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.StartTs)) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x20 } - if m.InstantTs != nil { - { - size, err := m.InstantTs.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintIntrospection(dAtA, i, uint64(size)) - } + if m.InstantTs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.InstantTs)) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x18 } if m.Traffic != nil { { @@ -3779,17 +3719,10 @@ func (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1a } - if m.Ts != nil { - { - size, err := m.Ts.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintIntrospection(dAtA, i, uint64(size)) - } + if m.Ts != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Ts)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x10 } if m.Type != nil { { @@ -4282,17 +4215,14 @@ func (m *Connection_Timeline) Size() (n int) { } var l int _ = l - if m.OpenTs != nil { - l = m.OpenTs.Size() - n += 1 + l + sovIntrospection(uint64(l)) + if m.OpenTs != 0 { + n += 1 + sovIntrospection(uint64(m.OpenTs)) } - if m.UpgradedTs != nil { - l = m.UpgradedTs.Size() - n += 1 + l + sovIntrospection(uint64(l)) + if m.UpgradedTs != 0 { + n += 1 + sovIntrospection(uint64(m.UpgradedTs)) } - if m.CloseTs != nil { - l = m.CloseTs.Size() - n += 1 + l + sovIntrospection(uint64(l)) + if m.CloseTs != 0 { + n += 1 + sovIntrospection(uint64(m.CloseTs)) } return n } @@ -4400,13 +4330,11 @@ func (m *Stream_Timeline) Size() (n int) { } var l int _ = l - if m.OpenTs != nil { - l = m.OpenTs.Size() - n += 1 + l + sovIntrospection(uint64(l)) + if m.OpenTs != 0 { + n += 1 + sovIntrospection(uint64(m.OpenTs)) } - if m.CloseTs != nil { - l = m.CloseTs.Size() - n += 1 + l + sovIntrospection(uint64(l)) + if m.CloseTs != 0 { + n += 1 + sovIntrospection(uint64(m.CloseTs)) } return n } @@ -4424,9 +4352,8 @@ func (m *DHT) Size() (n int) { if m.Enabled { n += 2 } - if m.StartTs != nil { - l = m.StartTs.Size() - n += 1 + l + sovIntrospection(uint64(l)) + if m.StartTs != 0 { + n += 1 + sovIntrospection(uint64(m.StartTs)) } if m.Params != nil { l = m.Params.Size() @@ -4558,13 +4485,11 @@ func (m *State) Size() (n int) { l = m.Traffic.Size() n += 1 + l + sovIntrospection(uint64(l)) } - if m.InstantTs != nil { - l = m.InstantTs.Size() - n += 1 + l + sovIntrospection(uint64(l)) + if m.InstantTs != 0 { + n += 1 + sovIntrospection(uint64(m.InstantTs)) } - if m.StartTs != nil { - l = m.StartTs.Size() - n += 1 + l + sovIntrospection(uint64(l)) + if m.StartTs != 0 { + n += 1 + sovIntrospection(uint64(m.StartTs)) } if m.SnapshotDurationMs != 0 { n += 1 + sovIntrospection(uint64(m.SnapshotDurationMs)) @@ -4582,9 +4507,8 @@ func (m *Event) Size() (n int) { l = m.Type.Size() n += 1 + l + sovIntrospection(uint64(l)) } - if m.Ts != nil { - l = m.Ts.Size() - n += 1 + l + sovIntrospection(uint64(l)) + if m.Ts != 0 { + n += 1 + sovIntrospection(uint64(m.Ts)) } l = len(m.Content) if l > 0 { @@ -6586,10 +6510,10 @@ func (m *Connection_Timeline) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: - if wireType != 2 { + if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field OpenTs", wireType) } - var msglen int + m.OpenTs = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6599,33 +6523,16 @@ func (m *Connection_Timeline) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.OpenTs |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.OpenTs == nil { - m.OpenTs = &types.Timestamp{} - } - if err := m.OpenTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: - if wireType != 2 { + if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field UpgradedTs", wireType) } - var msglen int + m.UpgradedTs = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6635,33 +6542,16 @@ func (m *Connection_Timeline) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.UpgradedTs |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.UpgradedTs == nil { - m.UpgradedTs = &types.Timestamp{} - } - if err := m.UpgradedTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 3: - if wireType != 2 { + if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field CloseTs", wireType) } - var msglen int + m.CloseTs = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -6671,28 +6561,11 @@ func (m *Connection_Timeline) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.CloseTs |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.CloseTs == nil { - m.CloseTs = &types.Timestamp{} - } - if err := m.CloseTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipIntrospection(dAtA[iNdEx:]) @@ -7301,10 +7174,10 @@ func (m *Stream_Timeline) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: - if wireType != 2 { + if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field OpenTs", wireType) } - var msglen int + m.OpenTs = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -7314,33 +7187,16 @@ func (m *Stream_Timeline) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.OpenTs |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.OpenTs == nil { - m.OpenTs = &types.Timestamp{} - } - if err := m.OpenTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: - if wireType != 2 { + if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field CloseTs", wireType) } - var msglen int + m.CloseTs = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -7350,28 +7206,11 @@ func (m *Stream_Timeline) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.CloseTs |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.CloseTs == nil { - m.CloseTs = &types.Timestamp{} - } - if err := m.CloseTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipIntrospection(dAtA[iNdEx:]) @@ -7478,10 +7317,10 @@ func (m *DHT) Unmarshal(dAtA []byte) error { } m.Enabled = bool(v != 0) case 3: - if wireType != 2 { + if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field StartTs", wireType) } - var msglen int + m.StartTs = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -7491,28 +7330,11 @@ func (m *DHT) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.StartTs |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.StartTs == nil { - m.StartTs = &types.Timestamp{} - } - if err := m.StartTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) @@ -8372,10 +8194,10 @@ func (m *State) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 3: - if wireType != 2 { + if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field InstantTs", wireType) } - var msglen int + m.InstantTs = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -8385,33 +8207,16 @@ func (m *State) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.InstantTs |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.InstantTs == nil { - m.InstantTs = &types.Timestamp{} - } - if err := m.InstantTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 4: - if wireType != 2 { + if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field StartTs", wireType) } - var msglen int + m.StartTs = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -8421,28 +8226,11 @@ func (m *State) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.StartTs |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.StartTs == nil { - m.StartTs = &types.Timestamp{} - } - if err := m.StartTs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 5: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field SnapshotDurationMs", wireType) @@ -8552,10 +8340,10 @@ func (m *Event) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 2: - if wireType != 2 { + if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Ts", wireType) } - var msglen int + m.Ts = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -8565,28 +8353,11 @@ func (m *Event) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.Ts |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Ts == nil { - m.Ts = &types.Timestamp{} - } - if err := m.Ts.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Content", wireType) diff --git a/introspection/pb/introspection.proto b/introspection/pb/introspection.proto index f9508a7a..02e2dd63 100644 --- a/introspection/pb/introspection.proto +++ b/introspection/pb/introspection.proto @@ -1,7 +1,5 @@ syntax = "proto3"; -import "google/protobuf/timestamp.proto"; - package introspection; // Version of schema @@ -143,14 +141,14 @@ message StreamList { // Connection reports metrics and state of a libp2p connection. message Connection { - // Timeline contains the timestamps of the well-known milestones of a connection. + // Timeline contains the timestamps (ms since epoch) of the well-known milestones of a connection. message Timeline { // the instant when a connection was opened on the wire. - google.protobuf.Timestamp open_ts = 1; + uint64 open_ts = 1; // the instant when the upgrade process (handshake, security, multiplexing) finished. - google.protobuf.Timestamp upgraded_ts = 2; + uint64 upgraded_ts = 2; // the instant when this connection was terminated. - google.protobuf.Timestamp close_ts = 3; + uint64 close_ts = 3; } // Attributes encapsulates the attributes of this connection. @@ -208,12 +206,12 @@ message Stream { } } - // Timeline contains the timestamps of the well-known milestones of a stream. + // Timeline contains the timestamps (ms since epoch) of the well-known milestones of a stream. message Timeline { // the instant when the stream was opened. - google.protobuf.Timestamp open_ts = 1; + uint64 open_ts = 1; // the instant when the stream was terminated. - google.protobuf.Timestamp close_ts = 2; + uint64 close_ts = 2; } // the id of this stream, not to be shown in user tooling, @@ -298,8 +296,8 @@ message DHT { string protocol = 1; // protocol enabled. bool enabled = 2; - // timestap of start up. - google.protobuf.Timestamp start_ts = 3; + // timestamp (ms since epoch) of start up. + uint64 start_ts = 3; // params of the dht. Params params = 4; // existing, intantiated buckets and their contents @@ -325,9 +323,9 @@ message State { // overall traffic for this peer Traffic traffic = 2; // moment this data snapshot and instantaneous values were taken - google.protobuf.Timestamp instant_ts = 3; + uint64 instant_ts = 3; // start of included data collection (cumulative values counted from here) - google.protobuf.Timestamp start_ts = 4; + uint64 start_ts = 4; // length of time up to instant_ts covered by this data snapshot uint32 snapshot_duration_ms = 5; } @@ -336,8 +334,8 @@ message State { message Event { // definition of event type, containing only `name` unless this is first encounter of novel event EventType type = 1; - // time this event occurred - google.protobuf.Timestamp ts = 2; + // time this event occurred (ms since epoch) + uint64 ts = 2; // stringified json; top-level keys and value types match EventProperty definitions string content = 3; } From a1698eb742b175505b27e12a355ccd9f0d42e84c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Wed, 20 May 2020 13:11:54 +0100 Subject: [PATCH 16/19] remove changesets submitted separately in #153 and #154. --- event/bus.go | 19 +------------------ event/dht.go | 15 --------------- 2 files changed, 1 insertion(+), 33 deletions(-) delete mode 100644 event/dht.go diff --git a/event/bus.go b/event/bus.go index 7ee181e8..9dcf9378 100644 --- a/event/bus.go +++ b/event/bus.go @@ -1,9 +1,6 @@ package event -import ( - "io" - "reflect" -) +import "io" // SubscriptionOpt represents a subscriber option. Use the options exposed by the implementation of choice. type SubscriptionOpt = func(interface{}) error @@ -14,10 +11,6 @@ type EmitterOpt = func(interface{}) error // CancelFunc closes a subscriber. type CancelFunc = func() -// WildcardSubscriptionType is the `eventType` clients of the eventbus should use -// in the call to `Bus.Subscribe` if they want to subscribe to ALL events emitted by the eventbus. -var WildcardSubscriptionType = new(interface{}) - // Emitter represents an actor that emits events onto the eventbus. type Emitter interface { io.Closer @@ -46,9 +39,6 @@ type Bus interface { // // Failing to drain the channel may cause publishers to block. // - // If you want to subscribe to ALL events emitted by the bus, please use `WildcardSubscriptionType` - // as the `eventType` in this call i.e. `eventbus.Subscribe(WildcardSubscriptionType)` - // // Simple example // // sub, err := eventbus.Subscribe(new(EventType)) @@ -81,11 +71,4 @@ type Bus interface { // defer em.Close() // MUST call this after being done with the emitter // em.Emit(EventT{}) Emitter(eventType interface{}, opts ...EmitterOpt) (Emitter, error) - - // GetAllEventTypes returns all the event types that this bus - // has Emitters or Subscribers for. - // The caller is guaranteed that this function will ONLY return non pointer types i.e. - // the results of calling reflect.Type.Elem() on the pointer types passed - // to both `Bus.Emitter` AND `Bus.Subscribe`. - GetAllEventTypes() []reflect.Type } diff --git a/event/dht.go b/event/dht.go deleted file mode 100644 index 56d7523e..00000000 --- a/event/dht.go +++ /dev/null @@ -1,15 +0,0 @@ -package event - -// TODO This is all hacky. Please don't judge the programmer on the -// basis of any of this. - -type JSString string - -// TODO This is simply for being able to show DHT events on the UI for now. -// DhtEvent is an event related to the DHT. -type DhtEvent struct { - // EventType is the type of the event that has occured. - EventType string - // EventJson is the JSON representation of the event payload. - EventJson JSString -} From 5e61ef96bb56d137d7baf501c2c30b2e2bc7b496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Thu, 21 May 2020 10:50:11 +0100 Subject: [PATCH 17/19] wip --- introspection/endpoint.go | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/introspection/endpoint.go b/introspection/endpoint.go index b5fec8ea..9c0773e1 100644 --- a/introspection/endpoint.go +++ b/introspection/endpoint.go @@ -1,7 +1,5 @@ package introspection -import "github.com/libp2p/go-libp2p-core/event" - // Endpoint is the interface to be implemented by introspection // endpoints/servers. // @@ -11,9 +9,7 @@ type Endpoint interface { // Start starts the introspection endpoint. It must only be called once, and // once the server is started, subsequent calls made without first calling // Close will error. - // It takes an event bus a parameter and uses it to subscribe to - // events that need to be pushed to the client. - Start(bus event.Bus) error + Start() error // Close stops the introspection endpoint. Calls to Close on an already // closed endpoint, or an unstarted endpoint, must noop. From c4abf7155452d83c06579fed27ba330d8f0a2dff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Thu, 4 Jun 2020 17:14:22 +0100 Subject: [PATCH 18/19] update introspection interfaces + protobuf. --- host/host.go | 6 +- introspection/endpoint.go | 8 + introspection/introspect.go | 31 - introspection/introspector.go | 42 + introspection/pb/introspection.pb.go | 1686 +++++++++++++++++++------- introspection/pb/introspection.proto | 104 +- introspection/providers.go | 54 - metrics/bandwidth.go | 1 + network/conn.go | 4 + network/stream.go | 4 + 10 files changed, 1408 insertions(+), 532 deletions(-) delete mode 100644 introspection/introspect.go create mode 100644 introspection/introspector.go delete mode 100644 introspection/providers.go diff --git a/host/host.go b/host/host.go index 9246785b..8712e68b 100644 --- a/host/host.go +++ b/host/host.go @@ -78,9 +78,9 @@ type Host interface { // IntrospectableHost is implemented by Host implementations that are // introspectable, that is, that may have introspection capability. type IntrospectableHost interface { - // Introspector the introspector, or nil if one hasn't been registered. With - // it, the call can register data providers, and can fetch introspection - // data. + // Introspector returns the introspector, or nil if one hasn't been + // registered. With it, the call can register data providers, and can fetch + // introspection data. Introspector() introspection.Introspector // IntrospectionEndpoint returns the introspection endpoint, or nil if one diff --git a/introspection/endpoint.go b/introspection/endpoint.go index 9c0773e1..35ad6227 100644 --- a/introspection/endpoint.go +++ b/introspection/endpoint.go @@ -17,4 +17,12 @@ type Endpoint interface { // ListenAddrs returns the listen addresses of this endpoint. ListenAddrs() []string + + // Sessions returns the ongoing sessions. + Sessions() []*Session +} + +// Session represents an introspection session. +type Session struct { + RemoteAddr string } diff --git a/introspection/introspect.go b/introspection/introspect.go deleted file mode 100644 index 87781f7b..00000000 --- a/introspection/introspect.go +++ /dev/null @@ -1,31 +0,0 @@ -package introspection - -import introspection_pb "github.com/libp2p/go-libp2p-core/introspection/pb" - -// ProtoVersion is the current version of the introspection protocol. -const ProtoVersion uint32 = 1 - -// ProtoVersionPb is the proto representation of the current introspection protocol. -var ProtoVersionPb *introspection_pb.Version = &introspection_pb.Version{Version: ProtoVersion} - -// EXPERIMENTAL. Introspector allows other sub-systems/modules to register -// metrics/data providers AND also enables clients to fetch the current state of -// the system. -// -// Introspector implementations are usually injected in introspection endpoints -// (e.g. the default WebSocket endpoint) to serve the data to clients, but they -// can also be used separately for embedding or testing. -type Introspector interface { - // EXPERIMENTAL. RegisterDataProviders allows sub-systems/modules to - // register callbacks that supply introspection data. - RegisterDataProviders(p *DataProviders) error - - // EXPERIMENTAL. FetchFullState returns the full state of the system, by - // calling all known data providers and returning a merged cross-cut of the - // running system. - FetchFullState() (*introspection_pb.State, error) - - // EXPERIMENTAL. FetchRuntime returns the runtime information - // of the system. - FetchRuntime() (*introspection_pb.Runtime, error) -} diff --git a/introspection/introspector.go b/introspection/introspector.go new file mode 100644 index 00000000..d1c152e8 --- /dev/null +++ b/introspection/introspector.go @@ -0,0 +1,42 @@ +package introspection + +import ( + "io" + + pb "github.com/libp2p/go-libp2p-core/introspection/pb" +) + +// ProtoVersion is the current version of the introspection protocol. +const ProtoVersion uint32 = 1 + +// ProtoVersionPb is the proto representation of the current introspection protocol. +var ProtoVersionPb = &pb.Version{Version: ProtoVersion} + +// EXPERIMENTAL. Introspector allows introspection endpoints to fetch the current state of +// the system. +// +// Introspector implementations are usually injected in introspection endpoints +// (e.g. the default WebSocket endpoint) to serve the data to clients, but they +// can also be used separately for embedding or testing. +type Introspector interface { + io.Closer + + // FetchRuntime returns the runtime information of the system. + // Experimental. + FetchRuntime() (*pb.Runtime, error) + + // FetchFullState returns the full state cross-cut of the running system. + // Experimental. + FetchFullState() (*pb.State, error) + + // EventChan returns the channel where all eventbus events are dumped, + // decorated with their corresponding event metadata, ready to send over + // the wire. + // Experimental. + EventChan() <-chan *pb.Event + + // EventMetadata returns the metadata of all events known to the + // Introspector. + // Experimental + EventMetadata() []*pb.EventType +} diff --git a/introspection/pb/introspection.pb.go b/introspection/pb/introspection.pb.go index 164edd33..f4f066f3 100644 --- a/introspection/pb/introspection.pb.go +++ b/introspection/pb/introspection.pb.go @@ -160,65 +160,128 @@ func (DHT_PeerInDHT_Status) EnumDescriptor() ([]byte, []int) { return fileDescriptor_53a8bedf9a75e10a, []int{11, 1, 0} } -// The signal to be sent to the server -type ClientSignal_Signal int32 +type ClientCommand_Source int32 const ( - // SEND_DATA with `data_source` requests messages from pull-based data emitters - ClientSignal_SEND_DATA ClientSignal_Signal = 0 - // PAUSE_ & UNPAUSE_PUSH_EMITTER allows control of push-based data emitters - ClientSignal_PAUSE_PUSH_EMITTER ClientSignal_Signal = 1 - ClientSignal_UNPAUSE_PUSH_EMITTER ClientSignal_Signal = 2 - // CONFIG_EMITTER with `content` sends a JSON object of settings to the emitter - ClientSignal_CONFIG_EMITTER ClientSignal_Signal = 10 + ClientCommand_STATE ClientCommand_Source = 0 + ClientCommand_RUNTIME ClientCommand_Source = 1 + ClientCommand_EVENTS ClientCommand_Source = 2 ) -var ClientSignal_Signal_name = map[int32]string{ - 0: "SEND_DATA", - 1: "PAUSE_PUSH_EMITTER", - 2: "UNPAUSE_PUSH_EMITTER", - 10: "CONFIG_EMITTER", +var ClientCommand_Source_name = map[int32]string{ + 0: "STATE", + 1: "RUNTIME", + 2: "EVENTS", } -var ClientSignal_Signal_value = map[string]int32{ - "SEND_DATA": 0, - "PAUSE_PUSH_EMITTER": 1, - "UNPAUSE_PUSH_EMITTER": 2, - "CONFIG_EMITTER": 10, +var ClientCommand_Source_value = map[string]int32{ + "STATE": 0, + "RUNTIME": 1, + "EVENTS": 2, } -func (x ClientSignal_Signal) String() string { - return proto.EnumName(ClientSignal_Signal_name, int32(x)) +func (x ClientCommand_Source) String() string { + return proto.EnumName(ClientCommand_Source_name, int32(x)) } -func (ClientSignal_Signal) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{16, 0} +func (ClientCommand_Source) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{17, 0} } -// The source the data is expected to come from -type ClientSignal_DataSource int32 +type ClientCommand_Command int32 const ( - ClientSignal_STATE ClientSignal_DataSource = 0 - ClientSignal_RUNTIME ClientSignal_DataSource = 1 + // HELLO is the first command that a client must send to greet the server. + // Connections that do not respect this invariant will be terminated. + ClientCommand_HELLO ClientCommand_Command = 0 + // REQUEST is applicable to STATE and RUNTIME sources. + ClientCommand_REQUEST ClientCommand_Command = 1 + // PUSH streams can only be started for STATE and EVENTS sources. + ClientCommand_PUSH_ENABLE ClientCommand_Command = 2 + ClientCommand_PUSH_DISABLE ClientCommand_Command = 3 + ClientCommand_PUSH_PAUSE ClientCommand_Command = 4 + ClientCommand_PUSH_RESUME ClientCommand_Command = 5 + // UPDATE_CONFIG requests a configuration update. The config field is + // compulsory. + // + // The server reserves the right to override the requested values, and + // will return the effective configuration in the response. + ClientCommand_UPDATE_CONFIG ClientCommand_Command = 7 ) -var ClientSignal_DataSource_name = map[int32]string{ - 0: "STATE", - 1: "RUNTIME", +var ClientCommand_Command_name = map[int32]string{ + 0: "HELLO", + 1: "REQUEST", + 2: "PUSH_ENABLE", + 3: "PUSH_DISABLE", + 4: "PUSH_PAUSE", + 5: "PUSH_RESUME", + 7: "UPDATE_CONFIG", } -var ClientSignal_DataSource_value = map[string]int32{ - "STATE": 0, - "RUNTIME": 1, +var ClientCommand_Command_value = map[string]int32{ + "HELLO": 0, + "REQUEST": 1, + "PUSH_ENABLE": 2, + "PUSH_DISABLE": 3, + "PUSH_PAUSE": 4, + "PUSH_RESUME": 5, + "UPDATE_CONFIG": 7, +} + +func (x ClientCommand_Command) String() string { + return proto.EnumName(ClientCommand_Command_name, int32(x)) +} + +func (ClientCommand_Command) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{17, 1} +} + +type CommandResponse_Result int32 + +const ( + CommandResponse_OK CommandResponse_Result = 0 + CommandResponse_ERR CommandResponse_Result = 1 +) + +var CommandResponse_Result_name = map[int32]string{ + 0: "OK", + 1: "ERR", +} + +var CommandResponse_Result_value = map[string]int32{ + "OK": 0, + "ERR": 1, +} + +func (x CommandResponse_Result) String() string { + return proto.EnumName(CommandResponse_Result_name, int32(x)) +} + +func (CommandResponse_Result) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{18, 0} +} + +type ServerNotice_Kind int32 + +const ( + ServerNotice_DISCARDING_EVENTS ServerNotice_Kind = 0 +) + +var ServerNotice_Kind_name = map[int32]string{ + 0: "DISCARDING_EVENTS", +} + +var ServerNotice_Kind_value = map[string]int32{ + "DISCARDING_EVENTS": 0, } -func (x ClientSignal_DataSource) String() string { - return proto.EnumName(ClientSignal_DataSource_name, int32(x)) +func (x ServerNotice_Kind) String() string { + return proto.EnumName(ServerNotice_Kind_name, int32(x)) } -func (ClientSignal_DataSource) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_53a8bedf9a75e10a, []int{16, 1} +func (ServerNotice_Kind) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{19, 0} } // Version of schema @@ -649,10 +712,6 @@ type Runtime struct { Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform,omitempty"` // our peer id - the peer id of the host system PeerId string `protobuf:"bytes,4,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` - // length of time to keep stale data - KeepStaleDataMs uint32 `protobuf:"varint,5,opt,name=keep_stale_data_ms,json=keepStaleDataMs,proto3" json:"keep_stale_data_ms,omitempty"` - // frequency to send new states - SendStateIntervalMs uint32 `protobuf:"varint,6,opt,name=send_state_interval_ms,json=sendStateIntervalMs,proto3" json:"send_state_interval_ms,omitempty"` // metadata describing configured event types EventTypes []*EventType `protobuf:"bytes,7,rep,name=event_types,json=eventTypes,proto3" json:"event_types,omitempty"` } @@ -718,20 +777,6 @@ func (m *Runtime) GetPeerId() string { return "" } -func (m *Runtime) GetKeepStaleDataMs() uint32 { - if m != nil { - return m.KeepStaleDataMs - } - return 0 -} - -func (m *Runtime) GetSendStateIntervalMs() uint32 { - if m != nil { - return m.SendStateIntervalMs - } - return 0 -} - func (m *Runtime) GetEventTypes() []*EventType { if m != nil { return m.EventTypes @@ -2042,32 +2087,34 @@ func (m *Event) GetContent() string { return "" } -// ProtocolDataPacket wraps messages to be sent to clients to allow extension +// ServerMessage wraps messages to be sent to clients to allow extension // based on new types of data sources -type ProtocolDataPacket struct { - // Version of this protobuf +type ServerMessage struct { + // Version of this protobuf. Version *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - // The Message this contains + // The payload this message contains. // - // Types that are valid to be assigned to Message: - // *ProtocolDataPacket_State - // *ProtocolDataPacket_Runtime - // *ProtocolDataPacket_Event - Message isProtocolDataPacket_Message `protobuf_oneof:"message"` -} - -func (m *ProtocolDataPacket) Reset() { *m = ProtocolDataPacket{} } -func (m *ProtocolDataPacket) String() string { return proto.CompactTextString(m) } -func (*ProtocolDataPacket) ProtoMessage() {} -func (*ProtocolDataPacket) Descriptor() ([]byte, []int) { + // Types that are valid to be assigned to Payload: + // *ServerMessage_State + // *ServerMessage_Runtime + // *ServerMessage_Event + // *ServerMessage_Response + // *ServerMessage_Notice + Payload isServerMessage_Payload `protobuf_oneof:"payload"` +} + +func (m *ServerMessage) Reset() { *m = ServerMessage{} } +func (m *ServerMessage) String() string { return proto.CompactTextString(m) } +func (*ServerMessage) ProtoMessage() {} +func (*ServerMessage) Descriptor() ([]byte, []int) { return fileDescriptor_53a8bedf9a75e10a, []int{15} } -func (m *ProtocolDataPacket) XXX_Unmarshal(b []byte) error { +func (m *ServerMessage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *ProtocolDataPacket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *ServerMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_ProtocolDataPacket.Marshal(b, m, deterministic) + return xxx_messageInfo_ServerMessage.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2077,107 +2124,180 @@ func (m *ProtocolDataPacket) XXX_Marshal(b []byte, deterministic bool) ([]byte, return b[:n], nil } } -func (m *ProtocolDataPacket) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtocolDataPacket.Merge(m, src) +func (m *ServerMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_ServerMessage.Merge(m, src) } -func (m *ProtocolDataPacket) XXX_Size() int { +func (m *ServerMessage) XXX_Size() int { return m.Size() } -func (m *ProtocolDataPacket) XXX_DiscardUnknown() { - xxx_messageInfo_ProtocolDataPacket.DiscardUnknown(m) +func (m *ServerMessage) XXX_DiscardUnknown() { + xxx_messageInfo_ServerMessage.DiscardUnknown(m) } -var xxx_messageInfo_ProtocolDataPacket proto.InternalMessageInfo +var xxx_messageInfo_ServerMessage proto.InternalMessageInfo -type isProtocolDataPacket_Message interface { - isProtocolDataPacket_Message() +type isServerMessage_Payload interface { + isServerMessage_Payload() MarshalTo([]byte) (int, error) Size() int } -type ProtocolDataPacket_State struct { +type ServerMessage_State struct { State *State `protobuf:"bytes,2,opt,name=state,proto3,oneof" json:"state,omitempty"` } -type ProtocolDataPacket_Runtime struct { +type ServerMessage_Runtime struct { Runtime *Runtime `protobuf:"bytes,3,opt,name=runtime,proto3,oneof" json:"runtime,omitempty"` } -type ProtocolDataPacket_Event struct { +type ServerMessage_Event struct { Event *Event `protobuf:"bytes,4,opt,name=event,proto3,oneof" json:"event,omitempty"` } +type ServerMessage_Response struct { + Response *CommandResponse `protobuf:"bytes,5,opt,name=response,proto3,oneof" json:"response,omitempty"` +} +type ServerMessage_Notice struct { + Notice *ServerNotice `protobuf:"bytes,6,opt,name=notice,proto3,oneof" json:"notice,omitempty"` +} -func (*ProtocolDataPacket_State) isProtocolDataPacket_Message() {} -func (*ProtocolDataPacket_Runtime) isProtocolDataPacket_Message() {} -func (*ProtocolDataPacket_Event) isProtocolDataPacket_Message() {} +func (*ServerMessage_State) isServerMessage_Payload() {} +func (*ServerMessage_Runtime) isServerMessage_Payload() {} +func (*ServerMessage_Event) isServerMessage_Payload() {} +func (*ServerMessage_Response) isServerMessage_Payload() {} +func (*ServerMessage_Notice) isServerMessage_Payload() {} -func (m *ProtocolDataPacket) GetMessage() isProtocolDataPacket_Message { +func (m *ServerMessage) GetPayload() isServerMessage_Payload { if m != nil { - return m.Message + return m.Payload } return nil } -func (m *ProtocolDataPacket) GetVersion() *Version { +func (m *ServerMessage) GetVersion() *Version { if m != nil { return m.Version } return nil } -func (m *ProtocolDataPacket) GetState() *State { - if x, ok := m.GetMessage().(*ProtocolDataPacket_State); ok { +func (m *ServerMessage) GetState() *State { + if x, ok := m.GetPayload().(*ServerMessage_State); ok { return x.State } return nil } -func (m *ProtocolDataPacket) GetRuntime() *Runtime { - if x, ok := m.GetMessage().(*ProtocolDataPacket_Runtime); ok { +func (m *ServerMessage) GetRuntime() *Runtime { + if x, ok := m.GetPayload().(*ServerMessage_Runtime); ok { return x.Runtime } return nil } -func (m *ProtocolDataPacket) GetEvent() *Event { - if x, ok := m.GetMessage().(*ProtocolDataPacket_Event); ok { +func (m *ServerMessage) GetEvent() *Event { + if x, ok := m.GetPayload().(*ServerMessage_Event); ok { return x.Event } return nil } +func (m *ServerMessage) GetResponse() *CommandResponse { + if x, ok := m.GetPayload().(*ServerMessage_Response); ok { + return x.Response + } + return nil +} + +func (m *ServerMessage) GetNotice() *ServerNotice { + if x, ok := m.GetPayload().(*ServerMessage_Notice); ok { + return x.Notice + } + return nil +} + // XXX_OneofWrappers is for the internal use of the proto package. -func (*ProtocolDataPacket) XXX_OneofWrappers() []interface{} { +func (*ServerMessage) XXX_OneofWrappers() []interface{} { return []interface{}{ - (*ProtocolDataPacket_State)(nil), - (*ProtocolDataPacket_Runtime)(nil), - (*ProtocolDataPacket_Event)(nil), + (*ServerMessage_State)(nil), + (*ServerMessage_Runtime)(nil), + (*ServerMessage_Event)(nil), + (*ServerMessage_Response)(nil), + (*ServerMessage_Notice)(nil), } } -// ClientSignal is a type of message to be sent from clients to the server to signal -// within the operation of the protocol -type ClientSignal struct { - // Version of this protobuf - Version *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - // Signal to be sent - Signal ClientSignal_Signal `protobuf:"varint,2,opt,name=signal,proto3,enum=introspection.ClientSignal_Signal" json:"signal,omitempty"` - // Correlated DataSource for this signal (if any) - DataSource ClientSignal_DataSource `protobuf:"varint,3,opt,name=data_source,json=dataSource,proto3,enum=introspection.ClientSignal_DataSource" json:"data_source,omitempty"` - // Optional: JSON stringified content to be sent to the emitter - Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"` -} - -func (m *ClientSignal) Reset() { *m = ClientSignal{} } -func (m *ClientSignal) String() string { return proto.CompactTextString(m) } -func (*ClientSignal) ProtoMessage() {} -func (*ClientSignal) Descriptor() ([]byte, []int) { +// Configuration encapsulates configuration fields for the protocol and commands. +type Configuration struct { + RetentionPeriodMs uint64 `protobuf:"varint,1,opt,name=retention_period_ms,json=retentionPeriodMs,proto3" json:"retention_period_ms,omitempty"` + StateSnapshotIntervalMs uint64 `protobuf:"varint,2,opt,name=state_snapshot_interval_ms,json=stateSnapshotIntervalMs,proto3" json:"state_snapshot_interval_ms,omitempty"` +} + +func (m *Configuration) Reset() { *m = Configuration{} } +func (m *Configuration) String() string { return proto.CompactTextString(m) } +func (*Configuration) ProtoMessage() {} +func (*Configuration) Descriptor() ([]byte, []int) { return fileDescriptor_53a8bedf9a75e10a, []int{16} } -func (m *ClientSignal) XXX_Unmarshal(b []byte) error { +func (m *Configuration) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Configuration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Configuration.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Configuration) XXX_Merge(src proto.Message) { + xxx_messageInfo_Configuration.Merge(m, src) +} +func (m *Configuration) XXX_Size() int { + return m.Size() +} +func (m *Configuration) XXX_DiscardUnknown() { + xxx_messageInfo_Configuration.DiscardUnknown(m) +} + +var xxx_messageInfo_Configuration proto.InternalMessageInfo + +func (m *Configuration) GetRetentionPeriodMs() uint64 { + if m != nil { + return m.RetentionPeriodMs + } + return 0 +} + +func (m *Configuration) GetStateSnapshotIntervalMs() uint64 { + if m != nil { + return m.StateSnapshotIntervalMs + } + return 0 +} + +// ClientCommand is a command sent from the client to the server. +type ClientCommand struct { + Version *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + Command ClientCommand_Command `protobuf:"varint,3,opt,name=command,proto3,enum=introspection.ClientCommand_Command" json:"command,omitempty"` + Source ClientCommand_Source `protobuf:"varint,4,opt,name=source,proto3,enum=introspection.ClientCommand_Source" json:"source,omitempty"` + Config *Configuration `protobuf:"bytes,5,opt,name=config,proto3" json:"config,omitempty"` +} + +func (m *ClientCommand) Reset() { *m = ClientCommand{} } +func (m *ClientCommand) String() string { return proto.CompactTextString(m) } +func (*ClientCommand) ProtoMessage() {} +func (*ClientCommand) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{17} +} +func (m *ClientCommand) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *ClientSignal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *ClientCommand) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_ClientSignal.Marshal(b, m, deterministic) + return xxx_messageInfo_ClientCommand.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2187,53 +2307,179 @@ func (m *ClientSignal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) return b[:n], nil } } -func (m *ClientSignal) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClientSignal.Merge(m, src) +func (m *ClientCommand) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClientCommand.Merge(m, src) } -func (m *ClientSignal) XXX_Size() int { +func (m *ClientCommand) XXX_Size() int { return m.Size() } -func (m *ClientSignal) XXX_DiscardUnknown() { - xxx_messageInfo_ClientSignal.DiscardUnknown(m) +func (m *ClientCommand) XXX_DiscardUnknown() { + xxx_messageInfo_ClientCommand.DiscardUnknown(m) } -var xxx_messageInfo_ClientSignal proto.InternalMessageInfo +var xxx_messageInfo_ClientCommand proto.InternalMessageInfo -func (m *ClientSignal) GetVersion() *Version { +func (m *ClientCommand) GetVersion() *Version { if m != nil { return m.Version } return nil } -func (m *ClientSignal) GetSignal() ClientSignal_Signal { +func (m *ClientCommand) GetId() uint64 { if m != nil { - return m.Signal + return m.Id } - return ClientSignal_SEND_DATA + return 0 } -func (m *ClientSignal) GetDataSource() ClientSignal_DataSource { +func (m *ClientCommand) GetCommand() ClientCommand_Command { if m != nil { - return m.DataSource + return m.Command } - return ClientSignal_STATE + return ClientCommand_HELLO } -func (m *ClientSignal) GetContent() string { +func (m *ClientCommand) GetSource() ClientCommand_Source { if m != nil { - return m.Content + return m.Source + } + return ClientCommand_STATE +} + +func (m *ClientCommand) GetConfig() *Configuration { + if m != nil { + return m.Config + } + return nil +} + +// CommandResponse is a response to a command sent by the client. +type CommandResponse struct { + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Result CommandResponse_Result `protobuf:"varint,2,opt,name=result,proto3,enum=introspection.CommandResponse_Result" json:"result,omitempty"` + Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` + // effective_config is the effective configuration the server holds for + // this connection. It is returned in response to HELLO and UPDATE_CONFIG + // commands. + EffectiveConfig *Configuration `protobuf:"bytes,4,opt,name=effective_config,json=effectiveConfig,proto3" json:"effective_config,omitempty"` +} + +func (m *CommandResponse) Reset() { *m = CommandResponse{} } +func (m *CommandResponse) String() string { return proto.CompactTextString(m) } +func (*CommandResponse) ProtoMessage() {} +func (*CommandResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{18} +} +func (m *CommandResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CommandResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_CommandResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *CommandResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommandResponse.Merge(m, src) +} +func (m *CommandResponse) XXX_Size() int { + return m.Size() +} +func (m *CommandResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CommandResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CommandResponse proto.InternalMessageInfo + +func (m *CommandResponse) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +func (m *CommandResponse) GetResult() CommandResponse_Result { + if m != nil { + return m.Result + } + return CommandResponse_OK +} + +func (m *CommandResponse) GetError() string { + if m != nil { + return m.Error } return "" } +func (m *CommandResponse) GetEffectiveConfig() *Configuration { + if m != nil { + return m.EffectiveConfig + } + return nil +} + +// ServerNotice represents a NOTICE sent from the server to the client. +type ServerNotice struct { + Kind ServerNotice_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=introspection.ServerNotice_Kind" json:"kind,omitempty"` +} + +func (m *ServerNotice) Reset() { *m = ServerNotice{} } +func (m *ServerNotice) String() string { return proto.CompactTextString(m) } +func (*ServerNotice) ProtoMessage() {} +func (*ServerNotice) Descriptor() ([]byte, []int) { + return fileDescriptor_53a8bedf9a75e10a, []int{19} +} +func (m *ServerNotice) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ServerNotice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ServerNotice.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ServerNotice) XXX_Merge(src proto.Message) { + xxx_messageInfo_ServerNotice.Merge(m, src) +} +func (m *ServerNotice) XXX_Size() int { + return m.Size() +} +func (m *ServerNotice) XXX_DiscardUnknown() { + xxx_messageInfo_ServerNotice.DiscardUnknown(m) +} + +var xxx_messageInfo_ServerNotice proto.InternalMessageInfo + +func (m *ServerNotice) GetKind() ServerNotice_Kind { + if m != nil { + return m.Kind + } + return ServerNotice_DISCARDING_EVENTS +} + func init() { proto.RegisterEnum("introspection.Status", Status_name, Status_value) proto.RegisterEnum("introspection.Role", Role_name, Role_value) proto.RegisterEnum("introspection.EventType_EventProperty_PropertyType", EventType_EventProperty_PropertyType_name, EventType_EventProperty_PropertyType_value) proto.RegisterEnum("introspection.DHT_PeerInDHT_Status", DHT_PeerInDHT_Status_name, DHT_PeerInDHT_Status_value) - proto.RegisterEnum("introspection.ClientSignal_Signal", ClientSignal_Signal_name, ClientSignal_Signal_value) - proto.RegisterEnum("introspection.ClientSignal_DataSource", ClientSignal_DataSource_name, ClientSignal_DataSource_value) + proto.RegisterEnum("introspection.ClientCommand_Source", ClientCommand_Source_name, ClientCommand_Source_value) + proto.RegisterEnum("introspection.ClientCommand_Command", ClientCommand_Command_name, ClientCommand_Command_value) + proto.RegisterEnum("introspection.CommandResponse_Result", CommandResponse_Result_name, CommandResponse_Result_value) + proto.RegisterEnum("introspection.ServerNotice_Kind", ServerNotice_Kind_name, ServerNotice_Kind_value) proto.RegisterType((*Version)(nil), "introspection.Version") proto.RegisterType((*ResultCounter)(nil), "introspection.ResultCounter") proto.RegisterType((*SlidingCounter)(nil), "introspection.SlidingCounter") @@ -2258,140 +2504,157 @@ func init() { proto.RegisterType((*Subsystems)(nil), "introspection.Subsystems") proto.RegisterType((*State)(nil), "introspection.State") proto.RegisterType((*Event)(nil), "introspection.Event") - proto.RegisterType((*ProtocolDataPacket)(nil), "introspection.ProtocolDataPacket") - proto.RegisterType((*ClientSignal)(nil), "introspection.ClientSignal") + proto.RegisterType((*ServerMessage)(nil), "introspection.ServerMessage") + proto.RegisterType((*Configuration)(nil), "introspection.Configuration") + proto.RegisterType((*ClientCommand)(nil), "introspection.ClientCommand") + proto.RegisterType((*CommandResponse)(nil), "introspection.CommandResponse") + proto.RegisterType((*ServerNotice)(nil), "introspection.ServerNotice") } func init() { proto.RegisterFile("introspection.proto", fileDescriptor_53a8bedf9a75e10a) } var fileDescriptor_53a8bedf9a75e10a = []byte{ - // 2012 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x5f, 0x6f, 0xdb, 0xc8, - 0x11, 0xd7, 0x3f, 0xeb, 0xcf, 0xe8, 0xcf, 0xa9, 0x7b, 0x69, 0xaa, 0xf8, 0x1a, 0x37, 0x65, 0xd2, - 0x34, 0xb8, 0xa6, 0xbe, 0x44, 0xb9, 0xe0, 0x2e, 0x77, 0x40, 0x00, 0xdb, 0x52, 0x6d, 0x05, 0x91, - 0xac, 0x5b, 0xd1, 0x41, 0x51, 0xb4, 0x20, 0x68, 0x72, 0x23, 0xb1, 0xa6, 0x48, 0x76, 0x77, 0xe9, - 0xab, 0x1f, 0xfa, 0x1d, 0xfa, 0x05, 0xda, 0x2f, 0x70, 0x6f, 0xfd, 0x0e, 0x05, 0xfa, 0x78, 0x6f, - 0xed, 0xe3, 0x35, 0x29, 0xfa, 0x39, 0x8a, 0x59, 0x2e, 0x29, 0xca, 0x56, 0x02, 0x5f, 0x9f, 0xb4, - 0x33, 0xf3, 0x9b, 0x59, 0xee, 0xce, 0x9f, 0x9d, 0x11, 0x7c, 0xe8, 0x05, 0x92, 0x87, 0x22, 0x62, - 0x8e, 0xf4, 0xc2, 0x60, 0x37, 0xe2, 0xa1, 0x0c, 0x49, 0x7b, 0x8d, 0x69, 0xdc, 0x85, 0xda, 0x2b, - 0xc6, 0x85, 0x17, 0x06, 0xa4, 0x07, 0xb5, 0xf3, 0x64, 0xd9, 0x2b, 0xde, 0x29, 0x3e, 0x68, 0xd3, - 0x94, 0x34, 0x0e, 0xa1, 0x4d, 0x99, 0x88, 0x7d, 0x79, 0x10, 0xc6, 0x81, 0x64, 0x9c, 0xdc, 0x80, - 0x2d, 0x19, 0x4a, 0xdb, 0xd7, 0xc0, 0x84, 0x20, 0x1d, 0x28, 0x85, 0x67, 0xbd, 0x92, 0x62, 0x95, - 0xc2, 0x33, 0xd2, 0x85, 0x32, 0xe3, 0xbc, 0x57, 0x56, 0x0c, 0x5c, 0x1a, 0x7f, 0x2d, 0x41, 0x67, - 0xe6, 0x7b, 0xae, 0x17, 0xcc, 0x53, 0x53, 0x3f, 0x82, 0x5a, 0x78, 0xce, 0xb8, 0xf5, 0x78, 0xa9, - 0x8d, 0x55, 0x91, 0x7c, 0xbc, 0xcc, 0x04, 0x4f, 0x97, 0xda, 0xa4, 0x12, 0x3c, 0x5d, 0x92, 0x5b, - 0x50, 0x4f, 0x34, 0x9e, 0x2e, 0xb5, 0x6d, 0x05, 0x7c, 0x9c, 0x13, 0x3d, 0x79, 0xb4, 0xec, 0x55, - 0x56, 0xa2, 0x27, 0x8f, 0x72, 0x5a, 0x0b, 0xde, 0xdb, 0xca, 0x69, 0x2d, 0x78, 0x26, 0xea, 0x2f, - 0x78, 0xaf, 0xba, 0x12, 0xf5, 0x73, 0xa2, 0x4f, 0x17, 0xbc, 0x57, 0x5b, 0x89, 0x3e, 0xcd, 0x89, - 0x3e, 0x5f, 0xf0, 0x5e, 0x7d, 0x25, 0xfa, 0x7c, 0xc1, 0xc9, 0x47, 0xd0, 0x48, 0xf6, 0x42, 0x8b, - 0x0d, 0x25, 0x53, 0x58, 0xa4, 0x33, 0x61, 0x1f, 0x6d, 0xc2, 0x4a, 0x88, 0xb4, 0x71, 0x0a, 0x8d, - 0x81, 0x2d, 0xed, 0x43, 0x3b, 0x9e, 0x33, 0x44, 0x3a, 0xf1, 0xd2, 0x3a, 0xbd, 0x90, 0x4c, 0xa8, - 0xcb, 0xa9, 0xd0, 0xba, 0x13, 0x2f, 0xf7, 0x91, 0x26, 0x3f, 0x81, 0x26, 0x0a, 0x23, 0xdb, 0x39, - 0x63, 0x52, 0xa8, 0x2b, 0xaa, 0x50, 0x70, 0xe2, 0xe5, 0x34, 0xe1, 0xe0, 0xfd, 0x79, 0x81, 0x90, - 0xd6, 0xe9, 0xd7, 0xea, 0x96, 0x2a, 0xb4, 0x8a, 0xe4, 0xfe, 0xd7, 0xc6, 0x3f, 0x4b, 0xd0, 0x18, - 0x9e, 0xb3, 0x40, 0x9a, 0x17, 0x11, 0x23, 0x04, 0x2a, 0x81, 0xbd, 0x64, 0xca, 0x7e, 0x83, 0xaa, - 0x35, 0x19, 0x43, 0x27, 0xe2, 0x61, 0xc4, 0xb8, 0xbc, 0xb0, 0xe4, 0x45, 0xc4, 0xd0, 0x7c, 0xf9, - 0x41, 0xb3, 0x7f, 0x7f, 0x77, 0x3d, 0xa2, 0x32, 0x2b, 0xc9, 0x6a, 0xaa, 0x75, 0x68, 0x3b, 0xd5, - 0x46, 0x99, 0xd8, 0xfe, 0x6f, 0x11, 0xda, 0x6b, 0x80, 0x8d, 0x9b, 0x1e, 0x42, 0x05, 0xf7, 0x52, - 0x27, 0xe9, 0xf4, 0x9f, 0x5c, 0x6f, 0xab, 0xdd, 0x69, 0x6e, 0x27, 0xaa, 0x0c, 0x90, 0x9f, 0x42, - 0x6b, 0x61, 0x0b, 0x6b, 0x19, 0xfb, 0xd2, 0x8b, 0x7c, 0xa6, 0x4e, 0x5f, 0xa7, 0xcd, 0x85, 0x2d, - 0xc6, 0x9a, 0x65, 0x9c, 0x40, 0x2b, 0xaf, 0x48, 0x00, 0xaa, 0x33, 0x93, 0x8e, 0x26, 0x87, 0xdd, - 0x02, 0xae, 0x27, 0x27, 0xe3, 0xfd, 0x21, 0xed, 0x16, 0x49, 0x1d, 0x2a, 0xe6, 0x68, 0x3c, 0xec, - 0x02, 0x72, 0xa7, 0xc3, 0x21, 0x1d, 0x0d, 0xba, 0x4d, 0xd2, 0x86, 0xc6, 0xf8, 0xe4, 0xa5, 0x39, - 0xda, 0x1b, 0x0c, 0x68, 0xb7, 0x85, 0xa0, 0x17, 0xb3, 0xe3, 0x49, 0xf7, 0x37, 0xc6, 0x5f, 0x4a, - 0x50, 0xa3, 0x71, 0x20, 0xbd, 0x25, 0x23, 0xf7, 0xa1, 0xe3, 0x2d, 0x23, 0x9f, 0x2d, 0x59, 0x20, - 0x6d, 0x99, 0x26, 0x55, 0x83, 0x5e, 0xe2, 0xe6, 0xb3, 0xae, 0xa4, 0x00, 0x29, 0x49, 0xb6, 0xa1, - 0x1e, 0xf9, 0xb6, 0x7c, 0x1d, 0xf2, 0x24, 0xce, 0x1b, 0x34, 0xa3, 0xd1, 0xb9, 0x11, 0x63, 0xdc, - 0xf2, 0x5c, 0x15, 0xe7, 0x0d, 0x5a, 0x45, 0x72, 0xe4, 0x92, 0x5f, 0x00, 0x39, 0x63, 0x2c, 0xb2, - 0x84, 0xb4, 0x7d, 0x66, 0xb9, 0xb6, 0xb4, 0xad, 0xa5, 0xd0, 0x01, 0xff, 0x01, 0x4a, 0x66, 0x28, - 0xc0, 0x18, 0x1b, 0x0b, 0xf2, 0x04, 0x6e, 0x0a, 0x16, 0xb8, 0x08, 0x96, 0xcc, 0xf2, 0x30, 0x1f, - 0xcf, 0x6d, 0x1f, 0x15, 0x92, 0x34, 0xf8, 0x10, 0xa5, 0x33, 0x14, 0x8e, 0xb4, 0x6c, 0x2c, 0xc8, - 0x33, 0x68, 0x32, 0x74, 0x81, 0x8e, 0x8c, 0x9a, 0x8a, 0x8c, 0xde, 0xbb, 0xdc, 0x45, 0x81, 0xa5, - 0x4b, 0x61, 0xfc, 0x1a, 0x5a, 0xc3, 0xc0, 0x8d, 0x42, 0x2f, 0x90, 0x53, 0xdb, 0xe3, 0xe4, 0x2e, - 0xb4, 0x05, 0x77, 0x12, 0x4f, 0xd9, 0xae, 0xcb, 0xf5, 0x15, 0xb5, 0x04, 0x77, 0xc6, 0x29, 0x0f, - 0x41, 0xae, 0x90, 0x39, 0x50, 0x72, 0x4d, 0x2d, 0x57, 0xc8, 0x0c, 0x64, 0xfc, 0x09, 0x6a, 0x26, - 0xb7, 0x5f, 0xbf, 0xf6, 0x1c, 0xf2, 0x19, 0x80, 0x4c, 0x96, 0x96, 0x97, 0x5c, 0xfa, 0xd5, 0xcf, - 0xcb, 0x72, 0x8c, 0x36, 0x34, 0x76, 0x14, 0xe0, 0xc1, 0x52, 0xc5, 0x30, 0x96, 0x6a, 0x9b, 0xf7, - 0x69, 0xa6, 0xbb, 0x1c, 0xc7, 0xd2, 0xf8, 0x2d, 0xc0, 0x4c, 0x72, 0x66, 0x2f, 0x5f, 0x7a, 0x42, - 0x92, 0xdb, 0x00, 0x42, 0x51, 0x96, 0xe7, 0x62, 0xe2, 0x96, 0x1f, 0xb4, 0x68, 0x23, 0xe1, 0x8c, - 0x5c, 0x41, 0x3e, 0x81, 0x5a, 0x42, 0xa4, 0x69, 0xf5, 0xc3, 0x4b, 0x7b, 0x24, 0xa6, 0x68, 0x8a, - 0x32, 0xfe, 0x56, 0x05, 0x38, 0x08, 0x83, 0x20, 0x11, 0x63, 0x99, 0xf5, 0x5c, 0x75, 0xb0, 0x16, - 0x2d, 0x79, 0x6e, 0x3e, 0x16, 0x4a, 0x6b, 0xb1, 0xf0, 0x4b, 0xa8, 0xa2, 0x67, 0x63, 0xa1, 0xc2, - 0xa7, 0xb3, 0x61, 0x1f, 0x14, 0x52, 0x0d, 0xc2, 0xbc, 0x91, 0xdc, 0x0e, 0x44, 0x14, 0x72, 0x99, - 0x06, 0x56, 0x8b, 0x36, 0x33, 0xde, 0xc8, 0x25, 0xcf, 0xa0, 0xc1, 0xb4, 0x03, 0x93, 0xa0, 0x6a, - 0xf6, 0x3f, 0xba, 0xec, 0xf9, 0x9c, 0x83, 0xe9, 0x0a, 0x4d, 0x9e, 0x43, 0x1d, 0xf3, 0xc2, 0xf7, - 0x02, 0xa6, 0xa2, 0xab, 0xd9, 0x37, 0x2e, 0x69, 0xae, 0x8e, 0xb8, 0x6b, 0x6a, 0x24, 0xcd, 0x74, - 0xc8, 0xcf, 0xa1, 0xc2, 0x43, 0x9f, 0xa9, 0x2a, 0xdc, 0xe9, 0x7f, 0x78, 0x49, 0x97, 0x86, 0x3e, - 0xa3, 0x0a, 0x40, 0x1e, 0x41, 0x4d, 0x7b, 0x46, 0x95, 0xe5, 0x66, 0xff, 0xe6, 0x25, 0xac, 0x0e, - 0x14, 0x9a, 0xc2, 0xc8, 0x73, 0xa8, 0xd9, 0x52, 0x72, 0xef, 0x54, 0xa8, 0x62, 0xdd, 0xec, 0xdf, - 0x7b, 0xf7, 0x97, 0xed, 0x29, 0x60, 0x2c, 0x99, 0xa0, 0xa9, 0x12, 0xfa, 0xdb, 0xb7, 0x25, 0x0b, - 0x9c, 0x0b, 0x2b, 0x10, 0xaa, 0xa4, 0x57, 0x68, 0x43, 0x73, 0x26, 0x98, 0x65, 0x99, 0xbf, 0x9b, - 0xca, 0xfc, 0xad, 0x8d, 0xfe, 0xc6, 0xd0, 0xc9, 0x7c, 0x4e, 0x6e, 0x41, 0xcd, 0x09, 0x83, 0x00, - 0xfd, 0xd0, 0x45, 0x3f, 0x1c, 0x15, 0x68, 0x15, 0x19, 0x23, 0x97, 0x7c, 0x02, 0x15, 0x5c, 0xf5, - 0x7e, 0xb0, 0xd1, 0xd8, 0xea, 0x5b, 0x8f, 0x0a, 0x54, 0x01, 0xc9, 0x43, 0x20, 0xb1, 0x60, 0xdc, - 0x8a, 0x78, 0x78, 0xee, 0xb9, 0xcc, 0xb5, 0xa4, 0x3d, 0x17, 0x3d, 0xe7, 0x4e, 0xf9, 0x41, 0x83, - 0x76, 0x51, 0x32, 0xd5, 0x02, 0xd3, 0x9e, 0x8b, 0x6d, 0x0b, 0xea, 0xe9, 0xf5, 0xab, 0x37, 0x38, - 0x62, 0x81, 0x25, 0xd3, 0xf7, 0xa7, 0x8a, 0xa4, 0xa9, 0x5e, 0x9f, 0x38, 0x9a, 0x73, 0x5b, 0x59, - 0xcb, 0x5e, 0x9f, 0x94, 0x65, 0xe2, 0xf7, 0xd7, 0x1d, 0x3f, 0x14, 0x0c, 0xa5, 0xc9, 0xf3, 0x53, - 0x53, 0xb4, 0x29, 0xb6, 0x27, 0x00, 0xab, 0x5b, 0x24, 0x77, 0xa0, 0x99, 0x56, 0xea, 0x3f, 0xb2, - 0xb4, 0x02, 0xe4, 0x59, 0x64, 0x07, 0x80, 0x05, 0x0e, 0xbf, 0x88, 0xe4, 0xaa, 0x48, 0xe6, 0x38, - 0xfb, 0x1d, 0x68, 0x71, 0xe6, 0xdb, 0x17, 0xcc, 0xb5, 0xf0, 0x1d, 0x7d, 0x51, 0xa9, 0xb7, 0xba, - 0x5d, 0xe3, 0x9b, 0x0a, 0x54, 0x93, 0x8b, 0xbd, 0x92, 0x30, 0x58, 0x58, 0xb1, 0x17, 0x72, 0x42, - 0x5f, 0x9b, 0xcb, 0xe8, 0x2c, 0xcc, 0xca, 0xdf, 0x23, 0xcc, 0x2a, 0xd7, 0x0b, 0xb3, 0xcf, 0xb4, - 0xdf, 0x92, 0xbc, 0xb9, 0xbb, 0x31, 0x08, 0x72, 0xee, 0xa3, 0xec, 0xb5, 0xf6, 0xdf, 0x17, 0x57, - 0x52, 0x67, 0x67, 0xb3, 0xf2, 0x86, 0xb4, 0x59, 0xd5, 0x80, 0xda, 0x75, 0x6a, 0xc0, 0x7a, 0x28, - 0x77, 0x2f, 0x87, 0xf2, 0xf7, 0x8b, 0x24, 0x0f, 0xda, 0x6b, 0xc7, 0xc9, 0x22, 0xb7, 0x78, 0xdd, - 0xc8, 0xcd, 0x65, 0x41, 0x69, 0x3d, 0x0b, 0xf6, 0x5b, 0x00, 0x4e, 0xa6, 0xb0, 0xfd, 0xfc, 0x3a, - 0x41, 0x9b, 0x8f, 0xc9, 0xd2, 0x5a, 0x4c, 0x1a, 0xdf, 0x54, 0xa1, 0x3c, 0x38, 0x32, 0xd7, 0x42, - 0xa3, 0x78, 0x29, 0x34, 0x7a, 0x50, 0x63, 0x81, 0x7d, 0xea, 0xb3, 0xe4, 0x63, 0xea, 0x34, 0x25, - 0xd1, 0xb0, 0x90, 0x36, 0x97, 0xb9, 0x60, 0x57, 0xb4, 0x29, 0xc8, 0x63, 0xa8, 0x46, 0x36, 0xc7, - 0xdc, 0xaf, 0x6c, 0x3c, 0xf4, 0xe0, 0xc8, 0xdc, 0x9d, 0x2a, 0x00, 0xd5, 0x40, 0xac, 0x17, 0xa7, - 0x71, 0xd2, 0xd5, 0x6d, 0xa9, 0xf7, 0x61, 0x93, 0xce, 0xbe, 0x42, 0xd0, 0x14, 0x49, 0x8e, 0xa0, - 0xeb, 0x05, 0x4e, 0xb8, 0xf4, 0x82, 0xb9, 0xf5, 0x87, 0x98, 0x71, 0x8f, 0x09, 0x1d, 0x2b, 0xb7, - 0x37, 0x68, 0x7f, 0x15, 0x33, 0x7e, 0x91, 0x3c, 0x63, 0x1f, 0xa4, 0x6a, 0x5f, 0x25, 0x5a, 0x68, - 0x29, 0x8c, 0xe5, 0x3c, 0xcc, 0x5b, 0xaa, 0x5d, 0xcb, 0x52, 0xaa, 0xa6, 0x2d, 0x6d, 0xcf, 0xa1, - 0x9a, 0x1c, 0x8d, 0xb4, 0xa0, 0x78, 0xa6, 0x9d, 0x51, 0x3c, 0xc3, 0xe9, 0xc1, 0xf6, 0xa3, 0x85, - 0xad, 0x9d, 0x90, 0x10, 0xe4, 0x67, 0xd0, 0x71, 0x3d, 0xf1, 0x7b, 0x7c, 0x2d, 0xac, 0xc8, 0x96, - 0x8b, 0xf4, 0x2a, 0xdb, 0x29, 0x77, 0x8a, 0x4c, 0x6c, 0x1d, 0x4f, 0x99, 0xb4, 0xd5, 0x75, 0x56, - 0xa8, 0x5a, 0x6f, 0xff, 0xbd, 0x08, 0x8d, 0x29, 0xbe, 0x79, 0x01, 0xfa, 0x30, 0xf7, 0x1e, 0x16, - 0xd7, 0xde, 0xc3, 0x2f, 0xb3, 0x5c, 0x48, 0x7a, 0xcc, 0xbb, 0x9b, 0x7c, 0x91, 0x9a, 0xb9, 0x9c, - 0x19, 0x06, 0xb4, 0xed, 0x39, 0x36, 0x49, 0x56, 0x72, 0xe5, 0x7a, 0xf4, 0x68, 0xda, 0x73, 0x36, - 0x0a, 0x12, 0x6f, 0x18, 0xcf, 0xb1, 0xe4, 0x28, 0x34, 0x40, 0x75, 0xef, 0xc0, 0x1c, 0xbd, 0x1a, - 0x76, 0x0b, 0xa4, 0x09, 0xb5, 0xf1, 0x68, 0x36, 0xc3, 0xee, 0xb2, 0x48, 0x5a, 0x50, 0xa7, 0xc3, - 0x17, 0xc3, 0x03, 0x73, 0x38, 0xe8, 0x96, 0xb0, 0x93, 0x3c, 0xd8, 0x9b, 0x0c, 0x46, 0x83, 0x3d, - 0x73, 0xd8, 0x2d, 0x6f, 0x4f, 0xa0, 0x9a, 0x58, 0xc2, 0xd1, 0xc9, 0x89, 0xd2, 0xf1, 0x0a, 0x97, - 0xa4, 0x0f, 0x5b, 0x78, 0x8c, 0xb4, 0x67, 0xf8, 0xf1, 0xfb, 0xbe, 0x9d, 0x26, 0xd0, 0xed, 0x57, - 0x00, 0x2b, 0xff, 0x60, 0xfc, 0x8a, 0xd8, 0x71, 0x98, 0x48, 0xf3, 0x22, 0x25, 0xd1, 0x21, 0x8c, - 0xf3, 0x90, 0xa7, 0x0e, 0x51, 0x04, 0xe2, 0xb1, 0x8c, 0x60, 0x2f, 0xa4, 0x83, 0x5a, 0x93, 0x46, - 0x08, 0x30, 0x8b, 0x4f, 0xc5, 0x85, 0x90, 0x6c, 0x29, 0xc8, 0x97, 0xd0, 0x5c, 0x65, 0x62, 0xd2, - 0xef, 0xbc, 0x2f, 0xb9, 0x69, 0x1e, 0x4d, 0xee, 0x41, 0xd9, 0x5d, 0xa4, 0xcd, 0x16, 0xb9, 0x7a, - 0x28, 0x8a, 0x62, 0xe3, 0xbb, 0x22, 0x6c, 0xa9, 0x3e, 0x94, 0x3c, 0x03, 0x10, 0xd9, 0xd6, 0xef, - 0x28, 0x24, 0xab, 0x6f, 0xa3, 0x39, 0x70, 0xbe, 0x62, 0x97, 0xae, 0x57, 0xb1, 0x6f, 0x03, 0xe0, - 0xcc, 0x64, 0x07, 0xb9, 0xcc, 0x6e, 0x68, 0x4e, 0x52, 0x4f, 0xb2, 0xb4, 0xaf, 0xac, 0xa7, 0xfd, - 0x23, 0xb8, 0x21, 0x02, 0x3b, 0x12, 0x8b, 0x50, 0x5a, 0x6e, 0xcc, 0x55, 0xab, 0xbf, 0x6a, 0xc4, - 0x49, 0x2a, 0x1b, 0x68, 0xd1, 0x58, 0x18, 0x16, 0x6c, 0xa9, 0xa6, 0x99, 0x3c, 0xd4, 0x73, 0xd0, - 0xe6, 0xce, 0x75, 0xd5, 0x58, 0x27, 0xc3, 0x4e, 0x07, 0x4a, 0x59, 0x35, 0x2b, 0x49, 0x81, 0x4e, - 0x73, 0xc2, 0x40, 0xb2, 0x40, 0xea, 0x99, 0x21, 0x25, 0x8d, 0x7f, 0x17, 0x81, 0x4c, 0x75, 0x2d, - 0xc3, 0x2e, 0x36, 0x99, 0x13, 0xf1, 0x56, 0xf2, 0x53, 0xff, 0xd5, 0x5b, 0xd1, 0x7f, 0x0f, 0xac, - 0xe6, 0x92, 0x87, 0xb0, 0xa5, 0x06, 0x06, 0x7d, 0x8b, 0x37, 0x36, 0xbc, 0x28, 0xec, 0xa8, 0x40, - 0x13, 0x10, 0xe9, 0x43, 0x8d, 0x27, 0x23, 0x91, 0xfa, 0xa0, 0xab, 0xf6, 0xf5, 0xc0, 0x74, 0x54, - 0xa0, 0x29, 0x10, 0x77, 0x50, 0x53, 0x83, 0xae, 0x99, 0x37, 0x36, 0xdd, 0x01, 0xee, 0xa0, 0x40, - 0xfb, 0x0d, 0xa8, 0x2d, 0x99, 0x10, 0xf6, 0x9c, 0x19, 0xff, 0x29, 0x41, 0xeb, 0xc0, 0xf7, 0x58, - 0x20, 0x67, 0xde, 0x3c, 0xb0, 0xfd, 0xff, 0xe3, 0x74, 0x5f, 0x40, 0x55, 0x28, 0x5d, 0x5d, 0x24, - 0xae, 0x74, 0xa9, 0x39, 0xf3, 0xbb, 0xc9, 0x0f, 0xd5, 0x1a, 0xe4, 0x10, 0x9a, 0x6a, 0xe2, 0x12, - 0x61, 0xcc, 0x9d, 0xb4, 0x87, 0xb8, 0xff, 0x3e, 0x03, 0xe8, 0x88, 0x99, 0x42, 0x53, 0x70, 0xb3, - 0x75, 0xde, 0x8b, 0x95, 0x75, 0x2f, 0xfe, 0x0e, 0xaa, 0xfa, 0x68, 0x6d, 0x68, 0xcc, 0x86, 0x93, - 0x81, 0x35, 0xd8, 0x33, 0xf7, 0xba, 0x05, 0x72, 0x13, 0xc8, 0x74, 0xef, 0x64, 0x36, 0xb4, 0xa6, - 0x27, 0xb3, 0x23, 0x6b, 0x38, 0x1e, 0x99, 0xa6, 0x1a, 0x61, 0x7b, 0x70, 0xe3, 0x64, 0xb2, 0x41, - 0x52, 0x22, 0x04, 0x3a, 0x07, 0xc7, 0x93, 0x5f, 0x8d, 0x0e, 0x33, 0x1e, 0x18, 0xf7, 0x00, 0x56, - 0x9f, 0x44, 0x1a, 0xb0, 0x35, 0x33, 0xb1, 0x34, 0xa9, 0x22, 0x46, 0x4f, 0x26, 0x6a, 0x18, 0x2e, - 0x7e, 0x3c, 0xdc, 0x58, 0xe7, 0x00, 0xaa, 0x07, 0x2f, 0x8f, 0x67, 0xc3, 0x41, 0xb7, 0x88, 0xf0, - 0xe3, 0xe9, 0x70, 0x82, 0x35, 0xaf, 0x84, 0x04, 0x0a, 0x90, 0x28, 0xa3, 0xcd, 0x21, 0xa5, 0xc7, - 0xb4, 0x5b, 0xf9, 0xf8, 0x1e, 0x54, 0xb0, 0xa1, 0xc2, 0x93, 0x8c, 0x26, 0x23, 0x73, 0xb4, 0x67, - 0x1e, 0xd3, 0x6e, 0x01, 0x49, 0x3a, 0x9c, 0x4d, 0x8f, 0x27, 0x03, 0x3c, 0xc0, 0x7e, 0xef, 0x1f, - 0x6f, 0x76, 0x8a, 0xdf, 0xbe, 0xd9, 0x29, 0x7e, 0xf7, 0x66, 0xa7, 0xf8, 0xe7, 0xb7, 0x3b, 0x85, - 0x6f, 0xdf, 0xee, 0x14, 0xfe, 0xf5, 0x76, 0xa7, 0x70, 0x5a, 0x55, 0x4f, 0xf3, 0x93, 0xff, 0x05, - 0x00, 0x00, 0xff, 0xff, 0x32, 0x96, 0xd8, 0x25, 0xe8, 0x12, 0x00, 0x00, + // 2232 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x5b, 0x6f, 0x1b, 0xc7, + 0x15, 0xe6, 0x4d, 0xbc, 0x1c, 0x5e, 0xbc, 0x9e, 0x38, 0x0d, 0xad, 0xc4, 0xaa, 0xbb, 0x4e, 0x52, + 0x23, 0x70, 0x15, 0x9b, 0xb6, 0x91, 0xa4, 0x69, 0x0d, 0x48, 0xe2, 0x56, 0xa2, 0x23, 0x52, 0xf4, + 0x90, 0x32, 0x8a, 0xa2, 0xc0, 0x62, 0xb5, 0x3b, 0x22, 0xb7, 0xe2, 0x5e, 0x3a, 0x33, 0xab, 0x44, + 0x40, 0xfb, 0x1f, 0xfa, 0x0b, 0xfa, 0x07, 0xd2, 0xa7, 0xbe, 0xf6, 0xb9, 0x40, 0x1f, 0xd3, 0xa7, + 0x16, 0x7d, 0x0a, 0x6c, 0xa0, 0xbf, 0xa3, 0x98, 0xcb, 0x2e, 0x97, 0x12, 0x6d, 0x28, 0x7d, 0xdb, + 0x73, 0xce, 0x77, 0xce, 0x70, 0xce, 0x7d, 0x08, 0xef, 0xf8, 0x21, 0xa7, 0x11, 0x8b, 0x89, 0xcb, + 0xfd, 0x28, 0xdc, 0x8e, 0x69, 0xc4, 0x23, 0xd4, 0x5e, 0x61, 0x9a, 0xf7, 0xa0, 0xf6, 0x92, 0x50, + 0xe6, 0x47, 0x21, 0xea, 0x42, 0xed, 0x5c, 0x7d, 0x76, 0x8b, 0x77, 0x8b, 0xf7, 0xdb, 0x38, 0x25, + 0xcd, 0x7d, 0x68, 0x63, 0xc2, 0x92, 0x05, 0xdf, 0x8b, 0x92, 0x90, 0x13, 0x8a, 0x6e, 0xc1, 0x06, + 0x8f, 0xb8, 0xb3, 0xd0, 0x40, 0x45, 0xa0, 0x0e, 0x94, 0xa2, 0xb3, 0x6e, 0x49, 0xb2, 0x4a, 0xd1, + 0x19, 0x32, 0xa0, 0x4c, 0x28, 0xed, 0x96, 0x25, 0x43, 0x7c, 0x9a, 0x7f, 0x2e, 0x41, 0x67, 0xb2, + 0xf0, 0x3d, 0x3f, 0x9c, 0xa5, 0xa6, 0xde, 0x83, 0x5a, 0x74, 0x4e, 0xa8, 0xfd, 0x28, 0xd0, 0xc6, + 0xaa, 0x82, 0x7c, 0x14, 0x64, 0x82, 0xa7, 0x81, 0x36, 0x29, 0x05, 0x4f, 0x03, 0x74, 0x1b, 0xea, + 0x4a, 0xe3, 0x69, 0xa0, 0x6d, 0x4b, 0xe0, 0xa3, 0x9c, 0xe8, 0xf1, 0xc3, 0xa0, 0x5b, 0x59, 0x8a, + 0x1e, 0x3f, 0xcc, 0x69, 0xcd, 0x69, 0x77, 0x23, 0xa7, 0x35, 0xa7, 0x99, 0xa8, 0x37, 0xa7, 0xdd, + 0xea, 0x52, 0xd4, 0xcb, 0x89, 0x9e, 0xcc, 0x69, 0xb7, 0xb6, 0x14, 0x3d, 0xc9, 0x89, 0x3e, 0x9f, + 0xd3, 0x6e, 0x7d, 0x29, 0xfa, 0x7c, 0x4e, 0xd1, 0xfb, 0xd0, 0x50, 0x67, 0x09, 0x8b, 0x0d, 0x29, + 0x93, 0x58, 0x41, 0x67, 0xc2, 0x9e, 0xb0, 0x09, 0x4b, 0xa1, 0xa0, 0xcd, 0x13, 0x68, 0xf4, 0x1d, + 0xee, 0xec, 0x3b, 0xc9, 0x8c, 0x08, 0xa4, 0x9b, 0x04, 0xf6, 0xc9, 0x05, 0x27, 0x4c, 0x3a, 0xa7, + 0x82, 0xeb, 0x6e, 0x12, 0xec, 0x0a, 0x1a, 0xfd, 0x18, 0x9a, 0x42, 0x18, 0x3b, 0xee, 0x19, 0xe1, + 0x4c, 0xba, 0xa8, 0x82, 0xc1, 0x4d, 0x82, 0xb1, 0xe2, 0x08, 0xff, 0xf9, 0x21, 0xe3, 0xf6, 0xc9, + 0xd7, 0xd2, 0x4b, 0x15, 0x5c, 0x15, 0xe4, 0xee, 0xd7, 0xe6, 0xbf, 0x4a, 0xd0, 0xb0, 0xce, 0x49, + 0xc8, 0xa7, 0x17, 0x31, 0x41, 0x08, 0x2a, 0xa1, 0x13, 0x10, 0x69, 0xbf, 0x81, 0xe5, 0x37, 0x1a, + 0x42, 0x27, 0xa6, 0x51, 0x4c, 0x28, 0xbf, 0xb0, 0xf9, 0x45, 0x4c, 0x84, 0xf9, 0xf2, 0xfd, 0x66, + 0xef, 0xe3, 0xed, 0xd5, 0x8c, 0xca, 0xac, 0xa8, 0xaf, 0xb1, 0xd6, 0xc1, 0xed, 0x54, 0x5b, 0xc8, + 0xd8, 0xe6, 0x7f, 0x8b, 0xd0, 0x5e, 0x01, 0xac, 0x3d, 0x74, 0x1f, 0x2a, 0xe2, 0x2c, 0x79, 0x93, + 0x4e, 0xef, 0xf1, 0xf5, 0x8e, 0xda, 0x1e, 0xe7, 0x4e, 0xc2, 0xd2, 0x00, 0xfa, 0x09, 0xb4, 0xe6, + 0x0e, 0xb3, 0x83, 0x64, 0xc1, 0xfd, 0x78, 0x41, 0xe4, 0xed, 0xeb, 0xb8, 0x39, 0x77, 0xd8, 0x50, + 0xb3, 0xcc, 0x63, 0x68, 0xe5, 0x15, 0x11, 0x40, 0x75, 0x32, 0xc5, 0x83, 0xd1, 0xbe, 0x51, 0x10, + 0xdf, 0xa3, 0xe3, 0xe1, 0xae, 0x85, 0x8d, 0x22, 0xaa, 0x43, 0x65, 0x3a, 0x18, 0x5a, 0x06, 0x08, + 0xee, 0xd8, 0xb2, 0xf0, 0xa0, 0x6f, 0x34, 0x51, 0x1b, 0x1a, 0xc3, 0xe3, 0xc3, 0xe9, 0x60, 0xa7, + 0xdf, 0xc7, 0x46, 0x4b, 0x80, 0x9e, 0x4f, 0x8e, 0x46, 0xc6, 0x6f, 0xcc, 0xbf, 0x15, 0xa1, 0x86, + 0x93, 0x90, 0xfb, 0x01, 0x41, 0x1f, 0x43, 0xc7, 0x0f, 0xe2, 0x05, 0x09, 0x48, 0xc8, 0x1d, 0x9e, + 0x16, 0x55, 0x03, 0x5f, 0xe2, 0xe6, 0xab, 0xae, 0x24, 0x01, 0x29, 0x89, 0x36, 0xa1, 0x1e, 0x2f, + 0x1c, 0x7e, 0x1a, 0x51, 0x95, 0xe7, 0x0d, 0x9c, 0xd1, 0x22, 0xb8, 0x31, 0x21, 0xd4, 0xf6, 0x3d, + 0x99, 0xe7, 0x0d, 0x5c, 0x15, 0xe4, 0xc0, 0x43, 0x5f, 0x40, 0x93, 0x08, 0x07, 0xe9, 0xb8, 0xd5, + 0x64, 0xdc, 0xba, 0x6f, 0x72, 0x26, 0x06, 0x92, 0x7e, 0x32, 0xf3, 0xd7, 0xd0, 0xb2, 0x42, 0x2f, + 0x8e, 0xfc, 0x90, 0x8f, 0x1d, 0x9f, 0xa2, 0x7b, 0xd0, 0x66, 0xd4, 0x55, 0x7e, 0x74, 0x3c, 0x8f, + 0xea, 0x0b, 0xb4, 0x18, 0x75, 0x87, 0x29, 0x4f, 0x80, 0x3c, 0xc6, 0x73, 0x20, 0x75, 0x89, 0x96, + 0xc7, 0x78, 0x06, 0x32, 0xff, 0x08, 0xb5, 0x29, 0x75, 0x4e, 0x4f, 0x7d, 0x17, 0x7d, 0x06, 0xc0, + 0xd5, 0xa7, 0xed, 0x2b, 0x97, 0x5c, 0xfd, 0x79, 0x59, 0x05, 0xe0, 0x86, 0xc6, 0x0e, 0x42, 0x71, + 0xb1, 0x54, 0x31, 0x4a, 0xb8, 0x3c, 0xe6, 0x6d, 0x9a, 0xe9, 0x29, 0x47, 0x09, 0x37, 0x7f, 0x0b, + 0x30, 0xe1, 0x94, 0x38, 0xc1, 0xa1, 0xcf, 0x38, 0xba, 0x03, 0xc0, 0x24, 0x65, 0xfb, 0x9e, 0x28, + 0xab, 0xf2, 0xfd, 0x16, 0x6e, 0x28, 0xce, 0xc0, 0x63, 0xe8, 0x53, 0xa8, 0x29, 0x22, 0x4d, 0xfa, + 0x77, 0x2f, 0x9d, 0xa1, 0x4c, 0xe1, 0x14, 0x65, 0xfe, 0xb5, 0x0a, 0xb0, 0x17, 0x85, 0xa1, 0x12, + 0x8b, 0x26, 0xe8, 0x7b, 0xf2, 0x62, 0x2d, 0x5c, 0xf2, 0xbd, 0x7c, 0xa4, 0x4a, 0x2b, 0x91, 0xfa, + 0x19, 0x54, 0x19, 0x77, 0x78, 0xc2, 0x64, 0x70, 0x3b, 0x6b, 0xce, 0x11, 0x42, 0xac, 0x41, 0x22, + 0xab, 0x39, 0x75, 0x42, 0x16, 0x47, 0x94, 0xa7, 0x61, 0x6f, 0xe1, 0x66, 0xc6, 0x93, 0xb1, 0x6f, + 0x10, 0x1d, 0x40, 0x26, 0x7b, 0x5c, 0xb3, 0xf7, 0xfe, 0xe5, 0xc8, 0xe7, 0x02, 0x8c, 0x97, 0x68, + 0xf4, 0x0c, 0xea, 0x22, 0x6b, 0x17, 0x7e, 0x48, 0x64, 0x0b, 0x6c, 0xf6, 0xcc, 0x4b, 0x9a, 0xcb, + 0x2b, 0x6e, 0x4f, 0x35, 0x12, 0x67, 0x3a, 0xe8, 0xa7, 0x50, 0xa1, 0xd1, 0x82, 0xc8, 0x1e, 0xd9, + 0xe9, 0xbd, 0x73, 0x49, 0x17, 0x47, 0x0b, 0x82, 0x25, 0x00, 0x3d, 0x84, 0x9a, 0x8e, 0x8c, 0x6c, + 0x9a, 0xcd, 0xde, 0x8f, 0x2e, 0x61, 0x75, 0xa2, 0xe0, 0x14, 0x86, 0x9e, 0x41, 0xcd, 0xe1, 0x9c, + 0xfa, 0x27, 0x4c, 0xb6, 0xd2, 0x66, 0xef, 0xc3, 0x37, 0xff, 0xb2, 0x1d, 0x09, 0x4c, 0x38, 0x61, + 0x38, 0x55, 0x12, 0xf1, 0x5e, 0x38, 0x9c, 0x84, 0xee, 0x85, 0x1d, 0x32, 0xd9, 0x70, 0x2b, 0xb8, + 0xa1, 0x39, 0x23, 0x86, 0x1e, 0x2f, 0xe3, 0xdd, 0x94, 0xe6, 0x6f, 0xaf, 0x8d, 0xb7, 0x48, 0x9d, + 0x2c, 0xe6, 0xe8, 0x36, 0xd4, 0xdc, 0x28, 0x0c, 0x45, 0x1c, 0x0c, 0x11, 0x87, 0x83, 0x02, 0xae, + 0x0a, 0xc6, 0xc0, 0x43, 0x9f, 0x42, 0x45, 0x7c, 0x75, 0x6f, 0xae, 0x35, 0xb6, 0xfc, 0xad, 0x07, + 0x05, 0x2c, 0x81, 0xe8, 0x01, 0xa0, 0x84, 0x11, 0x6a, 0xc7, 0x34, 0x3a, 0xf7, 0x3d, 0xe2, 0xd9, + 0xdc, 0x99, 0xb1, 0xae, 0x7b, 0xb7, 0x7c, 0xbf, 0x81, 0x0d, 0x21, 0x19, 0x6b, 0xc1, 0xd4, 0x99, + 0xb1, 0x4d, 0x1b, 0xea, 0xa9, 0xfb, 0xe5, 0x84, 0x8c, 0x49, 0x68, 0xf3, 0x74, 0x3a, 0x54, 0x05, + 0x39, 0x95, 0xb3, 0x21, 0x89, 0x67, 0xd4, 0x91, 0xd6, 0xb2, 0xd9, 0x90, 0xb2, 0xa6, 0xe2, 0xf7, + 0xd7, 0xdd, 0x45, 0xc4, 0x88, 0x90, 0xaa, 0xe1, 0x50, 0x93, 0xf4, 0x94, 0x6d, 0x8e, 0x00, 0x96, + 0x5e, 0x44, 0x77, 0xa1, 0x99, 0xf6, 0xd1, 0x6f, 0x48, 0xda, 0x01, 0xf2, 0x2c, 0xb4, 0x05, 0x40, + 0x42, 0x97, 0x5e, 0xc4, 0x7c, 0xd9, 0xc2, 0x72, 0x9c, 0xdd, 0x0e, 0xb4, 0x28, 0x59, 0x38, 0x17, + 0xc4, 0xb3, 0xc5, 0x94, 0x7b, 0x5e, 0xa9, 0xb7, 0x0c, 0xc3, 0xfc, 0xb6, 0x02, 0x55, 0xe5, 0xd8, + 0x2b, 0x05, 0x23, 0xda, 0x9e, 0xd8, 0x54, 0xdc, 0x68, 0xa1, 0xcd, 0x65, 0x74, 0x96, 0x66, 0xe5, + 0x1f, 0x90, 0x66, 0x95, 0xeb, 0xa5, 0xd9, 0x67, 0x3a, 0x6e, 0xaa, 0x6e, 0xee, 0xad, 0x4d, 0x82, + 0x5c, 0xf8, 0x30, 0x39, 0xd5, 0xf1, 0xfb, 0xf9, 0x95, 0xd2, 0xd9, 0x5a, 0xaf, 0xbc, 0xa6, 0x6c, + 0x96, 0x3d, 0xa0, 0x76, 0x9d, 0x1e, 0xb0, 0x9a, 0xca, 0xc6, 0xe5, 0x54, 0xfe, 0x61, 0x99, 0xe4, + 0x43, 0x7b, 0xe5, 0x3a, 0x59, 0xe6, 0x16, 0xaf, 0x9b, 0xb9, 0xb9, 0x2a, 0x28, 0xad, 0x56, 0xc1, + 0x6e, 0x0b, 0xc0, 0xcd, 0x14, 0x36, 0x9f, 0x5d, 0x27, 0x69, 0xf3, 0x39, 0x59, 0x5a, 0xc9, 0x49, + 0xf3, 0xdb, 0x2a, 0x94, 0xfb, 0x07, 0xd3, 0x95, 0xd4, 0x28, 0x5e, 0x4a, 0x8d, 0x2e, 0xd4, 0x48, + 0xe8, 0x9c, 0x2c, 0x88, 0xfa, 0x31, 0x75, 0x9c, 0x92, 0xc2, 0x30, 0xe3, 0x0e, 0xe5, 0xb9, 0x64, + 0x97, 0xf4, 0x94, 0xa1, 0x47, 0x50, 0x8d, 0x1d, 0x2a, 0x6a, 0xbf, 0xb2, 0xf6, 0xd2, 0xfd, 0x83, + 0xe9, 0xf6, 0x58, 0x02, 0xb0, 0x06, 0x8a, 0x7e, 0x71, 0x92, 0xa8, 0x9d, 0x6b, 0x43, 0xce, 0x87, + 0x75, 0x3a, 0xbb, 0x12, 0x81, 0x53, 0x24, 0x3a, 0x00, 0xc3, 0x0f, 0xdd, 0x28, 0xf0, 0xc3, 0x99, + 0xfd, 0xfb, 0x84, 0x50, 0x9f, 0x30, 0x9d, 0x2b, 0x77, 0xd6, 0x68, 0xbf, 0x48, 0x08, 0xbd, 0x50, + 0x63, 0xec, 0x46, 0xaa, 0xf6, 0x42, 0x69, 0x09, 0x4b, 0x51, 0xc2, 0x67, 0x51, 0xde, 0x52, 0xed, + 0x5a, 0x96, 0x52, 0x35, 0x6d, 0x69, 0x73, 0x06, 0x55, 0x75, 0x35, 0xd4, 0x82, 0xe2, 0x99, 0x0e, + 0x46, 0xf1, 0x4c, 0xec, 0xf6, 0xce, 0x22, 0x9e, 0x3b, 0x3a, 0x08, 0x8a, 0x40, 0x1f, 0x41, 0xc7, + 0xf3, 0xd9, 0xef, 0xc4, 0xb4, 0xb0, 0x63, 0x87, 0xcf, 0x53, 0x57, 0xb6, 0x53, 0xee, 0x58, 0x30, + 0xc5, 0x62, 0x77, 0x42, 0xb8, 0x23, 0xdd, 0x59, 0xc1, 0xf2, 0x7b, 0xf3, 0xef, 0x45, 0x68, 0x8c, + 0xc5, 0xcc, 0x0b, 0x45, 0x0c, 0x73, 0xf3, 0xb0, 0xb8, 0x32, 0x0f, 0xbf, 0xcc, 0x6a, 0x41, 0x6d, + 0x80, 0xf7, 0xd6, 0xc5, 0x22, 0x35, 0x73, 0xb9, 0x32, 0x4c, 0x68, 0x3b, 0x33, 0x62, 0xfb, 0xa1, + 0xad, 0x5c, 0xae, 0x1f, 0x06, 0x4d, 0x67, 0x46, 0x06, 0xa1, 0x8a, 0x86, 0xf9, 0x4c, 0xb4, 0x1c, + 0x89, 0x06, 0xa8, 0xee, 0xec, 0x4d, 0x07, 0x2f, 0x2d, 0xa3, 0x80, 0x9a, 0x50, 0x1b, 0x0e, 0x26, + 0x13, 0xb1, 0xfb, 0x15, 0x51, 0x0b, 0xea, 0xd8, 0x7a, 0x6e, 0xed, 0x4d, 0xad, 0xbe, 0x51, 0x12, + 0x7b, 0xde, 0xde, 0xce, 0xa8, 0x3f, 0xe8, 0xef, 0x4c, 0x2d, 0xa3, 0xbc, 0x39, 0x82, 0xaa, 0xb2, + 0x24, 0x1e, 0x36, 0x6e, 0x9c, 0x3e, 0x7e, 0xc4, 0x27, 0xea, 0xc1, 0x86, 0xb8, 0x46, 0xba, 0x33, + 0x7c, 0xf0, 0xb6, 0xdf, 0x8e, 0x15, 0x74, 0xf3, 0x25, 0xc0, 0x32, 0x3e, 0x22, 0x7f, 0x59, 0xe2, + 0xba, 0x84, 0xa5, 0x75, 0x91, 0x92, 0x22, 0x20, 0x84, 0xd2, 0x88, 0xa6, 0x01, 0x91, 0x84, 0xc0, + 0x8b, 0x36, 0x22, 0x76, 0x21, 0x9d, 0xd4, 0x9a, 0x34, 0x23, 0x80, 0x49, 0x72, 0xc2, 0x2e, 0x18, + 0x27, 0x01, 0x43, 0x5f, 0x42, 0x73, 0x59, 0x89, 0x6a, 0xdf, 0x79, 0x5b, 0x71, 0xe3, 0x3c, 0x1a, + 0x7d, 0x08, 0x65, 0x6f, 0x9e, 0x2e, 0x5b, 0xe8, 0xea, 0xa5, 0xb0, 0x10, 0x9b, 0xdf, 0x17, 0x61, + 0x43, 0x78, 0x96, 0xa0, 0x2f, 0x00, 0x58, 0x76, 0xf4, 0x1b, 0x1a, 0xc9, 0xf2, 0xb7, 0xe1, 0x1c, + 0x38, 0xdf, 0xb1, 0x4b, 0xd7, 0xeb, 0xd8, 0x77, 0x00, 0xc4, 0x8b, 0xc6, 0x09, 0x73, 0x95, 0xdd, + 0xd0, 0x1c, 0xd5, 0x4f, 0xb2, 0xb2, 0xaf, 0xac, 0x96, 0xfd, 0x43, 0xb8, 0xc5, 0x42, 0x27, 0x66, + 0xf3, 0x88, 0xdb, 0x5e, 0x42, 0xe5, 0x22, 0x6e, 0x07, 0x4c, 0xbf, 0x0b, 0x51, 0x2a, 0xeb, 0x6b, + 0xd1, 0x90, 0x99, 0x36, 0x6c, 0xc8, 0xa5, 0x19, 0x3d, 0xd0, 0xaf, 0x94, 0xf5, 0x9b, 0xeb, 0x72, + 0xb1, 0x56, 0x4f, 0x91, 0x0e, 0x94, 0xb2, 0x6e, 0x56, 0xe2, 0x4c, 0x04, 0xcd, 0x8d, 0x42, 0x4e, + 0x42, 0xae, 0x37, 0xfa, 0x94, 0x34, 0xff, 0x59, 0x82, 0xf6, 0x84, 0xd0, 0x73, 0x42, 0x87, 0x84, + 0x31, 0x67, 0x26, 0x47, 0x58, 0xfe, 0x39, 0x7e, 0xd5, 0x21, 0xfa, 0xdd, 0xbe, 0x7c, 0x30, 0x3c, + 0x80, 0x0d, 0x51, 0x0e, 0x44, 0x3b, 0xf0, 0xd6, 0x9a, 0x61, 0x42, 0x0e, 0x0a, 0x58, 0x81, 0x50, + 0x0f, 0x6a, 0x54, 0xbd, 0x55, 0xe4, 0x6f, 0xb9, 0x6a, 0x5f, 0xbf, 0x64, 0x0e, 0x0a, 0x38, 0x05, + 0x8a, 0x13, 0xe4, 0x83, 0x41, 0xb7, 0xcb, 0x5b, 0xeb, 0xae, 0x2f, 0x4e, 0x90, 0x20, 0xf4, 0x0b, + 0xa8, 0x53, 0xc2, 0xe2, 0x28, 0x64, 0x44, 0x8f, 0xd5, 0xad, 0x2b, 0x79, 0x17, 0x04, 0x4e, 0xe8, + 0x61, 0x8d, 0x3a, 0x28, 0xe0, 0x4c, 0x03, 0x3d, 0x85, 0x6a, 0x18, 0x71, 0xdf, 0x4d, 0xa7, 0xea, + 0xe5, 0x55, 0x56, 0x79, 0x6b, 0x24, 0x21, 0x62, 0xf2, 0x28, 0xf0, 0x6e, 0x03, 0x6a, 0xb1, 0x73, + 0xb1, 0x88, 0x1c, 0xcf, 0xfc, 0x83, 0x9c, 0x70, 0xa7, 0xfe, 0x4c, 0xc7, 0x11, 0x6d, 0xc3, 0x3b, + 0x94, 0x08, 0x77, 0x8b, 0x78, 0xc7, 0x84, 0xfa, 0x91, 0x67, 0x07, 0x69, 0xbd, 0xdd, 0xcc, 0x44, + 0x63, 0x29, 0x19, 0x8a, 0xda, 0xd9, 0x94, 0xbe, 0xb2, 0xb3, 0x6c, 0xf1, 0x43, 0x4e, 0xe8, 0xb9, + 0xb3, 0xb0, 0x83, 0x34, 0xac, 0xef, 0x49, 0xc4, 0x44, 0x03, 0x06, 0x5a, 0x3e, 0x64, 0xe6, 0x5f, + 0xca, 0xd0, 0xde, 0x5b, 0xf8, 0x24, 0xe4, 0xfa, 0x96, 0xff, 0x47, 0x44, 0xd5, 0x6e, 0xa4, 0xf3, + 0xc7, 0xf7, 0xc4, 0x2e, 0xec, 0x2a, 0x63, 0x7a, 0x05, 0xba, 0xb2, 0x0b, 0xe7, 0x0f, 0xcc, 0xdc, + 0x9b, 0x2a, 0xc9, 0x1e, 0x1b, 0x25, 0xd4, 0x25, 0x32, 0x80, 0x57, 0x7b, 0xec, 0xaa, 0xfa, 0x44, + 0x42, 0xb1, 0x56, 0x41, 0x4f, 0x40, 0x4c, 0xf7, 0x53, 0x7f, 0xa6, 0x83, 0xf9, 0xc1, 0xd5, 0x26, + 0xb2, 0xf4, 0x35, 0xd6, 0x58, 0xf3, 0x01, 0x54, 0x95, 0x1d, 0xd4, 0x80, 0x8d, 0xc9, 0x54, 0xb4, + 0x52, 0xd9, 0x74, 0xf1, 0xf1, 0x48, 0x3e, 0xad, 0x8b, 0xa2, 0x1b, 0x5b, 0x2f, 0xad, 0xd1, 0x74, + 0x62, 0x94, 0xcc, 0x6f, 0xa0, 0x96, 0x7a, 0xab, 0x01, 0x1b, 0x07, 0xd6, 0xe1, 0xe1, 0x91, 0x86, + 0x5b, 0x2f, 0x8e, 0xad, 0xc9, 0xd4, 0x28, 0xa2, 0x1b, 0xd0, 0x1c, 0x1f, 0x4f, 0x0e, 0x6c, 0x6b, + 0xb4, 0xb3, 0x7b, 0x68, 0x19, 0x25, 0x64, 0x40, 0x4b, 0x32, 0xfa, 0x83, 0x89, 0xe4, 0x94, 0x51, + 0x07, 0x40, 0x72, 0xc6, 0x3b, 0xc7, 0x13, 0xcb, 0xa8, 0x64, 0x2a, 0xd8, 0x9a, 0x1c, 0x0f, 0x2d, + 0x63, 0x03, 0xdd, 0x84, 0xf6, 0xf1, 0x58, 0xb4, 0x75, 0x7b, 0xef, 0x68, 0xf4, 0xab, 0xc1, 0xbe, + 0x51, 0x33, 0xff, 0x53, 0x84, 0x1b, 0x97, 0xd2, 0x31, 0xb7, 0x9a, 0x2a, 0xf7, 0xff, 0x12, 0xaa, + 0x54, 0xfe, 0x0f, 0xa6, 0x47, 0xd4, 0x47, 0x6f, 0x4f, 0xe7, 0x6d, 0xf5, 0xa7, 0x19, 0xd6, 0x4a, + 0xcb, 0x46, 0xae, 0x6a, 0x5f, 0x37, 0xf2, 0x7d, 0x30, 0xc8, 0xe9, 0xa9, 0xb0, 0x70, 0x4e, 0x6c, + 0xed, 0xe0, 0xca, 0x35, 0x1c, 0x7c, 0x23, 0xd3, 0x52, 0x7c, 0xf3, 0x36, 0x54, 0xd5, 0x81, 0xa8, + 0x0a, 0xa5, 0xa3, 0xaf, 0x8c, 0x02, 0xaa, 0x41, 0xd9, 0xc2, 0xd8, 0x28, 0x9a, 0x2e, 0xb4, 0xf2, + 0xe5, 0x82, 0x9e, 0x40, 0xe5, 0xcc, 0x0f, 0xd5, 0xd5, 0x3a, 0xbd, 0xbb, 0x6f, 0xa9, 0xac, 0xed, + 0xaf, 0xfc, 0xd0, 0xc3, 0x12, 0x6d, 0xde, 0x81, 0x8a, 0xa0, 0xd0, 0xbb, 0x70, 0xb3, 0x3f, 0x98, + 0xec, 0xed, 0xe0, 0xfe, 0x60, 0xb4, 0x6f, 0xeb, 0xd8, 0x15, 0x3e, 0xb1, 0xd6, 0xce, 0x57, 0x80, + 0xea, 0xde, 0xe1, 0xd1, 0xc4, 0xea, 0x1b, 0x45, 0x11, 0xc7, 0xa3, 0xb1, 0x35, 0x12, 0xb3, 0xb6, + 0x24, 0x08, 0x21, 0x10, 0x44, 0x59, 0x04, 0xdb, 0xc2, 0xf8, 0x08, 0x1b, 0x95, 0x4f, 0x3e, 0x84, + 0x8a, 0x58, 0xe4, 0xc5, 0xf4, 0x1d, 0x8c, 0x06, 0xd3, 0xc1, 0xce, 0xf4, 0x08, 0x1b, 0x05, 0x41, + 0x62, 0x6b, 0x32, 0x3e, 0x1a, 0xf5, 0x2d, 0x6c, 0x14, 0x77, 0xbb, 0xff, 0x78, 0xb5, 0x55, 0xfc, + 0xee, 0xd5, 0x56, 0xf1, 0xfb, 0x57, 0x5b, 0xc5, 0x3f, 0xbd, 0xde, 0x2a, 0x7c, 0xf7, 0x7a, 0xab, + 0xf0, 0xef, 0xd7, 0x5b, 0x85, 0x93, 0xaa, 0x5c, 0x09, 0x1f, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, + 0x5e, 0x30, 0xca, 0x4b, 0xfe, 0x14, 0x00, 0x00, } func (m *Version) Marshal() (dAtA []byte, err error) { @@ -2694,16 +2957,6 @@ func (m *Runtime) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x3a } } - if m.SendStateIntervalMs != 0 { - i = encodeVarintIntrospection(dAtA, i, uint64(m.SendStateIntervalMs)) - i-- - dAtA[i] = 0x30 - } - if m.KeepStaleDataMs != 0 { - i = encodeVarintIntrospection(dAtA, i, uint64(m.KeepStaleDataMs)) - i-- - dAtA[i] = 0x28 - } if len(m.PeerId) > 0 { i -= len(m.PeerId) copy(dAtA[i:], m.PeerId) @@ -3739,7 +3992,7 @@ func (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *ProtocolDataPacket) Marshal() (dAtA []byte, err error) { +func (m *ServerMessage) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -3749,21 +4002,21 @@ func (m *ProtocolDataPacket) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ProtocolDataPacket) MarshalTo(dAtA []byte) (int, error) { +func (m *ServerMessage) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ProtocolDataPacket) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ServerMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Message != nil { + if m.Payload != nil { { - size := m.Message.Size() + size := m.Payload.Size() i -= size - if _, err := m.Message.MarshalTo(dAtA[i:]); err != nil { + if _, err := m.Payload.MarshalTo(dAtA[i:]); err != nil { return 0, err } } @@ -3783,12 +4036,12 @@ func (m *ProtocolDataPacket) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *ProtocolDataPacket_State) MarshalTo(dAtA []byte) (int, error) { +func (m *ServerMessage_State) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ProtocolDataPacket_State) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ServerMessage_State) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) if m.State != nil { { @@ -3804,12 +4057,12 @@ func (m *ProtocolDataPacket_State) MarshalToSizedBuffer(dAtA []byte) (int, error } return len(dAtA) - i, nil } -func (m *ProtocolDataPacket_Runtime) MarshalTo(dAtA []byte) (int, error) { +func (m *ServerMessage_Runtime) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ProtocolDataPacket_Runtime) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ServerMessage_Runtime) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) if m.Runtime != nil { { @@ -3825,12 +4078,12 @@ func (m *ProtocolDataPacket_Runtime) MarshalToSizedBuffer(dAtA []byte) (int, err } return len(dAtA) - i, nil } -func (m *ProtocolDataPacket_Event) MarshalTo(dAtA []byte) (int, error) { +func (m *ServerMessage_Event) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ProtocolDataPacket_Event) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ServerMessage_Event) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) if m.Event != nil { { @@ -3846,7 +4099,49 @@ func (m *ProtocolDataPacket_Event) MarshalToSizedBuffer(dAtA []byte) (int, error } return len(dAtA) - i, nil } -func (m *ClientSignal) Marshal() (dAtA []byte, err error) { +func (m *ServerMessage_Response) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ServerMessage_Response) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Response != nil { + { + size, err := m.Response.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *ServerMessage_Notice) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ServerMessage_Notice) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Notice != nil { + { + size, err := m.Notice.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *Configuration) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -3856,30 +4151,73 @@ func (m *ClientSignal) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ClientSignal) MarshalTo(dAtA []byte) (int, error) { +func (m *Configuration) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ClientSignal) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *Configuration) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Content) > 0 { - i -= len(m.Content) - copy(dAtA[i:], m.Content) - i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Content))) + if m.StateSnapshotIntervalMs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.StateSnapshotIntervalMs)) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x10 + } + if m.RetentionPeriodMs != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.RetentionPeriodMs)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ClientCommand) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClientCommand) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ClientCommand) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Config != nil { + { + size, err := m.Config.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.Source != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Source)) + i-- + dAtA[i] = 0x20 } - if m.DataSource != 0 { - i = encodeVarintIntrospection(dAtA, i, uint64(m.DataSource)) + if m.Command != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Command)) i-- dAtA[i] = 0x18 } - if m.Signal != 0 { - i = encodeVarintIntrospection(dAtA, i, uint64(m.Signal)) + if m.Id != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Id)) i-- dAtA[i] = 0x10 } @@ -3898,17 +4236,97 @@ func (m *ClientSignal) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func encodeVarintIntrospection(dAtA []byte, offset int, v uint64) int { - offset -= sovIntrospection(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} +func (m *CommandResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CommandResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CommandResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.EffectiveConfig != nil { + { + size, err := m.EffectiveConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintIntrospection(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if len(m.Error) > 0 { + i -= len(m.Error) + copy(dAtA[i:], m.Error) + i = encodeVarintIntrospection(dAtA, i, uint64(len(m.Error))) + i-- + dAtA[i] = 0x1a + } + if m.Result != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Result)) + i-- + dAtA[i] = 0x10 + } + if m.Id != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ServerNotice) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ServerNotice) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ServerNotice) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Kind != 0 { + i = encodeVarintIntrospection(dAtA, i, uint64(m.Kind)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func encodeVarintIntrospection(dAtA []byte, offset int, v uint64) int { + offset -= sovIntrospection(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} func (m *Version) Size() (n int) { if m == nil { return 0 @@ -4056,12 +4474,6 @@ func (m *Runtime) Size() (n int) { if l > 0 { n += 1 + l + sovIntrospection(uint64(l)) } - if m.KeepStaleDataMs != 0 { - n += 1 + sovIntrospection(uint64(m.KeepStaleDataMs)) - } - if m.SendStateIntervalMs != 0 { - n += 1 + sovIntrospection(uint64(m.SendStateIntervalMs)) - } if len(m.EventTypes) > 0 { for _, e := range m.EventTypes { l = e.Size() @@ -4517,7 +4929,7 @@ func (m *Event) Size() (n int) { return n } -func (m *ProtocolDataPacket) Size() (n int) { +func (m *ServerMessage) Size() (n int) { if m == nil { return 0 } @@ -4527,13 +4939,13 @@ func (m *ProtocolDataPacket) Size() (n int) { l = m.Version.Size() n += 1 + l + sovIntrospection(uint64(l)) } - if m.Message != nil { - n += m.Message.Size() + if m.Payload != nil { + n += m.Payload.Size() } return n } -func (m *ProtocolDataPacket_State) Size() (n int) { +func (m *ServerMessage_State) Size() (n int) { if m == nil { return 0 } @@ -4545,7 +4957,7 @@ func (m *ProtocolDataPacket_State) Size() (n int) { } return n } -func (m *ProtocolDataPacket_Runtime) Size() (n int) { +func (m *ServerMessage_Runtime) Size() (n int) { if m == nil { return 0 } @@ -4557,7 +4969,7 @@ func (m *ProtocolDataPacket_Runtime) Size() (n int) { } return n } -func (m *ProtocolDataPacket_Event) Size() (n int) { +func (m *ServerMessage_Event) Size() (n int) { if m == nil { return 0 } @@ -4569,7 +4981,46 @@ func (m *ProtocolDataPacket_Event) Size() (n int) { } return n } -func (m *ClientSignal) Size() (n int) { +func (m *ServerMessage_Response) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Response != nil { + l = m.Response.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} +func (m *ServerMessage_Notice) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Notice != nil { + l = m.Notice.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} +func (m *Configuration) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RetentionPeriodMs != 0 { + n += 1 + sovIntrospection(uint64(m.RetentionPeriodMs)) + } + if m.StateSnapshotIntervalMs != 0 { + n += 1 + sovIntrospection(uint64(m.StateSnapshotIntervalMs)) + } + return n +} + +func (m *ClientCommand) Size() (n int) { if m == nil { return 0 } @@ -4579,16 +5030,54 @@ func (m *ClientSignal) Size() (n int) { l = m.Version.Size() n += 1 + l + sovIntrospection(uint64(l)) } - if m.Signal != 0 { - n += 1 + sovIntrospection(uint64(m.Signal)) + if m.Id != 0 { + n += 1 + sovIntrospection(uint64(m.Id)) } - if m.DataSource != 0 { - n += 1 + sovIntrospection(uint64(m.DataSource)) + if m.Command != 0 { + n += 1 + sovIntrospection(uint64(m.Command)) } - l = len(m.Content) + if m.Source != 0 { + n += 1 + sovIntrospection(uint64(m.Source)) + } + if m.Config != nil { + l = m.Config.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func (m *CommandResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovIntrospection(uint64(m.Id)) + } + if m.Result != 0 { + n += 1 + sovIntrospection(uint64(m.Result)) + } + l = len(m.Error) if l > 0 { n += 1 + l + sovIntrospection(uint64(l)) } + if m.EffectiveConfig != nil { + l = m.EffectiveConfig.Size() + n += 1 + l + sovIntrospection(uint64(l)) + } + return n +} + +func (m *ServerNotice) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Kind != 0 { + n += 1 + sovIntrospection(uint64(m.Kind)) + } return n } @@ -5533,44 +6022,6 @@ func (m *Runtime) Unmarshal(dAtA []byte) error { } m.PeerId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field KeepStaleDataMs", wireType) - } - m.KeepStaleDataMs = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.KeepStaleDataMs |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SendStateIntervalMs", wireType) - } - m.SendStateIntervalMs = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.SendStateIntervalMs |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } case 7: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field EventTypes", wireType) @@ -8414,7 +8865,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { } return nil } -func (m *ProtocolDataPacket) Unmarshal(dAtA []byte) error { +func (m *ServerMessage) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -8437,10 +8888,10 @@ func (m *ProtocolDataPacket) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ProtocolDataPacket: wiretype end group for non-group") + return fmt.Errorf("proto: ServerMessage: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ProtocolDataPacket: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ServerMessage: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -8512,7 +8963,7 @@ func (m *ProtocolDataPacket) Unmarshal(dAtA []byte) error { if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Message = &ProtocolDataPacket_State{v} + m.Payload = &ServerMessage_State{v} iNdEx = postIndex case 3: if wireType != 2 { @@ -8547,7 +8998,7 @@ func (m *ProtocolDataPacket) Unmarshal(dAtA []byte) error { if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Message = &ProtocolDataPacket_Runtime{v} + m.Payload = &ServerMessage_Runtime{v} iNdEx = postIndex case 4: if wireType != 2 { @@ -8582,7 +9033,77 @@ func (m *ProtocolDataPacket) Unmarshal(dAtA []byte) error { if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Message = &ProtocolDataPacket_Event{v} + m.Payload = &ServerMessage_Event{v} + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Response", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &CommandResponse{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Payload = &ServerMessage_Response{v} + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Notice", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ServerNotice{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Payload = &ServerMessage_Notice{v} iNdEx = postIndex default: iNdEx = preIndex @@ -8608,7 +9129,7 @@ func (m *ProtocolDataPacket) Unmarshal(dAtA []byte) error { } return nil } -func (m *ClientSignal) Unmarshal(dAtA []byte) error { +func (m *Configuration) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -8631,17 +9152,17 @@ func (m *ClientSignal) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ClientSignal: wiretype end group for non-group") + return fmt.Errorf("proto: Configuration: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ClientSignal: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Configuration: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RetentionPeriodMs", wireType) } - var msglen int + m.RetentionPeriodMs = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -8651,33 +9172,16 @@ func (m *ClientSignal) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.RetentionPeriodMs |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthIntrospection - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthIntrospection - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Version == nil { - m.Version = &Version{} - } - if err := m.Version.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Signal", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StateSnapshotIntervalMs", wireType) } - m.Signal = 0 + m.StateSnapshotIntervalMs = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIntrospection @@ -8687,33 +9191,287 @@ func (m *ClientSignal) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Signal |= ClientSignal_Signal(b&0x7F) << shift + m.StateSnapshotIntervalMs |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DataSource", wireType) + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err } - m.DataSource = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIntrospection + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClientCommand) 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 ErrIntOverflowIntrospection + } + 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: ClientCommand: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClientCommand: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Version == nil { + m.Version = &Version{} + } + if err := m.Version.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ - m.DataSource |= ClientSignal_DataSource(b&0x7F) << shift + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Command", wireType) + } + m.Command = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Command |= ClientCommand_Command(b&0x7F) << shift if b < 0x80 { break } } case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType) + } + m.Source = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Source |= ClientCommand_Source(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Content", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Config == nil { + m.Config = &Configuration{} + } + if err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CommandResponse) 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 ErrIntOverflowIntrospection + } + 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: CommandResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CommandResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + } + m.Result = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Result |= CommandResponse_Result(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -8741,8 +9499,116 @@ func (m *ClientSignal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Content = string(dAtA[iNdEx:postIndex]) + m.Error = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EffectiveConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIntrospection + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthIntrospection + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EffectiveConfig == nil { + m.EffectiveConfig = &Configuration{} + } + if err := m.EffectiveConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIntrospection(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthIntrospection + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ServerNotice) 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 ErrIntOverflowIntrospection + } + 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: ServerNotice: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ServerNotice: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + } + m.Kind = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIntrospection + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Kind |= ServerNotice_Kind(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipIntrospection(dAtA[iNdEx:]) diff --git a/introspection/pb/introspection.proto b/introspection/pb/introspection.proto index 02e2dd63..fa9285bc 100644 --- a/introspection/pb/introspection.proto +++ b/introspection/pb/introspection.proto @@ -89,10 +89,6 @@ message Runtime { string platform = 3; // our peer id - the peer id of the host system string peer_id = 4; - // length of time to keep stale data - uint32 keep_stale_data_ms = 5; - // frequency to send new states - uint32 send_state_interval_ms = 6; // metadata describing configured event types repeated EventType event_types = 7; } @@ -340,46 +336,86 @@ message Event { string content = 3; } -// ProtocolDataPacket wraps messages to be sent to clients to allow extension +// ServerMessage wraps messages to be sent to clients to allow extension // based on new types of data sources -message ProtocolDataPacket { - // Version of this protobuf +message ServerMessage { + // Version of this protobuf. Version version = 1; - // The Message this contains - oneof message { + // The payload this message contains. + oneof payload { State state = 2; Runtime runtime = 3; Event event = 4; + + CommandResponse response = 5; + ServerNotice notice = 6; } } -// ClientSignal is a type of message to be sent from clients to the server to signal -// within the operation of the protocol -message ClientSignal { - // The signal to be sent to the server - enum Signal { - // SEND_DATA with `data_source` requests messages from pull-based data emitters - SEND_DATA = 0; - // PAUSE_ & UNPAUSE_PUSH_EMITTER allows control of push-based data emitters - PAUSE_PUSH_EMITTER = 1; - UNPAUSE_PUSH_EMITTER = 2; - - // CONFIG_EMITTER with `content` sends a JSON object of settings to the emitter - CONFIG_EMITTER = 10; +// Configuration encapsulates configuration fields for the protocol and commands. +message Configuration { + uint64 retention_period_ms = 1; + uint64 state_snapshot_interval_ms = 2; +} + +// ClientCommand is a command sent from the client to the server. +message ClientCommand { + enum Source { + STATE = 0; // full state snapshot. + RUNTIME = 1; // runtime data message. + EVENTS = 2; // eventbus events. } - // The source the data is expected to come from - enum DataSource { - STATE = 0; // A full state snapshot - RUNTIME = 1; // A runtime data message + enum Command { + // HELLO is the first command that a client must send to greet the server. + // Connections that do not respect this invariant will be terminated. + HELLO = 0; + + // REQUEST is applicable to STATE and RUNTIME sources. + REQUEST = 1; + + // PUSH streams can only be started for STATE and EVENTS sources. + PUSH_ENABLE = 2; // enables pushing for a given source. + PUSH_DISABLE = 3; // disables pushing for a given source. + PUSH_PAUSE = 4; // pauses pushing for all sources. + PUSH_RESUME = 5; // resumes pushing for all sources. + + // UPDATE_CONFIG requests a configuration update. The config field is + // compulsory. + // + // The server reserves the right to override the requested values, and + // will return the effective configuration in the response. + UPDATE_CONFIG = 7; } - // Version of this protobuf - Version version = 1; - // Signal to be sent - Signal signal = 2; - // Correlated DataSource for this signal (if any) - DataSource data_source = 3; - // Optional: JSON stringified content to be sent to the emitter - string content = 4; + Version version = 1; + uint64 id = 2; // a unique ID for this request. + Command command = 3; + Source source = 4; + Configuration config = 5; +} + +// CommandResponse is a response to a command sent by the client. +message CommandResponse { + enum Result { + OK = 0; + ERR = 1; + } + + uint64 id = 1; // for correlation with the request. + Result result = 2; + string error = 3; + + // effective_config is the effective configuration the server holds for + // this connection. It is returned in response to HELLO and UPDATE_CONFIG + // commands. + Configuration effective_config = 4; +} + +// ServerNotice represents a NOTICE sent from the server to the client. +message ServerNotice { + enum Kind { + DISCARDING_EVENTS = 0; + } + Kind kind = 1; } \ No newline at end of file diff --git a/introspection/providers.go b/introspection/providers.go deleted file mode 100644 index 599729db..00000000 --- a/introspection/providers.go +++ /dev/null @@ -1,54 +0,0 @@ -package introspection - -import introspection_pb "github.com/libp2p/go-libp2p-core/introspection/pb" - -type ( - // QueryOutput determines the output form of a query result. - QueryOutput int - - // ConnectionID represents a connection ID. - ConnectionID string - - // StreamID represents a stream ID. - StreamID string -) - -const ( - // QueryOutputFull dictates that we need to resolve the whole object in the - // query output. - QueryOutputFull QueryOutput = iota - - // QueryOutputList dictates that we need to resolve only the identifiers of - // the object in the query output. - QueryOutputList -) - -// EXPERIMENTAL. DataProviders enumerates the functions that resolve each entity -// type. It is used by go-libp2p modules to register callback functions capable -// of processing entity queries. -type DataProviders struct { - // Runtime is the provider function that returns system runtime information. - Runtime func() (*introspection_pb.Runtime, error) - - // Connection is the provider that is called when information about - // Connections is required. - Connection func(ConnectionQueryParams) ([]*introspection_pb.Connection, error) - - // Stream is the provider that is called when information about Streams is - // required. - Stream func(StreamQueryParams) (*introspection_pb.StreamList, error) - - // Traffic is the provider that is called when information about network - // statistics is required. - Traffic func() (*introspection_pb.Traffic, error) -} - -type ConnectionQueryParams struct { - Output QueryOutput - Include []ConnectionID -} - -type StreamQueryParams struct { - Output QueryOutput - Include []StreamID -} diff --git a/metrics/bandwidth.go b/metrics/bandwidth.go index 2d94b054..399d1fb4 100644 --- a/metrics/bandwidth.go +++ b/metrics/bandwidth.go @@ -5,6 +5,7 @@ import ( "time" "github.com/libp2p/go-flow-metrics" + "github.com/libp2p/go-libp2p-core/peer" "github.com/libp2p/go-libp2p-core/protocol" ) diff --git a/network/conn.go b/network/conn.go index e7844a0e..b78f53cd 100644 --- a/network/conn.go +++ b/network/conn.go @@ -19,6 +19,10 @@ type Conn interface { ConnSecurity ConnMultiaddrs + // ID returns an identifier that uniquely identifies this Conn within this + // host, during this run. Connection IDs may repeat across restarts. + ID() string + // NewStream constructs a new Stream over this conn. NewStream() (Stream, error) diff --git a/network/stream.go b/network/stream.go index d13dc305..c209bb08 100644 --- a/network/stream.go +++ b/network/stream.go @@ -13,6 +13,10 @@ import ( type Stream interface { mux.MuxedStream + // ID returns an identifier that uniquely identifies this Stream within this + // host, during this run. Stream IDs may repeat across restarts. + ID() string + Protocol() protocol.ID SetProtocol(id protocol.ID) From 91726b5b81c17afc99f04d0b0aa4a61c2a78369b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Fri, 5 Jun 2020 12:14:59 +0100 Subject: [PATCH 19/19] minor adjustments prior to merge. --- introspection/doc.go | 4 +- introspection/endpoint.go | 14 +- introspection/introspector.go | 27 +- introspection/pb/doc.go | 3 + introspection/pb/introspection.pb.go | 376 +++++++++++++-------------- introspection/pb/introspection.proto | 2 +- 6 files changed, 212 insertions(+), 214 deletions(-) create mode 100644 introspection/pb/doc.go diff --git a/introspection/doc.go b/introspection/doc.go index d075bec4..302c23f4 100644 --- a/introspection/doc.go +++ b/introspection/doc.go @@ -3,7 +3,5 @@ // proof-of-concept of the libp2p introspection framework. // // Package introspect contains the abstract skeleton of the introspection system -// of go-libp2p. It holds the introspection data schema, and the primitives that -// allow subsystems to register data providers, and clients to fetch the current -// state of the system. +// of go-libp2p, and holds the introspection data schema. package introspection diff --git a/introspection/endpoint.go b/introspection/endpoint.go index 35ad6227..51596a46 100644 --- a/introspection/endpoint.go +++ b/introspection/endpoint.go @@ -1,10 +1,11 @@ package introspection -// Endpoint is the interface to be implemented by introspection -// endpoints/servers. +// Endpoint is the interface to be implemented by introspection endpoints. // -// An introspection endpoint exposes introspection data over the wire via a -// protocol and data format, e.g. WebSockets with Protobuf. +// An introspection endpoint makes introspection data accessible to external +// consumers, over, for example, WebSockets, or TCP, or libp2p itself. +// +// Experimental. type Endpoint interface { // Start starts the introspection endpoint. It must only be called once, and // once the server is started, subsequent calls made without first calling @@ -12,17 +13,18 @@ type Endpoint interface { Start() error // Close stops the introspection endpoint. Calls to Close on an already - // closed endpoint, or an unstarted endpoint, must noop. + // closed endpoint (or an unstarted endpoint) must noop. Close() error // ListenAddrs returns the listen addresses of this endpoint. ListenAddrs() []string - // Sessions returns the ongoing sessions. + // Sessions returns the ongoing sessions of this endpoint. Sessions() []*Session } // Session represents an introspection session. type Session struct { + // RemoteAddr is the remote address of the session. RemoteAddr string } diff --git a/introspection/introspector.go b/introspection/introspector.go index d1c152e8..d3bd583f 100644 --- a/introspection/introspector.go +++ b/introspection/introspector.go @@ -3,40 +3,37 @@ package introspection import ( "io" - pb "github.com/libp2p/go-libp2p-core/introspection/pb" + "github.com/libp2p/go-libp2p-core/introspection/pb" ) -// ProtoVersion is the current version of the introspection protocol. -const ProtoVersion uint32 = 1 - -// ProtoVersionPb is the proto representation of the current introspection protocol. -var ProtoVersionPb = &pb.Version{Version: ProtoVersion} - -// EXPERIMENTAL. Introspector allows introspection endpoints to fetch the current state of -// the system. +// Introspector is the interface to be satisfied by components that are capable +// of spelunking the state of the system, and representing in accordance with +// the introspection schema. +// +// It's very rare to build a custom implementation of this interface; +// it exists mostly for mocking. In most cases, you'll end up using the +// default introspector. // // Introspector implementations are usually injected in introspection endpoints -// (e.g. the default WebSocket endpoint) to serve the data to clients, but they -// can also be used separately for embedding or testing. +// to serve the data to clients, but they can also be used separately for +// embedding or testing. +// +// Experimental. type Introspector interface { io.Closer // FetchRuntime returns the runtime information of the system. - // Experimental. FetchRuntime() (*pb.Runtime, error) // FetchFullState returns the full state cross-cut of the running system. - // Experimental. FetchFullState() (*pb.State, error) // EventChan returns the channel where all eventbus events are dumped, // decorated with their corresponding event metadata, ready to send over // the wire. - // Experimental. EventChan() <-chan *pb.Event // EventMetadata returns the metadata of all events known to the // Introspector. - // Experimental EventMetadata() []*pb.EventType } diff --git a/introspection/pb/doc.go b/introspection/pb/doc.go new file mode 100644 index 00000000..58f6c50d --- /dev/null +++ b/introspection/pb/doc.go @@ -0,0 +1,3 @@ +// Package introspection/pb contains the protobuf definitions and objects for +// that form the libp2p introspection protocol. +package pb diff --git a/introspection/pb/introspection.pb.go b/introspection/pb/introspection.pb.go index f4f066f3..6af5361d 100644 --- a/introspection/pb/introspection.pb.go +++ b/introspection/pb/introspection.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-gogo. DO NOT EDIT. // source: introspection.proto -package introspection +package pb import ( fmt "fmt" @@ -643,7 +643,7 @@ type EventType_EventProperty struct { // property name of content e.g. openTs Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // type to interpret content value as - Type EventType_EventProperty_PropertyType `protobuf:"varint,2,opt,name=type,proto3,enum=introspection.EventType_EventProperty_PropertyType" json:"type,omitempty"` + Type EventType_EventProperty_PropertyType `protobuf:"varint,2,opt,name=type,proto3,enum=pb.EventType_EventProperty_PropertyType" json:"type,omitempty"` // if true, expect an array of values of `type`; else, singular HasMultiple bool `protobuf:"varint,3,opt,name=has_multiple,json=hasMultiple,proto3" json:"has_multiple,omitempty"` } @@ -960,7 +960,7 @@ type Connection struct { // the peer id of the other party. PeerId string `protobuf:"bytes,2,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` // the status of this connection. - Status Status `protobuf:"varint,3,opt,name=status,proto3,enum=introspection.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,3,opt,name=status,proto3,enum=pb.Status" json:"status,omitempty"` // a reference to the transport managing this connection. TransportId []byte `protobuf:"bytes,4,opt,name=transport_id,json=transportId,proto3" json:"transport_id,omitempty"` // the endpoints participating in this connection. @@ -968,7 +968,7 @@ type Connection struct { // the timeline of the connection, see Connection.Timeline. Timeline *Connection_Timeline `protobuf:"bytes,6,opt,name=timeline,proto3" json:"timeline,omitempty"` // our role in this connection. - Role Role `protobuf:"varint,7,opt,name=role,proto3,enum=introspection.Role" json:"role,omitempty"` + Role Role `protobuf:"varint,7,opt,name=role,proto3,enum=pb.Role" json:"role,omitempty"` // traffic statistics. Traffic *Traffic `protobuf:"bytes,8,opt,name=traffic,proto3" json:"traffic,omitempty"` // properties of this connection. @@ -1277,7 +1277,7 @@ type Stream struct { // the protocol pinned to this stream. Protocol string `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` // our role in this stream. - Role Role `protobuf:"varint,3,opt,name=role,proto3,enum=introspection.Role" json:"role,omitempty"` + Role Role `protobuf:"varint,3,opt,name=role,proto3,enum=pb.Role" json:"role,omitempty"` // traffic statistics. Traffic *Traffic `protobuf:"bytes,4,opt,name=traffic,proto3" json:"traffic,omitempty"` // the connection this stream is hosted under. @@ -1285,7 +1285,7 @@ type Stream struct { // the timeline of the stream, see Stream.Timeline. Timeline *Stream_Timeline `protobuf:"bytes,6,opt,name=timeline,proto3" json:"timeline,omitempty"` // the status of this stream. - Status Status `protobuf:"varint,7,opt,name=status,proto3,enum=introspection.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,7,opt,name=status,proto3,enum=pb.Status" json:"status,omitempty"` // the instantaneous latency of this stream in nanoseconds. // TODO: this is hard to calculate. LatencyNs uint64 `protobuf:"varint,16,opt,name=latency_ns,json=latencyNs,proto3" json:"latency_ns,omitempty"` @@ -1707,7 +1707,7 @@ type DHT_PeerInDHT struct { // the peer id of the host system PeerId string `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` // the peer's status when data snapshot is taken - Status DHT_PeerInDHT_Status `protobuf:"varint,2,opt,name=status,proto3,enum=introspection.DHT_PeerInDHT_Status" json:"status,omitempty"` + Status DHT_PeerInDHT_Status `protobuf:"varint,2,opt,name=status,proto3,enum=pb.DHT_PeerInDHT_Status" json:"status,omitempty"` // age in bucket (ms) AgeInBucket uint32 `protobuf:"varint,3,opt,name=age_in_bucket,json=ageInBucket,proto3" json:"age_in_bucket,omitempty"` } @@ -2281,8 +2281,8 @@ func (m *Configuration) GetStateSnapshotIntervalMs() uint64 { type ClientCommand struct { Version *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` - Command ClientCommand_Command `protobuf:"varint,3,opt,name=command,proto3,enum=introspection.ClientCommand_Command" json:"command,omitempty"` - Source ClientCommand_Source `protobuf:"varint,4,opt,name=source,proto3,enum=introspection.ClientCommand_Source" json:"source,omitempty"` + Command ClientCommand_Command `protobuf:"varint,3,opt,name=command,proto3,enum=pb.ClientCommand_Command" json:"command,omitempty"` + Source ClientCommand_Source `protobuf:"varint,4,opt,name=source,proto3,enum=pb.ClientCommand_Source" json:"source,omitempty"` Config *Configuration `protobuf:"bytes,5,opt,name=config,proto3" json:"config,omitempty"` } @@ -2357,7 +2357,7 @@ func (m *ClientCommand) GetConfig() *Configuration { // CommandResponse is a response to a command sent by the client. type CommandResponse struct { Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Result CommandResponse_Result `protobuf:"varint,2,opt,name=result,proto3,enum=introspection.CommandResponse_Result" json:"result,omitempty"` + Result CommandResponse_Result `protobuf:"varint,2,opt,name=result,proto3,enum=pb.CommandResponse_Result" json:"result,omitempty"` Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` // effective_config is the effective configuration the server holds for // this connection. It is returned in response to HELLO and UPDATE_CONFIG @@ -2428,7 +2428,7 @@ func (m *CommandResponse) GetEffectiveConfig() *Configuration { // ServerNotice represents a NOTICE sent from the server to the client. type ServerNotice struct { - Kind ServerNotice_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=introspection.ServerNotice_Kind" json:"kind,omitempty"` + Kind ServerNotice_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=pb.ServerNotice_Kind" json:"kind,omitempty"` } func (m *ServerNotice) Reset() { *m = ServerNotice{} } @@ -2472,189 +2472,187 @@ func (m *ServerNotice) GetKind() ServerNotice_Kind { } func init() { - proto.RegisterEnum("introspection.Status", Status_name, Status_value) - proto.RegisterEnum("introspection.Role", Role_name, Role_value) - proto.RegisterEnum("introspection.EventType_EventProperty_PropertyType", EventType_EventProperty_PropertyType_name, EventType_EventProperty_PropertyType_value) - proto.RegisterEnum("introspection.DHT_PeerInDHT_Status", DHT_PeerInDHT_Status_name, DHT_PeerInDHT_Status_value) - proto.RegisterEnum("introspection.ClientCommand_Source", ClientCommand_Source_name, ClientCommand_Source_value) - proto.RegisterEnum("introspection.ClientCommand_Command", ClientCommand_Command_name, ClientCommand_Command_value) - proto.RegisterEnum("introspection.CommandResponse_Result", CommandResponse_Result_name, CommandResponse_Result_value) - proto.RegisterEnum("introspection.ServerNotice_Kind", ServerNotice_Kind_name, ServerNotice_Kind_value) - proto.RegisterType((*Version)(nil), "introspection.Version") - proto.RegisterType((*ResultCounter)(nil), "introspection.ResultCounter") - proto.RegisterType((*SlidingCounter)(nil), "introspection.SlidingCounter") - proto.RegisterType((*DataGauge)(nil), "introspection.DataGauge") - proto.RegisterType((*EventType)(nil), "introspection.EventType") - proto.RegisterType((*EventType_EventProperty)(nil), "introspection.EventType.EventProperty") - proto.RegisterType((*Runtime)(nil), "introspection.Runtime") - proto.RegisterType((*EndpointPair)(nil), "introspection.EndpointPair") - proto.RegisterType((*Traffic)(nil), "introspection.Traffic") - proto.RegisterType((*StreamList)(nil), "introspection.StreamList") - proto.RegisterType((*Connection)(nil), "introspection.Connection") - proto.RegisterType((*Connection_Timeline)(nil), "introspection.Connection.Timeline") - proto.RegisterType((*Connection_Attributes)(nil), "introspection.Connection.Attributes") - proto.RegisterType((*Stream)(nil), "introspection.Stream") - proto.RegisterType((*Stream_ConnectionRef)(nil), "introspection.Stream.ConnectionRef") - proto.RegisterType((*Stream_Timeline)(nil), "introspection.Stream.Timeline") - proto.RegisterType((*DHT)(nil), "introspection.DHT") - proto.RegisterType((*DHT_Params)(nil), "introspection.DHT.Params") - proto.RegisterType((*DHT_PeerInDHT)(nil), "introspection.DHT.PeerInDHT") - proto.RegisterType((*DHT_Bucket)(nil), "introspection.DHT.Bucket") - proto.RegisterType((*DHT_QueryGauge)(nil), "introspection.DHT.QueryGauge") - proto.RegisterType((*Subsystems)(nil), "introspection.Subsystems") - proto.RegisterType((*State)(nil), "introspection.State") - proto.RegisterType((*Event)(nil), "introspection.Event") - proto.RegisterType((*ServerMessage)(nil), "introspection.ServerMessage") - proto.RegisterType((*Configuration)(nil), "introspection.Configuration") - proto.RegisterType((*ClientCommand)(nil), "introspection.ClientCommand") - proto.RegisterType((*CommandResponse)(nil), "introspection.CommandResponse") - proto.RegisterType((*ServerNotice)(nil), "introspection.ServerNotice") + proto.RegisterEnum("pb.Status", Status_name, Status_value) + proto.RegisterEnum("pb.Role", Role_name, Role_value) + proto.RegisterEnum("pb.EventType_EventProperty_PropertyType", EventType_EventProperty_PropertyType_name, EventType_EventProperty_PropertyType_value) + proto.RegisterEnum("pb.DHT_PeerInDHT_Status", DHT_PeerInDHT_Status_name, DHT_PeerInDHT_Status_value) + proto.RegisterEnum("pb.ClientCommand_Source", ClientCommand_Source_name, ClientCommand_Source_value) + proto.RegisterEnum("pb.ClientCommand_Command", ClientCommand_Command_name, ClientCommand_Command_value) + proto.RegisterEnum("pb.CommandResponse_Result", CommandResponse_Result_name, CommandResponse_Result_value) + proto.RegisterEnum("pb.ServerNotice_Kind", ServerNotice_Kind_name, ServerNotice_Kind_value) + proto.RegisterType((*Version)(nil), "pb.Version") + proto.RegisterType((*ResultCounter)(nil), "pb.ResultCounter") + proto.RegisterType((*SlidingCounter)(nil), "pb.SlidingCounter") + proto.RegisterType((*DataGauge)(nil), "pb.DataGauge") + proto.RegisterType((*EventType)(nil), "pb.EventType") + proto.RegisterType((*EventType_EventProperty)(nil), "pb.EventType.EventProperty") + proto.RegisterType((*Runtime)(nil), "pb.Runtime") + proto.RegisterType((*EndpointPair)(nil), "pb.EndpointPair") + proto.RegisterType((*Traffic)(nil), "pb.Traffic") + proto.RegisterType((*StreamList)(nil), "pb.StreamList") + proto.RegisterType((*Connection)(nil), "pb.Connection") + proto.RegisterType((*Connection_Timeline)(nil), "pb.Connection.Timeline") + proto.RegisterType((*Connection_Attributes)(nil), "pb.Connection.Attributes") + proto.RegisterType((*Stream)(nil), "pb.Stream") + proto.RegisterType((*Stream_ConnectionRef)(nil), "pb.Stream.ConnectionRef") + proto.RegisterType((*Stream_Timeline)(nil), "pb.Stream.Timeline") + proto.RegisterType((*DHT)(nil), "pb.DHT") + proto.RegisterType((*DHT_Params)(nil), "pb.DHT.Params") + proto.RegisterType((*DHT_PeerInDHT)(nil), "pb.DHT.PeerInDHT") + proto.RegisterType((*DHT_Bucket)(nil), "pb.DHT.Bucket") + proto.RegisterType((*DHT_QueryGauge)(nil), "pb.DHT.QueryGauge") + proto.RegisterType((*Subsystems)(nil), "pb.Subsystems") + proto.RegisterType((*State)(nil), "pb.State") + proto.RegisterType((*Event)(nil), "pb.Event") + proto.RegisterType((*ServerMessage)(nil), "pb.ServerMessage") + proto.RegisterType((*Configuration)(nil), "pb.Configuration") + proto.RegisterType((*ClientCommand)(nil), "pb.ClientCommand") + proto.RegisterType((*CommandResponse)(nil), "pb.CommandResponse") + proto.RegisterType((*ServerNotice)(nil), "pb.ServerNotice") } func init() { proto.RegisterFile("introspection.proto", fileDescriptor_53a8bedf9a75e10a) } var fileDescriptor_53a8bedf9a75e10a = []byte{ - // 2232 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x5b, 0x6f, 0x1b, 0xc7, - 0x15, 0xe6, 0x4d, 0xbc, 0x1c, 0x5e, 0xbc, 0x9e, 0x38, 0x0d, 0xad, 0xc4, 0xaa, 0xbb, 0x4e, 0x52, - 0x23, 0x70, 0x15, 0x9b, 0xb6, 0x91, 0xa4, 0x69, 0x0d, 0x48, 0xe2, 0x56, 0xa2, 0x23, 0x52, 0xf4, - 0x90, 0x32, 0x8a, 0xa2, 0xc0, 0x62, 0xb5, 0x3b, 0x22, 0xb7, 0xe2, 0x5e, 0x3a, 0x33, 0xab, 0x44, - 0x40, 0xfb, 0x1f, 0xfa, 0x0b, 0xfa, 0x07, 0xd2, 0xa7, 0xbe, 0xf6, 0xb9, 0x40, 0x1f, 0xd3, 0xa7, - 0x16, 0x7d, 0x0a, 0x6c, 0xa0, 0xbf, 0xa3, 0x98, 0xcb, 0x2e, 0x97, 0x12, 0x6d, 0x28, 0x7d, 0xdb, - 0x73, 0xce, 0x77, 0xce, 0x70, 0xce, 0x7d, 0x08, 0xef, 0xf8, 0x21, 0xa7, 0x11, 0x8b, 0x89, 0xcb, - 0xfd, 0x28, 0xdc, 0x8e, 0x69, 0xc4, 0x23, 0xd4, 0x5e, 0x61, 0x9a, 0xf7, 0xa0, 0xf6, 0x92, 0x50, - 0xe6, 0x47, 0x21, 0xea, 0x42, 0xed, 0x5c, 0x7d, 0x76, 0x8b, 0x77, 0x8b, 0xf7, 0xdb, 0x38, 0x25, - 0xcd, 0x7d, 0x68, 0x63, 0xc2, 0x92, 0x05, 0xdf, 0x8b, 0x92, 0x90, 0x13, 0x8a, 0x6e, 0xc1, 0x06, - 0x8f, 0xb8, 0xb3, 0xd0, 0x40, 0x45, 0xa0, 0x0e, 0x94, 0xa2, 0xb3, 0x6e, 0x49, 0xb2, 0x4a, 0xd1, - 0x19, 0x32, 0xa0, 0x4c, 0x28, 0xed, 0x96, 0x25, 0x43, 0x7c, 0x9a, 0x7f, 0x2e, 0x41, 0x67, 0xb2, - 0xf0, 0x3d, 0x3f, 0x9c, 0xa5, 0xa6, 0xde, 0x83, 0x5a, 0x74, 0x4e, 0xa8, 0xfd, 0x28, 0xd0, 0xc6, - 0xaa, 0x82, 0x7c, 0x14, 0x64, 0x82, 0xa7, 0x81, 0x36, 0x29, 0x05, 0x4f, 0x03, 0x74, 0x1b, 0xea, - 0x4a, 0xe3, 0x69, 0xa0, 0x6d, 0x4b, 0xe0, 0xa3, 0x9c, 0xe8, 0xf1, 0xc3, 0xa0, 0x5b, 0x59, 0x8a, - 0x1e, 0x3f, 0xcc, 0x69, 0xcd, 0x69, 0x77, 0x23, 0xa7, 0x35, 0xa7, 0x99, 0xa8, 0x37, 0xa7, 0xdd, - 0xea, 0x52, 0xd4, 0xcb, 0x89, 0x9e, 0xcc, 0x69, 0xb7, 0xb6, 0x14, 0x3d, 0xc9, 0x89, 0x3e, 0x9f, - 0xd3, 0x6e, 0x7d, 0x29, 0xfa, 0x7c, 0x4e, 0xd1, 0xfb, 0xd0, 0x50, 0x67, 0x09, 0x8b, 0x0d, 0x29, - 0x93, 0x58, 0x41, 0x67, 0xc2, 0x9e, 0xb0, 0x09, 0x4b, 0xa1, 0xa0, 0xcd, 0x13, 0x68, 0xf4, 0x1d, - 0xee, 0xec, 0x3b, 0xc9, 0x8c, 0x08, 0xa4, 0x9b, 0x04, 0xf6, 0xc9, 0x05, 0x27, 0x4c, 0x3a, 0xa7, - 0x82, 0xeb, 0x6e, 0x12, 0xec, 0x0a, 0x1a, 0xfd, 0x18, 0x9a, 0x42, 0x18, 0x3b, 0xee, 0x19, 0xe1, - 0x4c, 0xba, 0xa8, 0x82, 0xc1, 0x4d, 0x82, 0xb1, 0xe2, 0x08, 0xff, 0xf9, 0x21, 0xe3, 0xf6, 0xc9, - 0xd7, 0xd2, 0x4b, 0x15, 0x5c, 0x15, 0xe4, 0xee, 0xd7, 0xe6, 0xbf, 0x4a, 0xd0, 0xb0, 0xce, 0x49, - 0xc8, 0xa7, 0x17, 0x31, 0x41, 0x08, 0x2a, 0xa1, 0x13, 0x10, 0x69, 0xbf, 0x81, 0xe5, 0x37, 0x1a, - 0x42, 0x27, 0xa6, 0x51, 0x4c, 0x28, 0xbf, 0xb0, 0xf9, 0x45, 0x4c, 0x84, 0xf9, 0xf2, 0xfd, 0x66, - 0xef, 0xe3, 0xed, 0xd5, 0x8c, 0xca, 0xac, 0xa8, 0xaf, 0xb1, 0xd6, 0xc1, 0xed, 0x54, 0x5b, 0xc8, - 0xd8, 0xe6, 0x7f, 0x8b, 0xd0, 0x5e, 0x01, 0xac, 0x3d, 0x74, 0x1f, 0x2a, 0xe2, 0x2c, 0x79, 0x93, - 0x4e, 0xef, 0xf1, 0xf5, 0x8e, 0xda, 0x1e, 0xe7, 0x4e, 0xc2, 0xd2, 0x00, 0xfa, 0x09, 0xb4, 0xe6, - 0x0e, 0xb3, 0x83, 0x64, 0xc1, 0xfd, 0x78, 0x41, 0xe4, 0xed, 0xeb, 0xb8, 0x39, 0x77, 0xd8, 0x50, - 0xb3, 0xcc, 0x63, 0x68, 0xe5, 0x15, 0x11, 0x40, 0x75, 0x32, 0xc5, 0x83, 0xd1, 0xbe, 0x51, 0x10, - 0xdf, 0xa3, 0xe3, 0xe1, 0xae, 0x85, 0x8d, 0x22, 0xaa, 0x43, 0x65, 0x3a, 0x18, 0x5a, 0x06, 0x08, - 0xee, 0xd8, 0xb2, 0xf0, 0xa0, 0x6f, 0x34, 0x51, 0x1b, 0x1a, 0xc3, 0xe3, 0xc3, 0xe9, 0x60, 0xa7, - 0xdf, 0xc7, 0x46, 0x4b, 0x80, 0x9e, 0x4f, 0x8e, 0x46, 0xc6, 0x6f, 0xcc, 0xbf, 0x15, 0xa1, 0x86, - 0x93, 0x90, 0xfb, 0x01, 0x41, 0x1f, 0x43, 0xc7, 0x0f, 0xe2, 0x05, 0x09, 0x48, 0xc8, 0x1d, 0x9e, - 0x16, 0x55, 0x03, 0x5f, 0xe2, 0xe6, 0xab, 0xae, 0x24, 0x01, 0x29, 0x89, 0x36, 0xa1, 0x1e, 0x2f, - 0x1c, 0x7e, 0x1a, 0x51, 0x95, 0xe7, 0x0d, 0x9c, 0xd1, 0x22, 0xb8, 0x31, 0x21, 0xd4, 0xf6, 0x3d, - 0x99, 0xe7, 0x0d, 0x5c, 0x15, 0xe4, 0xc0, 0x43, 0x5f, 0x40, 0x93, 0x08, 0x07, 0xe9, 0xb8, 0xd5, - 0x64, 0xdc, 0xba, 0x6f, 0x72, 0x26, 0x06, 0x92, 0x7e, 0x32, 0xf3, 0xd7, 0xd0, 0xb2, 0x42, 0x2f, - 0x8e, 0xfc, 0x90, 0x8f, 0x1d, 0x9f, 0xa2, 0x7b, 0xd0, 0x66, 0xd4, 0x55, 0x7e, 0x74, 0x3c, 0x8f, - 0xea, 0x0b, 0xb4, 0x18, 0x75, 0x87, 0x29, 0x4f, 0x80, 0x3c, 0xc6, 0x73, 0x20, 0x75, 0x89, 0x96, - 0xc7, 0x78, 0x06, 0x32, 0xff, 0x08, 0xb5, 0x29, 0x75, 0x4e, 0x4f, 0x7d, 0x17, 0x7d, 0x06, 0xc0, - 0xd5, 0xa7, 0xed, 0x2b, 0x97, 0x5c, 0xfd, 0x79, 0x59, 0x05, 0xe0, 0x86, 0xc6, 0x0e, 0x42, 0x71, - 0xb1, 0x54, 0x31, 0x4a, 0xb8, 0x3c, 0xe6, 0x6d, 0x9a, 0xe9, 0x29, 0x47, 0x09, 0x37, 0x7f, 0x0b, - 0x30, 0xe1, 0x94, 0x38, 0xc1, 0xa1, 0xcf, 0x38, 0xba, 0x03, 0xc0, 0x24, 0x65, 0xfb, 0x9e, 0x28, - 0xab, 0xf2, 0xfd, 0x16, 0x6e, 0x28, 0xce, 0xc0, 0x63, 0xe8, 0x53, 0xa8, 0x29, 0x22, 0x4d, 0xfa, - 0x77, 0x2f, 0x9d, 0xa1, 0x4c, 0xe1, 0x14, 0x65, 0xfe, 0xb5, 0x0a, 0xb0, 0x17, 0x85, 0xa1, 0x12, - 0x8b, 0x26, 0xe8, 0x7b, 0xf2, 0x62, 0x2d, 0x5c, 0xf2, 0xbd, 0x7c, 0xa4, 0x4a, 0x2b, 0x91, 0xfa, - 0x19, 0x54, 0x19, 0x77, 0x78, 0xc2, 0x64, 0x70, 0x3b, 0x6b, 0xce, 0x11, 0x42, 0xac, 0x41, 0x22, - 0xab, 0x39, 0x75, 0x42, 0x16, 0x47, 0x94, 0xa7, 0x61, 0x6f, 0xe1, 0x66, 0xc6, 0x93, 0xb1, 0x6f, - 0x10, 0x1d, 0x40, 0x26, 0x7b, 0x5c, 0xb3, 0xf7, 0xfe, 0xe5, 0xc8, 0xe7, 0x02, 0x8c, 0x97, 0x68, - 0xf4, 0x0c, 0xea, 0x22, 0x6b, 0x17, 0x7e, 0x48, 0x64, 0x0b, 0x6c, 0xf6, 0xcc, 0x4b, 0x9a, 0xcb, - 0x2b, 0x6e, 0x4f, 0x35, 0x12, 0x67, 0x3a, 0xe8, 0xa7, 0x50, 0xa1, 0xd1, 0x82, 0xc8, 0x1e, 0xd9, - 0xe9, 0xbd, 0x73, 0x49, 0x17, 0x47, 0x0b, 0x82, 0x25, 0x00, 0x3d, 0x84, 0x9a, 0x8e, 0x8c, 0x6c, - 0x9a, 0xcd, 0xde, 0x8f, 0x2e, 0x61, 0x75, 0xa2, 0xe0, 0x14, 0x86, 0x9e, 0x41, 0xcd, 0xe1, 0x9c, - 0xfa, 0x27, 0x4c, 0xb6, 0xd2, 0x66, 0xef, 0xc3, 0x37, 0xff, 0xb2, 0x1d, 0x09, 0x4c, 0x38, 0x61, - 0x38, 0x55, 0x12, 0xf1, 0x5e, 0x38, 0x9c, 0x84, 0xee, 0x85, 0x1d, 0x32, 0xd9, 0x70, 0x2b, 0xb8, - 0xa1, 0x39, 0x23, 0x86, 0x1e, 0x2f, 0xe3, 0xdd, 0x94, 0xe6, 0x6f, 0xaf, 0x8d, 0xb7, 0x48, 0x9d, - 0x2c, 0xe6, 0xe8, 0x36, 0xd4, 0xdc, 0x28, 0x0c, 0x45, 0x1c, 0x0c, 0x11, 0x87, 0x83, 0x02, 0xae, - 0x0a, 0xc6, 0xc0, 0x43, 0x9f, 0x42, 0x45, 0x7c, 0x75, 0x6f, 0xae, 0x35, 0xb6, 0xfc, 0xad, 0x07, - 0x05, 0x2c, 0x81, 0xe8, 0x01, 0xa0, 0x84, 0x11, 0x6a, 0xc7, 0x34, 0x3a, 0xf7, 0x3d, 0xe2, 0xd9, - 0xdc, 0x99, 0xb1, 0xae, 0x7b, 0xb7, 0x7c, 0xbf, 0x81, 0x0d, 0x21, 0x19, 0x6b, 0xc1, 0xd4, 0x99, - 0xb1, 0x4d, 0x1b, 0xea, 0xa9, 0xfb, 0xe5, 0x84, 0x8c, 0x49, 0x68, 0xf3, 0x74, 0x3a, 0x54, 0x05, - 0x39, 0x95, 0xb3, 0x21, 0x89, 0x67, 0xd4, 0x91, 0xd6, 0xb2, 0xd9, 0x90, 0xb2, 0xa6, 0xe2, 0xf7, - 0xd7, 0xdd, 0x45, 0xc4, 0x88, 0x90, 0xaa, 0xe1, 0x50, 0x93, 0xf4, 0x94, 0x6d, 0x8e, 0x00, 0x96, - 0x5e, 0x44, 0x77, 0xa1, 0x99, 0xf6, 0xd1, 0x6f, 0x48, 0xda, 0x01, 0xf2, 0x2c, 0xb4, 0x05, 0x40, - 0x42, 0x97, 0x5e, 0xc4, 0x7c, 0xd9, 0xc2, 0x72, 0x9c, 0xdd, 0x0e, 0xb4, 0x28, 0x59, 0x38, 0x17, - 0xc4, 0xb3, 0xc5, 0x94, 0x7b, 0x5e, 0xa9, 0xb7, 0x0c, 0xc3, 0xfc, 0xb6, 0x02, 0x55, 0xe5, 0xd8, - 0x2b, 0x05, 0x23, 0xda, 0x9e, 0xd8, 0x54, 0xdc, 0x68, 0xa1, 0xcd, 0x65, 0x74, 0x96, 0x66, 0xe5, - 0x1f, 0x90, 0x66, 0x95, 0xeb, 0xa5, 0xd9, 0x67, 0x3a, 0x6e, 0xaa, 0x6e, 0xee, 0xad, 0x4d, 0x82, - 0x5c, 0xf8, 0x30, 0x39, 0xd5, 0xf1, 0xfb, 0xf9, 0x95, 0xd2, 0xd9, 0x5a, 0xaf, 0xbc, 0xa6, 0x6c, - 0x96, 0x3d, 0xa0, 0x76, 0x9d, 0x1e, 0xb0, 0x9a, 0xca, 0xc6, 0xe5, 0x54, 0xfe, 0x61, 0x99, 0xe4, - 0x43, 0x7b, 0xe5, 0x3a, 0x59, 0xe6, 0x16, 0xaf, 0x9b, 0xb9, 0xb9, 0x2a, 0x28, 0xad, 0x56, 0xc1, - 0x6e, 0x0b, 0xc0, 0xcd, 0x14, 0x36, 0x9f, 0x5d, 0x27, 0x69, 0xf3, 0x39, 0x59, 0x5a, 0xc9, 0x49, - 0xf3, 0xdb, 0x2a, 0x94, 0xfb, 0x07, 0xd3, 0x95, 0xd4, 0x28, 0x5e, 0x4a, 0x8d, 0x2e, 0xd4, 0x48, - 0xe8, 0x9c, 0x2c, 0x88, 0xfa, 0x31, 0x75, 0x9c, 0x92, 0xc2, 0x30, 0xe3, 0x0e, 0xe5, 0xb9, 0x64, - 0x97, 0xf4, 0x94, 0xa1, 0x47, 0x50, 0x8d, 0x1d, 0x2a, 0x6a, 0xbf, 0xb2, 0xf6, 0xd2, 0xfd, 0x83, - 0xe9, 0xf6, 0x58, 0x02, 0xb0, 0x06, 0x8a, 0x7e, 0x71, 0x92, 0xa8, 0x9d, 0x6b, 0x43, 0xce, 0x87, - 0x75, 0x3a, 0xbb, 0x12, 0x81, 0x53, 0x24, 0x3a, 0x00, 0xc3, 0x0f, 0xdd, 0x28, 0xf0, 0xc3, 0x99, - 0xfd, 0xfb, 0x84, 0x50, 0x9f, 0x30, 0x9d, 0x2b, 0x77, 0xd6, 0x68, 0xbf, 0x48, 0x08, 0xbd, 0x50, - 0x63, 0xec, 0x46, 0xaa, 0xf6, 0x42, 0x69, 0x09, 0x4b, 0x51, 0xc2, 0x67, 0x51, 0xde, 0x52, 0xed, - 0x5a, 0x96, 0x52, 0x35, 0x6d, 0x69, 0x73, 0x06, 0x55, 0x75, 0x35, 0xd4, 0x82, 0xe2, 0x99, 0x0e, - 0x46, 0xf1, 0x4c, 0xec, 0xf6, 0xce, 0x22, 0x9e, 0x3b, 0x3a, 0x08, 0x8a, 0x40, 0x1f, 0x41, 0xc7, - 0xf3, 0xd9, 0xef, 0xc4, 0xb4, 0xb0, 0x63, 0x87, 0xcf, 0x53, 0x57, 0xb6, 0x53, 0xee, 0x58, 0x30, - 0xc5, 0x62, 0x77, 0x42, 0xb8, 0x23, 0xdd, 0x59, 0xc1, 0xf2, 0x7b, 0xf3, 0xef, 0x45, 0x68, 0x8c, - 0xc5, 0xcc, 0x0b, 0x45, 0x0c, 0x73, 0xf3, 0xb0, 0xb8, 0x32, 0x0f, 0xbf, 0xcc, 0x6a, 0x41, 0x6d, - 0x80, 0xf7, 0xd6, 0xc5, 0x22, 0x35, 0x73, 0xb9, 0x32, 0x4c, 0x68, 0x3b, 0x33, 0x62, 0xfb, 0xa1, - 0xad, 0x5c, 0xae, 0x1f, 0x06, 0x4d, 0x67, 0x46, 0x06, 0xa1, 0x8a, 0x86, 0xf9, 0x4c, 0xb4, 0x1c, - 0x89, 0x06, 0xa8, 0xee, 0xec, 0x4d, 0x07, 0x2f, 0x2d, 0xa3, 0x80, 0x9a, 0x50, 0x1b, 0x0e, 0x26, - 0x13, 0xb1, 0xfb, 0x15, 0x51, 0x0b, 0xea, 0xd8, 0x7a, 0x6e, 0xed, 0x4d, 0xad, 0xbe, 0x51, 0x12, - 0x7b, 0xde, 0xde, 0xce, 0xa8, 0x3f, 0xe8, 0xef, 0x4c, 0x2d, 0xa3, 0xbc, 0x39, 0x82, 0xaa, 0xb2, - 0x24, 0x1e, 0x36, 0x6e, 0x9c, 0x3e, 0x7e, 0xc4, 0x27, 0xea, 0xc1, 0x86, 0xb8, 0x46, 0xba, 0x33, - 0x7c, 0xf0, 0xb6, 0xdf, 0x8e, 0x15, 0x74, 0xf3, 0x25, 0xc0, 0x32, 0x3e, 0x22, 0x7f, 0x59, 0xe2, - 0xba, 0x84, 0xa5, 0x75, 0x91, 0x92, 0x22, 0x20, 0x84, 0xd2, 0x88, 0xa6, 0x01, 0x91, 0x84, 0xc0, - 0x8b, 0x36, 0x22, 0x76, 0x21, 0x9d, 0xd4, 0x9a, 0x34, 0x23, 0x80, 0x49, 0x72, 0xc2, 0x2e, 0x18, - 0x27, 0x01, 0x43, 0x5f, 0x42, 0x73, 0x59, 0x89, 0x6a, 0xdf, 0x79, 0x5b, 0x71, 0xe3, 0x3c, 0x1a, - 0x7d, 0x08, 0x65, 0x6f, 0x9e, 0x2e, 0x5b, 0xe8, 0xea, 0xa5, 0xb0, 0x10, 0x9b, 0xdf, 0x17, 0x61, - 0x43, 0x78, 0x96, 0xa0, 0x2f, 0x00, 0x58, 0x76, 0xf4, 0x1b, 0x1a, 0xc9, 0xf2, 0xb7, 0xe1, 0x1c, - 0x38, 0xdf, 0xb1, 0x4b, 0xd7, 0xeb, 0xd8, 0x77, 0x00, 0xc4, 0x8b, 0xc6, 0x09, 0x73, 0x95, 0xdd, - 0xd0, 0x1c, 0xd5, 0x4f, 0xb2, 0xb2, 0xaf, 0xac, 0x96, 0xfd, 0x43, 0xb8, 0xc5, 0x42, 0x27, 0x66, - 0xf3, 0x88, 0xdb, 0x5e, 0x42, 0xe5, 0x22, 0x6e, 0x07, 0x4c, 0xbf, 0x0b, 0x51, 0x2a, 0xeb, 0x6b, - 0xd1, 0x90, 0x99, 0x36, 0x6c, 0xc8, 0xa5, 0x19, 0x3d, 0xd0, 0xaf, 0x94, 0xf5, 0x9b, 0xeb, 0x72, - 0xb1, 0x56, 0x4f, 0x91, 0x0e, 0x94, 0xb2, 0x6e, 0x56, 0xe2, 0x4c, 0x04, 0xcd, 0x8d, 0x42, 0x4e, - 0x42, 0xae, 0x37, 0xfa, 0x94, 0x34, 0xff, 0x59, 0x82, 0xf6, 0x84, 0xd0, 0x73, 0x42, 0x87, 0x84, - 0x31, 0x67, 0x26, 0x47, 0x58, 0xfe, 0x39, 0x7e, 0xd5, 0x21, 0xfa, 0xdd, 0xbe, 0x7c, 0x30, 0x3c, - 0x80, 0x0d, 0x51, 0x0e, 0x44, 0x3b, 0xf0, 0xd6, 0x9a, 0x61, 0x42, 0x0e, 0x0a, 0x58, 0x81, 0x50, - 0x0f, 0x6a, 0x54, 0xbd, 0x55, 0xe4, 0x6f, 0xb9, 0x6a, 0x5f, 0xbf, 0x64, 0x0e, 0x0a, 0x38, 0x05, - 0x8a, 0x13, 0xe4, 0x83, 0x41, 0xb7, 0xcb, 0x5b, 0xeb, 0xae, 0x2f, 0x4e, 0x90, 0x20, 0xf4, 0x0b, - 0xa8, 0x53, 0xc2, 0xe2, 0x28, 0x64, 0x44, 0x8f, 0xd5, 0xad, 0x2b, 0x79, 0x17, 0x04, 0x4e, 0xe8, - 0x61, 0x8d, 0x3a, 0x28, 0xe0, 0x4c, 0x03, 0x3d, 0x85, 0x6a, 0x18, 0x71, 0xdf, 0x4d, 0xa7, 0xea, - 0xe5, 0x55, 0x56, 0x79, 0x6b, 0x24, 0x21, 0x62, 0xf2, 0x28, 0xf0, 0x6e, 0x03, 0x6a, 0xb1, 0x73, - 0xb1, 0x88, 0x1c, 0xcf, 0xfc, 0x83, 0x9c, 0x70, 0xa7, 0xfe, 0x4c, 0xc7, 0x11, 0x6d, 0xc3, 0x3b, - 0x94, 0x08, 0x77, 0x8b, 0x78, 0xc7, 0x84, 0xfa, 0x91, 0x67, 0x07, 0x69, 0xbd, 0xdd, 0xcc, 0x44, - 0x63, 0x29, 0x19, 0x8a, 0xda, 0xd9, 0x94, 0xbe, 0xb2, 0xb3, 0x6c, 0xf1, 0x43, 0x4e, 0xe8, 0xb9, - 0xb3, 0xb0, 0x83, 0x34, 0xac, 0xef, 0x49, 0xc4, 0x44, 0x03, 0x06, 0x5a, 0x3e, 0x64, 0xe6, 0x5f, - 0xca, 0xd0, 0xde, 0x5b, 0xf8, 0x24, 0xe4, 0xfa, 0x96, 0xff, 0x47, 0x44, 0xd5, 0x6e, 0xa4, 0xf3, - 0xc7, 0xf7, 0xc4, 0x2e, 0xec, 0x2a, 0x63, 0x7a, 0x05, 0xba, 0xb2, 0x0b, 0xe7, 0x0f, 0xcc, 0xdc, - 0x9b, 0x2a, 0xc9, 0x1e, 0x1b, 0x25, 0xd4, 0x25, 0x32, 0x80, 0x57, 0x7b, 0xec, 0xaa, 0xfa, 0x44, - 0x42, 0xb1, 0x56, 0x41, 0x4f, 0x40, 0x4c, 0xf7, 0x53, 0x7f, 0xa6, 0x83, 0xf9, 0xc1, 0xd5, 0x26, - 0xb2, 0xf4, 0x35, 0xd6, 0x58, 0xf3, 0x01, 0x54, 0x95, 0x1d, 0xd4, 0x80, 0x8d, 0xc9, 0x54, 0xb4, - 0x52, 0xd9, 0x74, 0xf1, 0xf1, 0x48, 0x3e, 0xad, 0x8b, 0xa2, 0x1b, 0x5b, 0x2f, 0xad, 0xd1, 0x74, - 0x62, 0x94, 0xcc, 0x6f, 0xa0, 0x96, 0x7a, 0xab, 0x01, 0x1b, 0x07, 0xd6, 0xe1, 0xe1, 0x91, 0x86, - 0x5b, 0x2f, 0x8e, 0xad, 0xc9, 0xd4, 0x28, 0xa2, 0x1b, 0xd0, 0x1c, 0x1f, 0x4f, 0x0e, 0x6c, 0x6b, - 0xb4, 0xb3, 0x7b, 0x68, 0x19, 0x25, 0x64, 0x40, 0x4b, 0x32, 0xfa, 0x83, 0x89, 0xe4, 0x94, 0x51, - 0x07, 0x40, 0x72, 0xc6, 0x3b, 0xc7, 0x13, 0xcb, 0xa8, 0x64, 0x2a, 0xd8, 0x9a, 0x1c, 0x0f, 0x2d, - 0x63, 0x03, 0xdd, 0x84, 0xf6, 0xf1, 0x58, 0xb4, 0x75, 0x7b, 0xef, 0x68, 0xf4, 0xab, 0xc1, 0xbe, - 0x51, 0x33, 0xff, 0x53, 0x84, 0x1b, 0x97, 0xd2, 0x31, 0xb7, 0x9a, 0x2a, 0xf7, 0xff, 0x12, 0xaa, - 0x54, 0xfe, 0x0f, 0xa6, 0x47, 0xd4, 0x47, 0x6f, 0x4f, 0xe7, 0x6d, 0xf5, 0xa7, 0x19, 0xd6, 0x4a, - 0xcb, 0x46, 0xae, 0x6a, 0x5f, 0x37, 0xf2, 0x7d, 0x30, 0xc8, 0xe9, 0xa9, 0xb0, 0x70, 0x4e, 0x6c, - 0xed, 0xe0, 0xca, 0x35, 0x1c, 0x7c, 0x23, 0xd3, 0x52, 0x7c, 0xf3, 0x36, 0x54, 0xd5, 0x81, 0xa8, - 0x0a, 0xa5, 0xa3, 0xaf, 0x8c, 0x02, 0xaa, 0x41, 0xd9, 0xc2, 0xd8, 0x28, 0x9a, 0x2e, 0xb4, 0xf2, - 0xe5, 0x82, 0x9e, 0x40, 0xe5, 0xcc, 0x0f, 0xd5, 0xd5, 0x3a, 0xbd, 0xbb, 0x6f, 0xa9, 0xac, 0xed, - 0xaf, 0xfc, 0xd0, 0xc3, 0x12, 0x6d, 0xde, 0x81, 0x8a, 0xa0, 0xd0, 0xbb, 0x70, 0xb3, 0x3f, 0x98, - 0xec, 0xed, 0xe0, 0xfe, 0x60, 0xb4, 0x6f, 0xeb, 0xd8, 0x15, 0x3e, 0xb1, 0xd6, 0xce, 0x57, 0x80, - 0xea, 0xde, 0xe1, 0xd1, 0xc4, 0xea, 0x1b, 0x45, 0x11, 0xc7, 0xa3, 0xb1, 0x35, 0x12, 0xb3, 0xb6, - 0x24, 0x08, 0x21, 0x10, 0x44, 0x59, 0x04, 0xdb, 0xc2, 0xf8, 0x08, 0x1b, 0x95, 0x4f, 0x3e, 0x84, - 0x8a, 0x58, 0xe4, 0xc5, 0xf4, 0x1d, 0x8c, 0x06, 0xd3, 0xc1, 0xce, 0xf4, 0x08, 0x1b, 0x05, 0x41, - 0x62, 0x6b, 0x32, 0x3e, 0x1a, 0xf5, 0x2d, 0x6c, 0x14, 0x77, 0xbb, 0xff, 0x78, 0xb5, 0x55, 0xfc, - 0xee, 0xd5, 0x56, 0xf1, 0xfb, 0x57, 0x5b, 0xc5, 0x3f, 0xbd, 0xde, 0x2a, 0x7c, 0xf7, 0x7a, 0xab, - 0xf0, 0xef, 0xd7, 0x5b, 0x85, 0x93, 0xaa, 0x5c, 0x09, 0x1f, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, - 0x5e, 0x30, 0xca, 0x4b, 0xfe, 0x14, 0x00, 0x00, + // 2207 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x58, 0x5b, 0x6f, 0x1b, 0xc7, + 0x15, 0xe6, 0xfd, 0x72, 0x78, 0xf1, 0x6a, 0x9c, 0x20, 0xb4, 0x52, 0xab, 0xf6, 0xc6, 0x49, 0x14, + 0xc3, 0x50, 0x6d, 0x3a, 0x06, 0x02, 0x34, 0x0d, 0x20, 0x89, 0x5b, 0x8b, 0x8e, 0x44, 0xd1, 0x43, + 0xca, 0x68, 0xfb, 0xd0, 0xc5, 0x8a, 0x3b, 0x22, 0xb7, 0x22, 0x77, 0xb7, 0x33, 0x43, 0x25, 0x02, + 0xfa, 0xd0, 0x7f, 0xd0, 0xfe, 0x82, 0xfe, 0x86, 0x3e, 0xf7, 0xad, 0x40, 0x1f, 0x8a, 0x3e, 0xe5, + 0xb1, 0x68, 0x5f, 0x0a, 0xfb, 0x29, 0xff, 0xa2, 0x38, 0x33, 0xb3, 0x17, 0xc9, 0x97, 0xa6, 0x6f, + 0x7b, 0xce, 0xf7, 0x9d, 0xb3, 0xb3, 0xe7, 0x36, 0x87, 0x84, 0x9b, 0x41, 0x28, 0x79, 0x24, 0x62, + 0x36, 0x93, 0x41, 0x14, 0xee, 0xc4, 0x3c, 0x92, 0x11, 0x29, 0xc5, 0xa7, 0xf6, 0x47, 0x50, 0x7f, + 0xc1, 0xb8, 0x08, 0xa2, 0x90, 0xf4, 0xa0, 0x7e, 0xa1, 0x1f, 0x7b, 0xc5, 0x3b, 0xc5, 0xed, 0x0e, + 0x4d, 0x44, 0xfb, 0x29, 0x74, 0x28, 0x13, 0xeb, 0xa5, 0xdc, 0x8f, 0xd6, 0xa1, 0x64, 0x9c, 0xbc, + 0x07, 0x55, 0x19, 0x49, 0x6f, 0x69, 0x88, 0x5a, 0x20, 0x5d, 0x28, 0x45, 0xe7, 0xbd, 0x92, 0x52, + 0x95, 0xa2, 0x73, 0x62, 0x41, 0x99, 0x71, 0xde, 0x2b, 0x2b, 0x05, 0x3e, 0xda, 0x7f, 0x2a, 0x41, + 0x77, 0xb2, 0x0c, 0xfc, 0x20, 0x9c, 0x27, 0xae, 0x3e, 0x80, 0x7a, 0x74, 0xc1, 0xb8, 0xfb, 0x68, + 0x65, 0x9c, 0xd5, 0x50, 0x7c, 0xb4, 0x4a, 0x81, 0x27, 0x2b, 0xe3, 0x52, 0x01, 0x4f, 0x56, 0xe4, + 0x16, 0x34, 0xb4, 0xc5, 0x93, 0x95, 0xf1, 0xad, 0x88, 0x8f, 0x72, 0xd0, 0xe3, 0x87, 0xab, 0x5e, + 0x25, 0x83, 0x1e, 0x3f, 0xcc, 0x59, 0x2d, 0x78, 0xaf, 0x9a, 0xb3, 0x5a, 0xf0, 0x14, 0xea, 0x2f, + 0x78, 0xaf, 0x96, 0x41, 0xfd, 0x1c, 0xf4, 0xf9, 0x82, 0xf7, 0xea, 0x19, 0xf4, 0x79, 0x0e, 0xfa, + 0x62, 0xc1, 0x7b, 0x8d, 0x0c, 0xfa, 0x62, 0xc1, 0xc9, 0x87, 0xd0, 0xd4, 0xef, 0x42, 0x8f, 0x4d, + 0x85, 0x29, 0x2e, 0xca, 0x29, 0xd8, 0x47, 0x9f, 0x90, 0x81, 0x28, 0xdb, 0xa7, 0xd0, 0x1c, 0x78, + 0xd2, 0x7b, 0xea, 0xad, 0xe7, 0x0c, 0x99, 0xb3, 0xf5, 0xca, 0x3d, 0xbd, 0x94, 0x4c, 0xa8, 0xe0, + 0x54, 0x68, 0x63, 0xb6, 0x5e, 0xed, 0xa1, 0x4c, 0x7e, 0x0c, 0x2d, 0x04, 0x63, 0x6f, 0x76, 0xce, + 0xa4, 0x50, 0x21, 0xaa, 0x50, 0x98, 0xad, 0x57, 0x63, 0xad, 0xc1, 0xf8, 0x05, 0xa1, 0x90, 0xee, + 0xe9, 0x37, 0x2a, 0x4a, 0x15, 0x5a, 0x43, 0x71, 0xef, 0x1b, 0xfb, 0xaf, 0x25, 0x68, 0x3a, 0x17, + 0x2c, 0x94, 0xd3, 0xcb, 0x98, 0x11, 0x02, 0x95, 0xd0, 0x5b, 0x31, 0xe5, 0xbf, 0x49, 0xd5, 0x33, + 0xd9, 0x83, 0x6e, 0xcc, 0xa3, 0x98, 0x71, 0x79, 0xe9, 0xca, 0xcb, 0x98, 0xa1, 0xfb, 0xf2, 0x76, + 0xab, 0xff, 0xe1, 0x4e, 0x7c, 0xba, 0x93, 0x9a, 0xea, 0xa7, 0xb1, 0x21, 0xd2, 0x4e, 0x62, 0x82, + 0x98, 0xd8, 0xfc, 0x77, 0x11, 0x3a, 0x57, 0x08, 0x6f, 0x7c, 0xd3, 0x97, 0x50, 0xc1, 0x17, 0xa8, + 0xe3, 0x77, 0xfb, 0xdb, 0xef, 0xf0, 0xbf, 0x33, 0xce, 0xb9, 0xa7, 0xca, 0x8a, 0xdc, 0x85, 0xf6, + 0xc2, 0x13, 0xee, 0x6a, 0xbd, 0x94, 0x41, 0xbc, 0x64, 0xea, 0x3b, 0x1b, 0xb4, 0xb5, 0xf0, 0xc4, + 0x91, 0x51, 0xd9, 0x27, 0xd0, 0xce, 0x1b, 0x12, 0x80, 0xda, 0x64, 0x4a, 0x87, 0xa3, 0xa7, 0x56, + 0x01, 0x9f, 0x47, 0x27, 0x47, 0x7b, 0x0e, 0xb5, 0x8a, 0xa4, 0x01, 0x95, 0xe9, 0xf0, 0xc8, 0xb1, + 0x00, 0xb5, 0x63, 0xc7, 0xa1, 0xc3, 0x81, 0xd5, 0x22, 0x1d, 0x68, 0x1e, 0x9d, 0x1c, 0x4e, 0x87, + 0xbb, 0x83, 0x01, 0xb5, 0xda, 0x48, 0x7a, 0x36, 0x39, 0x1e, 0x59, 0xbf, 0xb2, 0xff, 0x5c, 0x84, + 0x3a, 0x5d, 0x87, 0x32, 0x58, 0x31, 0xf2, 0x09, 0x74, 0x83, 0x55, 0xbc, 0x64, 0x2b, 0x16, 0x4a, + 0x4f, 0x26, 0xed, 0xd3, 0xa4, 0xd7, 0xb4, 0xf9, 0xfe, 0x2a, 0x29, 0x42, 0x22, 0x92, 0x4d, 0x68, + 0xc4, 0x4b, 0x4f, 0x9e, 0x45, 0x5c, 0x57, 0x74, 0x93, 0xa6, 0x32, 0xa6, 0x31, 0x66, 0x8c, 0xbb, + 0x81, 0xaf, 0x2a, 0xba, 0x49, 0x6b, 0x28, 0x0e, 0x7d, 0xb2, 0x03, 0x2d, 0x86, 0x01, 0x32, 0x19, + 0xaa, 0xab, 0x0c, 0x75, 0xae, 0x44, 0x90, 0x02, 0x4b, 0x1e, 0x85, 0xfd, 0x0b, 0x68, 0x3b, 0xa1, + 0x1f, 0x47, 0x41, 0x28, 0xc7, 0x5e, 0xc0, 0xc9, 0x47, 0xd0, 0x11, 0x7c, 0xa6, 0x83, 0xe7, 0xf9, + 0x3e, 0x37, 0xa7, 0x6e, 0x0b, 0x3e, 0x3b, 0x4a, 0x74, 0x48, 0xf2, 0x85, 0xcc, 0x91, 0xf4, 0xc9, + 0xdb, 0xbe, 0x90, 0x29, 0xc9, 0x9e, 0x43, 0x7d, 0xca, 0xbd, 0xb3, 0xb3, 0x60, 0x46, 0x1e, 0x00, + 0x48, 0xfd, 0xe8, 0x06, 0x3a, 0x0e, 0xe6, 0x4c, 0x69, 0x55, 0xd3, 0xa6, 0x21, 0x0c, 0x43, 0xfc, + 0x84, 0x84, 0x1d, 0xad, 0xa5, 0xf2, 0xfd, 0x1a, 0x3d, 0xf1, 0x77, 0xbc, 0x96, 0xf6, 0x73, 0x80, + 0x89, 0xe4, 0xcc, 0x5b, 0x1d, 0x06, 0x42, 0x92, 0xdb, 0x00, 0x42, 0x49, 0x6e, 0xe0, 0x63, 0x7f, + 0x94, 0xb7, 0xdb, 0xb4, 0xa9, 0x35, 0x43, 0x5f, 0x90, 0x7b, 0x50, 0xd7, 0x42, 0x52, 0xbd, 0x80, + 0x8e, 0xb5, 0x3d, 0x4d, 0x20, 0xfb, 0x5f, 0x55, 0x80, 0xfd, 0x28, 0x0c, 0xf5, 0x60, 0xc4, 0x11, + 0x16, 0xf8, 0xea, 0xdc, 0x6d, 0x5a, 0x0a, 0xfc, 0x7c, 0xf4, 0x4b, 0x57, 0xa2, 0x6f, 0x43, 0x4d, + 0x48, 0x4f, 0xae, 0x85, 0x4a, 0x58, 0x37, 0x71, 0x8e, 0x1a, 0x6a, 0x10, 0x2c, 0x4f, 0xc9, 0xbd, + 0x50, 0xc4, 0x11, 0x97, 0x49, 0xfe, 0xda, 0xb4, 0x95, 0xea, 0x54, 0x12, 0x9b, 0xcc, 0x24, 0x45, + 0xa8, 0xb1, 0xd4, 0xea, 0x5b, 0x2a, 0x85, 0xb9, 0x4c, 0xd1, 0x8c, 0x42, 0x1e, 0x43, 0x03, 0x6b, + 0x6e, 0x19, 0x84, 0x4c, 0x8d, 0xaa, 0x56, 0xff, 0x03, 0xa4, 0x67, 0x5f, 0xb0, 0x33, 0x35, 0x30, + 0x4d, 0x89, 0xe4, 0x47, 0x50, 0xe1, 0xd1, 0x92, 0xa9, 0x01, 0xd6, 0xed, 0x37, 0xd0, 0x80, 0x46, + 0x4b, 0x46, 0x95, 0x96, 0x7c, 0x0c, 0x75, 0x13, 0x62, 0x35, 0xc6, 0x5a, 0xfd, 0x16, 0x12, 0x4c, + 0x42, 0x69, 0x82, 0x91, 0xc7, 0x50, 0xf7, 0xa4, 0xe4, 0xc1, 0xa9, 0x50, 0x13, 0xad, 0xd5, 0xbf, + 0x75, 0xed, 0xc5, 0xbb, 0x0a, 0x5d, 0x4b, 0x26, 0x68, 0xc2, 0xc4, 0x14, 0x2d, 0x3d, 0xc9, 0xc2, + 0xd9, 0xa5, 0x1b, 0x0a, 0x35, 0xec, 0x2a, 0xb4, 0x69, 0x34, 0x23, 0x41, 0xb6, 0xb3, 0x14, 0xb5, + 0x94, 0xcf, 0x6e, 0x96, 0x22, 0x4c, 0x71, 0x9a, 0x26, 0x72, 0x0b, 0xea, 0xb3, 0x28, 0x0c, 0x31, + 0x8a, 0x16, 0x46, 0xf1, 0xa0, 0x40, 0x6b, 0xa8, 0x18, 0xfa, 0xe4, 0x1e, 0x54, 0xf0, 0xa9, 0xb7, + 0x91, 0x79, 0xc8, 0x4e, 0x75, 0x50, 0xa0, 0x0a, 0x25, 0x0f, 0x80, 0xac, 0x05, 0xe3, 0x6e, 0xcc, + 0xa3, 0x8b, 0xc0, 0x67, 0xbe, 0x2b, 0xbd, 0xb9, 0xe8, 0xcd, 0xee, 0x94, 0xb7, 0x9b, 0xd4, 0x42, + 0x64, 0x6c, 0x80, 0xa9, 0x37, 0x17, 0x9b, 0x2e, 0x34, 0x92, 0x38, 0xaa, 0x7b, 0x28, 0x66, 0xa1, + 0x2b, 0x93, 0x19, 0x5c, 0x43, 0x71, 0xaa, 0x26, 0xf0, 0x3a, 0x9e, 0x73, 0x4f, 0x79, 0x4b, 0x27, + 0x70, 0xa2, 0x9a, 0xe2, 0xa1, 0x1b, 0xb3, 0x65, 0x24, 0x18, 0xa2, 0x7a, 0x04, 0xd7, 0x95, 0x3c, + 0x15, 0x9b, 0x23, 0x80, 0x2c, 0x5e, 0xe4, 0x0e, 0xb4, 0x92, 0x19, 0xf6, 0x2d, 0x4b, 0x1a, 0x31, + 0xaf, 0x22, 0x5b, 0x00, 0x2c, 0x9c, 0xf1, 0xcb, 0x58, 0x66, 0xe3, 0x23, 0xa7, 0xd9, 0xeb, 0x42, + 0x9b, 0xb3, 0xa5, 0x77, 0xc9, 0x7c, 0x17, 0xef, 0x92, 0x67, 0x95, 0x46, 0xdb, 0xb2, 0xec, 0xef, + 0xcb, 0x50, 0xd3, 0xd1, 0x7c, 0xad, 0xb0, 0x71, 0xe4, 0xe0, 0x12, 0x30, 0x8b, 0x96, 0xc6, 0x5d, + 0x2a, 0xa7, 0xf5, 0x52, 0xfe, 0x5f, 0xf5, 0x52, 0x79, 0x47, 0xbd, 0x3c, 0x30, 0x69, 0xd1, 0x45, + 0xdd, 0xcb, 0x12, 0x9b, 0xcb, 0x0e, 0x65, 0x67, 0x26, 0x3d, 0x3f, 0x79, 0xad, 0xae, 0x6f, 0xe6, + 0x2c, 0xde, 0x50, 0xd3, 0x59, 0xff, 0xd5, 0xdf, 0xda, 0x7f, 0x57, 0xab, 0xcf, 0xba, 0x5e, 0x7d, + 0xff, 0x5f, 0x49, 0xfc, 0x1a, 0x3a, 0x57, 0x0e, 0x9e, 0xd6, 0x5d, 0xf1, 0x9d, 0x75, 0x97, 0x2b, + 0xdc, 0xd2, 0xd5, 0xc2, 0xdd, 0x6b, 0x03, 0xcc, 0x52, 0x83, 0xcd, 0xaf, 0x7e, 0x48, 0xc9, 0xe5, + 0x2b, 0xaa, 0x74, 0xa5, 0xa2, 0xec, 0xef, 0xab, 0x50, 0x1e, 0x1c, 0x4c, 0xaf, 0x24, 0xb6, 0x78, + 0x2d, 0xb1, 0x3d, 0xa8, 0xb3, 0xd0, 0x3b, 0x5d, 0x32, 0x7d, 0x98, 0x06, 0x4d, 0x44, 0x74, 0x2c, + 0xa4, 0xc7, 0x65, 0xae, 0x54, 0x95, 0x3c, 0x15, 0xe4, 0x13, 0xa8, 0xc5, 0x1e, 0xc7, 0x1e, 0xad, + 0x64, 0x5f, 0x3a, 0x38, 0x98, 0xee, 0x8c, 0x95, 0x96, 0x1a, 0x14, 0x9b, 0xf9, 0x74, 0xad, 0x97, + 0x91, 0xaa, 0x9a, 0xb7, 0x29, 0x71, 0x4f, 0xa9, 0x69, 0x02, 0x93, 0x9f, 0x81, 0x15, 0x84, 0xb3, + 0x68, 0x15, 0x84, 0x73, 0xf7, 0xb7, 0x6b, 0xc6, 0x03, 0x26, 0x4c, 0xd2, 0x49, 0x62, 0xf2, 0x7c, + 0xcd, 0xf8, 0xa5, 0xbe, 0x00, 0x6e, 0x24, 0xdc, 0xe7, 0x9a, 0x8a, 0xe6, 0xd1, 0x5a, 0xce, 0xa3, + 0xbc, 0x79, 0xfd, 0xed, 0xe6, 0x09, 0xd7, 0x98, 0x6f, 0xce, 0xa1, 0xa6, 0x4f, 0x4e, 0xda, 0x50, + 0x3c, 0x37, 0x01, 0x2e, 0x9e, 0xe3, 0x4e, 0xeb, 0x2d, 0xe3, 0x85, 0x67, 0x02, 0xab, 0x05, 0xf2, + 0x31, 0x74, 0xfd, 0x40, 0xfc, 0x06, 0xa7, 0xaf, 0x1b, 0x7b, 0x72, 0x91, 0x84, 0xa7, 0x93, 0x68, + 0xc7, 0xa8, 0xc4, 0xdd, 0xe6, 0x94, 0x49, 0x4f, 0x85, 0xa8, 0x42, 0xd5, 0xf3, 0xe6, 0x5f, 0x8a, + 0xd0, 0x1c, 0xe3, 0x6d, 0x11, 0x62, 0x5e, 0x72, 0x37, 0x49, 0xf1, 0xca, 0x4d, 0xf2, 0x30, 0xad, + 0x64, 0xbd, 0x04, 0xf5, 0xd2, 0xf8, 0x26, 0xb6, 0xd7, 0xeb, 0xda, 0x86, 0x8e, 0x37, 0x67, 0x6e, + 0x10, 0xba, 0x3a, 0xa2, 0x66, 0x0b, 0x6e, 0x79, 0x73, 0x36, 0x0c, 0x75, 0xb0, 0xed, 0xaf, 0xb0, + 0xf3, 0x15, 0x1b, 0xa0, 0xb6, 0xbb, 0x3f, 0x1d, 0xbe, 0x70, 0xac, 0x02, 0x69, 0x41, 0xfd, 0x68, + 0x38, 0x99, 0xe0, 0xfa, 0x53, 0x24, 0x6d, 0x68, 0x50, 0xe7, 0x99, 0xb3, 0x3f, 0x75, 0x06, 0x56, + 0x09, 0x57, 0x9d, 0xfd, 0xdd, 0xd1, 0x60, 0x38, 0xd8, 0x9d, 0x3a, 0x56, 0x79, 0x73, 0x1f, 0x6a, + 0xda, 0x13, 0x6e, 0xf1, 0xb3, 0x38, 0xd9, 0xf4, 0xf1, 0x91, 0x7c, 0x0a, 0x55, 0x3c, 0x7b, 0x72, + 0xaf, 0x6e, 0xbc, 0x76, 0x60, 0xaa, 0xf1, 0xcd, 0x17, 0x00, 0x59, 0x26, 0xb0, 0xfa, 0xc4, 0x7a, + 0x36, 0x63, 0x22, 0xa9, 0xea, 0x44, 0xc4, 0xd0, 0x33, 0xce, 0x23, 0x9e, 0x84, 0x5e, 0x09, 0xc8, + 0xc7, 0x76, 0xc7, 0xcd, 0xc0, 0x94, 0xa4, 0x11, 0xed, 0x5f, 0x02, 0x4c, 0xd6, 0xa7, 0xe2, 0x52, + 0x48, 0xb6, 0x12, 0xe4, 0x21, 0xb4, 0xb2, 0x3e, 0xd2, 0x8b, 0xc0, 0x6b, 0xfd, 0x48, 0xf3, 0x14, + 0x72, 0x0b, 0xca, 0xfe, 0x22, 0xd9, 0x37, 0xea, 0xe6, 0xf8, 0x14, 0x75, 0xf6, 0x3f, 0x8a, 0x50, + 0xc5, 0xc0, 0x31, 0xb2, 0x03, 0x20, 0xd2, 0x97, 0xe4, 0xbb, 0x3c, 0x7b, 0x35, 0xcd, 0x31, 0xf2, + 0x73, 0xb1, 0xf4, 0x8e, 0xb9, 0x78, 0x1b, 0x00, 0xf7, 0x70, 0x2f, 0xcc, 0xf5, 0x5a, 0xd3, 0x68, + 0x74, 0x87, 0xa7, 0x8d, 0x58, 0xb9, 0xda, 0x88, 0x0f, 0xe1, 0x3d, 0x11, 0x7a, 0xb1, 0x58, 0x44, + 0xd2, 0xf5, 0xd7, 0x5c, 0x2d, 0x95, 0xee, 0x4a, 0x98, 0x5f, 0x33, 0x24, 0xc1, 0x06, 0x06, 0x3a, + 0x12, 0xf6, 0x14, 0xaa, 0x6a, 0x17, 0x24, 0x77, 0xcd, 0x9a, 0x9d, 0x5b, 0xc8, 0xb2, 0x25, 0x51, + 0xef, 0xd2, 0x5d, 0x28, 0xa5, 0x43, 0xa5, 0x24, 0x05, 0x46, 0x7f, 0x16, 0x85, 0x92, 0x85, 0xd2, + 0xac, 0xa4, 0x89, 0x68, 0xff, 0xa1, 0x04, 0x9d, 0x09, 0xe3, 0x17, 0x8c, 0x1f, 0x31, 0x21, 0xbc, + 0xb9, 0xba, 0x12, 0xf2, 0xbf, 0x1c, 0xcd, 0xa7, 0x9b, 0xdf, 0x95, 0xd9, 0x9a, 0x7b, 0x17, 0xaa, + 0x58, 0xc1, 0xcc, 0xc4, 0xa7, 0x99, 0x8c, 0x6c, 0x76, 0x50, 0xa0, 0x1a, 0x21, 0x9f, 0x42, 0x9d, + 0xeb, 0xb5, 0x5a, 0xbd, 0xd5, 0x78, 0x32, 0x9b, 0xf6, 0x41, 0x81, 0x26, 0x28, 0xfa, 0x52, 0xbb, + 0xad, 0x19, 0x4a, 0xcd, 0xf4, 0x93, 0xd0, 0x97, 0x42, 0xc8, 0x23, 0x68, 0x70, 0x26, 0xe2, 0x28, + 0x14, 0xcc, 0xdc, 0x42, 0x37, 0x75, 0x51, 0xac, 0x56, 0x5e, 0xe8, 0x53, 0x03, 0x1d, 0x14, 0x68, + 0x4a, 0x23, 0xf7, 0xa1, 0x16, 0x46, 0x32, 0x98, 0x25, 0x97, 0x90, 0xda, 0xc5, 0xf4, 0xb7, 0x8e, + 0x94, 0x1e, 0xc7, 0xb7, 0x66, 0xec, 0x35, 0xa1, 0x1e, 0x7b, 0x97, 0xcb, 0xc8, 0xf3, 0xed, 0xdf, + 0xa9, 0xbb, 0xe1, 0x2c, 0x98, 0x9b, 0xd0, 0x93, 0x1d, 0xb8, 0xc9, 0x19, 0x06, 0x0b, 0x53, 0x14, + 0x33, 0x1e, 0x44, 0xbe, 0xbb, 0x4a, 0xca, 0x7e, 0x23, 0x85, 0xc6, 0x0a, 0x39, 0x12, 0xe4, 0xa7, + 0xb0, 0xa9, 0xbe, 0xdf, 0x4d, 0x13, 0x1c, 0xe0, 0x8f, 0xe3, 0x0b, 0x6f, 0xe9, 0xae, 0x92, 0xa4, + 0x7c, 0xa0, 0x18, 0x13, 0x43, 0x18, 0x1a, 0xfc, 0x48, 0xd8, 0xbf, 0x2f, 0x43, 0x67, 0x7f, 0x19, + 0xb0, 0x50, 0x9a, 0x4f, 0xfb, 0xa1, 0xf9, 0xd0, 0x3b, 0x81, 0x49, 0x79, 0xe0, 0xe3, 0x8a, 0x37, + 0xd3, 0x1e, 0xcc, 0xd5, 0xaf, 0x57, 0xbc, 0xbc, 0xeb, 0x34, 0x7a, 0x09, 0x53, 0x8d, 0xaf, 0x68, + 0xcd, 0x67, 0x4c, 0x65, 0xc2, 0x8c, 0xaf, 0xab, 0x36, 0x13, 0x85, 0x53, 0xc3, 0x23, 0x9f, 0x01, + 0xde, 0x80, 0x67, 0xc1, 0xdc, 0x64, 0x65, 0xc3, 0xb4, 0x6a, 0x16, 0x3f, 0x6a, 0x08, 0xf6, 0x03, + 0xa8, 0x69, 0x63, 0xd2, 0x84, 0xea, 0x64, 0x8a, 0xa3, 0x49, 0x0d, 0x31, 0x7a, 0x32, 0x52, 0xbf, + 0xd6, 0x8a, 0x38, 0xdd, 0x9c, 0x17, 0xce, 0x68, 0x3a, 0xb1, 0x4a, 0xf6, 0xb7, 0x50, 0x4f, 0x22, + 0xd0, 0x84, 0xea, 0x81, 0x73, 0x78, 0x78, 0x6c, 0xe8, 0xce, 0xf3, 0x13, 0x67, 0x32, 0xb5, 0x8a, + 0xe4, 0x06, 0xb4, 0xc6, 0x27, 0x93, 0x03, 0xd7, 0x19, 0xed, 0xee, 0x1d, 0x3a, 0x56, 0x89, 0x58, + 0xd0, 0x56, 0x8a, 0xc1, 0x70, 0xa2, 0x34, 0x65, 0xd2, 0x05, 0x50, 0x9a, 0xf1, 0xee, 0xc9, 0xc4, + 0xb1, 0x2a, 0xa9, 0x09, 0x75, 0x26, 0x27, 0x47, 0x8e, 0x55, 0x25, 0x1b, 0xd0, 0x39, 0x19, 0xe3, + 0x98, 0x74, 0xf7, 0x8f, 0x47, 0x3f, 0x1f, 0x3e, 0xb5, 0xea, 0xf6, 0xdf, 0x8a, 0x70, 0xe3, 0x5a, + 0x5d, 0xe5, 0x36, 0x2e, 0x1d, 0xdd, 0x3e, 0xd4, 0xb8, 0xfa, 0x13, 0xc5, 0xcc, 0xf9, 0xcd, 0x37, + 0x14, 0xe3, 0x8e, 0xfe, 0x9b, 0x85, 0x1a, 0x66, 0x36, 0x18, 0x75, 0x0b, 0x9a, 0xc1, 0xf8, 0x25, + 0x58, 0xec, 0xec, 0x0c, 0x87, 0xd9, 0x05, 0x73, 0x4d, 0x28, 0x2b, 0x6f, 0x0b, 0xe5, 0x8d, 0x94, + 0xaa, 0xf5, 0xf6, 0x2d, 0xa8, 0xe9, 0xb7, 0x90, 0x1a, 0x94, 0x8e, 0xbf, 0xb6, 0x0a, 0xa4, 0x0e, + 0x65, 0x87, 0x52, 0xab, 0x88, 0x3f, 0x11, 0xf3, 0xc5, 0x4e, 0x3e, 0x83, 0xca, 0x79, 0x10, 0xea, + 0x8f, 0xe8, 0xf6, 0xdf, 0xbf, 0xde, 0x0c, 0x3b, 0x5f, 0x07, 0xa1, 0x4f, 0x15, 0xc5, 0xbe, 0x0d, + 0x15, 0x94, 0xc8, 0xfb, 0xb0, 0x31, 0x18, 0x4e, 0xf6, 0x77, 0xe9, 0x60, 0x38, 0x7a, 0xea, 0x9a, + 0xd4, 0x14, 0xee, 0x3b, 0x6f, 0xbc, 0x8e, 0x00, 0x6a, 0xfb, 0x87, 0xc7, 0x13, 0x67, 0x60, 0x15, + 0x31, 0x4d, 0xc7, 0x63, 0x67, 0x84, 0x57, 0x53, 0x09, 0x05, 0x04, 0x50, 0x28, 0x63, 0x2e, 0x1d, + 0x4a, 0x8f, 0xa9, 0x55, 0xb9, 0x7f, 0x0f, 0x2a, 0xb8, 0x89, 0xe2, 0x65, 0x35, 0x1c, 0x0d, 0xa7, + 0xc3, 0xdd, 0xe9, 0x31, 0xb5, 0x0a, 0x28, 0x52, 0x67, 0x32, 0x3e, 0x1e, 0x0d, 0xf0, 0xb7, 0xfc, + 0x5e, 0xef, 0xef, 0x2f, 0xb7, 0x8a, 0xdf, 0xbd, 0xdc, 0x2a, 0xfe, 0xe7, 0xe5, 0x56, 0xf1, 0x8f, + 0xaf, 0xb6, 0x0a, 0xdf, 0xbd, 0xda, 0x2a, 0xfc, 0xf3, 0xd5, 0x56, 0xe1, 0xb4, 0xa6, 0x56, 0xa1, + 0xc7, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x54, 0x4b, 0x9d, 0x7a, 0x0f, 0x13, 0x00, 0x00, } func (m *Version) Marshal() (dAtA []byte, err error) { diff --git a/introspection/pb/introspection.proto b/introspection/pb/introspection.proto index fa9285bc..144e7b99 100644 --- a/introspection/pb/introspection.proto +++ b/introspection/pb/introspection.proto @@ -1,6 +1,6 @@ syntax = "proto3"; -package introspection; +package pb; // Version of schema message Version {