diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2018-07-10 14:06:08 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2018-08-08 21:24:48 +0900 |
commit | 71e56c542e6a167dc3cd983aae2881a3c24c162a (patch) | |
tree | a449e3ed0889940fe47bb5f4ffca91228a4cc7e8 /api | |
parent | 3dc23d3075f13f2976afd255ef2fd9b1410acc77 (diff) |
rpc cleanup
- clean up RPC function names
- rewrite gobgp command to use the api instead of config package
- delete unused client package
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Diffstat (limited to 'api')
-rw-r--r-- | api/attribute.pb.go | 3 | ||||
-rw-r--r-- | api/capability.pb.go | 3 | ||||
-rw-r--r-- | api/gobgp.pb.go | 5926 | ||||
-rw-r--r-- | api/gobgp.proto | 741 |
4 files changed, 3008 insertions, 3665 deletions
diff --git a/api/attribute.pb.go b/api/attribute.pb.go index 79535b7c..886a8e6e 100644 --- a/api/attribute.pb.go +++ b/api/attribute.pb.go @@ -1,5 +1,6 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. +// Code generated by protoc-gen-go. // source: attribute.proto +// DO NOT EDIT! package gobgpapi diff --git a/api/capability.pb.go b/api/capability.pb.go index 9e468509..9fcccbe8 100644 --- a/api/capability.pb.go +++ b/api/capability.pb.go @@ -1,5 +1,6 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. +// Code generated by protoc-gen-go. // source: capability.proto +// DO NOT EDIT! package gobgpapi diff --git a/api/gobgp.pb.go b/api/gobgp.pb.go index 0738c0a0..92873288 100644 --- a/api/gobgp.pb.go +++ b/api/gobgp.pb.go @@ -1,5 +1,6 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. +// Code generated by protoc-gen-go. // source: gobgp.proto +// DO NOT EDIT! /* Package gobgpapi is a generated protocol buffer package. @@ -10,123 +11,80 @@ It is generated from these files: capability.proto It has these top-level messages: - GetNeighborRequest - GetNeighborResponse - Arguments - AddPathRequest - AddPathResponse - DeletePathRequest - DeletePathResponse - AddNeighborRequest - AddNeighborResponse - DeleteNeighborRequest - DeleteNeighborResponse - UpdateNeighborRequest - UpdateNeighborResponse + StartBgpRequest + StopBgpRequest + GetBgpRequest + GetBgpResponse + AddPeerRequest + DeletePeerRequest + ListPeerRequest + ListPeerResponse + UpdatePeerRequest + UpdatePeerResponse + ResetPeerRequest + ShutdownPeerRequest + EnablePeerRequest + DisablePeerRequest + MonitorPeerRequest + MonitorPeerResponse AddPeerGroupRequest - AddPeerGroupResponse DeletePeerGroupRequest - DeletePeerGroupResponse UpdatePeerGroupRequest UpdatePeerGroupResponse AddDynamicNeighborRequest - AddDynamicNeighborResponse - ResetNeighborRequest - ResetNeighborResponse - SoftResetNeighborRequest - SoftResetNeighborResponse - ShutdownNeighborRequest - ShutdownNeighborResponse - EnableNeighborRequest - EnableNeighborResponse - DisableNeighborRequest - DisableNeighborResponse - UpdatePolicyRequest - UpdatePolicyResponse - EnableMrtRequest - EnableMrtResponse - DisableMrtRequest - DisableMrtResponse - InjectMrtRequest - InjectMrtResponse - AddBmpRequest - AddBmpResponse - DeleteBmpRequest - DeleteBmpResponse - MonitorRibRequest - RPKIConf - RPKIState - Rpki - GetRpkiRequest - GetRpkiResponse - AddRpkiRequest - AddRpkiResponse - DeleteRpkiRequest - DeleteRpkiResponse - EnableRpkiRequest - EnableRpkiResponse - DisableRpkiRequest - DisableRpkiResponse - ResetRpkiRequest - ResetRpkiResponse - SoftResetRpkiRequest - SoftResetRpkiResponse - EnableZebraRequest - EnableZebraResponse - GetVrfRequest - GetVrfResponse + AddPathRequest + AddPathResponse + DeletePathRequest + ListPathRequest + ListPathResponse + AddPathStreamRequest + GetTableRequest + GetTableResponse + MonitorTableRequest + MonitorTableResponse AddVrfRequest - AddVrfResponse DeleteVrfRequest - DeleteVrfResponse - GetDefinedSetRequest - GetDefinedSetResponse + ListVrfRequest + ListVrfResponse + AddPolicyRequest + DeletePolicyRequest + ListPolicyRequest + ListPolicyResponse + ReplacePolicyRequest + UpdatePolicyRequest AddDefinedSetRequest - AddDefinedSetResponse DeleteDefinedSetRequest - DeleteDefinedSetResponse + ListDefinedSetRequest + ListDefinedSetResponse ReplaceDefinedSetRequest - ReplaceDefinedSetResponse - GetStatementRequest - GetStatementResponse AddStatementRequest - AddStatementResponse DeleteStatementRequest - DeleteStatementResponse + ListStatementRequest + ListStatementResponse ReplaceStatementRequest - ReplaceStatementResponse - GetPolicyRequest - GetPolicyResponse - AddPolicyRequest - AddPolicyResponse - DeletePolicyRequest - DeletePolicyResponse - ReplacePolicyRequest - ReplacePolicyResponse - GetPolicyAssignmentRequest - GetPolicyAssignmentResponse AddPolicyAssignmentRequest - AddPolicyAssignmentResponse DeletePolicyAssignmentRequest - DeletePolicyAssignmentResponse + ListPolicyAssignmentRequest + ListPolicyAssignmentResponse ReplacePolicyAssignmentRequest - ReplacePolicyAssignmentResponse - GetServerRequest - GetServerResponse - StartServerRequest - StartServerResponse - StopServerRequest - StopServerResponse + AddRpkiRequest + DeleteRpkiRequest + ListRpkiRequest + ListRpkiResponse + EnableRpkiRequest + DisableRpkiRequest + ResetRpkiRequest + ListRpkiTableRequest + ListRpkiTableResponse + EnableZebraRequest + EnableMrtRequest + DisableMrtRequest + AddBmpRequest + DeleteBmpRequest RPKIValidation Path Destination - Table - GetRibRequest - GetRibResponse TableLookupPrefix - GetPathRequest - ValidateRibRequest - ValidateRibResponse Peer PeerGroup DynamicNeighbor @@ -190,19 +148,13 @@ It has these top-level messages: PolicyAssignment RoutingPolicy Roa - GetRoaRequest - GetRoaResponse Vrf DefaultRouteDistance Global Confederation - TableInfo - GetRibInfoRequest - GetRibInfoResponse - AddCollectorRequest - AddCollectorResponse - ShutdownRequest - ShutdownResponse + RPKIConf + RPKIState + Rpki OriginAttribute AsSegment AsPathAttribute @@ -297,6 +249,7 @@ import proto "github.com/golang/protobuf/proto" import fmt "fmt" import math "math" import google_protobuf "github.com/golang/protobuf/ptypes/any" +import google_protobuf1 "github.com/golang/protobuf/ptypes/empty" import ( context "golang.org/x/net/context" @@ -607,54 +560,54 @@ func (x MedActionType) String() string { } func (MedActionType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } -type PolicyType int32 +type PolicyDirection int32 const ( - PolicyType_IN PolicyType = 0 - PolicyType_IMPORT PolicyType = 1 - PolicyType_EXPORT PolicyType = 2 + PolicyDirection_UNKNOWN PolicyDirection = 0 + PolicyDirection_IMPORT PolicyDirection = 1 + PolicyDirection_EXPORT PolicyDirection = 2 ) -var PolicyType_name = map[int32]string{ - 0: "IN", +var PolicyDirection_name = map[int32]string{ + 0: "UNKNOWN", 1: "IMPORT", 2: "EXPORT", } -var PolicyType_value = map[string]int32{ - "IN": 0, - "IMPORT": 1, - "EXPORT": 2, +var PolicyDirection_value = map[string]int32{ + "UNKNOWN": 0, + "IMPORT": 1, + "EXPORT": 2, } -func (x PolicyType) String() string { - return proto.EnumName(PolicyType_name, int32(x)) +func (x PolicyDirection) String() string { + return proto.EnumName(PolicyDirection_name, int32(x)) } -func (PolicyType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } +func (PolicyDirection) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } -type SoftResetNeighborRequest_SoftResetDirection int32 +type ResetPeerRequest_SoftResetDirection int32 const ( - SoftResetNeighborRequest_IN SoftResetNeighborRequest_SoftResetDirection = 0 - SoftResetNeighborRequest_OUT SoftResetNeighborRequest_SoftResetDirection = 1 - SoftResetNeighborRequest_BOTH SoftResetNeighborRequest_SoftResetDirection = 2 + ResetPeerRequest_IN ResetPeerRequest_SoftResetDirection = 0 + ResetPeerRequest_OUT ResetPeerRequest_SoftResetDirection = 1 + ResetPeerRequest_BOTH ResetPeerRequest_SoftResetDirection = 2 ) -var SoftResetNeighborRequest_SoftResetDirection_name = map[int32]string{ +var ResetPeerRequest_SoftResetDirection_name = map[int32]string{ 0: "IN", 1: "OUT", 2: "BOTH", } -var SoftResetNeighborRequest_SoftResetDirection_value = map[string]int32{ +var ResetPeerRequest_SoftResetDirection_value = map[string]int32{ "IN": 0, "OUT": 1, "BOTH": 2, } -func (x SoftResetNeighborRequest_SoftResetDirection) String() string { - return proto.EnumName(SoftResetNeighborRequest_SoftResetDirection_name, int32(x)) +func (x ResetPeerRequest_SoftResetDirection) String() string { + return proto.EnumName(ResetPeerRequest_SoftResetDirection_name, int32(x)) } -func (SoftResetNeighborRequest_SoftResetDirection) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{23, 0} +func (ResetPeerRequest_SoftResetDirection) EnumDescriptor() ([]byte, []int) { + return fileDescriptor0, []int{10, 0} } type AddBmpRequest_MonitoringPolicy int32 @@ -686,7 +639,7 @@ func (x AddBmpRequest_MonitoringPolicy) String() string { return proto.EnumName(AddBmpRequest_MonitoringPolicy_name, int32(x)) } func (AddBmpRequest_MonitoringPolicy) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{39, 0} + return fileDescriptor0, []int{68, 0} } type RPKIValidation_State int32 @@ -714,7 +667,7 @@ var RPKIValidation_State_value = map[string]int32{ func (x RPKIValidation_State) String() string { return proto.EnumName(RPKIValidation_State_name, int32(x)) } -func (RPKIValidation_State) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{107, 0} } +func (RPKIValidation_State) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{70, 0} } type RPKIValidation_Reason int32 @@ -738,7 +691,7 @@ var RPKIValidation_Reason_value = map[string]int32{ func (x RPKIValidation_Reason) String() string { return proto.EnumName(RPKIValidation_Reason_name, int32(x)) } -func (RPKIValidation_Reason) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{107, 1} } +func (RPKIValidation_Reason) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{70, 1} } type PeerConf_RemovePrivateAs int32 @@ -762,9 +715,7 @@ var PeerConf_RemovePrivateAs_value = map[string]int32{ func (x PeerConf_RemovePrivateAs) String() string { return proto.EnumName(PeerConf_RemovePrivateAs_name, int32(x)) } -func (PeerConf_RemovePrivateAs) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{122, 0} -} +func (PeerConf_RemovePrivateAs) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{79, 0} } type PeerGroupConf_RemovePrivateAs int32 @@ -789,7 +740,7 @@ func (x PeerGroupConf_RemovePrivateAs) String() string { return proto.EnumName(PeerGroupConf_RemovePrivateAs_name, int32(x)) } func (PeerGroupConf_RemovePrivateAs) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{123, 0} + return fileDescriptor0, []int{80, 0} } type PeerGroupState_RemovePrivateAs int32 @@ -815,9 +766,45 @@ func (x PeerGroupState_RemovePrivateAs) String() string { return proto.EnumName(PeerGroupState_RemovePrivateAs_name, int32(x)) } func (PeerGroupState_RemovePrivateAs) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{124, 0} + return fileDescriptor0, []int{81, 0} +} + +type PeerState_SessionState int32 + +const ( + PeerState_UNKNOWN PeerState_SessionState = 0 + PeerState_IDLE PeerState_SessionState = 1 + PeerState_CONNECT PeerState_SessionState = 2 + PeerState_ACTIVE PeerState_SessionState = 3 + PeerState_OPENSENT PeerState_SessionState = 4 + PeerState_OPENCONFIRM PeerState_SessionState = 5 + PeerState_ESTABLISHED PeerState_SessionState = 6 +) + +var PeerState_SessionState_name = map[int32]string{ + 0: "UNKNOWN", + 1: "IDLE", + 2: "CONNECT", + 3: "ACTIVE", + 4: "OPENSENT", + 5: "OPENCONFIRM", + 6: "ESTABLISHED", +} +var PeerState_SessionState_value = map[string]int32{ + "UNKNOWN": 0, + "IDLE": 1, + "CONNECT": 2, + "ACTIVE": 3, + "OPENSENT": 4, + "OPENCONFIRM": 5, + "ESTABLISHED": 6, } +func (x PeerState_SessionState) String() string { + return proto.EnumName(PeerState_SessionState_name, int32(x)) +} +func (PeerState_SessionState) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{84, 0} } + type PeerState_AdminState int32 const ( @@ -840,7 +827,7 @@ var PeerState_AdminState_value = map[string]int32{ func (x PeerState_AdminState) String() string { return proto.EnumName(PeerState_AdminState_name, int32(x)) } -func (PeerState_AdminState) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{127, 0} } +func (PeerState_AdminState) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{84, 1} } type Conditions_RouteType int32 @@ -867,283 +854,323 @@ var Conditions_RouteType_value = map[string]int32{ func (x Conditions_RouteType) String() string { return proto.EnumName(Conditions_RouteType_name, int32(x)) } -func (Conditions_RouteType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{168, 0} } +func (Conditions_RouteType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{125, 0} } -type GetNeighborRequest struct { - EnableAdvertised bool `protobuf:"varint,1,opt,name=enableAdvertised" json:"enableAdvertised,omitempty"` - Address string `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"` +type StartBgpRequest struct { + Global *Global `protobuf:"bytes,1,opt,name=global" json:"global,omitempty"` } -func (m *GetNeighborRequest) Reset() { *m = GetNeighborRequest{} } -func (m *GetNeighborRequest) String() string { return proto.CompactTextString(m) } -func (*GetNeighborRequest) ProtoMessage() {} -func (*GetNeighborRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (m *StartBgpRequest) Reset() { *m = StartBgpRequest{} } +func (m *StartBgpRequest) String() string { return proto.CompactTextString(m) } +func (*StartBgpRequest) ProtoMessage() {} +func (*StartBgpRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } -func (m *GetNeighborRequest) GetEnableAdvertised() bool { +func (m *StartBgpRequest) GetGlobal() *Global { if m != nil { - return m.EnableAdvertised + return m.Global } - return false + return nil } -func (m *GetNeighborRequest) GetAddress() string { - if m != nil { - return m.Address - } - return "" +type StopBgpRequest struct { +} + +func (m *StopBgpRequest) Reset() { *m = StopBgpRequest{} } +func (m *StopBgpRequest) String() string { return proto.CompactTextString(m) } +func (*StopBgpRequest) ProtoMessage() {} +func (*StopBgpRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +type GetBgpRequest struct { } -type GetNeighborResponse struct { - Peers []*Peer `protobuf:"bytes,1,rep,name=peers" json:"peers,omitempty"` +func (m *GetBgpRequest) Reset() { *m = GetBgpRequest{} } +func (m *GetBgpRequest) String() string { return proto.CompactTextString(m) } +func (*GetBgpRequest) ProtoMessage() {} +func (*GetBgpRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } + +type GetBgpResponse struct { + Global *Global `protobuf:"bytes,1,opt,name=global" json:"global,omitempty"` } -func (m *GetNeighborResponse) Reset() { *m = GetNeighborResponse{} } -func (m *GetNeighborResponse) String() string { return proto.CompactTextString(m) } -func (*GetNeighborResponse) ProtoMessage() {} -func (*GetNeighborResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } +func (m *GetBgpResponse) Reset() { *m = GetBgpResponse{} } +func (m *GetBgpResponse) String() string { return proto.CompactTextString(m) } +func (*GetBgpResponse) ProtoMessage() {} +func (*GetBgpResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } -func (m *GetNeighborResponse) GetPeers() []*Peer { +func (m *GetBgpResponse) GetGlobal() *Global { if m != nil { - return m.Peers + return m.Global } return nil } -type Arguments struct { - Resource Resource `protobuf:"varint,1,opt,name=resource,enum=gobgpapi.Resource" json:"resource,omitempty"` - Family uint32 `protobuf:"varint,2,opt,name=family" json:"family,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` - Current bool `protobuf:"varint,4,opt,name=current" json:"current,omitempty"` +type AddPeerRequest struct { + Peer *Peer `protobuf:"bytes,1,opt,name=peer" json:"peer,omitempty"` } -func (m *Arguments) Reset() { *m = Arguments{} } -func (m *Arguments) String() string { return proto.CompactTextString(m) } -func (*Arguments) ProtoMessage() {} -func (*Arguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } +func (m *AddPeerRequest) Reset() { *m = AddPeerRequest{} } +func (m *AddPeerRequest) String() string { return proto.CompactTextString(m) } +func (*AddPeerRequest) ProtoMessage() {} +func (*AddPeerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } -func (m *Arguments) GetResource() Resource { +func (m *AddPeerRequest) GetPeer() *Peer { if m != nil { - return m.Resource + return m.Peer } - return Resource_GLOBAL + return nil } -func (m *Arguments) GetFamily() uint32 { - if m != nil { - return m.Family - } - return 0 +type DeletePeerRequest struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + Interface string `protobuf:"bytes,2,opt,name=interface" json:"interface,omitempty"` } -func (m *Arguments) GetName() string { +func (m *DeletePeerRequest) Reset() { *m = DeletePeerRequest{} } +func (m *DeletePeerRequest) String() string { return proto.CompactTextString(m) } +func (*DeletePeerRequest) ProtoMessage() {} +func (*DeletePeerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } + +func (m *DeletePeerRequest) GetAddress() string { if m != nil { - return m.Name + return m.Address } return "" } -func (m *Arguments) GetCurrent() bool { +func (m *DeletePeerRequest) GetInterface() string { if m != nil { - return m.Current + return m.Interface } - return false + return "" } -type AddPathRequest struct { - Resource Resource `protobuf:"varint,1,opt,name=resource,enum=gobgpapi.Resource" json:"resource,omitempty"` - VrfId string `protobuf:"bytes,2,opt,name=vrf_id,json=vrfId" json:"vrf_id,omitempty"` - Path *Path `protobuf:"bytes,3,opt,name=path" json:"path,omitempty"` +type ListPeerRequest struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + EnableAdvertised bool `protobuf:"varint,2,opt,name=enableAdvertised" json:"enableAdvertised,omitempty"` } -func (m *AddPathRequest) Reset() { *m = AddPathRequest{} } -func (m *AddPathRequest) String() string { return proto.CompactTextString(m) } -func (*AddPathRequest) ProtoMessage() {} -func (*AddPathRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } +func (m *ListPeerRequest) Reset() { *m = ListPeerRequest{} } +func (m *ListPeerRequest) String() string { return proto.CompactTextString(m) } +func (*ListPeerRequest) ProtoMessage() {} +func (*ListPeerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } -func (m *AddPathRequest) GetResource() Resource { +func (m *ListPeerRequest) GetAddress() string { if m != nil { - return m.Resource + return m.Address } - return Resource_GLOBAL + return "" } -func (m *AddPathRequest) GetVrfId() string { +func (m *ListPeerRequest) GetEnableAdvertised() bool { if m != nil { - return m.VrfId + return m.EnableAdvertised } - return "" + return false } -func (m *AddPathRequest) GetPath() *Path { +type ListPeerResponse struct { + Peer *Peer `protobuf:"bytes,1,opt,name=peer" json:"peer,omitempty"` +} + +func (m *ListPeerResponse) Reset() { *m = ListPeerResponse{} } +func (m *ListPeerResponse) String() string { return proto.CompactTextString(m) } +func (*ListPeerResponse) ProtoMessage() {} +func (*ListPeerResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } + +func (m *ListPeerResponse) GetPeer() *Peer { if m != nil { - return m.Path + return m.Peer } return nil } -type AddPathResponse struct { - Uuid []byte `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` +type UpdatePeerRequest struct { + Peer *Peer `protobuf:"bytes,1,opt,name=peer" json:"peer,omitempty"` + // Calls SoftResetIn after updating the peer configuration if needed. + DoSoftResetIn bool `protobuf:"varint,2,opt,name=do_soft_reset_in,json=doSoftResetIn" json:"do_soft_reset_in,omitempty"` } -func (m *AddPathResponse) Reset() { *m = AddPathResponse{} } -func (m *AddPathResponse) String() string { return proto.CompactTextString(m) } -func (*AddPathResponse) ProtoMessage() {} -func (*AddPathResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } +func (m *UpdatePeerRequest) Reset() { *m = UpdatePeerRequest{} } +func (m *UpdatePeerRequest) String() string { return proto.CompactTextString(m) } +func (*UpdatePeerRequest) ProtoMessage() {} +func (*UpdatePeerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } -func (m *AddPathResponse) GetUuid() []byte { +func (m *UpdatePeerRequest) GetPeer() *Peer { if m != nil { - return m.Uuid + return m.Peer } return nil } -type DeletePathRequest struct { - Resource Resource `protobuf:"varint,1,opt,name=resource,enum=gobgpapi.Resource" json:"resource,omitempty"` - VrfId string `protobuf:"bytes,2,opt,name=vrf_id,json=vrfId" json:"vrf_id,omitempty"` - Family uint32 `protobuf:"varint,3,opt,name=family" json:"family,omitempty"` - Path *Path `protobuf:"bytes,4,opt,name=path" json:"path,omitempty"` - Uuid []byte `protobuf:"bytes,5,opt,name=uuid,proto3" json:"uuid,omitempty"` +func (m *UpdatePeerRequest) GetDoSoftResetIn() bool { + if m != nil { + return m.DoSoftResetIn + } + return false } -func (m *DeletePathRequest) Reset() { *m = DeletePathRequest{} } -func (m *DeletePathRequest) String() string { return proto.CompactTextString(m) } -func (*DeletePathRequest) ProtoMessage() {} -func (*DeletePathRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } +type UpdatePeerResponse struct { + // Indicates whether calling SoftResetIn is required due to this update. If + // "true" is set, the client should call SoftResetIn manually. If + // "do_soft_reset_in = true" is set in the request, always returned with + // "false". + NeedsSoftResetIn bool `protobuf:"varint,1,opt,name=needs_soft_reset_in,json=needsSoftResetIn" json:"needs_soft_reset_in,omitempty"` +} -func (m *DeletePathRequest) GetResource() Resource { +func (m *UpdatePeerResponse) Reset() { *m = UpdatePeerResponse{} } +func (m *UpdatePeerResponse) String() string { return proto.CompactTextString(m) } +func (*UpdatePeerResponse) ProtoMessage() {} +func (*UpdatePeerResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } + +func (m *UpdatePeerResponse) GetNeedsSoftResetIn() bool { if m != nil { - return m.Resource + return m.NeedsSoftResetIn } - return Resource_GLOBAL + return false } -func (m *DeletePathRequest) GetVrfId() string { +type ResetPeerRequest struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + Communication string `protobuf:"bytes,2,opt,name=communication" json:"communication,omitempty"` + Soft bool `protobuf:"varint,3,opt,name=soft" json:"soft,omitempty"` + Direction ResetPeerRequest_SoftResetDirection `protobuf:"varint,4,opt,name=direction,enum=gobgpapi.ResetPeerRequest_SoftResetDirection" json:"direction,omitempty"` +} + +func (m *ResetPeerRequest) Reset() { *m = ResetPeerRequest{} } +func (m *ResetPeerRequest) String() string { return proto.CompactTextString(m) } +func (*ResetPeerRequest) ProtoMessage() {} +func (*ResetPeerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } + +func (m *ResetPeerRequest) GetAddress() string { if m != nil { - return m.VrfId + return m.Address } return "" } -func (m *DeletePathRequest) GetFamily() uint32 { +func (m *ResetPeerRequest) GetCommunication() string { if m != nil { - return m.Family + return m.Communication } - return 0 + return "" } -func (m *DeletePathRequest) GetPath() *Path { +func (m *ResetPeerRequest) GetSoft() bool { if m != nil { - return m.Path + return m.Soft } - return nil + return false } -func (m *DeletePathRequest) GetUuid() []byte { +func (m *ResetPeerRequest) GetDirection() ResetPeerRequest_SoftResetDirection { if m != nil { - return m.Uuid + return m.Direction } - return nil + return ResetPeerRequest_IN } -type DeletePathResponse struct { +type ShutdownPeerRequest struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + Communication string `protobuf:"bytes,2,opt,name=communication" json:"communication,omitempty"` } -func (m *DeletePathResponse) Reset() { *m = DeletePathResponse{} } -func (m *DeletePathResponse) String() string { return proto.CompactTextString(m) } -func (*DeletePathResponse) ProtoMessage() {} -func (*DeletePathResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } +func (m *ShutdownPeerRequest) Reset() { *m = ShutdownPeerRequest{} } +func (m *ShutdownPeerRequest) String() string { return proto.CompactTextString(m) } +func (*ShutdownPeerRequest) ProtoMessage() {} +func (*ShutdownPeerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } -type AddNeighborRequest struct { - Peer *Peer `protobuf:"bytes,1,opt,name=peer" json:"peer,omitempty"` +func (m *ShutdownPeerRequest) GetAddress() string { + if m != nil { + return m.Address + } + return "" } -func (m *AddNeighborRequest) Reset() { *m = AddNeighborRequest{} } -func (m *AddNeighborRequest) String() string { return proto.CompactTextString(m) } -func (*AddNeighborRequest) ProtoMessage() {} -func (*AddNeighborRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } - -func (m *AddNeighborRequest) GetPeer() *Peer { +func (m *ShutdownPeerRequest) GetCommunication() string { if m != nil { - return m.Peer + return m.Communication } - return nil + return "" } -type AddNeighborResponse struct { +type EnablePeerRequest struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` } -func (m *AddNeighborResponse) Reset() { *m = AddNeighborResponse{} } -func (m *AddNeighborResponse) String() string { return proto.CompactTextString(m) } -func (*AddNeighborResponse) ProtoMessage() {} -func (*AddNeighborResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } +func (m *EnablePeerRequest) Reset() { *m = EnablePeerRequest{} } +func (m *EnablePeerRequest) String() string { return proto.CompactTextString(m) } +func (*EnablePeerRequest) ProtoMessage() {} +func (*EnablePeerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } -type DeleteNeighborRequest struct { - Peer *Peer `protobuf:"bytes,1,opt,name=peer" json:"peer,omitempty"` +func (m *EnablePeerRequest) GetAddress() string { + if m != nil { + return m.Address + } + return "" +} + +type DisablePeerRequest struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + Communication string `protobuf:"bytes,2,opt,name=communication" json:"communication,omitempty"` } -func (m *DeleteNeighborRequest) Reset() { *m = DeleteNeighborRequest{} } -func (m *DeleteNeighborRequest) String() string { return proto.CompactTextString(m) } -func (*DeleteNeighborRequest) ProtoMessage() {} -func (*DeleteNeighborRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } +func (m *DisablePeerRequest) Reset() { *m = DisablePeerRequest{} } +func (m *DisablePeerRequest) String() string { return proto.CompactTextString(m) } +func (*DisablePeerRequest) ProtoMessage() {} +func (*DisablePeerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } -func (m *DeleteNeighborRequest) GetPeer() *Peer { +func (m *DisablePeerRequest) GetAddress() string { if m != nil { - return m.Peer + return m.Address } - return nil + return "" } -type DeleteNeighborResponse struct { +func (m *DisablePeerRequest) GetCommunication() string { + if m != nil { + return m.Communication + } + return "" } -func (m *DeleteNeighborResponse) Reset() { *m = DeleteNeighborResponse{} } -func (m *DeleteNeighborResponse) String() string { return proto.CompactTextString(m) } -func (*DeleteNeighborResponse) ProtoMessage() {} -func (*DeleteNeighborResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } - -type UpdateNeighborRequest struct { - Peer *Peer `protobuf:"bytes,1,opt,name=peer" json:"peer,omitempty"` - // Calls SoftResetIn after updating the neighbor configuration if needed. - DoSoftResetIn bool `protobuf:"varint,2,opt,name=do_soft_reset_in,json=doSoftResetIn" json:"do_soft_reset_in,omitempty"` +type MonitorPeerRequest struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + Current bool `protobuf:"varint,2,opt,name=current" json:"current,omitempty"` } -func (m *UpdateNeighborRequest) Reset() { *m = UpdateNeighborRequest{} } -func (m *UpdateNeighborRequest) String() string { return proto.CompactTextString(m) } -func (*UpdateNeighborRequest) ProtoMessage() {} -func (*UpdateNeighborRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } +func (m *MonitorPeerRequest) Reset() { *m = MonitorPeerRequest{} } +func (m *MonitorPeerRequest) String() string { return proto.CompactTextString(m) } +func (*MonitorPeerRequest) ProtoMessage() {} +func (*MonitorPeerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } -func (m *UpdateNeighborRequest) GetPeer() *Peer { +func (m *MonitorPeerRequest) GetAddress() string { if m != nil { - return m.Peer + return m.Address } - return nil + return "" } -func (m *UpdateNeighborRequest) GetDoSoftResetIn() bool { +func (m *MonitorPeerRequest) GetCurrent() bool { if m != nil { - return m.DoSoftResetIn + return m.Current } return false } -type UpdateNeighborResponse struct { - // Indicates whether calling SoftResetIn is required due to this update. If - // "true" is set, the client should call SoftResetIn manually. If - // "do_soft_reset_in = true" is set in the request, always returned with - // "false". - NeedsSoftResetIn bool `protobuf:"varint,1,opt,name=needs_soft_reset_in,json=needsSoftResetIn" json:"needs_soft_reset_in,omitempty"` +type MonitorPeerResponse struct { + Peer *Peer `protobuf:"bytes,1,opt,name=peer" json:"peer,omitempty"` } -func (m *UpdateNeighborResponse) Reset() { *m = UpdateNeighborResponse{} } -func (m *UpdateNeighborResponse) String() string { return proto.CompactTextString(m) } -func (*UpdateNeighborResponse) ProtoMessage() {} -func (*UpdateNeighborResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } +func (m *MonitorPeerResponse) Reset() { *m = MonitorPeerResponse{} } +func (m *MonitorPeerResponse) String() string { return proto.CompactTextString(m) } +func (*MonitorPeerResponse) ProtoMessage() {} +func (*MonitorPeerResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } -func (m *UpdateNeighborResponse) GetNeedsSoftResetIn() bool { +func (m *MonitorPeerResponse) GetPeer() *Peer { if m != nil { - return m.NeedsSoftResetIn + return m.Peer } - return false + return nil } type AddPeerGroupRequest struct { @@ -1153,7 +1180,7 @@ type AddPeerGroupRequest struct { func (m *AddPeerGroupRequest) Reset() { *m = AddPeerGroupRequest{} } func (m *AddPeerGroupRequest) String() string { return proto.CompactTextString(m) } func (*AddPeerGroupRequest) ProtoMessage() {} -func (*AddPeerGroupRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } +func (*AddPeerGroupRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } func (m *AddPeerGroupRequest) GetPeerGroup() *PeerGroup { if m != nil { @@ -1162,38 +1189,22 @@ func (m *AddPeerGroupRequest) GetPeerGroup() *PeerGroup { return nil } -type AddPeerGroupResponse struct { -} - -func (m *AddPeerGroupResponse) Reset() { *m = AddPeerGroupResponse{} } -func (m *AddPeerGroupResponse) String() string { return proto.CompactTextString(m) } -func (*AddPeerGroupResponse) ProtoMessage() {} -func (*AddPeerGroupResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } - type DeletePeerGroupRequest struct { - PeerGroup *PeerGroup `protobuf:"bytes,1,opt,name=peer_group,json=peerGroup" json:"peer_group,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` } func (m *DeletePeerGroupRequest) Reset() { *m = DeletePeerGroupRequest{} } func (m *DeletePeerGroupRequest) String() string { return proto.CompactTextString(m) } func (*DeletePeerGroupRequest) ProtoMessage() {} -func (*DeletePeerGroupRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } +func (*DeletePeerGroupRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } -func (m *DeletePeerGroupRequest) GetPeerGroup() *PeerGroup { +func (m *DeletePeerGroupRequest) GetName() string { if m != nil { - return m.PeerGroup + return m.Name } - return nil -} - -type DeletePeerGroupResponse struct { + return "" } -func (m *DeletePeerGroupResponse) Reset() { *m = DeletePeerGroupResponse{} } -func (m *DeletePeerGroupResponse) String() string { return proto.CompactTextString(m) } -func (*DeletePeerGroupResponse) ProtoMessage() {} -func (*DeletePeerGroupResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } - type UpdatePeerGroupRequest struct { PeerGroup *PeerGroup `protobuf:"bytes,1,opt,name=peer_group,json=peerGroup" json:"peer_group,omitempty"` DoSoftResetIn bool `protobuf:"varint,2,opt,name=do_soft_reset_in,json=doSoftResetIn" json:"do_soft_reset_in,omitempty"` @@ -1202,7 +1213,7 @@ type UpdatePeerGroupRequest struct { func (m *UpdatePeerGroupRequest) Reset() { *m = UpdatePeerGroupRequest{} } func (m *UpdatePeerGroupRequest) String() string { return proto.CompactTextString(m) } func (*UpdatePeerGroupRequest) ProtoMessage() {} -func (*UpdatePeerGroupRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } +func (*UpdatePeerGroupRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } func (m *UpdatePeerGroupRequest) GetPeerGroup() *PeerGroup { if m != nil { @@ -1225,7 +1236,7 @@ type UpdatePeerGroupResponse struct { func (m *UpdatePeerGroupResponse) Reset() { *m = UpdatePeerGroupResponse{} } func (m *UpdatePeerGroupResponse) String() string { return proto.CompactTextString(m) } func (*UpdatePeerGroupResponse) ProtoMessage() {} -func (*UpdatePeerGroupResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } +func (*UpdatePeerGroupResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } func (m *UpdatePeerGroupResponse) GetNeedsSoftResetIn() bool { if m != nil { @@ -1241,7 +1252,7 @@ type AddDynamicNeighborRequest struct { func (m *AddDynamicNeighborRequest) Reset() { *m = AddDynamicNeighborRequest{} } func (m *AddDynamicNeighborRequest) String() string { return proto.CompactTextString(m) } func (*AddDynamicNeighborRequest) ProtoMessage() {} -func (*AddDynamicNeighborRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } +func (*AddDynamicNeighborRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } func (m *AddDynamicNeighborRequest) GetDynamicNeighbor() *DynamicNeighbor { if m != nil { @@ -1250,1456 +1261,1158 @@ func (m *AddDynamicNeighborRequest) GetDynamicNeighbor() *DynamicNeighbor { return nil } -type AddDynamicNeighborResponse struct { -} - -func (m *AddDynamicNeighborResponse) Reset() { *m = AddDynamicNeighborResponse{} } -func (m *AddDynamicNeighborResponse) String() string { return proto.CompactTextString(m) } -func (*AddDynamicNeighborResponse) ProtoMessage() {} -func (*AddDynamicNeighborResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } - -type ResetNeighborRequest struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` - Communication string `protobuf:"bytes,2,opt,name=communication" json:"communication,omitempty"` +type AddPathRequest struct { + Resource Resource `protobuf:"varint,1,opt,name=resource,enum=gobgpapi.Resource" json:"resource,omitempty"` + VrfId string `protobuf:"bytes,2,opt,name=vrf_id,json=vrfId" json:"vrf_id,omitempty"` + Path *Path `protobuf:"bytes,3,opt,name=path" json:"path,omitempty"` } -func (m *ResetNeighborRequest) Reset() { *m = ResetNeighborRequest{} } -func (m *ResetNeighborRequest) String() string { return proto.CompactTextString(m) } -func (*ResetNeighborRequest) ProtoMessage() {} -func (*ResetNeighborRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } - -func (m *ResetNeighborRequest) GetAddress() string { - if m != nil { - return m.Address - } - return "" -} +func (m *AddPathRequest) Reset() { *m = AddPathRequest{} } +func (m *AddPathRequest) String() string { return proto.CompactTextString(m) } +func (*AddPathRequest) ProtoMessage() {} +func (*AddPathRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } -func (m *ResetNeighborRequest) GetCommunication() string { +func (m *AddPathRequest) GetResource() Resource { if m != nil { - return m.Communication + return m.Resource } - return "" -} - -type ResetNeighborResponse struct { -} - -func (m *ResetNeighborResponse) Reset() { *m = ResetNeighborResponse{} } -func (m *ResetNeighborResponse) String() string { return proto.CompactTextString(m) } -func (*ResetNeighborResponse) ProtoMessage() {} -func (*ResetNeighborResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } - -type SoftResetNeighborRequest struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` - Direction SoftResetNeighborRequest_SoftResetDirection `protobuf:"varint,2,opt,name=direction,enum=gobgpapi.SoftResetNeighborRequest_SoftResetDirection" json:"direction,omitempty"` + return Resource_GLOBAL } -func (m *SoftResetNeighborRequest) Reset() { *m = SoftResetNeighborRequest{} } -func (m *SoftResetNeighborRequest) String() string { return proto.CompactTextString(m) } -func (*SoftResetNeighborRequest) ProtoMessage() {} -func (*SoftResetNeighborRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } - -func (m *SoftResetNeighborRequest) GetAddress() string { +func (m *AddPathRequest) GetVrfId() string { if m != nil { - return m.Address + return m.VrfId } return "" } -func (m *SoftResetNeighborRequest) GetDirection() SoftResetNeighborRequest_SoftResetDirection { +func (m *AddPathRequest) GetPath() *Path { if m != nil { - return m.Direction + return m.Path } - return SoftResetNeighborRequest_IN -} - -type SoftResetNeighborResponse struct { + return nil } -func (m *SoftResetNeighborResponse) Reset() { *m = SoftResetNeighborResponse{} } -func (m *SoftResetNeighborResponse) String() string { return proto.CompactTextString(m) } -func (*SoftResetNeighborResponse) ProtoMessage() {} -func (*SoftResetNeighborResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } - -type ShutdownNeighborRequest struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` - Communication string `protobuf:"bytes,2,opt,name=communication" json:"communication,omitempty"` +type AddPathResponse struct { + Uuid []byte `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` } -func (m *ShutdownNeighborRequest) Reset() { *m = ShutdownNeighborRequest{} } -func (m *ShutdownNeighborRequest) String() string { return proto.CompactTextString(m) } -func (*ShutdownNeighborRequest) ProtoMessage() {} -func (*ShutdownNeighborRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } - -func (m *ShutdownNeighborRequest) GetAddress() string { - if m != nil { - return m.Address - } - return "" -} +func (m *AddPathResponse) Reset() { *m = AddPathResponse{} } +func (m *AddPathResponse) String() string { return proto.CompactTextString(m) } +func (*AddPathResponse) ProtoMessage() {} +func (*AddPathResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } -func (m *ShutdownNeighborRequest) GetCommunication() string { +func (m *AddPathResponse) GetUuid() []byte { if m != nil { - return m.Communication + return m.Uuid } - return "" -} - -type ShutdownNeighborResponse struct { + return nil } -func (m *ShutdownNeighborResponse) Reset() { *m = ShutdownNeighborResponse{} } -func (m *ShutdownNeighborResponse) String() string { return proto.CompactTextString(m) } -func (*ShutdownNeighborResponse) ProtoMessage() {} -func (*ShutdownNeighborResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } - -type EnableNeighborRequest struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` +type DeletePathRequest struct { + Resource Resource `protobuf:"varint,1,opt,name=resource,enum=gobgpapi.Resource" json:"resource,omitempty"` + VrfId string `protobuf:"bytes,2,opt,name=vrf_id,json=vrfId" json:"vrf_id,omitempty"` + Family uint32 `protobuf:"varint,3,opt,name=family" json:"family,omitempty"` + Path *Path `protobuf:"bytes,4,opt,name=path" json:"path,omitempty"` + Uuid []byte `protobuf:"bytes,5,opt,name=uuid,proto3" json:"uuid,omitempty"` } -func (m *EnableNeighborRequest) Reset() { *m = EnableNeighborRequest{} } -func (m *EnableNeighborRequest) String() string { return proto.CompactTextString(m) } -func (*EnableNeighborRequest) ProtoMessage() {} -func (*EnableNeighborRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } +func (m *DeletePathRequest) Reset() { *m = DeletePathRequest{} } +func (m *DeletePathRequest) String() string { return proto.CompactTextString(m) } +func (*DeletePathRequest) ProtoMessage() {} +func (*DeletePathRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } -func (m *EnableNeighborRequest) GetAddress() string { +func (m *DeletePathRequest) GetResource() Resource { if m != nil { - return m.Address + return m.Resource } - return "" -} - -type EnableNeighborResponse struct { -} - -func (m *EnableNeighborResponse) Reset() { *m = EnableNeighborResponse{} } -func (m *EnableNeighborResponse) String() string { return proto.CompactTextString(m) } -func (*EnableNeighborResponse) ProtoMessage() {} -func (*EnableNeighborResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } - -type DisableNeighborRequest struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` - Communication string `protobuf:"bytes,2,opt,name=communication" json:"communication,omitempty"` + return Resource_GLOBAL } -func (m *DisableNeighborRequest) Reset() { *m = DisableNeighborRequest{} } -func (m *DisableNeighborRequest) String() string { return proto.CompactTextString(m) } -func (*DisableNeighborRequest) ProtoMessage() {} -func (*DisableNeighborRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } - -func (m *DisableNeighborRequest) GetAddress() string { +func (m *DeletePathRequest) GetVrfId() string { if m != nil { - return m.Address + return m.VrfId } return "" } -func (m *DisableNeighborRequest) GetCommunication() string { +func (m *DeletePathRequest) GetFamily() uint32 { if m != nil { - return m.Communication + return m.Family } - return "" -} - -type DisableNeighborResponse struct { -} - -func (m *DisableNeighborResponse) Reset() { *m = DisableNeighborResponse{} } -func (m *DisableNeighborResponse) String() string { return proto.CompactTextString(m) } -func (*DisableNeighborResponse) ProtoMessage() {} -func (*DisableNeighborResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } - -type UpdatePolicyRequest struct { - Sets []*DefinedSet `protobuf:"bytes,1,rep,name=sets" json:"sets,omitempty"` - Policies []*Policy `protobuf:"bytes,2,rep,name=policies" json:"policies,omitempty"` + return 0 } -func (m *UpdatePolicyRequest) Reset() { *m = UpdatePolicyRequest{} } -func (m *UpdatePolicyRequest) String() string { return proto.CompactTextString(m) } -func (*UpdatePolicyRequest) ProtoMessage() {} -func (*UpdatePolicyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } - -func (m *UpdatePolicyRequest) GetSets() []*DefinedSet { +func (m *DeletePathRequest) GetPath() *Path { if m != nil { - return m.Sets + return m.Path } return nil } -func (m *UpdatePolicyRequest) GetPolicies() []*Policy { +func (m *DeletePathRequest) GetUuid() []byte { if m != nil { - return m.Policies + return m.Uuid } return nil } -type UpdatePolicyResponse struct { -} - -func (m *UpdatePolicyResponse) Reset() { *m = UpdatePolicyResponse{} } -func (m *UpdatePolicyResponse) String() string { return proto.CompactTextString(m) } -func (*UpdatePolicyResponse) ProtoMessage() {} -func (*UpdatePolicyResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } - -type EnableMrtRequest struct { - DumpType int32 `protobuf:"varint,1,opt,name=dump_type,json=dumpType" json:"dump_type,omitempty"` - Filename string `protobuf:"bytes,2,opt,name=filename" json:"filename,omitempty"` - Interval uint64 `protobuf:"varint,3,opt,name=interval" json:"interval,omitempty"` +type ListPathRequest struct { + Type Resource `protobuf:"varint,1,opt,name=type,enum=gobgpapi.Resource" json:"type,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Family uint32 `protobuf:"varint,3,opt,name=family" json:"family,omitempty"` + Prefixes []*TableLookupPrefix `protobuf:"bytes,4,rep,name=prefixes" json:"prefixes,omitempty"` } -func (m *EnableMrtRequest) Reset() { *m = EnableMrtRequest{} } -func (m *EnableMrtRequest) String() string { return proto.CompactTextString(m) } -func (*EnableMrtRequest) ProtoMessage() {} -func (*EnableMrtRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } +func (m *ListPathRequest) Reset() { *m = ListPathRequest{} } +func (m *ListPathRequest) String() string { return proto.CompactTextString(m) } +func (*ListPathRequest) ProtoMessage() {} +func (*ListPathRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } -func (m *EnableMrtRequest) GetDumpType() int32 { +func (m *ListPathRequest) GetType() Resource { if m != nil { - return m.DumpType + return m.Type } - return 0 + return Resource_GLOBAL } -func (m *EnableMrtRequest) GetFilename() string { +func (m *ListPathRequest) GetName() string { if m != nil { - return m.Filename + return m.Name } return "" } -func (m *EnableMrtRequest) GetInterval() uint64 { +func (m *ListPathRequest) GetFamily() uint32 { if m != nil { - return m.Interval + return m.Family } return 0 } -type EnableMrtResponse struct { +func (m *ListPathRequest) GetPrefixes() []*TableLookupPrefix { + if m != nil { + return m.Prefixes + } + return nil } -func (m *EnableMrtResponse) Reset() { *m = EnableMrtResponse{} } -func (m *EnableMrtResponse) String() string { return proto.CompactTextString(m) } -func (*EnableMrtResponse) ProtoMessage() {} -func (*EnableMrtResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } - -type DisableMrtRequest struct { +type ListPathResponse struct { + Destination *Destination `protobuf:"bytes,1,opt,name=destination" json:"destination,omitempty"` } -func (m *DisableMrtRequest) Reset() { *m = DisableMrtRequest{} } -func (m *DisableMrtRequest) String() string { return proto.CompactTextString(m) } -func (*DisableMrtRequest) ProtoMessage() {} -func (*DisableMrtRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } +func (m *ListPathResponse) Reset() { *m = ListPathResponse{} } +func (m *ListPathResponse) String() string { return proto.CompactTextString(m) } +func (*ListPathResponse) ProtoMessage() {} +func (*ListPathResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } -type DisableMrtResponse struct { +func (m *ListPathResponse) GetDestination() *Destination { + if m != nil { + return m.Destination + } + return nil } -func (m *DisableMrtResponse) Reset() { *m = DisableMrtResponse{} } -func (m *DisableMrtResponse) String() string { return proto.CompactTextString(m) } -func (*DisableMrtResponse) ProtoMessage() {} -func (*DisableMrtResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } - -type InjectMrtRequest struct { +type AddPathStreamRequest struct { Resource Resource `protobuf:"varint,1,opt,name=resource,enum=gobgpapi.Resource" json:"resource,omitempty"` VrfId string `protobuf:"bytes,2,opt,name=vrf_id,json=vrfId" json:"vrf_id,omitempty"` Paths []*Path `protobuf:"bytes,3,rep,name=paths" json:"paths,omitempty"` } -func (m *InjectMrtRequest) Reset() { *m = InjectMrtRequest{} } -func (m *InjectMrtRequest) String() string { return proto.CompactTextString(m) } -func (*InjectMrtRequest) ProtoMessage() {} -func (*InjectMrtRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } +func (m *AddPathStreamRequest) Reset() { *m = AddPathStreamRequest{} } +func (m *AddPathStreamRequest) String() string { return proto.CompactTextString(m) } +func (*AddPathStreamRequest) ProtoMessage() {} +func (*AddPathStreamRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } -func (m *InjectMrtRequest) GetResource() Resource { +func (m *AddPathStreamRequest) GetResource() Resource { if m != nil { return m.Resource } return Resource_GLOBAL } -func (m *InjectMrtRequest) GetVrfId() string { +func (m *AddPathStreamRequest) GetVrfId() string { if m != nil { return m.VrfId } return "" } -func (m *InjectMrtRequest) GetPaths() []*Path { +func (m *AddPathStreamRequest) GetPaths() []*Path { if m != nil { return m.Paths } return nil } -type InjectMrtResponse struct { +type GetTableRequest struct { + Type Resource `protobuf:"varint,1,opt,name=type,enum=gobgpapi.Resource" json:"type,omitempty"` + Family uint32 `protobuf:"varint,2,opt,name=family" json:"family,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` } -func (m *InjectMrtResponse) Reset() { *m = InjectMrtResponse{} } -func (m *InjectMrtResponse) String() string { return proto.CompactTextString(m) } -func (*InjectMrtResponse) ProtoMessage() {} -func (*InjectMrtResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } +func (m *GetTableRequest) Reset() { *m = GetTableRequest{} } +func (m *GetTableRequest) String() string { return proto.CompactTextString(m) } +func (*GetTableRequest) ProtoMessage() {} +func (*GetTableRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } -type AddBmpRequest struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` - Port uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` - Type AddBmpRequest_MonitoringPolicy `protobuf:"varint,3,opt,name=type,enum=gobgpapi.AddBmpRequest_MonitoringPolicy" json:"type,omitempty"` -} - -func (m *AddBmpRequest) Reset() { *m = AddBmpRequest{} } -func (m *AddBmpRequest) String() string { return proto.CompactTextString(m) } -func (*AddBmpRequest) ProtoMessage() {} -func (*AddBmpRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } - -func (m *AddBmpRequest) GetAddress() string { +func (m *GetTableRequest) GetType() Resource { if m != nil { - return m.Address + return m.Type } - return "" + return Resource_GLOBAL } -func (m *AddBmpRequest) GetPort() uint32 { +func (m *GetTableRequest) GetFamily() uint32 { if m != nil { - return m.Port + return m.Family } return 0 } -func (m *AddBmpRequest) GetType() AddBmpRequest_MonitoringPolicy { +func (m *GetTableRequest) GetName() string { if m != nil { - return m.Type + return m.Name } - return AddBmpRequest_PRE -} - -type AddBmpResponse struct { + return "" } -func (m *AddBmpResponse) Reset() { *m = AddBmpResponse{} } -func (m *AddBmpResponse) String() string { return proto.CompactTextString(m) } -func (*AddBmpResponse) ProtoMessage() {} -func (*AddBmpResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } - -type DeleteBmpRequest struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` - Port uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` +type GetTableResponse struct { + NumDestination uint64 `protobuf:"varint,4,opt,name=num_destination,json=numDestination" json:"num_destination,omitempty"` + NumPath uint64 `protobuf:"varint,5,opt,name=num_path,json=numPath" json:"num_path,omitempty"` + NumAccepted uint64 `protobuf:"varint,6,opt,name=num_accepted,json=numAccepted" json:"num_accepted,omitempty"` } -func (m *DeleteBmpRequest) Reset() { *m = DeleteBmpRequest{} } -func (m *DeleteBmpRequest) String() string { return proto.CompactTextString(m) } -func (*DeleteBmpRequest) ProtoMessage() {} -func (*DeleteBmpRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} } +func (m *GetTableResponse) Reset() { *m = GetTableResponse{} } +func (m *GetTableResponse) String() string { return proto.CompactTextString(m) } +func (*GetTableResponse) ProtoMessage() {} +func (*GetTableResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } -func (m *DeleteBmpRequest) GetAddress() string { +func (m *GetTableResponse) GetNumDestination() uint64 { if m != nil { - return m.Address - } - return "" -} - -func (m *DeleteBmpRequest) GetPort() uint32 { - if m != nil { - return m.Port + return m.NumDestination } return 0 } -type DeleteBmpResponse struct { -} - -func (m *DeleteBmpResponse) Reset() { *m = DeleteBmpResponse{} } -func (m *DeleteBmpResponse) String() string { return proto.CompactTextString(m) } -func (*DeleteBmpResponse) ProtoMessage() {} -func (*DeleteBmpResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} } - -type MonitorRibRequest struct { - Table *Table `protobuf:"bytes,1,opt,name=table" json:"table,omitempty"` - Current bool `protobuf:"varint,2,opt,name=current" json:"current,omitempty"` -} - -func (m *MonitorRibRequest) Reset() { *m = MonitorRibRequest{} } -func (m *MonitorRibRequest) String() string { return proto.CompactTextString(m) } -func (*MonitorRibRequest) ProtoMessage() {} -func (*MonitorRibRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} } - -func (m *MonitorRibRequest) GetTable() *Table { +func (m *GetTableResponse) GetNumPath() uint64 { if m != nil { - return m.Table + return m.NumPath } - return nil + return 0 } -func (m *MonitorRibRequest) GetCurrent() bool { +func (m *GetTableResponse) GetNumAccepted() uint64 { if m != nil { - return m.Current + return m.NumAccepted } - return false + return 0 } -type RPKIConf struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` - RemotePort string `protobuf:"bytes,2,opt,name=remote_port,json=remotePort" json:"remote_port,omitempty"` +type MonitorTableRequest struct { + Type Resource `protobuf:"varint,1,opt,name=type,enum=gobgpapi.Resource" json:"type,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Family uint32 `protobuf:"varint,3,opt,name=family" json:"family,omitempty"` + Current bool `protobuf:"varint,4,opt,name=current" json:"current,omitempty"` + PostPolicy bool `protobuf:"varint,5,opt,name=post_policy,json=postPolicy" json:"post_policy,omitempty"` } -func (m *RPKIConf) Reset() { *m = RPKIConf{} } -func (m *RPKIConf) String() string { return proto.CompactTextString(m) } -func (*RPKIConf) ProtoMessage() {} -func (*RPKIConf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} } +func (m *MonitorTableRequest) Reset() { *m = MonitorTableRequest{} } +func (m *MonitorTableRequest) String() string { return proto.CompactTextString(m) } +func (*MonitorTableRequest) ProtoMessage() {} +func (*MonitorTableRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } -func (m *RPKIConf) GetAddress() string { +func (m *MonitorTableRequest) GetType() Resource { if m != nil { - return m.Address + return m.Type } - return "" + return Resource_GLOBAL } -func (m *RPKIConf) GetRemotePort() string { +func (m *MonitorTableRequest) GetName() string { if m != nil { - return m.RemotePort + return m.Name } return "" } -type RPKIState struct { - Uptime int64 `protobuf:"varint,1,opt,name=uptime" json:"uptime,omitempty"` - Downtime int64 `protobuf:"varint,2,opt,name=downtime" json:"downtime,omitempty"` - Up bool `protobuf:"varint,3,opt,name=up" json:"up,omitempty"` - RecordIpv4 uint32 `protobuf:"varint,4,opt,name=record_ipv4,json=recordIpv4" json:"record_ipv4,omitempty"` - RecordIpv6 uint32 `protobuf:"varint,5,opt,name=record_ipv6,json=recordIpv6" json:"record_ipv6,omitempty"` - PrefixIpv4 uint32 `protobuf:"varint,6,opt,name=prefix_ipv4,json=prefixIpv4" json:"prefix_ipv4,omitempty"` - PrefixIpv6 uint32 `protobuf:"varint,7,opt,name=prefix_ipv6,json=prefixIpv6" json:"prefix_ipv6,omitempty"` - Serial uint32 `protobuf:"varint,8,opt,name=serial" json:"serial,omitempty"` - ReceivedIpv4 int64 `protobuf:"varint,9,opt,name=received_ipv4,json=receivedIpv4" json:"received_ipv4,omitempty"` - ReceivedIpv6 int64 `protobuf:"varint,10,opt,name=received_ipv6,json=receivedIpv6" json:"received_ipv6,omitempty"` - SerialNotify int64 `protobuf:"varint,11,opt,name=serial_notify,json=serialNotify" json:"serial_notify,omitempty"` - CacheReset int64 `protobuf:"varint,12,opt,name=cache_reset,json=cacheReset" json:"cache_reset,omitempty"` - CacheResponse int64 `protobuf:"varint,13,opt,name=cache_response,json=cacheResponse" json:"cache_response,omitempty"` - EndOfData int64 `protobuf:"varint,14,opt,name=end_of_data,json=endOfData" json:"end_of_data,omitempty"` - Error int64 `protobuf:"varint,15,opt,name=error" json:"error,omitempty"` - SerialQuery int64 `protobuf:"varint,16,opt,name=serial_query,json=serialQuery" json:"serial_query,omitempty"` - ResetQuery int64 `protobuf:"varint,17,opt,name=reset_query,json=resetQuery" json:"reset_query,omitempty"` -} - -func (m *RPKIState) Reset() { *m = RPKIState{} } -func (m *RPKIState) String() string { return proto.CompactTextString(m) } -func (*RPKIState) ProtoMessage() {} -func (*RPKIState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} } - -func (m *RPKIState) GetUptime() int64 { +func (m *MonitorTableRequest) GetFamily() uint32 { if m != nil { - return m.Uptime + return m.Family } return 0 } -func (m *RPKIState) GetDowntime() int64 { +func (m *MonitorTableRequest) GetCurrent() bool { if m != nil { - return m.Downtime + return m.Current } - return 0 + return false } -func (m *RPKIState) GetUp() bool { +func (m *MonitorTableRequest) GetPostPolicy() bool { if m != nil { - return m.Up + return m.PostPolicy } return false } -func (m *RPKIState) GetRecordIpv4() uint32 { - if m != nil { - return m.RecordIpv4 - } - return 0 +type MonitorTableResponse struct { + Path *Path `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"` } -func (m *RPKIState) GetRecordIpv6() uint32 { - if m != nil { - return m.RecordIpv6 - } - return 0 -} +func (m *MonitorTableResponse) Reset() { *m = MonitorTableResponse{} } +func (m *MonitorTableResponse) String() string { return proto.CompactTextString(m) } +func (*MonitorTableResponse) ProtoMessage() {} +func (*MonitorTableResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } -func (m *RPKIState) GetPrefixIpv4() uint32 { +func (m *MonitorTableResponse) GetPath() *Path { if m != nil { - return m.PrefixIpv4 + return m.Path } - return 0 + return nil } -func (m *RPKIState) GetPrefixIpv6() uint32 { - if m != nil { - return m.PrefixIpv6 - } - return 0 +type AddVrfRequest struct { + Vrf *Vrf `protobuf:"bytes,1,opt,name=vrf" json:"vrf,omitempty"` } -func (m *RPKIState) GetSerial() uint32 { - if m != nil { - return m.Serial - } - return 0 -} +func (m *AddVrfRequest) Reset() { *m = AddVrfRequest{} } +func (m *AddVrfRequest) String() string { return proto.CompactTextString(m) } +func (*AddVrfRequest) ProtoMessage() {} +func (*AddVrfRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } -func (m *RPKIState) GetReceivedIpv4() int64 { +func (m *AddVrfRequest) GetVrf() *Vrf { if m != nil { - return m.ReceivedIpv4 + return m.Vrf } - return 0 + return nil } -func (m *RPKIState) GetReceivedIpv6() int64 { - if m != nil { - return m.ReceivedIpv6 - } - return 0 +type DeleteVrfRequest struct { + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` } -func (m *RPKIState) GetSerialNotify() int64 { - if m != nil { - return m.SerialNotify - } - return 0 -} +func (m *DeleteVrfRequest) Reset() { *m = DeleteVrfRequest{} } +func (m *DeleteVrfRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteVrfRequest) ProtoMessage() {} +func (*DeleteVrfRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } -func (m *RPKIState) GetCacheReset() int64 { +func (m *DeleteVrfRequest) GetName() string { if m != nil { - return m.CacheReset + return m.Name } - return 0 + return "" } -func (m *RPKIState) GetCacheResponse() int64 { - if m != nil { - return m.CacheResponse - } - return 0 +type ListVrfRequest struct { + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` } -func (m *RPKIState) GetEndOfData() int64 { - if m != nil { - return m.EndOfData - } - return 0 -} +func (m *ListVrfRequest) Reset() { *m = ListVrfRequest{} } +func (m *ListVrfRequest) String() string { return proto.CompactTextString(m) } +func (*ListVrfRequest) ProtoMessage() {} +func (*ListVrfRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } -func (m *RPKIState) GetError() int64 { +func (m *ListVrfRequest) GetName() string { if m != nil { - return m.Error + return m.Name } - return 0 + return "" } -func (m *RPKIState) GetSerialQuery() int64 { - if m != nil { - return m.SerialQuery - } - return 0 +type ListVrfResponse struct { + Vrf *Vrf `protobuf:"bytes,1,opt,name=vrf" json:"vrf,omitempty"` } -func (m *RPKIState) GetResetQuery() int64 { +func (m *ListVrfResponse) Reset() { *m = ListVrfResponse{} } +func (m *ListVrfResponse) String() string { return proto.CompactTextString(m) } +func (*ListVrfResponse) ProtoMessage() {} +func (*ListVrfResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } + +func (m *ListVrfResponse) GetVrf() *Vrf { if m != nil { - return m.ResetQuery + return m.Vrf } - return 0 + return nil } -type Rpki struct { - Conf *RPKIConf `protobuf:"bytes,1,opt,name=conf" json:"conf,omitempty"` - State *RPKIState `protobuf:"bytes,2,opt,name=state" json:"state,omitempty"` +type AddPolicyRequest struct { + Policy *Policy `protobuf:"bytes,1,opt,name=policy" json:"policy,omitempty"` + // if this flag is set, gobgpd won't define new statements + // but refer existing statements using statement's names in this arguments. + ReferExistingStatements bool `protobuf:"varint,2,opt,name=refer_existing_statements,json=referExistingStatements" json:"refer_existing_statements,omitempty"` } -func (m *Rpki) Reset() { *m = Rpki{} } -func (m *Rpki) String() string { return proto.CompactTextString(m) } -func (*Rpki) ProtoMessage() {} -func (*Rpki) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} } +func (m *AddPolicyRequest) Reset() { *m = AddPolicyRequest{} } +func (m *AddPolicyRequest) String() string { return proto.CompactTextString(m) } +func (*AddPolicyRequest) ProtoMessage() {} +func (*AddPolicyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } -func (m *Rpki) GetConf() *RPKIConf { +func (m *AddPolicyRequest) GetPolicy() *Policy { if m != nil { - return m.Conf + return m.Policy } return nil } -func (m *Rpki) GetState() *RPKIState { +func (m *AddPolicyRequest) GetReferExistingStatements() bool { if m != nil { - return m.State + return m.ReferExistingStatements } - return nil + return false } -type GetRpkiRequest struct { - Family uint32 `protobuf:"varint,1,opt,name=family" json:"family,omitempty"` +type DeletePolicyRequest struct { + Policy *Policy `protobuf:"bytes,1,opt,name=policy" json:"policy,omitempty"` + // if this flag is set, gobgpd won't delete any statements + // even if some statements get not used by any policy by this operation. + PreserveStatements bool `protobuf:"varint,2,opt,name=preserve_statements,json=preserveStatements" json:"preserve_statements,omitempty"` + All bool `protobuf:"varint,3,opt,name=all" json:"all,omitempty"` } -func (m *GetRpkiRequest) Reset() { *m = GetRpkiRequest{} } -func (m *GetRpkiRequest) String() string { return proto.CompactTextString(m) } -func (*GetRpkiRequest) ProtoMessage() {} -func (*GetRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} } +func (m *DeletePolicyRequest) Reset() { *m = DeletePolicyRequest{} } +func (m *DeletePolicyRequest) String() string { return proto.CompactTextString(m) } +func (*DeletePolicyRequest) ProtoMessage() {} +func (*DeletePolicyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } -func (m *GetRpkiRequest) GetFamily() uint32 { +func (m *DeletePolicyRequest) GetPolicy() *Policy { if m != nil { - return m.Family + return m.Policy } - return 0 + return nil } -type GetRpkiResponse struct { - Servers []*Rpki `protobuf:"bytes,1,rep,name=servers" json:"servers,omitempty"` +func (m *DeletePolicyRequest) GetPreserveStatements() bool { + if m != nil { + return m.PreserveStatements + } + return false } -func (m *GetRpkiResponse) Reset() { *m = GetRpkiResponse{} } -func (m *GetRpkiResponse) String() string { return proto.CompactTextString(m) } -func (*GetRpkiResponse) ProtoMessage() {} -func (*GetRpkiResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} } - -func (m *GetRpkiResponse) GetServers() []*Rpki { +func (m *DeletePolicyRequest) GetAll() bool { if m != nil { - return m.Servers + return m.All } - return nil + return false } -type AddRpkiRequest struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` - Port uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` - Lifetime int64 `protobuf:"varint,3,opt,name=lifetime" json:"lifetime,omitempty"` +type ListPolicyRequest struct { + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` } -func (m *AddRpkiRequest) Reset() { *m = AddRpkiRequest{} } -func (m *AddRpkiRequest) String() string { return proto.CompactTextString(m) } -func (*AddRpkiRequest) ProtoMessage() {} -func (*AddRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} } +func (m *ListPolicyRequest) Reset() { *m = ListPolicyRequest{} } +func (m *ListPolicyRequest) String() string { return proto.CompactTextString(m) } +func (*ListPolicyRequest) ProtoMessage() {} +func (*ListPolicyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } -func (m *AddRpkiRequest) GetAddress() string { +func (m *ListPolicyRequest) GetName() string { if m != nil { - return m.Address + return m.Name } return "" } -func (m *AddRpkiRequest) GetPort() uint32 { - if m != nil { - return m.Port - } - return 0 +type ListPolicyResponse struct { + Policy *Policy `protobuf:"bytes,1,opt,name=policy" json:"policy,omitempty"` } -func (m *AddRpkiRequest) GetLifetime() int64 { +func (m *ListPolicyResponse) Reset() { *m = ListPolicyResponse{} } +func (m *ListPolicyResponse) String() string { return proto.CompactTextString(m) } +func (*ListPolicyResponse) ProtoMessage() {} +func (*ListPolicyResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } + +func (m *ListPolicyResponse) GetPolicy() *Policy { if m != nil { - return m.Lifetime + return m.Policy } - return 0 -} - -type AddRpkiResponse struct { + return nil } -func (m *AddRpkiResponse) Reset() { *m = AddRpkiResponse{} } -func (m *AddRpkiResponse) String() string { return proto.CompactTextString(m) } -func (*AddRpkiResponse) ProtoMessage() {} -func (*AddRpkiResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} } - -type DeleteRpkiRequest struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` - Port uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` +type ReplacePolicyRequest struct { + Policy *Policy `protobuf:"bytes,1,opt,name=policy" json:"policy,omitempty"` + // if this flag is set, gobgpd won't define new statements + // but refer existing statements using statement's names in this arguments. + ReferExistingStatements bool `protobuf:"varint,2,opt,name=refer_existing_statements,json=referExistingStatements" json:"refer_existing_statements,omitempty"` + // if this flag is set, gobgpd won't delete any statements + // even if some statements get not used by any policy by this operation. + PreserveStatements bool `protobuf:"varint,3,opt,name=preserve_statements,json=preserveStatements" json:"preserve_statements,omitempty"` } -func (m *DeleteRpkiRequest) Reset() { *m = DeleteRpkiRequest{} } -func (m *DeleteRpkiRequest) String() string { return proto.CompactTextString(m) } -func (*DeleteRpkiRequest) ProtoMessage() {} -func (*DeleteRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} } +func (m *ReplacePolicyRequest) Reset() { *m = ReplacePolicyRequest{} } +func (m *ReplacePolicyRequest) String() string { return proto.CompactTextString(m) } +func (*ReplacePolicyRequest) ProtoMessage() {} +func (*ReplacePolicyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } -func (m *DeleteRpkiRequest) GetAddress() string { +func (m *ReplacePolicyRequest) GetPolicy() *Policy { if m != nil { - return m.Address + return m.Policy } - return "" + return nil } -func (m *DeleteRpkiRequest) GetPort() uint32 { +func (m *ReplacePolicyRequest) GetReferExistingStatements() bool { if m != nil { - return m.Port + return m.ReferExistingStatements } - return 0 -} - -type DeleteRpkiResponse struct { -} - -func (m *DeleteRpkiResponse) Reset() { *m = DeleteRpkiResponse{} } -func (m *DeleteRpkiResponse) String() string { return proto.CompactTextString(m) } -func (*DeleteRpkiResponse) ProtoMessage() {} -func (*DeleteRpkiResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} } - -type EnableRpkiRequest struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + return false } -func (m *EnableRpkiRequest) Reset() { *m = EnableRpkiRequest{} } -func (m *EnableRpkiRequest) String() string { return proto.CompactTextString(m) } -func (*EnableRpkiRequest) ProtoMessage() {} -func (*EnableRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} } - -func (m *EnableRpkiRequest) GetAddress() string { +func (m *ReplacePolicyRequest) GetPreserveStatements() bool { if m != nil { - return m.Address + return m.PreserveStatements } - return "" -} - -type EnableRpkiResponse struct { + return false } -func (m *EnableRpkiResponse) Reset() { *m = EnableRpkiResponse{} } -func (m *EnableRpkiResponse) String() string { return proto.CompactTextString(m) } -func (*EnableRpkiResponse) ProtoMessage() {} -func (*EnableRpkiResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} } - -type DisableRpkiRequest struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` +type UpdatePolicyRequest struct { + Sets []*DefinedSet `protobuf:"bytes,1,rep,name=sets" json:"sets,omitempty"` + Policies []*Policy `protobuf:"bytes,2,rep,name=policies" json:"policies,omitempty"` } -func (m *DisableRpkiRequest) Reset() { *m = DisableRpkiRequest{} } -func (m *DisableRpkiRequest) String() string { return proto.CompactTextString(m) } -func (*DisableRpkiRequest) ProtoMessage() {} -func (*DisableRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} } +func (m *UpdatePolicyRequest) Reset() { *m = UpdatePolicyRequest{} } +func (m *UpdatePolicyRequest) String() string { return proto.CompactTextString(m) } +func (*UpdatePolicyRequest) ProtoMessage() {} +func (*UpdatePolicyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } -func (m *DisableRpkiRequest) GetAddress() string { +func (m *UpdatePolicyRequest) GetSets() []*DefinedSet { if m != nil { - return m.Address + return m.Sets } - return "" -} - -type DisableRpkiResponse struct { -} - -func (m *DisableRpkiResponse) Reset() { *m = DisableRpkiResponse{} } -func (m *DisableRpkiResponse) String() string { return proto.CompactTextString(m) } -func (*DisableRpkiResponse) ProtoMessage() {} -func (*DisableRpkiResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} } - -type ResetRpkiRequest struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + return nil } -func (m *ResetRpkiRequest) Reset() { *m = ResetRpkiRequest{} } -func (m *ResetRpkiRequest) String() string { return proto.CompactTextString(m) } -func (*ResetRpkiRequest) ProtoMessage() {} -func (*ResetRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} } - -func (m *ResetRpkiRequest) GetAddress() string { +func (m *UpdatePolicyRequest) GetPolicies() []*Policy { if m != nil { - return m.Address + return m.Policies } - return "" -} - -type ResetRpkiResponse struct { + return nil } -func (m *ResetRpkiResponse) Reset() { *m = ResetRpkiResponse{} } -func (m *ResetRpkiResponse) String() string { return proto.CompactTextString(m) } -func (*ResetRpkiResponse) ProtoMessage() {} -func (*ResetRpkiResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} } - -type SoftResetRpkiRequest struct { - Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` +type AddDefinedSetRequest struct { + Set *DefinedSet `protobuf:"bytes,1,opt,name=set" json:"set,omitempty"` } -func (m *SoftResetRpkiRequest) Reset() { *m = SoftResetRpkiRequest{} } -func (m *SoftResetRpkiRequest) String() string { return proto.CompactTextString(m) } -func (*SoftResetRpkiRequest) ProtoMessage() {} -func (*SoftResetRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} } +func (m *AddDefinedSetRequest) Reset() { *m = AddDefinedSetRequest{} } +func (m *AddDefinedSetRequest) String() string { return proto.CompactTextString(m) } +func (*AddDefinedSetRequest) ProtoMessage() {} +func (*AddDefinedSetRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} } -func (m *SoftResetRpkiRequest) GetAddress() string { +func (m *AddDefinedSetRequest) GetSet() *DefinedSet { if m != nil { - return m.Address + return m.Set } - return "" -} - -type SoftResetRpkiResponse struct { + return nil } -func (m *SoftResetRpkiResponse) Reset() { *m = SoftResetRpkiResponse{} } -func (m *SoftResetRpkiResponse) String() string { return proto.CompactTextString(m) } -func (*SoftResetRpkiResponse) ProtoMessage() {} -func (*SoftResetRpkiResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} } - -type EnableZebraRequest struct { - Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` - RouteTypes []string `protobuf:"bytes,2,rep,name=route_types,json=routeTypes" json:"route_types,omitempty"` - Version uint32 `protobuf:"varint,3,opt,name=version" json:"version,omitempty"` - NexthopTriggerEnable bool `protobuf:"varint,4,opt,name=nexthop_trigger_enable,json=nexthopTriggerEnable" json:"nexthop_trigger_enable,omitempty"` - NexthopTriggerDelay uint32 `protobuf:"varint,5,opt,name=nexthop_trigger_delay,json=nexthopTriggerDelay" json:"nexthop_trigger_delay,omitempty"` +type DeleteDefinedSetRequest struct { + Set *DefinedSet `protobuf:"bytes,1,opt,name=set" json:"set,omitempty"` + All bool `protobuf:"varint,2,opt,name=all" json:"all,omitempty"` } -func (m *EnableZebraRequest) Reset() { *m = EnableZebraRequest{} } -func (m *EnableZebraRequest) String() string { return proto.CompactTextString(m) } -func (*EnableZebraRequest) ProtoMessage() {} -func (*EnableZebraRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} } +func (m *DeleteDefinedSetRequest) Reset() { *m = DeleteDefinedSetRequest{} } +func (m *DeleteDefinedSetRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteDefinedSetRequest) ProtoMessage() {} +func (*DeleteDefinedSetRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} } -func (m *EnableZebraRequest) GetUrl() string { +func (m *DeleteDefinedSetRequest) GetSet() *DefinedSet { if m != nil { - return m.Url + return m.Set } - return "" + return nil } -func (m *EnableZebraRequest) GetRouteTypes() []string { +func (m *DeleteDefinedSetRequest) GetAll() bool { if m != nil { - return m.RouteTypes + return m.All } - return nil + return false } -func (m *EnableZebraRequest) GetVersion() uint32 { - if m != nil { - return m.Version - } - return 0 +type ListDefinedSetRequest struct { + Type DefinedType `protobuf:"varint,1,opt,name=type,enum=gobgpapi.DefinedType" json:"type,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` } -func (m *EnableZebraRequest) GetNexthopTriggerEnable() bool { +func (m *ListDefinedSetRequest) Reset() { *m = ListDefinedSetRequest{} } +func (m *ListDefinedSetRequest) String() string { return proto.CompactTextString(m) } +func (*ListDefinedSetRequest) ProtoMessage() {} +func (*ListDefinedSetRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} } + +func (m *ListDefinedSetRequest) GetType() DefinedType { if m != nil { - return m.NexthopTriggerEnable + return m.Type } - return false + return DefinedType_PREFIX } -func (m *EnableZebraRequest) GetNexthopTriggerDelay() uint32 { +func (m *ListDefinedSetRequest) GetName() string { if m != nil { - return m.NexthopTriggerDelay + return m.Name } - return 0 + return "" } -type EnableZebraResponse struct { +type ListDefinedSetResponse struct { + Set *DefinedSet `protobuf:"bytes,1,opt,name=set" json:"set,omitempty"` } -func (m *EnableZebraResponse) Reset() { *m = EnableZebraResponse{} } -func (m *EnableZebraResponse) String() string { return proto.CompactTextString(m) } -func (*EnableZebraResponse) ProtoMessage() {} -func (*EnableZebraResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} } +func (m *ListDefinedSetResponse) Reset() { *m = ListDefinedSetResponse{} } +func (m *ListDefinedSetResponse) String() string { return proto.CompactTextString(m) } +func (*ListDefinedSetResponse) ProtoMessage() {} +func (*ListDefinedSetResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} } -type GetVrfRequest struct { +func (m *ListDefinedSetResponse) GetSet() *DefinedSet { + if m != nil { + return m.Set + } + return nil } -func (m *GetVrfRequest) Reset() { *m = GetVrfRequest{} } -func (m *GetVrfRequest) String() string { return proto.CompactTextString(m) } -func (*GetVrfRequest) ProtoMessage() {} -func (*GetVrfRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} } - -type GetVrfResponse struct { - Vrfs []*Vrf `protobuf:"bytes,1,rep,name=vrfs" json:"vrfs,omitempty"` +type ReplaceDefinedSetRequest struct { + Set *DefinedSet `protobuf:"bytes,1,opt,name=set" json:"set,omitempty"` } -func (m *GetVrfResponse) Reset() { *m = GetVrfResponse{} } -func (m *GetVrfResponse) String() string { return proto.CompactTextString(m) } -func (*GetVrfResponse) ProtoMessage() {} -func (*GetVrfResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} } +func (m *ReplaceDefinedSetRequest) Reset() { *m = ReplaceDefinedSetRequest{} } +func (m *ReplaceDefinedSetRequest) String() string { return proto.CompactTextString(m) } +func (*ReplaceDefinedSetRequest) ProtoMessage() {} +func (*ReplaceDefinedSetRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} } -func (m *GetVrfResponse) GetVrfs() []*Vrf { +func (m *ReplaceDefinedSetRequest) GetSet() *DefinedSet { if m != nil { - return m.Vrfs + return m.Set } return nil } -type AddVrfRequest struct { - Vrf *Vrf `protobuf:"bytes,1,opt,name=vrf" json:"vrf,omitempty"` +type AddStatementRequest struct { + Statement *Statement `protobuf:"bytes,1,opt,name=statement" json:"statement,omitempty"` } -func (m *AddVrfRequest) Reset() { *m = AddVrfRequest{} } -func (m *AddVrfRequest) String() string { return proto.CompactTextString(m) } -func (*AddVrfRequest) ProtoMessage() {} -func (*AddVrfRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} } +func (m *AddStatementRequest) Reset() { *m = AddStatementRequest{} } +func (m *AddStatementRequest) String() string { return proto.CompactTextString(m) } +func (*AddStatementRequest) ProtoMessage() {} +func (*AddStatementRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} } -func (m *AddVrfRequest) GetVrf() *Vrf { +func (m *AddStatementRequest) GetStatement() *Statement { if m != nil { - return m.Vrf + return m.Statement } return nil } -type AddVrfResponse struct { -} - -func (m *AddVrfResponse) Reset() { *m = AddVrfResponse{} } -func (m *AddVrfResponse) String() string { return proto.CompactTextString(m) } -func (*AddVrfResponse) ProtoMessage() {} -func (*AddVrfResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} } - -type DeleteVrfRequest struct { - Vrf *Vrf `protobuf:"bytes,1,opt,name=vrf" json:"vrf,omitempty"` +type DeleteStatementRequest struct { + Statement *Statement `protobuf:"bytes,1,opt,name=statement" json:"statement,omitempty"` + All bool `protobuf:"varint,2,opt,name=all" json:"all,omitempty"` } -func (m *DeleteVrfRequest) Reset() { *m = DeleteVrfRequest{} } -func (m *DeleteVrfRequest) String() string { return proto.CompactTextString(m) } -func (*DeleteVrfRequest) ProtoMessage() {} -func (*DeleteVrfRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{67} } +func (m *DeleteStatementRequest) Reset() { *m = DeleteStatementRequest{} } +func (m *DeleteStatementRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteStatementRequest) ProtoMessage() {} +func (*DeleteStatementRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} } -func (m *DeleteVrfRequest) GetVrf() *Vrf { +func (m *DeleteStatementRequest) GetStatement() *Statement { if m != nil { - return m.Vrf + return m.Statement } return nil } -type DeleteVrfResponse struct { +func (m *DeleteStatementRequest) GetAll() bool { + if m != nil { + return m.All + } + return false } -func (m *DeleteVrfResponse) Reset() { *m = DeleteVrfResponse{} } -func (m *DeleteVrfResponse) String() string { return proto.CompactTextString(m) } -func (*DeleteVrfResponse) ProtoMessage() {} -func (*DeleteVrfResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} } - -type GetDefinedSetRequest struct { - Type DefinedType `protobuf:"varint,1,opt,name=type,enum=gobgpapi.DefinedType" json:"type,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` +type ListStatementRequest struct { + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` } -func (m *GetDefinedSetRequest) Reset() { *m = GetDefinedSetRequest{} } -func (m *GetDefinedSetRequest) String() string { return proto.CompactTextString(m) } -func (*GetDefinedSetRequest) ProtoMessage() {} -func (*GetDefinedSetRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} } - -func (m *GetDefinedSetRequest) GetType() DefinedType { - if m != nil { - return m.Type - } - return DefinedType_PREFIX -} +func (m *ListStatementRequest) Reset() { *m = ListStatementRequest{} } +func (m *ListStatementRequest) String() string { return proto.CompactTextString(m) } +func (*ListStatementRequest) ProtoMessage() {} +func (*ListStatementRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} } -func (m *GetDefinedSetRequest) GetName() string { +func (m *ListStatementRequest) GetName() string { if m != nil { return m.Name } return "" } -type GetDefinedSetResponse struct { - Sets []*DefinedSet `protobuf:"bytes,1,rep,name=sets" json:"sets,omitempty"` +type ListStatementResponse struct { + Statement *Statement `protobuf:"bytes,1,opt,name=statement" json:"statement,omitempty"` } -func (m *GetDefinedSetResponse) Reset() { *m = GetDefinedSetResponse{} } -func (m *GetDefinedSetResponse) String() string { return proto.CompactTextString(m) } -func (*GetDefinedSetResponse) ProtoMessage() {} -func (*GetDefinedSetResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} } +func (m *ListStatementResponse) Reset() { *m = ListStatementResponse{} } +func (m *ListStatementResponse) String() string { return proto.CompactTextString(m) } +func (*ListStatementResponse) ProtoMessage() {} +func (*ListStatementResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} } -func (m *GetDefinedSetResponse) GetSets() []*DefinedSet { +func (m *ListStatementResponse) GetStatement() *Statement { if m != nil { - return m.Sets + return m.Statement } return nil } -type AddDefinedSetRequest struct { - Set *DefinedSet `protobuf:"bytes,1,opt,name=set" json:"set,omitempty"` +type ReplaceStatementRequest struct { + Statement *Statement `protobuf:"bytes,1,opt,name=statement" json:"statement,omitempty"` } -func (m *AddDefinedSetRequest) Reset() { *m = AddDefinedSetRequest{} } -func (m *AddDefinedSetRequest) String() string { return proto.CompactTextString(m) } -func (*AddDefinedSetRequest) ProtoMessage() {} -func (*AddDefinedSetRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} } +func (m *ReplaceStatementRequest) Reset() { *m = ReplaceStatementRequest{} } +func (m *ReplaceStatementRequest) String() string { return proto.CompactTextString(m) } +func (*ReplaceStatementRequest) ProtoMessage() {} +func (*ReplaceStatementRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} } -func (m *AddDefinedSetRequest) GetSet() *DefinedSet { +func (m *ReplaceStatementRequest) GetStatement() *Statement { if m != nil { - return m.Set + return m.Statement } return nil } -type AddDefinedSetResponse struct { +type AddPolicyAssignmentRequest struct { + Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment" json:"assignment,omitempty"` } -func (m *AddDefinedSetResponse) Reset() { *m = AddDefinedSetResponse{} } -func (m *AddDefinedSetResponse) String() string { return proto.CompactTextString(m) } -func (*AddDefinedSetResponse) ProtoMessage() {} -func (*AddDefinedSetResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{72} } +func (m *AddPolicyAssignmentRequest) Reset() { *m = AddPolicyAssignmentRequest{} } +func (m *AddPolicyAssignmentRequest) String() string { return proto.CompactTextString(m) } +func (*AddPolicyAssignmentRequest) ProtoMessage() {} +func (*AddPolicyAssignmentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} } -type DeleteDefinedSetRequest struct { - Set *DefinedSet `protobuf:"bytes,1,opt,name=set" json:"set,omitempty"` - All bool `protobuf:"varint,2,opt,name=all" json:"all,omitempty"` +func (m *AddPolicyAssignmentRequest) GetAssignment() *PolicyAssignment { + if m != nil { + return m.Assignment + } + return nil } -func (m *DeleteDefinedSetRequest) Reset() { *m = DeleteDefinedSetRequest{} } -func (m *DeleteDefinedSetRequest) String() string { return proto.CompactTextString(m) } -func (*DeleteDefinedSetRequest) ProtoMessage() {} -func (*DeleteDefinedSetRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{73} } +type DeletePolicyAssignmentRequest struct { + Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment" json:"assignment,omitempty"` + All bool `protobuf:"varint,2,opt,name=all" json:"all,omitempty"` +} -func (m *DeleteDefinedSetRequest) GetSet() *DefinedSet { +func (m *DeletePolicyAssignmentRequest) Reset() { *m = DeletePolicyAssignmentRequest{} } +func (m *DeletePolicyAssignmentRequest) String() string { return proto.CompactTextString(m) } +func (*DeletePolicyAssignmentRequest) ProtoMessage() {} +func (*DeletePolicyAssignmentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} } + +func (m *DeletePolicyAssignmentRequest) GetAssignment() *PolicyAssignment { if m != nil { - return m.Set + return m.Assignment } return nil } -func (m *DeleteDefinedSetRequest) GetAll() bool { +func (m *DeletePolicyAssignmentRequest) GetAll() bool { if m != nil { return m.All } return false } -type DeleteDefinedSetResponse struct { -} - -func (m *DeleteDefinedSetResponse) Reset() { *m = DeleteDefinedSetResponse{} } -func (m *DeleteDefinedSetResponse) String() string { return proto.CompactTextString(m) } -func (*DeleteDefinedSetResponse) ProtoMessage() {} -func (*DeleteDefinedSetResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{74} } - -type ReplaceDefinedSetRequest struct { - Set *DefinedSet `protobuf:"bytes,1,opt,name=set" json:"set,omitempty"` +type ListPolicyAssignmentRequest struct { + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Direction PolicyDirection `protobuf:"varint,2,opt,name=direction,enum=gobgpapi.PolicyDirection" json:"direction,omitempty"` } -func (m *ReplaceDefinedSetRequest) Reset() { *m = ReplaceDefinedSetRequest{} } -func (m *ReplaceDefinedSetRequest) String() string { return proto.CompactTextString(m) } -func (*ReplaceDefinedSetRequest) ProtoMessage() {} -func (*ReplaceDefinedSetRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{75} } +func (m *ListPolicyAssignmentRequest) Reset() { *m = ListPolicyAssignmentRequest{} } +func (m *ListPolicyAssignmentRequest) String() string { return proto.CompactTextString(m) } +func (*ListPolicyAssignmentRequest) ProtoMessage() {} +func (*ListPolicyAssignmentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} } -func (m *ReplaceDefinedSetRequest) GetSet() *DefinedSet { +func (m *ListPolicyAssignmentRequest) GetName() string { if m != nil { - return m.Set + return m.Name } - return nil -} - -type ReplaceDefinedSetResponse struct { + return "" } -func (m *ReplaceDefinedSetResponse) Reset() { *m = ReplaceDefinedSetResponse{} } -func (m *ReplaceDefinedSetResponse) String() string { return proto.CompactTextString(m) } -func (*ReplaceDefinedSetResponse) ProtoMessage() {} -func (*ReplaceDefinedSetResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{76} } - -type GetStatementRequest struct { +func (m *ListPolicyAssignmentRequest) GetDirection() PolicyDirection { + if m != nil { + return m.Direction + } + return PolicyDirection_UNKNOWN } -func (m *GetStatementRequest) Reset() { *m = GetStatementRequest{} } -func (m *GetStatementRequest) String() string { return proto.CompactTextString(m) } -func (*GetStatementRequest) ProtoMessage() {} -func (*GetStatementRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{77} } - -type GetStatementResponse struct { - Statements []*Statement `protobuf:"bytes,1,rep,name=statements" json:"statements,omitempty"` +type ListPolicyAssignmentResponse struct { + Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment" json:"assignment,omitempty"` } -func (m *GetStatementResponse) Reset() { *m = GetStatementResponse{} } -func (m *GetStatementResponse) String() string { return proto.CompactTextString(m) } -func (*GetStatementResponse) ProtoMessage() {} -func (*GetStatementResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{78} } +func (m *ListPolicyAssignmentResponse) Reset() { *m = ListPolicyAssignmentResponse{} } +func (m *ListPolicyAssignmentResponse) String() string { return proto.CompactTextString(m) } +func (*ListPolicyAssignmentResponse) ProtoMessage() {} +func (*ListPolicyAssignmentResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} } -func (m *GetStatementResponse) GetStatements() []*Statement { +func (m *ListPolicyAssignmentResponse) GetAssignment() *PolicyAssignment { if m != nil { - return m.Statements + return m.Assignment } return nil } -type AddStatementRequest struct { - Statement *Statement `protobuf:"bytes,1,opt,name=statement" json:"statement,omitempty"` +type ReplacePolicyAssignmentRequest struct { + Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment" json:"assignment,omitempty"` } -func (m *AddStatementRequest) Reset() { *m = AddStatementRequest{} } -func (m *AddStatementRequest) String() string { return proto.CompactTextString(m) } -func (*AddStatementRequest) ProtoMessage() {} -func (*AddStatementRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{79} } +func (m *ReplacePolicyAssignmentRequest) Reset() { *m = ReplacePolicyAssignmentRequest{} } +func (m *ReplacePolicyAssignmentRequest) String() string { return proto.CompactTextString(m) } +func (*ReplacePolicyAssignmentRequest) ProtoMessage() {} +func (*ReplacePolicyAssignmentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} } -func (m *AddStatementRequest) GetStatement() *Statement { +func (m *ReplacePolicyAssignmentRequest) GetAssignment() *PolicyAssignment { if m != nil { - return m.Statement + return m.Assignment } return nil } -type AddStatementResponse struct { +type AddRpkiRequest struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + Port uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` + Lifetime int64 `protobuf:"varint,3,opt,name=lifetime" json:"lifetime,omitempty"` } -func (m *AddStatementResponse) Reset() { *m = AddStatementResponse{} } -func (m *AddStatementResponse) String() string { return proto.CompactTextString(m) } -func (*AddStatementResponse) ProtoMessage() {} -func (*AddStatementResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{80} } +func (m *AddRpkiRequest) Reset() { *m = AddRpkiRequest{} } +func (m *AddRpkiRequest) String() string { return proto.CompactTextString(m) } +func (*AddRpkiRequest) ProtoMessage() {} +func (*AddRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} } -type DeleteStatementRequest struct { - Statement *Statement `protobuf:"bytes,1,opt,name=statement" json:"statement,omitempty"` - All bool `protobuf:"varint,2,opt,name=all" json:"all,omitempty"` +func (m *AddRpkiRequest) GetAddress() string { + if m != nil { + return m.Address + } + return "" } -func (m *DeleteStatementRequest) Reset() { *m = DeleteStatementRequest{} } -func (m *DeleteStatementRequest) String() string { return proto.CompactTextString(m) } -func (*DeleteStatementRequest) ProtoMessage() {} -func (*DeleteStatementRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{81} } - -func (m *DeleteStatementRequest) GetStatement() *Statement { +func (m *AddRpkiRequest) GetPort() uint32 { if m != nil { - return m.Statement + return m.Port } - return nil + return 0 } -func (m *DeleteStatementRequest) GetAll() bool { +func (m *AddRpkiRequest) GetLifetime() int64 { if m != nil { - return m.All + return m.Lifetime } - return false + return 0 } -type DeleteStatementResponse struct { +type DeleteRpkiRequest struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + Port uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` } -func (m *DeleteStatementResponse) Reset() { *m = DeleteStatementResponse{} } -func (m *DeleteStatementResponse) String() string { return proto.CompactTextString(m) } -func (*DeleteStatementResponse) ProtoMessage() {} -func (*DeleteStatementResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{82} } +func (m *DeleteRpkiRequest) Reset() { *m = DeleteRpkiRequest{} } +func (m *DeleteRpkiRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteRpkiRequest) ProtoMessage() {} +func (*DeleteRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} } -type ReplaceStatementRequest struct { - Statement *Statement `protobuf:"bytes,1,opt,name=statement" json:"statement,omitempty"` +func (m *DeleteRpkiRequest) GetAddress() string { + if m != nil { + return m.Address + } + return "" } -func (m *ReplaceStatementRequest) Reset() { *m = ReplaceStatementRequest{} } -func (m *ReplaceStatementRequest) String() string { return proto.CompactTextString(m) } -func (*ReplaceStatementRequest) ProtoMessage() {} -func (*ReplaceStatementRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{83} } - -func (m *ReplaceStatementRequest) GetStatement() *Statement { +func (m *DeleteRpkiRequest) GetPort() uint32 { if m != nil { - return m.Statement + return m.Port } - return nil + return 0 } -type ReplaceStatementResponse struct { +type ListRpkiRequest struct { + Family uint32 `protobuf:"varint,1,opt,name=family" json:"family,omitempty"` } -func (m *ReplaceStatementResponse) Reset() { *m = ReplaceStatementResponse{} } -func (m *ReplaceStatementResponse) String() string { return proto.CompactTextString(m) } -func (*ReplaceStatementResponse) ProtoMessage() {} -func (*ReplaceStatementResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{84} } +func (m *ListRpkiRequest) Reset() { *m = ListRpkiRequest{} } +func (m *ListRpkiRequest) String() string { return proto.CompactTextString(m) } +func (*ListRpkiRequest) ProtoMessage() {} +func (*ListRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} } -type GetPolicyRequest struct { +func (m *ListRpkiRequest) GetFamily() uint32 { + if m != nil { + return m.Family + } + return 0 } -func (m *GetPolicyRequest) Reset() { *m = GetPolicyRequest{} } -func (m *GetPolicyRequest) String() string { return proto.CompactTextString(m) } -func (*GetPolicyRequest) ProtoMessage() {} -func (*GetPolicyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{85} } - -type GetPolicyResponse struct { - Policies []*Policy `protobuf:"bytes,1,rep,name=policies" json:"policies,omitempty"` +type ListRpkiResponse struct { + Server *Rpki `protobuf:"bytes,1,opt,name=server" json:"server,omitempty"` } -func (m *GetPolicyResponse) Reset() { *m = GetPolicyResponse{} } -func (m *GetPolicyResponse) String() string { return proto.CompactTextString(m) } -func (*GetPolicyResponse) ProtoMessage() {} -func (*GetPolicyResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{86} } +func (m *ListRpkiResponse) Reset() { *m = ListRpkiResponse{} } +func (m *ListRpkiResponse) String() string { return proto.CompactTextString(m) } +func (*ListRpkiResponse) ProtoMessage() {} +func (*ListRpkiResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} } -func (m *GetPolicyResponse) GetPolicies() []*Policy { +func (m *ListRpkiResponse) GetServer() *Rpki { if m != nil { - return m.Policies + return m.Server } return nil } -type AddPolicyRequest struct { - Policy *Policy `protobuf:"bytes,1,opt,name=policy" json:"policy,omitempty"` - // if this flag is set, gobgpd won't define new statements - // but refer existing statements using statement's names in this arguments. - ReferExistingStatements bool `protobuf:"varint,2,opt,name=refer_existing_statements,json=referExistingStatements" json:"refer_existing_statements,omitempty"` +type EnableRpkiRequest struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + Port uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` } -func (m *AddPolicyRequest) Reset() { *m = AddPolicyRequest{} } -func (m *AddPolicyRequest) String() string { return proto.CompactTextString(m) } -func (*AddPolicyRequest) ProtoMessage() {} -func (*AddPolicyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{87} } +func (m *EnableRpkiRequest) Reset() { *m = EnableRpkiRequest{} } +func (m *EnableRpkiRequest) String() string { return proto.CompactTextString(m) } +func (*EnableRpkiRequest) ProtoMessage() {} +func (*EnableRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} } -func (m *AddPolicyRequest) GetPolicy() *Policy { +func (m *EnableRpkiRequest) GetAddress() string { if m != nil { - return m.Policy + return m.Address } - return nil + return "" } -func (m *AddPolicyRequest) GetReferExistingStatements() bool { +func (m *EnableRpkiRequest) GetPort() uint32 { if m != nil { - return m.ReferExistingStatements + return m.Port } - return false -} - -type AddPolicyResponse struct { + return 0 } -func (m *AddPolicyResponse) Reset() { *m = AddPolicyResponse{} } -func (m *AddPolicyResponse) String() string { return proto.CompactTextString(m) } -func (*AddPolicyResponse) ProtoMessage() {} -func (*AddPolicyResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{88} } - -type DeletePolicyRequest struct { - Policy *Policy `protobuf:"bytes,1,opt,name=policy" json:"policy,omitempty"` - // if this flag is set, gobgpd won't delete any statements - // even if some statements get not used by any policy by this operation. - PreserveStatements bool `protobuf:"varint,2,opt,name=preserve_statements,json=preserveStatements" json:"preserve_statements,omitempty"` - All bool `protobuf:"varint,3,opt,name=all" json:"all,omitempty"` +type DisableRpkiRequest struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + Port uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` } -func (m *DeletePolicyRequest) Reset() { *m = DeletePolicyRequest{} } -func (m *DeletePolicyRequest) String() string { return proto.CompactTextString(m) } -func (*DeletePolicyRequest) ProtoMessage() {} -func (*DeletePolicyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{89} } - -func (m *DeletePolicyRequest) GetPolicy() *Policy { - if m != nil { - return m.Policy - } - return nil -} +func (m *DisableRpkiRequest) Reset() { *m = DisableRpkiRequest{} } +func (m *DisableRpkiRequest) String() string { return proto.CompactTextString(m) } +func (*DisableRpkiRequest) ProtoMessage() {} +func (*DisableRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} } -func (m *DeletePolicyRequest) GetPreserveStatements() bool { +func (m *DisableRpkiRequest) GetAddress() string { if m != nil { - return m.PreserveStatements + return m.Address } - return false + return "" } -func (m *DeletePolicyRequest) GetAll() bool { +func (m *DisableRpkiRequest) GetPort() uint32 { if m != nil { - return m.All + return m.Port } - return false -} - -type DeletePolicyResponse struct { + return 0 } -func (m *DeletePolicyResponse) Reset() { *m = DeletePolicyResponse{} } -func (m *DeletePolicyResponse) String() string { return proto.CompactTextString(m) } -func (*DeletePolicyResponse) ProtoMessage() {} -func (*DeletePolicyResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{90} } - -type ReplacePolicyRequest struct { - Policy *Policy `protobuf:"bytes,1,opt,name=policy" json:"policy,omitempty"` - // if this flag is set, gobgpd won't define new statements - // but refer existing statements using statement's names in this arguments. - ReferExistingStatements bool `protobuf:"varint,2,opt,name=refer_existing_statements,json=referExistingStatements" json:"refer_existing_statements,omitempty"` - // if this flag is set, gobgpd won't delete any statements - // even if some statements get not used by any policy by this operation. - PreserveStatements bool `protobuf:"varint,3,opt,name=preserve_statements,json=preserveStatements" json:"preserve_statements,omitempty"` +type ResetRpkiRequest struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + Port uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` + Soft bool `protobuf:"varint,3,opt,name=soft" json:"soft,omitempty"` } -func (m *ReplacePolicyRequest) Reset() { *m = ReplacePolicyRequest{} } -func (m *ReplacePolicyRequest) String() string { return proto.CompactTextString(m) } -func (*ReplacePolicyRequest) ProtoMessage() {} -func (*ReplacePolicyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{91} } +func (m *ResetRpkiRequest) Reset() { *m = ResetRpkiRequest{} } +func (m *ResetRpkiRequest) String() string { return proto.CompactTextString(m) } +func (*ResetRpkiRequest) ProtoMessage() {} +func (*ResetRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} } -func (m *ReplacePolicyRequest) GetPolicy() *Policy { +func (m *ResetRpkiRequest) GetAddress() string { if m != nil { - return m.Policy + return m.Address } - return nil + return "" } -func (m *ReplacePolicyRequest) GetReferExistingStatements() bool { +func (m *ResetRpkiRequest) GetPort() uint32 { if m != nil { - return m.ReferExistingStatements + return m.Port } - return false + return 0 } -func (m *ReplacePolicyRequest) GetPreserveStatements() bool { +func (m *ResetRpkiRequest) GetSoft() bool { if m != nil { - return m.PreserveStatements + return m.Soft } return false } -type ReplacePolicyResponse struct { -} - -func (m *ReplacePolicyResponse) Reset() { *m = ReplacePolicyResponse{} } -func (m *ReplacePolicyResponse) String() string { return proto.CompactTextString(m) } -func (*ReplacePolicyResponse) ProtoMessage() {} -func (*ReplacePolicyResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{92} } - -type GetPolicyAssignmentRequest struct { - Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment" json:"assignment,omitempty"` +type ListRpkiTableRequest struct { + Family uint32 `protobuf:"varint,1,opt,name=family" json:"family,omitempty"` } -func (m *GetPolicyAssignmentRequest) Reset() { *m = GetPolicyAssignmentRequest{} } -func (m *GetPolicyAssignmentRequest) String() string { return proto.CompactTextString(m) } -func (*GetPolicyAssignmentRequest) ProtoMessage() {} -func (*GetPolicyAssignmentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{93} } +func (m *ListRpkiTableRequest) Reset() { *m = ListRpkiTableRequest{} } +func (m *ListRpkiTableRequest) String() string { return proto.CompactTextString(m) } +func (*ListRpkiTableRequest) ProtoMessage() {} +func (*ListRpkiTableRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} } -func (m *GetPolicyAssignmentRequest) GetAssignment() *PolicyAssignment { +func (m *ListRpkiTableRequest) GetFamily() uint32 { if m != nil { - return m.Assignment + return m.Family } - return nil + return 0 } -type GetPolicyAssignmentResponse struct { - Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment" json:"assignment,omitempty"` +type ListRpkiTableResponse struct { + Roa *Roa `protobuf:"bytes,1,opt,name=roa" json:"roa,omitempty"` } -func (m *GetPolicyAssignmentResponse) Reset() { *m = GetPolicyAssignmentResponse{} } -func (m *GetPolicyAssignmentResponse) String() string { return proto.CompactTextString(m) } -func (*GetPolicyAssignmentResponse) ProtoMessage() {} -func (*GetPolicyAssignmentResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{94} } +func (m *ListRpkiTableResponse) Reset() { *m = ListRpkiTableResponse{} } +func (m *ListRpkiTableResponse) String() string { return proto.CompactTextString(m) } +func (*ListRpkiTableResponse) ProtoMessage() {} +func (*ListRpkiTableResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} } -func (m *GetPolicyAssignmentResponse) GetAssignment() *PolicyAssignment { +func (m *ListRpkiTableResponse) GetRoa() *Roa { if m != nil { - return m.Assignment + return m.Roa } return nil } -type AddPolicyAssignmentRequest struct { - Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment" json:"assignment,omitempty"` +type EnableZebraRequest struct { + Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` + RouteTypes []string `protobuf:"bytes,2,rep,name=route_types,json=routeTypes" json:"route_types,omitempty"` + Version uint32 `protobuf:"varint,3,opt,name=version" json:"version,omitempty"` + NexthopTriggerEnable bool `protobuf:"varint,4,opt,name=nexthop_trigger_enable,json=nexthopTriggerEnable" json:"nexthop_trigger_enable,omitempty"` + NexthopTriggerDelay uint32 `protobuf:"varint,5,opt,name=nexthop_trigger_delay,json=nexthopTriggerDelay" json:"nexthop_trigger_delay,omitempty"` } -func (m *AddPolicyAssignmentRequest) Reset() { *m = AddPolicyAssignmentRequest{} } -func (m *AddPolicyAssignmentRequest) String() string { return proto.CompactTextString(m) } -func (*AddPolicyAssignmentRequest) ProtoMessage() {} -func (*AddPolicyAssignmentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{95} } +func (m *EnableZebraRequest) Reset() { *m = EnableZebraRequest{} } +func (m *EnableZebraRequest) String() string { return proto.CompactTextString(m) } +func (*EnableZebraRequest) ProtoMessage() {} +func (*EnableZebraRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} } -func (m *AddPolicyAssignmentRequest) GetAssignment() *PolicyAssignment { +func (m *EnableZebraRequest) GetUrl() string { if m != nil { - return m.Assignment + return m.Url } - return nil -} - -type AddPolicyAssignmentResponse struct { + return "" } -func (m *AddPolicyAssignmentResponse) Reset() { *m = AddPolicyAssignmentResponse{} } -func (m *AddPolicyAssignmentResponse) String() string { return proto.CompactTextString(m) } -func (*AddPolicyAssignmentResponse) ProtoMessage() {} -func (*AddPolicyAssignmentResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{96} } - -type DeletePolicyAssignmentRequest struct { - Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment" json:"assignment,omitempty"` - All bool `protobuf:"varint,2,opt,name=all" json:"all,omitempty"` +func (m *EnableZebraRequest) GetRouteTypes() []string { + if m != nil { + return m.RouteTypes + } + return nil } -func (m *DeletePolicyAssignmentRequest) Reset() { *m = DeletePolicyAssignmentRequest{} } -func (m *DeletePolicyAssignmentRequest) String() string { return proto.CompactTextString(m) } -func (*DeletePolicyAssignmentRequest) ProtoMessage() {} -func (*DeletePolicyAssignmentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{97} } - -func (m *DeletePolicyAssignmentRequest) GetAssignment() *PolicyAssignment { +func (m *EnableZebraRequest) GetVersion() uint32 { if m != nil { - return m.Assignment + return m.Version } - return nil + return 0 } -func (m *DeletePolicyAssignmentRequest) GetAll() bool { +func (m *EnableZebraRequest) GetNexthopTriggerEnable() bool { if m != nil { - return m.All + return m.NexthopTriggerEnable } return false } -type DeletePolicyAssignmentResponse struct { +func (m *EnableZebraRequest) GetNexthopTriggerDelay() uint32 { + if m != nil { + return m.NexthopTriggerDelay + } + return 0 } -func (m *DeletePolicyAssignmentResponse) Reset() { *m = DeletePolicyAssignmentResponse{} } -func (m *DeletePolicyAssignmentResponse) String() string { return proto.CompactTextString(m) } -func (*DeletePolicyAssignmentResponse) ProtoMessage() {} -func (*DeletePolicyAssignmentResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{98} } - -type ReplacePolicyAssignmentRequest struct { - Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment" json:"assignment,omitempty"` +type EnableMrtRequest struct { + DumpType int32 `protobuf:"varint,1,opt,name=dump_type,json=dumpType" json:"dump_type,omitempty"` + Filename string `protobuf:"bytes,2,opt,name=filename" json:"filename,omitempty"` + Interval uint64 `protobuf:"varint,3,opt,name=interval" json:"interval,omitempty"` } -func (m *ReplacePolicyAssignmentRequest) Reset() { *m = ReplacePolicyAssignmentRequest{} } -func (m *ReplacePolicyAssignmentRequest) String() string { return proto.CompactTextString(m) } -func (*ReplacePolicyAssignmentRequest) ProtoMessage() {} -func (*ReplacePolicyAssignmentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{99} } +func (m *EnableMrtRequest) Reset() { *m = EnableMrtRequest{} } +func (m *EnableMrtRequest) String() string { return proto.CompactTextString(m) } +func (*EnableMrtRequest) ProtoMessage() {} +func (*EnableMrtRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} } -func (m *ReplacePolicyAssignmentRequest) GetAssignment() *PolicyAssignment { +func (m *EnableMrtRequest) GetDumpType() int32 { if m != nil { - return m.Assignment + return m.DumpType } - return nil + return 0 } -type ReplacePolicyAssignmentResponse struct { +func (m *EnableMrtRequest) GetFilename() string { + if m != nil { + return m.Filename + } + return "" } -func (m *ReplacePolicyAssignmentResponse) Reset() { *m = ReplacePolicyAssignmentResponse{} } -func (m *ReplacePolicyAssignmentResponse) String() string { return proto.CompactTextString(m) } -func (*ReplacePolicyAssignmentResponse) ProtoMessage() {} -func (*ReplacePolicyAssignmentResponse) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{100} +func (m *EnableMrtRequest) GetInterval() uint64 { + if m != nil { + return m.Interval + } + return 0 } -type GetServerRequest struct { +type DisableMrtRequest struct { } -func (m *GetServerRequest) Reset() { *m = GetServerRequest{} } -func (m *GetServerRequest) String() string { return proto.CompactTextString(m) } -func (*GetServerRequest) ProtoMessage() {} -func (*GetServerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{101} } +func (m *DisableMrtRequest) Reset() { *m = DisableMrtRequest{} } +func (m *DisableMrtRequest) String() string { return proto.CompactTextString(m) } +func (*DisableMrtRequest) ProtoMessage() {} +func (*DisableMrtRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{67} } -type GetServerResponse struct { - Global *Global `protobuf:"bytes,1,opt,name=global" json:"global,omitempty"` +type AddBmpRequest struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + Port uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` + Type AddBmpRequest_MonitoringPolicy `protobuf:"varint,3,opt,name=type,enum=gobgpapi.AddBmpRequest_MonitoringPolicy" json:"type,omitempty"` } -func (m *GetServerResponse) Reset() { *m = GetServerResponse{} } -func (m *GetServerResponse) String() string { return proto.CompactTextString(m) } -func (*GetServerResponse) ProtoMessage() {} -func (*GetServerResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{102} } +func (m *AddBmpRequest) Reset() { *m = AddBmpRequest{} } +func (m *AddBmpRequest) String() string { return proto.CompactTextString(m) } +func (*AddBmpRequest) ProtoMessage() {} +func (*AddBmpRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} } -func (m *GetServerResponse) GetGlobal() *Global { +func (m *AddBmpRequest) GetAddress() string { if m != nil { - return m.Global + return m.Address } - return nil + return "" } -type StartServerRequest struct { - Global *Global `protobuf:"bytes,1,opt,name=global" json:"global,omitempty"` +func (m *AddBmpRequest) GetPort() uint32 { + if m != nil { + return m.Port + } + return 0 } -func (m *StartServerRequest) Reset() { *m = StartServerRequest{} } -func (m *StartServerRequest) String() string { return proto.CompactTextString(m) } -func (*StartServerRequest) ProtoMessage() {} -func (*StartServerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{103} } - -func (m *StartServerRequest) GetGlobal() *Global { +func (m *AddBmpRequest) GetType() AddBmpRequest_MonitoringPolicy { if m != nil { - return m.Global + return m.Type } - return nil + return AddBmpRequest_PRE } -type StartServerResponse struct { +type DeleteBmpRequest struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + Port uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` } -func (m *StartServerResponse) Reset() { *m = StartServerResponse{} } -func (m *StartServerResponse) String() string { return proto.CompactTextString(m) } -func (*StartServerResponse) ProtoMessage() {} -func (*StartServerResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{104} } +func (m *DeleteBmpRequest) Reset() { *m = DeleteBmpRequest{} } +func (m *DeleteBmpRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteBmpRequest) ProtoMessage() {} +func (*DeleteBmpRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} } -type StopServerRequest struct { +func (m *DeleteBmpRequest) GetAddress() string { + if m != nil { + return m.Address + } + return "" } -func (m *StopServerRequest) Reset() { *m = StopServerRequest{} } -func (m *StopServerRequest) String() string { return proto.CompactTextString(m) } -func (*StopServerRequest) ProtoMessage() {} -func (*StopServerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{105} } - -type StopServerResponse struct { +func (m *DeleteBmpRequest) GetPort() uint32 { + if m != nil { + return m.Port + } + return 0 } -func (m *StopServerResponse) Reset() { *m = StopServerResponse{} } -func (m *StopServerResponse) String() string { return proto.CompactTextString(m) } -func (*StopServerResponse) ProtoMessage() {} -func (*StopServerResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{106} } - type RPKIValidation struct { State RPKIValidation_State `protobuf:"varint,1,opt,name=state,enum=gobgpapi.RPKIValidation_State" json:"state,omitempty"` Reason RPKIValidation_Reason `protobuf:"varint,2,opt,name=reason,enum=gobgpapi.RPKIValidation_Reason" json:"reason,omitempty"` @@ -2711,7 +2424,7 @@ type RPKIValidation struct { func (m *RPKIValidation) Reset() { *m = RPKIValidation{} } func (m *RPKIValidation) String() string { return proto.CompactTextString(m) } func (*RPKIValidation) ProtoMessage() {} -func (*RPKIValidation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{107} } +func (*RPKIValidation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} } func (m *RPKIValidation) GetState() RPKIValidation_State { if m != nil { @@ -2791,7 +2504,7 @@ type Path struct { func (m *Path) Reset() { *m = Path{} } func (m *Path) String() string { return proto.CompactTextString(m) } func (*Path) ProtoMessage() {} -func (*Path) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{108} } +func (*Path) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} } func (m *Path) GetNlri() []byte { if m != nil { @@ -2941,16 +2654,14 @@ func (m *Path) GetAnyPattrs() []*google_protobuf.Any { } type Destination struct { - Prefix string `protobuf:"bytes,1,opt,name=prefix" json:"prefix,omitempty"` - Paths []*Path `protobuf:"bytes,2,rep,name=paths" json:"paths,omitempty"` - LongerPrefixes bool `protobuf:"varint,3,opt,name=longer_prefixes,json=longerPrefixes" json:"longer_prefixes,omitempty"` - ShorterPrefixes bool `protobuf:"varint,4,opt,name=shorter_prefixes,json=shorterPrefixes" json:"shorter_prefixes,omitempty"` + Prefix string `protobuf:"bytes,1,opt,name=prefix" json:"prefix,omitempty"` + Paths []*Path `protobuf:"bytes,2,rep,name=paths" json:"paths,omitempty"` } func (m *Destination) Reset() { *m = Destination{} } func (m *Destination) String() string { return proto.CompactTextString(m) } func (*Destination) ProtoMessage() {} -func (*Destination) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{109} } +func (*Destination) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{72} } func (m *Destination) GetPrefix() string { if m != nil { @@ -2966,100 +2677,6 @@ func (m *Destination) GetPaths() []*Path { return nil } -func (m *Destination) GetLongerPrefixes() bool { - if m != nil { - return m.LongerPrefixes - } - return false -} - -func (m *Destination) GetShorterPrefixes() bool { - if m != nil { - return m.ShorterPrefixes - } - return false -} - -type Table struct { - Type Resource `protobuf:"varint,1,opt,name=type,enum=gobgpapi.Resource" json:"type,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - Family uint32 `protobuf:"varint,3,opt,name=family" json:"family,omitempty"` - Destinations []*Destination `protobuf:"bytes,4,rep,name=destinations" json:"destinations,omitempty"` - PostPolicy bool `protobuf:"varint,5,opt,name=post_policy,json=postPolicy" json:"post_policy,omitempty"` -} - -func (m *Table) Reset() { *m = Table{} } -func (m *Table) String() string { return proto.CompactTextString(m) } -func (*Table) ProtoMessage() {} -func (*Table) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{110} } - -func (m *Table) GetType() Resource { - if m != nil { - return m.Type - } - return Resource_GLOBAL -} - -func (m *Table) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *Table) GetFamily() uint32 { - if m != nil { - return m.Family - } - return 0 -} - -func (m *Table) GetDestinations() []*Destination { - if m != nil { - return m.Destinations - } - return nil -} - -func (m *Table) GetPostPolicy() bool { - if m != nil { - return m.PostPolicy - } - return false -} - -type GetRibRequest struct { - Table *Table `protobuf:"bytes,1,opt,name=table" json:"table,omitempty"` -} - -func (m *GetRibRequest) Reset() { *m = GetRibRequest{} } -func (m *GetRibRequest) String() string { return proto.CompactTextString(m) } -func (*GetRibRequest) ProtoMessage() {} -func (*GetRibRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{111} } - -func (m *GetRibRequest) GetTable() *Table { - if m != nil { - return m.Table - } - return nil -} - -type GetRibResponse struct { - Table *Table `protobuf:"bytes,1,opt,name=table" json:"table,omitempty"` -} - -func (m *GetRibResponse) Reset() { *m = GetRibResponse{} } -func (m *GetRibResponse) String() string { return proto.CompactTextString(m) } -func (*GetRibResponse) ProtoMessage() {} -func (*GetRibResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{112} } - -func (m *GetRibResponse) GetTable() *Table { - if m != nil { - return m.Table - } - return nil -} - // API representation of table.LookupPrefix type TableLookupPrefix struct { Prefix string `protobuf:"bytes,1,opt,name=prefix" json:"prefix,omitempty"` @@ -3069,7 +2686,7 @@ type TableLookupPrefix struct { func (m *TableLookupPrefix) Reset() { *m = TableLookupPrefix{} } func (m *TableLookupPrefix) String() string { return proto.CompactTextString(m) } func (*TableLookupPrefix) ProtoMessage() {} -func (*TableLookupPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{113} } +func (*TableLookupPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{73} } func (m *TableLookupPrefix) GetPrefix() string { if m != nil { @@ -3085,86 +2702,6 @@ func (m *TableLookupPrefix) GetLookupOption() TableLookupOption { return TableLookupOption_LOOKUP_EXACT } -type GetPathRequest struct { - Type Resource `protobuf:"varint,1,opt,name=type,enum=gobgpapi.Resource" json:"type,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - Family uint32 `protobuf:"varint,3,opt,name=family" json:"family,omitempty"` - Prefixes []*TableLookupPrefix `protobuf:"bytes,4,rep,name=prefixes" json:"prefixes,omitempty"` -} - -func (m *GetPathRequest) Reset() { *m = GetPathRequest{} } -func (m *GetPathRequest) String() string { return proto.CompactTextString(m) } -func (*GetPathRequest) ProtoMessage() {} -func (*GetPathRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{114} } - -func (m *GetPathRequest) GetType() Resource { - if m != nil { - return m.Type - } - return Resource_GLOBAL -} - -func (m *GetPathRequest) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *GetPathRequest) GetFamily() uint32 { - if m != nil { - return m.Family - } - return 0 -} - -func (m *GetPathRequest) GetPrefixes() []*TableLookupPrefix { - if m != nil { - return m.Prefixes - } - return nil -} - -type ValidateRibRequest struct { - Type Resource `protobuf:"varint,1,opt,name=type,enum=gobgpapi.Resource" json:"type,omitempty"` - Family uint32 `protobuf:"varint,2,opt,name=family" json:"family,omitempty"` - Prefix string `protobuf:"bytes,3,opt,name=prefix" json:"prefix,omitempty"` -} - -func (m *ValidateRibRequest) Reset() { *m = ValidateRibRequest{} } -func (m *ValidateRibRequest) String() string { return proto.CompactTextString(m) } -func (*ValidateRibRequest) ProtoMessage() {} -func (*ValidateRibRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{115} } - -func (m *ValidateRibRequest) GetType() Resource { - if m != nil { - return m.Type - } - return Resource_GLOBAL -} - -func (m *ValidateRibRequest) GetFamily() uint32 { - if m != nil { - return m.Family - } - return 0 -} - -func (m *ValidateRibRequest) GetPrefix() string { - if m != nil { - return m.Prefix - } - return "" -} - -type ValidateRibResponse struct { -} - -func (m *ValidateRibResponse) Reset() { *m = ValidateRibResponse{} } -func (m *ValidateRibResponse) String() string { return proto.CompactTextString(m) } -func (*ValidateRibResponse) ProtoMessage() {} -func (*ValidateRibResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{116} } - type Peer struct { // Note: Regarding to the consistency with OpenConfig model, a list of // address family should be removed from here, and should be configured with @@ -3174,7 +2711,7 @@ type Peer struct { Conf *PeerConf `protobuf:"bytes,3,opt,name=conf" json:"conf,omitempty"` EbgpMultihop *EbgpMultihop `protobuf:"bytes,4,opt,name=ebgp_multihop,json=ebgpMultihop" json:"ebgp_multihop,omitempty"` RouteReflector *RouteReflector `protobuf:"bytes,5,opt,name=route_reflector,json=routeReflector" json:"route_reflector,omitempty"` - Info *PeerState `protobuf:"bytes,6,opt,name=info" json:"info,omitempty"` + State *PeerState `protobuf:"bytes,6,opt,name=state" json:"state,omitempty"` Timers *Timers `protobuf:"bytes,7,opt,name=timers" json:"timers,omitempty"` Transport *Transport `protobuf:"bytes,8,opt,name=transport" json:"transport,omitempty"` RouteServer *RouteServer `protobuf:"bytes,9,opt,name=route_server,json=routeServer" json:"route_server,omitempty"` @@ -3186,7 +2723,7 @@ type Peer struct { func (m *Peer) Reset() { *m = Peer{} } func (m *Peer) String() string { return proto.CompactTextString(m) } func (*Peer) ProtoMessage() {} -func (*Peer) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{117} } +func (*Peer) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{74} } func (m *Peer) GetFamilies() []uint32 { if m != nil { @@ -3223,9 +2760,9 @@ func (m *Peer) GetRouteReflector() *RouteReflector { return nil } -func (m *Peer) GetInfo() *PeerState { +func (m *Peer) GetState() *PeerState { if m != nil { - return m.Info + return m.State } return nil } @@ -3293,7 +2830,7 @@ type PeerGroup struct { func (m *PeerGroup) Reset() { *m = PeerGroup{} } func (m *PeerGroup) String() string { return proto.CompactTextString(m) } func (*PeerGroup) ProtoMessage() {} -func (*PeerGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{118} } +func (*PeerGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{75} } func (m *PeerGroup) GetFamilies() []uint32 { if m != nil { @@ -3387,7 +2924,7 @@ type DynamicNeighbor struct { func (m *DynamicNeighbor) Reset() { *m = DynamicNeighbor{} } func (m *DynamicNeighbor) String() string { return proto.CompactTextString(m) } func (*DynamicNeighbor) ProtoMessage() {} -func (*DynamicNeighbor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{119} } +func (*DynamicNeighbor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{76} } func (m *DynamicNeighbor) GetPrefix() string { if m != nil { @@ -3412,7 +2949,7 @@ type ApplyPolicy struct { func (m *ApplyPolicy) Reset() { *m = ApplyPolicy{} } func (m *ApplyPolicy) String() string { return proto.CompactTextString(m) } func (*ApplyPolicy) ProtoMessage() {} -func (*ApplyPolicy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{120} } +func (*ApplyPolicy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{77} } func (m *ApplyPolicy) GetInPolicy() *PolicyAssignment { if m != nil { @@ -3444,7 +2981,7 @@ type PrefixLimit struct { func (m *PrefixLimit) Reset() { *m = PrefixLimit{} } func (m *PrefixLimit) String() string { return proto.CompactTextString(m) } func (*PrefixLimit) ProtoMessage() {} -func (*PrefixLimit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{121} } +func (*PrefixLimit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{78} } func (m *PrefixLimit) GetFamily() uint32 { if m != nil { @@ -3497,7 +3034,7 @@ type PeerConf struct { func (m *PeerConf) Reset() { *m = PeerConf{} } func (m *PeerConf) String() string { return proto.CompactTextString(m) } func (*PeerConf) ProtoMessage() {} -func (*PeerConf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{122} } +func (*PeerConf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{79} } func (m *PeerConf) GetAuthPassword() string { if m != nil { @@ -3647,7 +3184,7 @@ type PeerGroupConf struct { func (m *PeerGroupConf) Reset() { *m = PeerGroupConf{} } func (m *PeerGroupConf) String() string { return proto.CompactTextString(m) } func (*PeerGroupConf) ProtoMessage() {} -func (*PeerGroupConf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{123} } +func (*PeerGroupConf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{80} } func (m *PeerGroupConf) GetAuthPassword() string { if m != nil { @@ -3729,7 +3266,7 @@ type PeerGroupState struct { func (m *PeerGroupState) Reset() { *m = PeerGroupState{} } func (m *PeerGroupState) String() string { return proto.CompactTextString(m) } func (*PeerGroupState) ProtoMessage() {} -func (*PeerGroupState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{124} } +func (*PeerGroupState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{81} } func (m *PeerGroupState) GetAuthPassword() string { if m != nil { @@ -3816,7 +3353,7 @@ type EbgpMultihop struct { func (m *EbgpMultihop) Reset() { *m = EbgpMultihop{} } func (m *EbgpMultihop) String() string { return proto.CompactTextString(m) } func (*EbgpMultihop) ProtoMessage() {} -func (*EbgpMultihop) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{125} } +func (*EbgpMultihop) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{82} } func (m *EbgpMultihop) GetEnabled() bool { if m != nil { @@ -3840,7 +3377,7 @@ type RouteReflector struct { func (m *RouteReflector) Reset() { *m = RouteReflector{} } func (m *RouteReflector) String() string { return proto.CompactTextString(m) } func (*RouteReflector) ProtoMessage() {} -func (*RouteReflector) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{126} } +func (*RouteReflector) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{83} } func (m *RouteReflector) GetRouteReflectorClient() bool { if m != nil { @@ -3857,33 +3394,32 @@ func (m *RouteReflector) GetRouteReflectorClusterId() string { } type PeerState struct { - AuthPassword string `protobuf:"bytes,1,opt,name=auth_password,json=authPassword" json:"auth_password,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"` - LocalAs uint32 `protobuf:"varint,3,opt,name=local_as,json=localAs" json:"local_as,omitempty"` - Messages *Messages `protobuf:"bytes,4,opt,name=messages" json:"messages,omitempty"` - NeighborAddress string `protobuf:"bytes,5,opt,name=neighbor_address,json=neighborAddress" json:"neighbor_address,omitempty"` - PeerAs uint32 `protobuf:"varint,6,opt,name=peer_as,json=peerAs" json:"peer_as,omitempty"` - PeerGroup string `protobuf:"bytes,7,opt,name=peer_group,json=peerGroup" json:"peer_group,omitempty"` - PeerType uint32 `protobuf:"varint,8,opt,name=peer_type,json=peerType" json:"peer_type,omitempty"` - Queues *Queues `protobuf:"bytes,9,opt,name=queues" json:"queues,omitempty"` - RemovePrivateAs uint32 `protobuf:"varint,10,opt,name=remove_private_as,json=removePrivateAs" json:"remove_private_as,omitempty"` - RouteFlapDamping bool `protobuf:"varint,11,opt,name=route_flap_damping,json=routeFlapDamping" json:"route_flap_damping,omitempty"` - SendCommunity uint32 `protobuf:"varint,12,opt,name=send_community,json=sendCommunity" json:"send_community,omitempty"` - SessionState uint32 `protobuf:"varint,13,opt,name=session_state,json=sessionState" json:"session_state,omitempty"` - SupportedCapabilities []string `protobuf:"bytes,14,rep,name=supported_capabilities,json=supportedCapabilities" json:"supported_capabilities,omitempty"` - BgpState string `protobuf:"bytes,15,opt,name=bgp_state,json=bgpState" json:"bgp_state,omitempty"` - AdminState PeerState_AdminState `protobuf:"varint,16,opt,name=admin_state,json=adminState,enum=gobgpapi.PeerState_AdminState" json:"admin_state,omitempty"` - Received uint32 `protobuf:"varint,17,opt,name=received" json:"received,omitempty"` - Accepted uint32 `protobuf:"varint,18,opt,name=accepted" json:"accepted,omitempty"` - Advertised uint32 `protobuf:"varint,19,opt,name=advertised" json:"advertised,omitempty"` - OutQ uint32 `protobuf:"varint,20,opt,name=out_q,json=outQ" json:"out_q,omitempty"` - Flops uint32 `protobuf:"varint,21,opt,name=flops" json:"flops,omitempty"` + AuthPassword string `protobuf:"bytes,1,opt,name=auth_password,json=authPassword" json:"auth_password,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"` + LocalAs uint32 `protobuf:"varint,3,opt,name=local_as,json=localAs" json:"local_as,omitempty"` + Messages *Messages `protobuf:"bytes,4,opt,name=messages" json:"messages,omitempty"` + NeighborAddress string `protobuf:"bytes,5,opt,name=neighbor_address,json=neighborAddress" json:"neighbor_address,omitempty"` + PeerAs uint32 `protobuf:"varint,6,opt,name=peer_as,json=peerAs" json:"peer_as,omitempty"` + PeerGroup string `protobuf:"bytes,7,opt,name=peer_group,json=peerGroup" json:"peer_group,omitempty"` + PeerType uint32 `protobuf:"varint,8,opt,name=peer_type,json=peerType" json:"peer_type,omitempty"` + Queues *Queues `protobuf:"bytes,9,opt,name=queues" json:"queues,omitempty"` + RemovePrivateAs uint32 `protobuf:"varint,10,opt,name=remove_private_as,json=removePrivateAs" json:"remove_private_as,omitempty"` + RouteFlapDamping bool `protobuf:"varint,11,opt,name=route_flap_damping,json=routeFlapDamping" json:"route_flap_damping,omitempty"` + SendCommunity uint32 `protobuf:"varint,12,opt,name=send_community,json=sendCommunity" json:"send_community,omitempty"` + SessionState PeerState_SessionState `protobuf:"varint,13,opt,name=session_state,json=sessionState,enum=gobgpapi.PeerState_SessionState" json:"session_state,omitempty"` + SupportedCapabilities []string `protobuf:"bytes,14,rep,name=supported_capabilities,json=supportedCapabilities" json:"supported_capabilities,omitempty"` + AdminState PeerState_AdminState `protobuf:"varint,15,opt,name=admin_state,json=adminState,enum=gobgpapi.PeerState_AdminState" json:"admin_state,omitempty"` + Received uint32 `protobuf:"varint,16,opt,name=received" json:"received,omitempty"` + Accepted uint32 `protobuf:"varint,17,opt,name=accepted" json:"accepted,omitempty"` + Advertised uint32 `protobuf:"varint,18,opt,name=advertised" json:"advertised,omitempty"` + OutQ uint32 `protobuf:"varint,19,opt,name=out_q,json=outQ" json:"out_q,omitempty"` + Flops uint32 `protobuf:"varint,20,opt,name=flops" json:"flops,omitempty"` } func (m *PeerState) Reset() { *m = PeerState{} } func (m *PeerState) String() string { return proto.CompactTextString(m) } func (*PeerState) ProtoMessage() {} -func (*PeerState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{127} } +func (*PeerState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{84} } func (m *PeerState) GetAuthPassword() string { if m != nil { @@ -3969,11 +3505,11 @@ func (m *PeerState) GetSendCommunity() uint32 { return 0 } -func (m *PeerState) GetSessionState() uint32 { +func (m *PeerState) GetSessionState() PeerState_SessionState { if m != nil { return m.SessionState } - return 0 + return PeerState_UNKNOWN } func (m *PeerState) GetSupportedCapabilities() []string { @@ -3983,13 +3519,6 @@ func (m *PeerState) GetSupportedCapabilities() []string { return nil } -func (m *PeerState) GetBgpState() string { - if m != nil { - return m.BgpState - } - return "" -} - func (m *PeerState) GetAdminState() PeerState_AdminState { if m != nil { return m.AdminState @@ -4040,7 +3569,7 @@ type Messages struct { func (m *Messages) Reset() { *m = Messages{} } func (m *Messages) String() string { return proto.CompactTextString(m) } func (*Messages) ProtoMessage() {} -func (*Messages) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{128} } +func (*Messages) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{85} } func (m *Messages) GetReceived() *Message { if m != nil { @@ -4057,65 +3586,65 @@ func (m *Messages) GetSent() *Message { } type Message struct { - NOTIFICATION uint64 `protobuf:"varint,1,opt,name=NOTIFICATION" json:"NOTIFICATION,omitempty"` - UPDATE uint64 `protobuf:"varint,2,opt,name=UPDATE" json:"UPDATE,omitempty"` - OPEN uint64 `protobuf:"varint,3,opt,name=OPEN" json:"OPEN,omitempty"` - KEEPALIVE uint64 `protobuf:"varint,4,opt,name=KEEPALIVE" json:"KEEPALIVE,omitempty"` - REFRESH uint64 `protobuf:"varint,5,opt,name=REFRESH" json:"REFRESH,omitempty"` - DISCARDED uint64 `protobuf:"varint,6,opt,name=DISCARDED" json:"DISCARDED,omitempty"` - TOTAL uint64 `protobuf:"varint,7,opt,name=TOTAL" json:"TOTAL,omitempty"` + Notification uint64 `protobuf:"varint,1,opt,name=notification" json:"notification,omitempty"` + Update uint64 `protobuf:"varint,2,opt,name=update" json:"update,omitempty"` + Open uint64 `protobuf:"varint,3,opt,name=open" json:"open,omitempty"` + Keepalive uint64 `protobuf:"varint,4,opt,name=keepalive" json:"keepalive,omitempty"` + Refresh uint64 `protobuf:"varint,5,opt,name=refresh" json:"refresh,omitempty"` + Discarded uint64 `protobuf:"varint,6,opt,name=discarded" json:"discarded,omitempty"` + Total uint64 `protobuf:"varint,7,opt,name=total" json:"total,omitempty"` } func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} -func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{129} } +func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{86} } -func (m *Message) GetNOTIFICATION() uint64 { +func (m *Message) GetNotification() uint64 { if m != nil { - return m.NOTIFICATION + return m.Notification } return 0 } -func (m *Message) GetUPDATE() uint64 { +func (m *Message) GetUpdate() uint64 { if m != nil { - return m.UPDATE + return m.Update } return 0 } -func (m *Message) GetOPEN() uint64 { +func (m *Message) GetOpen() uint64 { if m != nil { - return m.OPEN + return m.Open } return 0 } -func (m *Message) GetKEEPALIVE() uint64 { +func (m *Message) GetKeepalive() uint64 { if m != nil { - return m.KEEPALIVE + return m.Keepalive } return 0 } -func (m *Message) GetREFRESH() uint64 { +func (m *Message) GetRefresh() uint64 { if m != nil { - return m.REFRESH + return m.Refresh } return 0 } -func (m *Message) GetDISCARDED() uint64 { +func (m *Message) GetDiscarded() uint64 { if m != nil { - return m.DISCARDED + return m.Discarded } return 0 } -func (m *Message) GetTOTAL() uint64 { +func (m *Message) GetTotal() uint64 { if m != nil { - return m.TOTAL + return m.Total } return 0 } @@ -4128,7 +3657,7 @@ type Queues struct { func (m *Queues) Reset() { *m = Queues{} } func (m *Queues) String() string { return proto.CompactTextString(m) } func (*Queues) ProtoMessage() {} -func (*Queues) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{130} } +func (*Queues) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{87} } func (m *Queues) GetInput() uint32 { if m != nil { @@ -4152,7 +3681,7 @@ type Timers struct { func (m *Timers) Reset() { *m = Timers{} } func (m *Timers) String() string { return proto.CompactTextString(m) } func (*Timers) ProtoMessage() {} -func (*Timers) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{131} } +func (*Timers) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{88} } func (m *Timers) GetConfig() *TimersConfig { if m != nil { @@ -4178,7 +3707,7 @@ type TimersConfig struct { func (m *TimersConfig) Reset() { *m = TimersConfig{} } func (m *TimersConfig) String() string { return proto.CompactTextString(m) } func (*TimersConfig) ProtoMessage() {} -func (*TimersConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{132} } +func (*TimersConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{89} } func (m *TimersConfig) GetConnectRetry() uint64 { if m != nil { @@ -4221,7 +3750,7 @@ type TimersState struct { func (m *TimersState) Reset() { *m = TimersState{} } func (m *TimersState) String() string { return proto.CompactTextString(m) } func (*TimersState) ProtoMessage() {} -func (*TimersState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{133} } +func (*TimersState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{90} } func (m *TimersState) GetConnectRetry() uint64 { if m != nil { @@ -4285,7 +3814,7 @@ type Transport struct { func (m *Transport) Reset() { *m = Transport{} } func (m *Transport) String() string { return proto.CompactTextString(m) } func (*Transport) ProtoMessage() {} -func (*Transport) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{134} } +func (*Transport) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{91} } func (m *Transport) GetLocalAddress() string { if m != nil { @@ -4343,7 +3872,7 @@ type RouteServer struct { func (m *RouteServer) Reset() { *m = RouteServer{} } func (m *RouteServer) String() string { return proto.CompactTextString(m) } func (*RouteServer) ProtoMessage() {} -func (*RouteServer) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{135} } +func (*RouteServer) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{92} } func (m *RouteServer) GetRouteServerClient() bool { if m != nil { @@ -4369,7 +3898,7 @@ type GracefulRestart struct { func (m *GracefulRestart) Reset() { *m = GracefulRestart{} } func (m *GracefulRestart) String() string { return proto.CompactTextString(m) } func (*GracefulRestart) ProtoMessage() {} -func (*GracefulRestart) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{136} } +func (*GracefulRestart) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{93} } func (m *GracefulRestart) GetEnabled() bool { if m != nil { @@ -4455,7 +3984,7 @@ type MpGracefulRestartConfig struct { func (m *MpGracefulRestartConfig) Reset() { *m = MpGracefulRestartConfig{} } func (m *MpGracefulRestartConfig) String() string { return proto.CompactTextString(m) } func (*MpGracefulRestartConfig) ProtoMessage() {} -func (*MpGracefulRestartConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{137} } +func (*MpGracefulRestartConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{94} } func (m *MpGracefulRestartConfig) GetEnabled() bool { if m != nil { @@ -4475,7 +4004,7 @@ type MpGracefulRestartState struct { func (m *MpGracefulRestartState) Reset() { *m = MpGracefulRestartState{} } func (m *MpGracefulRestartState) String() string { return proto.CompactTextString(m) } func (*MpGracefulRestartState) ProtoMessage() {} -func (*MpGracefulRestartState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{138} } +func (*MpGracefulRestartState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{95} } func (m *MpGracefulRestartState) GetEnabled() bool { if m != nil { @@ -4520,7 +4049,7 @@ type MpGracefulRestart struct { func (m *MpGracefulRestart) Reset() { *m = MpGracefulRestart{} } func (m *MpGracefulRestart) String() string { return proto.CompactTextString(m) } func (*MpGracefulRestart) ProtoMessage() {} -func (*MpGracefulRestart) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{139} } +func (*MpGracefulRestart) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{96} } func (m *MpGracefulRestart) GetConfig() *MpGracefulRestartConfig { if m != nil { @@ -4544,7 +4073,7 @@ type AfiSafiConfig struct { func (m *AfiSafiConfig) Reset() { *m = AfiSafiConfig{} } func (m *AfiSafiConfig) String() string { return proto.CompactTextString(m) } func (*AfiSafiConfig) ProtoMessage() {} -func (*AfiSafiConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{140} } +func (*AfiSafiConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{97} } func (m *AfiSafiConfig) GetFamily() uint32 { if m != nil { @@ -4570,7 +4099,7 @@ type AfiSafiState struct { func (m *AfiSafiState) Reset() { *m = AfiSafiState{} } func (m *AfiSafiState) String() string { return proto.CompactTextString(m) } func (*AfiSafiState) ProtoMessage() {} -func (*AfiSafiState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{141} } +func (*AfiSafiState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{98} } func (m *AfiSafiState) GetFamily() uint32 { if m != nil { @@ -4613,7 +4142,7 @@ type RouteSelectionOptionsConfig struct { func (m *RouteSelectionOptionsConfig) Reset() { *m = RouteSelectionOptionsConfig{} } func (m *RouteSelectionOptionsConfig) String() string { return proto.CompactTextString(m) } func (*RouteSelectionOptionsConfig) ProtoMessage() {} -func (*RouteSelectionOptionsConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{142} } +func (*RouteSelectionOptionsConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{99} } func (m *RouteSelectionOptionsConfig) GetAlwaysCompareMed() bool { if m != nil { @@ -4677,7 +4206,7 @@ type RouteSelectionOptionsState struct { func (m *RouteSelectionOptionsState) Reset() { *m = RouteSelectionOptionsState{} } func (m *RouteSelectionOptionsState) String() string { return proto.CompactTextString(m) } func (*RouteSelectionOptionsState) ProtoMessage() {} -func (*RouteSelectionOptionsState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{143} } +func (*RouteSelectionOptionsState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{100} } func (m *RouteSelectionOptionsState) GetAlwaysCompareMed() bool { if m != nil { @@ -4736,7 +4265,7 @@ type RouteSelectionOptions struct { func (m *RouteSelectionOptions) Reset() { *m = RouteSelectionOptions{} } func (m *RouteSelectionOptions) String() string { return proto.CompactTextString(m) } func (*RouteSelectionOptions) ProtoMessage() {} -func (*RouteSelectionOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{144} } +func (*RouteSelectionOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{101} } func (m *RouteSelectionOptions) GetConfig() *RouteSelectionOptionsConfig { if m != nil { @@ -4759,7 +4288,7 @@ type UseMultiplePathsConfig struct { func (m *UseMultiplePathsConfig) Reset() { *m = UseMultiplePathsConfig{} } func (m *UseMultiplePathsConfig) String() string { return proto.CompactTextString(m) } func (*UseMultiplePathsConfig) ProtoMessage() {} -func (*UseMultiplePathsConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{145} } +func (*UseMultiplePathsConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{102} } func (m *UseMultiplePathsConfig) GetEnabled() bool { if m != nil { @@ -4775,7 +4304,7 @@ type UseMultiplePathsState struct { func (m *UseMultiplePathsState) Reset() { *m = UseMultiplePathsState{} } func (m *UseMultiplePathsState) String() string { return proto.CompactTextString(m) } func (*UseMultiplePathsState) ProtoMessage() {} -func (*UseMultiplePathsState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{146} } +func (*UseMultiplePathsState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{103} } func (m *UseMultiplePathsState) GetEnabled() bool { if m != nil { @@ -4792,7 +4321,7 @@ type EbgpConfig struct { func (m *EbgpConfig) Reset() { *m = EbgpConfig{} } func (m *EbgpConfig) String() string { return proto.CompactTextString(m) } func (*EbgpConfig) ProtoMessage() {} -func (*EbgpConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{147} } +func (*EbgpConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{104} } func (m *EbgpConfig) GetAllowMultipleAs() bool { if m != nil { @@ -4816,7 +4345,7 @@ type EbgpState struct { func (m *EbgpState) Reset() { *m = EbgpState{} } func (m *EbgpState) String() string { return proto.CompactTextString(m) } func (*EbgpState) ProtoMessage() {} -func (*EbgpState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{148} } +func (*EbgpState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{105} } func (m *EbgpState) GetAllowMultipleAs() bool { if m != nil { @@ -4840,7 +4369,7 @@ type Ebgp struct { func (m *Ebgp) Reset() { *m = Ebgp{} } func (m *Ebgp) String() string { return proto.CompactTextString(m) } func (*Ebgp) ProtoMessage() {} -func (*Ebgp) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{149} } +func (*Ebgp) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{106} } func (m *Ebgp) GetConfig() *EbgpConfig { if m != nil { @@ -4863,7 +4392,7 @@ type IbgpConfig struct { func (m *IbgpConfig) Reset() { *m = IbgpConfig{} } func (m *IbgpConfig) String() string { return proto.CompactTextString(m) } func (*IbgpConfig) ProtoMessage() {} -func (*IbgpConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{150} } +func (*IbgpConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{107} } func (m *IbgpConfig) GetMaximumPaths() uint32 { if m != nil { @@ -4879,7 +4408,7 @@ type IbgpState struct { func (m *IbgpState) Reset() { *m = IbgpState{} } func (m *IbgpState) String() string { return proto.CompactTextString(m) } func (*IbgpState) ProtoMessage() {} -func (*IbgpState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{151} } +func (*IbgpState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{108} } func (m *IbgpState) GetMaximumPaths() uint32 { if m != nil { @@ -4896,7 +4425,7 @@ type Ibgp struct { func (m *Ibgp) Reset() { *m = Ibgp{} } func (m *Ibgp) String() string { return proto.CompactTextString(m) } func (*Ibgp) ProtoMessage() {} -func (*Ibgp) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{152} } +func (*Ibgp) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{109} } func (m *Ibgp) GetConfig() *IbgpConfig { if m != nil { @@ -4922,7 +4451,7 @@ type UseMultiplePaths struct { func (m *UseMultiplePaths) Reset() { *m = UseMultiplePaths{} } func (m *UseMultiplePaths) String() string { return proto.CompactTextString(m) } func (*UseMultiplePaths) ProtoMessage() {} -func (*UseMultiplePaths) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{153} } +func (*UseMultiplePaths) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{110} } func (m *UseMultiplePaths) GetConfig() *UseMultiplePathsConfig { if m != nil { @@ -4959,7 +4488,7 @@ type RouteTargetMembershipConfig struct { func (m *RouteTargetMembershipConfig) Reset() { *m = RouteTargetMembershipConfig{} } func (m *RouteTargetMembershipConfig) String() string { return proto.CompactTextString(m) } func (*RouteTargetMembershipConfig) ProtoMessage() {} -func (*RouteTargetMembershipConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{154} } +func (*RouteTargetMembershipConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{111} } func (m *RouteTargetMembershipConfig) GetDeferralTime() uint32 { if m != nil { @@ -4975,7 +4504,7 @@ type RouteTargetMembershipState struct { func (m *RouteTargetMembershipState) Reset() { *m = RouteTargetMembershipState{} } func (m *RouteTargetMembershipState) String() string { return proto.CompactTextString(m) } func (*RouteTargetMembershipState) ProtoMessage() {} -func (*RouteTargetMembershipState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{155} } +func (*RouteTargetMembershipState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{112} } func (m *RouteTargetMembershipState) GetDeferralTime() uint32 { if m != nil { @@ -4992,7 +4521,7 @@ type RouteTargetMembership struct { func (m *RouteTargetMembership) Reset() { *m = RouteTargetMembership{} } func (m *RouteTargetMembership) String() string { return proto.CompactTextString(m) } func (*RouteTargetMembership) ProtoMessage() {} -func (*RouteTargetMembership) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{156} } +func (*RouteTargetMembership) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{113} } func (m *RouteTargetMembership) GetConfig() *RouteTargetMembershipConfig { if m != nil { @@ -5017,7 +4546,7 @@ func (m *LongLivedGracefulRestartConfig) Reset() { *m = LongLivedGracefu func (m *LongLivedGracefulRestartConfig) String() string { return proto.CompactTextString(m) } func (*LongLivedGracefulRestartConfig) ProtoMessage() {} func (*LongLivedGracefulRestartConfig) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{157} + return fileDescriptor0, []int{114} } func (m *LongLivedGracefulRestartConfig) GetEnabled() bool { @@ -5045,7 +4574,7 @@ type LongLivedGracefulRestartState struct { func (m *LongLivedGracefulRestartState) Reset() { *m = LongLivedGracefulRestartState{} } func (m *LongLivedGracefulRestartState) String() string { return proto.CompactTextString(m) } func (*LongLivedGracefulRestartState) ProtoMessage() {} -func (*LongLivedGracefulRestartState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{158} } +func (*LongLivedGracefulRestartState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{115} } func (m *LongLivedGracefulRestartState) GetEnabled() bool { if m != nil { @@ -5090,7 +4619,7 @@ type LongLivedGracefulRestart struct { func (m *LongLivedGracefulRestart) Reset() { *m = LongLivedGracefulRestart{} } func (m *LongLivedGracefulRestart) String() string { return proto.CompactTextString(m) } func (*LongLivedGracefulRestart) ProtoMessage() {} -func (*LongLivedGracefulRestart) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{159} } +func (*LongLivedGracefulRestart) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{116} } func (m *LongLivedGracefulRestart) GetConfig() *LongLivedGracefulRestartConfig { if m != nil { @@ -5133,7 +4662,7 @@ type AfiSafi struct { func (m *AfiSafi) Reset() { *m = AfiSafi{} } func (m *AfiSafi) String() string { return proto.CompactTextString(m) } func (*AfiSafi) ProtoMessage() {} -func (*AfiSafi) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{160} } +func (*AfiSafi) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{117} } func (m *AfiSafi) GetMpGracefulRestart() *MpGracefulRestart { if m != nil { @@ -5206,7 +4735,7 @@ type AddPathsConfig struct { func (m *AddPathsConfig) Reset() { *m = AddPathsConfig{} } func (m *AddPathsConfig) String() string { return proto.CompactTextString(m) } func (*AddPathsConfig) ProtoMessage() {} -func (*AddPathsConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{161} } +func (*AddPathsConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{118} } func (m *AddPathsConfig) GetReceive() bool { if m != nil { @@ -5230,7 +4759,7 @@ type AddPathsState struct { func (m *AddPathsState) Reset() { *m = AddPathsState{} } func (m *AddPathsState) String() string { return proto.CompactTextString(m) } func (*AddPathsState) ProtoMessage() {} -func (*AddPathsState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{162} } +func (*AddPathsState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{119} } func (m *AddPathsState) GetReceive() bool { if m != nil { @@ -5254,7 +4783,7 @@ type AddPaths struct { func (m *AddPaths) Reset() { *m = AddPaths{} } func (m *AddPaths) String() string { return proto.CompactTextString(m) } func (*AddPaths) ProtoMessage() {} -func (*AddPaths) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{163} } +func (*AddPaths) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{120} } func (m *AddPaths) GetConfig() *AddPathsConfig { if m != nil { @@ -5279,7 +4808,7 @@ type Prefix struct { func (m *Prefix) Reset() { *m = Prefix{} } func (m *Prefix) String() string { return proto.CompactTextString(m) } func (*Prefix) ProtoMessage() {} -func (*Prefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{164} } +func (*Prefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{121} } func (m *Prefix) GetIpPrefix() string { if m != nil { @@ -5312,7 +4841,7 @@ type DefinedSet struct { func (m *DefinedSet) Reset() { *m = DefinedSet{} } func (m *DefinedSet) String() string { return proto.CompactTextString(m) } func (*DefinedSet) ProtoMessage() {} -func (*DefinedSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{165} } +func (*DefinedSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{122} } func (m *DefinedSet) GetType() DefinedType { if m != nil { @@ -5350,7 +4879,7 @@ type MatchSet struct { func (m *MatchSet) Reset() { *m = MatchSet{} } func (m *MatchSet) String() string { return proto.CompactTextString(m) } func (*MatchSet) ProtoMessage() {} -func (*MatchSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{166} } +func (*MatchSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{123} } func (m *MatchSet) GetType() MatchType { if m != nil { @@ -5374,7 +4903,7 @@ type AsPathLength struct { func (m *AsPathLength) Reset() { *m = AsPathLength{} } func (m *AsPathLength) String() string { return proto.CompactTextString(m) } func (*AsPathLength) ProtoMessage() {} -func (*AsPathLength) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{167} } +func (*AsPathLength) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{124} } func (m *AsPathLength) GetType() AsPathLengthType { if m != nil { @@ -5407,7 +4936,7 @@ type Conditions struct { func (m *Conditions) Reset() { *m = Conditions{} } func (m *Conditions) String() string { return proto.CompactTextString(m) } func (*Conditions) ProtoMessage() {} -func (*Conditions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{168} } +func (*Conditions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{125} } func (m *Conditions) GetPrefixSet() *MatchSet { if m != nil { @@ -5494,7 +5023,7 @@ type CommunityAction struct { func (m *CommunityAction) Reset() { *m = CommunityAction{} } func (m *CommunityAction) String() string { return proto.CompactTextString(m) } func (*CommunityAction) ProtoMessage() {} -func (*CommunityAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{169} } +func (*CommunityAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{126} } func (m *CommunityAction) GetType() CommunityActionType { if m != nil { @@ -5518,7 +5047,7 @@ type MedAction struct { func (m *MedAction) Reset() { *m = MedAction{} } func (m *MedAction) String() string { return proto.CompactTextString(m) } func (*MedAction) ProtoMessage() {} -func (*MedAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{170} } +func (*MedAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{127} } func (m *MedAction) GetType() MedActionType { if m != nil { @@ -5543,7 +5072,7 @@ type AsPrependAction struct { func (m *AsPrependAction) Reset() { *m = AsPrependAction{} } func (m *AsPrependAction) String() string { return proto.CompactTextString(m) } func (*AsPrependAction) ProtoMessage() {} -func (*AsPrependAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{171} } +func (*AsPrependAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{128} } func (m *AsPrependAction) GetAsn() uint32 { if m != nil { @@ -5574,7 +5103,7 @@ type NexthopAction struct { func (m *NexthopAction) Reset() { *m = NexthopAction{} } func (m *NexthopAction) String() string { return proto.CompactTextString(m) } func (*NexthopAction) ProtoMessage() {} -func (*NexthopAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{172} } +func (*NexthopAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{129} } func (m *NexthopAction) GetAddress() string { if m != nil { @@ -5597,7 +5126,7 @@ type LocalPrefAction struct { func (m *LocalPrefAction) Reset() { *m = LocalPrefAction{} } func (m *LocalPrefAction) String() string { return proto.CompactTextString(m) } func (*LocalPrefAction) ProtoMessage() {} -func (*LocalPrefAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{173} } +func (*LocalPrefAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{130} } func (m *LocalPrefAction) GetValue() uint32 { if m != nil { @@ -5620,7 +5149,7 @@ type Actions struct { func (m *Actions) Reset() { *m = Actions{} } func (m *Actions) String() string { return proto.CompactTextString(m) } func (*Actions) ProtoMessage() {} -func (*Actions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{174} } +func (*Actions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{131} } func (m *Actions) GetRouteAction() RouteAction { if m != nil { @@ -5687,7 +5216,7 @@ type Statement struct { func (m *Statement) Reset() { *m = Statement{} } func (m *Statement) String() string { return proto.CompactTextString(m) } func (*Statement) ProtoMessage() {} -func (*Statement) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{175} } +func (*Statement) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{132} } func (m *Statement) GetName() string { if m != nil { @@ -5718,7 +5247,7 @@ type Policy struct { func (m *Policy) Reset() { *m = Policy{} } func (m *Policy) String() string { return proto.CompactTextString(m) } func (*Policy) ProtoMessage() {} -func (*Policy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{176} } +func (*Policy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{133} } func (m *Policy) GetName() string { if m != nil { @@ -5735,23 +5264,23 @@ func (m *Policy) GetStatements() []*Statement { } type PolicyAssignment struct { - Type PolicyType `protobuf:"varint,1,opt,name=type,enum=gobgpapi.PolicyType" json:"type,omitempty"` - Resource Resource `protobuf:"varint,2,opt,name=resource,enum=gobgpapi.Resource" json:"resource,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` - Policies []*Policy `protobuf:"bytes,4,rep,name=policies" json:"policies,omitempty"` - Default RouteAction `protobuf:"varint,5,opt,name=default,enum=gobgpapi.RouteAction" json:"default,omitempty"` + Type PolicyDirection `protobuf:"varint,1,opt,name=type,enum=gobgpapi.PolicyDirection" json:"type,omitempty"` + Resource Resource `protobuf:"varint,2,opt,name=resource,enum=gobgpapi.Resource" json:"resource,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` + Policies []*Policy `protobuf:"bytes,4,rep,name=policies" json:"policies,omitempty"` + Default RouteAction `protobuf:"varint,5,opt,name=default,enum=gobgpapi.RouteAction" json:"default,omitempty"` } func (m *PolicyAssignment) Reset() { *m = PolicyAssignment{} } func (m *PolicyAssignment) String() string { return proto.CompactTextString(m) } func (*PolicyAssignment) ProtoMessage() {} -func (*PolicyAssignment) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{177} } +func (*PolicyAssignment) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{134} } -func (m *PolicyAssignment) GetType() PolicyType { +func (m *PolicyAssignment) GetType() PolicyDirection { if m != nil { return m.Type } - return PolicyType_IN + return PolicyDirection_UNKNOWN } func (m *PolicyAssignment) GetResource() Resource { @@ -5790,7 +5319,7 @@ type RoutingPolicy struct { func (m *RoutingPolicy) Reset() { *m = RoutingPolicy{} } func (m *RoutingPolicy) String() string { return proto.CompactTextString(m) } func (*RoutingPolicy) ProtoMessage() {} -func (*RoutingPolicy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{178} } +func (*RoutingPolicy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{135} } func (m *RoutingPolicy) GetDefinedSet() []*DefinedSet { if m != nil { @@ -5817,7 +5346,7 @@ type Roa struct { func (m *Roa) Reset() { *m = Roa{} } func (m *Roa) String() string { return proto.CompactTextString(m) } func (*Roa) ProtoMessage() {} -func (*Roa) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{179} } +func (*Roa) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{136} } func (m *Roa) GetAs() uint32 { if m != nil { @@ -5854,38 +5383,6 @@ func (m *Roa) GetConf() *RPKIConf { return nil } -type GetRoaRequest struct { - Family uint32 `protobuf:"varint,1,opt,name=family" json:"family,omitempty"` -} - -func (m *GetRoaRequest) Reset() { *m = GetRoaRequest{} } -func (m *GetRoaRequest) String() string { return proto.CompactTextString(m) } -func (*GetRoaRequest) ProtoMessage() {} -func (*GetRoaRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{180} } - -func (m *GetRoaRequest) GetFamily() uint32 { - if m != nil { - return m.Family - } - return 0 -} - -type GetRoaResponse struct { - Roas []*Roa `protobuf:"bytes,1,rep,name=roas" json:"roas,omitempty"` -} - -func (m *GetRoaResponse) Reset() { *m = GetRoaResponse{} } -func (m *GetRoaResponse) String() string { return proto.CompactTextString(m) } -func (*GetRoaResponse) ProtoMessage() {} -func (*GetRoaResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{181} } - -func (m *GetRoaResponse) GetRoas() []*Roa { - if m != nil { - return m.Roas - } - return nil -} - type Vrf struct { Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` // Route Distinguisher must be one of @@ -5909,7 +5406,7 @@ type Vrf struct { func (m *Vrf) Reset() { *m = Vrf{} } func (m *Vrf) String() string { return proto.CompactTextString(m) } func (*Vrf) ProtoMessage() {} -func (*Vrf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{182} } +func (*Vrf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{137} } func (m *Vrf) GetName() string { if m != nil { @@ -5954,7 +5451,7 @@ type DefaultRouteDistance struct { func (m *DefaultRouteDistance) Reset() { *m = DefaultRouteDistance{} } func (m *DefaultRouteDistance) String() string { return proto.CompactTextString(m) } func (*DefaultRouteDistance) ProtoMessage() {} -func (*DefaultRouteDistance) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{183} } +func (*DefaultRouteDistance) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{138} } func (m *DefaultRouteDistance) GetExternalRouteDistance() uint32 { if m != nil { @@ -5987,7 +5484,7 @@ type Global struct { func (m *Global) Reset() { *m = Global{} } func (m *Global) String() string { return proto.CompactTextString(m) } func (*Global) ProtoMessage() {} -func (*Global) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{184} } +func (*Global) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{139} } func (m *Global) GetAs() uint32 { if m != nil { @@ -6075,7 +5572,7 @@ type Confederation struct { func (m *Confederation) Reset() { *m = Confederation{} } func (m *Confederation) String() string { return proto.CompactTextString(m) } func (*Confederation) ProtoMessage() {} -func (*Confederation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{185} } +func (*Confederation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{140} } func (m *Confederation) GetEnabled() bool { if m != nil { @@ -6098,268 +5595,273 @@ func (m *Confederation) GetMemberAsList() []uint32 { return nil } -type TableInfo struct { - Type Resource `protobuf:"varint,1,opt,name=type,enum=gobgpapi.Resource" json:"type,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - Family uint32 `protobuf:"varint,3,opt,name=family" json:"family,omitempty"` - NumDestination uint64 `protobuf:"varint,4,opt,name=num_destination,json=numDestination" json:"num_destination,omitempty"` - NumPath uint64 `protobuf:"varint,5,opt,name=num_path,json=numPath" json:"num_path,omitempty"` - NumAccepted uint64 `protobuf:"varint,6,opt,name=num_accepted,json=numAccepted" json:"num_accepted,omitempty"` +type RPKIConf struct { + Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` + RemotePort uint32 `protobuf:"varint,2,opt,name=remote_port,json=remotePort" json:"remote_port,omitempty"` } -func (m *TableInfo) Reset() { *m = TableInfo{} } -func (m *TableInfo) String() string { return proto.CompactTextString(m) } -func (*TableInfo) ProtoMessage() {} -func (*TableInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{186} } +func (m *RPKIConf) Reset() { *m = RPKIConf{} } +func (m *RPKIConf) String() string { return proto.CompactTextString(m) } +func (*RPKIConf) ProtoMessage() {} +func (*RPKIConf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{141} } -func (m *TableInfo) GetType() Resource { +func (m *RPKIConf) GetAddress() string { if m != nil { - return m.Type + return m.Address } - return Resource_GLOBAL + return "" } -func (m *TableInfo) GetName() string { +func (m *RPKIConf) GetRemotePort() uint32 { if m != nil { - return m.Name + return m.RemotePort } - return "" + return 0 +} + +type RPKIState struct { + Uptime int64 `protobuf:"varint,1,opt,name=uptime" json:"uptime,omitempty"` + Downtime int64 `protobuf:"varint,2,opt,name=downtime" json:"downtime,omitempty"` + Up bool `protobuf:"varint,3,opt,name=up" json:"up,omitempty"` + RecordIpv4 uint32 `protobuf:"varint,4,opt,name=record_ipv4,json=recordIpv4" json:"record_ipv4,omitempty"` + RecordIpv6 uint32 `protobuf:"varint,5,opt,name=record_ipv6,json=recordIpv6" json:"record_ipv6,omitempty"` + PrefixIpv4 uint32 `protobuf:"varint,6,opt,name=prefix_ipv4,json=prefixIpv4" json:"prefix_ipv4,omitempty"` + PrefixIpv6 uint32 `protobuf:"varint,7,opt,name=prefix_ipv6,json=prefixIpv6" json:"prefix_ipv6,omitempty"` + Serial uint32 `protobuf:"varint,8,opt,name=serial" json:"serial,omitempty"` + ReceivedIpv4 int64 `protobuf:"varint,9,opt,name=received_ipv4,json=receivedIpv4" json:"received_ipv4,omitempty"` + ReceivedIpv6 int64 `protobuf:"varint,10,opt,name=received_ipv6,json=receivedIpv6" json:"received_ipv6,omitempty"` + SerialNotify int64 `protobuf:"varint,11,opt,name=serial_notify,json=serialNotify" json:"serial_notify,omitempty"` + CacheReset int64 `protobuf:"varint,12,opt,name=cache_reset,json=cacheReset" json:"cache_reset,omitempty"` + CacheResponse int64 `protobuf:"varint,13,opt,name=cache_response,json=cacheResponse" json:"cache_response,omitempty"` + EndOfData int64 `protobuf:"varint,14,opt,name=end_of_data,json=endOfData" json:"end_of_data,omitempty"` + Error int64 `protobuf:"varint,15,opt,name=error" json:"error,omitempty"` + SerialQuery int64 `protobuf:"varint,16,opt,name=serial_query,json=serialQuery" json:"serial_query,omitempty"` + ResetQuery int64 `protobuf:"varint,17,opt,name=reset_query,json=resetQuery" json:"reset_query,omitempty"` } -func (m *TableInfo) GetFamily() uint32 { +func (m *RPKIState) Reset() { *m = RPKIState{} } +func (m *RPKIState) String() string { return proto.CompactTextString(m) } +func (*RPKIState) ProtoMessage() {} +func (*RPKIState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{142} } + +func (m *RPKIState) GetUptime() int64 { if m != nil { - return m.Family + return m.Uptime } return 0 } -func (m *TableInfo) GetNumDestination() uint64 { +func (m *RPKIState) GetDowntime() int64 { if m != nil { - return m.NumDestination + return m.Downtime } return 0 } -func (m *TableInfo) GetNumPath() uint64 { +func (m *RPKIState) GetUp() bool { if m != nil { - return m.NumPath + return m.Up } - return 0 + return false } -func (m *TableInfo) GetNumAccepted() uint64 { +func (m *RPKIState) GetRecordIpv4() uint32 { if m != nil { - return m.NumAccepted + return m.RecordIpv4 } return 0 } -type GetRibInfoRequest struct { - Info *TableInfo `protobuf:"bytes,1,opt,name=info" json:"info,omitempty"` +func (m *RPKIState) GetRecordIpv6() uint32 { + if m != nil { + return m.RecordIpv6 + } + return 0 } -func (m *GetRibInfoRequest) Reset() { *m = GetRibInfoRequest{} } -func (m *GetRibInfoRequest) String() string { return proto.CompactTextString(m) } -func (*GetRibInfoRequest) ProtoMessage() {} -func (*GetRibInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{187} } +func (m *RPKIState) GetPrefixIpv4() uint32 { + if m != nil { + return m.PrefixIpv4 + } + return 0 +} -func (m *GetRibInfoRequest) GetInfo() *TableInfo { +func (m *RPKIState) GetPrefixIpv6() uint32 { if m != nil { - return m.Info + return m.PrefixIpv6 } - return nil + return 0 } -type GetRibInfoResponse struct { - Info *TableInfo `protobuf:"bytes,1,opt,name=info" json:"info,omitempty"` +func (m *RPKIState) GetSerial() uint32 { + if m != nil { + return m.Serial + } + return 0 } -func (m *GetRibInfoResponse) Reset() { *m = GetRibInfoResponse{} } -func (m *GetRibInfoResponse) String() string { return proto.CompactTextString(m) } -func (*GetRibInfoResponse) ProtoMessage() {} -func (*GetRibInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{188} } +func (m *RPKIState) GetReceivedIpv4() int64 { + if m != nil { + return m.ReceivedIpv4 + } + return 0 +} -func (m *GetRibInfoResponse) GetInfo() *TableInfo { +func (m *RPKIState) GetReceivedIpv6() int64 { if m != nil { - return m.Info + return m.ReceivedIpv6 } - return nil + return 0 } -type AddCollectorRequest struct { - Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName" json:"db_name,omitempty"` - TableDumpInterval uint64 `protobuf:"varint,3,opt,name=table_dump_interval,json=tableDumpInterval" json:"table_dump_interval,omitempty"` +func (m *RPKIState) GetSerialNotify() int64 { + if m != nil { + return m.SerialNotify + } + return 0 } -func (m *AddCollectorRequest) Reset() { *m = AddCollectorRequest{} } -func (m *AddCollectorRequest) String() string { return proto.CompactTextString(m) } -func (*AddCollectorRequest) ProtoMessage() {} -func (*AddCollectorRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{189} } +func (m *RPKIState) GetCacheReset() int64 { + if m != nil { + return m.CacheReset + } + return 0 +} -func (m *AddCollectorRequest) GetUrl() string { +func (m *RPKIState) GetCacheResponse() int64 { if m != nil { - return m.Url + return m.CacheResponse } - return "" + return 0 } -func (m *AddCollectorRequest) GetDbName() string { +func (m *RPKIState) GetEndOfData() int64 { if m != nil { - return m.DbName + return m.EndOfData } - return "" + return 0 } -func (m *AddCollectorRequest) GetTableDumpInterval() uint64 { +func (m *RPKIState) GetError() int64 { if m != nil { - return m.TableDumpInterval + return m.Error } return 0 } -type AddCollectorResponse struct { +func (m *RPKIState) GetSerialQuery() int64 { + if m != nil { + return m.SerialQuery + } + return 0 } -func (m *AddCollectorResponse) Reset() { *m = AddCollectorResponse{} } -func (m *AddCollectorResponse) String() string { return proto.CompactTextString(m) } -func (*AddCollectorResponse) ProtoMessage() {} -func (*AddCollectorResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{190} } +func (m *RPKIState) GetResetQuery() int64 { + if m != nil { + return m.ResetQuery + } + return 0 +} -type ShutdownRequest struct { +type Rpki struct { + Conf *RPKIConf `protobuf:"bytes,1,opt,name=conf" json:"conf,omitempty"` + State *RPKIState `protobuf:"bytes,2,opt,name=state" json:"state,omitempty"` } -func (m *ShutdownRequest) Reset() { *m = ShutdownRequest{} } -func (m *ShutdownRequest) String() string { return proto.CompactTextString(m) } -func (*ShutdownRequest) ProtoMessage() {} -func (*ShutdownRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{191} } +func (m *Rpki) Reset() { *m = Rpki{} } +func (m *Rpki) String() string { return proto.CompactTextString(m) } +func (*Rpki) ProtoMessage() {} +func (*Rpki) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{143} } -type ShutdownResponse struct { +func (m *Rpki) GetConf() *RPKIConf { + if m != nil { + return m.Conf + } + return nil } -func (m *ShutdownResponse) Reset() { *m = ShutdownResponse{} } -func (m *ShutdownResponse) String() string { return proto.CompactTextString(m) } -func (*ShutdownResponse) ProtoMessage() {} -func (*ShutdownResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{192} } +func (m *Rpki) GetState() *RPKIState { + if m != nil { + return m.State + } + return nil +} func init() { - proto.RegisterType((*GetNeighborRequest)(nil), "gobgpapi.GetNeighborRequest") - proto.RegisterType((*GetNeighborResponse)(nil), "gobgpapi.GetNeighborResponse") - proto.RegisterType((*Arguments)(nil), "gobgpapi.Arguments") - proto.RegisterType((*AddPathRequest)(nil), "gobgpapi.AddPathRequest") - proto.RegisterType((*AddPathResponse)(nil), "gobgpapi.AddPathResponse") - proto.RegisterType((*DeletePathRequest)(nil), "gobgpapi.DeletePathRequest") - proto.RegisterType((*DeletePathResponse)(nil), "gobgpapi.DeletePathResponse") - proto.RegisterType((*AddNeighborRequest)(nil), "gobgpapi.AddNeighborRequest") - proto.RegisterType((*AddNeighborResponse)(nil), "gobgpapi.AddNeighborResponse") - proto.RegisterType((*DeleteNeighborRequest)(nil), "gobgpapi.DeleteNeighborRequest") - proto.RegisterType((*DeleteNeighborResponse)(nil), "gobgpapi.DeleteNeighborResponse") - proto.RegisterType((*UpdateNeighborRequest)(nil), "gobgpapi.UpdateNeighborRequest") - proto.RegisterType((*UpdateNeighborResponse)(nil), "gobgpapi.UpdateNeighborResponse") + proto.RegisterType((*StartBgpRequest)(nil), "gobgpapi.StartBgpRequest") + proto.RegisterType((*StopBgpRequest)(nil), "gobgpapi.StopBgpRequest") + proto.RegisterType((*GetBgpRequest)(nil), "gobgpapi.GetBgpRequest") + proto.RegisterType((*GetBgpResponse)(nil), "gobgpapi.GetBgpResponse") + proto.RegisterType((*AddPeerRequest)(nil), "gobgpapi.AddPeerRequest") + proto.RegisterType((*DeletePeerRequest)(nil), "gobgpapi.DeletePeerRequest") + proto.RegisterType((*ListPeerRequest)(nil), "gobgpapi.ListPeerRequest") + proto.RegisterType((*ListPeerResponse)(nil), "gobgpapi.ListPeerResponse") + proto.RegisterType((*UpdatePeerRequest)(nil), "gobgpapi.UpdatePeerRequest") + proto.RegisterType((*UpdatePeerResponse)(nil), "gobgpapi.UpdatePeerResponse") + proto.RegisterType((*ResetPeerRequest)(nil), "gobgpapi.ResetPeerRequest") + proto.RegisterType((*ShutdownPeerRequest)(nil), "gobgpapi.ShutdownPeerRequest") + proto.RegisterType((*EnablePeerRequest)(nil), "gobgpapi.EnablePeerRequest") + proto.RegisterType((*DisablePeerRequest)(nil), "gobgpapi.DisablePeerRequest") + proto.RegisterType((*MonitorPeerRequest)(nil), "gobgpapi.MonitorPeerRequest") + proto.RegisterType((*MonitorPeerResponse)(nil), "gobgpapi.MonitorPeerResponse") proto.RegisterType((*AddPeerGroupRequest)(nil), "gobgpapi.AddPeerGroupRequest") - proto.RegisterType((*AddPeerGroupResponse)(nil), "gobgpapi.AddPeerGroupResponse") proto.RegisterType((*DeletePeerGroupRequest)(nil), "gobgpapi.DeletePeerGroupRequest") - proto.RegisterType((*DeletePeerGroupResponse)(nil), "gobgpapi.DeletePeerGroupResponse") proto.RegisterType((*UpdatePeerGroupRequest)(nil), "gobgpapi.UpdatePeerGroupRequest") proto.RegisterType((*UpdatePeerGroupResponse)(nil), "gobgpapi.UpdatePeerGroupResponse") proto.RegisterType((*AddDynamicNeighborRequest)(nil), "gobgpapi.AddDynamicNeighborRequest") - proto.RegisterType((*AddDynamicNeighborResponse)(nil), "gobgpapi.AddDynamicNeighborResponse") - proto.RegisterType((*ResetNeighborRequest)(nil), "gobgpapi.ResetNeighborRequest") - proto.RegisterType((*ResetNeighborResponse)(nil), "gobgpapi.ResetNeighborResponse") - proto.RegisterType((*SoftResetNeighborRequest)(nil), "gobgpapi.SoftResetNeighborRequest") - proto.RegisterType((*SoftResetNeighborResponse)(nil), "gobgpapi.SoftResetNeighborResponse") - proto.RegisterType((*ShutdownNeighborRequest)(nil), "gobgpapi.ShutdownNeighborRequest") - proto.RegisterType((*ShutdownNeighborResponse)(nil), "gobgpapi.ShutdownNeighborResponse") - proto.RegisterType((*EnableNeighborRequest)(nil), "gobgpapi.EnableNeighborRequest") - proto.RegisterType((*EnableNeighborResponse)(nil), "gobgpapi.EnableNeighborResponse") - proto.RegisterType((*DisableNeighborRequest)(nil), "gobgpapi.DisableNeighborRequest") - proto.RegisterType((*DisableNeighborResponse)(nil), "gobgpapi.DisableNeighborResponse") - proto.RegisterType((*UpdatePolicyRequest)(nil), "gobgpapi.UpdatePolicyRequest") - proto.RegisterType((*UpdatePolicyResponse)(nil), "gobgpapi.UpdatePolicyResponse") - proto.RegisterType((*EnableMrtRequest)(nil), "gobgpapi.EnableMrtRequest") - proto.RegisterType((*EnableMrtResponse)(nil), "gobgpapi.EnableMrtResponse") - proto.RegisterType((*DisableMrtRequest)(nil), "gobgpapi.DisableMrtRequest") - proto.RegisterType((*DisableMrtResponse)(nil), "gobgpapi.DisableMrtResponse") - proto.RegisterType((*InjectMrtRequest)(nil), "gobgpapi.InjectMrtRequest") - proto.RegisterType((*InjectMrtResponse)(nil), "gobgpapi.InjectMrtResponse") - proto.RegisterType((*AddBmpRequest)(nil), "gobgpapi.AddBmpRequest") - proto.RegisterType((*AddBmpResponse)(nil), "gobgpapi.AddBmpResponse") - proto.RegisterType((*DeleteBmpRequest)(nil), "gobgpapi.DeleteBmpRequest") - proto.RegisterType((*DeleteBmpResponse)(nil), "gobgpapi.DeleteBmpResponse") - proto.RegisterType((*MonitorRibRequest)(nil), "gobgpapi.MonitorRibRequest") - proto.RegisterType((*RPKIConf)(nil), "gobgpapi.RPKIConf") - proto.RegisterType((*RPKIState)(nil), "gobgpapi.RPKIState") - proto.RegisterType((*Rpki)(nil), "gobgpapi.Rpki") - proto.RegisterType((*GetRpkiRequest)(nil), "gobgpapi.GetRpkiRequest") - proto.RegisterType((*GetRpkiResponse)(nil), "gobgpapi.GetRpkiResponse") - proto.RegisterType((*AddRpkiRequest)(nil), "gobgpapi.AddRpkiRequest") - proto.RegisterType((*AddRpkiResponse)(nil), "gobgpapi.AddRpkiResponse") - proto.RegisterType((*DeleteRpkiRequest)(nil), "gobgpapi.DeleteRpkiRequest") - proto.RegisterType((*DeleteRpkiResponse)(nil), "gobgpapi.DeleteRpkiResponse") - proto.RegisterType((*EnableRpkiRequest)(nil), "gobgpapi.EnableRpkiRequest") - proto.RegisterType((*EnableRpkiResponse)(nil), "gobgpapi.EnableRpkiResponse") - proto.RegisterType((*DisableRpkiRequest)(nil), "gobgpapi.DisableRpkiRequest") - proto.RegisterType((*DisableRpkiResponse)(nil), "gobgpapi.DisableRpkiResponse") - proto.RegisterType((*ResetRpkiRequest)(nil), "gobgpapi.ResetRpkiRequest") - proto.RegisterType((*ResetRpkiResponse)(nil), "gobgpapi.ResetRpkiResponse") - proto.RegisterType((*SoftResetRpkiRequest)(nil), "gobgpapi.SoftResetRpkiRequest") - proto.RegisterType((*SoftResetRpkiResponse)(nil), "gobgpapi.SoftResetRpkiResponse") - proto.RegisterType((*EnableZebraRequest)(nil), "gobgpapi.EnableZebraRequest") - proto.RegisterType((*EnableZebraResponse)(nil), "gobgpapi.EnableZebraResponse") - proto.RegisterType((*GetVrfRequest)(nil), "gobgpapi.GetVrfRequest") - proto.RegisterType((*GetVrfResponse)(nil), "gobgpapi.GetVrfResponse") + proto.RegisterType((*AddPathRequest)(nil), "gobgpapi.AddPathRequest") + proto.RegisterType((*AddPathResponse)(nil), "gobgpapi.AddPathResponse") + proto.RegisterType((*DeletePathRequest)(nil), "gobgpapi.DeletePathRequest") + proto.RegisterType((*ListPathRequest)(nil), "gobgpapi.ListPathRequest") + proto.RegisterType((*ListPathResponse)(nil), "gobgpapi.ListPathResponse") + proto.RegisterType((*AddPathStreamRequest)(nil), "gobgpapi.AddPathStreamRequest") + proto.RegisterType((*GetTableRequest)(nil), "gobgpapi.GetTableRequest") + proto.RegisterType((*GetTableResponse)(nil), "gobgpapi.GetTableResponse") + proto.RegisterType((*MonitorTableRequest)(nil), "gobgpapi.MonitorTableRequest") + proto.RegisterType((*MonitorTableResponse)(nil), "gobgpapi.MonitorTableResponse") proto.RegisterType((*AddVrfRequest)(nil), "gobgpapi.AddVrfRequest") - proto.RegisterType((*AddVrfResponse)(nil), "gobgpapi.AddVrfResponse") proto.RegisterType((*DeleteVrfRequest)(nil), "gobgpapi.DeleteVrfRequest") - proto.RegisterType((*DeleteVrfResponse)(nil), "gobgpapi.DeleteVrfResponse") - proto.RegisterType((*GetDefinedSetRequest)(nil), "gobgpapi.GetDefinedSetRequest") - proto.RegisterType((*GetDefinedSetResponse)(nil), "gobgpapi.GetDefinedSetResponse") + proto.RegisterType((*ListVrfRequest)(nil), "gobgpapi.ListVrfRequest") + proto.RegisterType((*ListVrfResponse)(nil), "gobgpapi.ListVrfResponse") + proto.RegisterType((*AddPolicyRequest)(nil), "gobgpapi.AddPolicyRequest") + proto.RegisterType((*DeletePolicyRequest)(nil), "gobgpapi.DeletePolicyRequest") + proto.RegisterType((*ListPolicyRequest)(nil), "gobgpapi.ListPolicyRequest") + proto.RegisterType((*ListPolicyResponse)(nil), "gobgpapi.ListPolicyResponse") + proto.RegisterType((*ReplacePolicyRequest)(nil), "gobgpapi.ReplacePolicyRequest") + proto.RegisterType((*UpdatePolicyRequest)(nil), "gobgpapi.UpdatePolicyRequest") proto.RegisterType((*AddDefinedSetRequest)(nil), "gobgpapi.AddDefinedSetRequest") - proto.RegisterType((*AddDefinedSetResponse)(nil), "gobgpapi.AddDefinedSetResponse") proto.RegisterType((*DeleteDefinedSetRequest)(nil), "gobgpapi.DeleteDefinedSetRequest") - proto.RegisterType((*DeleteDefinedSetResponse)(nil), "gobgpapi.DeleteDefinedSetResponse") + proto.RegisterType((*ListDefinedSetRequest)(nil), "gobgpapi.ListDefinedSetRequest") + proto.RegisterType((*ListDefinedSetResponse)(nil), "gobgpapi.ListDefinedSetResponse") proto.RegisterType((*ReplaceDefinedSetRequest)(nil), "gobgpapi.ReplaceDefinedSetRequest") - proto.RegisterType((*ReplaceDefinedSetResponse)(nil), "gobgpapi.ReplaceDefinedSetResponse") - proto.RegisterType((*GetStatementRequest)(nil), "gobgpapi.GetStatementRequest") - proto.RegisterType((*GetStatementResponse)(nil), "gobgpapi.GetStatementResponse") proto.RegisterType((*AddStatementRequest)(nil), "gobgpapi.AddStatementRequest") - proto.RegisterType((*AddStatementResponse)(nil), "gobgpapi.AddStatementResponse") proto.RegisterType((*DeleteStatementRequest)(nil), "gobgpapi.DeleteStatementRequest") - proto.RegisterType((*DeleteStatementResponse)(nil), "gobgpapi.DeleteStatementResponse") + proto.RegisterType((*ListStatementRequest)(nil), "gobgpapi.ListStatementRequest") + proto.RegisterType((*ListStatementResponse)(nil), "gobgpapi.ListStatementResponse") proto.RegisterType((*ReplaceStatementRequest)(nil), "gobgpapi.ReplaceStatementRequest") - proto.RegisterType((*ReplaceStatementResponse)(nil), "gobgpapi.ReplaceStatementResponse") - proto.RegisterType((*GetPolicyRequest)(nil), "gobgpapi.GetPolicyRequest") - proto.RegisterType((*GetPolicyResponse)(nil), "gobgpapi.GetPolicyResponse") - proto.RegisterType((*AddPolicyRequest)(nil), "gobgpapi.AddPolicyRequest") - proto.RegisterType((*AddPolicyResponse)(nil), "gobgpapi.AddPolicyResponse") - proto.RegisterType((*DeletePolicyRequest)(nil), "gobgpapi.DeletePolicyRequest") - proto.RegisterType((*DeletePolicyResponse)(nil), "gobgpapi.DeletePolicyResponse") - proto.RegisterType((*ReplacePolicyRequest)(nil), "gobgpapi.ReplacePolicyRequest") - proto.RegisterType((*ReplacePolicyResponse)(nil), "gobgpapi.ReplacePolicyResponse") - proto.RegisterType((*GetPolicyAssignmentRequest)(nil), "gobgpapi.GetPolicyAssignmentRequest") - proto.RegisterType((*GetPolicyAssignmentResponse)(nil), "gobgpapi.GetPolicyAssignmentResponse") proto.RegisterType((*AddPolicyAssignmentRequest)(nil), "gobgpapi.AddPolicyAssignmentRequest") - proto.RegisterType((*AddPolicyAssignmentResponse)(nil), "gobgpapi.AddPolicyAssignmentResponse") proto.RegisterType((*DeletePolicyAssignmentRequest)(nil), "gobgpapi.DeletePolicyAssignmentRequest") - proto.RegisterType((*DeletePolicyAssignmentResponse)(nil), "gobgpapi.DeletePolicyAssignmentResponse") + proto.RegisterType((*ListPolicyAssignmentRequest)(nil), "gobgpapi.ListPolicyAssignmentRequest") + proto.RegisterType((*ListPolicyAssignmentResponse)(nil), "gobgpapi.ListPolicyAssignmentResponse") proto.RegisterType((*ReplacePolicyAssignmentRequest)(nil), "gobgpapi.ReplacePolicyAssignmentRequest") - proto.RegisterType((*ReplacePolicyAssignmentResponse)(nil), "gobgpapi.ReplacePolicyAssignmentResponse") - proto.RegisterType((*GetServerRequest)(nil), "gobgpapi.GetServerRequest") - proto.RegisterType((*GetServerResponse)(nil), "gobgpapi.GetServerResponse") - proto.RegisterType((*StartServerRequest)(nil), "gobgpapi.StartServerRequest") - proto.RegisterType((*StartServerResponse)(nil), "gobgpapi.StartServerResponse") - proto.RegisterType((*StopServerRequest)(nil), "gobgpapi.StopServerRequest") - proto.RegisterType((*StopServerResponse)(nil), "gobgpapi.StopServerResponse") + proto.RegisterType((*AddRpkiRequest)(nil), "gobgpapi.AddRpkiRequest") + proto.RegisterType((*DeleteRpkiRequest)(nil), "gobgpapi.DeleteRpkiRequest") + proto.RegisterType((*ListRpkiRequest)(nil), "gobgpapi.ListRpkiRequest") + proto.RegisterType((*ListRpkiResponse)(nil), "gobgpapi.ListRpkiResponse") + proto.RegisterType((*EnableRpkiRequest)(nil), "gobgpapi.EnableRpkiRequest") + proto.RegisterType((*DisableRpkiRequest)(nil), "gobgpapi.DisableRpkiRequest") + proto.RegisterType((*ResetRpkiRequest)(nil), "gobgpapi.ResetRpkiRequest") + proto.RegisterType((*ListRpkiTableRequest)(nil), "gobgpapi.ListRpkiTableRequest") + proto.RegisterType((*ListRpkiTableResponse)(nil), "gobgpapi.ListRpkiTableResponse") + proto.RegisterType((*EnableZebraRequest)(nil), "gobgpapi.EnableZebraRequest") + proto.RegisterType((*EnableMrtRequest)(nil), "gobgpapi.EnableMrtRequest") + proto.RegisterType((*DisableMrtRequest)(nil), "gobgpapi.DisableMrtRequest") + proto.RegisterType((*AddBmpRequest)(nil), "gobgpapi.AddBmpRequest") + proto.RegisterType((*DeleteBmpRequest)(nil), "gobgpapi.DeleteBmpRequest") proto.RegisterType((*RPKIValidation)(nil), "gobgpapi.RPKIValidation") proto.RegisterType((*Path)(nil), "gobgpapi.Path") proto.RegisterType((*Destination)(nil), "gobgpapi.Destination") - proto.RegisterType((*Table)(nil), "gobgpapi.Table") - proto.RegisterType((*GetRibRequest)(nil), "gobgpapi.GetRibRequest") - proto.RegisterType((*GetRibResponse)(nil), "gobgpapi.GetRibResponse") proto.RegisterType((*TableLookupPrefix)(nil), "gobgpapi.TableLookupPrefix") - proto.RegisterType((*GetPathRequest)(nil), "gobgpapi.GetPathRequest") - proto.RegisterType((*ValidateRibRequest)(nil), "gobgpapi.ValidateRibRequest") - proto.RegisterType((*ValidateRibResponse)(nil), "gobgpapi.ValidateRibResponse") proto.RegisterType((*Peer)(nil), "gobgpapi.Peer") proto.RegisterType((*PeerGroup)(nil), "gobgpapi.PeerGroup") proto.RegisterType((*DynamicNeighbor)(nil), "gobgpapi.DynamicNeighbor") @@ -6423,19 +5925,13 @@ func init() { proto.RegisterType((*PolicyAssignment)(nil), "gobgpapi.PolicyAssignment") proto.RegisterType((*RoutingPolicy)(nil), "gobgpapi.RoutingPolicy") proto.RegisterType((*Roa)(nil), "gobgpapi.Roa") - proto.RegisterType((*GetRoaRequest)(nil), "gobgpapi.GetRoaRequest") - proto.RegisterType((*GetRoaResponse)(nil), "gobgpapi.GetRoaResponse") proto.RegisterType((*Vrf)(nil), "gobgpapi.Vrf") proto.RegisterType((*DefaultRouteDistance)(nil), "gobgpapi.DefaultRouteDistance") proto.RegisterType((*Global)(nil), "gobgpapi.Global") proto.RegisterType((*Confederation)(nil), "gobgpapi.Confederation") - proto.RegisterType((*TableInfo)(nil), "gobgpapi.TableInfo") - proto.RegisterType((*GetRibInfoRequest)(nil), "gobgpapi.GetRibInfoRequest") - proto.RegisterType((*GetRibInfoResponse)(nil), "gobgpapi.GetRibInfoResponse") - proto.RegisterType((*AddCollectorRequest)(nil), "gobgpapi.AddCollectorRequest") - proto.RegisterType((*AddCollectorResponse)(nil), "gobgpapi.AddCollectorResponse") - proto.RegisterType((*ShutdownRequest)(nil), "gobgpapi.ShutdownRequest") - proto.RegisterType((*ShutdownResponse)(nil), "gobgpapi.ShutdownResponse") + proto.RegisterType((*RPKIConf)(nil), "gobgpapi.RPKIConf") + proto.RegisterType((*RPKIState)(nil), "gobgpapi.RPKIState") + proto.RegisterType((*Rpki)(nil), "gobgpapi.Rpki") proto.RegisterEnum("gobgpapi.Family", Family_name, Family_value) proto.RegisterEnum("gobgpapi.Resource", Resource_name, Resource_value) proto.RegisterEnum("gobgpapi.TableLookupOption", TableLookupOption_name, TableLookupOption_value) @@ -6445,14 +5941,15 @@ func init() { proto.RegisterEnum("gobgpapi.RouteAction", RouteAction_name, RouteAction_value) proto.RegisterEnum("gobgpapi.CommunityActionType", CommunityActionType_name, CommunityActionType_value) proto.RegisterEnum("gobgpapi.MedActionType", MedActionType_name, MedActionType_value) - proto.RegisterEnum("gobgpapi.PolicyType", PolicyType_name, PolicyType_value) - proto.RegisterEnum("gobgpapi.SoftResetNeighborRequest_SoftResetDirection", SoftResetNeighborRequest_SoftResetDirection_name, SoftResetNeighborRequest_SoftResetDirection_value) + proto.RegisterEnum("gobgpapi.PolicyDirection", PolicyDirection_name, PolicyDirection_value) + proto.RegisterEnum("gobgpapi.ResetPeerRequest_SoftResetDirection", ResetPeerRequest_SoftResetDirection_name, ResetPeerRequest_SoftResetDirection_value) proto.RegisterEnum("gobgpapi.AddBmpRequest_MonitoringPolicy", AddBmpRequest_MonitoringPolicy_name, AddBmpRequest_MonitoringPolicy_value) proto.RegisterEnum("gobgpapi.RPKIValidation_State", RPKIValidation_State_name, RPKIValidation_State_value) proto.RegisterEnum("gobgpapi.RPKIValidation_Reason", RPKIValidation_Reason_name, RPKIValidation_Reason_value) proto.RegisterEnum("gobgpapi.PeerConf_RemovePrivateAs", PeerConf_RemovePrivateAs_name, PeerConf_RemovePrivateAs_value) proto.RegisterEnum("gobgpapi.PeerGroupConf_RemovePrivateAs", PeerGroupConf_RemovePrivateAs_name, PeerGroupConf_RemovePrivateAs_value) proto.RegisterEnum("gobgpapi.PeerGroupState_RemovePrivateAs", PeerGroupState_RemovePrivateAs_name, PeerGroupState_RemovePrivateAs_value) + proto.RegisterEnum("gobgpapi.PeerState_SessionState", PeerState_SessionState_name, PeerState_SessionState_value) proto.RegisterEnum("gobgpapi.PeerState_AdminState", PeerState_AdminState_name, PeerState_AdminState_value) proto.RegisterEnum("gobgpapi.Conditions_RouteType", Conditions_RouteType_name, Conditions_RouteType_value) } @@ -6468,66 +5965,60 @@ const _ = grpc.SupportPackageIsVersion4 // Client API for GobgpApi service type GobgpApiClient interface { - StartServer(ctx context.Context, in *StartServerRequest, opts ...grpc.CallOption) (*StartServerResponse, error) - StopServer(ctx context.Context, in *StopServerRequest, opts ...grpc.CallOption) (*StopServerResponse, error) - GetServer(ctx context.Context, in *GetServerRequest, opts ...grpc.CallOption) (*GetServerResponse, error) - AddNeighbor(ctx context.Context, in *AddNeighborRequest, opts ...grpc.CallOption) (*AddNeighborResponse, error) - DeleteNeighbor(ctx context.Context, in *DeleteNeighborRequest, opts ...grpc.CallOption) (*DeleteNeighborResponse, error) - UpdateNeighbor(ctx context.Context, in *UpdateNeighborRequest, opts ...grpc.CallOption) (*UpdateNeighborResponse, error) - GetNeighbor(ctx context.Context, in *GetNeighborRequest, opts ...grpc.CallOption) (*GetNeighborResponse, error) - ResetNeighbor(ctx context.Context, in *ResetNeighborRequest, opts ...grpc.CallOption) (*ResetNeighborResponse, error) - SoftResetNeighbor(ctx context.Context, in *SoftResetNeighborRequest, opts ...grpc.CallOption) (*SoftResetNeighborResponse, error) - ShutdownNeighbor(ctx context.Context, in *ShutdownNeighborRequest, opts ...grpc.CallOption) (*ShutdownNeighborResponse, error) - EnableNeighbor(ctx context.Context, in *EnableNeighborRequest, opts ...grpc.CallOption) (*EnableNeighborResponse, error) - DisableNeighbor(ctx context.Context, in *DisableNeighborRequest, opts ...grpc.CallOption) (*DisableNeighborResponse, error) - GetRib(ctx context.Context, in *GetRibRequest, opts ...grpc.CallOption) (*GetRibResponse, error) - GetPath(ctx context.Context, in *GetPathRequest, opts ...grpc.CallOption) (GobgpApi_GetPathClient, error) - ValidateRib(ctx context.Context, in *ValidateRibRequest, opts ...grpc.CallOption) (*ValidateRibResponse, error) - AddPath(ctx context.Context, in *AddPathRequest, opts ...grpc.CallOption) (*AddPathResponse, error) - DeletePath(ctx context.Context, in *DeletePathRequest, opts ...grpc.CallOption) (*DeletePathResponse, error) - MonitorRib(ctx context.Context, in *MonitorRibRequest, opts ...grpc.CallOption) (GobgpApi_MonitorRibClient, error) - MonitorPeerState(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_MonitorPeerStateClient, error) - EnableMrt(ctx context.Context, in *EnableMrtRequest, opts ...grpc.CallOption) (*EnableMrtResponse, error) - DisableMrt(ctx context.Context, in *DisableMrtRequest, opts ...grpc.CallOption) (*DisableMrtResponse, error) - InjectMrt(ctx context.Context, opts ...grpc.CallOption) (GobgpApi_InjectMrtClient, error) - AddBmp(ctx context.Context, in *AddBmpRequest, opts ...grpc.CallOption) (*AddBmpResponse, error) - DeleteBmp(ctx context.Context, in *DeleteBmpRequest, opts ...grpc.CallOption) (*DeleteBmpResponse, error) - GetRpki(ctx context.Context, in *GetRpkiRequest, opts ...grpc.CallOption) (*GetRpkiResponse, error) - AddRpki(ctx context.Context, in *AddRpkiRequest, opts ...grpc.CallOption) (*AddRpkiResponse, error) - DeleteRpki(ctx context.Context, in *DeleteRpkiRequest, opts ...grpc.CallOption) (*DeleteRpkiResponse, error) - EnableRpki(ctx context.Context, in *EnableRpkiRequest, opts ...grpc.CallOption) (*EnableRpkiResponse, error) - DisableRpki(ctx context.Context, in *DisableRpkiRequest, opts ...grpc.CallOption) (*DisableRpkiResponse, error) - ResetRpki(ctx context.Context, in *ResetRpkiRequest, opts ...grpc.CallOption) (*ResetRpkiResponse, error) - SoftResetRpki(ctx context.Context, in *SoftResetRpkiRequest, opts ...grpc.CallOption) (*SoftResetRpkiResponse, error) - GetRoa(ctx context.Context, in *GetRoaRequest, opts ...grpc.CallOption) (*GetRoaResponse, error) - EnableZebra(ctx context.Context, in *EnableZebraRequest, opts ...grpc.CallOption) (*EnableZebraResponse, error) - AddVrf(ctx context.Context, in *AddVrfRequest, opts ...grpc.CallOption) (*AddVrfResponse, error) - DeleteVrf(ctx context.Context, in *DeleteVrfRequest, opts ...grpc.CallOption) (*DeleteVrfResponse, error) - GetVrf(ctx context.Context, in *GetVrfRequest, opts ...grpc.CallOption) (*GetVrfResponse, error) - GetDefinedSet(ctx context.Context, in *GetDefinedSetRequest, opts ...grpc.CallOption) (*GetDefinedSetResponse, error) - AddDefinedSet(ctx context.Context, in *AddDefinedSetRequest, opts ...grpc.CallOption) (*AddDefinedSetResponse, error) - DeleteDefinedSet(ctx context.Context, in *DeleteDefinedSetRequest, opts ...grpc.CallOption) (*DeleteDefinedSetResponse, error) - ReplaceDefinedSet(ctx context.Context, in *ReplaceDefinedSetRequest, opts ...grpc.CallOption) (*ReplaceDefinedSetResponse, error) - GetStatement(ctx context.Context, in *GetStatementRequest, opts ...grpc.CallOption) (*GetStatementResponse, error) - AddStatement(ctx context.Context, in *AddStatementRequest, opts ...grpc.CallOption) (*AddStatementResponse, error) - DeleteStatement(ctx context.Context, in *DeleteStatementRequest, opts ...grpc.CallOption) (*DeleteStatementResponse, error) - ReplaceStatement(ctx context.Context, in *ReplaceStatementRequest, opts ...grpc.CallOption) (*ReplaceStatementResponse, error) - GetPolicy(ctx context.Context, in *GetPolicyRequest, opts ...grpc.CallOption) (*GetPolicyResponse, error) - AddPolicy(ctx context.Context, in *AddPolicyRequest, opts ...grpc.CallOption) (*AddPolicyResponse, error) - DeletePolicy(ctx context.Context, in *DeletePolicyRequest, opts ...grpc.CallOption) (*DeletePolicyResponse, error) - ReplacePolicy(ctx context.Context, in *ReplacePolicyRequest, opts ...grpc.CallOption) (*ReplacePolicyResponse, error) - UpdatePolicy(ctx context.Context, in *UpdatePolicyRequest, opts ...grpc.CallOption) (*UpdatePolicyResponse, error) - GetPolicyAssignment(ctx context.Context, in *GetPolicyAssignmentRequest, opts ...grpc.CallOption) (*GetPolicyAssignmentResponse, error) - AddPolicyAssignment(ctx context.Context, in *AddPolicyAssignmentRequest, opts ...grpc.CallOption) (*AddPolicyAssignmentResponse, error) - DeletePolicyAssignment(ctx context.Context, in *DeletePolicyAssignmentRequest, opts ...grpc.CallOption) (*DeletePolicyAssignmentResponse, error) - ReplacePolicyAssignment(ctx context.Context, in *ReplacePolicyAssignmentRequest, opts ...grpc.CallOption) (*ReplacePolicyAssignmentResponse, error) - GetRibInfo(ctx context.Context, in *GetRibInfoRequest, opts ...grpc.CallOption) (*GetRibInfoResponse, error) - AddPeerGroup(ctx context.Context, in *AddPeerGroupRequest, opts ...grpc.CallOption) (*AddPeerGroupResponse, error) - DeletePeerGroup(ctx context.Context, in *DeletePeerGroupRequest, opts ...grpc.CallOption) (*DeletePeerGroupResponse, error) + StartBgp(ctx context.Context, in *StartBgpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + StopBgp(ctx context.Context, in *StopBgpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + GetBgp(ctx context.Context, in *GetBgpRequest, opts ...grpc.CallOption) (*GetBgpResponse, error) + AddPeer(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + DeletePeer(ctx context.Context, in *DeletePeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + ListPeer(ctx context.Context, in *ListPeerRequest, opts ...grpc.CallOption) (GobgpApi_ListPeerClient, error) + UpdatePeer(ctx context.Context, in *UpdatePeerRequest, opts ...grpc.CallOption) (*UpdatePeerResponse, error) + ResetPeer(ctx context.Context, in *ResetPeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + ShutdownPeer(ctx context.Context, in *ShutdownPeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + EnablePeer(ctx context.Context, in *EnablePeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + DisablePeer(ctx context.Context, in *DisablePeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + MonitorPeer(ctx context.Context, in *MonitorPeerRequest, opts ...grpc.CallOption) (GobgpApi_MonitorPeerClient, error) + AddPeerGroup(ctx context.Context, in *AddPeerGroupRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + DeletePeerGroup(ctx context.Context, in *DeletePeerGroupRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) UpdatePeerGroup(ctx context.Context, in *UpdatePeerGroupRequest, opts ...grpc.CallOption) (*UpdatePeerGroupResponse, error) - AddDynamicNeighbor(ctx context.Context, in *AddDynamicNeighborRequest, opts ...grpc.CallOption) (*AddDynamicNeighborResponse, error) - AddCollector(ctx context.Context, in *AddCollectorRequest, opts ...grpc.CallOption) (*AddCollectorResponse, error) - Shutdown(ctx context.Context, in *ShutdownRequest, opts ...grpc.CallOption) (*ShutdownResponse, error) + AddDynamicNeighbor(ctx context.Context, in *AddDynamicNeighborRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + AddPath(ctx context.Context, in *AddPathRequest, opts ...grpc.CallOption) (*AddPathResponse, error) + DeletePath(ctx context.Context, in *DeletePathRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + ListPath(ctx context.Context, in *ListPathRequest, opts ...grpc.CallOption) (GobgpApi_ListPathClient, error) + AddPathStream(ctx context.Context, opts ...grpc.CallOption) (GobgpApi_AddPathStreamClient, error) + GetTable(ctx context.Context, in *GetTableRequest, opts ...grpc.CallOption) (*GetTableResponse, error) + MonitorTable(ctx context.Context, in *MonitorTableRequest, opts ...grpc.CallOption) (GobgpApi_MonitorTableClient, error) + AddVrf(ctx context.Context, in *AddVrfRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + DeleteVrf(ctx context.Context, in *DeleteVrfRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + ListVrf(ctx context.Context, in *ListVrfRequest, opts ...grpc.CallOption) (GobgpApi_ListVrfClient, error) + AddPolicy(ctx context.Context, in *AddPolicyRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + DeletePolicy(ctx context.Context, in *DeletePolicyRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + ListPolicy(ctx context.Context, in *ListPolicyRequest, opts ...grpc.CallOption) (GobgpApi_ListPolicyClient, error) + ReplacePolicy(ctx context.Context, in *ReplacePolicyRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + UpdatePolicy(ctx context.Context, in *UpdatePolicyRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + AddDefinedSet(ctx context.Context, in *AddDefinedSetRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + DeleteDefinedSet(ctx context.Context, in *DeleteDefinedSetRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + ListDefinedSet(ctx context.Context, in *ListDefinedSetRequest, opts ...grpc.CallOption) (GobgpApi_ListDefinedSetClient, error) + ReplaceDefinedSet(ctx context.Context, in *ReplaceDefinedSetRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + AddStatement(ctx context.Context, in *AddStatementRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + DeleteStatement(ctx context.Context, in *DeleteStatementRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + ListStatement(ctx context.Context, in *ListStatementRequest, opts ...grpc.CallOption) (GobgpApi_ListStatementClient, error) + ReplaceStatement(ctx context.Context, in *ReplaceStatementRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + AddPolicyAssignment(ctx context.Context, in *AddPolicyAssignmentRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + DeletePolicyAssignment(ctx context.Context, in *DeletePolicyAssignmentRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + ListPolicyAssignment(ctx context.Context, in *ListPolicyAssignmentRequest, opts ...grpc.CallOption) (GobgpApi_ListPolicyAssignmentClient, error) + ReplacePolicyAssignment(ctx context.Context, in *ReplacePolicyAssignmentRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + AddRpki(ctx context.Context, in *AddRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + DeleteRpki(ctx context.Context, in *DeleteRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + ListRpki(ctx context.Context, in *ListRpkiRequest, opts ...grpc.CallOption) (GobgpApi_ListRpkiClient, error) + EnableRpki(ctx context.Context, in *EnableRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + DisableRpki(ctx context.Context, in *DisableRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + ResetRpki(ctx context.Context, in *ResetRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + ListRpkiTable(ctx context.Context, in *ListRpkiTableRequest, opts ...grpc.CallOption) (GobgpApi_ListRpkiTableClient, error) + EnableZebra(ctx context.Context, in *EnableZebraRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + EnableMrt(ctx context.Context, in *EnableMrtRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + DisableMrt(ctx context.Context, in *DisableMrtRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + AddBmp(ctx context.Context, in *AddBmpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) + DeleteBmp(ctx context.Context, in *DeleteBmpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) } type gobgpApiClient struct { @@ -6538,129 +6029,134 @@ func NewGobgpApiClient(cc *grpc.ClientConn) GobgpApiClient { return &gobgpApiClient{cc} } -func (c *gobgpApiClient) StartServer(ctx context.Context, in *StartServerRequest, opts ...grpc.CallOption) (*StartServerResponse, error) { - out := new(StartServerResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/StartServer", in, out, c.cc, opts...) +func (c *gobgpApiClient) StartBgp(ctx context.Context, in *StartBgpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/StartBgp", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) StopServer(ctx context.Context, in *StopServerRequest, opts ...grpc.CallOption) (*StopServerResponse, error) { - out := new(StopServerResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/StopServer", in, out, c.cc, opts...) +func (c *gobgpApiClient) StopBgp(ctx context.Context, in *StopBgpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/StopBgp", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) GetServer(ctx context.Context, in *GetServerRequest, opts ...grpc.CallOption) (*GetServerResponse, error) { - out := new(GetServerResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetServer", in, out, c.cc, opts...) +func (c *gobgpApiClient) GetBgp(ctx context.Context, in *GetBgpRequest, opts ...grpc.CallOption) (*GetBgpResponse, error) { + out := new(GetBgpResponse) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetBgp", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) AddNeighbor(ctx context.Context, in *AddNeighborRequest, opts ...grpc.CallOption) (*AddNeighborResponse, error) { - out := new(AddNeighborResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddNeighbor", in, out, c.cc, opts...) +func (c *gobgpApiClient) AddPeer(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddPeer", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) DeleteNeighbor(ctx context.Context, in *DeleteNeighborRequest, opts ...grpc.CallOption) (*DeleteNeighborResponse, error) { - out := new(DeleteNeighborResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteNeighbor", in, out, c.cc, opts...) +func (c *gobgpApiClient) DeletePeer(ctx context.Context, in *DeletePeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeletePeer", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) UpdateNeighbor(ctx context.Context, in *UpdateNeighborRequest, opts ...grpc.CallOption) (*UpdateNeighborResponse, error) { - out := new(UpdateNeighborResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/UpdateNeighbor", in, out, c.cc, opts...) +func (c *gobgpApiClient) ListPeer(ctx context.Context, in *ListPeerRequest, opts ...grpc.CallOption) (GobgpApi_ListPeerClient, error) { + stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[0], c.cc, "/gobgpapi.GobgpApi/ListPeer", opts...) if err != nil { return nil, err } - return out, nil -} - -func (c *gobgpApiClient) GetNeighbor(ctx context.Context, in *GetNeighborRequest, opts ...grpc.CallOption) (*GetNeighborResponse, error) { - out := new(GetNeighborResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetNeighbor", in, out, c.cc, opts...) - if err != nil { + x := &gobgpApiListPeerClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } - return out, nil + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil } -func (c *gobgpApiClient) ResetNeighbor(ctx context.Context, in *ResetNeighborRequest, opts ...grpc.CallOption) (*ResetNeighborResponse, error) { - out := new(ResetNeighborResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ResetNeighbor", in, out, c.cc, opts...) - if err != nil { +type GobgpApi_ListPeerClient interface { + Recv() (*ListPeerResponse, error) + grpc.ClientStream +} + +type gobgpApiListPeerClient struct { + grpc.ClientStream +} + +func (x *gobgpApiListPeerClient) Recv() (*ListPeerResponse, error) { + m := new(ListPeerResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } - return out, nil + return m, nil } -func (c *gobgpApiClient) SoftResetNeighbor(ctx context.Context, in *SoftResetNeighborRequest, opts ...grpc.CallOption) (*SoftResetNeighborResponse, error) { - out := new(SoftResetNeighborResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/SoftResetNeighbor", in, out, c.cc, opts...) +func (c *gobgpApiClient) UpdatePeer(ctx context.Context, in *UpdatePeerRequest, opts ...grpc.CallOption) (*UpdatePeerResponse, error) { + out := new(UpdatePeerResponse) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/UpdatePeer", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) ShutdownNeighbor(ctx context.Context, in *ShutdownNeighborRequest, opts ...grpc.CallOption) (*ShutdownNeighborResponse, error) { - out := new(ShutdownNeighborResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ShutdownNeighbor", in, out, c.cc, opts...) +func (c *gobgpApiClient) ResetPeer(ctx context.Context, in *ResetPeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ResetPeer", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) EnableNeighbor(ctx context.Context, in *EnableNeighborRequest, opts ...grpc.CallOption) (*EnableNeighborResponse, error) { - out := new(EnableNeighborResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/EnableNeighbor", in, out, c.cc, opts...) +func (c *gobgpApiClient) ShutdownPeer(ctx context.Context, in *ShutdownPeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ShutdownPeer", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) DisableNeighbor(ctx context.Context, in *DisableNeighborRequest, opts ...grpc.CallOption) (*DisableNeighborResponse, error) { - out := new(DisableNeighborResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DisableNeighbor", in, out, c.cc, opts...) +func (c *gobgpApiClient) EnablePeer(ctx context.Context, in *EnablePeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/EnablePeer", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) GetRib(ctx context.Context, in *GetRibRequest, opts ...grpc.CallOption) (*GetRibResponse, error) { - out := new(GetRibResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetRib", in, out, c.cc, opts...) +func (c *gobgpApiClient) DisablePeer(ctx context.Context, in *DisablePeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DisablePeer", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) GetPath(ctx context.Context, in *GetPathRequest, opts ...grpc.CallOption) (GobgpApi_GetPathClient, error) { - stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[0], c.cc, "/gobgpapi.GobgpApi/GetPath", opts...) +func (c *gobgpApiClient) MonitorPeer(ctx context.Context, in *MonitorPeerRequest, opts ...grpc.CallOption) (GobgpApi_MonitorPeerClient, error) { + stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[1], c.cc, "/gobgpapi.GobgpApi/MonitorPeer", opts...) if err != nil { return nil, err } - x := &gobgpApiGetPathClient{stream} + x := &gobgpApiMonitorPeerClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -6670,26 +6166,53 @@ func (c *gobgpApiClient) GetPath(ctx context.Context, in *GetPathRequest, opts . return x, nil } -type GobgpApi_GetPathClient interface { - Recv() (*Path, error) +type GobgpApi_MonitorPeerClient interface { + Recv() (*MonitorPeerResponse, error) grpc.ClientStream } -type gobgpApiGetPathClient struct { +type gobgpApiMonitorPeerClient struct { grpc.ClientStream } -func (x *gobgpApiGetPathClient) Recv() (*Path, error) { - m := new(Path) +func (x *gobgpApiMonitorPeerClient) Recv() (*MonitorPeerResponse, error) { + m := new(MonitorPeerResponse) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } -func (c *gobgpApiClient) ValidateRib(ctx context.Context, in *ValidateRibRequest, opts ...grpc.CallOption) (*ValidateRibResponse, error) { - out := new(ValidateRibResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ValidateRib", in, out, c.cc, opts...) +func (c *gobgpApiClient) AddPeerGroup(ctx context.Context, in *AddPeerGroupRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddPeerGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *gobgpApiClient) DeletePeerGroup(ctx context.Context, in *DeletePeerGroupRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeletePeerGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *gobgpApiClient) UpdatePeerGroup(ctx context.Context, in *UpdatePeerGroupRequest, opts ...grpc.CallOption) (*UpdatePeerGroupResponse, error) { + out := new(UpdatePeerGroupResponse) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/UpdatePeerGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *gobgpApiClient) AddDynamicNeighbor(ctx context.Context, in *AddDynamicNeighborRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddDynamicNeighbor", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -6705,8 +6228,8 @@ func (c *gobgpApiClient) AddPath(ctx context.Context, in *AddPathRequest, opts . return out, nil } -func (c *gobgpApiClient) DeletePath(ctx context.Context, in *DeletePathRequest, opts ...grpc.CallOption) (*DeletePathResponse, error) { - out := new(DeletePathResponse) +func (c *gobgpApiClient) DeletePath(ctx context.Context, in *DeletePathRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeletePath", in, out, c.cc, opts...) if err != nil { return nil, err @@ -6714,12 +6237,12 @@ func (c *gobgpApiClient) DeletePath(ctx context.Context, in *DeletePathRequest, return out, nil } -func (c *gobgpApiClient) MonitorRib(ctx context.Context, in *MonitorRibRequest, opts ...grpc.CallOption) (GobgpApi_MonitorRibClient, error) { - stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[1], c.cc, "/gobgpapi.GobgpApi/MonitorRib", opts...) +func (c *gobgpApiClient) ListPath(ctx context.Context, in *ListPathRequest, opts ...grpc.CallOption) (GobgpApi_ListPathClient, error) { + stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[2], c.cc, "/gobgpapi.GobgpApi/ListPath", opts...) if err != nil { return nil, err } - x := &gobgpApiMonitorRibClient{stream} + x := &gobgpApiListPathClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -6729,443 +6252,541 @@ func (c *gobgpApiClient) MonitorRib(ctx context.Context, in *MonitorRibRequest, return x, nil } -type GobgpApi_MonitorRibClient interface { - Recv() (*Destination, error) +type GobgpApi_ListPathClient interface { + Recv() (*ListPathResponse, error) grpc.ClientStream } -type gobgpApiMonitorRibClient struct { +type gobgpApiListPathClient struct { grpc.ClientStream } -func (x *gobgpApiMonitorRibClient) Recv() (*Destination, error) { - m := new(Destination) +func (x *gobgpApiListPathClient) Recv() (*ListPathResponse, error) { + m := new(ListPathResponse) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } -func (c *gobgpApiClient) MonitorPeerState(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_MonitorPeerStateClient, error) { - stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[2], c.cc, "/gobgpapi.GobgpApi/MonitorPeerState", opts...) +func (c *gobgpApiClient) AddPathStream(ctx context.Context, opts ...grpc.CallOption) (GobgpApi_AddPathStreamClient, error) { + stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[3], c.cc, "/gobgpapi.GobgpApi/AddPathStream", opts...) if err != nil { return nil, err } - x := &gobgpApiMonitorPeerStateClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } + x := &gobgpApiAddPathStreamClient{stream} return x, nil } -type GobgpApi_MonitorPeerStateClient interface { - Recv() (*Peer, error) +type GobgpApi_AddPathStreamClient interface { + Send(*AddPathStreamRequest) error + CloseAndRecv() (*google_protobuf1.Empty, error) grpc.ClientStream } -type gobgpApiMonitorPeerStateClient struct { +type gobgpApiAddPathStreamClient struct { grpc.ClientStream } -func (x *gobgpApiMonitorPeerStateClient) Recv() (*Peer, error) { - m := new(Peer) +func (x *gobgpApiAddPathStreamClient) Send(m *AddPathStreamRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *gobgpApiAddPathStreamClient) CloseAndRecv() (*google_protobuf1.Empty, error) { + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + m := new(google_protobuf1.Empty) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } -func (c *gobgpApiClient) EnableMrt(ctx context.Context, in *EnableMrtRequest, opts ...grpc.CallOption) (*EnableMrtResponse, error) { - out := new(EnableMrtResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/EnableMrt", in, out, c.cc, opts...) +func (c *gobgpApiClient) GetTable(ctx context.Context, in *GetTableRequest, opts ...grpc.CallOption) (*GetTableResponse, error) { + out := new(GetTableResponse) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetTable", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) DisableMrt(ctx context.Context, in *DisableMrtRequest, opts ...grpc.CallOption) (*DisableMrtResponse, error) { - out := new(DisableMrtResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DisableMrt", in, out, c.cc, opts...) +func (c *gobgpApiClient) MonitorTable(ctx context.Context, in *MonitorTableRequest, opts ...grpc.CallOption) (GobgpApi_MonitorTableClient, error) { + stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[4], c.cc, "/gobgpapi.GobgpApi/MonitorTable", opts...) if err != nil { return nil, err } - return out, nil -} - -func (c *gobgpApiClient) InjectMrt(ctx context.Context, opts ...grpc.CallOption) (GobgpApi_InjectMrtClient, error) { - stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[3], c.cc, "/gobgpapi.GobgpApi/InjectMrt", opts...) - if err != nil { + x := &gobgpApiMonitorTableClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { return nil, err } - x := &gobgpApiInjectMrtClient{stream} return x, nil } -type GobgpApi_InjectMrtClient interface { - Send(*InjectMrtRequest) error - CloseAndRecv() (*InjectMrtResponse, error) +type GobgpApi_MonitorTableClient interface { + Recv() (*MonitorTableResponse, error) grpc.ClientStream } -type gobgpApiInjectMrtClient struct { +type gobgpApiMonitorTableClient struct { grpc.ClientStream } -func (x *gobgpApiInjectMrtClient) Send(m *InjectMrtRequest) error { - return x.ClientStream.SendMsg(m) -} - -func (x *gobgpApiInjectMrtClient) CloseAndRecv() (*InjectMrtResponse, error) { - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - m := new(InjectMrtResponse) +func (x *gobgpApiMonitorTableClient) Recv() (*MonitorTableResponse, error) { + m := new(MonitorTableResponse) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } -func (c *gobgpApiClient) AddBmp(ctx context.Context, in *AddBmpRequest, opts ...grpc.CallOption) (*AddBmpResponse, error) { - out := new(AddBmpResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddBmp", in, out, c.cc, opts...) +func (c *gobgpApiClient) AddVrf(ctx context.Context, in *AddVrfRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddVrf", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) DeleteBmp(ctx context.Context, in *DeleteBmpRequest, opts ...grpc.CallOption) (*DeleteBmpResponse, error) { - out := new(DeleteBmpResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteBmp", in, out, c.cc, opts...) +func (c *gobgpApiClient) DeleteVrf(ctx context.Context, in *DeleteVrfRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteVrf", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) GetRpki(ctx context.Context, in *GetRpkiRequest, opts ...grpc.CallOption) (*GetRpkiResponse, error) { - out := new(GetRpkiResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetRpki", in, out, c.cc, opts...) +func (c *gobgpApiClient) ListVrf(ctx context.Context, in *ListVrfRequest, opts ...grpc.CallOption) (GobgpApi_ListVrfClient, error) { + stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[5], c.cc, "/gobgpapi.GobgpApi/ListVrf", opts...) if err != nil { return nil, err } - return out, nil + x := &gobgpApiListVrfClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil } -func (c *gobgpApiClient) AddRpki(ctx context.Context, in *AddRpkiRequest, opts ...grpc.CallOption) (*AddRpkiResponse, error) { - out := new(AddRpkiResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddRpki", in, out, c.cc, opts...) - if err != nil { +type GobgpApi_ListVrfClient interface { + Recv() (*ListVrfResponse, error) + grpc.ClientStream +} + +type gobgpApiListVrfClient struct { + grpc.ClientStream +} + +func (x *gobgpApiListVrfClient) Recv() (*ListVrfResponse, error) { + m := new(ListVrfResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } - return out, nil + return m, nil } -func (c *gobgpApiClient) DeleteRpki(ctx context.Context, in *DeleteRpkiRequest, opts ...grpc.CallOption) (*DeleteRpkiResponse, error) { - out := new(DeleteRpkiResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteRpki", in, out, c.cc, opts...) +func (c *gobgpApiClient) AddPolicy(ctx context.Context, in *AddPolicyRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddPolicy", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) EnableRpki(ctx context.Context, in *EnableRpkiRequest, opts ...grpc.CallOption) (*EnableRpkiResponse, error) { - out := new(EnableRpkiResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/EnableRpki", in, out, c.cc, opts...) +func (c *gobgpApiClient) DeletePolicy(ctx context.Context, in *DeletePolicyRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeletePolicy", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) DisableRpki(ctx context.Context, in *DisableRpkiRequest, opts ...grpc.CallOption) (*DisableRpkiResponse, error) { - out := new(DisableRpkiResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DisableRpki", in, out, c.cc, opts...) +func (c *gobgpApiClient) ListPolicy(ctx context.Context, in *ListPolicyRequest, opts ...grpc.CallOption) (GobgpApi_ListPolicyClient, error) { + stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[6], c.cc, "/gobgpapi.GobgpApi/ListPolicy", opts...) if err != nil { return nil, err } - return out, nil + x := &gobgpApiListPolicyClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil } -func (c *gobgpApiClient) ResetRpki(ctx context.Context, in *ResetRpkiRequest, opts ...grpc.CallOption) (*ResetRpkiResponse, error) { - out := new(ResetRpkiResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ResetRpki", in, out, c.cc, opts...) - if err != nil { +type GobgpApi_ListPolicyClient interface { + Recv() (*ListPolicyResponse, error) + grpc.ClientStream +} + +type gobgpApiListPolicyClient struct { + grpc.ClientStream +} + +func (x *gobgpApiListPolicyClient) Recv() (*ListPolicyResponse, error) { + m := new(ListPolicyResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } - return out, nil + return m, nil } -func (c *gobgpApiClient) SoftResetRpki(ctx context.Context, in *SoftResetRpkiRequest, opts ...grpc.CallOption) (*SoftResetRpkiResponse, error) { - out := new(SoftResetRpkiResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/SoftResetRpki", in, out, c.cc, opts...) +func (c *gobgpApiClient) ReplacePolicy(ctx context.Context, in *ReplacePolicyRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ReplacePolicy", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) GetRoa(ctx context.Context, in *GetRoaRequest, opts ...grpc.CallOption) (*GetRoaResponse, error) { - out := new(GetRoaResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetRoa", in, out, c.cc, opts...) +func (c *gobgpApiClient) UpdatePolicy(ctx context.Context, in *UpdatePolicyRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/UpdatePolicy", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) EnableZebra(ctx context.Context, in *EnableZebraRequest, opts ...grpc.CallOption) (*EnableZebraResponse, error) { - out := new(EnableZebraResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/EnableZebra", in, out, c.cc, opts...) +func (c *gobgpApiClient) AddDefinedSet(ctx context.Context, in *AddDefinedSetRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddDefinedSet", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) AddVrf(ctx context.Context, in *AddVrfRequest, opts ...grpc.CallOption) (*AddVrfResponse, error) { - out := new(AddVrfResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddVrf", in, out, c.cc, opts...) +func (c *gobgpApiClient) DeleteDefinedSet(ctx context.Context, in *DeleteDefinedSetRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteDefinedSet", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) DeleteVrf(ctx context.Context, in *DeleteVrfRequest, opts ...grpc.CallOption) (*DeleteVrfResponse, error) { - out := new(DeleteVrfResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteVrf", in, out, c.cc, opts...) +func (c *gobgpApiClient) ListDefinedSet(ctx context.Context, in *ListDefinedSetRequest, opts ...grpc.CallOption) (GobgpApi_ListDefinedSetClient, error) { + stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[7], c.cc, "/gobgpapi.GobgpApi/ListDefinedSet", opts...) if err != nil { return nil, err } - return out, nil + x := &gobgpApiListDefinedSetClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil } -func (c *gobgpApiClient) GetVrf(ctx context.Context, in *GetVrfRequest, opts ...grpc.CallOption) (*GetVrfResponse, error) { - out := new(GetVrfResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetVrf", in, out, c.cc, opts...) - if err != nil { +type GobgpApi_ListDefinedSetClient interface { + Recv() (*ListDefinedSetResponse, error) + grpc.ClientStream +} + +type gobgpApiListDefinedSetClient struct { + grpc.ClientStream +} + +func (x *gobgpApiListDefinedSetClient) Recv() (*ListDefinedSetResponse, error) { + m := new(ListDefinedSetResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } - return out, nil + return m, nil } -func (c *gobgpApiClient) GetDefinedSet(ctx context.Context, in *GetDefinedSetRequest, opts ...grpc.CallOption) (*GetDefinedSetResponse, error) { - out := new(GetDefinedSetResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetDefinedSet", in, out, c.cc, opts...) +func (c *gobgpApiClient) ReplaceDefinedSet(ctx context.Context, in *ReplaceDefinedSetRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ReplaceDefinedSet", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) AddDefinedSet(ctx context.Context, in *AddDefinedSetRequest, opts ...grpc.CallOption) (*AddDefinedSetResponse, error) { - out := new(AddDefinedSetResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddDefinedSet", in, out, c.cc, opts...) +func (c *gobgpApiClient) AddStatement(ctx context.Context, in *AddStatementRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddStatement", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) DeleteDefinedSet(ctx context.Context, in *DeleteDefinedSetRequest, opts ...grpc.CallOption) (*DeleteDefinedSetResponse, error) { - out := new(DeleteDefinedSetResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteDefinedSet", in, out, c.cc, opts...) +func (c *gobgpApiClient) DeleteStatement(ctx context.Context, in *DeleteStatementRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteStatement", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) ReplaceDefinedSet(ctx context.Context, in *ReplaceDefinedSetRequest, opts ...grpc.CallOption) (*ReplaceDefinedSetResponse, error) { - out := new(ReplaceDefinedSetResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ReplaceDefinedSet", in, out, c.cc, opts...) +func (c *gobgpApiClient) ListStatement(ctx context.Context, in *ListStatementRequest, opts ...grpc.CallOption) (GobgpApi_ListStatementClient, error) { + stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[8], c.cc, "/gobgpapi.GobgpApi/ListStatement", opts...) if err != nil { return nil, err } - return out, nil + x := &gobgpApiListStatementClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil } -func (c *gobgpApiClient) GetStatement(ctx context.Context, in *GetStatementRequest, opts ...grpc.CallOption) (*GetStatementResponse, error) { - out := new(GetStatementResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetStatement", in, out, c.cc, opts...) - if err != nil { +type GobgpApi_ListStatementClient interface { + Recv() (*ListStatementResponse, error) + grpc.ClientStream +} + +type gobgpApiListStatementClient struct { + grpc.ClientStream +} + +func (x *gobgpApiListStatementClient) Recv() (*ListStatementResponse, error) { + m := new(ListStatementResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } - return out, nil + return m, nil } -func (c *gobgpApiClient) AddStatement(ctx context.Context, in *AddStatementRequest, opts ...grpc.CallOption) (*AddStatementResponse, error) { - out := new(AddStatementResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddStatement", in, out, c.cc, opts...) +func (c *gobgpApiClient) ReplaceStatement(ctx context.Context, in *ReplaceStatementRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ReplaceStatement", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) DeleteStatement(ctx context.Context, in *DeleteStatementRequest, opts ...grpc.CallOption) (*DeleteStatementResponse, error) { - out := new(DeleteStatementResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteStatement", in, out, c.cc, opts...) +func (c *gobgpApiClient) AddPolicyAssignment(ctx context.Context, in *AddPolicyAssignmentRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddPolicyAssignment", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) ReplaceStatement(ctx context.Context, in *ReplaceStatementRequest, opts ...grpc.CallOption) (*ReplaceStatementResponse, error) { - out := new(ReplaceStatementResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ReplaceStatement", in, out, c.cc, opts...) +func (c *gobgpApiClient) DeletePolicyAssignment(ctx context.Context, in *DeletePolicyAssignmentRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeletePolicyAssignment", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) GetPolicy(ctx context.Context, in *GetPolicyRequest, opts ...grpc.CallOption) (*GetPolicyResponse, error) { - out := new(GetPolicyResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetPolicy", in, out, c.cc, opts...) +func (c *gobgpApiClient) ListPolicyAssignment(ctx context.Context, in *ListPolicyAssignmentRequest, opts ...grpc.CallOption) (GobgpApi_ListPolicyAssignmentClient, error) { + stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[9], c.cc, "/gobgpapi.GobgpApi/ListPolicyAssignment", opts...) if err != nil { return nil, err } - return out, nil + x := &gobgpApiListPolicyAssignmentClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil } -func (c *gobgpApiClient) AddPolicy(ctx context.Context, in *AddPolicyRequest, opts ...grpc.CallOption) (*AddPolicyResponse, error) { - out := new(AddPolicyResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddPolicy", in, out, c.cc, opts...) - if err != nil { +type GobgpApi_ListPolicyAssignmentClient interface { + Recv() (*ListPolicyAssignmentResponse, error) + grpc.ClientStream +} + +type gobgpApiListPolicyAssignmentClient struct { + grpc.ClientStream +} + +func (x *gobgpApiListPolicyAssignmentClient) Recv() (*ListPolicyAssignmentResponse, error) { + m := new(ListPolicyAssignmentResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } - return out, nil + return m, nil } -func (c *gobgpApiClient) DeletePolicy(ctx context.Context, in *DeletePolicyRequest, opts ...grpc.CallOption) (*DeletePolicyResponse, error) { - out := new(DeletePolicyResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeletePolicy", in, out, c.cc, opts...) +func (c *gobgpApiClient) ReplacePolicyAssignment(ctx context.Context, in *ReplacePolicyAssignmentRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ReplacePolicyAssignment", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) ReplacePolicy(ctx context.Context, in *ReplacePolicyRequest, opts ...grpc.CallOption) (*ReplacePolicyResponse, error) { - out := new(ReplacePolicyResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ReplacePolicy", in, out, c.cc, opts...) +func (c *gobgpApiClient) AddRpki(ctx context.Context, in *AddRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddRpki", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) UpdatePolicy(ctx context.Context, in *UpdatePolicyRequest, opts ...grpc.CallOption) (*UpdatePolicyResponse, error) { - out := new(UpdatePolicyResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/UpdatePolicy", in, out, c.cc, opts...) +func (c *gobgpApiClient) DeleteRpki(ctx context.Context, in *DeleteRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteRpki", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) GetPolicyAssignment(ctx context.Context, in *GetPolicyAssignmentRequest, opts ...grpc.CallOption) (*GetPolicyAssignmentResponse, error) { - out := new(GetPolicyAssignmentResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetPolicyAssignment", in, out, c.cc, opts...) +func (c *gobgpApiClient) ListRpki(ctx context.Context, in *ListRpkiRequest, opts ...grpc.CallOption) (GobgpApi_ListRpkiClient, error) { + stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[10], c.cc, "/gobgpapi.GobgpApi/ListRpki", opts...) if err != nil { return nil, err } - return out, nil + x := &gobgpApiListRpkiClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil } -func (c *gobgpApiClient) AddPolicyAssignment(ctx context.Context, in *AddPolicyAssignmentRequest, opts ...grpc.CallOption) (*AddPolicyAssignmentResponse, error) { - out := new(AddPolicyAssignmentResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddPolicyAssignment", in, out, c.cc, opts...) - if err != nil { +type GobgpApi_ListRpkiClient interface { + Recv() (*ListRpkiResponse, error) + grpc.ClientStream +} + +type gobgpApiListRpkiClient struct { + grpc.ClientStream +} + +func (x *gobgpApiListRpkiClient) Recv() (*ListRpkiResponse, error) { + m := new(ListRpkiResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } - return out, nil + return m, nil } -func (c *gobgpApiClient) DeletePolicyAssignment(ctx context.Context, in *DeletePolicyAssignmentRequest, opts ...grpc.CallOption) (*DeletePolicyAssignmentResponse, error) { - out := new(DeletePolicyAssignmentResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeletePolicyAssignment", in, out, c.cc, opts...) +func (c *gobgpApiClient) EnableRpki(ctx context.Context, in *EnableRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/EnableRpki", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) ReplacePolicyAssignment(ctx context.Context, in *ReplacePolicyAssignmentRequest, opts ...grpc.CallOption) (*ReplacePolicyAssignmentResponse, error) { - out := new(ReplacePolicyAssignmentResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ReplacePolicyAssignment", in, out, c.cc, opts...) +func (c *gobgpApiClient) DisableRpki(ctx context.Context, in *DisableRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DisableRpki", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) GetRibInfo(ctx context.Context, in *GetRibInfoRequest, opts ...grpc.CallOption) (*GetRibInfoResponse, error) { - out := new(GetRibInfoResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetRibInfo", in, out, c.cc, opts...) +func (c *gobgpApiClient) ResetRpki(ctx context.Context, in *ResetRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ResetRpki", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) AddPeerGroup(ctx context.Context, in *AddPeerGroupRequest, opts ...grpc.CallOption) (*AddPeerGroupResponse, error) { - out := new(AddPeerGroupResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddPeerGroup", in, out, c.cc, opts...) +func (c *gobgpApiClient) ListRpkiTable(ctx context.Context, in *ListRpkiTableRequest, opts ...grpc.CallOption) (GobgpApi_ListRpkiTableClient, error) { + stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[11], c.cc, "/gobgpapi.GobgpApi/ListRpkiTable", opts...) if err != nil { return nil, err } - return out, nil + x := &gobgpApiListRpkiTableClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil } -func (c *gobgpApiClient) DeletePeerGroup(ctx context.Context, in *DeletePeerGroupRequest, opts ...grpc.CallOption) (*DeletePeerGroupResponse, error) { - out := new(DeletePeerGroupResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeletePeerGroup", in, out, c.cc, opts...) +type GobgpApi_ListRpkiTableClient interface { + Recv() (*ListRpkiTableResponse, error) + grpc.ClientStream +} + +type gobgpApiListRpkiTableClient struct { + grpc.ClientStream +} + +func (x *gobgpApiListRpkiTableClient) Recv() (*ListRpkiTableResponse, error) { + m := new(ListRpkiTableResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *gobgpApiClient) EnableZebra(ctx context.Context, in *EnableZebraRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/EnableZebra", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) UpdatePeerGroup(ctx context.Context, in *UpdatePeerGroupRequest, opts ...grpc.CallOption) (*UpdatePeerGroupResponse, error) { - out := new(UpdatePeerGroupResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/UpdatePeerGroup", in, out, c.cc, opts...) +func (c *gobgpApiClient) EnableMrt(ctx context.Context, in *EnableMrtRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/EnableMrt", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) AddDynamicNeighbor(ctx context.Context, in *AddDynamicNeighborRequest, opts ...grpc.CallOption) (*AddDynamicNeighborResponse, error) { - out := new(AddDynamicNeighborResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddDynamicNeighbor", in, out, c.cc, opts...) +func (c *gobgpApiClient) DisableMrt(ctx context.Context, in *DisableMrtRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DisableMrt", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) AddCollector(ctx context.Context, in *AddCollectorRequest, opts ...grpc.CallOption) (*AddCollectorResponse, error) { - out := new(AddCollectorResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddCollector", in, out, c.cc, opts...) +func (c *gobgpApiClient) AddBmp(ctx context.Context, in *AddBmpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddBmp", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *gobgpApiClient) Shutdown(ctx context.Context, in *ShutdownRequest, opts ...grpc.CallOption) (*ShutdownResponse, error) { - out := new(ShutdownResponse) - err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/Shutdown", in, out, c.cc, opts...) +func (c *gobgpApiClient) DeleteBmp(ctx context.Context, in *DeleteBmpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { + out := new(google_protobuf1.Empty) + err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteBmp", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -7175,341 +6796,356 @@ func (c *gobgpApiClient) Shutdown(ctx context.Context, in *ShutdownRequest, opts // Server API for GobgpApi service type GobgpApiServer interface { - StartServer(context.Context, *StartServerRequest) (*StartServerResponse, error) - StopServer(context.Context, *StopServerRequest) (*StopServerResponse, error) - GetServer(context.Context, *GetServerRequest) (*GetServerResponse, error) - AddNeighbor(context.Context, *AddNeighborRequest) (*AddNeighborResponse, error) - DeleteNeighbor(context.Context, *DeleteNeighborRequest) (*DeleteNeighborResponse, error) - UpdateNeighbor(context.Context, *UpdateNeighborRequest) (*UpdateNeighborResponse, error) - GetNeighbor(context.Context, *GetNeighborRequest) (*GetNeighborResponse, error) - ResetNeighbor(context.Context, *ResetNeighborRequest) (*ResetNeighborResponse, error) - SoftResetNeighbor(context.Context, *SoftResetNeighborRequest) (*SoftResetNeighborResponse, error) - ShutdownNeighbor(context.Context, *ShutdownNeighborRequest) (*ShutdownNeighborResponse, error) - EnableNeighbor(context.Context, *EnableNeighborRequest) (*EnableNeighborResponse, error) - DisableNeighbor(context.Context, *DisableNeighborRequest) (*DisableNeighborResponse, error) - GetRib(context.Context, *GetRibRequest) (*GetRibResponse, error) - GetPath(*GetPathRequest, GobgpApi_GetPathServer) error - ValidateRib(context.Context, *ValidateRibRequest) (*ValidateRibResponse, error) - AddPath(context.Context, *AddPathRequest) (*AddPathResponse, error) - DeletePath(context.Context, *DeletePathRequest) (*DeletePathResponse, error) - MonitorRib(*MonitorRibRequest, GobgpApi_MonitorRibServer) error - MonitorPeerState(*Arguments, GobgpApi_MonitorPeerStateServer) error - EnableMrt(context.Context, *EnableMrtRequest) (*EnableMrtResponse, error) - DisableMrt(context.Context, *DisableMrtRequest) (*DisableMrtResponse, error) - InjectMrt(GobgpApi_InjectMrtServer) error - AddBmp(context.Context, *AddBmpRequest) (*AddBmpResponse, error) - DeleteBmp(context.Context, *DeleteBmpRequest) (*DeleteBmpResponse, error) - GetRpki(context.Context, *GetRpkiRequest) (*GetRpkiResponse, error) - AddRpki(context.Context, *AddRpkiRequest) (*AddRpkiResponse, error) - DeleteRpki(context.Context, *DeleteRpkiRequest) (*DeleteRpkiResponse, error) - EnableRpki(context.Context, *EnableRpkiRequest) (*EnableRpkiResponse, error) - DisableRpki(context.Context, *DisableRpkiRequest) (*DisableRpkiResponse, error) - ResetRpki(context.Context, *ResetRpkiRequest) (*ResetRpkiResponse, error) - SoftResetRpki(context.Context, *SoftResetRpkiRequest) (*SoftResetRpkiResponse, error) - GetRoa(context.Context, *GetRoaRequest) (*GetRoaResponse, error) - EnableZebra(context.Context, *EnableZebraRequest) (*EnableZebraResponse, error) - AddVrf(context.Context, *AddVrfRequest) (*AddVrfResponse, error) - DeleteVrf(context.Context, *DeleteVrfRequest) (*DeleteVrfResponse, error) - GetVrf(context.Context, *GetVrfRequest) (*GetVrfResponse, error) - GetDefinedSet(context.Context, *GetDefinedSetRequest) (*GetDefinedSetResponse, error) - AddDefinedSet(context.Context, *AddDefinedSetRequest) (*AddDefinedSetResponse, error) - DeleteDefinedSet(context.Context, *DeleteDefinedSetRequest) (*DeleteDefinedSetResponse, error) - ReplaceDefinedSet(context.Context, *ReplaceDefinedSetRequest) (*ReplaceDefinedSetResponse, error) - GetStatement(context.Context, *GetStatementRequest) (*GetStatementResponse, error) - AddStatement(context.Context, *AddStatementRequest) (*AddStatementResponse, error) - DeleteStatement(context.Context, *DeleteStatementRequest) (*DeleteStatementResponse, error) - ReplaceStatement(context.Context, *ReplaceStatementRequest) (*ReplaceStatementResponse, error) - GetPolicy(context.Context, *GetPolicyRequest) (*GetPolicyResponse, error) - AddPolicy(context.Context, *AddPolicyRequest) (*AddPolicyResponse, error) - DeletePolicy(context.Context, *DeletePolicyRequest) (*DeletePolicyResponse, error) - ReplacePolicy(context.Context, *ReplacePolicyRequest) (*ReplacePolicyResponse, error) - UpdatePolicy(context.Context, *UpdatePolicyRequest) (*UpdatePolicyResponse, error) - GetPolicyAssignment(context.Context, *GetPolicyAssignmentRequest) (*GetPolicyAssignmentResponse, error) - AddPolicyAssignment(context.Context, *AddPolicyAssignmentRequest) (*AddPolicyAssignmentResponse, error) - DeletePolicyAssignment(context.Context, *DeletePolicyAssignmentRequest) (*DeletePolicyAssignmentResponse, error) - ReplacePolicyAssignment(context.Context, *ReplacePolicyAssignmentRequest) (*ReplacePolicyAssignmentResponse, error) - GetRibInfo(context.Context, *GetRibInfoRequest) (*GetRibInfoResponse, error) - AddPeerGroup(context.Context, *AddPeerGroupRequest) (*AddPeerGroupResponse, error) - DeletePeerGroup(context.Context, *DeletePeerGroupRequest) (*DeletePeerGroupResponse, error) + StartBgp(context.Context, *StartBgpRequest) (*google_protobuf1.Empty, error) + StopBgp(context.Context, *StopBgpRequest) (*google_protobuf1.Empty, error) + GetBgp(context.Context, *GetBgpRequest) (*GetBgpResponse, error) + AddPeer(context.Context, *AddPeerRequest) (*google_protobuf1.Empty, error) + DeletePeer(context.Context, *DeletePeerRequest) (*google_protobuf1.Empty, error) + ListPeer(*ListPeerRequest, GobgpApi_ListPeerServer) error + UpdatePeer(context.Context, *UpdatePeerRequest) (*UpdatePeerResponse, error) + ResetPeer(context.Context, *ResetPeerRequest) (*google_protobuf1.Empty, error) + ShutdownPeer(context.Context, *ShutdownPeerRequest) (*google_protobuf1.Empty, error) + EnablePeer(context.Context, *EnablePeerRequest) (*google_protobuf1.Empty, error) + DisablePeer(context.Context, *DisablePeerRequest) (*google_protobuf1.Empty, error) + MonitorPeer(*MonitorPeerRequest, GobgpApi_MonitorPeerServer) error + AddPeerGroup(context.Context, *AddPeerGroupRequest) (*google_protobuf1.Empty, error) + DeletePeerGroup(context.Context, *DeletePeerGroupRequest) (*google_protobuf1.Empty, error) UpdatePeerGroup(context.Context, *UpdatePeerGroupRequest) (*UpdatePeerGroupResponse, error) - AddDynamicNeighbor(context.Context, *AddDynamicNeighborRequest) (*AddDynamicNeighborResponse, error) - AddCollector(context.Context, *AddCollectorRequest) (*AddCollectorResponse, error) - Shutdown(context.Context, *ShutdownRequest) (*ShutdownResponse, error) + AddDynamicNeighbor(context.Context, *AddDynamicNeighborRequest) (*google_protobuf1.Empty, error) + AddPath(context.Context, *AddPathRequest) (*AddPathResponse, error) + DeletePath(context.Context, *DeletePathRequest) (*google_protobuf1.Empty, error) + ListPath(*ListPathRequest, GobgpApi_ListPathServer) error + AddPathStream(GobgpApi_AddPathStreamServer) error + GetTable(context.Context, *GetTableRequest) (*GetTableResponse, error) + MonitorTable(*MonitorTableRequest, GobgpApi_MonitorTableServer) error + AddVrf(context.Context, *AddVrfRequest) (*google_protobuf1.Empty, error) + DeleteVrf(context.Context, *DeleteVrfRequest) (*google_protobuf1.Empty, error) + ListVrf(*ListVrfRequest, GobgpApi_ListVrfServer) error + AddPolicy(context.Context, *AddPolicyRequest) (*google_protobuf1.Empty, error) + DeletePolicy(context.Context, *DeletePolicyRequest) (*google_protobuf1.Empty, error) + ListPolicy(*ListPolicyRequest, GobgpApi_ListPolicyServer) error + ReplacePolicy(context.Context, *ReplacePolicyRequest) (*google_protobuf1.Empty, error) + UpdatePolicy(context.Context, *UpdatePolicyRequest) (*google_protobuf1.Empty, error) + AddDefinedSet(context.Context, *AddDefinedSetRequest) (*google_protobuf1.Empty, error) + DeleteDefinedSet(context.Context, *DeleteDefinedSetRequest) (*google_protobuf1.Empty, error) + ListDefinedSet(*ListDefinedSetRequest, GobgpApi_ListDefinedSetServer) error + ReplaceDefinedSet(context.Context, *ReplaceDefinedSetRequest) (*google_protobuf1.Empty, error) + AddStatement(context.Context, *AddStatementRequest) (*google_protobuf1.Empty, error) + DeleteStatement(context.Context, *DeleteStatementRequest) (*google_protobuf1.Empty, error) + ListStatement(*ListStatementRequest, GobgpApi_ListStatementServer) error + ReplaceStatement(context.Context, *ReplaceStatementRequest) (*google_protobuf1.Empty, error) + AddPolicyAssignment(context.Context, *AddPolicyAssignmentRequest) (*google_protobuf1.Empty, error) + DeletePolicyAssignment(context.Context, *DeletePolicyAssignmentRequest) (*google_protobuf1.Empty, error) + ListPolicyAssignment(*ListPolicyAssignmentRequest, GobgpApi_ListPolicyAssignmentServer) error + ReplacePolicyAssignment(context.Context, *ReplacePolicyAssignmentRequest) (*google_protobuf1.Empty, error) + AddRpki(context.Context, *AddRpkiRequest) (*google_protobuf1.Empty, error) + DeleteRpki(context.Context, *DeleteRpkiRequest) (*google_protobuf1.Empty, error) + ListRpki(*ListRpkiRequest, GobgpApi_ListRpkiServer) error + EnableRpki(context.Context, *EnableRpkiRequest) (*google_protobuf1.Empty, error) + DisableRpki(context.Context, *DisableRpkiRequest) (*google_protobuf1.Empty, error) + ResetRpki(context.Context, *ResetRpkiRequest) (*google_protobuf1.Empty, error) + ListRpkiTable(*ListRpkiTableRequest, GobgpApi_ListRpkiTableServer) error + EnableZebra(context.Context, *EnableZebraRequest) (*google_protobuf1.Empty, error) + EnableMrt(context.Context, *EnableMrtRequest) (*google_protobuf1.Empty, error) + DisableMrt(context.Context, *DisableMrtRequest) (*google_protobuf1.Empty, error) + AddBmp(context.Context, *AddBmpRequest) (*google_protobuf1.Empty, error) + DeleteBmp(context.Context, *DeleteBmpRequest) (*google_protobuf1.Empty, error) } func RegisterGobgpApiServer(s *grpc.Server, srv GobgpApiServer) { s.RegisterService(&_GobgpApi_serviceDesc, srv) } -func _GobgpApi_StartServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(StartServerRequest) +func _GobgpApi_StartBgp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StartBgpRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).StartServer(ctx, in) + return srv.(GobgpApiServer).StartBgp(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/StartServer", + FullMethod: "/gobgpapi.GobgpApi/StartBgp", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).StartServer(ctx, req.(*StartServerRequest)) + return srv.(GobgpApiServer).StartBgp(ctx, req.(*StartBgpRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_StopServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(StopServerRequest) +func _GobgpApi_StopBgp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StopBgpRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).StopServer(ctx, in) + return srv.(GobgpApiServer).StopBgp(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/StopServer", + FullMethod: "/gobgpapi.GobgpApi/StopBgp", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).StopServer(ctx, req.(*StopServerRequest)) + return srv.(GobgpApiServer).StopBgp(ctx, req.(*StopBgpRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_GetServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetServerRequest) +func _GobgpApi_GetBgp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBgpRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).GetServer(ctx, in) + return srv.(GobgpApiServer).GetBgp(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/GetServer", + FullMethod: "/gobgpapi.GobgpApi/GetBgp", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).GetServer(ctx, req.(*GetServerRequest)) + return srv.(GobgpApiServer).GetBgp(ctx, req.(*GetBgpRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_AddNeighbor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddNeighborRequest) +func _GobgpApi_AddPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddPeerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).AddNeighbor(ctx, in) + return srv.(GobgpApiServer).AddPeer(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/AddNeighbor", + FullMethod: "/gobgpapi.GobgpApi/AddPeer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).AddNeighbor(ctx, req.(*AddNeighborRequest)) + return srv.(GobgpApiServer).AddPeer(ctx, req.(*AddPeerRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_DeleteNeighbor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteNeighborRequest) +func _GobgpApi_DeletePeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeletePeerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).DeleteNeighbor(ctx, in) + return srv.(GobgpApiServer).DeletePeer(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/DeleteNeighbor", + FullMethod: "/gobgpapi.GobgpApi/DeletePeer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).DeleteNeighbor(ctx, req.(*DeleteNeighborRequest)) + return srv.(GobgpApiServer).DeletePeer(ctx, req.(*DeletePeerRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_UpdateNeighbor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateNeighborRequest) +func _GobgpApi_ListPeer_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ListPeerRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(GobgpApiServer).ListPeer(m, &gobgpApiListPeerServer{stream}) +} + +type GobgpApi_ListPeerServer interface { + Send(*ListPeerResponse) error + grpc.ServerStream +} + +type gobgpApiListPeerServer struct { + grpc.ServerStream +} + +func (x *gobgpApiListPeerServer) Send(m *ListPeerResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _GobgpApi_UpdatePeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdatePeerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).UpdateNeighbor(ctx, in) + return srv.(GobgpApiServer).UpdatePeer(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/UpdateNeighbor", + FullMethod: "/gobgpapi.GobgpApi/UpdatePeer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).UpdateNeighbor(ctx, req.(*UpdateNeighborRequest)) + return srv.(GobgpApiServer).UpdatePeer(ctx, req.(*UpdatePeerRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_GetNeighbor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetNeighborRequest) +func _GobgpApi_ResetPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResetPeerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).GetNeighbor(ctx, in) + return srv.(GobgpApiServer).ResetPeer(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/GetNeighbor", + FullMethod: "/gobgpapi.GobgpApi/ResetPeer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).GetNeighbor(ctx, req.(*GetNeighborRequest)) + return srv.(GobgpApiServer).ResetPeer(ctx, req.(*ResetPeerRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_ResetNeighbor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResetNeighborRequest) +func _GobgpApi_ShutdownPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ShutdownPeerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).ResetNeighbor(ctx, in) + return srv.(GobgpApiServer).ShutdownPeer(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/ResetNeighbor", + FullMethod: "/gobgpapi.GobgpApi/ShutdownPeer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).ResetNeighbor(ctx, req.(*ResetNeighborRequest)) + return srv.(GobgpApiServer).ShutdownPeer(ctx, req.(*ShutdownPeerRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_SoftResetNeighbor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SoftResetNeighborRequest) +func _GobgpApi_EnablePeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EnablePeerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).SoftResetNeighbor(ctx, in) + return srv.(GobgpApiServer).EnablePeer(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/SoftResetNeighbor", + FullMethod: "/gobgpapi.GobgpApi/EnablePeer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).SoftResetNeighbor(ctx, req.(*SoftResetNeighborRequest)) + return srv.(GobgpApiServer).EnablePeer(ctx, req.(*EnablePeerRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_ShutdownNeighbor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ShutdownNeighborRequest) +func _GobgpApi_DisablePeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisablePeerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).ShutdownNeighbor(ctx, in) + return srv.(GobgpApiServer).DisablePeer(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/ShutdownNeighbor", + FullMethod: "/gobgpapi.GobgpApi/DisablePeer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).ShutdownNeighbor(ctx, req.(*ShutdownNeighborRequest)) + return srv.(GobgpApiServer).DisablePeer(ctx, req.(*DisablePeerRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_EnableNeighbor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(EnableNeighborRequest) +func _GobgpApi_MonitorPeer_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(MonitorPeerRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(GobgpApiServer).MonitorPeer(m, &gobgpApiMonitorPeerServer{stream}) +} + +type GobgpApi_MonitorPeerServer interface { + Send(*MonitorPeerResponse) error + grpc.ServerStream +} + +type gobgpApiMonitorPeerServer struct { + grpc.ServerStream +} + +func (x *gobgpApiMonitorPeerServer) Send(m *MonitorPeerResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _GobgpApi_AddPeerGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddPeerGroupRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).EnableNeighbor(ctx, in) + return srv.(GobgpApiServer).AddPeerGroup(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/EnableNeighbor", + FullMethod: "/gobgpapi.GobgpApi/AddPeerGroup", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).EnableNeighbor(ctx, req.(*EnableNeighborRequest)) + return srv.(GobgpApiServer).AddPeerGroup(ctx, req.(*AddPeerGroupRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_DisableNeighbor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DisableNeighborRequest) +func _GobgpApi_DeletePeerGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeletePeerGroupRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).DisableNeighbor(ctx, in) + return srv.(GobgpApiServer).DeletePeerGroup(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/DisableNeighbor", + FullMethod: "/gobgpapi.GobgpApi/DeletePeerGroup", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).DisableNeighbor(ctx, req.(*DisableNeighborRequest)) + return srv.(GobgpApiServer).DeletePeerGroup(ctx, req.(*DeletePeerGroupRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_GetRib_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetRibRequest) +func _GobgpApi_UpdatePeerGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdatePeerGroupRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).GetRib(ctx, in) + return srv.(GobgpApiServer).UpdatePeerGroup(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/GetRib", + FullMethod: "/gobgpapi.GobgpApi/UpdatePeerGroup", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).GetRib(ctx, req.(*GetRibRequest)) + return srv.(GobgpApiServer).UpdatePeerGroup(ctx, req.(*UpdatePeerGroupRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_GetPath_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(GetPathRequest) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(GobgpApiServer).GetPath(m, &gobgpApiGetPathServer{stream}) -} - -type GobgpApi_GetPathServer interface { - Send(*Path) error - grpc.ServerStream -} - -type gobgpApiGetPathServer struct { - grpc.ServerStream -} - -func (x *gobgpApiGetPathServer) Send(m *Path) error { - return x.ServerStream.SendMsg(m) -} - -func _GobgpApi_ValidateRib_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ValidateRibRequest) +func _GobgpApi_AddDynamicNeighbor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddDynamicNeighborRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).ValidateRib(ctx, in) + return srv.(GobgpApiServer).AddDynamicNeighbor(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/ValidateRib", + FullMethod: "/gobgpapi.GobgpApi/AddDynamicNeighbor", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).ValidateRib(ctx, req.(*ValidateRibRequest)) + return srv.(GobgpApiServer).AddDynamicNeighbor(ctx, req.(*AddDynamicNeighborRequest)) } return interceptor(ctx, in, info, handler) } @@ -7550,376 +7186,238 @@ func _GobgpApi_DeletePath_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } -func _GobgpApi_MonitorRib_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(MonitorRibRequest) +func _GobgpApi_ListPath_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ListPathRequest) if err := stream.RecvMsg(m); err != nil { return err } - return srv.(GobgpApiServer).MonitorRib(m, &gobgpApiMonitorRibServer{stream}) + return srv.(GobgpApiServer).ListPath(m, &gobgpApiListPathServer{stream}) } -type GobgpApi_MonitorRibServer interface { - Send(*Destination) error +type GobgpApi_ListPathServer interface { + Send(*ListPathResponse) error grpc.ServerStream } -type gobgpApiMonitorRibServer struct { +type gobgpApiListPathServer struct { grpc.ServerStream } -func (x *gobgpApiMonitorRibServer) Send(m *Destination) error { +func (x *gobgpApiListPathServer) Send(m *ListPathResponse) error { return x.ServerStream.SendMsg(m) } -func _GobgpApi_MonitorPeerState_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(Arguments) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(GobgpApiServer).MonitorPeerState(m, &gobgpApiMonitorPeerStateServer{stream}) +func _GobgpApi_AddPathStream_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(GobgpApiServer).AddPathStream(&gobgpApiAddPathStreamServer{stream}) } -type GobgpApi_MonitorPeerStateServer interface { - Send(*Peer) error +type GobgpApi_AddPathStreamServer interface { + SendAndClose(*google_protobuf1.Empty) error + Recv() (*AddPathStreamRequest, error) grpc.ServerStream } -type gobgpApiMonitorPeerStateServer struct { +type gobgpApiAddPathStreamServer struct { grpc.ServerStream } -func (x *gobgpApiMonitorPeerStateServer) Send(m *Peer) error { +func (x *gobgpApiAddPathStreamServer) SendAndClose(m *google_protobuf1.Empty) error { return x.ServerStream.SendMsg(m) } -func _GobgpApi_EnableMrt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(EnableMrtRequest) - if err := dec(in); err != nil { +func (x *gobgpApiAddPathStreamServer) Recv() (*AddPathStreamRequest, error) { + m := new(AddPathStreamRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } - if interceptor == nil { - return srv.(GobgpApiServer).EnableMrt(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gobgpapi.GobgpApi/EnableMrt", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).EnableMrt(ctx, req.(*EnableMrtRequest)) - } - return interceptor(ctx, in, info, handler) + return m, nil } -func _GobgpApi_DisableMrt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DisableMrtRequest) +func _GobgpApi_GetTable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTableRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).DisableMrt(ctx, in) + return srv.(GobgpApiServer).GetTable(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/DisableMrt", + FullMethod: "/gobgpapi.GobgpApi/GetTable", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).DisableMrt(ctx, req.(*DisableMrtRequest)) + return srv.(GobgpApiServer).GetTable(ctx, req.(*GetTableRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_InjectMrt_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(GobgpApiServer).InjectMrt(&gobgpApiInjectMrtServer{stream}) +func _GobgpApi_MonitorTable_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(MonitorTableRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(GobgpApiServer).MonitorTable(m, &gobgpApiMonitorTableServer{stream}) } -type GobgpApi_InjectMrtServer interface { - SendAndClose(*InjectMrtResponse) error - Recv() (*InjectMrtRequest, error) +type GobgpApi_MonitorTableServer interface { + Send(*MonitorTableResponse) error grpc.ServerStream } -type gobgpApiInjectMrtServer struct { +type gobgpApiMonitorTableServer struct { grpc.ServerStream } -func (x *gobgpApiInjectMrtServer) SendAndClose(m *InjectMrtResponse) error { +func (x *gobgpApiMonitorTableServer) Send(m *MonitorTableResponse) error { return x.ServerStream.SendMsg(m) } -func (x *gobgpApiInjectMrtServer) Recv() (*InjectMrtRequest, error) { - m := new(InjectMrtRequest) - if err := x.ServerStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -func _GobgpApi_AddBmp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddBmpRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GobgpApiServer).AddBmp(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gobgpapi.GobgpApi/AddBmp", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).AddBmp(ctx, req.(*AddBmpRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _GobgpApi_DeleteBmp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteBmpRequest) +func _GobgpApi_AddVrf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddVrfRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).DeleteBmp(ctx, in) + return srv.(GobgpApiServer).AddVrf(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/DeleteBmp", + FullMethod: "/gobgpapi.GobgpApi/AddVrf", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).DeleteBmp(ctx, req.(*DeleteBmpRequest)) + return srv.(GobgpApiServer).AddVrf(ctx, req.(*AddVrfRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_GetRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetRpkiRequest) +func _GobgpApi_DeleteVrf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteVrfRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).GetRpki(ctx, in) + return srv.(GobgpApiServer).DeleteVrf(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/GetRpki", + FullMethod: "/gobgpapi.GobgpApi/DeleteVrf", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).GetRpki(ctx, req.(*GetRpkiRequest)) + return srv.(GobgpApiServer).DeleteVrf(ctx, req.(*DeleteVrfRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_AddRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddRpkiRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GobgpApiServer).AddRpki(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gobgpapi.GobgpApi/AddRpki", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).AddRpki(ctx, req.(*AddRpkiRequest)) +func _GobgpApi_ListVrf_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ListVrfRequest) + if err := stream.RecvMsg(m); err != nil { + return err } - return interceptor(ctx, in, info, handler) + return srv.(GobgpApiServer).ListVrf(m, &gobgpApiListVrfServer{stream}) } -func _GobgpApi_DeleteRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteRpkiRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GobgpApiServer).DeleteRpki(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gobgpapi.GobgpApi/DeleteRpki", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).DeleteRpki(ctx, req.(*DeleteRpkiRequest)) - } - return interceptor(ctx, in, info, handler) +type GobgpApi_ListVrfServer interface { + Send(*ListVrfResponse) error + grpc.ServerStream } -func _GobgpApi_EnableRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(EnableRpkiRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GobgpApiServer).EnableRpki(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gobgpapi.GobgpApi/EnableRpki", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).EnableRpki(ctx, req.(*EnableRpkiRequest)) - } - return interceptor(ctx, in, info, handler) +type gobgpApiListVrfServer struct { + grpc.ServerStream } -func _GobgpApi_DisableRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DisableRpkiRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GobgpApiServer).DisableRpki(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gobgpapi.GobgpApi/DisableRpki", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).DisableRpki(ctx, req.(*DisableRpkiRequest)) - } - return interceptor(ctx, in, info, handler) +func (x *gobgpApiListVrfServer) Send(m *ListVrfResponse) error { + return x.ServerStream.SendMsg(m) } -func _GobgpApi_ResetRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResetRpkiRequest) +func _GobgpApi_AddPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddPolicyRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).ResetRpki(ctx, in) + return srv.(GobgpApiServer).AddPolicy(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/ResetRpki", + FullMethod: "/gobgpapi.GobgpApi/AddPolicy", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).ResetRpki(ctx, req.(*ResetRpkiRequest)) + return srv.(GobgpApiServer).AddPolicy(ctx, req.(*AddPolicyRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_SoftResetRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SoftResetRpkiRequest) +func _GobgpApi_DeletePolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeletePolicyRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).SoftResetRpki(ctx, in) + return srv.(GobgpApiServer).DeletePolicy(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/SoftResetRpki", + FullMethod: "/gobgpapi.GobgpApi/DeletePolicy", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).SoftResetRpki(ctx, req.(*SoftResetRpkiRequest)) + return srv.(GobgpApiServer).DeletePolicy(ctx, req.(*DeletePolicyRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_GetRoa_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetRoaRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GobgpApiServer).GetRoa(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gobgpapi.GobgpApi/GetRoa", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).GetRoa(ctx, req.(*GetRoaRequest)) +func _GobgpApi_ListPolicy_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ListPolicyRequest) + if err := stream.RecvMsg(m); err != nil { + return err } - return interceptor(ctx, in, info, handler) + return srv.(GobgpApiServer).ListPolicy(m, &gobgpApiListPolicyServer{stream}) } -func _GobgpApi_EnableZebra_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(EnableZebraRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GobgpApiServer).EnableZebra(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gobgpapi.GobgpApi/EnableZebra", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).EnableZebra(ctx, req.(*EnableZebraRequest)) - } - return interceptor(ctx, in, info, handler) +type GobgpApi_ListPolicyServer interface { + Send(*ListPolicyResponse) error + grpc.ServerStream } -func _GobgpApi_AddVrf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddVrfRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GobgpApiServer).AddVrf(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gobgpapi.GobgpApi/AddVrf", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).AddVrf(ctx, req.(*AddVrfRequest)) - } - return interceptor(ctx, in, info, handler) +type gobgpApiListPolicyServer struct { + grpc.ServerStream } -func _GobgpApi_DeleteVrf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteVrfRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GobgpApiServer).DeleteVrf(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gobgpapi.GobgpApi/DeleteVrf", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).DeleteVrf(ctx, req.(*DeleteVrfRequest)) - } - return interceptor(ctx, in, info, handler) +func (x *gobgpApiListPolicyServer) Send(m *ListPolicyResponse) error { + return x.ServerStream.SendMsg(m) } -func _GobgpApi_GetVrf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetVrfRequest) +func _GobgpApi_ReplacePolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReplacePolicyRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).GetVrf(ctx, in) + return srv.(GobgpApiServer).ReplacePolicy(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/GetVrf", + FullMethod: "/gobgpapi.GobgpApi/ReplacePolicy", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).GetVrf(ctx, req.(*GetVrfRequest)) + return srv.(GobgpApiServer).ReplacePolicy(ctx, req.(*ReplacePolicyRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_GetDefinedSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetDefinedSetRequest) +func _GobgpApi_UpdatePolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdatePolicyRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).GetDefinedSet(ctx, in) + return srv.(GobgpApiServer).UpdatePolicy(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/GetDefinedSet", + FullMethod: "/gobgpapi.GobgpApi/UpdatePolicy", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).GetDefinedSet(ctx, req.(*GetDefinedSetRequest)) + return srv.(GobgpApiServer).UpdatePolicy(ctx, req.(*UpdatePolicyRequest)) } return interceptor(ctx, in, info, handler) } @@ -7960,6 +7458,27 @@ func _GobgpApi_DeleteDefinedSet_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } +func _GobgpApi_ListDefinedSet_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ListDefinedSetRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(GobgpApiServer).ListDefinedSet(m, &gobgpApiListDefinedSetServer{stream}) +} + +type GobgpApi_ListDefinedSetServer interface { + Send(*ListDefinedSetResponse) error + grpc.ServerStream +} + +type gobgpApiListDefinedSetServer struct { + grpc.ServerStream +} + +func (x *gobgpApiListDefinedSetServer) Send(m *ListDefinedSetResponse) error { + return x.ServerStream.SendMsg(m) +} + func _GobgpApi_ReplaceDefinedSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ReplaceDefinedSetRequest) if err := dec(in); err != nil { @@ -7978,24 +7497,6 @@ func _GobgpApi_ReplaceDefinedSet_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } -func _GobgpApi_GetStatement_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetStatementRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GobgpApiServer).GetStatement(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gobgpapi.GobgpApi/GetStatement", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).GetStatement(ctx, req.(*GetStatementRequest)) - } - return interceptor(ctx, in, info, handler) -} - func _GobgpApi_AddStatement_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(AddStatementRequest) if err := dec(in); err != nil { @@ -8032,6 +7533,27 @@ func _GobgpApi_DeleteStatement_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _GobgpApi_ListStatement_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ListStatementRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(GobgpApiServer).ListStatement(m, &gobgpApiListStatementServer{stream}) +} + +type GobgpApi_ListStatementServer interface { + Send(*ListStatementResponse) error + grpc.ServerStream +} + +type gobgpApiListStatementServer struct { + grpc.ServerStream +} + +func (x *gobgpApiListStatementServer) Send(m *ListStatementResponse) error { + return x.ServerStream.SendMsg(m) +} + func _GobgpApi_ReplaceStatement_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ReplaceStatementRequest) if err := dec(in); err != nil { @@ -8050,290 +7572,299 @@ func _GobgpApi_ReplaceStatement_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } -func _GobgpApi_GetPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetPolicyRequest) +func _GobgpApi_AddPolicyAssignment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddPolicyAssignmentRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).GetPolicy(ctx, in) + return srv.(GobgpApiServer).AddPolicyAssignment(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/GetPolicy", + FullMethod: "/gobgpapi.GobgpApi/AddPolicyAssignment", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).GetPolicy(ctx, req.(*GetPolicyRequest)) + return srv.(GobgpApiServer).AddPolicyAssignment(ctx, req.(*AddPolicyAssignmentRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_AddPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddPolicyRequest) +func _GobgpApi_DeletePolicyAssignment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeletePolicyAssignmentRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).AddPolicy(ctx, in) + return srv.(GobgpApiServer).DeletePolicyAssignment(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/AddPolicy", + FullMethod: "/gobgpapi.GobgpApi/DeletePolicyAssignment", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).AddPolicy(ctx, req.(*AddPolicyRequest)) + return srv.(GobgpApiServer).DeletePolicyAssignment(ctx, req.(*DeletePolicyAssignmentRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_DeletePolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeletePolicyRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GobgpApiServer).DeletePolicy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gobgpapi.GobgpApi/DeletePolicy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).DeletePolicy(ctx, req.(*DeletePolicyRequest)) +func _GobgpApi_ListPolicyAssignment_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ListPolicyAssignmentRequest) + if err := stream.RecvMsg(m); err != nil { + return err } - return interceptor(ctx, in, info, handler) + return srv.(GobgpApiServer).ListPolicyAssignment(m, &gobgpApiListPolicyAssignmentServer{stream}) } -func _GobgpApi_ReplacePolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ReplacePolicyRequest) +type GobgpApi_ListPolicyAssignmentServer interface { + Send(*ListPolicyAssignmentResponse) error + grpc.ServerStream +} + +type gobgpApiListPolicyAssignmentServer struct { + grpc.ServerStream +} + +func (x *gobgpApiListPolicyAssignmentServer) Send(m *ListPolicyAssignmentResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _GobgpApi_ReplacePolicyAssignment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReplacePolicyAssignmentRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).ReplacePolicy(ctx, in) + return srv.(GobgpApiServer).ReplacePolicyAssignment(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/ReplacePolicy", + FullMethod: "/gobgpapi.GobgpApi/ReplacePolicyAssignment", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).ReplacePolicy(ctx, req.(*ReplacePolicyRequest)) + return srv.(GobgpApiServer).ReplacePolicyAssignment(ctx, req.(*ReplacePolicyAssignmentRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_UpdatePolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdatePolicyRequest) +func _GobgpApi_AddRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddRpkiRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).UpdatePolicy(ctx, in) + return srv.(GobgpApiServer).AddRpki(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/UpdatePolicy", + FullMethod: "/gobgpapi.GobgpApi/AddRpki", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).UpdatePolicy(ctx, req.(*UpdatePolicyRequest)) + return srv.(GobgpApiServer).AddRpki(ctx, req.(*AddRpkiRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_GetPolicyAssignment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetPolicyAssignmentRequest) +func _GobgpApi_DeleteRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteRpkiRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).GetPolicyAssignment(ctx, in) + return srv.(GobgpApiServer).DeleteRpki(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/GetPolicyAssignment", + FullMethod: "/gobgpapi.GobgpApi/DeleteRpki", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).GetPolicyAssignment(ctx, req.(*GetPolicyAssignmentRequest)) + return srv.(GobgpApiServer).DeleteRpki(ctx, req.(*DeleteRpkiRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_AddPolicyAssignment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddPolicyAssignmentRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GobgpApiServer).AddPolicyAssignment(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gobgpapi.GobgpApi/AddPolicyAssignment", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).AddPolicyAssignment(ctx, req.(*AddPolicyAssignmentRequest)) +func _GobgpApi_ListRpki_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ListRpkiRequest) + if err := stream.RecvMsg(m); err != nil { + return err } - return interceptor(ctx, in, info, handler) + return srv.(GobgpApiServer).ListRpki(m, &gobgpApiListRpkiServer{stream}) } -func _GobgpApi_DeletePolicyAssignment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeletePolicyAssignmentRequest) +type GobgpApi_ListRpkiServer interface { + Send(*ListRpkiResponse) error + grpc.ServerStream +} + +type gobgpApiListRpkiServer struct { + grpc.ServerStream +} + +func (x *gobgpApiListRpkiServer) Send(m *ListRpkiResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _GobgpApi_EnableRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EnableRpkiRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).DeletePolicyAssignment(ctx, in) + return srv.(GobgpApiServer).EnableRpki(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/DeletePolicyAssignment", + FullMethod: "/gobgpapi.GobgpApi/EnableRpki", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).DeletePolicyAssignment(ctx, req.(*DeletePolicyAssignmentRequest)) + return srv.(GobgpApiServer).EnableRpki(ctx, req.(*EnableRpkiRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_ReplacePolicyAssignment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ReplacePolicyAssignmentRequest) +func _GobgpApi_DisableRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisableRpkiRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).ReplacePolicyAssignment(ctx, in) + return srv.(GobgpApiServer).DisableRpki(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/ReplacePolicyAssignment", + FullMethod: "/gobgpapi.GobgpApi/DisableRpki", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).ReplacePolicyAssignment(ctx, req.(*ReplacePolicyAssignmentRequest)) + return srv.(GobgpApiServer).DisableRpki(ctx, req.(*DisableRpkiRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_GetRibInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetRibInfoRequest) +func _GobgpApi_ResetRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResetRpkiRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).GetRibInfo(ctx, in) + return srv.(GobgpApiServer).ResetRpki(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/GetRibInfo", + FullMethod: "/gobgpapi.GobgpApi/ResetRpki", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).GetRibInfo(ctx, req.(*GetRibInfoRequest)) + return srv.(GobgpApiServer).ResetRpki(ctx, req.(*ResetRpkiRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_AddPeerGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddPeerGroupRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GobgpApiServer).AddPeerGroup(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gobgpapi.GobgpApi/AddPeerGroup", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).AddPeerGroup(ctx, req.(*AddPeerGroupRequest)) +func _GobgpApi_ListRpkiTable_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ListRpkiTableRequest) + if err := stream.RecvMsg(m); err != nil { + return err } - return interceptor(ctx, in, info, handler) + return srv.(GobgpApiServer).ListRpkiTable(m, &gobgpApiListRpkiTableServer{stream}) } -func _GobgpApi_DeletePeerGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeletePeerGroupRequest) +type GobgpApi_ListRpkiTableServer interface { + Send(*ListRpkiTableResponse) error + grpc.ServerStream +} + +type gobgpApiListRpkiTableServer struct { + grpc.ServerStream +} + +func (x *gobgpApiListRpkiTableServer) Send(m *ListRpkiTableResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _GobgpApi_EnableZebra_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EnableZebraRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).DeletePeerGroup(ctx, in) + return srv.(GobgpApiServer).EnableZebra(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/DeletePeerGroup", + FullMethod: "/gobgpapi.GobgpApi/EnableZebra", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).DeletePeerGroup(ctx, req.(*DeletePeerGroupRequest)) + return srv.(GobgpApiServer).EnableZebra(ctx, req.(*EnableZebraRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_UpdatePeerGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdatePeerGroupRequest) +func _GobgpApi_EnableMrt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EnableMrtRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).UpdatePeerGroup(ctx, in) + return srv.(GobgpApiServer).EnableMrt(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/UpdatePeerGroup", + FullMethod: "/gobgpapi.GobgpApi/EnableMrt", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).UpdatePeerGroup(ctx, req.(*UpdatePeerGroupRequest)) + return srv.(GobgpApiServer).EnableMrt(ctx, req.(*EnableMrtRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_AddDynamicNeighbor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddDynamicNeighborRequest) +func _GobgpApi_DisableMrt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisableMrtRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).AddDynamicNeighbor(ctx, in) + return srv.(GobgpApiServer).DisableMrt(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/AddDynamicNeighbor", + FullMethod: "/gobgpapi.GobgpApi/DisableMrt", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).AddDynamicNeighbor(ctx, req.(*AddDynamicNeighborRequest)) + return srv.(GobgpApiServer).DisableMrt(ctx, req.(*DisableMrtRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_AddCollector_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddCollectorRequest) +func _GobgpApi_AddBmp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddBmpRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).AddCollector(ctx, in) + return srv.(GobgpApiServer).AddBmp(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/AddCollector", + FullMethod: "/gobgpapi.GobgpApi/AddBmp", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).AddCollector(ctx, req.(*AddCollectorRequest)) + return srv.(GobgpApiServer).AddBmp(ctx, req.(*AddBmpRequest)) } return interceptor(ctx, in, info, handler) } -func _GobgpApi_Shutdown_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ShutdownRequest) +func _GobgpApi_DeleteBmp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteBmpRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GobgpApiServer).Shutdown(ctx, in) + return srv.(GobgpApiServer).DeleteBmp(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/gobgpapi.GobgpApi/Shutdown", + FullMethod: "/gobgpapi.GobgpApi/DeleteBmp", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GobgpApiServer).Shutdown(ctx, req.(*ShutdownRequest)) + return srv.(GobgpApiServer).DeleteBmp(ctx, req.(*DeleteBmpRequest)) } return interceptor(ctx, in, info, handler) } @@ -8343,60 +7874,60 @@ var _GobgpApi_serviceDesc = grpc.ServiceDesc{ HandlerType: (*GobgpApiServer)(nil), Methods: []grpc.MethodDesc{ { - MethodName: "StartServer", - Handler: _GobgpApi_StartServer_Handler, + MethodName: "StartBgp", + Handler: _GobgpApi_StartBgp_Handler, }, { - MethodName: "StopServer", - Handler: _GobgpApi_StopServer_Handler, + MethodName: "StopBgp", + Handler: _GobgpApi_StopBgp_Handler, }, { - MethodName: "GetServer", - Handler: _GobgpApi_GetServer_Handler, + MethodName: "GetBgp", + Handler: _GobgpApi_GetBgp_Handler, }, { - MethodName: "AddNeighbor", - Handler: _GobgpApi_AddNeighbor_Handler, + MethodName: "AddPeer", + Handler: _GobgpApi_AddPeer_Handler, }, { - MethodName: "DeleteNeighbor", - Handler: _GobgpApi_DeleteNeighbor_Handler, + MethodName: "DeletePeer", + Handler: _GobgpApi_DeletePeer_Handler, }, { - MethodName: "UpdateNeighbor", - Handler: _GobgpApi_UpdateNeighbor_Handler, + MethodName: "UpdatePeer", + Handler: _GobgpApi_UpdatePeer_Handler, }, { - MethodName: "GetNeighbor", - Handler: _GobgpApi_GetNeighbor_Handler, + MethodName: "ResetPeer", + Handler: _GobgpApi_ResetPeer_Handler, }, { - MethodName: "ResetNeighbor", - Handler: _GobgpApi_ResetNeighbor_Handler, + MethodName: "ShutdownPeer", + Handler: _GobgpApi_ShutdownPeer_Handler, }, { - MethodName: "SoftResetNeighbor", - Handler: _GobgpApi_SoftResetNeighbor_Handler, + MethodName: "EnablePeer", + Handler: _GobgpApi_EnablePeer_Handler, }, { - MethodName: "ShutdownNeighbor", - Handler: _GobgpApi_ShutdownNeighbor_Handler, + MethodName: "DisablePeer", + Handler: _GobgpApi_DisablePeer_Handler, }, { - MethodName: "EnableNeighbor", - Handler: _GobgpApi_EnableNeighbor_Handler, + MethodName: "AddPeerGroup", + Handler: _GobgpApi_AddPeerGroup_Handler, }, { - MethodName: "DisableNeighbor", - Handler: _GobgpApi_DisableNeighbor_Handler, + MethodName: "DeletePeerGroup", + Handler: _GobgpApi_DeletePeerGroup_Handler, }, { - MethodName: "GetRib", - Handler: _GobgpApi_GetRib_Handler, + MethodName: "UpdatePeerGroup", + Handler: _GobgpApi_UpdatePeerGroup_Handler, }, { - MethodName: "ValidateRib", - Handler: _GobgpApi_ValidateRib_Handler, + MethodName: "AddDynamicNeighbor", + Handler: _GobgpApi_AddDynamicNeighbor_Handler, }, { MethodName: "AddPath", @@ -8407,56 +7938,8 @@ var _GobgpApi_serviceDesc = grpc.ServiceDesc{ Handler: _GobgpApi_DeletePath_Handler, }, { - MethodName: "EnableMrt", - Handler: _GobgpApi_EnableMrt_Handler, - }, - { - MethodName: "DisableMrt", - Handler: _GobgpApi_DisableMrt_Handler, - }, - { - MethodName: "AddBmp", - Handler: _GobgpApi_AddBmp_Handler, - }, - { - MethodName: "DeleteBmp", - Handler: _GobgpApi_DeleteBmp_Handler, - }, - { - MethodName: "GetRpki", - Handler: _GobgpApi_GetRpki_Handler, - }, - { - MethodName: "AddRpki", - Handler: _GobgpApi_AddRpki_Handler, - }, - { - MethodName: "DeleteRpki", - Handler: _GobgpApi_DeleteRpki_Handler, - }, - { - MethodName: "EnableRpki", - Handler: _GobgpApi_EnableRpki_Handler, - }, - { - MethodName: "DisableRpki", - Handler: _GobgpApi_DisableRpki_Handler, - }, - { - MethodName: "ResetRpki", - Handler: _GobgpApi_ResetRpki_Handler, - }, - { - MethodName: "SoftResetRpki", - Handler: _GobgpApi_SoftResetRpki_Handler, - }, - { - MethodName: "GetRoa", - Handler: _GobgpApi_GetRoa_Handler, - }, - { - MethodName: "EnableZebra", - Handler: _GobgpApi_EnableZebra_Handler, + MethodName: "GetTable", + Handler: _GobgpApi_GetTable_Handler, }, { MethodName: "AddVrf", @@ -8467,12 +7950,20 @@ var _GobgpApi_serviceDesc = grpc.ServiceDesc{ Handler: _GobgpApi_DeleteVrf_Handler, }, { - MethodName: "GetVrf", - Handler: _GobgpApi_GetVrf_Handler, + MethodName: "AddPolicy", + Handler: _GobgpApi_AddPolicy_Handler, + }, + { + MethodName: "DeletePolicy", + Handler: _GobgpApi_DeletePolicy_Handler, + }, + { + MethodName: "ReplacePolicy", + Handler: _GobgpApi_ReplacePolicy_Handler, }, { - MethodName: "GetDefinedSet", - Handler: _GobgpApi_GetDefinedSet_Handler, + MethodName: "UpdatePolicy", + Handler: _GobgpApi_UpdatePolicy_Handler, }, { MethodName: "AddDefinedSet", @@ -8487,10 +7978,6 @@ var _GobgpApi_serviceDesc = grpc.ServiceDesc{ Handler: _GobgpApi_ReplaceDefinedSet_Handler, }, { - MethodName: "GetStatement", - Handler: _GobgpApi_GetStatement_Handler, - }, - { MethodName: "AddStatement", Handler: _GobgpApi_AddStatement_Handler, }, @@ -8503,90 +7990,118 @@ var _GobgpApi_serviceDesc = grpc.ServiceDesc{ Handler: _GobgpApi_ReplaceStatement_Handler, }, { - MethodName: "GetPolicy", - Handler: _GobgpApi_GetPolicy_Handler, + MethodName: "AddPolicyAssignment", + Handler: _GobgpApi_AddPolicyAssignment_Handler, }, { - MethodName: "AddPolicy", - Handler: _GobgpApi_AddPolicy_Handler, + MethodName: "DeletePolicyAssignment", + Handler: _GobgpApi_DeletePolicyAssignment_Handler, }, { - MethodName: "DeletePolicy", - Handler: _GobgpApi_DeletePolicy_Handler, + MethodName: "ReplacePolicyAssignment", + Handler: _GobgpApi_ReplacePolicyAssignment_Handler, }, { - MethodName: "ReplacePolicy", - Handler: _GobgpApi_ReplacePolicy_Handler, + MethodName: "AddRpki", + Handler: _GobgpApi_AddRpki_Handler, }, { - MethodName: "UpdatePolicy", - Handler: _GobgpApi_UpdatePolicy_Handler, + MethodName: "DeleteRpki", + Handler: _GobgpApi_DeleteRpki_Handler, }, { - MethodName: "GetPolicyAssignment", - Handler: _GobgpApi_GetPolicyAssignment_Handler, + MethodName: "EnableRpki", + Handler: _GobgpApi_EnableRpki_Handler, }, { - MethodName: "AddPolicyAssignment", - Handler: _GobgpApi_AddPolicyAssignment_Handler, + MethodName: "DisableRpki", + Handler: _GobgpApi_DisableRpki_Handler, }, { - MethodName: "DeletePolicyAssignment", - Handler: _GobgpApi_DeletePolicyAssignment_Handler, + MethodName: "ResetRpki", + Handler: _GobgpApi_ResetRpki_Handler, }, { - MethodName: "ReplacePolicyAssignment", - Handler: _GobgpApi_ReplacePolicyAssignment_Handler, + MethodName: "EnableZebra", + Handler: _GobgpApi_EnableZebra_Handler, + }, + { + MethodName: "EnableMrt", + Handler: _GobgpApi_EnableMrt_Handler, }, { - MethodName: "GetRibInfo", - Handler: _GobgpApi_GetRibInfo_Handler, + MethodName: "DisableMrt", + Handler: _GobgpApi_DisableMrt_Handler, }, { - MethodName: "AddPeerGroup", - Handler: _GobgpApi_AddPeerGroup_Handler, + MethodName: "AddBmp", + Handler: _GobgpApi_AddBmp_Handler, }, { - MethodName: "DeletePeerGroup", - Handler: _GobgpApi_DeletePeerGroup_Handler, + MethodName: "DeleteBmp", + Handler: _GobgpApi_DeleteBmp_Handler, }, + }, + Streams: []grpc.StreamDesc{ { - MethodName: "UpdatePeerGroup", - Handler: _GobgpApi_UpdatePeerGroup_Handler, + StreamName: "ListPeer", + Handler: _GobgpApi_ListPeer_Handler, + ServerStreams: true, }, { - MethodName: "AddDynamicNeighbor", - Handler: _GobgpApi_AddDynamicNeighbor_Handler, + StreamName: "MonitorPeer", + Handler: _GobgpApi_MonitorPeer_Handler, + ServerStreams: true, }, { - MethodName: "AddCollector", - Handler: _GobgpApi_AddCollector_Handler, + StreamName: "ListPath", + Handler: _GobgpApi_ListPath_Handler, + ServerStreams: true, }, { - MethodName: "Shutdown", - Handler: _GobgpApi_Shutdown_Handler, + StreamName: "AddPathStream", + Handler: _GobgpApi_AddPathStream_Handler, + ClientStreams: true, }, - }, - Streams: []grpc.StreamDesc{ { - StreamName: "GetPath", - Handler: _GobgpApi_GetPath_Handler, + StreamName: "MonitorTable", + Handler: _GobgpApi_MonitorTable_Handler, ServerStreams: true, }, { - StreamName: "MonitorRib", - Handler: _GobgpApi_MonitorRib_Handler, + StreamName: "ListVrf", + Handler: _GobgpApi_ListVrf_Handler, ServerStreams: true, }, { - StreamName: "MonitorPeerState", - Handler: _GobgpApi_MonitorPeerState_Handler, + StreamName: "ListPolicy", + Handler: _GobgpApi_ListPolicy_Handler, ServerStreams: true, }, { - StreamName: "InjectMrt", - Handler: _GobgpApi_InjectMrt_Handler, - ClientStreams: true, + StreamName: "ListDefinedSet", + Handler: _GobgpApi_ListDefinedSet_Handler, + ServerStreams: true, + }, + { + StreamName: "ListStatement", + Handler: _GobgpApi_ListStatement_Handler, + ServerStreams: true, + }, + { + StreamName: "ListPolicyAssignment", + Handler: _GobgpApi_ListPolicyAssignment_Handler, + ServerStreams: true, + }, + { + StreamName: "ListRpki", + Handler: _GobgpApi_ListRpki_Handler, + ServerStreams: true, + }, + { + StreamName: "ListRpkiTable", + Handler: _GobgpApi_ListRpkiTable_Handler, + ServerStreams: true, }, }, Metadata: "gobgp.proto", @@ -8595,526 +8110,487 @@ var _GobgpApi_serviceDesc = grpc.ServiceDesc{ func init() { proto.RegisterFile("gobgp.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ - // 8330 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x4d, 0x6f, 0x24, 0x47, - 0x96, 0x18, 0xeb, 0x83, 0xc5, 0xaa, 0x57, 0x55, 0xac, 0x64, 0x90, 0x6c, 0x56, 0x93, 0xea, 0xaf, - 0x1c, 0xb5, 0xba, 0xd5, 0x92, 0x28, 0x75, 0x4b, 0xa2, 0xb4, 0xd2, 0xf4, 0xec, 0x54, 0x93, 0xd5, - 0xec, 0x5a, 0x91, 0xac, 0x52, 0xb2, 0xba, 0xa7, 0x35, 0xde, 0x71, 0x3a, 0x59, 0x19, 0x55, 0x4c, - 0xab, 0x2a, 0x33, 0x27, 0x33, 0x8b, 0x22, 0x61, 0xc0, 0xee, 0x9e, 0xdd, 0x19, 0x1b, 0x30, 0xf6, - 0x62, 0x1f, 0x6d, 0xc3, 0x07, 0x5f, 0x8c, 0x85, 0x7d, 0x30, 0xb0, 0x86, 0x01, 0x5f, 0xfc, 0x01, - 0xef, 0xc2, 0xf0, 0x02, 0x3e, 0xfa, 0x68, 0xff, 0x00, 0x9f, 0x7c, 0x31, 0x0c, 0x9f, 0x8c, 0xf8, - 0xca, 0x8c, 0xfc, 0x28, 0x92, 0xdd, 0xdb, 0x5a, 0x79, 0x81, 0x39, 0xb1, 0xf2, 0xbd, 0x17, 0x2f, - 0x5e, 0x44, 0xbc, 0x88, 0xf7, 0x5e, 0x7c, 0x3c, 0x42, 0x75, 0xe4, 0x1c, 0x8d, 0xdc, 0x4d, 0xd7, - 0x73, 0x02, 0x07, 0x95, 0xe9, 0x87, 0xe1, 0x5a, 0xeb, 0x57, 0x47, 0x8e, 0x33, 0x1a, 0xe3, 0x0f, - 0x29, 0xfc, 0x68, 0x3a, 0xfc, 0xd0, 0xb0, 0xcf, 0x18, 0x91, 0xfa, 0x73, 0x40, 0xbb, 0x38, 0x38, - 0xc0, 0xd6, 0xe8, 0xf8, 0xc8, 0xf1, 0x34, 0xfc, 0xcb, 0x29, 0xf6, 0x03, 0x74, 0x0f, 0x14, 0x6c, - 0x1b, 0x47, 0x63, 0xdc, 0x32, 0x4f, 0xb0, 0x17, 0x58, 0x3e, 0x36, 0x9b, 0xb9, 0x9b, 0xb9, 0xbb, - 0x65, 0x2d, 0x05, 0x47, 0x4d, 0x58, 0x30, 0x4c, 0xd3, 0xc3, 0xbe, 0xdf, 0xcc, 0xdf, 0xcc, 0xdd, - 0xad, 0x68, 0xe2, 0x53, 0xfd, 0x12, 0x96, 0x63, 0xbc, 0x7d, 0xd7, 0xb1, 0x7d, 0x8c, 0xde, 0x86, - 0x79, 0x17, 0x63, 0xcf, 0x6f, 0xe6, 0x6e, 0x16, 0xee, 0x56, 0x1f, 0x2c, 0x6e, 0x0a, 0x39, 0x37, - 0x7b, 0x18, 0x7b, 0x1a, 0x43, 0xaa, 0x2f, 0x73, 0x50, 0x69, 0x79, 0xa3, 0xe9, 0x04, 0xdb, 0x81, - 0x8f, 0x36, 0xa1, 0xec, 0x61, 0xdf, 0x99, 0x7a, 0x03, 0x4c, 0x05, 0x59, 0x7c, 0x80, 0xa2, 0x62, - 0x1a, 0xc7, 0x68, 0x21, 0x0d, 0xba, 0x02, 0xa5, 0xa1, 0x31, 0xb1, 0xc6, 0x67, 0x54, 0xa6, 0xba, - 0xc6, 0xbf, 0x10, 0x82, 0xa2, 0x6d, 0x4c, 0x70, 0xb3, 0x40, 0x25, 0xa5, 0xbf, 0x49, 0x03, 0x06, - 0x53, 0xcf, 0xc3, 0x76, 0xd0, 0x2c, 0xd2, 0x36, 0x8a, 0x4f, 0xf5, 0x6f, 0xc1, 0x62, 0xcb, 0x34, - 0x7b, 0x46, 0x70, 0x2c, 0x3a, 0xe6, 0x55, 0xe5, 0x58, 0x85, 0xd2, 0x89, 0x37, 0xd4, 0x2d, 0x93, - 0xf7, 0xcd, 0xfc, 0x89, 0x37, 0xec, 0x98, 0x48, 0x85, 0xa2, 0x6b, 0x04, 0xc7, 0x54, 0x8c, 0x78, - 0x0f, 0x90, 0xba, 0x28, 0x4e, 0xbd, 0x0d, 0x8d, 0xb0, 0x72, 0xde, 0x73, 0x08, 0x8a, 0xd3, 0xa9, - 0xc5, 0x86, 0xa2, 0xa6, 0xd1, 0xdf, 0xea, 0x1f, 0xe7, 0x60, 0x69, 0x07, 0x8f, 0x71, 0x80, 0xbf, - 0x07, 0x39, 0xa3, 0x6e, 0x2c, 0xc4, 0xba, 0x51, 0xc8, 0x5f, 0x9c, 0x2d, 0x7f, 0x28, 0xec, 0xbc, - 0x24, 0xec, 0x0a, 0x20, 0x59, 0x56, 0xd6, 0x2c, 0xf5, 0x73, 0x40, 0x2d, 0xd3, 0x4c, 0xea, 0x20, - 0xa9, 0x03, 0x63, 0x8f, 0x8a, 0x9f, 0xd6, 0x12, 0x8a, 0x53, 0x57, 0x61, 0x39, 0x56, 0x92, 0x33, - 0xfc, 0x12, 0x56, 0x59, 0x35, 0xaf, 0xc3, 0xb3, 0x09, 0x57, 0x92, 0x85, 0x39, 0x5b, 0x13, 0x56, - 0x9f, 0xba, 0xa6, 0xf1, 0x5a, 0x6c, 0xd1, 0x1d, 0x50, 0x4c, 0x47, 0xf7, 0x9d, 0x61, 0xa0, 0x7b, - 0xd8, 0xc7, 0x81, 0x6e, 0xd9, 0xb4, 0xaf, 0xcb, 0x5a, 0xdd, 0x74, 0x0e, 0x9d, 0x61, 0xa0, 0x11, - 0x68, 0xc7, 0x56, 0x77, 0xe1, 0x4a, 0xb2, 0x16, 0x3e, 0xfc, 0x1f, 0xc0, 0xb2, 0x8d, 0xb1, 0xe9, - 0x27, 0xb8, 0xf0, 0x89, 0x49, 0x51, 0x32, 0xa3, 0x0e, 0xed, 0x1c, 0x22, 0xc2, 0xae, 0xe7, 0x4c, - 0x5d, 0x21, 0xec, 0x03, 0x00, 0x22, 0x90, 0x3e, 0x22, 0x40, 0x2e, 0xf2, 0x72, 0x5c, 0x64, 0x46, - 0x5f, 0x71, 0xc5, 0x4f, 0xf5, 0x0a, 0xac, 0xc4, 0x59, 0xf1, 0x1e, 0xd9, 0x13, 0x7d, 0xf5, 0x46, - 0x6a, 0xb9, 0x0a, 0x6b, 0x29, 0x6e, 0xbc, 0xa2, 0xa9, 0xe8, 0x94, 0x37, 0x51, 0xd1, 0xe5, 0xc7, - 0xe2, 0x09, 0xac, 0xa5, 0xaa, 0x7d, 0xbd, 0xc1, 0x30, 0xe0, 0x6a, 0xcb, 0x34, 0x77, 0xce, 0x6c, - 0x63, 0x62, 0x0d, 0x92, 0xfa, 0xb3, 0x03, 0x8a, 0xc9, 0x30, 0xba, 0xcd, 0x51, 0xbc, 0x25, 0x57, - 0xa3, 0x96, 0x24, 0xcb, 0x36, 0xcc, 0x38, 0x40, 0x7d, 0x0b, 0xd6, 0xb3, 0xaa, 0xe0, 0x3d, 0xf8, - 0x0c, 0x56, 0xa8, 0x2c, 0xc9, 0xba, 0xa5, 0xe5, 0x3b, 0x17, 0x5b, 0xbe, 0xd1, 0xdb, 0x50, 0x1f, - 0x38, 0x93, 0xc9, 0xd4, 0xb6, 0x06, 0x46, 0x60, 0x39, 0x36, 0x5f, 0x1a, 0xe2, 0x40, 0x75, 0x0d, - 0x56, 0x13, 0x7c, 0x79, 0x85, 0xff, 0x36, 0x07, 0xcd, 0xb0, 0x07, 0x2e, 0x5f, 0xeb, 0x21, 0x54, - 0x4c, 0xcb, 0xc3, 0x83, 0xb0, 0xc6, 0xc5, 0x07, 0x9f, 0x46, 0x9d, 0x30, 0x8b, 0x61, 0x84, 0xd8, - 0x11, 0x85, 0xb5, 0x88, 0x8f, 0xfa, 0x21, 0xa0, 0x34, 0x01, 0x2a, 0x41, 0xbe, 0x73, 0xa0, 0xcc, - 0xa1, 0x05, 0x28, 0x74, 0x9f, 0xf6, 0x95, 0x1c, 0x2a, 0x43, 0xf1, 0x51, 0xb7, 0xff, 0x44, 0xc9, - 0xab, 0x1b, 0x70, 0x35, 0xa3, 0x2a, 0xde, 0xb2, 0x6f, 0x60, 0xed, 0xf0, 0x78, 0x1a, 0x98, 0xce, - 0x77, 0xf6, 0x9b, 0xee, 0xcd, 0x75, 0x68, 0xa6, 0x59, 0xf3, 0x6a, 0xef, 0xc3, 0x6a, 0x9b, 0x1a, - 0xdf, 0x4b, 0x57, 0x4a, 0xd6, 0xb2, 0x64, 0x11, 0xce, 0xec, 0x39, 0x5c, 0xd9, 0xb1, 0xfc, 0x57, - 0xe2, 0x76, 0xc9, 0x26, 0x90, 0x59, 0x9c, 0xe4, 0xcc, 0x2b, 0x9d, 0xc0, 0x32, 0x9f, 0x4e, 0xce, - 0xd8, 0x1a, 0x9c, 0x89, 0x1a, 0xef, 0x42, 0xd1, 0xc7, 0x81, 0xf0, 0x07, 0x56, 0x24, 0x95, 0xc7, - 0x43, 0xcb, 0xc6, 0xe6, 0x21, 0x0e, 0x34, 0x4a, 0x81, 0xde, 0x87, 0xb2, 0x4b, 0x8a, 0x5a, 0x98, - 0x38, 0x1b, 0x84, 0x5a, 0x91, 0xa6, 0x3a, 0x63, 0x1a, 0x52, 0x90, 0x55, 0x2b, 0x5e, 0x1d, 0x17, - 0x63, 0x04, 0x0a, 0xeb, 0x95, 0x7d, 0x2f, 0x10, 0x32, 0x6c, 0x40, 0xc5, 0x9c, 0x4e, 0x5c, 0x3d, - 0x38, 0x73, 0x99, 0xc5, 0x9c, 0xd7, 0xca, 0x04, 0xd0, 0x3f, 0x73, 0x31, 0x5a, 0x87, 0xf2, 0xd0, - 0x1a, 0x63, 0xea, 0x39, 0xb0, 0x36, 0x87, 0xdf, 0x04, 0x67, 0xd9, 0x01, 0xf6, 0x4e, 0x8c, 0x31, - 0x35, 0x92, 0x45, 0x2d, 0xfc, 0x56, 0x97, 0x61, 0x49, 0xaa, 0x88, 0xd7, 0xbe, 0x0c, 0x4b, 0xbc, - 0x7f, 0xa2, 0xea, 0xa9, 0x61, 0x94, 0x80, 0x9c, 0xf4, 0xef, 0x80, 0xd2, 0xb1, 0xff, 0x26, 0x1e, - 0x04, 0x92, 0xa0, 0x6f, 0xc8, 0xb2, 0x13, 0x27, 0xcc, 0x08, 0x8e, 0xfd, 0x66, 0x21, 0xe5, 0x84, - 0x11, 0xd3, 0xcc, 0x90, 0x44, 0x56, 0x49, 0x00, 0x2e, 0xd5, 0xbf, 0xcf, 0x41, 0xbd, 0x65, 0x9a, - 0x8f, 0x26, 0xee, 0xc5, 0x2a, 0x83, 0xa0, 0xe8, 0x3a, 0x5e, 0xc0, 0xbd, 0x30, 0xfa, 0x1b, 0xfd, - 0x18, 0x8a, 0xb4, 0x97, 0x0b, 0x54, 0xfa, 0xbb, 0x51, 0xcd, 0x31, 0xa6, 0x9b, 0xfb, 0x8e, 0x6d, - 0x05, 0x8e, 0x67, 0xd9, 0x23, 0x3e, 0x7c, 0xb4, 0x94, 0xba, 0x0d, 0x4a, 0x12, 0x43, 0x26, 0x70, - 0x4f, 0x6b, 0x2b, 0x73, 0x64, 0x02, 0xf7, 0xba, 0x87, 0xb1, 0xa9, 0x8c, 0x2a, 0x30, 0xbf, 0xd7, - 0xdd, 0x6e, 0xed, 0x29, 0x05, 0x42, 0xd7, 0xda, 0xdb, 0x53, 0x8a, 0xaa, 0x42, 0x1d, 0x3b, 0x5a, - 0x19, 0x6f, 0xd4, 0x4f, 0x41, 0x61, 0xb6, 0xe7, 0x75, 0x9b, 0x45, 0xc7, 0x35, 0xe2, 0xc0, 0xd9, - 0xf6, 0x61, 0x89, 0x4b, 0xab, 0x59, 0x47, 0x82, 0xef, 0x6d, 0x98, 0x0f, 0xc8, 0x50, 0xf3, 0x35, - 0xbe, 0x11, 0xf5, 0x40, 0x9f, 0x80, 0x35, 0x86, 0x95, 0xfd, 0xd2, 0x7c, 0xdc, 0x2f, 0x6d, 0x43, - 0x59, 0xeb, 0x7d, 0xd5, 0xd9, 0x76, 0xec, 0xe1, 0x39, 0x42, 0xde, 0x80, 0xaa, 0x87, 0x27, 0x4e, - 0x80, 0xf5, 0x50, 0xd6, 0x8a, 0x06, 0x0c, 0xd4, 0x23, 0x12, 0xff, 0xe3, 0x22, 0x54, 0x08, 0x9f, - 0xc3, 0xc0, 0x08, 0xa8, 0xcb, 0x3c, 0x75, 0x03, 0x6b, 0xc2, 0xc4, 0x2a, 0x68, 0xfc, 0x8b, 0x28, - 0x38, 0x59, 0x8e, 0x28, 0x26, 0x4f, 0x31, 0xe1, 0x37, 0x5a, 0x84, 0xfc, 0xd4, 0xa5, 0x03, 0x59, - 0xd6, 0xf2, 0x53, 0x97, 0x55, 0x39, 0x70, 0x3c, 0x53, 0xb7, 0xdc, 0x93, 0x4f, 0xa8, 0x7b, 0x58, - 0x27, 0x55, 0x12, 0x50, 0xc7, 0x3d, 0xf9, 0x24, 0x4e, 0xb0, 0x45, 0x7d, 0x43, 0x99, 0x60, 0x8b, - 0x10, 0xb8, 0x1e, 0x1e, 0x5a, 0xa7, 0x8c, 0x43, 0x89, 0x11, 0x30, 0x90, 0xe0, 0x10, 0x11, 0x6c, - 0x35, 0x17, 0x12, 0x04, 0x5b, 0xa4, 0x1d, 0x3e, 0xf6, 0x2c, 0x63, 0xdc, 0x2c, 0x33, 0x9f, 0x95, - 0x7d, 0xa1, 0x1f, 0x41, 0xdd, 0xc3, 0x03, 0x6c, 0x9d, 0x60, 0x2e, 0x5d, 0x85, 0x36, 0xa6, 0x26, - 0x80, 0x94, 0x7b, 0x82, 0x68, 0xab, 0x09, 0x29, 0xa2, 0x2d, 0x42, 0xc4, 0x78, 0xea, 0xb6, 0x13, - 0x58, 0xc3, 0xb3, 0x66, 0x95, 0x11, 0x31, 0xe0, 0x01, 0x85, 0x11, 0x39, 0x07, 0xc6, 0xe0, 0x18, - 0x33, 0xd7, 0xa0, 0x59, 0xa3, 0x24, 0x40, 0x41, 0xd4, 0xaa, 0xa0, 0xdb, 0xb0, 0x18, 0x12, 0x50, - 0x65, 0x69, 0xd6, 0x29, 0x4d, 0x5d, 0xd0, 0x30, 0x3f, 0xe3, 0x3a, 0x54, 0xb1, 0x6d, 0xea, 0xce, - 0x50, 0x37, 0x8d, 0xc0, 0x68, 0x2e, 0x52, 0x9a, 0x0a, 0xb6, 0xcd, 0xee, 0x70, 0xc7, 0x08, 0x0c, - 0xb4, 0x02, 0xf3, 0xd8, 0xf3, 0x1c, 0xaf, 0xd9, 0xa0, 0x18, 0xf6, 0x81, 0x6e, 0x01, 0x97, 0x46, - 0xff, 0xe5, 0x14, 0x7b, 0x67, 0x4d, 0x85, 0x22, 0xab, 0x0c, 0xf6, 0x35, 0x01, 0xb1, 0xa1, 0x20, - 0x5e, 0x0b, 0xa3, 0x58, 0x62, 0x02, 0x52, 0x10, 0x25, 0x50, 0xbf, 0x81, 0xa2, 0xe6, 0x7e, 0x6b, - 0xa1, 0x77, 0xa0, 0x38, 0x70, 0xec, 0x21, 0xd7, 0x56, 0x79, 0xb5, 0xe1, 0x3a, 0xa8, 0x51, 0x3c, - 0x7a, 0x17, 0xe6, 0x7d, 0xa2, 0x49, 0x54, 0x4b, 0x62, 0x4e, 0x58, 0xa8, 0x64, 0x1a, 0xa3, 0x50, - 0xef, 0xc2, 0xe2, 0x2e, 0x0e, 0x08, 0x77, 0x31, 0x27, 0xa2, 0x48, 0x23, 0x27, 0x47, 0x1a, 0xea, - 0x97, 0xd0, 0x08, 0x29, 0x79, 0x8f, 0xdc, 0x85, 0x05, 0x1f, 0x7b, 0x27, 0x99, 0x11, 0x24, 0x25, - 0x14, 0x68, 0xf5, 0xe7, 0x74, 0x9a, 0xcb, 0xd5, 0xbc, 0xda, 0x4a, 0xb5, 0x0e, 0xe5, 0xb1, 0x35, - 0xc4, 0x54, 0xf5, 0x0b, 0x4c, 0xf5, 0xc5, 0xb7, 0xba, 0x44, 0xc3, 0x33, 0x59, 0x30, 0xb5, 0x25, - 0x56, 0x80, 0xd7, 0xae, 0x31, 0x0a, 0x90, 0x62, 0x8c, 0x3f, 0x10, 0x76, 0xe4, 0x52, 0x8c, 0x09, - 0x13, 0x99, 0x9c, 0x33, 0xd9, 0x0c, 0x4d, 0xcc, 0xe5, 0xb8, 0xac, 0xc2, 0x72, 0x8c, 0x9e, 0xb3, - 0x79, 0x1f, 0x14, 0xaa, 0xbf, 0x97, 0x63, 0xb2, 0x0c, 0x4b, 0x12, 0x35, 0x67, 0xf1, 0x11, 0xac, - 0x84, 0xce, 0xd5, 0xe5, 0xd8, 0xac, 0xc1, 0x6a, 0xa2, 0x04, 0x67, 0xf5, 0xe7, 0x39, 0xd1, 0xd6, - 0x9f, 0xe3, 0x23, 0xcf, 0x10, 0x9c, 0x14, 0x28, 0x4c, 0xbd, 0x31, 0xe7, 0x42, 0x7e, 0x52, 0x6d, - 0x77, 0xa6, 0x01, 0xa6, 0x06, 0x9e, 0x39, 0x0f, 0x64, 0x31, 0x24, 0x20, 0x62, 0xe2, 0x7d, 0x52, - 0x39, 0xd1, 0x19, 0xe2, 0xd6, 0xb0, 0x58, 0x57, 0x7c, 0xa2, 0x4f, 0xe0, 0x8a, 0x8d, 0x4f, 0x83, - 0x63, 0xc7, 0xd5, 0x03, 0xcf, 0x1a, 0x8d, 0xb0, 0xa7, 0xb3, 0x4d, 0x10, 0xbe, 0x5d, 0xb0, 0xc2, - 0xb1, 0x7d, 0x86, 0x64, 0xe2, 0xa0, 0x07, 0xb0, 0x9a, 0x2c, 0x65, 0xe2, 0xb1, 0x71, 0xc6, 0xd7, - 0xbc, 0xe5, 0x78, 0xa1, 0x1d, 0x82, 0x22, 0x5d, 0x1e, 0x6b, 0x0c, 0x6f, 0x64, 0x03, 0xea, 0xbb, - 0x38, 0x78, 0xe6, 0x0d, 0x85, 0xb7, 0xf0, 0x31, 0x9d, 0x3e, 0x14, 0xc0, 0xe7, 0xc4, 0x2d, 0x28, - 0x9e, 0x78, 0x43, 0x31, 0x21, 0xea, 0xd1, 0x84, 0x20, 0x44, 0x14, 0xa5, 0x7e, 0x44, 0xad, 0x76, - 0xc4, 0x05, 0xdd, 0x80, 0xc2, 0x89, 0x27, 0xa6, 0x75, 0xa2, 0x08, 0xc1, 0x70, 0x2b, 0x29, 0x55, - 0xa3, 0x7e, 0x2c, 0xac, 0xe4, 0xab, 0xb0, 0x09, 0x0d, 0xa3, 0xcc, 0xe9, 0x29, 0xac, 0xec, 0xe2, - 0x40, 0x72, 0xf0, 0x38, 0xb7, 0x77, 0xb9, 0x73, 0xc0, 0x5c, 0x9b, 0xd5, 0x94, 0x2f, 0x48, 0x06, - 0x8b, 0x79, 0x02, 0xe1, 0x5e, 0x4e, 0x3e, 0xda, 0xcb, 0x51, 0x5b, 0xb0, 0x9a, 0x60, 0x1b, 0x2e, - 0x1a, 0x97, 0xf4, 0x31, 0xd5, 0x9f, 0xd0, 0x58, 0x37, 0x2d, 0xd9, 0x3b, 0x50, 0x20, 0x0b, 0x39, - 0x6b, 0x67, 0x36, 0x03, 0x42, 0x40, 0x74, 0x35, 0x51, 0x9e, 0x37, 0xf9, 0x50, 0x84, 0xb7, 0xaf, - 0xcd, 0x9b, 0xe8, 0xb5, 0x31, 0x1e, 0x73, 0x77, 0x80, 0xfc, 0x24, 0x01, 0x43, 0x9a, 0x29, 0xaf, - 0xf0, 0x11, 0x34, 0x35, 0xec, 0x8e, 0x8d, 0xc1, 0xeb, 0xd7, 0x48, 0x02, 0xa1, 0x0c, 0x1e, 0xbc, - 0x82, 0x55, 0xba, 0xc1, 0x47, 0x57, 0xf6, 0x09, 0xb6, 0x43, 0x67, 0xf6, 0x2b, 0x3a, 0xb6, 0x12, - 0x98, 0x8f, 0xc1, 0xc7, 0x00, 0xbe, 0x00, 0x8a, 0x91, 0x90, 0xac, 0x44, 0x54, 0x40, 0x22, 0x53, - 0x9f, 0xd0, 0x5d, 0x8c, 0x64, 0x1d, 0xe8, 0x3e, 0x54, 0x42, 0xa2, 0x74, 0xd4, 0x1f, 0x91, 0x47, - 0x54, 0x7c, 0x13, 0x23, 0x25, 0x96, 0xfa, 0x0b, 0xb1, 0x89, 0xf1, 0x06, 0x2a, 0xc9, 0x18, 0xa1, - 0x70, 0x57, 0x23, 0x5d, 0xf3, 0x1e, 0xac, 0xf1, 0xce, 0x7d, 0x13, 0xed, 0x5b, 0x0f, 0x87, 0x3b, - 0x5d, 0x13, 0x02, 0x65, 0x17, 0x07, 0xb1, 0xb0, 0x8b, 0x98, 0x2b, 0x09, 0xc6, 0xc7, 0x48, 0x8e, - 0xb0, 0x72, 0x17, 0x46, 0x58, 0xa7, 0xa0, 0xb4, 0x4c, 0x33, 0x19, 0xcd, 0x95, 0x28, 0xfe, 0x8c, - 0x8b, 0x9d, 0x2e, 0xcf, 0xf1, 0xe8, 0x0b, 0xb8, 0xea, 0xe1, 0x21, 0x59, 0x4e, 0x4f, 0x2d, 0x3f, - 0xb0, 0xec, 0x91, 0x2e, 0xa9, 0x07, 0xeb, 0xc1, 0x35, 0x4a, 0xd0, 0xe6, 0xf8, 0xc3, 0x48, 0x2d, - 0x96, 0x61, 0x49, 0xaa, 0x99, 0xb7, 0xf2, 0x57, 0x39, 0x58, 0xe6, 0x3b, 0x48, 0xaf, 0x29, 0xd2, - 0x87, 0xb0, 0xec, 0x12, 0x17, 0xc8, 0x3b, 0xc1, 0x69, 0x61, 0x90, 0x40, 0x45, 0x72, 0x88, 0xf1, - 0x2e, 0x44, 0xe3, 0x7d, 0x05, 0x56, 0xe2, 0x32, 0x70, 0xe1, 0xfe, 0x65, 0x0e, 0x56, 0xf8, 0xf8, - 0xfc, 0x00, 0x1d, 0x36, 0xab, 0x65, 0x85, 0x59, 0x2d, 0x63, 0x1b, 0x3b, 0x31, 0x71, 0xc3, 0xad, - 0x83, 0xf5, 0x50, 0x6f, 0x5a, 0xbe, 0x6f, 0x8d, 0x6c, 0x59, 0x71, 0xbf, 0x00, 0x30, 0x42, 0x20, - 0x6f, 0xd1, 0x7a, 0xb2, 0x45, 0x52, 0x31, 0x89, 0x5a, 0xfd, 0x06, 0x36, 0x32, 0x39, 0x73, 0xdd, - 0xfc, 0x8b, 0xb0, 0x7e, 0x4e, 0x37, 0xc7, 0xbe, 0x0f, 0xa1, 0xaf, 0xc1, 0x46, 0x26, 0xe7, 0x70, - 0xcf, 0xe3, 0x9a, 0xac, 0x0e, 0x6f, 0xb4, 0xee, 0x8c, 0xd5, 0xe6, 0x26, 0x5c, 0x9f, 0x55, 0x1d, - 0x17, 0xe8, 0xf7, 0xe1, 0x7a, 0x6c, 0x5c, 0xdf, 0x6c, 0x6f, 0xdc, 0x82, 0x1b, 0x33, 0xb9, 0xc7, - 0xd6, 0xa2, 0x43, 0xea, 0xa3, 0x8b, 0xb5, 0xe8, 0x21, 0x5d, 0x8b, 0x04, 0x2c, 0xb4, 0xd9, 0xa5, - 0xd1, 0xd8, 0x39, 0x32, 0xc6, 0xe9, 0x89, 0xb1, 0x4b, 0xe1, 0x1a, 0xc7, 0xab, 0x3f, 0x01, 0x74, - 0x18, 0x18, 0x5e, 0x9c, 0xe9, 0x2b, 0x94, 0x5f, 0x85, 0xe5, 0x58, 0xf9, 0x68, 0xab, 0xe6, 0x30, - 0x70, 0xdc, 0xb8, 0xa8, 0x2b, 0xa4, 0xae, 0x08, 0xc8, 0x49, 0xff, 0x59, 0x01, 0x16, 0x49, 0x98, - 0xf3, 0xcc, 0x18, 0x5b, 0x26, 0xdd, 0x08, 0x43, 0x9f, 0x88, 0x78, 0x88, 0xf9, 0x32, 0xd7, 0xe3, - 0xf1, 0x50, 0x44, 0xb8, 0x29, 0x87, 0x46, 0xe8, 0x33, 0x28, 0x79, 0xd8, 0xf0, 0xc3, 0xcd, 0xcf, - 0x1b, 0x33, 0x8b, 0x69, 0x94, 0x4c, 0xe3, 0xe4, 0xe8, 0x0e, 0x2c, 0x4c, 0x8c, 0x60, 0x70, 0x8c, - 0x4d, 0xbe, 0xa7, 0x23, 0xf9, 0x62, 0x9a, 0x63, 0x68, 0x02, 0x8b, 0x3e, 0x82, 0xda, 0xd4, 0xe6, - 0x1f, 0xba, 0xe1, 0x37, 0x8b, 0x59, 0xd4, 0xd5, 0x90, 0xa4, 0xe5, 0xa3, 0xcf, 0x41, 0x89, 0x4a, - 0x8c, 0xb1, 0x3d, 0x0a, 0x8e, 0x9b, 0xf3, 0x59, 0xa5, 0x1a, 0x21, 0xd9, 0x1e, 0xa5, 0x52, 0x7b, - 0x30, 0xcf, 0x76, 0x17, 0x16, 0x01, 0x0e, 0xfb, 0xad, 0x7e, 0x5b, 0x3f, 0xe8, 0x1e, 0xb4, 0x95, - 0x39, 0xb4, 0x0c, 0x0d, 0xf1, 0xdd, 0xd7, 0x1f, 0x77, 0x9f, 0x1e, 0xec, 0x28, 0x39, 0xd4, 0x80, - 0x2a, 0x03, 0x3e, 0x6b, 0xed, 0x75, 0x76, 0x94, 0x3c, 0x5a, 0x82, 0x3a, 0x03, 0x74, 0x0e, 0x18, - 0xa8, 0xa0, 0x7e, 0x09, 0x25, 0xd6, 0x70, 0x42, 0xad, 0xb5, 0x5b, 0x87, 0xdd, 0xbe, 0xe0, 0x59, - 0x87, 0x0a, 0x05, 0x1c, 0xe8, 0xad, 0x43, 0x25, 0x47, 0x0a, 0xf3, 0xcf, 0xbd, 0xf6, 0xc1, 0x2e, - 0xdd, 0xd6, 0xfd, 0x6f, 0xf3, 0x50, 0xec, 0xf1, 0xc3, 0x29, 0x7b, 0xec, 0x59, 0xe2, 0x24, 0x8d, - 0xfc, 0x26, 0x21, 0xa8, 0x6b, 0x04, 0x81, 0xc7, 0xa2, 0x83, 0x9a, 0xc6, 0xbf, 0xe8, 0x24, 0x1b, - 0x89, 0x00, 0x90, 0xfc, 0x24, 0xa5, 0x8f, 0xb0, 0x2f, 0x8e, 0x0b, 0xe9, 0x6f, 0x12, 0x60, 0x58, - 0xbe, 0xfe, 0x9d, 0x15, 0x1c, 0x9b, 0x9e, 0xf1, 0x1d, 0xf5, 0xf2, 0xcb, 0x1a, 0x58, 0xfe, 0xcf, - 0x38, 0x04, 0x5d, 0x07, 0x38, 0x09, 0x07, 0x8f, 0x6e, 0x6c, 0xcc, 0x6b, 0x12, 0x04, 0xb5, 0x61, - 0x29, 0xfa, 0xd2, 0x4d, 0x1c, 0x18, 0xd6, 0x98, 0x6e, 0x6f, 0x54, 0x1f, 0x34, 0x67, 0xe9, 0x80, - 0xa6, 0x44, 0x45, 0x76, 0x68, 0x09, 0xf4, 0x11, 0xac, 0xd8, 0x8e, 0x6e, 0x4d, 0x5c, 0x62, 0xa2, - 0x83, 0x48, 0xa0, 0x32, 0x5b, 0xe8, 0x6d, 0xa7, 0xc3, 0x51, 0xa1, 0x60, 0x51, 0xe8, 0x5d, 0x89, - 0x1d, 0xf2, 0x5d, 0x03, 0x60, 0x7b, 0x88, 0xba, 0xe1, 0xdb, 0x74, 0x23, 0xa4, 0xae, 0x55, 0x18, - 0xa4, 0xe5, 0xdb, 0x68, 0x03, 0xf8, 0x87, 0x6e, 0x99, 0x74, 0x07, 0xa4, 0xa2, 0x95, 0x19, 0xa0, - 0x63, 0xf2, 0x1d, 0xd3, 0x00, 0x7b, 0xd8, 0xa4, 0x5b, 0x1f, 0x65, 0x2d, 0xfc, 0x46, 0x2b, 0x74, - 0x5e, 0x8c, 0xd9, 0x7e, 0x47, 0x59, 0x63, 0x1f, 0xe8, 0x2e, 0x28, 0x96, 0xaf, 0x0f, 0x3d, 0x67, - 0xa2, 0xe3, 0xd3, 0x00, 0x7b, 0xb6, 0x31, 0xa6, 0x9b, 0x1d, 0x65, 0x6d, 0xd1, 0xf2, 0x1f, 0x7b, - 0xce, 0xa4, 0xcd, 0xa1, 0xa4, 0xa7, 0xc5, 0x29, 0x89, 0x6e, 0xb9, 0x74, 0xdf, 0xa3, 0xa2, 0x81, - 0x00, 0x75, 0xdc, 0xf0, 0xe4, 0x51, 0x89, 0x4e, 0x1e, 0xd1, 0xfb, 0x80, 0x2c, 0x5f, 0x17, 0x11, - 0x99, 0x65, 0xd3, 0x7e, 0xa3, 0x9b, 0x1e, 0x65, 0x4d, 0xb1, 0xfc, 0x03, 0x86, 0xe8, 0x30, 0x38, - 0x19, 0x2b, 0xcb, 0xc4, 0x76, 0x60, 0x0d, 0x2d, 0xec, 0x35, 0x11, 0xdb, 0x63, 0x8a, 0x20, 0xe8, - 0x5d, 0x50, 0xc6, 0xce, 0xc0, 0x18, 0xeb, 0x12, 0xd5, 0x32, 0xa5, 0x6a, 0x50, 0x78, 0x27, 0x22, - 0xfd, 0x10, 0xca, 0x86, 0x7d, 0xa6, 0x53, 0x6d, 0x5b, 0x09, 0xbd, 0x6d, 0x67, 0x34, 0xc6, 0x9b, - 0xe2, 0x38, 0x7e, 0xb3, 0x65, 0x9f, 0x69, 0x0b, 0x86, 0x7d, 0x76, 0x40, 0xd4, 0xf0, 0x63, 0x00, - 0x52, 0x80, 0xab, 0xe2, 0x6a, 0x18, 0xaf, 0xa4, 0x8b, 0x54, 0x0c, 0xfb, 0xac, 0x47, 0xc9, 0xd4, - 0x7f, 0x9a, 0x83, 0xea, 0x0e, 0x26, 0x36, 0x9f, 0x29, 0x13, 0xd1, 0x65, 0xba, 0x25, 0xc6, 0x63, - 0x60, 0xfe, 0x15, 0x6d, 0xfb, 0xe6, 0xcf, 0xd9, 0xf6, 0x45, 0x77, 0xa0, 0x31, 0x76, 0x6c, 0x12, - 0xb2, 0xb2, 0x62, 0x58, 0xf8, 0x09, 0x8b, 0x0c, 0xdc, 0xe3, 0x50, 0xd2, 0x0f, 0xfe, 0xb1, 0xe3, - 0x05, 0x32, 0x25, 0x9b, 0x14, 0x0d, 0x0e, 0x17, 0xa4, 0xea, 0xbf, 0xc9, 0xc1, 0x3c, 0xdd, 0xde, - 0x44, 0xef, 0xc4, 0x42, 0xbc, 0xac, 0xdd, 0xeb, 0x99, 0xf1, 0xdd, 0xcc, 0x03, 0xe9, 0xdf, 0x81, - 0x9a, 0x19, 0x35, 0x5f, 0xac, 0x69, 0xb1, 0xf0, 0x31, 0xc4, 0x6a, 0x31, 0x52, 0xba, 0xa1, 0xe8, - 0xf8, 0x81, 0xce, 0x7d, 0x30, 0x3e, 0x71, 0x09, 0x88, 0x59, 0x30, 0x75, 0x8b, 0x86, 0xdf, 0xaf, - 0xbc, 0x7f, 0xab, 0x7e, 0xc6, 0x36, 0xb9, 0x48, 0x39, 0x6e, 0xd0, 0x2e, 0x59, 0x70, 0x02, 0x4b, - 0xf4, 0x7b, 0xcf, 0x71, 0xbe, 0x9d, 0xba, 0xac, 0x07, 0x67, 0x8e, 0xe8, 0x4f, 0xa1, 0x3e, 0xa6, - 0x74, 0xba, 0xe3, 0x4a, 0x67, 0x66, 0x1b, 0x09, 0xde, 0x8c, 0x57, 0xd7, 0x65, 0x1d, 0x30, 0x96, - 0xbe, 0xd4, 0x7f, 0x92, 0xa3, 0x82, 0xca, 0xd7, 0x07, 0xbe, 0x8f, 0x21, 0xfa, 0x0c, 0xca, 0x92, - 0x8e, 0x90, 0xe1, 0xc9, 0x96, 0x91, 0xb5, 0x57, 0x0b, 0x89, 0xd5, 0x31, 0x20, 0xbe, 0xe2, 0x61, - 0x69, 0x10, 0x2e, 0x2b, 0xe2, 0xac, 0x9b, 0x20, 0x51, 0x7f, 0x16, 0xe4, 0xfe, 0x24, 0xae, 0x40, - 0xac, 0x36, 0x6e, 0xdf, 0xff, 0x67, 0x11, 0x8a, 0x3d, 0x8c, 0x3d, 0xba, 0xb2, 0x11, 0x0e, 0x22, - 0x40, 0xaa, 0x6b, 0xe1, 0x37, 0xfa, 0x1c, 0x6a, 0x86, 0xeb, 0x8e, 0xcf, 0x84, 0x2e, 0xb1, 0x8d, - 0x50, 0x49, 0x0b, 0x5b, 0x04, 0xcb, 0xdd, 0xe9, 0xaa, 0x11, 0x7d, 0x84, 0x7b, 0xac, 0x85, 0xe4, - 0x1e, 0x2b, 0xa9, 0x53, 0xda, 0x63, 0xfd, 0x12, 0xea, 0xf8, 0x68, 0xe4, 0xea, 0x93, 0xe9, 0x38, - 0xb0, 0x8e, 0x1d, 0x97, 0xdf, 0xc0, 0xb8, 0x12, 0x15, 0x68, 0x1f, 0x8d, 0xdc, 0x7d, 0x8e, 0xd5, - 0x6a, 0x58, 0xfa, 0x42, 0x2d, 0x68, 0xb0, 0x3d, 0x30, 0x0f, 0x0f, 0xc7, 0x78, 0x10, 0x38, 0x1e, - 0xd5, 0xf6, 0xb8, 0x7d, 0x21, 0x04, 0x9a, 0xc0, 0x6b, 0x8b, 0x5e, 0xec, 0x1b, 0xdd, 0x81, 0xa2, - 0x65, 0x0f, 0x1d, 0x6a, 0xbe, 0x52, 0xe7, 0xec, 0xcc, 0x8f, 0xa1, 0x04, 0xc4, 0xf7, 0x0a, 0xac, - 0x09, 0xf6, 0x7c, 0x6e, 0xc2, 0x24, 0xdf, 0xab, 0x4f, 0xe1, 0x1a, 0xc7, 0x93, 0x48, 0x37, 0xf0, - 0x0c, 0xdb, 0xa7, 0x7b, 0xa1, 0xe5, 0x24, 0xdf, 0xbe, 0x40, 0x69, 0x11, 0x15, 0xe9, 0x67, 0xd6, - 0x10, 0xb6, 0xd1, 0x4b, 0xed, 0x56, 0xac, 0x9f, 0x69, 0x2b, 0xb8, 0x87, 0xc6, 0xf6, 0xfd, 0xd8, - 0x07, 0xda, 0x01, 0x65, 0xe4, 0x19, 0x03, 0x3c, 0x9c, 0x8e, 0x75, 0x0f, 0xfb, 0xc4, 0xe7, 0xa3, - 0x96, 0x2d, 0x76, 0xd2, 0xbe, 0xcb, 0x29, 0x34, 0x46, 0xa0, 0x35, 0x46, 0x71, 0x00, 0xda, 0x84, - 0x8a, 0x31, 0xb4, 0x74, 0xdf, 0x18, 0x5a, 0x7e, 0xb3, 0x4a, 0x75, 0x79, 0x49, 0x1a, 0xe4, 0xa1, - 0x75, 0x68, 0x0c, 0x2d, 0xad, 0x6c, 0xb0, 0x1f, 0x24, 0xf6, 0xaa, 0x18, 0xa6, 0xa9, 0xb3, 0x95, - 0xb7, 0x96, 0x1c, 0x62, 0x7e, 0xcb, 0xc7, 0xd7, 0xca, 0x06, 0xff, 0xa5, 0xfe, 0xdf, 0x22, 0x54, - 0xc2, 0x2b, 0x07, 0xdf, 0x93, 0xca, 0xbd, 0x17, 0x53, 0xb9, 0xb5, 0x8c, 0x2b, 0x13, 0xff, 0x1f, - 0xe9, 0xdd, 0xfb, 0x31, 0xbd, 0x6b, 0x66, 0x08, 0xfb, 0x5b, 0xe5, 0x7b, 0x53, 0xca, 0xf7, 0x04, - 0x1a, 0x89, 0x4b, 0x24, 0x33, 0x8d, 0xcf, 0xb5, 0xd8, 0xe5, 0x1b, 0x66, 0x05, 0xa4, 0x0b, 0x3d, - 0xff, 0x39, 0x07, 0x55, 0x49, 0xff, 0xd0, 0x67, 0x50, 0xb1, 0x6c, 0x3d, 0xb6, 0xd9, 0x71, 0x5e, - 0x5c, 0x59, 0xb6, 0x6c, 0x5e, 0xf0, 0x77, 0xa1, 0x8e, 0x4f, 0x49, 0xef, 0xc7, 0xd5, 0xfc, 0xbc, - 0xc2, 0x35, 0x56, 0x20, 0x62, 0x60, 0x4d, 0x64, 0x06, 0x85, 0x8b, 0x19, 0xb0, 0x02, 0xdc, 0x09, - 0xf8, 0xdb, 0x50, 0x65, 0x86, 0x69, 0xcf, 0x9a, 0x58, 0x33, 0x8f, 0xab, 0xd0, 0x2d, 0xa8, 0x4d, - 0x8c, 0xd3, 0xc8, 0x19, 0x62, 0x36, 0xa7, 0x3a, 0x31, 0x4e, 0x43, 0x9f, 0xe9, 0x13, 0xb8, 0xe2, - 0xf3, 0x2b, 0x1e, 0x7a, 0x70, 0xec, 0x61, 0xff, 0xd8, 0x19, 0x9b, 0xba, 0x3b, 0x08, 0xb8, 0xbd, - 0x5c, 0x11, 0xd8, 0xbe, 0x40, 0xf6, 0x06, 0x81, 0xfa, 0xcf, 0x4b, 0x50, 0x16, 0xb6, 0x00, 0xfd, - 0x08, 0xea, 0xc6, 0x34, 0x38, 0xd6, 0x5d, 0xc3, 0xf7, 0xbf, 0x73, 0x3c, 0x93, 0x8f, 0x4a, 0x8d, - 0x00, 0x7b, 0x1c, 0x86, 0x6e, 0x42, 0xd5, 0xc4, 0xfe, 0xc0, 0xb3, 0x5c, 0xe9, 0xae, 0x86, 0x0c, - 0x42, 0x57, 0xa1, 0xcc, 0xbc, 0x58, 0xc3, 0x17, 0x67, 0x1e, 0xf4, 0xbb, 0x45, 0x1d, 0xbb, 0xd0, - 0xc7, 0x16, 0x67, 0x32, 0x45, 0xca, 0xa1, 0x21, 0xe0, 0x2d, 0x7e, 0x8c, 0xb5, 0x06, 0x0b, 0x54, - 0x07, 0x0c, 0x9f, 0x1f, 0x6d, 0x94, 0xc8, 0x67, 0xcb, 0x4f, 0x28, 0x47, 0x29, 0xa1, 0x1c, 0x24, - 0x7e, 0xa0, 0x68, 0x6a, 0xc5, 0xd9, 0x31, 0x6e, 0x99, 0x00, 0xe8, 0x8d, 0x8b, 0x03, 0x58, 0xf2, - 0xf0, 0xc4, 0x39, 0xc1, 0xba, 0xeb, 0x59, 0x27, 0x46, 0x40, 0x62, 0x10, 0x3a, 0x3f, 0x17, 0x1f, - 0xa8, 0x69, 0xe3, 0xb8, 0xa9, 0x51, 0xda, 0x1e, 0x23, 0x6d, 0xf9, 0x5a, 0xc3, 0x8b, 0x03, 0x88, - 0xfb, 0xcf, 0x26, 0xed, 0x70, 0x6c, 0xb8, 0xba, 0x69, 0x4c, 0x5c, 0xcb, 0x1e, 0xd1, 0xa9, 0x5b, - 0xd6, 0x14, 0x8a, 0x79, 0x3c, 0x36, 0xdc, 0x1d, 0x06, 0x47, 0xb7, 0x61, 0xd1, 0xc7, 0xb6, 0xa9, - 0xf3, 0x8b, 0x2d, 0xc1, 0x19, 0x8f, 0x7e, 0xea, 0x04, 0xba, 0x2d, 0x80, 0xc4, 0x53, 0xe7, 0x07, - 0xec, 0x03, 0xc3, 0xe5, 0x53, 0x71, 0x86, 0xa7, 0xce, 0xe8, 0xb6, 0x0d, 0x97, 0xac, 0x38, 0xac, - 0xd3, 0x49, 0x99, 0xda, 0x39, 0x65, 0xd8, 0xd8, 0x90, 0x22, 0x8b, 0x90, 0xb7, 0x4c, 0x1a, 0x2d, - 0x55, 0xb4, 0xbc, 0x65, 0xa2, 0x2f, 0xa0, 0xce, 0x8f, 0xc0, 0xc7, 0x44, 0x19, 0xfd, 0xe6, 0x62, - 0xd2, 0xdb, 0x95, 0x54, 0x55, 0xab, 0xb9, 0xd1, 0x87, 0x4f, 0x54, 0x87, 0x8f, 0x39, 0x1f, 0x55, - 0x16, 0x3e, 0xd5, 0xd8, 0xc0, 0xf3, 0x21, 0xfd, 0x00, 0x50, 0x14, 0x61, 0xd9, 0x01, 0xf6, 0x86, - 0xc6, 0x00, 0xd3, 0x70, 0xaa, 0xa2, 0x2d, 0x85, 0x81, 0x96, 0x40, 0x90, 0x00, 0xf9, 0xc4, 0x1b, - 0xd2, 0x60, 0xaa, 0x42, 0x8f, 0x7c, 0xd0, 0x4d, 0xa8, 0x19, 0xe3, 0xb1, 0xf3, 0x9d, 0x4e, 0x94, - 0xdc, 0xf0, 0x45, 0x04, 0x45, 0x61, 0xdd, 0xef, 0xec, 0x96, 0x8f, 0xde, 0x81, 0x86, 0xc7, 0xf6, - 0x89, 0x74, 0xa1, 0x3d, 0xcb, 0xec, 0x06, 0x1e, 0x07, 0xf7, 0xa8, 0x12, 0xa9, 0xf7, 0xa1, 0x91, - 0x18, 0x5c, 0x54, 0x86, 0x22, 0x0f, 0xf8, 0xf9, 0x7d, 0x8e, 0x1c, 0xaa, 0xc2, 0x82, 0xd6, 0xee, - 0xed, 0xb5, 0xb6, 0xdb, 0x4a, 0x5e, 0xfd, 0x17, 0x05, 0xa8, 0xc7, 0x6c, 0xd8, 0x5f, 0xc2, 0x7c, - 0x99, 0x39, 0x09, 0xde, 0x81, 0x46, 0x34, 0x09, 0x74, 0xea, 0x2c, 0xb3, 0x99, 0x50, 0x0f, 0x67, - 0xc2, 0x01, 0xf1, 0x9a, 0xcf, 0x9d, 0x0d, 0x87, 0xb3, 0x67, 0xc3, 0x9d, 0x19, 0x76, 0xfb, 0x87, - 0x99, 0x12, 0xaf, 0x33, 0x5c, 0xff, 0xbb, 0x00, 0x8b, 0x71, 0x2b, 0xfe, 0x57, 0x7e, 0xbc, 0xfa, - 0xb3, 0xc7, 0xeb, 0xee, 0x2c, 0xd7, 0xe5, 0x07, 0x5a, 0xc3, 0x6e, 0x40, 0x35, 0x70, 0x02, 0x63, - 0xcc, 0xfd, 0x83, 0x2a, 0x9b, 0xa8, 0x14, 0x44, 0xbd, 0x01, 0xc2, 0x87, 0x13, 0x08, 0x9b, 0x56, - 0x63, 0x7c, 0x18, 0x8d, 0x08, 0xd2, 0x5e, 0x63, 0xe0, 0xbf, 0x82, 0x9a, 0xec, 0x34, 0xa2, 0x26, - 0x2c, 0xb0, 0x73, 0x75, 0xf1, 0xd6, 0x40, 0x7c, 0x52, 0xab, 0xca, 0xa9, 0xf4, 0x20, 0x18, 0x87, - 0x56, 0x95, 0xc3, 0xfa, 0xc1, 0x58, 0xfd, 0x83, 0x1c, 0x2c, 0xc6, 0x7d, 0x48, 0x62, 0x68, 0x13, - 0x6e, 0xa7, 0x3e, 0x18, 0x5b, 0x62, 0x4b, 0xbb, 0xac, 0xad, 0xc4, 0x7d, 0xcc, 0x6d, 0x8a, 0x43, - 0x5f, 0xc2, 0x7a, 0xba, 0xd4, 0xd4, 0x0f, 0xb0, 0x17, 0xdd, 0xa1, 0x5b, 0x4b, 0x96, 0xa4, 0xf8, - 0x8e, 0xa9, 0xfe, 0xab, 0x12, 0xf3, 0xdb, 0xff, 0xb2, 0xd4, 0x78, 0x13, 0xca, 0x13, 0xec, 0xfb, - 0xc6, 0x88, 0xef, 0xbb, 0xc4, 0x5c, 0xbb, 0x7d, 0x8e, 0xd1, 0x42, 0x9a, 0x4c, 0xb3, 0x3e, 0x7f, - 0xa1, 0x59, 0x2f, 0x9d, 0x63, 0xd6, 0x17, 0xce, 0x35, 0xeb, 0xe5, 0xc4, 0xc4, 0xb8, 0x0b, 0xa5, - 0x5f, 0x4e, 0xf1, 0x14, 0xfb, 0xdc, 0x6b, 0x96, 0x1c, 0xf3, 0xaf, 0x29, 0x5c, 0xe3, 0x78, 0x74, - 0x2f, 0x6b, 0x0a, 0x31, 0x0d, 0xbe, 0xe4, 0xc4, 0xa8, 0x5e, 0x7a, 0x62, 0xd4, 0xb2, 0x26, 0x06, - 0xbd, 0xe4, 0xe5, 0xfb, 0x96, 0x63, 0xb3, 0xe3, 0x32, 0x6a, 0x7f, 0xeb, 0x5a, 0x8d, 0x03, 0xd9, - 0x08, 0x7f, 0x0a, 0x57, 0xfc, 0xa9, 0x4b, 0xdc, 0x44, 0x6c, 0x12, 0x83, 0x6e, 0x1c, 0x59, 0x63, - 0x2b, 0x20, 0x71, 0xda, 0x22, 0xbd, 0x60, 0xb2, 0x1a, 0x62, 0xb7, 0x25, 0x24, 0xe9, 0x23, 0x12, - 0x4c, 0x31, 0xbe, 0xcc, 0x00, 0x97, 0x8f, 0x46, 0x7c, 0xf1, 0xfb, 0x5d, 0xa8, 0x1a, 0xe6, 0xc4, - 0x12, 0xd5, 0x2a, 0xc9, 0xc3, 0x83, 0x50, 0xbf, 0x36, 0x5b, 0x84, 0x8c, 0xc5, 0x3d, 0x60, 0x84, - 0xbf, 0x49, 0xb8, 0x28, 0xae, 0xab, 0x51, 0x9b, 0x5c, 0xd7, 0xc2, 0x6f, 0x82, 0x33, 0x06, 0x03, - 0xec, 0x06, 0xd8, 0xe4, 0x46, 0x39, 0xfc, 0x46, 0xd7, 0x01, 0x8c, 0xe8, 0xb9, 0xcf, 0x32, 0x37, - 0xd9, 0xd1, 0x43, 0x9f, 0x65, 0x98, 0x77, 0xa6, 0x81, 0xfe, 0x4b, 0xba, 0x8d, 0x59, 0xd7, 0x8a, - 0xce, 0x34, 0xf8, 0x1a, 0xad, 0xc0, 0xfc, 0x70, 0xec, 0xb8, 0x7e, 0x73, 0x95, 0x02, 0xd9, 0x87, - 0x7a, 0x0f, 0x20, 0x12, 0x0e, 0x95, 0x20, 0xff, 0xb4, 0xc7, 0x6e, 0x67, 0xee, 0x74, 0x7f, 0x76, - 0xa0, 0xe4, 0x10, 0x40, 0xa9, 0xf7, 0xf8, 0xb9, 0xbe, 0xdd, 0x57, 0xf2, 0xea, 0xdf, 0x80, 0xb2, - 0xd0, 0x54, 0xf4, 0x81, 0x24, 0x3a, 0x8b, 0x0f, 0x96, 0x52, 0xfa, 0x2c, 0xb5, 0xe6, 0x36, 0x14, - 0x7d, 0x71, 0x3d, 0x32, 0x93, 0x94, 0xa2, 0xd5, 0x3f, 0xcd, 0xc1, 0x02, 0x87, 0x20, 0x15, 0x6a, - 0x07, 0xdd, 0x7e, 0xe7, 0x71, 0x67, 0xbb, 0xd5, 0xef, 0x74, 0x0f, 0x68, 0x2d, 0x45, 0x2d, 0x06, - 0x23, 0xce, 0xfd, 0xd3, 0xde, 0x4e, 0xab, 0xdf, 0xa6, 0x8c, 0x8b, 0x1a, 0xff, 0x42, 0x08, 0x8a, - 0xdd, 0x5e, 0xfb, 0x80, 0x5f, 0xf3, 0xa5, 0xbf, 0xd1, 0x5b, 0x50, 0xf9, 0xaa, 0xdd, 0xee, 0xb5, - 0xf6, 0x3a, 0xcf, 0xda, 0x74, 0x0a, 0x16, 0xb5, 0x08, 0x40, 0x96, 0x34, 0xad, 0xfd, 0x58, 0x6b, - 0x1f, 0x3e, 0xa1, 0xd3, 0xac, 0xa8, 0x89, 0x4f, 0x52, 0x6e, 0xa7, 0x73, 0xb8, 0xdd, 0xd2, 0x76, - 0xda, 0x3b, 0x74, 0x82, 0x15, 0xb5, 0x08, 0x40, 0x7a, 0xb5, 0xdf, 0xed, 0xb7, 0xf6, 0xe8, 0xf4, - 0x2a, 0x6a, 0xec, 0x43, 0xdd, 0x82, 0x12, 0x9b, 0x25, 0x04, 0x6f, 0xd9, 0xee, 0x34, 0xe0, 0xd1, - 0x07, 0xfb, 0x20, 0x72, 0x3b, 0xd3, 0x80, 0x80, 0xf9, 0x56, 0x17, 0xfb, 0x52, 0x31, 0x94, 0x58, - 0xd8, 0x8b, 0x36, 0xa1, 0x44, 0xc2, 0x79, 0x6b, 0xc4, 0x7b, 0xf7, 0x4a, 0x32, 0x30, 0xde, 0xa6, - 0x58, 0x8d, 0x53, 0xa1, 0xf7, 0xe2, 0x57, 0xfa, 0x56, 0x93, 0xe4, 0xb1, 0x4b, 0x7d, 0x7f, 0x9a, - 0x83, 0x9a, 0xcc, 0x85, 0x4c, 0xa1, 0x81, 0x63, 0xdb, 0x78, 0x10, 0xe8, 0x1e, 0x0e, 0xbc, 0x33, - 0xd1, 0xd9, 0x1c, 0xa8, 0x11, 0x18, 0x99, 0x0b, 0x34, 0x00, 0x0a, 0xef, 0x97, 0x16, 0xb5, 0x32, - 0x01, 0x10, 0x4e, 0xc4, 0x11, 0xfd, 0x16, 0x63, 0xd7, 0x18, 0x5b, 0x27, 0x58, 0x4f, 0x5c, 0xb3, - 0x5e, 0x0a, 0x31, 0x1d, 0x8e, 0x40, 0x3b, 0x70, 0x7d, 0x62, 0xd9, 0xd6, 0x64, 0x3a, 0xd1, 0x43, - 0xbd, 0x25, 0xb1, 0x5c, 0x54, 0x94, 0x8d, 0xd0, 0x5b, 0x9c, 0xaa, 0x25, 0x13, 0x09, 0x2e, 0xea, - 0x1f, 0xe7, 0xa1, 0x2a, 0x35, 0xef, 0xaf, 0x68, 0x33, 0xe8, 0x41, 0x10, 0x1e, 0x39, 0x81, 0x65, - 0x90, 0xc5, 0x29, 0x12, 0x8e, 0x29, 0x22, 0x8a, 0x70, 0x4f, 0x84, 0x98, 0xd1, 0x0d, 0x60, 0xa6, - 0x90, 0x59, 0x37, 0x80, 0x99, 0x42, 0x86, 0xdf, 0xea, 0xff, 0xc9, 0x41, 0x25, 0xdc, 0x26, 0x49, - 0x47, 0x17, 0xb9, 0x8c, 0xe8, 0xe2, 0x1a, 0x00, 0x23, 0x92, 0x6e, 0x3f, 0xb2, 0x98, 0xa8, 0xc7, - 0x79, 0x4c, 0x82, 0xa9, 0x6e, 0x5a, 0xfe, 0xc0, 0x39, 0xc1, 0xde, 0x19, 0x3f, 0x7a, 0xa8, 0x4d, - 0x82, 0xe9, 0x8e, 0x80, 0x11, 0x8f, 0x80, 0x58, 0x55, 0xd2, 0x9f, 0x13, 0xc7, 0x14, 0x37, 0xf1, - 0xaa, 0x1c, 0xb6, 0xef, 0x98, 0x98, 0xac, 0xf3, 0x3c, 0x3a, 0x8b, 0x5b, 0xba, 0x3a, 0x83, 0xb6, - 0xb2, 0x6f, 0x49, 0x97, 0xc4, 0x8d, 0x64, 0x71, 0x4b, 0x9a, 0x18, 0xc2, 0x60, 0xe0, 0xea, 0x13, - 0xdf, 0xe7, 0x7e, 0x5e, 0x29, 0x18, 0xb8, 0xfb, 0xbe, 0xaf, 0x3e, 0x84, 0xaa, 0xb4, 0xd5, 0x83, - 0x36, 0x61, 0x59, 0xde, 0x17, 0x8a, 0xfb, 0x1a, 0x4b, 0xd2, 0x3e, 0x10, 0x73, 0x34, 0xd4, 0x3f, - 0x29, 0x40, 0x23, 0xb1, 0xd9, 0x73, 0xbe, 0x0b, 0xc4, 0xb7, 0x8c, 0x22, 0x15, 0xab, 0x6b, 0x55, - 0x0e, 0xa3, 0xc3, 0x77, 0x03, 0xaa, 0xc7, 0x78, 0xec, 0x62, 0x4f, 0x77, 0xec, 0xb1, 0xe8, 0x36, - 0x60, 0xa0, 0xae, 0x3d, 0xa6, 0x26, 0xcd, 0xc4, 0x43, 0xec, 0x79, 0xc6, 0x98, 0x31, 0x61, 0xf7, - 0xb3, 0x6b, 0x02, 0x48, 0xb9, 0xdc, 0x87, 0x15, 0x7a, 0xab, 0x99, 0x3f, 0xe7, 0xd0, 0x85, 0x3c, - 0xec, 0x5c, 0x64, 0x59, 0xc6, 0xb5, 0xb9, 0x6c, 0xef, 0xc1, 0xd2, 0xd8, 0xb1, 0x47, 0x63, 0x7a, - 0x6b, 0x5a, 0xd0, 0x97, 0x98, 0xf9, 0x0d, 0x11, 0x82, 0xf8, 0x1e, 0x2c, 0xd1, 0x03, 0x3f, 0x9d, - 0xf6, 0x88, 0xaf, 0x87, 0x5a, 0x55, 0xd7, 0x1a, 0x14, 0x41, 0xfb, 0xd4, 0xa7, 0xb2, 0xdc, 0x83, - 0x25, 0xea, 0x4b, 0xc4, 0x5a, 0xce, 0x7c, 0x0a, 0xea, 0xa5, 0x6b, 0x52, 0xeb, 0xef, 0x70, 0xc7, - 0x9d, 0xd3, 0x46, 0xae, 0xf1, 0xa2, 0x44, 0x49, 0xec, 0x7f, 0x78, 0x76, 0x27, 0x51, 0x02, 0x3b, - 0xb3, 0xa2, 0x70, 0x89, 0x14, 0x41, 0x91, 0x6a, 0x17, 0x3b, 0xdd, 0xa4, 0xbf, 0xd5, 0x8f, 0x61, - 0x6d, 0xdf, 0x4d, 0x8c, 0x1b, 0x5f, 0xef, 0x66, 0x8e, 0x9e, 0xfa, 0x9f, 0x72, 0x70, 0x25, 0x55, - 0x8a, 0xad, 0x2e, 0xb3, 0x87, 0x5c, 0xb6, 0xe3, 0xec, 0x86, 0x47, 0x64, 0xf9, 0xe2, 0xb6, 0x9a, - 0x0f, 0xb5, 0x64, 0xab, 0x3f, 0x80, 0x65, 0x7e, 0x6b, 0xdc, 0xb3, 0x8e, 0xf4, 0x90, 0x4d, 0x51, - 0xbc, 0xe1, 0x35, 0xbb, 0x43, 0x7a, 0xba, 0x11, 0x1a, 0xd2, 0x86, 0x44, 0x4e, 0x6d, 0x2a, 0x1b, - 0xef, 0x9a, 0x20, 0x3d, 0x24, 0x2a, 0xfb, 0x9b, 0x1c, 0x2c, 0xa5, 0x9a, 0x81, 0x7e, 0x27, 0x61, - 0x54, 0x6e, 0x49, 0x76, 0x38, 0xbb, 0xa7, 0x42, 0xfb, 0xb2, 0x15, 0xb7, 0x2f, 0x37, 0xcf, 0x29, - 0x19, 0x33, 0x35, 0x2d, 0xa8, 0xf3, 0x8d, 0x4e, 0xde, 0xf5, 0xb3, 0xf6, 0xe3, 0xa4, 0xde, 0xcd, - 0xc7, 0x87, 0xe4, 0xef, 0xe5, 0xa0, 0xc6, 0x79, 0x84, 0xef, 0x1f, 0x5e, 0x8d, 0x45, 0x32, 0x76, - 0x2a, 0x5c, 0x22, 0x76, 0x2a, 0x66, 0xc5, 0x4e, 0xff, 0xb0, 0x00, 0x1b, 0x7c, 0x25, 0x19, 0xb3, - 0xa7, 0x69, 0xec, 0x64, 0x4e, 0xd8, 0xd1, 0xf7, 0x01, 0x19, 0xe3, 0xef, 0x8c, 0x33, 0x9f, 0xf8, - 0xac, 0xae, 0xe1, 0x61, 0x7d, 0x12, 0xbd, 0xc7, 0x66, 0x98, 0x6d, 0x86, 0xd8, 0xc7, 0x26, 0xba, - 0x0f, 0xab, 0xd6, 0xc8, 0x76, 0x3c, 0xe2, 0x31, 0x53, 0xc9, 0xc4, 0x8d, 0x0d, 0x7e, 0x89, 0x8d, - 0x21, 0x5b, 0x3e, 0x11, 0x91, 0xdd, 0xd2, 0x20, 0x31, 0x8f, 0x38, 0x73, 0x0f, 0xab, 0xa0, 0xd3, - 0x93, 0xc6, 0x3c, 0x4c, 0xbb, 0xd6, 0x04, 0x05, 0xaf, 0x8a, 0x0a, 0xec, 0x75, 0x4c, 0xf4, 0x05, - 0x5c, 0x0d, 0x15, 0x4f, 0xb7, 0x6c, 0x63, 0x10, 0x90, 0x55, 0x99, 0xcd, 0x6e, 0xae, 0x70, 0x6b, - 0x21, 0x41, 0x87, 0xe3, 0xd9, 0x24, 0x27, 0x3d, 0xc8, 0x3a, 0x53, 0x37, 0xac, 0x91, 0x2b, 0xce, - 0x5e, 0xf9, 0x13, 0x73, 0x6b, 0xe4, 0xa2, 0x2f, 0x60, 0x9d, 0x37, 0xc6, 0xc6, 0xa7, 0x81, 0x4e, - 0xcf, 0xee, 0x47, 0xae, 0x3e, 0xc1, 0x81, 0x67, 0x0d, 0xf8, 0x1a, 0x73, 0x85, 0x51, 0x1c, 0xe0, - 0xd3, 0xe0, 0x89, 0xe3, 0x76, 0x46, 0xee, 0x3e, 0xc5, 0xa2, 0x87, 0xb0, 0x61, 0xb2, 0x0b, 0xec, - 0xfa, 0x11, 0xf6, 0x03, 0xd6, 0x17, 0xbe, 0xe8, 0x62, 0xba, 0xe6, 0x94, 0xb5, 0x26, 0x27, 0x79, - 0x84, 0x7d, 0x7a, 0x02, 0x1a, 0x0e, 0x81, 0xfa, 0x0f, 0x0a, 0xb0, 0x9e, 0x39, 0x2a, 0x4c, 0x5d, - 0x7e, 0x3b, 0x28, 0x3f, 0xc8, 0xa0, 0xe4, 0x60, 0x35, 0x73, 0x50, 0xd0, 0xc3, 0xc4, 0x2a, 0x74, - 0x3b, 0x75, 0x20, 0x93, 0x35, 0xb7, 0xc2, 0x95, 0xe8, 0x8b, 0xf8, 0x4a, 0xf4, 0xf6, 0x05, 0xa5, - 0x63, 0xab, 0xd1, 0x03, 0xb8, 0xf2, 0xd4, 0xc7, 0x74, 0x1f, 0xc3, 0x1d, 0xd3, 0xa7, 0xed, 0xfe, - 0x85, 0x16, 0xe1, 0x3e, 0xac, 0x26, 0xcb, 0x5c, 0x60, 0x0f, 0xd4, 0x5f, 0x00, 0xb4, 0x8f, 0x46, - 0x2e, 0x67, 0x7d, 0x0f, 0x96, 0xd8, 0x16, 0xeb, 0x84, 0xf3, 0x20, 0x01, 0x32, 0x2b, 0xd1, 0xa0, - 0x08, 0xc1, 0xbb, 0x45, 0x37, 0x7d, 0x27, 0xc6, 0x29, 0x75, 0x28, 0xc5, 0xed, 0x0f, 0x6a, 0xf8, - 0x39, 0x90, 0x1d, 0xfb, 0xfc, 0x3e, 0x54, 0xda, 0x61, 0x10, 0xfa, 0xc6, 0xb9, 0xeb, 0x50, 0x24, - 0xdc, 0xd1, 0xfb, 0x89, 0x61, 0x5a, 0x89, 0x9f, 0x20, 0x26, 0x46, 0x65, 0xf6, 0x93, 0xa2, 0x50, - 0x54, 0x31, 0x08, 0xf7, 0x01, 0x3a, 0x51, 0xef, 0xa4, 0x64, 0xca, 0x65, 0xc8, 0xf4, 0x11, 0x54, - 0x3a, 0x61, 0x8b, 0x2f, 0x55, 0x42, 0x87, 0x62, 0xe7, 0x82, 0x56, 0x74, 0x5e, 0xa5, 0x15, 0x9d, - 0x64, 0x2b, 0xfe, 0x3c, 0x07, 0x4a, 0x52, 0x2f, 0xd0, 0xe7, 0x89, 0xda, 0x24, 0x33, 0x99, 0xad, - 0x77, 0x61, 0xcd, 0x9f, 0xc6, 0x6b, 0xbe, 0x31, 0xbb, 0x60, 0xec, 0x0e, 0xa2, 0x0a, 0x45, 0x7c, - 0x34, 0x72, 0xd3, 0xe9, 0x29, 0x48, 0xaf, 0x6b, 0x14, 0x47, 0x68, 0x2c, 0x42, 0x93, 0x4a, 0x01, - 0xd1, 0xa1, 0x34, 0x04, 0xa7, 0x3e, 0xe2, 0x76, 0xad, 0x6f, 0x78, 0x23, 0x1c, 0xec, 0xe3, 0xc9, - 0x11, 0xf6, 0xfc, 0x63, 0x4b, 0x1a, 0xa4, 0xb8, 0x3f, 0x9a, 0x4b, 0xfb, 0xa3, 0x6a, 0x8b, 0xaf, - 0xc2, 0x49, 0x1e, 0xe1, 0xa8, 0x5d, 0xcc, 0x22, 0x5c, 0x34, 0x92, 0x3c, 0x2e, 0x5c, 0x34, 0xb2, - 0x05, 0xbf, 0xec, 0xa2, 0x91, 0x29, 0xb2, 0x18, 0xe9, 0x5f, 0xc0, 0xf5, 0x3d, 0xc7, 0x1e, 0xed, - 0x11, 0xff, 0xeb, 0x15, 0xdd, 0xc9, 0x4b, 0x04, 0x03, 0xea, 0x7f, 0xcf, 0xc1, 0xb5, 0x59, 0xfc, - 0xbf, 0x4f, 0xc7, 0x33, 0xd3, 0x65, 0x2f, 0x66, 0xbb, 0xec, 0x5f, 0xc2, 0x7a, 0x8a, 0xd6, 0xd3, - 0xf1, 0xa9, 0x6b, 0x79, 0x61, 0xc0, 0xb1, 0x96, 0x28, 0xe4, 0xb5, 0x19, 0x5a, 0xfd, 0x47, 0x39, - 0x68, 0xce, 0x6a, 0x20, 0xfa, 0x69, 0x62, 0x5c, 0xa5, 0x5d, 0xf7, 0xf3, 0x3b, 0x3d, 0x1c, 0xda, - 0x87, 0xf1, 0xa1, 0xbd, 0x73, 0x31, 0x83, 0xd8, 0xe8, 0xfe, 0xd1, 0x3c, 0x2c, 0x70, 0xef, 0x12, - 0x7d, 0x05, 0xcb, 0x13, 0x57, 0x4f, 0x9d, 0xfc, 0x33, 0xc9, 0x36, 0xce, 0x71, 0x79, 0xb5, 0xa5, - 0x49, 0xca, 0xd9, 0xfe, 0x30, 0x6c, 0x59, 0x3e, 0x79, 0x6f, 0x23, 0xe6, 0x11, 0x87, 0x0d, 0x49, - 0x5e, 0x10, 0x29, 0x5c, 0xfa, 0x82, 0xc8, 0xcf, 0x60, 0x4d, 0x04, 0xb4, 0xdc, 0xf8, 0xf1, 0x2b, - 0x66, 0x62, 0xaf, 0xf9, 0xc6, 0x05, 0x46, 0x52, 0x5b, 0xf5, 0x32, 0x4d, 0xf5, 0x13, 0x40, 0x53, - 0x1f, 0x47, 0xa6, 0x85, 0xad, 0xb7, 0xf3, 0xc9, 0x13, 0xf9, 0xe4, 0x12, 0xa5, 0x29, 0xd3, 0xe4, - 0xca, 0x98, 0x3a, 0x09, 0x2d, 0x25, 0x5b, 0x37, 0xfb, 0x24, 0x34, 0x6c, 0x5e, 0x40, 0xa7, 0xa9, - 0x3e, 0x09, 0xe7, 0x29, 0xbf, 0x35, 0x72, 0xe3, 0x82, 0xe9, 0xcc, 0x9b, 0x97, 0x5a, 0x54, 0x0c, - 0xd8, 0x20, 0x51, 0xaf, 0xce, 0xe2, 0xe1, 0xd4, 0xb8, 0xb3, 0x5b, 0x26, 0xea, 0xc5, 0x0a, 0xa5, - 0x35, 0xc7, 0xb3, 0xf4, 0x3b, 0x76, 0xa7, 0xa3, 0x72, 0x89, 0x3b, 0x1d, 0xed, 0x30, 0x93, 0x91, - 0xe4, 0x9a, 0xf0, 0x49, 0x2d, 0xa6, 0x3f, 0xff, 0x44, 0x57, 0xa1, 0x4c, 0x37, 0xc8, 0x27, 0xc6, - 0x29, 0x5f, 0x59, 0x16, 0xc8, 0xf7, 0xbe, 0x71, 0xaa, 0xee, 0xd0, 0x37, 0x84, 0x71, 0x6f, 0xe5, - 0xd5, 0xb9, 0x7c, 0x0b, 0x65, 0xc1, 0x05, 0x7d, 0x94, 0x98, 0xa9, 0xcd, 0x74, 0x33, 0x12, 0x0a, - 0xfd, 0x41, 0x7c, 0x66, 0xae, 0xa5, 0x0b, 0xc4, 0x66, 0xe2, 0x14, 0x4a, 0xfc, 0x06, 0xe5, 0x06, - 0x54, 0x2c, 0x57, 0x8f, 0xdd, 0x63, 0x29, 0x5b, 0xe2, 0x7a, 0xe5, 0x3b, 0xd0, 0x98, 0x18, 0xfe, - 0xb7, 0xdc, 0x2d, 0xd7, 0x27, 0x3c, 0x23, 0x4c, 0x5d, 0xab, 0x13, 0x30, 0x73, 0xc9, 0xf7, 0x2d, - 0x3b, 0x45, 0x67, 0x9c, 0xf2, 0xb8, 0x4f, 0xa6, 0x33, 0x4e, 0xd5, 0x3f, 0xca, 0x01, 0x44, 0x2f, - 0xe6, 0xfe, 0x82, 0xcf, 0x1a, 0x09, 0x6c, 0x6c, 0xf9, 0x01, 0xbd, 0xd8, 0x5f, 0xd1, 0xe8, 0x6f, - 0xfa, 0x52, 0x2b, 0x7e, 0x9f, 0x52, 0x49, 0xaa, 0xbd, 0x74, 0x89, 0x72, 0x17, 0xca, 0xfb, 0x46, - 0x30, 0x38, 0x26, 0xc2, 0xdc, 0x89, 0x09, 0x23, 0xb9, 0x23, 0x94, 0xe2, 0x82, 0x17, 0x96, 0xcf, - 0xa0, 0x16, 0x0b, 0x53, 0x36, 0x63, 0xcc, 0xa4, 0xe9, 0x2b, 0x53, 0x49, 0x3c, 0xaf, 0x40, 0x49, - 0x0a, 0x7d, 0xea, 0x1a, 0xff, 0x52, 0xff, 0xcb, 0x3c, 0xc0, 0xb6, 0x63, 0x9b, 0x16, 0x5b, 0x23, - 0xee, 0x03, 0x7f, 0xd3, 0xaf, 0x47, 0xcf, 0x14, 0x51, 0x42, 0xd2, 0x43, 0x1c, 0x68, 0x15, 0x46, - 0x45, 0x9a, 0xf5, 0x29, 0xd4, 0xc2, 0xc3, 0x2d, 0x52, 0x28, 0x3f, 0xb3, 0x50, 0x78, 0x7f, 0x9c, - 0x14, 0xfb, 0x31, 0x2c, 0x26, 0x62, 0xb2, 0x42, 0x72, 0x6f, 0x5c, 0x6e, 0x8a, 0x56, 0x33, 0xe4, - 0xe6, 0x3f, 0x80, 0xaa, 0x28, 0x4d, 0xea, 0x2c, 0xce, 0x16, 0x94, 0x15, 0x23, 0x35, 0x7e, 0x16, - 0xe6, 0x51, 0x09, 0xce, 0x68, 0xa9, 0xf9, 0x99, 0xa5, 0x6a, 0x21, 0x21, 0x29, 0xf8, 0x13, 0x58, - 0x22, 0x01, 0x57, 0xbc, 0x70, 0x69, 0x66, 0xe1, 0x06, 0x3e, 0x0d, 0xb6, 0xe5, 0xf2, 0x37, 0xa0, - 0xea, 0xb9, 0xdf, 0x5a, 0x64, 0x29, 0x9a, 0x8e, 0x03, 0xba, 0xcc, 0xcd, 0x6b, 0xe0, 0xb1, 0x07, - 0xd5, 0xd3, 0x71, 0x80, 0x1e, 0x02, 0x44, 0xaf, 0xa4, 0xf9, 0x89, 0xb5, 0x74, 0xf4, 0x14, 0x8d, - 0x0f, 0x5f, 0x11, 0xc9, 0xb0, 0x56, 0xc2, 0x47, 0xd4, 0xe8, 0x11, 0x2c, 0x8f, 0xc9, 0x6a, 0x98, - 0x90, 0xb0, 0x32, 0x53, 0xc2, 0x25, 0x4a, 0x1e, 0x93, 0xf1, 0x0e, 0x28, 0x51, 0x54, 0x69, 0xeb, - 0x54, 0xed, 0x81, 0xaa, 0x7d, 0xdd, 0xe6, 0xc1, 0xa4, 0xbd, 0x47, 0xf4, 0xff, 0x23, 0xa8, 0x8a, - 0x7b, 0x70, 0xba, 0x65, 0xd3, 0xeb, 0x37, 0x8b, 0xf2, 0x14, 0x78, 0x4c, 0xb7, 0x6f, 0xb4, 0x0a, - 0xbf, 0x08, 0xd7, 0xb1, 0xd5, 0x63, 0xa8, 0x84, 0x62, 0xa3, 0x65, 0x68, 0x68, 0xdd, 0xa7, 0xfd, - 0xb6, 0xde, 0xff, 0xa6, 0x17, 0xbe, 0x4a, 0x59, 0x83, 0x65, 0x09, 0xd8, 0x39, 0xe8, 0xb7, 0xb5, - 0x83, 0xd6, 0x9e, 0x92, 0x4b, 0x20, 0xda, 0xcf, 0x39, 0x22, 0x8f, 0x56, 0x40, 0x91, 0x10, 0x3c, - 0xd1, 0x88, 0x3a, 0x84, 0x46, 0xd8, 0xa8, 0x16, 0x4b, 0x36, 0x74, 0x3f, 0x36, 0x4f, 0xae, 0xc9, - 0x9d, 0x1a, 0x23, 0x94, 0xa6, 0xca, 0x4d, 0xa8, 0x8a, 0x8e, 0xb4, 0xc2, 0x37, 0xeb, 0x32, 0x48, - 0x3d, 0x80, 0xca, 0x3e, 0x36, 0x79, 0x0d, 0xef, 0xc5, 0x6a, 0x58, 0x93, 0x4f, 0xc3, 0xcc, 0x14, - 0xef, 0x15, 0x98, 0x3f, 0x31, 0xc6, 0x53, 0x91, 0xd2, 0x83, 0x7d, 0xa8, 0x3a, 0x34, 0x5a, 0x7e, - 0xcf, 0xc3, 0x2e, 0xb6, 0x05, 0x57, 0x05, 0x0a, 0x86, 0x6f, 0x73, 0xbf, 0x9a, 0xfc, 0x24, 0x33, - 0x98, 0x50, 0x18, 0xe1, 0x31, 0x13, 0xfb, 0x42, 0x2a, 0xd4, 0x89, 0x59, 0x1f, 0xe3, 0x61, 0xa0, - 0x4f, 0x1c, 0x3f, 0xe0, 0xde, 0x61, 0x75, 0xea, 0xe3, 0x3d, 0x3c, 0x0c, 0xf6, 0x1d, 0xfa, 0xce, - 0xab, 0xce, 0x9f, 0x5a, 0x70, 0xf6, 0xe7, 0xa6, 0x47, 0xf0, 0xf1, 0x78, 0xc8, 0x3d, 0x50, 0xfa, - 0x5b, 0xbd, 0x03, 0x8d, 0x3d, 0x7a, 0x50, 0xe0, 0xe1, 0x21, 0x67, 0x10, 0x36, 0x84, 0x1f, 0x85, - 0xb1, 0x86, 0xfc, 0xd7, 0x02, 0x2c, 0x30, 0x02, 0x3f, 0xba, 0xb0, 0x69, 0xb0, 0x3d, 0x86, 0xd4, - 0x1a, 0x4c, 0x95, 0x82, 0x51, 0xf3, 0x0b, 0x9b, 0x9c, 0xf7, 0x67, 0x50, 0x89, 0x4e, 0x89, 0xf3, - 0xc9, 0x9b, 0x9a, 0x89, 0x81, 0xd3, 0x22, 0x5a, 0x74, 0x1b, 0x0a, 0x13, 0xee, 0x1e, 0xc7, 0xe2, - 0xbd, 0x70, 0x24, 0x34, 0x82, 0x47, 0x9f, 0x03, 0x90, 0xc5, 0x83, 0xf5, 0x37, 0x5f, 0x3b, 0xae, - 0xc6, 0x96, 0x1d, 0x79, 0x28, 0xe8, 0x12, 0xc2, 0x00, 0xe8, 0x27, 0x50, 0x8f, 0xad, 0x04, 0x7c, - 0x09, 0x39, 0x47, 0xba, 0x9a, 0xbc, 0x18, 0xa0, 0xfb, 0xb0, 0xc0, 0xdf, 0xc2, 0xf0, 0xf5, 0x43, - 0x52, 0x97, 0xd8, 0x00, 0x69, 0x82, 0x8e, 0x08, 0xcb, 0x8f, 0x6d, 0x3c, 0x3c, 0xe4, 0x2e, 0xd2, - 0x55, 0xd9, 0x8b, 0x89, 0x8d, 0x8b, 0x38, 0xd1, 0xf1, 0xf0, 0x10, 0x3d, 0x82, 0x46, 0x62, 0x59, - 0xe0, 0x4e, 0xd0, 0x39, 0xe2, 0x2e, 0xc6, 0x57, 0x06, 0xf5, 0x57, 0x39, 0xa8, 0x84, 0x8f, 0x53, - 0x43, 0xc3, 0x94, 0x93, 0x6c, 0xe4, 0x27, 0x00, 0x83, 0x70, 0x7d, 0xe2, 0xa3, 0xb5, 0x92, 0xb5, - 0x76, 0x69, 0x12, 0x1d, 0x7a, 0x0f, 0x16, 0x98, 0x5a, 0xf8, 0x7c, 0xb4, 0xe4, 0xbb, 0xb4, 0x0c, - 0xa1, 0x09, 0x0a, 0xf5, 0x6b, 0x28, 0x71, 0xdf, 0x38, 0x4b, 0x80, 0xf8, 0xf3, 0xf6, 0xfc, 0xe5, - 0x9e, 0xb7, 0xff, 0x8f, 0x1c, 0x28, 0xc9, 0xab, 0xa7, 0xe8, 0x6e, 0x6c, 0x26, 0xaf, 0x24, 0x2f, - 0xa9, 0x4a, 0xd3, 0x58, 0xce, 0x06, 0x95, 0xbf, 0x44, 0x36, 0xa8, 0xac, 0xfc, 0x97, 0xf2, 0x93, - 0xef, 0xe2, 0x45, 0x4f, 0xbe, 0xd1, 0x87, 0xb0, 0x60, 0xe2, 0xa1, 0x41, 0xec, 0xc7, 0xfc, 0x79, - 0x13, 0x49, 0x50, 0xa9, 0xbf, 0xce, 0x41, 0x9d, 0x20, 0xa2, 0x74, 0x4d, 0x9f, 0x42, 0xd5, 0x64, - 0x6e, 0x0f, 0x37, 0xee, 0xb3, 0x53, 0x32, 0x80, 0x19, 0xf9, 0x50, 0x0f, 0x61, 0x89, 0xc5, 0x30, - 0x3a, 0x05, 0x5a, 0xfc, 0xbe, 0x4c, 0xb6, 0xc0, 0x0a, 0x23, 0xdd, 0x09, 0x29, 0xd5, 0xbf, 0x9f, - 0x83, 0x82, 0xe6, 0x18, 0x68, 0x11, 0xf2, 0x86, 0xd8, 0xdd, 0xc9, 0x1b, 0x3e, 0x7a, 0x0b, 0xb8, - 0x0f, 0x31, 0xc6, 0xc2, 0xe7, 0x8b, 0x00, 0x64, 0xb1, 0x9b, 0x18, 0x14, 0xc5, 0x5f, 0xb3, 0xb0, - 0x2f, 0xe9, 0x46, 0x74, 0x31, 0x76, 0x23, 0x5a, 0x3c, 0xe4, 0x98, 0x3f, 0x3f, 0x59, 0x8e, 0x7a, - 0x87, 0x3d, 0x2a, 0x72, 0x8c, 0x8b, 0x12, 0xe0, 0xb0, 0x5c, 0x1f, 0x94, 0x30, 0xca, 0xf5, 0xe1, - 0x39, 0x46, 0x46, 0xae, 0x0f, 0x42, 0x44, 0x51, 0xea, 0xbf, 0xce, 0x41, 0xe1, 0x99, 0x37, 0xcc, - 0x54, 0xd3, 0xb7, 0x21, 0xef, 0x99, 0xd2, 0xfc, 0x48, 0xdf, 0x3c, 0xcd, 0x7b, 0x26, 0xba, 0x0f, - 0x15, 0x7e, 0x61, 0xda, 0x0b, 0xf8, 0x7b, 0xd2, 0x19, 0xd7, 0x54, 0x19, 0x99, 0x46, 0x53, 0x16, - 0xf0, 0x4b, 0xda, 0x5e, 0xc0, 0x15, 0x69, 0x46, 0x11, 0x46, 0xa6, 0x05, 0xfc, 0x66, 0x2b, 0xbb, - 0x81, 0x97, 0xb7, 0x4c, 0xf5, 0x37, 0x39, 0x58, 0xd9, 0x61, 0x7a, 0x43, 0x75, 0x69, 0xc7, 0xf2, - 0x03, 0xc3, 0x1e, 0x60, 0xb4, 0x05, 0xe1, 0x56, 0x37, 0xdb, 0xc5, 0xd6, 0x4d, 0x8e, 0xe2, 0xdd, - 0xb5, 0x2a, 0xd0, 0xa9, 0x72, 0xf4, 0xd0, 0x3c, 0xa3, 0x1c, 0x1b, 0xea, 0x55, 0x81, 0x8e, 0x95, - 0x53, 0xff, 0x5d, 0x11, 0x4a, 0xec, 0x8d, 0x70, 0x4a, 0x5f, 0x36, 0xa0, 0x12, 0x6d, 0xc3, 0xf3, - 0x6c, 0x70, 0x9e, 0xd8, 0x77, 0xbf, 0x01, 0x55, 0xe2, 0xb1, 0x60, 0x9b, 0x9d, 0x26, 0x17, 0x98, - 0x87, 0xc5, 0x40, 0xf4, 0x34, 0xf9, 0x5d, 0x50, 0x38, 0x01, 0xb7, 0x73, 0x7c, 0xd2, 0x55, 0xb4, - 0x06, 0x83, 0xb7, 0x04, 0x38, 0xf6, 0xec, 0x63, 0x3e, 0xf1, 0xec, 0xe3, 0xfd, 0xcc, 0x10, 0x9a, - 0x9f, 0xb9, 0xa6, 0xc2, 0xe4, 0x5f, 0xcc, 0x8e, 0xe4, 0x17, 0x5e, 0x65, 0xb3, 0x7c, 0x46, 0x3c, - 0xdf, 0x87, 0x2b, 0x7c, 0xb2, 0x27, 0xfb, 0x98, 0x2d, 0xf3, 0xd7, 0x63, 0x53, 0x3b, 0x35, 0xb8, - 0xda, 0x8a, 0x99, 0x35, 0xe4, 0x0f, 0xe9, 0xb5, 0x8b, 0x21, 0x36, 0xb1, 0xc7, 0x9e, 0xcc, 0x56, - 0x92, 0x86, 0x6a, 0x5b, 0x46, 0x6b, 0x71, 0xea, 0x37, 0xf4, 0xd8, 0x22, 0xb9, 0x7b, 0x52, 0xbd, - 0xec, 0xee, 0x89, 0xea, 0x40, 0x3d, 0x26, 0xdf, 0x39, 0xfb, 0x6d, 0xf1, 0xd7, 0xa6, 0xf9, 0xd4, - 0x6b, 0xd3, 0xb7, 0x61, 0x91, 0x6d, 0x4e, 0xe8, 0x86, 0xaf, 0x87, 0x71, 0x60, 0x5d, 0xab, 0x31, - 0x68, 0xcb, 0x27, 0xfe, 0xb0, 0xfa, 0x67, 0x39, 0xa8, 0xd0, 0x67, 0x74, 0x1d, 0x7b, 0xe8, 0x7c, - 0x2f, 0x2f, 0xf8, 0xee, 0x40, 0xc3, 0x9e, 0x4e, 0x74, 0xe9, 0xf5, 0x24, 0xbf, 0x88, 0xb2, 0x68, - 0x4f, 0x27, 0xf2, 0xeb, 0xd3, 0xab, 0x50, 0xb6, 0xf9, 0x3e, 0xba, 0xb8, 0xf7, 0x64, 0xb3, 0x2d, - 0x74, 0x74, 0x0b, 0x6a, 0x04, 0x15, 0x5e, 0x42, 0x63, 0x37, 0x4d, 0xaa, 0xf6, 0x74, 0xd2, 0xe2, - 0x20, 0xf5, 0xc7, 0x34, 0x17, 0x80, 0x66, 0x1d, 0x91, 0x86, 0x88, 0xe5, 0x51, 0x3c, 0x3c, 0x4b, - 0xa5, 0x42, 0x09, 0x9b, 0xcc, 0xde, 0xfe, 0xa8, 0x0f, 0x69, 0x42, 0xeb, 0xb0, 0x34, 0x5f, 0x33, - 0x2f, 0x5d, 0xdc, 0xa5, 0xe9, 0x66, 0xb6, 0x9d, 0x31, 0x7f, 0x88, 0x34, 0x33, 0xa1, 0xd4, 0x1a, - 0x2c, 0x98, 0x47, 0xba, 0xd4, 0x77, 0x25, 0xf3, 0x88, 0xde, 0x0c, 0xde, 0x84, 0x65, 0xfa, 0x8c, - 0x53, 0xa7, 0xf9, 0x24, 0x93, 0xb7, 0x7d, 0x28, 0x6a, 0x67, 0x3a, 0x71, 0xc3, 0xeb, 0x46, 0x2c, - 0x2d, 0x8d, 0x54, 0x23, 0x7f, 0x71, 0xb8, 0x04, 0x0d, 0x91, 0x0a, 0x54, 0xa4, 0x1e, 0x40, 0xa0, - 0x44, 0x20, 0x46, 0x76, 0xef, 0x0f, 0x0a, 0x50, 0x62, 0xa1, 0x0e, 0xaa, 0x41, 0x59, 0x6b, 0x1f, - 0xb6, 0xb5, 0x67, 0xed, 0x1d, 0x65, 0x0e, 0x01, 0x14, 0x3b, 0xbd, 0x93, 0x4f, 0x94, 0x97, 0x2f, - 0x8a, 0xfc, 0xf7, 0x96, 0xf2, 0xf2, 0x45, 0x19, 0xd5, 0x61, 0x81, 0xc0, 0xf5, 0xfd, 0x6d, 0xe5, - 0x57, 0x2f, 0x8a, 0xfc, 0x73, 0x8b, 0x7d, 0x96, 0x51, 0x03, 0x2a, 0x0c, 0xdb, 0xdb, 0x3b, 0x54, - 0xfe, 0xf0, 0x45, 0x91, 0x03, 0xb6, 0x04, 0xa0, 0x8c, 0x16, 0xa1, 0x4c, 0x29, 0x9e, 0xf5, 0x0e, - 0x94, 0x17, 0x2f, 0x8b, 0xfc, 0x7b, 0x8b, 0x7f, 0x97, 0xd1, 0x12, 0x54, 0x05, 0x9e, 0x30, 0x7d, - 0xf9, 0xb2, 0xc8, 0x41, 0x5b, 0x11, 0xa8, 0x4c, 0x24, 0x7a, 0x46, 0x38, 0xfe, 0x87, 0x17, 0x26, - 0xf9, 0xdd, 0x26, 0xa5, 0xff, 0xec, 0x85, 0x89, 0x2a, 0x50, 0xd0, 0xfa, 0xdb, 0xca, 0x1f, 0xbe, - 0x2c, 0x22, 0x05, 0x80, 0x32, 0x6a, 0x1f, 0x6c, 0xb7, 0x7a, 0xca, 0xdf, 0x7d, 0x21, 0x20, 0x5b, - 0x21, 0xa4, 0x8c, 0x56, 0x60, 0xf1, 0xf1, 0x5e, 0xf7, 0x67, 0xfa, 0x61, 0xaf, 0xbd, 0xad, 0xd3, - 0xe6, 0xfe, 0xfa, 0x65, 0x31, 0x05, 0xdd, 0x52, 0x7e, 0xfd, 0xb2, 0x8c, 0x9a, 0x80, 0xe2, 0xb4, - 0x54, 0xe4, 0xdf, 0xbc, 0x2c, 0xa6, 0x30, 0x5b, 0x1c, 0x53, 0x46, 0x57, 0x40, 0x89, 0x30, 0x7b, - 0x0f, 0x38, 0xdc, 0x44, 0x8b, 0x50, 0xea, 0xf6, 0x5a, 0x5f, 0x3f, 0x6d, 0x2b, 0xff, 0xeb, 0xe5, - 0x9f, 0xbc, 0x28, 0xde, 0xdb, 0x86, 0xb2, 0x98, 0x58, 0x08, 0xa0, 0xb4, 0xbb, 0xd7, 0x7d, 0xd4, - 0xda, 0x53, 0xe6, 0xa2, 0xe4, 0x93, 0xf4, 0xce, 0x63, 0x6b, 0xe7, 0xf7, 0xf4, 0xce, 0x81, 0x92, - 0x47, 0x55, 0x58, 0x20, 0xbf, 0xbb, 0x4f, 0xfb, 0x2c, 0x2b, 0xe5, 0x33, 0xed, 0xb1, 0x52, 0xbc, - 0xb7, 0x17, 0x7b, 0xf7, 0xcb, 0x56, 0x57, 0xa4, 0x40, 0x6d, 0xaf, 0xdb, 0xfd, 0xea, 0x69, 0x4f, - 0x6f, 0x3f, 0x6f, 0x6d, 0xf7, 0x95, 0x39, 0xb4, 0x04, 0x75, 0x0e, 0xd9, 0xeb, 0x1e, 0xec, 0xb6, - 0x35, 0x25, 0x87, 0x10, 0x2c, 0x72, 0xd0, 0xe1, 0x93, 0xae, 0xd6, 0x6f, 0x6b, 0x4a, 0xfe, 0xde, - 0xaf, 0xe8, 0x93, 0xf0, 0x70, 0x77, 0x89, 0xde, 0xb9, 0xd4, 0xda, 0x8f, 0x3b, 0xcf, 0x95, 0x39, - 0xa2, 0x29, 0x07, 0xed, 0xce, 0xee, 0x93, 0x47, 0x5d, 0x52, 0x7a, 0x01, 0x0a, 0xfd, 0xd6, 0x2e, - 0x17, 0xeb, 0x50, 0xef, 0xb5, 0xfa, 0x4f, 0x94, 0x02, 0xaa, 0x43, 0x65, 0xbb, 0xbb, 0xbf, 0xff, - 0xf4, 0xa0, 0xd3, 0xff, 0x46, 0x21, 0x63, 0x58, 0x6f, 0x3f, 0xef, 0xeb, 0x11, 0x68, 0x9e, 0x84, - 0xd0, 0x7b, 0x2d, 0x6d, 0xb7, 0x2d, 0x01, 0x4b, 0x8c, 0xf5, 0xf3, 0xbe, 0xfe, 0xa4, 0xdb, 0x53, - 0x16, 0xee, 0xbd, 0x0b, 0x95, 0x70, 0x53, 0x89, 0x5e, 0x03, 0x3f, 0xf8, 0x46, 0xbe, 0x0f, 0x0e, - 0x50, 0xea, 0x1c, 0x3c, 0x6b, 0x6b, 0x7d, 0x25, 0x7f, 0xef, 0x1e, 0x28, 0xc9, 0x2d, 0x23, 0x54, - 0x82, 0x7c, 0xfb, 0x6b, 0x65, 0x8e, 0xfc, 0xdd, 0x6d, 0x2b, 0x39, 0xf2, 0x77, 0xaf, 0xad, 0xe4, - 0xef, 0x7d, 0xc8, 0xaf, 0x5e, 0xf1, 0x38, 0x2d, 0xba, 0x69, 0x4e, 0x3a, 0x79, 0x7b, 0xbb, 0xdd, - 0xeb, 0x33, 0xe6, 0x5a, 0xfb, 0xf7, 0xda, 0xdb, 0x84, 0xf9, 0x53, 0x58, 0xce, 0x88, 0xb3, 0x49, - 0xa3, 0x42, 0xd9, 0xf5, 0xd6, 0x0e, 0x99, 0x36, 0x2b, 0xa0, 0x44, 0x20, 0xad, 0xbd, 0xdf, 0x7d, - 0x46, 0x2a, 0x5e, 0x85, 0x25, 0x19, 0xca, 0xaf, 0xb0, 0xdf, 0xfb, 0x00, 0xea, 0xb1, 0xe0, 0x9a, - 0xf4, 0xe0, 0x7e, 0x7b, 0x47, 0xdf, 0xef, 0x12, 0x56, 0x0d, 0xa8, 0x92, 0x0f, 0x41, 0x9e, 0xbb, - 0xf7, 0x3e, 0x40, 0xe4, 0xc1, 0x87, 0xe9, 0x87, 0x49, 0x27, 0xec, 0xf7, 0xba, 0x1a, 0x97, 0xb9, - 0xfd, 0x9c, 0xfe, 0xce, 0x3f, 0xf8, 0x8f, 0xb7, 0xa1, 0xbc, 0x4b, 0xd6, 0xa9, 0x96, 0x6b, 0xa1, - 0x3d, 0xa8, 0x4a, 0x19, 0x4a, 0xd0, 0x5b, 0xb1, 0xb8, 0x22, 0x91, 0xf8, 0x64, 0xfd, 0xda, 0x0c, - 0x2c, 0x5f, 0x59, 0xe6, 0x50, 0x07, 0x20, 0xca, 0x61, 0x82, 0x36, 0x64, 0xf2, 0x44, 0xba, 0x93, - 0xf5, 0xb7, 0xb2, 0x91, 0x21, 0xab, 0xc7, 0x50, 0x09, 0x33, 0xb7, 0x20, 0x69, 0xfb, 0x2f, 0x99, - 0xe2, 0x65, 0x7d, 0x23, 0x13, 0x17, 0xf2, 0xd9, 0x83, 0xaa, 0x94, 0xca, 0x5d, 0x6e, 0x60, 0x3a, - 0x37, 0xbc, 0xdc, 0xc0, 0xac, 0xfc, 0xef, 0x73, 0xe8, 0x29, 0x2c, 0xc6, 0x93, 0xb8, 0xa3, 0x1b, - 0xb2, 0x13, 0x92, 0x91, 0x1b, 0x7e, 0xfd, 0xe6, 0x6c, 0x02, 0x99, 0x6d, 0x3c, 0x37, 0xbb, 0xcc, - 0x36, 0x33, 0x37, 0xbc, 0xcc, 0x36, 0x3b, 0xad, 0x3b, 0x6b, 0xbb, 0xf4, 0x8f, 0x12, 0xe4, 0xb6, - 0xa7, 0xff, 0x37, 0x83, 0xdc, 0xf6, 0x8c, 0xff, 0xae, 0xa0, 0xce, 0x21, 0x0d, 0xea, 0xb1, 0xbc, - 0xd5, 0xe8, 0x7a, 0xcc, 0xfa, 0xa7, 0x39, 0xde, 0x98, 0x89, 0x0f, 0x79, 0xfe, 0x75, 0x58, 0x4a, - 0xe5, 0xc3, 0x46, 0xea, 0xc5, 0x79, 0xb9, 0xd7, 0x7f, 0x74, 0x2e, 0x4d, 0xc8, 0xff, 0xaf, 0x45, - 0x96, 0x2d, 0x64, 0x2f, 0xdd, 0x23, 0x9b, 0x91, 0x6e, 0x7b, 0x5d, 0x3d, 0x8f, 0x44, 0x1e, 0xb5, - 0x78, 0x16, 0x6c, 0x79, 0xd4, 0x32, 0x53, 0x6a, 0xcb, 0xa3, 0x36, 0x23, 0x81, 0xf6, 0x1c, 0x7a, - 0x0e, 0x8d, 0x44, 0xa2, 0x6b, 0x24, 0xeb, 0x50, 0x66, 0x76, 0xed, 0xf5, 0x5b, 0xe7, 0x50, 0x84, - 0x9c, 0x1f, 0x42, 0x89, 0xf9, 0x30, 0x68, 0x2d, 0x36, 0xd8, 0x51, 0xfa, 0x83, 0xf5, 0x66, 0x1a, - 0x11, 0x16, 0xff, 0x0c, 0x16, 0x78, 0x3e, 0x07, 0x14, 0x27, 0x93, 0x52, 0x3c, 0xac, 0x27, 0x52, - 0x7f, 0xa8, 0x73, 0x1f, 0xe5, 0x88, 0x1e, 0x4a, 0xb9, 0x0f, 0x64, 0x3d, 0x4c, 0x27, 0x60, 0x90, - 0xf5, 0x30, 0x2b, 0x61, 0xc2, 0x1c, 0xfa, 0x29, 0x2c, 0xf0, 0x13, 0x19, 0x94, 0x3e, 0xd5, 0x11, - 0x5c, 0xae, 0x66, 0x60, 0xe4, 0x65, 0x2a, 0xfa, 0x77, 0x11, 0xf2, 0x32, 0x95, 0xfa, 0x87, 0x17, - 0xf2, 0x32, 0x95, 0xf1, 0x1f, 0x26, 0xe6, 0xd0, 0x0e, 0x40, 0x94, 0x88, 0x59, 0x66, 0x95, 0x4a, - 0xcf, 0xbc, 0x9e, 0x9d, 0x35, 0x84, 0x76, 0xd0, 0x97, 0x61, 0xf2, 0xe9, 0xe8, 0x95, 0x8f, 0xe4, - 0x4c, 0x86, 0xff, 0xaf, 0x64, 0x3d, 0xf1, 0x3f, 0x20, 0x68, 0xe1, 0xc7, 0x50, 0x09, 0xb3, 0x81, - 0xcb, 0x2b, 0x65, 0x32, 0x17, 0xb9, 0xbc, 0x52, 0xa6, 0xd3, 0x87, 0xb3, 0x5e, 0x09, 0x73, 0x85, - 0xc7, 0x7a, 0x25, 0x99, 0x56, 0x3c, 0xd6, 0x2b, 0xe9, 0xf4, 0xe2, 0x73, 0xe8, 0x09, 0x54, 0xc2, - 0xfc, 0xde, 0xb2, 0x48, 0xc9, 0xac, 0xe3, 0xb2, 0x48, 0xe9, 0x84, 0xe0, 0x73, 0x77, 0x73, 0x44, - 0x65, 0x59, 0x46, 0x6d, 0xb4, 0x36, 0x23, 0xa1, 0xf7, 0x7a, 0x33, 0x8d, 0x90, 0xad, 0x48, 0x98, - 0x3c, 0x5b, 0x16, 0x24, 0x99, 0x93, 0x7b, 0x7d, 0x23, 0x13, 0x27, 0xeb, 0x1c, 0x4f, 0x17, 0x9c, - 0x50, 0x7d, 0x29, 0xcf, 0xac, 0xac, 0x73, 0x89, 0xdc, 0xc2, 0xa1, 0xd6, 0x26, 0x39, 0xc4, 0xd3, - 0x08, 0x27, 0xb4, 0x36, 0xc1, 0x21, 0xd4, 0x5a, 0xca, 0x24, 0x25, 0xb0, 0xcc, 0xe7, 0xad, 0x6c, - 0xa4, 0xcc, 0x2a, 0xca, 0xe4, 0x8b, 0x52, 0x7a, 0x31, 0x83, 0x55, 0x46, 0xf2, 0x5f, 0x6a, 0x63, - 0xa4, 0x74, 0xbe, 0x28, 0xad, 0x19, 0x32, 0xb3, 0x6b, 0x33, 0xb0, 0xf2, 0x78, 0x85, 0xc9, 0x78, - 0xe5, 0xf1, 0x4a, 0xe6, 0xf4, 0x95, 0xc7, 0x2b, 0x9d, 0xbd, 0x97, 0xda, 0xaa, 0x58, 0x62, 0x5f, - 0xd9, 0x56, 0x65, 0xe5, 0x08, 0x96, 0x6d, 0x55, 0x76, 0x46, 0xe0, 0x70, 0xf5, 0x74, 0x8c, 0xe4, - 0xea, 0x19, 0x6e, 0xb6, 0x25, 0x57, 0xcf, 0x68, 0x73, 0x8d, 0x75, 0x94, 0x94, 0x84, 0x17, 0xa5, - 0xfa, 0x55, 0x4e, 0x34, 0x2c, 0x77, 0x54, 0x56, 0xe6, 0xde, 0x39, 0x3e, 0x2f, 0x9e, 0x79, 0xc3, - 0xc4, 0xbc, 0x88, 0x12, 0xe8, 0x26, 0xe6, 0x85, 0x9c, 0x24, 0x57, 0x9a, 0x17, 0x84, 0x43, 0x6a, - 0x5e, 0x48, 0x4c, 0x36, 0x32, 0x71, 0x89, 0x3e, 0x49, 0x88, 0x11, 0x4b, 0x2a, 0x9c, 0xe8, 0x93, - 0x78, 0x71, 0x8d, 0xee, 0x56, 0x4a, 0xe7, 0xd9, 0xd7, 0x63, 0xc4, 0xa9, 0xf4, 0xb2, 0xf2, 0x30, - 0x65, 0xe6, 0xe3, 0x65, 0x3c, 0x63, 0x79, 0x72, 0x65, 0x9e, 0x59, 0x09, 0x78, 0x65, 0x9e, 0xd9, - 0x09, 0x76, 0xa9, 0x1b, 0x91, 0xcc, 0x86, 0x2b, 0xbb, 0x11, 0x33, 0xd2, 0xef, 0xca, 0x6e, 0xc4, - 0xcc, 0x64, 0xba, 0xd4, 0x07, 0x4a, 0xa5, 0xc2, 0x95, 0x7d, 0xa0, 0x59, 0xb9, 0x76, 0x65, 0x1f, - 0x68, 0x76, 0x2e, 0xdd, 0x39, 0xd4, 0x85, 0x9a, 0x9c, 0x36, 0x17, 0xc5, 0x1d, 0xbd, 0x64, 0x86, - 0xd8, 0xf5, 0xeb, 0xb3, 0xd0, 0x32, 0x43, 0x39, 0xe1, 0x2d, 0x8a, 0x7b, 0xcd, 0xe7, 0x31, 0xcc, - 0xcc, 0x93, 0xcb, 0x3c, 0x9e, 0x78, 0x2a, 0x5b, 0x94, 0xf2, 0x9a, 0x53, 0x6c, 0x6f, 0x9d, 0x43, - 0x21, 0x0f, 0x5c, 0x32, 0x77, 0xad, 0x3c, 0x70, 0x33, 0xb2, 0xe4, 0xae, 0xab, 0xe7, 0x91, 0x24, - 0x42, 0x14, 0x7e, 0xf8, 0x10, 0x0f, 0x51, 0x62, 0x99, 0x58, 0x13, 0x21, 0x4a, 0x22, 0xed, 0x29, - 0xe5, 0x13, 0x66, 0xfa, 0x94, 0xf9, 0x24, 0x53, 0xe0, 0xca, 0x7c, 0xd2, 0x49, 0x6a, 0xe9, 0xb8, - 0xc8, 0x39, 0x3a, 0xe5, 0x71, 0xc9, 0xc8, 0x5e, 0xbb, 0x7e, 0x7d, 0x16, 0x3a, 0xee, 0xf1, 0x4b, - 0x49, 0x37, 0xe3, 0x1e, 0x7f, 0x3a, 0xe5, 0x6c, 0xdc, 0xe3, 0xcf, 0xca, 0xf1, 0x4a, 0x85, 0x94, - 0xff, 0x79, 0x8a, 0x2c, 0x64, 0xc6, 0xff, 0x70, 0x91, 0x85, 0xcc, 0xfc, 0x9f, 0x2b, 0x73, 0xc8, - 0xa4, 0xc9, 0xa2, 0x53, 0x67, 0x5d, 0x6f, 0x67, 0xf4, 0x79, 0x2a, 0x25, 0xe9, 0xfa, 0xed, 0x0b, - 0xa8, 0xe4, 0x5a, 0x32, 0xb2, 0xb1, 0xca, 0xb5, 0xcc, 0x4e, 0x03, 0x2b, 0xd7, 0x72, 0x5e, 0x4a, - 0xd7, 0x39, 0x34, 0x09, 0xff, 0xef, 0x55, 0xb2, 0xa2, 0x3b, 0xd9, 0x83, 0x95, 0xae, 0xeb, 0xee, - 0xc5, 0x84, 0x61, 0x75, 0x6e, 0x98, 0x27, 0x3a, 0x7d, 0x54, 0x38, 0x63, 0x24, 0xd3, 0x15, 0xbe, - 0x7b, 0x09, 0x4a, 0xd9, 0xf1, 0x88, 0x76, 0x51, 0xd1, 0x46, 0x32, 0xd8, 0x90, 0x76, 0x66, 0xd7, - 0xdf, 0xca, 0x46, 0x26, 0x56, 0xa1, 0x28, 0x9b, 0x55, 0x7c, 0x15, 0x4a, 0xfe, 0x3f, 0xaf, 0xc4, - 0x2a, 0x94, 0xfe, 0x4f, 0x60, 0xd2, 0x2a, 0x14, 0xf1, 0x4c, 0xad, 0x42, 0x29, 0xb6, 0xb7, 0xce, - 0xa1, 0x90, 0x39, 0x27, 0xfe, 0xdd, 0x17, 0x4a, 0x85, 0xef, 0xe7, 0x71, 0x9e, 0xf1, 0xbf, 0xc2, - 0xd4, 0x39, 0x64, 0xd0, 0x7f, 0x71, 0x97, 0x4c, 0xab, 0xf4, 0xa3, 0xb8, 0x45, 0xcb, 0xfc, 0xe7, - 0x60, 0xeb, 0x6f, 0x9f, 0x4f, 0x94, 0xe8, 0xe7, 0x70, 0x1f, 0x39, 0xd1, 0xcf, 0xc9, 0x1d, 0xed, - 0x44, 0x3f, 0xa7, 0xb7, 0x9f, 0xe7, 0xd0, 0x36, 0x94, 0x45, 0x50, 0x8d, 0xae, 0xa6, 0x03, 0x6d, - 0xc1, 0x68, 0x3d, 0x0b, 0x25, 0x98, 0x1c, 0x95, 0xe8, 0xc9, 0xdf, 0xc7, 0xff, 0x2f, 0x00, 0x00, - 0xff, 0xff, 0xaf, 0xa4, 0x81, 0xd6, 0x9a, 0x72, 0x00, 0x00, + // 7709 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x4d, 0x6c, 0x1c, 0x47, + 0x76, 0xb0, 0xe7, 0x87, 0xc3, 0x99, 0x37, 0x7f, 0xcd, 0x22, 0x25, 0x52, 0x94, 0x2d, 0xc9, 0xbd, + 0xb6, 0x25, 0xd3, 0x16, 0xf5, 0x63, 0x9b, 0xf6, 0xca, 0x2b, 0xdb, 0x23, 0x72, 0x44, 0xcd, 0x8a, + 0x9c, 0x19, 0x37, 0x47, 0xb2, 0xbc, 0xdf, 0x1a, 0xbd, 0xcd, 0xe9, 0x9a, 0x61, 0x7f, 0x9e, 0xe9, + 0x6e, 0x77, 0xf7, 0xd0, 0x24, 0x02, 0x04, 0x92, 0xf7, 0x27, 0x01, 0x82, 0xbd, 0x24, 0xc7, 0x04, + 0xb9, 0x24, 0x08, 0x82, 0x45, 0x72, 0xdb, 0x9c, 0x93, 0x00, 0x49, 0x10, 0xec, 0x02, 0x39, 0xe6, + 0x98, 0x53, 0xae, 0x39, 0xe4, 0x12, 0x04, 0x39, 0x05, 0xf5, 0xd3, 0xdd, 0xd5, 0x3f, 0x43, 0x8e, + 0x64, 0xed, 0x3a, 0x0b, 0xec, 0x89, 0x53, 0xef, 0xbd, 0x7a, 0xf5, 0xaa, 0xea, 0xd5, 0xab, 0xf7, + 0xaa, 0xaa, 0x1f, 0xa1, 0x3c, 0xb4, 0xf6, 0x87, 0xf6, 0xba, 0xed, 0x58, 0x9e, 0x85, 0x8a, 0xb4, + 0xa0, 0xd9, 0xc6, 0xea, 0xb9, 0xa1, 0x65, 0x0d, 0x47, 0xf8, 0x1a, 0x85, 0xef, 0x4f, 0x06, 0xd7, + 0x34, 0xf3, 0x98, 0x11, 0xad, 0x9e, 0x8f, 0xa3, 0xf0, 0xd8, 0xf6, 0x38, 0x52, 0x7e, 0x1f, 0xea, + 0x7b, 0x9e, 0xe6, 0x78, 0x77, 0x86, 0xb6, 0x82, 0xbf, 0x98, 0x60, 0xd7, 0x43, 0x57, 0xa0, 0x30, + 0x1c, 0x59, 0xfb, 0xda, 0x68, 0x25, 0x73, 0x29, 0x73, 0xa5, 0x7c, 0x53, 0x5a, 0xf7, 0x5b, 0x59, + 0xdf, 0xa6, 0x70, 0x85, 0xe3, 0x65, 0x09, 0x6a, 0x7b, 0x9e, 0x65, 0x87, 0x75, 0xe5, 0x3a, 0x54, + 0xb7, 0xb1, 0xc0, 0x4c, 0xbe, 0x05, 0x35, 0x1f, 0xe0, 0xda, 0x96, 0xe9, 0xe2, 0xa7, 0x60, 0xff, + 0x36, 0xd4, 0x1a, 0xba, 0xde, 0xc5, 0xd8, 0xf1, 0x45, 0x93, 0x21, 0x6f, 0x63, 0xec, 0xf0, 0x9a, + 0xb5, 0xb0, 0x26, 0x25, 0xa2, 0x38, 0xf9, 0x3e, 0x2c, 0x6c, 0xe1, 0x11, 0xf6, 0xb0, 0x58, 0x71, + 0x05, 0xe6, 0x35, 0x5d, 0x77, 0xb0, 0xeb, 0xd2, 0xba, 0x25, 0xc5, 0x2f, 0xa2, 0x17, 0xa1, 0x64, + 0x98, 0x1e, 0x76, 0x06, 0x5a, 0x1f, 0xaf, 0x64, 0x29, 0x2e, 0x04, 0xc8, 0x9f, 0x40, 0x7d, 0xc7, + 0x70, 0xbd, 0xd9, 0x58, 0xad, 0x81, 0x84, 0x4d, 0x6d, 0x7f, 0x84, 0x1b, 0xfa, 0x21, 0x76, 0x3c, + 0xc3, 0xc5, 0x3a, 0xe5, 0x58, 0x54, 0x12, 0x70, 0x79, 0x03, 0xa4, 0x90, 0x31, 0x1f, 0x99, 0x59, + 0x7a, 0xf7, 0x03, 0x58, 0x78, 0x60, 0xeb, 0x5a, 0xb4, 0x77, 0x33, 0x54, 0x44, 0x97, 0x41, 0xd2, + 0x2d, 0xd5, 0xb5, 0x06, 0x9e, 0xea, 0x60, 0x17, 0x7b, 0xaa, 0x61, 0x72, 0xe1, 0xaa, 0xba, 0xb5, + 0x67, 0x0d, 0x3c, 0x85, 0x40, 0x5b, 0xa6, 0xbc, 0x09, 0x48, 0x6c, 0x81, 0xcb, 0x76, 0x15, 0x16, + 0x4d, 0x8c, 0x75, 0x37, 0xc6, 0x21, 0xc3, 0xba, 0x47, 0x51, 0x22, 0x93, 0x7f, 0xcf, 0x80, 0x44, + 0x7f, 0xcf, 0x36, 0x72, 0xaf, 0x40, 0xb5, 0x6f, 0x8d, 0xc7, 0x13, 0xd3, 0xe8, 0x6b, 0x9e, 0x61, + 0x99, 0x7c, 0x22, 0xa2, 0x40, 0x84, 0x20, 0x4f, 0x5a, 0x5f, 0xc9, 0xd1, 0x46, 0xe9, 0x6f, 0x74, + 0x1f, 0x4a, 0xba, 0xe1, 0xe0, 0x3e, 0xad, 0x95, 0xbf, 0x94, 0xb9, 0x52, 0xbb, 0x79, 0x35, 0xec, + 0x7f, 0x5c, 0x84, 0xf5, 0x40, 0xc6, 0x2d, 0xbf, 0x92, 0x12, 0xd6, 0x97, 0xaf, 0x01, 0x4a, 0x12, + 0xa0, 0x02, 0x64, 0x5b, 0x6d, 0xe9, 0x05, 0x34, 0x0f, 0xb9, 0xce, 0x83, 0x9e, 0x94, 0x41, 0x45, + 0xc8, 0xdf, 0xe9, 0xf4, 0xee, 0x49, 0x59, 0xf9, 0x01, 0x2c, 0xee, 0x1d, 0x4c, 0x3c, 0xdd, 0xfa, + 0xd2, 0x7c, 0x8e, 0x1d, 0x95, 0xaf, 0xc2, 0x42, 0x93, 0x2a, 0xcc, 0x4c, 0x4c, 0xe5, 0x1e, 0xa0, + 0x2d, 0xc3, 0x9d, 0x99, 0x7e, 0x46, 0x21, 0xee, 0x01, 0xda, 0xb5, 0x4c, 0xc3, 0xb3, 0x9c, 0xd9, + 0xb8, 0xae, 0xc0, 0x7c, 0x7f, 0xe2, 0x38, 0xd8, 0xf4, 0xb8, 0x5e, 0xf9, 0x45, 0xf9, 0xdb, 0xb0, + 0x18, 0xe1, 0xf4, 0x14, 0xea, 0xde, 0x82, 0x45, 0x6e, 0x02, 0xb6, 0x1d, 0x6b, 0x12, 0x98, 0xa8, + 0x9b, 0x00, 0x04, 0xad, 0x0e, 0x09, 0x90, 0x33, 0x58, 0x8c, 0x32, 0x60, 0xf4, 0x25, 0xdb, 0xff, + 0x29, 0xbf, 0x09, 0x67, 0x43, 0xbb, 0x10, 0xe1, 0x86, 0x20, 0x6f, 0x6a, 0x63, 0xcc, 0x3b, 0x44, + 0x7f, 0xcb, 0x13, 0x38, 0x1b, 0xae, 0x82, 0xaf, 0xdb, 0xf6, 0xec, 0x8b, 0xef, 0x1e, 0x2c, 0x27, + 0x9a, 0x7d, 0xb6, 0x15, 0xa8, 0xc1, 0xb9, 0x86, 0xae, 0x6f, 0x1d, 0x9b, 0xda, 0xd8, 0xe8, 0xb7, + 0xb1, 0x31, 0x3c, 0xd8, 0xb7, 0x82, 0x59, 0xdc, 0x02, 0x49, 0x67, 0x18, 0xd5, 0xe4, 0x28, 0xde, + 0x93, 0x73, 0x61, 0x4f, 0xe2, 0x75, 0xeb, 0x7a, 0x14, 0x20, 0xff, 0x0e, 0xb3, 0xcf, 0x9a, 0x77, + 0xe0, 0xf3, 0x5d, 0x87, 0xa2, 0x83, 0x5d, 0x6b, 0xe2, 0xf4, 0xd9, 0x68, 0xd6, 0x6e, 0xa2, 0xc8, + 0x62, 0xa4, 0x18, 0x25, 0xa0, 0x41, 0x67, 0xa0, 0x70, 0xe8, 0x0c, 0x54, 0x43, 0xe7, 0x2a, 0x38, + 0x77, 0xe8, 0x0c, 0x5a, 0x3a, 0xd5, 0x0c, 0xcd, 0x3b, 0xa0, 0x0b, 0x3d, 0xaa, 0x19, 0xa4, 0x2d, + 0x8a, 0x93, 0x5f, 0x85, 0x7a, 0xd0, 0x38, 0x1f, 0x21, 0x04, 0xf9, 0xc9, 0xc4, 0xd0, 0x69, 0xcb, + 0x15, 0x85, 0xfe, 0x96, 0x7f, 0x96, 0x09, 0xb6, 0x83, 0xe7, 0x2f, 0xe7, 0x59, 0x28, 0x0c, 0xb4, + 0xb1, 0x31, 0x3a, 0xa6, 0x92, 0x56, 0x15, 0x5e, 0x0a, 0xe4, 0xcf, 0x4f, 0x97, 0x3f, 0x10, 0x76, + 0x4e, 0x10, 0xf6, 0x4f, 0x33, 0x7c, 0xbb, 0x11, 0x44, 0x7d, 0x0d, 0xf2, 0xde, 0xb1, 0x7d, 0x92, + 0x98, 0x14, 0x1f, 0x28, 0x71, 0x36, 0x54, 0xe2, 0xa9, 0xf2, 0xbd, 0x0b, 0x45, 0xdb, 0xc1, 0x03, + 0xe3, 0x08, 0xbb, 0x2b, 0xf9, 0x4b, 0xb9, 0x2b, 0xe5, 0x9b, 0xe7, 0x43, 0xbe, 0x3d, 0x62, 0x48, + 0x76, 0x2c, 0xeb, 0xf3, 0x89, 0xdd, 0xa5, 0x44, 0x4a, 0x40, 0x2c, 0xdf, 0xe7, 0xbb, 0x96, 0x38, + 0xea, 0xef, 0x42, 0x59, 0xc7, 0xae, 0x67, 0x98, 0xcc, 0x96, 0x30, 0x35, 0x3a, 0x23, 0xa8, 0x51, + 0x88, 0x54, 0x44, 0x4a, 0xf9, 0x87, 0x19, 0x58, 0xe2, 0x53, 0xb8, 0xe7, 0x39, 0x58, 0x1b, 0x3f, + 0xe7, 0xd9, 0x79, 0x05, 0xe6, 0xc8, 0x48, 0xbb, 0x2b, 0x39, 0xda, 0xc5, 0xf8, 0x34, 0x30, 0xa4, + 0x8c, 0xa1, 0xbe, 0x8d, 0x3d, 0xda, 0xe9, 0xa7, 0x1d, 0xf2, 0x70, 0x78, 0xb3, 0x91, 0xe1, 0xf5, + 0xa7, 0x22, 0x27, 0xd8, 0x93, 0x63, 0x90, 0xc2, 0x66, 0xf8, 0xc8, 0x5d, 0x86, 0xba, 0x39, 0x19, + 0xab, 0xe2, 0xe8, 0x11, 0x8d, 0xc9, 0x2b, 0x35, 0x73, 0x32, 0x16, 0x86, 0x0d, 0x9d, 0x83, 0x22, + 0x21, 0xa4, 0x3a, 0x35, 0x47, 0x29, 0xe6, 0xcd, 0xc9, 0x98, 0xf4, 0x02, 0xbd, 0x0c, 0x15, 0x82, + 0xd2, 0xfa, 0x7d, 0x6c, 0x7b, 0x58, 0x5f, 0x29, 0x50, 0x74, 0xd9, 0x9c, 0x8c, 0x1b, 0x1c, 0x24, + 0xff, 0x79, 0x26, 0xb0, 0xbf, 0xcf, 0xd4, 0xcd, 0xa7, 0xd1, 0x2c, 0x61, 0x13, 0xc8, 0x47, 0x36, + 0x01, 0x74, 0x11, 0xca, 0xb6, 0xe5, 0x7a, 0xaa, 0x6d, 0x8d, 0x8c, 0xfe, 0x31, 0xed, 0x46, 0x51, + 0x01, 0x02, 0xea, 0x52, 0x88, 0x7c, 0x0b, 0x96, 0xa2, 0x52, 0x0a, 0xdb, 0x04, 0xe9, 0x78, 0xe6, + 0x04, 0x63, 0x70, 0x1d, 0xaa, 0x0d, 0x5d, 0x7f, 0xe8, 0x0c, 0xfc, 0xbe, 0x5d, 0x84, 0xdc, 0xa1, + 0x33, 0xe0, 0x75, 0xaa, 0x61, 0x1d, 0x42, 0x42, 0x30, 0xf2, 0x6b, 0x20, 0x31, 0xb3, 0x20, 0x54, + 0x4a, 0xdb, 0x07, 0x5e, 0x81, 0x1a, 0xd1, 0xf8, 0x53, 0xa8, 0x6e, 0xb2, 0x75, 0x4b, 0xa9, 0xb8, + 0xd8, 0xa7, 0x4a, 0x70, 0x04, 0x12, 0xd1, 0x7e, 0xda, 0x79, 0xc1, 0xf5, 0xe6, 0xe3, 0x93, 0xf0, + 0x8d, 0x39, 0x21, 0xc7, 0xa3, 0x5b, 0x70, 0xce, 0xc1, 0x03, 0xec, 0xa8, 0xf8, 0xc8, 0x20, 0x8a, + 0x32, 0x54, 0x5d, 0x4f, 0xf3, 0xf0, 0x18, 0x9b, 0x9e, 0xcb, 0xb7, 0x96, 0x65, 0x4a, 0xd0, 0xe4, + 0xf8, 0xbd, 0x00, 0x2d, 0x7f, 0x95, 0x81, 0x45, 0x6e, 0x13, 0x9f, 0xb1, 0xf5, 0x6b, 0xb0, 0x68, + 0x93, 0x1d, 0xc8, 0x39, 0xc4, 0xc9, 0x76, 0x91, 0x8f, 0x0a, 0x9b, 0x44, 0x12, 0xe4, 0xb4, 0xd1, + 0x88, 0x7b, 0x6e, 0xe4, 0xa7, 0x7c, 0x19, 0x16, 0xa8, 0x29, 0x89, 0x48, 0x90, 0x36, 0xb6, 0x1f, + 0x00, 0x12, 0x09, 0xc3, 0x28, 0x62, 0x36, 0x59, 0xe5, 0xbf, 0xce, 0xc0, 0x92, 0x82, 0xed, 0x91, + 0xd6, 0xc7, 0xdf, 0xc0, 0x60, 0x4f, 0x1b, 0xaa, 0xdc, 0xb4, 0xa1, 0x92, 0xc7, 0xb0, 0xc8, 0x5d, + 0x80, 0x98, 0xb4, 0x79, 0x17, 0x7b, 0xc4, 0xeb, 0x22, 0xc6, 0x6c, 0x49, 0xb4, 0xaf, 0x03, 0xc3, + 0xc4, 0xfa, 0x1e, 0xf6, 0x14, 0x4a, 0x81, 0xde, 0x84, 0x22, 0x95, 0xdb, 0xc0, 0x44, 0xb8, 0x5c, + 0x6a, 0xcf, 0x02, 0x0a, 0xf9, 0x03, 0x6a, 0x84, 0x05, 0x26, 0x81, 0x75, 0xc8, 0xb9, 0xd8, 0xe3, + 0x43, 0x93, 0xde, 0x1c, 0x21, 0x90, 0xf7, 0x60, 0x99, 0xe9, 0xd2, 0x33, 0xb3, 0xf0, 0x95, 0x23, + 0x1b, 0x2a, 0xc7, 0x43, 0x38, 0x43, 0xe6, 0x3c, 0xc9, 0xf2, 0xf5, 0x88, 0xcd, 0x3a, 0x93, 0xe0, + 0xd9, 0x3b, 0xb6, 0x4f, 0x30, 0x5b, 0xf2, 0x47, 0x70, 0x36, 0xce, 0x97, 0xeb, 0xd3, 0xac, 0xdd, + 0xbd, 0x03, 0x2b, 0x5c, 0x99, 0x9e, 0x7d, 0xc8, 0xee, 0x51, 0xa7, 0x36, 0x98, 0x72, 0xbf, 0xfa, + 0x0d, 0x28, 0x05, 0x0a, 0x92, 0xf4, 0x2b, 0x43, 0xf2, 0x90, 0x4a, 0xfe, 0xcc, 0xf7, 0x69, 0x9f, + 0x03, 0xb3, 0x94, 0x69, 0x58, 0x83, 0x25, 0x32, 0x5c, 0x09, 0xe6, 0x69, 0xcb, 0xf4, 0xbb, 0x6c, + 0xca, 0x04, 0x5a, 0x3e, 0xb2, 0xcf, 0xd0, 0xad, 0x1d, 0x58, 0xe6, 0x83, 0xfc, 0x3c, 0x06, 0xe9, + 0x11, 0xac, 0x06, 0x86, 0xb6, 0xe1, 0xba, 0xc6, 0xd0, 0x14, 0x19, 0xde, 0x02, 0xd0, 0x02, 0x20, + 0xe7, 0xb8, 0x1a, 0x5f, 0x2f, 0x42, 0x35, 0x81, 0x5a, 0x1e, 0xc3, 0x4b, 0xa2, 0x1d, 0x7d, 0xae, + 0xcc, 0x53, 0xa6, 0xe3, 0xff, 0xc3, 0xf9, 0xd0, 0x12, 0x26, 0x1b, 0x4b, 0x99, 0x15, 0xf4, 0xae, + 0x18, 0x1e, 0x67, 0xe9, 0xa2, 0x39, 0x17, 0x6f, 0x3f, 0x35, 0x14, 0xfe, 0x1e, 0xbc, 0x98, 0xde, + 0x16, 0x9f, 0xd5, 0xaf, 0x33, 0x6c, 0xdf, 0x87, 0x0b, 0x11, 0x83, 0xfc, 0x7c, 0x27, 0xe5, 0x7b, + 0x34, 0x2a, 0x51, 0xec, 0xcf, 0x8d, 0xd3, 0x63, 0x56, 0x04, 0x79, 0xdb, 0x72, 0x3c, 0xee, 0xbf, + 0xd1, 0xdf, 0x68, 0x15, 0x8a, 0x23, 0x63, 0x80, 0x3d, 0x83, 0x7b, 0x70, 0x39, 0x25, 0x28, 0xcb, + 0x0d, 0x3f, 0x98, 0x78, 0x66, 0xf6, 0xf2, 0xeb, 0xcc, 0x55, 0x10, 0x19, 0x84, 0xce, 0x54, 0x46, + 0x74, 0xa6, 0xe4, 0x5b, 0xcc, 0xdb, 0x66, 0xa4, 0x81, 0x9d, 0x2a, 0xd0, 0x0d, 0x23, 0x25, 0x6c, + 0xa6, 0x74, 0x1c, 0x4b, 0x24, 0x65, 0x47, 0x08, 0xcf, 0x2e, 0xe9, 0x9d, 0xe0, 0x58, 0xe1, 0xd9, + 0x79, 0xf4, 0xf8, 0x31, 0xd0, 0xb3, 0x4f, 0x47, 0xca, 0xa1, 0x8f, 0xbc, 0xce, 0xec, 0x12, 0x61, + 0x1a, 0xf1, 0x68, 0xa7, 0x0d, 0xe4, 0x7b, 0xcc, 0x36, 0x09, 0xf4, 0xa1, 0x93, 0xe6, 0x58, 0x5a, + 0xd2, 0x49, 0x53, 0x2c, 0x4d, 0x21, 0x18, 0xf9, 0x97, 0x19, 0x40, 0x6c, 0x1c, 0xbf, 0x87, 0xf7, + 0x1d, 0xcd, 0x6f, 0x48, 0x82, 0xdc, 0xc4, 0x19, 0x71, 0xf1, 0xc9, 0x4f, 0xe2, 0xde, 0x3a, 0xd6, + 0xc4, 0xc3, 0x2a, 0xd9, 0x7b, 0xd8, 0xbe, 0x5b, 0x52, 0x80, 0x82, 0xc8, 0x9e, 0x44, 0x8f, 0x47, + 0x0e, 0xb1, 0xe3, 0x92, 0x75, 0xc8, 0x5c, 0x66, 0xbf, 0x88, 0xde, 0x86, 0xb3, 0x26, 0x3e, 0xf2, + 0x0e, 0x2c, 0x5b, 0xf5, 0x1c, 0x63, 0x38, 0x24, 0x7e, 0x06, 0x6d, 0x92, 0xbb, 0xd0, 0x4b, 0x1c, + 0xdb, 0x63, 0x48, 0x26, 0x0e, 0xba, 0x09, 0x67, 0xe2, 0xb5, 0x74, 0x3c, 0xd2, 0x98, 0x67, 0x5d, + 0x55, 0x16, 0xa3, 0x95, 0xb6, 0x08, 0x4a, 0x1e, 0x82, 0xc4, 0x6a, 0xef, 0x3a, 0xc1, 0x52, 0x3b, + 0x0f, 0x25, 0x7d, 0x32, 0xb6, 0xd5, 0x60, 0x5b, 0x9d, 0x53, 0x8a, 0x04, 0x40, 0xa4, 0x26, 0x6b, + 0x61, 0x60, 0x8c, 0xb0, 0xb0, 0x8f, 0x06, 0x65, 0x82, 0xa3, 0xe7, 0xa4, 0x87, 0x1a, 0xf3, 0xeb, + 0xf2, 0x4a, 0x50, 0x96, 0x17, 0x61, 0x81, 0xab, 0x4e, 0xd8, 0x92, 0xfc, 0x77, 0x19, 0xea, 0xa5, + 0xdf, 0x19, 0xdb, 0xcf, 0xa6, 0x09, 0xdf, 0xe1, 0x7b, 0x7f, 0x8e, 0x9a, 0xb1, 0x2b, 0xe1, 0x6c, + 0x45, 0x98, 0xae, 0xf3, 0x20, 0xc2, 0x30, 0x87, 0xdc, 0xd7, 0xa1, 0xb5, 0xe4, 0x4d, 0x90, 0xe2, + 0x18, 0x34, 0x0f, 0xb9, 0xae, 0xd2, 0x94, 0x5e, 0x40, 0x45, 0xc8, 0x77, 0x3b, 0x7b, 0x91, 0xb3, + 0x3d, 0x54, 0x82, 0xb9, 0x9d, 0xce, 0x66, 0x63, 0x47, 0xca, 0x11, 0xba, 0xc6, 0xce, 0x8e, 0x94, + 0x97, 0x3f, 0xf2, 0xa3, 0x86, 0x67, 0xed, 0x84, 0xfc, 0x67, 0x39, 0xa8, 0x29, 0xdd, 0xfb, 0xad, + 0x87, 0xda, 0xc8, 0xd0, 0x59, 0x74, 0xf7, 0x36, 0xcc, 0xd1, 0xcd, 0x8a, 0x3b, 0x35, 0x17, 0x04, + 0x35, 0x8c, 0x10, 0xb2, 0xdd, 0x4d, 0x61, 0xc4, 0xe8, 0x5d, 0x28, 0x38, 0x58, 0x73, 0x03, 0xb3, + 0x7e, 0x71, 0x6a, 0x35, 0x85, 0x92, 0x29, 0x9c, 0x1c, 0x5d, 0x86, 0xf9, 0xb1, 0xe6, 0xf5, 0x0f, + 0xb0, 0xce, 0x03, 0xe3, 0x98, 0xde, 0xfb, 0x58, 0x74, 0x1d, 0x2a, 0x13, 0x93, 0x17, 0x54, 0xcd, + 0x3f, 0x29, 0x88, 0x51, 0x97, 0x03, 0x92, 0x86, 0x8b, 0xde, 0x03, 0x29, 0xac, 0x31, 0xc2, 0xe6, + 0x90, 0xc6, 0xab, 0x29, 0xb5, 0xea, 0x01, 0xd9, 0x0e, 0xa5, 0x92, 0xbb, 0x30, 0x47, 0x7b, 0x87, + 0x6a, 0x00, 0x7b, 0xbd, 0x46, 0xaf, 0xa9, 0xb6, 0x3b, 0x6d, 0x32, 0x33, 0x8b, 0x50, 0xf7, 0xcb, + 0x3d, 0xf5, 0x6e, 0xe7, 0x41, 0x7b, 0x4b, 0xca, 0xa0, 0x3a, 0x94, 0x19, 0xf0, 0x61, 0x63, 0xa7, + 0xb5, 0x25, 0x65, 0xd1, 0x02, 0x54, 0x19, 0xa0, 0xd5, 0x66, 0xa0, 0x9c, 0xfc, 0x3e, 0x14, 0x58, + 0xc7, 0x09, 0xb5, 0xd2, 0x6c, 0xec, 0x75, 0x7a, 0x3e, 0xcf, 0x2a, 0x94, 0x28, 0xa0, 0xad, 0x36, + 0xf6, 0xa4, 0x0c, 0xa9, 0xcc, 0x8b, 0x3b, 0xcd, 0xf6, 0x36, 0x3d, 0xd7, 0xfd, 0xd7, 0x39, 0xc8, + 0x77, 0xf9, 0x29, 0x8d, 0x39, 0x72, 0x0c, 0xff, 0x48, 0x89, 0xfc, 0x26, 0x56, 0xc6, 0xd6, 0x3c, + 0xcf, 0x61, 0xab, 0xbc, 0xa2, 0xf0, 0x12, 0xdd, 0xb0, 0x87, 0xfe, 0x9e, 0x41, 0x7e, 0x92, 0xda, + 0xfb, 0xd8, 0xf5, 0x43, 0x61, 0xfa, 0x9b, 0x18, 0x0a, 0xc3, 0x55, 0xbf, 0x34, 0xbc, 0x03, 0xdd, + 0xd1, 0xbe, 0xf4, 0xe3, 0x60, 0xc3, 0xfd, 0x84, 0x43, 0xd0, 0x05, 0x80, 0xc3, 0x60, 0xf2, 0x68, + 0x3c, 0x3f, 0xa7, 0x08, 0x10, 0xd4, 0x84, 0x85, 0xb0, 0xa4, 0xea, 0xd8, 0xd3, 0x8c, 0xd1, 0xca, + 0x3c, 0xb5, 0x60, 0x2b, 0xd3, 0x74, 0x40, 0x91, 0xc2, 0x2a, 0x5b, 0xb4, 0x06, 0xba, 0x0e, 0x4b, + 0xa6, 0xa5, 0x1a, 0x63, 0x9b, 0xc4, 0x01, 0x5e, 0x28, 0x50, 0x91, 0x05, 0x26, 0xa6, 0xd5, 0xe2, + 0xa8, 0x40, 0xb0, 0xd0, 0xba, 0x96, 0x22, 0x31, 0xff, 0x4b, 0x00, 0xec, 0xbc, 0x40, 0xd5, 0x5c, + 0x73, 0x05, 0x28, 0xae, 0xc4, 0x20, 0x0d, 0xd7, 0x24, 0x06, 0x86, 0xa3, 0x0d, 0x7d, 0xa5, 0xcc, + 0x8c, 0x08, 0x03, 0xb4, 0x74, 0x6e, 0x60, 0x3c, 0xec, 0x60, 0x7d, 0xa5, 0x42, 0x5b, 0x0e, 0xca, + 0x68, 0x89, 0xae, 0x8b, 0x11, 0x5e, 0xa9, 0x52, 0x04, 0x2b, 0xa0, 0x2b, 0x20, 0x19, 0xae, 0x3a, + 0x70, 0xac, 0xb1, 0x8a, 0x8f, 0x3c, 0xec, 0x98, 0xda, 0x68, 0xa5, 0x46, 0x09, 0x6a, 0x86, 0x7b, + 0xd7, 0xb1, 0xc6, 0x4d, 0x0e, 0x25, 0x23, 0xed, 0x1f, 0x6e, 0xaa, 0x86, 0xbd, 0x52, 0xa7, 0x4d, + 0x83, 0x0f, 0x6a, 0xd9, 0xc1, 0x11, 0x9c, 0x14, 0x1e, 0xc1, 0xa1, 0x37, 0x01, 0x19, 0xae, 0xea, + 0x5b, 0x56, 0xc3, 0xa4, 0xe3, 0xb6, 0xb2, 0xc0, 0x0e, 0x59, 0x0d, 0xb7, 0xcd, 0x10, 0x2d, 0x06, + 0x27, 0x73, 0x65, 0xe8, 0xd8, 0xf4, 0x8c, 0x81, 0x81, 0x9d, 0x15, 0x44, 0xbb, 0x2e, 0x40, 0xd0, + 0xeb, 0x20, 0x8d, 0xac, 0xbe, 0x36, 0x52, 0x05, 0xaa, 0x45, 0x4a, 0x55, 0xa7, 0xf0, 0x56, 0x48, + 0x7a, 0x0d, 0x8a, 0x9a, 0x79, 0xac, 0x52, 0x6d, 0x5b, 0x0a, 0x22, 0x08, 0x6b, 0x38, 0xc2, 0xeb, + 0xfe, 0xc5, 0xdd, 0x7a, 0xc3, 0x3c, 0x56, 0xe6, 0x35, 0xf3, 0xb8, 0x4d, 0xd4, 0xf0, 0x2d, 0x00, + 0x52, 0x81, 0xab, 0xe2, 0x99, 0x20, 0x2c, 0x4c, 0x56, 0x29, 0x69, 0xe6, 0x71, 0x97, 0x92, 0xc9, + 0xf7, 0xa1, 0x2c, 0x1e, 0x2c, 0x11, 0x55, 0xa6, 0x67, 0x7b, 0xdc, 0x74, 0xf1, 0x52, 0x78, 0x74, + 0x96, 0x3d, 0xe9, 0xe8, 0x6c, 0x0c, 0x0b, 0x89, 0xc3, 0xc2, 0xa9, 0x2c, 0x3f, 0x82, 0xea, 0x88, + 0xd2, 0xa9, 0x96, 0x2d, 0x78, 0xa3, 0xe9, 0x07, 0x8f, 0x1d, 0x4a, 0xa2, 0x54, 0x46, 0x42, 0x49, + 0xfe, 0x8f, 0x3c, 0xe4, 0xbb, 0x18, 0x3b, 0x54, 0x69, 0x88, 0xea, 0x91, 0x00, 0x97, 0x84, 0xc3, + 0x55, 0x25, 0x28, 0xa3, 0xf7, 0xa0, 0xa2, 0xd9, 0xf6, 0xe8, 0xd8, 0x3f, 0x67, 0xca, 0xc6, 0x8f, + 0x23, 0x1b, 0x04, 0xcb, 0x77, 0x86, 0xb2, 0x16, 0x16, 0xd0, 0x6b, 0x90, 0xef, 0x5b, 0xe6, 0x80, + 0x1f, 0x3a, 0xa3, 0xe8, 0x89, 0xfe, 0xa6, 0x65, 0x0e, 0x14, 0x8a, 0x47, 0xef, 0x43, 0x15, 0xef, + 0x0f, 0x6d, 0x75, 0x3c, 0x19, 0x79, 0xc6, 0x81, 0x65, 0xf3, 0x53, 0xde, 0xb3, 0x61, 0x85, 0xe6, + 0xfe, 0xd0, 0xde, 0xe5, 0x58, 0xa5, 0x82, 0x85, 0x12, 0x6a, 0x40, 0x9d, 0xb9, 0x09, 0x0e, 0x1e, + 0x8c, 0x70, 0xdf, 0xb3, 0x1c, 0x6a, 0x01, 0xa2, 0x4b, 0x97, 0x10, 0x28, 0x3e, 0x5e, 0xa9, 0x39, + 0x91, 0x32, 0x7a, 0xdd, 0xdf, 0x2e, 0x0a, 0x69, 0x57, 0x0f, 0x91, 0x3d, 0xe2, 0x0a, 0x14, 0x88, + 0xdb, 0xea, 0xb8, 0xdc, 0x3e, 0x08, 0xe7, 0x00, 0x3d, 0x0a, 0x57, 0x38, 0x9e, 0x84, 0x55, 0x9e, + 0xa3, 0x99, 0x2e, 0xdd, 0xaf, 0x8a, 0x71, 0xc6, 0x3d, 0x1f, 0xa5, 0x84, 0x54, 0x64, 0xa4, 0x59, + 0x57, 0xb8, 0x3f, 0x5a, 0x8a, 0x8f, 0x34, 0xed, 0xc7, 0x1e, 0x45, 0x2a, 0xcc, 0x39, 0x62, 0x05, + 0xb4, 0x05, 0xd2, 0xd0, 0xd1, 0xfa, 0x78, 0x30, 0x19, 0xa9, 0x0e, 0x76, 0x3d, 0xcd, 0xf1, 0xa8, + 0xd9, 0x88, 0xdc, 0x3e, 0x6c, 0x73, 0x0a, 0x85, 0x11, 0x28, 0xf5, 0x61, 0x14, 0x80, 0xd6, 0xa1, + 0xa4, 0x0d, 0x0c, 0xd5, 0xd5, 0x06, 0x86, 0xbb, 0x52, 0xa6, 0x7a, 0xba, 0x20, 0x4c, 0xf3, 0xc0, + 0xd8, 0xd3, 0x06, 0x86, 0x52, 0xd4, 0xd8, 0x0f, 0x17, 0x5d, 0x83, 0x92, 0xa6, 0xeb, 0x2a, 0xd3, + 0xeb, 0x4a, 0x7c, 0x92, 0xf9, 0x41, 0xb4, 0xab, 0x14, 0x35, 0xfe, 0x4b, 0xfe, 0x9f, 0x3c, 0x94, + 0x82, 0x6b, 0x98, 0x5f, 0x91, 0xd2, 0xbd, 0x11, 0x51, 0xba, 0xe5, 0x94, 0x6b, 0xa4, 0xff, 0x43, + 0x9a, 0xf7, 0x26, 0xe4, 0x0d, 0x73, 0x60, 0x71, 0xc5, 0x5b, 0x49, 0x11, 0x96, 0x69, 0x1f, 0xa5, + 0xfa, 0xad, 0xf2, 0x7d, 0x2d, 0xe5, 0xbb, 0x07, 0xf5, 0xd8, 0xfd, 0xdb, 0x54, 0xcb, 0xfa, 0x52, + 0xe4, 0x42, 0x92, 0x3f, 0x61, 0x08, 0xef, 0x3d, 0xff, 0x39, 0x03, 0x65, 0x41, 0xff, 0xd0, 0xbb, + 0x50, 0x32, 0x4c, 0x35, 0x72, 0xf2, 0x79, 0x52, 0x68, 0x5d, 0x34, 0x4c, 0x5e, 0xf1, 0x43, 0xa8, + 0xe2, 0x23, 0x32, 0xfa, 0x51, 0x35, 0x3f, 0xa9, 0x72, 0x85, 0x55, 0x08, 0x19, 0x18, 0x63, 0x91, + 0x41, 0xee, 0x74, 0x06, 0xac, 0x02, 0xbf, 0x22, 0xf8, 0x5d, 0x28, 0xb3, 0x5d, 0x66, 0xc7, 0x18, + 0x1b, 0x53, 0xc3, 0x3d, 0xf4, 0x32, 0x54, 0xc6, 0xda, 0x91, 0x1a, 0x5c, 0x71, 0x31, 0xff, 0xbb, + 0x3c, 0xd6, 0x8e, 0xba, 0x1c, 0x44, 0x62, 0x2e, 0x97, 0x5f, 0xdc, 0xab, 0xde, 0x81, 0x83, 0xdd, + 0x03, 0x6b, 0xa4, 0xab, 0x76, 0xdf, 0xe3, 0xc1, 0xd9, 0x92, 0x8f, 0xed, 0xf9, 0xc8, 0x6e, 0xdf, + 0x93, 0xff, 0xb2, 0x00, 0x45, 0x7f, 0x37, 0x40, 0xdf, 0x82, 0xaa, 0x36, 0xf1, 0x0e, 0x54, 0x5b, + 0x73, 0xdd, 0x2f, 0x2d, 0x47, 0xe7, 0xb3, 0x52, 0x21, 0xc0, 0x2e, 0x87, 0xa1, 0x4b, 0xf4, 0x72, + 0xac, 0xef, 0x18, 0xb6, 0x70, 0xd1, 0x2e, 0x82, 0xd0, 0x39, 0x28, 0x32, 0x17, 0x41, 0x73, 0xfd, + 0xc0, 0x90, 0x96, 0x1b, 0x2e, 0xf1, 0x1e, 0x02, 0x07, 0xc6, 0x0f, 0x31, 0xf2, 0x94, 0x43, 0xdd, + 0x87, 0x37, 0x78, 0xa8, 0xb1, 0x0c, 0xf3, 0x54, 0x07, 0x34, 0x97, 0xc7, 0x7f, 0x05, 0x52, 0x6c, + 0xb8, 0x31, 0xe5, 0x28, 0xc4, 0x94, 0x83, 0x38, 0x67, 0x14, 0x4d, 0x03, 0xab, 0x79, 0x5a, 0xb3, + 0x48, 0x00, 0x34, 0xfa, 0x6b, 0xc3, 0x82, 0x83, 0xc7, 0xd6, 0x21, 0x56, 0x6d, 0xc7, 0x38, 0xd4, + 0x3c, 0xe2, 0xe0, 0xd1, 0xf5, 0x59, 0xbb, 0x29, 0x27, 0xb7, 0xc7, 0x75, 0x85, 0xd2, 0x76, 0x19, + 0x69, 0xc3, 0x55, 0xea, 0x4e, 0x14, 0x40, 0x7c, 0x2b, 0xb6, 0x68, 0x07, 0x23, 0xcd, 0x56, 0x75, + 0x6d, 0x6c, 0x1b, 0xe6, 0x90, 0x2e, 0xdd, 0xa2, 0x22, 0x51, 0xcc, 0xdd, 0x91, 0x66, 0x6f, 0x31, + 0x38, 0x7a, 0x15, 0x6a, 0x2e, 0x36, 0x75, 0x95, 0xbf, 0x4a, 0xf0, 0x8e, 0xb9, 0x6b, 0x59, 0x25, + 0xd0, 0x4d, 0x1f, 0x48, 0xdc, 0x20, 0xd2, 0x8e, 0x87, 0xd5, 0xbe, 0x66, 0xf3, 0xa5, 0x38, 0xc5, + 0x0d, 0x62, 0x74, 0x9b, 0x9a, 0x4d, 0x2c, 0x0e, 0x1b, 0x74, 0x52, 0xa7, 0x72, 0x42, 0x1d, 0x36, + 0x37, 0xa4, 0x4a, 0x0d, 0xb2, 0x86, 0x4e, 0x5d, 0xd1, 0x92, 0x92, 0x35, 0x74, 0x74, 0x0b, 0xaa, + 0x4c, 0xc1, 0xd4, 0x11, 0x51, 0x46, 0x77, 0xa5, 0x46, 0xd9, 0x08, 0x26, 0x48, 0x50, 0x55, 0xa5, + 0x62, 0x87, 0x05, 0x97, 0xa8, 0x0e, 0x9f, 0x73, 0x3e, 0xab, 0xcc, 0x37, 0xad, 0xb0, 0x89, 0xe7, + 0x53, 0x7a, 0x15, 0x50, 0xe8, 0xbe, 0x06, 0x2f, 0x94, 0x24, 0x4a, 0xb9, 0x10, 0x78, 0xb1, 0x3e, + 0x82, 0x44, 0x1f, 0x87, 0xce, 0x80, 0x7a, 0xaa, 0x25, 0x7a, 0xc1, 0x84, 0x2e, 0x41, 0x45, 0x1b, + 0x8d, 0xac, 0x2f, 0x55, 0xa2, 0xe4, 0x9a, 0xeb, 0xbb, 0xa7, 0x14, 0xd6, 0xf9, 0xd2, 0x6c, 0xb8, + 0xe8, 0x35, 0xa8, 0x3b, 0xec, 0x20, 0x4e, 0xf5, 0xb5, 0x67, 0x91, 0xbd, 0x4a, 0xe0, 0xe0, 0x2e, + 0x55, 0x22, 0xf9, 0x06, 0xd4, 0x63, 0x93, 0x4b, 0xe2, 0x64, 0x1e, 0x4d, 0xf1, 0xe0, 0x38, 0x83, + 0xca, 0x30, 0xaf, 0x34, 0xbb, 0x3b, 0x8d, 0xcd, 0xa6, 0x94, 0x95, 0xff, 0x2a, 0x07, 0xd5, 0xc8, + 0x1e, 0xf6, 0x6b, 0x58, 0x2f, 0x53, 0x17, 0xc1, 0x6b, 0x50, 0x0f, 0x17, 0x81, 0x4a, 0x4f, 0x33, + 0xd8, 0x4a, 0xa8, 0x06, 0x2b, 0xa1, 0xad, 0x8d, 0xf1, 0xc9, 0xab, 0x61, 0x6f, 0xfa, 0x6a, 0xb8, + 0x3c, 0x65, 0xdf, 0xfe, 0x66, 0x96, 0xc4, 0xb3, 0x4c, 0xd7, 0x7f, 0xe5, 0xa0, 0x16, 0xdd, 0xc5, + 0x7f, 0xe3, 0xe7, 0xab, 0x37, 0x7d, 0xbe, 0xae, 0x4c, 0x73, 0x5d, 0xbe, 0x21, 0x1b, 0x76, 0x11, + 0xca, 0x9e, 0xe5, 0x69, 0x23, 0xee, 0x1f, 0x94, 0xd9, 0x42, 0xa5, 0x20, 0xea, 0x0d, 0x10, 0x3e, + 0x9c, 0xc0, 0xdf, 0xd3, 0x2a, 0x8c, 0x0f, 0xa3, 0xf1, 0x9f, 0x67, 0x3c, 0xc3, 0xc4, 0xdf, 0x87, + 0x8a, 0xe8, 0x34, 0xa2, 0x15, 0x98, 0x67, 0x87, 0x8f, 0x3a, 0x7f, 0x59, 0xe4, 0x17, 0xe9, 0xae, + 0xca, 0xa9, 0x54, 0xcf, 0x1b, 0x05, 0xbb, 0x2a, 0x87, 0xf5, 0xbc, 0x91, 0xfc, 0xc3, 0x0c, 0xd4, + 0xa2, 0x3e, 0x24, 0xd9, 0x68, 0x63, 0x6e, 0xa7, 0xda, 0x1f, 0x19, 0xfe, 0xa9, 0x7e, 0x51, 0x59, + 0x8a, 0xfa, 0x98, 0x9b, 0x14, 0x87, 0xde, 0x87, 0xd5, 0x64, 0xad, 0x89, 0xeb, 0x61, 0x27, 0x7c, + 0xe5, 0xb1, 0x1c, 0xaf, 0x49, 0xf1, 0x2d, 0x5d, 0xfe, 0x8b, 0x79, 0xe6, 0xb7, 0xff, 0xba, 0xd4, + 0x78, 0x1d, 0x8a, 0x63, 0xec, 0xba, 0xda, 0x10, 0xbb, 0xdc, 0x23, 0x17, 0x5c, 0xbb, 0x5d, 0x8e, + 0x51, 0x02, 0x9a, 0xd4, 0x6d, 0x7d, 0xee, 0xd4, 0x6d, 0xbd, 0x70, 0xc2, 0xb6, 0x3e, 0x7f, 0xe2, + 0xb6, 0x5e, 0x8c, 0x2d, 0x8c, 0x2b, 0x50, 0xf8, 0x62, 0x82, 0x27, 0xd8, 0xe5, 0x5e, 0xb3, 0xe0, + 0x98, 0x7f, 0x4c, 0xe1, 0x0a, 0xc7, 0xa3, 0xb5, 0xb4, 0x25, 0xc4, 0x34, 0x78, 0xc6, 0x85, 0x51, + 0x9e, 0x79, 0x61, 0x54, 0xd2, 0x16, 0x46, 0x13, 0xaa, 0x2e, 0x76, 0x5d, 0xc3, 0x32, 0xd9, 0xdd, + 0x39, 0xdd, 0x7f, 0x6b, 0x37, 0x2f, 0xa5, 0xc4, 0xbc, 0xeb, 0x7b, 0x8c, 0x90, 0x85, 0x20, 0x15, + 0x57, 0x28, 0xa1, 0x77, 0xe0, 0xac, 0x3b, 0xb1, 0x89, 0x23, 0x89, 0x75, 0xb2, 0xe5, 0x6b, 0xfb, + 0xc6, 0xc8, 0xf0, 0x48, 0x24, 0x57, 0xa3, 0xe7, 0xf4, 0x67, 0x02, 0xec, 0xa6, 0x80, 0x44, 0x1f, + 0x42, 0x59, 0xd3, 0xc7, 0x86, 0xdf, 0x76, 0x3d, 0x7e, 0x3c, 0x1b, 0xb6, 0xdd, 0x20, 0x64, 0xac, + 0x65, 0xd0, 0x82, 0xdf, 0x24, 0x66, 0x74, 0x70, 0x1f, 0x1b, 0x87, 0x98, 0x1d, 0x32, 0x55, 0x95, + 0xa0, 0x4c, 0x70, 0xc1, 0xa3, 0x9d, 0x05, 0x86, 0xf3, 0xcb, 0xe8, 0x02, 0x80, 0x16, 0x3e, 0x21, + 0xf6, 0xf7, 0xed, 0x00, 0x82, 0x16, 0x61, 0xce, 0x9a, 0x78, 0xea, 0x17, 0xfc, 0x2c, 0x29, 0x6f, + 0x4d, 0xbc, 0x8f, 0xd1, 0x12, 0xcc, 0x0d, 0x46, 0x96, 0xed, 0xd2, 0xd3, 0xa3, 0xaa, 0xc2, 0x0a, + 0xb2, 0x09, 0x15, 0x71, 0x60, 0xc8, 0xe2, 0x7f, 0xd0, 0xbe, 0xdf, 0xee, 0x7c, 0xd2, 0x66, 0xc7, + 0xde, 0xad, 0xad, 0x9d, 0x26, 0xb3, 0x09, 0x9b, 0x9d, 0x76, 0xbb, 0xb9, 0xd9, 0x93, 0xb2, 0x08, + 0xa0, 0xd0, 0xd8, 0xec, 0xb5, 0x1e, 0x36, 0xa5, 0x1c, 0xaa, 0x40, 0xb1, 0xd3, 0x6d, 0xb6, 0xf7, + 0x9a, 0xed, 0x9e, 0x94, 0x47, 0x75, 0x28, 0x93, 0xd2, 0x66, 0xa7, 0x7d, 0xb7, 0xa5, 0xec, 0x4a, + 0x73, 0x04, 0xd0, 0xdc, 0xeb, 0x35, 0xee, 0xec, 0xb4, 0xf6, 0xee, 0x35, 0xb7, 0xa4, 0x82, 0xbc, + 0x06, 0x10, 0x0e, 0x06, 0x2a, 0x40, 0xf6, 0x41, 0x97, 0x35, 0xb4, 0x45, 0x9a, 0xcc, 0x10, 0xde, + 0xdd, 0xbb, 0x8f, 0x54, 0xd2, 0x8e, 0xfc, 0x03, 0x28, 0xfa, 0xcb, 0x03, 0x5d, 0x15, 0x86, 0x8a, + 0x05, 0x25, 0x0b, 0x89, 0x45, 0x24, 0x8c, 0xde, 0xab, 0x90, 0x77, 0xfd, 0x97, 0xa6, 0xa9, 0xa4, + 0x14, 0x2d, 0xff, 0x63, 0x06, 0xe6, 0x39, 0x04, 0xc9, 0x50, 0x31, 0x2d, 0xcf, 0x18, 0xf8, 0x8f, + 0x5e, 0x33, 0xf4, 0xce, 0x22, 0x02, 0x23, 0x11, 0xc5, 0x84, 0xbe, 0xbd, 0xa0, 0x8c, 0xf3, 0x0a, + 0x2f, 0x21, 0x04, 0x79, 0xcb, 0xc6, 0x26, 0xbf, 0xe7, 0xa0, 0xbf, 0xd1, 0x8b, 0x50, 0xfa, 0x1c, + 0x63, 0x5b, 0x1b, 0x19, 0x87, 0x98, 0xbf, 0xdb, 0x0a, 0x01, 0xc4, 0x8e, 0x3a, 0x78, 0x40, 0x62, + 0x07, 0xff, 0xc5, 0x16, 0x2f, 0x92, 0x7a, 0xba, 0xe1, 0xf6, 0x35, 0x47, 0x0f, 0x9e, 0x6b, 0x85, + 0x00, 0x32, 0x8b, 0xd4, 0xa6, 0xd3, 0x35, 0x9d, 0x57, 0x58, 0x41, 0xde, 0x80, 0x02, 0x5b, 0x9a, + 0x04, 0x6f, 0x98, 0xf6, 0xc4, 0xe3, 0x21, 0x0f, 0x2b, 0x10, 0xb9, 0xad, 0x89, 0x47, 0xc0, 0xfc, + 0x25, 0x1a, 0x2b, 0xc9, 0x18, 0x0a, 0x2c, 0xd6, 0x46, 0xeb, 0x50, 0xe8, 0x5b, 0xe6, 0xc0, 0x18, + 0xf2, 0xd1, 0x3d, 0x1b, 0x8f, 0xc6, 0x37, 0x29, 0x56, 0xe1, 0x54, 0xe8, 0x0d, 0xff, 0x94, 0x29, + 0x71, 0x96, 0xc1, 0xc8, 0xc5, 0x73, 0x26, 0x32, 0xcc, 0x15, 0x91, 0x0b, 0x31, 0xba, 0x7d, 0xcb, + 0x34, 0x71, 0xdf, 0x53, 0x1d, 0xec, 0x39, 0xc7, 0xfe, 0x60, 0x73, 0xa0, 0x42, 0x60, 0xc4, 0x48, + 0xd1, 0xa8, 0x8b, 0xde, 0xb4, 0xb2, 0xf1, 0x2e, 0x12, 0x00, 0xe1, 0x44, 0xbc, 0xdf, 0x60, 0x30, + 0xd5, 0xd8, 0x3d, 0xd3, 0x42, 0x80, 0x69, 0x71, 0x04, 0xda, 0x82, 0x0b, 0x63, 0xc3, 0x34, 0xc6, + 0x93, 0xb1, 0x1a, 0xac, 0x13, 0x12, 0x40, 0x86, 0x55, 0xd9, 0x0c, 0xbd, 0xc8, 0xa9, 0x1a, 0x22, + 0x91, 0xcf, 0x45, 0xfe, 0x59, 0x16, 0xca, 0x42, 0xf7, 0x7e, 0x43, 0xbb, 0x41, 0x8f, 0xf6, 0xf1, + 0xd0, 0xf2, 0x0c, 0x8d, 0xd8, 0xbb, 0x50, 0x38, 0xa6, 0x88, 0x28, 0xc4, 0xdd, 0xf3, 0xc5, 0xa4, + 0x7a, 0x4f, 0x69, 0x0a, 0xbe, 0xde, 0x93, 0x12, 0x31, 0x52, 0x24, 0x08, 0xa6, 0x18, 0xa6, 0x90, + 0x41, 0x59, 0xfe, 0xef, 0x0c, 0x94, 0x82, 0xb3, 0x99, 0x64, 0x48, 0x93, 0x49, 0x09, 0x69, 0x5e, + 0x02, 0x60, 0x44, 0xc2, 0xb5, 0x18, 0x0b, 0xc4, 0xba, 0x9c, 0xc7, 0xd8, 0x9b, 0xa8, 0x64, 0x31, + 0x58, 0x87, 0xd8, 0x39, 0xe6, 0x77, 0xbe, 0x95, 0xb1, 0x37, 0xd9, 0xf2, 0x61, 0xc4, 0x0d, 0x21, + 0x5b, 0x39, 0x19, 0xcf, 0xb1, 0xa5, 0xfb, 0x77, 0xa4, 0x65, 0x0e, 0xdb, 0xb5, 0x74, 0x4c, 0x36, + 0x17, 0x1e, 0x12, 0x46, 0xb7, 0xd7, 0x2a, 0x83, 0xfa, 0xd2, 0x5c, 0x84, 0x32, 0x27, 0xa3, 0xe2, + 0xb0, 0x0d, 0x96, 0x07, 0x93, 0x54, 0x9e, 0x65, 0x98, 0xf7, 0xfa, 0xb6, 0x3a, 0x76, 0x5d, 0xee, + 0x5c, 0x16, 0xbc, 0xbe, 0xbd, 0xeb, 0xba, 0xf2, 0x6d, 0x28, 0x0b, 0xe7, 0x4b, 0x68, 0x1d, 0x16, + 0xc5, 0xc3, 0xa8, 0xa8, 0x83, 0xb3, 0x20, 0x1c, 0x3e, 0x31, 0xef, 0x46, 0xfe, 0x79, 0x0e, 0xea, + 0xb1, 0x13, 0xa6, 0x93, 0xfd, 0x2e, 0x7e, 0x4e, 0x15, 0xaa, 0x58, 0x55, 0x29, 0x73, 0x18, 0x9d, + 0xbe, 0x8b, 0x50, 0x3e, 0xc0, 0x23, 0x1b, 0x3b, 0xaa, 0x65, 0x8e, 0xfc, 0x61, 0x03, 0x06, 0xea, + 0x98, 0xa3, 0x63, 0x32, 0xb2, 0x3a, 0x1e, 0x60, 0xc7, 0xd1, 0x46, 0x8c, 0x49, 0x9e, 0x32, 0xa9, + 0xf8, 0x40, 0xca, 0xe5, 0x06, 0x2c, 0x89, 0xc6, 0x50, 0xf5, 0xe5, 0x61, 0x57, 0x54, 0x8b, 0x22, + 0xae, 0xc9, 0x65, 0x7b, 0x03, 0x16, 0x46, 0x96, 0x39, 0x24, 0x3a, 0xac, 0x07, 0xf4, 0x05, 0xb6, + 0xe7, 0x07, 0x08, 0x9f, 0x78, 0x0d, 0x16, 0xe8, 0x15, 0x8e, 0x4a, 0x47, 0xc4, 0x55, 0x03, 0xad, + 0xaa, 0x2a, 0x75, 0x8a, 0xa0, 0x63, 0xea, 0x52, 0x59, 0xd6, 0x60, 0x81, 0x3a, 0x30, 0x91, 0x9e, + 0x33, 0x47, 0x86, 0x86, 0x06, 0x8a, 0xd0, 0xfb, 0xcb, 0x3c, 0x5a, 0xe0, 0xb4, 0xa1, 0x3f, 0x5e, + 0x13, 0x28, 0x89, 0xd3, 0x11, 0xdc, 0xc6, 0x08, 0x94, 0x40, 0x29, 0xd9, 0x6d, 0x8c, 0x40, 0x8a, + 0x20, 0x4f, 0xb5, 0x8b, 0xdd, 0x57, 0xd1, 0xdf, 0xf2, 0x5b, 0xb0, 0xbc, 0x6b, 0xc7, 0xe6, 0x8d, + 0xdb, 0xbb, 0xa9, 0xb3, 0x27, 0xff, 0x43, 0x06, 0xce, 0x26, 0x6a, 0x31, 0xeb, 0x32, 0x7d, 0xca, + 0x45, 0xbf, 0x81, 0xbd, 0xff, 0x09, 0x77, 0xbe, 0xa8, 0x6f, 0xc0, 0xa7, 0x5a, 0xf0, 0x0d, 0xae, + 0xc2, 0x22, 0x71, 0xac, 0xac, 0x81, 0xea, 0x18, 0xfb, 0x6a, 0xc0, 0x26, 0xef, 0x7f, 0x87, 0xa4, + 0x77, 0x06, 0x8a, 0xb1, 0xaf, 0x84, 0x1b, 0x69, 0x5d, 0x20, 0xa7, 0x7b, 0x2a, 0x9b, 0xef, 0x8a, + 0x4f, 0xba, 0x47, 0x54, 0xf6, 0x27, 0x19, 0x58, 0x48, 0x74, 0x03, 0x7d, 0x3b, 0xb6, 0xa9, 0xbc, + 0x2c, 0xec, 0xc3, 0xe9, 0x23, 0x15, 0xec, 0x2f, 0x1b, 0xd1, 0xfd, 0xe5, 0xd2, 0x09, 0x35, 0x23, + 0x5b, 0x4d, 0x03, 0xaa, 0xfc, 0x74, 0x95, 0x0f, 0xfd, 0xb4, 0x43, 0x40, 0x61, 0x74, 0xb3, 0xd1, + 0x29, 0xf9, 0xfd, 0x0c, 0x54, 0x38, 0x0f, 0x36, 0x11, 0x4f, 0xcd, 0x22, 0x1e, 0xb0, 0xe5, 0x66, + 0x08, 0xd8, 0xf2, 0x69, 0x01, 0xdb, 0x1f, 0xe5, 0xe0, 0x3c, 0xb7, 0x24, 0x23, 0xf6, 0xf0, 0x8a, + 0xdd, 0x75, 0xf9, 0xfb, 0xe8, 0x9b, 0x80, 0xb4, 0xd1, 0x97, 0xda, 0xb1, 0x4b, 0x1c, 0x65, 0x5b, + 0x73, 0xb0, 0x3a, 0x0e, 0xb4, 0x45, 0x62, 0x98, 0x4d, 0x86, 0xd8, 0xc5, 0x3a, 0xba, 0x01, 0x67, + 0x8c, 0xa1, 0x69, 0x39, 0xc4, 0x4d, 0xa7, 0x92, 0xf9, 0x77, 0xf0, 0xfc, 0x5d, 0x2e, 0x43, 0x36, + 0x5c, 0x22, 0x22, 0xbb, 0x77, 0x27, 0x81, 0x96, 0x7f, 0x8b, 0x1a, 0x34, 0x41, 0x97, 0x27, 0x0d, + 0xb4, 0x98, 0x76, 0x2d, 0xfb, 0x14, 0xbc, 0x29, 0x2a, 0xb0, 0xd3, 0xd2, 0xd1, 0x2d, 0x38, 0x17, + 0x28, 0x9e, 0x6a, 0x98, 0x5a, 0xdf, 0x23, 0x56, 0x99, 0xad, 0x6e, 0xae, 0x70, 0xcb, 0x01, 0x41, + 0x8b, 0xe3, 0xd9, 0x22, 0x27, 0x23, 0xc8, 0x06, 0x53, 0xd5, 0x8c, 0xa1, 0xed, 0x5f, 0x83, 0xf3, + 0xcf, 0xe4, 0x8c, 0xa1, 0x8d, 0x6e, 0xc1, 0x2a, 0xef, 0x8c, 0x89, 0x8f, 0x3c, 0x95, 0xde, 0xc6, + 0x0e, 0x6d, 0x75, 0x8c, 0x3d, 0xc7, 0xe8, 0x73, 0x1b, 0x73, 0x96, 0x51, 0xb4, 0xf1, 0x91, 0x77, + 0xcf, 0xb2, 0x5b, 0x43, 0x7b, 0x97, 0x62, 0xd1, 0x6d, 0x38, 0xaf, 0xb3, 0xe7, 0x27, 0xea, 0x3e, + 0x76, 0x3d, 0x36, 0x16, 0xae, 0x3f, 0xc4, 0xd4, 0xe6, 0x14, 0x95, 0x15, 0x4e, 0x72, 0x07, 0xb3, + 0x0f, 0x1a, 0x82, 0x29, 0x90, 0xff, 0x30, 0x07, 0xab, 0xa9, 0xb3, 0xc2, 0xd4, 0xe5, 0xb7, 0x93, + 0xf2, 0x8d, 0x4c, 0x4a, 0x06, 0xce, 0xa4, 0x4e, 0x0a, 0xba, 0x1d, 0xb3, 0x42, 0xaf, 0x26, 0x6e, + 0x81, 0xd2, 0xd6, 0x56, 0x60, 0x89, 0x6e, 0x45, 0x2d, 0xd1, 0x2b, 0xa7, 0xd4, 0x8e, 0x58, 0xa3, + 0x9b, 0x70, 0xf6, 0x81, 0x8b, 0xe9, 0xe1, 0x89, 0x3d, 0xa2, 0x5f, 0x18, 0xb9, 0xa7, 0xee, 0x08, + 0x37, 0xe0, 0x4c, 0xbc, 0xce, 0x29, 0xfb, 0x81, 0xfc, 0x19, 0x40, 0x73, 0x7f, 0x68, 0x73, 0xd6, + 0x6b, 0xb0, 0xc0, 0xce, 0x75, 0xc7, 0x9c, 0x07, 0x89, 0xca, 0x59, 0x8d, 0x3a, 0x45, 0xf8, 0xbc, + 0x1b, 0xf4, 0xa4, 0x79, 0xac, 0x1d, 0x51, 0x87, 0xd2, 0xbf, 0xd0, 0xa7, 0x1b, 0x3f, 0x07, 0xb2, + 0xbb, 0xa6, 0xef, 0x43, 0x89, 0xb0, 0x67, 0x52, 0x3c, 0x77, 0xee, 0x2a, 0xe4, 0x09, 0x77, 0xf4, + 0x66, 0x6c, 0x9a, 0x96, 0xa2, 0xd7, 0x96, 0xb1, 0x59, 0x79, 0x3d, 0x3a, 0x2b, 0x8b, 0x51, 0xe2, + 0xc8, 0x24, 0xdc, 0x00, 0x68, 0x85, 0xa3, 0x93, 0x90, 0x29, 0x93, 0x22, 0xd3, 0x75, 0x28, 0xb5, + 0x82, 0x1e, 0xcf, 0x54, 0x43, 0x85, 0x7c, 0xeb, 0x94, 0x5e, 0xb4, 0x9e, 0xa6, 0x17, 0xad, 0x78, + 0x2f, 0x7e, 0x99, 0x01, 0x29, 0xae, 0x17, 0xe8, 0xbd, 0x58, 0x6b, 0xc2, 0x36, 0x99, 0xae, 0x77, + 0x41, 0xcb, 0xef, 0x44, 0x5b, 0xbe, 0x38, 0xbd, 0x62, 0xe4, 0xc5, 0x80, 0x0c, 0x79, 0xbc, 0x3f, + 0xb4, 0x93, 0x5f, 0xde, 0x91, 0x51, 0x57, 0x28, 0x8e, 0xd0, 0x18, 0x84, 0x26, 0xf1, 0x75, 0x5b, + 0x8b, 0xd2, 0x10, 0x9c, 0x7c, 0x87, 0xef, 0x6b, 0x3d, 0xcd, 0x19, 0x62, 0x6f, 0x17, 0x8f, 0xf7, + 0xb1, 0xe3, 0x1e, 0x18, 0xc2, 0x24, 0x45, 0xfd, 0xd1, 0x4c, 0xd2, 0x1f, 0x95, 0x1b, 0xdc, 0x0a, + 0xc7, 0x79, 0x04, 0xb3, 0x76, 0x3a, 0x8b, 0xc0, 0x68, 0xc4, 0x79, 0x9c, 0x6a, 0x34, 0xd2, 0x05, + 0x9f, 0xd5, 0x68, 0xa4, 0x8a, 0xec, 0xcf, 0xf4, 0x67, 0x70, 0x61, 0xc7, 0x32, 0x87, 0x3b, 0xc4, + 0xff, 0x7a, 0x4a, 0x77, 0x72, 0x86, 0x60, 0x40, 0xfe, 0xb7, 0x0c, 0xbc, 0x34, 0x8d, 0xff, 0xaf, + 0xd2, 0xf1, 0x4c, 0x75, 0xd9, 0xf3, 0xe9, 0x2e, 0xfb, 0xfb, 0xb0, 0x9a, 0xa0, 0x75, 0x54, 0x7c, + 0x64, 0x1b, 0x4e, 0x10, 0x70, 0x2c, 0xc7, 0x2a, 0x39, 0x4d, 0x86, 0x96, 0xff, 0x38, 0x03, 0x2b, + 0xd3, 0x3a, 0x88, 0x3e, 0x8a, 0xcd, 0xab, 0x70, 0xd4, 0x7f, 0xf2, 0xa0, 0x07, 0x53, 0x7b, 0x3b, + 0x3a, 0xb5, 0x97, 0x4f, 0x67, 0x10, 0x99, 0xdd, 0x9f, 0xce, 0xc1, 0x3c, 0xf7, 0x2e, 0xd1, 0x7d, + 0x58, 0x1c, 0xdb, 0x6a, 0xe2, 0xb9, 0x01, 0x93, 0xec, 0xfc, 0x09, 0x2e, 0xaf, 0xb2, 0x30, 0x4e, + 0x38, 0xdb, 0xd7, 0x82, 0x9e, 0x65, 0xe3, 0x8f, 0x45, 0x22, 0x1e, 0x71, 0xd0, 0x91, 0xf8, 0xab, + 0x94, 0xdc, 0xcc, 0xaf, 0x52, 0x3e, 0x81, 0x65, 0x3f, 0xa0, 0xe5, 0x9b, 0x1f, 0x7f, 0xb4, 0xe5, + 0x1f, 0x70, 0x5f, 0x3c, 0x65, 0x93, 0x54, 0xce, 0x38, 0xa9, 0x5b, 0xf5, 0x3d, 0x40, 0x13, 0x17, + 0x87, 0x5b, 0x0b, 0xb3, 0xb7, 0x73, 0xf1, 0x67, 0x00, 0x71, 0x13, 0xa5, 0x48, 0x93, 0xb8, 0x65, + 0x4c, 0x5c, 0xbf, 0x16, 0xe2, 0xbd, 0x9b, 0x7e, 0xfd, 0x1a, 0x74, 0xcf, 0xa3, 0xcb, 0x54, 0x1d, + 0x07, 0xeb, 0x94, 0x3f, 0x55, 0xb9, 0x78, 0xca, 0x72, 0xe6, 0xdd, 0x4b, 0x18, 0x15, 0x0d, 0xce, + 0x93, 0xa8, 0x57, 0x65, 0xf1, 0x70, 0x62, 0xde, 0xd9, 0xd3, 0x16, 0xf9, 0x74, 0x85, 0x52, 0x56, + 0x46, 0xd3, 0xf4, 0x3b, 0xf2, 0x90, 0xa4, 0x34, 0xc3, 0x43, 0x92, 0x66, 0xf0, 0x91, 0xb6, 0xe0, + 0x9a, 0xf0, 0x45, 0xed, 0x2f, 0x7f, 0x5e, 0x44, 0xe7, 0xa0, 0x48, 0x4f, 0xe5, 0xc7, 0xda, 0x11, + 0xb7, 0x2c, 0xf3, 0xa4, 0xbc, 0xab, 0x1d, 0xc9, 0x5b, 0xf4, 0xed, 0x76, 0xd4, 0x5b, 0x79, 0x7a, + 0x2e, 0x9f, 0x43, 0xd1, 0xe7, 0x82, 0xae, 0xc7, 0x56, 0xea, 0x4a, 0xb2, 0x1b, 0x31, 0x85, 0xbe, + 0x1a, 0x5d, 0x99, 0xcb, 0xc9, 0x0a, 0x91, 0x95, 0x38, 0x81, 0x02, 0x7f, 0x93, 0x78, 0x1e, 0x4a, + 0x86, 0xad, 0x46, 0x1e, 0xcf, 0x14, 0x0d, 0xff, 0xc1, 0xe2, 0x6b, 0x50, 0x1f, 0x6b, 0xee, 0xe7, + 0xdc, 0x2d, 0x57, 0xc7, 0xfc, 0xd3, 0xfc, 0xaa, 0x52, 0x25, 0x60, 0xe6, 0x92, 0xef, 0x1a, 0x66, + 0x82, 0x4e, 0x3b, 0xe2, 0x71, 0x9f, 0x48, 0xa7, 0x1d, 0xc9, 0x3f, 0xcd, 0x00, 0x84, 0x5f, 0x7c, + 0x7d, 0xcd, 0x2f, 0xd6, 0x08, 0x6c, 0x64, 0xb8, 0x1e, 0x7d, 0xaa, 0x5d, 0x52, 0xe8, 0x6f, 0xfa, + 0x81, 0x5f, 0xf4, 0xf3, 0x6d, 0x29, 0xae, 0xf6, 0xc2, 0x37, 0xdb, 0xdb, 0x50, 0xdc, 0xd5, 0xbc, + 0xfe, 0x01, 0x11, 0xe6, 0x72, 0x44, 0x18, 0xc1, 0x1d, 0xa1, 0x14, 0xa7, 0x7c, 0x3c, 0xf7, 0x10, + 0x2a, 0x91, 0x30, 0x65, 0x3d, 0xc2, 0x4c, 0x58, 0xbe, 0x22, 0x95, 0xc0, 0xf3, 0x2c, 0x14, 0x84, + 0xd0, 0xa7, 0xaa, 0xf0, 0x92, 0xfc, 0x8b, 0x39, 0x80, 0x4d, 0xcb, 0xd4, 0x0d, 0x66, 0x23, 0x6e, + 0x00, 0xf0, 0x95, 0x1d, 0x7e, 0x4c, 0x87, 0x62, 0x92, 0xee, 0x61, 0x4f, 0x29, 0x31, 0x2a, 0xd2, + 0xad, 0x77, 0xa0, 0x12, 0xdc, 0xa8, 0x91, 0x4a, 0xd9, 0xa9, 0x95, 0x82, 0x17, 0xc1, 0xa4, 0xda, + 0x77, 0xa0, 0x16, 0x8b, 0xc9, 0x72, 0xf1, 0xb3, 0x71, 0xb1, 0x2b, 0x4a, 0x45, 0x13, 0xbb, 0x7f, + 0x13, 0xca, 0x7e, 0x6d, 0xd2, 0x66, 0x7e, 0xba, 0xa0, 0xac, 0x1a, 0x69, 0xf1, 0xdd, 0x20, 0xf3, + 0x86, 0x77, 0x4c, 0x6b, 0xcd, 0x4d, 0xad, 0x55, 0x09, 0x08, 0x49, 0xc5, 0x0f, 0x60, 0x81, 0x04, + 0x5c, 0xd1, 0xca, 0x85, 0xa9, 0x95, 0xeb, 0xf8, 0xc8, 0xdb, 0x14, 0xeb, 0x5f, 0x84, 0xb2, 0x63, + 0x7f, 0x6e, 0x10, 0x53, 0x34, 0x19, 0x79, 0xd4, 0xcc, 0xcd, 0x29, 0xe0, 0xb0, 0x2f, 0x8b, 0x26, + 0x23, 0x0f, 0xdd, 0x06, 0x08, 0xbf, 0x5f, 0xe1, 0xd7, 0xe4, 0xc2, 0x55, 0x57, 0x38, 0x3f, 0xdc, + 0x22, 0x92, 0x69, 0x2d, 0x05, 0x9f, 0xb7, 0xa0, 0x3b, 0xb0, 0x38, 0x22, 0xd6, 0x30, 0x26, 0x61, + 0x69, 0xaa, 0x84, 0x0b, 0x94, 0x3c, 0x22, 0xe3, 0x65, 0x90, 0xc2, 0xa8, 0xd2, 0x54, 0xa9, 0xda, + 0x03, 0x55, 0xfb, 0xaa, 0xc9, 0x83, 0x49, 0x73, 0x87, 0xe8, 0xff, 0x75, 0x28, 0xfb, 0x8f, 0xef, + 0x54, 0xc3, 0xa4, 0x6f, 0x7e, 0x6a, 0xe2, 0x12, 0xb8, 0x4b, 0x8f, 0x6f, 0x94, 0x12, 0x7f, 0x7d, + 0xd7, 0x32, 0xe5, 0x03, 0x28, 0x05, 0x62, 0xa3, 0x45, 0xa8, 0x2b, 0x9d, 0x07, 0xbd, 0xa6, 0xda, + 0xfb, 0xb4, 0x1b, 0x7c, 0x67, 0xb0, 0x0c, 0x8b, 0x02, 0xb0, 0xd5, 0xee, 0x35, 0x95, 0x76, 0x63, + 0x47, 0xca, 0xc4, 0x10, 0xcd, 0x47, 0x1c, 0x91, 0x45, 0x4b, 0x20, 0x09, 0x08, 0xfe, 0xa9, 0x88, + 0x3c, 0x80, 0x7a, 0xd0, 0xa9, 0x06, 0xcb, 0x1f, 0x73, 0x23, 0xb2, 0x4e, 0x5e, 0x12, 0x07, 0x35, + 0x42, 0x28, 0x2c, 0x95, 0x4b, 0x50, 0xf6, 0x07, 0xd2, 0x08, 0xbe, 0x26, 0x12, 0x41, 0x72, 0x1b, + 0x4a, 0xbb, 0x58, 0xe7, 0x2d, 0xbc, 0x11, 0x69, 0x61, 0x59, 0xbc, 0x0d, 0xd3, 0x13, 0xbc, 0x97, + 0x60, 0xee, 0x50, 0x1b, 0x4d, 0xd8, 0xda, 0xce, 0x29, 0xac, 0x20, 0xab, 0x50, 0x6f, 0xb8, 0x5d, + 0x07, 0xdb, 0xd8, 0xf4, 0xb9, 0x4a, 0x90, 0xd3, 0x5c, 0x93, 0xfb, 0xd5, 0xe4, 0x27, 0x59, 0xc1, + 0x84, 0x42, 0x0b, 0xae, 0x99, 0x58, 0x09, 0xc9, 0x50, 0x25, 0xdb, 0xfa, 0x08, 0x0f, 0x3c, 0x75, + 0x6c, 0xb9, 0xfe, 0xc7, 0x5a, 0xe5, 0x89, 0x8b, 0x77, 0xf0, 0xc0, 0xdb, 0xb5, 0x5c, 0x4f, 0xbe, + 0x0d, 0x55, 0xfe, 0x78, 0x9e, 0xb3, 0x3f, 0xf1, 0xbb, 0x19, 0x17, 0x8f, 0x06, 0xdc, 0x03, 0xa5, + 0xbf, 0xe5, 0xcb, 0x50, 0xdf, 0xa1, 0x17, 0x05, 0x0e, 0x1e, 0x70, 0x06, 0x41, 0x47, 0xf8, 0x55, + 0x18, 0xeb, 0xc8, 0xbf, 0xe4, 0x60, 0x9e, 0x11, 0xb8, 0xe1, 0x2b, 0x51, 0xad, 0x1f, 0x5c, 0xf9, + 0xd5, 0x12, 0xaf, 0x44, 0x19, 0x35, 0x7f, 0x25, 0xca, 0x79, 0xbf, 0x0b, 0xa5, 0xf0, 0x6a, 0x3a, + 0x1b, 0x7f, 0x1e, 0x1a, 0x9b, 0x38, 0x25, 0xa4, 0x45, 0xaf, 0x42, 0x6e, 0xcc, 0xdd, 0xe3, 0x48, + 0xbc, 0x17, 0xcc, 0x84, 0x42, 0xf0, 0xe8, 0x3d, 0x00, 0x62, 0x3c, 0xd8, 0x78, 0x73, 0xdb, 0x71, + 0x2e, 0x62, 0x76, 0xc4, 0xa9, 0xa0, 0x26, 0x84, 0x01, 0xd0, 0x07, 0x50, 0x8d, 0x58, 0x02, 0x6e, + 0x42, 0x4e, 0x90, 0xae, 0x22, 0x1a, 0x03, 0x74, 0x03, 0xe6, 0xf9, 0xd7, 0x0d, 0xdc, 0x7e, 0x08, + 0xea, 0x12, 0x99, 0x20, 0xc5, 0xa7, 0x23, 0xc2, 0xf2, 0x6b, 0x1b, 0x07, 0x0f, 0xb8, 0x8b, 0x74, + 0x4e, 0xf4, 0x62, 0x22, 0xf3, 0xe2, 0xdf, 0xe8, 0x38, 0x78, 0x80, 0xee, 0x40, 0x3d, 0x66, 0x16, + 0xb8, 0x13, 0x74, 0x82, 0xb8, 0xb5, 0xa8, 0x65, 0x90, 0xbf, 0xca, 0x40, 0x29, 0xf8, 0xae, 0x37, + 0xf5, 0x23, 0xd7, 0xb7, 0x01, 0xfa, 0x81, 0x7d, 0xe2, 0xb3, 0xb5, 0x94, 0x66, 0xbb, 0x14, 0x81, + 0x0e, 0xbd, 0x01, 0xf3, 0x4c, 0x2d, 0x5c, 0x3e, 0x5b, 0xe2, 0x03, 0x5e, 0x86, 0x50, 0x7c, 0x0a, + 0xf9, 0x63, 0x28, 0x70, 0xdf, 0x38, 0x4d, 0x80, 0xb7, 0x00, 0x22, 0x09, 0x01, 0x72, 0xd3, 0xbe, + 0x4a, 0x16, 0xc8, 0x68, 0x8a, 0xac, 0xf8, 0x7b, 0x57, 0x74, 0x35, 0xb2, 0x92, 0x4f, 0xf8, 0x54, + 0x97, 0xad, 0x65, 0x31, 0x53, 0x4a, 0x76, 0x86, 0x4c, 0x29, 0x29, 0x99, 0x49, 0x22, 0xe9, 0x02, + 0xf2, 0xa7, 0xa5, 0x0b, 0x40, 0xd7, 0x60, 0x5e, 0xc7, 0x03, 0x8d, 0x6c, 0x22, 0x73, 0x27, 0xad, + 0x26, 0x9f, 0x4a, 0xfe, 0x71, 0x06, 0xaa, 0x04, 0x11, 0x7e, 0x75, 0xf7, 0x0e, 0x94, 0x75, 0xe6, + 0xfb, 0xf0, 0x1d, 0x7e, 0x7a, 0x42, 0x03, 0xd0, 0x43, 0x47, 0xea, 0x36, 0x2c, 0xb0, 0x40, 0x46, + 0xa5, 0x40, 0x83, 0xbf, 0xd4, 0x49, 0x17, 0x58, 0x62, 0xa4, 0x5b, 0x01, 0xa5, 0xfc, 0x07, 0x19, + 0xc8, 0x29, 0x96, 0x86, 0x6a, 0x90, 0xd5, 0xfc, 0x23, 0x9e, 0xac, 0x46, 0xf3, 0xbf, 0x31, 0x47, + 0x62, 0x84, 0x7d, 0xc7, 0x2f, 0x04, 0x10, 0x8b, 0x37, 0xd6, 0x28, 0x8a, 0xe7, 0x39, 0x61, 0x25, + 0xe1, 0x2d, 0x76, 0x3e, 0xf2, 0x16, 0xdb, 0xff, 0x88, 0x24, 0xb1, 0xaf, 0x2b, 0xdd, 0xfb, 0xad, + 0xf0, 0x29, 0xbf, 0xfc, 0x37, 0x19, 0xc8, 0x3d, 0x74, 0x06, 0xa9, 0xda, 0xf4, 0x0a, 0x64, 0x1d, + 0x5d, 0x50, 0xe3, 0xe4, 0xab, 0xd4, 0xac, 0xa3, 0xa3, 0x1b, 0x50, 0xe2, 0x8f, 0xa9, 0x1d, 0x8f, + 0x7f, 0xc8, 0x37, 0xe5, 0x09, 0x2b, 0x23, 0x53, 0xe8, 0xb7, 0xf3, 0xfc, 0x01, 0xb7, 0xe3, 0xf1, + 0xa9, 0x9e, 0x52, 0x85, 0x91, 0x29, 0x1e, 0x7f, 0xf5, 0xca, 0x5e, 0xe7, 0x65, 0x0d, 0x5d, 0xfe, + 0x49, 0x06, 0x96, 0xb6, 0xd8, 0xcc, 0xd2, 0xd9, 0xde, 0x32, 0x5c, 0x4f, 0x33, 0xfb, 0x18, 0x6d, + 0x40, 0x70, 0x22, 0xcd, 0x0e, 0x9b, 0x55, 0x9d, 0xa3, 0xf8, 0x58, 0x9f, 0xf1, 0xd1, 0x89, 0x7a, + 0xf4, 0x6e, 0x3b, 0xa5, 0x1e, 0x9b, 0x8c, 0x33, 0x3e, 0x3a, 0x52, 0x4f, 0xfe, 0xdb, 0x3c, 0x14, + 0x58, 0xba, 0xc0, 0xc4, 0x8c, 0x9e, 0x87, 0x52, 0x78, 0x5a, 0xce, 0xbf, 0x5a, 0x75, 0xfc, 0xe3, + 0xf1, 0x8b, 0x50, 0x26, 0x8e, 0x05, 0x36, 0xd9, 0xa5, 0x6f, 0x8e, 0x39, 0x42, 0x0c, 0x44, 0x2f, + 0x7d, 0x5f, 0x07, 0x89, 0x13, 0xf0, 0xed, 0x88, 0x2f, 0x8b, 0x92, 0x52, 0x67, 0xf0, 0x86, 0x0f, + 0x8e, 0x7c, 0x12, 0x32, 0x17, 0xfb, 0x24, 0xe4, 0xcd, 0xd4, 0x48, 0x97, 0x5f, 0x8d, 0x26, 0xa2, + 0xd9, 0xcf, 0xa6, 0x07, 0xdc, 0xf3, 0x4f, 0x73, 0xa6, 0x3d, 0x25, 0xec, 0xee, 0xc1, 0x59, 0xbe, + 0x1c, 0xe3, 0x63, 0xcc, 0xac, 0xf1, 0x85, 0xc8, 0xe2, 0x4b, 0x4c, 0xae, 0xb2, 0xa4, 0xa7, 0x4d, + 0xf9, 0x6d, 0xfa, 0x3a, 0x62, 0x80, 0x75, 0xec, 0xb0, 0x17, 0x35, 0xa5, 0xf8, 0x7e, 0xb2, 0x29, + 0xa2, 0x95, 0x28, 0xf5, 0x73, 0xfa, 0x10, 0x23, 0x7e, 0xc8, 0x51, 0x9e, 0xf5, 0x90, 0x43, 0xb6, + 0xa0, 0x1a, 0x91, 0xef, 0x84, 0x63, 0xb1, 0xe8, 0x67, 0x7e, 0xd9, 0xc4, 0x67, 0x7e, 0xaf, 0x40, + 0x8d, 0x9d, 0x21, 0xa8, 0x9a, 0xab, 0x06, 0xe1, 0x5a, 0x55, 0xa9, 0x30, 0x68, 0xc3, 0x25, 0x6e, + 0xab, 0xdc, 0x84, 0xa2, 0x6f, 0x05, 0x4e, 0x70, 0x7e, 0x62, 0xaf, 0x12, 0xb2, 0xf1, 0x57, 0x09, + 0xf2, 0x9f, 0xe4, 0xa1, 0x44, 0xf8, 0x04, 0x77, 0x97, 0xfc, 0xe5, 0x46, 0x86, 0xba, 0x73, 0x69, + 0x2f, 0x37, 0x98, 0xa3, 0x17, 0x94, 0xc9, 0x82, 0x99, 0xd8, 0xdc, 0x47, 0xcb, 0x4e, 0x6c, 0xd6, + 0x64, 0xdf, 0x72, 0x74, 0xd5, 0xb0, 0x0f, 0xdf, 0xe6, 0x67, 0x76, 0xc0, 0x40, 0x2d, 0xfb, 0xf0, + 0xed, 0x28, 0xc1, 0x06, 0x37, 0x07, 0x21, 0xc1, 0x06, 0x4d, 0xee, 0xc4, 0x62, 0x36, 0xca, 0x81, + 0x3f, 0xa5, 0x60, 0x20, 0x9f, 0x43, 0x48, 0xb0, 0xc1, 0x6f, 0xfd, 0x43, 0x82, 0x0d, 0xd2, 0x0f, + 0x17, 0x3b, 0x86, 0x36, 0xe2, 0xb7, 0xfc, 0xbc, 0x84, 0xbe, 0x05, 0x55, 0xff, 0x04, 0x92, 0xf1, + 0x2e, 0xd1, 0xce, 0x54, 0x7c, 0x20, 0xe5, 0x1e, 0x23, 0xda, 0xa0, 0x7a, 0x14, 0x25, 0xda, 0x20, + 0x44, 0x8c, 0xa7, 0x4a, 0x5f, 0x32, 0x30, 0x55, 0xc9, 0x29, 0x15, 0x06, 0x6c, 0x53, 0x18, 0x91, + 0xb3, 0xaf, 0xf5, 0x0f, 0x30, 0xcb, 0xaf, 0x47, 0x1f, 0x25, 0xe6, 0x14, 0xa0, 0x20, 0x9a, 0xc7, + 0x00, 0xbd, 0x0a, 0xb5, 0x80, 0x80, 0xe6, 0x10, 0xa0, 0x4f, 0x12, 0x73, 0x4a, 0xd5, 0xa7, 0x61, + 0x89, 0x05, 0x2e, 0x40, 0x99, 0x5f, 0xab, 0xeb, 0x9a, 0xa7, 0xd1, 0x0f, 0x54, 0x73, 0x4a, 0x89, + 0x5e, 0xa9, 0x6f, 0x69, 0x9e, 0x46, 0x7c, 0x57, 0xec, 0x38, 0x96, 0x43, 0x1f, 0x15, 0xe6, 0x14, + 0x56, 0x40, 0x2f, 0x03, 0x97, 0x46, 0xfd, 0x62, 0x82, 0x9d, 0x63, 0xfa, 0x66, 0x30, 0xa7, 0x94, + 0x19, 0xec, 0x63, 0x02, 0x62, 0x53, 0xe1, 0x62, 0x8f, 0x53, 0x2c, 0x30, 0x01, 0x29, 0x88, 0x12, + 0xc8, 0x9f, 0x42, 0x5e, 0xb1, 0x3f, 0x37, 0x82, 0x9d, 0x28, 0x73, 0xf2, 0x4e, 0x74, 0xc2, 0x15, + 0x45, 0xa0, 0x64, 0xfc, 0x40, 0x65, 0xed, 0x87, 0x39, 0x28, 0xb0, 0xd8, 0x0a, 0x55, 0xa0, 0xa8, + 0x34, 0xf7, 0x9a, 0xca, 0xc3, 0xe6, 0x96, 0xf4, 0x02, 0x02, 0xc8, 0xb7, 0xba, 0x87, 0x6f, 0x4b, + 0x4f, 0x1e, 0xe7, 0xf9, 0xef, 0x0d, 0xe9, 0xc9, 0xe3, 0x22, 0xaa, 0xc2, 0x3c, 0x81, 0xab, 0xbb, + 0x9b, 0xd2, 0x57, 0x8f, 0xf3, 0xbc, 0xb8, 0xc1, 0x8a, 0x45, 0x54, 0x87, 0x12, 0xc3, 0x76, 0x77, + 0xf6, 0xa4, 0x1f, 0x3d, 0xce, 0x73, 0xc0, 0x86, 0x0f, 0x28, 0xa2, 0x1a, 0x14, 0x29, 0xc5, 0xc3, + 0x6e, 0x5b, 0x7a, 0xfc, 0x24, 0xcf, 0xcb, 0x1b, 0xbc, 0x5c, 0x44, 0x0b, 0x50, 0xf6, 0xf1, 0x84, + 0xe9, 0x93, 0x27, 0x79, 0x0e, 0xda, 0x08, 0x41, 0x45, 0x22, 0xd1, 0x43, 0xc2, 0xf1, 0xef, 0x1f, + 0xeb, 0xe4, 0x77, 0x93, 0xd4, 0xfe, 0xa7, 0xc7, 0x3a, 0x2a, 0x41, 0x4e, 0xe9, 0x6d, 0x4a, 0x3f, + 0x7a, 0x92, 0x47, 0x12, 0x00, 0x65, 0xd4, 0x6c, 0x6f, 0x36, 0xba, 0xd2, 0xef, 0x3d, 0xf6, 0x21, + 0x1b, 0x01, 0xa4, 0x88, 0x96, 0xa0, 0x76, 0x77, 0xa7, 0xf3, 0x89, 0xba, 0xd7, 0x6d, 0x6e, 0xaa, + 0xb4, 0xbb, 0x3f, 0x7e, 0x92, 0x4f, 0x40, 0x37, 0xa4, 0x1f, 0x3f, 0x29, 0xa2, 0x15, 0x40, 0x51, + 0x5a, 0x2a, 0xf2, 0x4f, 0x9e, 0xe4, 0x13, 0x98, 0x0d, 0x8e, 0x29, 0xa2, 0xb3, 0x20, 0x85, 0x98, + 0x9d, 0x9b, 0x1c, 0xae, 0xa3, 0x1a, 0x14, 0x3a, 0xdd, 0xc6, 0xc7, 0x0f, 0x9a, 0xd2, 0x7f, 0x3e, + 0xf9, 0xf9, 0xe3, 0xfc, 0xda, 0x26, 0x14, 0x7d, 0xcf, 0x0e, 0x01, 0x14, 0xb6, 0x77, 0x3a, 0x77, + 0x1a, 0x3b, 0xd2, 0x0b, 0x61, 0xbe, 0x02, 0xfa, 0xc8, 0xb2, 0xb1, 0xf5, 0x5d, 0xb5, 0xd5, 0x96, + 0xb2, 0xa8, 0x0c, 0xf3, 0xe4, 0x77, 0xe7, 0x41, 0x8f, 0x25, 0x32, 0x78, 0xa8, 0xdc, 0x95, 0xf2, + 0x6b, 0x3b, 0x91, 0x4f, 0x77, 0xd9, 0x3e, 0x81, 0x24, 0xa8, 0xec, 0x74, 0x3a, 0xf7, 0x1f, 0x74, + 0xd5, 0xe6, 0xa3, 0xc6, 0x66, 0x4f, 0x7a, 0x01, 0x2d, 0x40, 0x95, 0x43, 0x76, 0x3a, 0xed, 0xed, + 0xa6, 0x22, 0x65, 0x10, 0x82, 0x1a, 0x07, 0xed, 0xdd, 0xeb, 0x28, 0xbd, 0xa6, 0x22, 0x65, 0xd7, + 0xbe, 0xca, 0x40, 0x59, 0x38, 0xce, 0xa2, 0x8f, 0x3c, 0x95, 0xe6, 0xdd, 0xd6, 0x23, 0xe9, 0x05, + 0xa2, 0x29, 0xed, 0x66, 0x6b, 0xfb, 0xde, 0x9d, 0x0e, 0xa9, 0x3d, 0x0f, 0xb9, 0x5e, 0x63, 0x9b, + 0x8b, 0xb5, 0xa7, 0x76, 0x1b, 0xbd, 0x7b, 0x52, 0x0e, 0x55, 0xa1, 0xb4, 0xd9, 0xd9, 0xdd, 0x7d, + 0xd0, 0x6e, 0xf5, 0x3e, 0x95, 0xc8, 0x1c, 0x56, 0x9b, 0x8f, 0x7a, 0x6a, 0x08, 0x9a, 0x23, 0x31, + 0xfb, 0x4e, 0x43, 0xd9, 0x6e, 0x0a, 0xc0, 0x02, 0x63, 0xfd, 0xa8, 0xa7, 0xde, 0xeb, 0x74, 0xa5, + 0xf9, 0xb5, 0xd7, 0xa1, 0x14, 0x9c, 0x62, 0xd1, 0xc7, 0xee, 0xed, 0x4f, 0xc5, 0x57, 0xef, 0x00, + 0x85, 0x56, 0xfb, 0x61, 0x53, 0xe9, 0x49, 0xd9, 0xb5, 0x35, 0x90, 0xe2, 0x67, 0x54, 0xa8, 0x00, + 0xd9, 0xe6, 0xc7, 0xd2, 0x0b, 0xe4, 0xef, 0x76, 0x53, 0xca, 0x90, 0xbf, 0x3b, 0x4d, 0x29, 0xbb, + 0x76, 0x8d, 0xbf, 0xf5, 0xe2, 0x81, 0x61, 0xf8, 0x9e, 0x9e, 0xbe, 0x92, 0xdd, 0x6c, 0x76, 0x7b, + 0x8c, 0xb9, 0xd2, 0xfc, 0x2e, 0x7d, 0x3d, 0xbb, 0xf6, 0x00, 0x16, 0x53, 0x02, 0x7b, 0xd2, 0xa9, + 0x40, 0x76, 0xb5, 0xb1, 0x45, 0x96, 0xcd, 0x12, 0x48, 0x21, 0x48, 0x69, 0xee, 0x76, 0x1e, 0x92, + 0x86, 0xcf, 0xc0, 0x82, 0x08, 0xe5, 0x0f, 0xf5, 0xd7, 0xae, 0x42, 0x35, 0x12, 0xcd, 0x93, 0x11, + 0xdc, 0x6d, 0x6e, 0xa9, 0xbb, 0x1d, 0xc2, 0xaa, 0x0e, 0x65, 0x52, 0xf0, 0xc9, 0x33, 0x6b, 0x1b, + 0x50, 0x8f, 0x85, 0x0c, 0xd1, 0xa7, 0xbf, 0x64, 0x38, 0x76, 0xbb, 0x1d, 0x85, 0x4b, 0xdf, 0x7c, + 0x44, 0x7f, 0x67, 0x6f, 0xfe, 0xe2, 0x02, 0x14, 0xb7, 0x89, 0x05, 0x68, 0xd8, 0x06, 0xba, 0x0d, + 0x45, 0x3f, 0x39, 0x34, 0x3a, 0x17, 0x89, 0x67, 0xc4, 0x84, 0xd1, 0xab, 0x67, 0x13, 0x4e, 0x64, + 0x73, 0x6c, 0x7b, 0xc7, 0xe8, 0x7d, 0x98, 0xe7, 0xe9, 0xa1, 0xd1, 0x8a, 0x58, 0x5b, 0xcc, 0x18, + 0x7d, 0x42, 0xe5, 0x02, 0x4b, 0x1c, 0x8d, 0x04, 0x87, 0x22, 0x92, 0x5b, 0x7a, 0x75, 0x25, 0x89, + 0xe0, 0xe6, 0xf7, 0x7d, 0x98, 0xe7, 0x69, 0x63, 0x51, 0xec, 0x58, 0x39, 0x4c, 0x65, 0x3b, 0xb5, + 0xe5, 0x06, 0x40, 0x98, 0x28, 0x16, 0x9d, 0x17, 0x7d, 0xa3, 0x58, 0x5a, 0xe9, 0xa9, 0x2c, 0x36, + 0xa1, 0xe8, 0x67, 0x77, 0x16, 0x07, 0x2e, 0x96, 0x4a, 0x7a, 0x75, 0x35, 0x0d, 0xc5, 0xba, 0x70, + 0x3d, 0x83, 0xb6, 0x01, 0xc2, 0x5c, 0xb0, 0xa2, 0x1c, 0x89, 0x04, 0xd0, 0xab, 0x2f, 0xa6, 0x23, + 0xf9, 0x68, 0x7c, 0x08, 0xa5, 0x20, 0x11, 0x32, 0x5a, 0x9d, 0x9e, 0x1d, 0x79, 0x6a, 0x77, 0x9a, + 0x50, 0x11, 0xd3, 0x1c, 0x23, 0xe1, 0x0c, 0x2b, 0x25, 0xfd, 0xf1, 0x49, 0x03, 0x1b, 0xa6, 0x35, + 0x16, 0x3b, 0x94, 0x48, 0x76, 0x7c, 0xc2, 0xc0, 0x96, 0x85, 0x54, 0xc7, 0x48, 0xe8, 0x77, 0x32, + 0x03, 0xf2, 0x54, 0x26, 0x3b, 0x50, 0x16, 0xf2, 0x11, 0x8b, 0x4c, 0x92, 0x09, 0x8f, 0x57, 0x5f, + 0x9a, 0x82, 0x0d, 0xa6, 0xa9, 0x09, 0x15, 0x31, 0x45, 0xb1, 0x38, 0x38, 0x29, 0xa9, 0x8b, 0xa7, + 0x0a, 0x75, 0x1f, 0xea, 0xb1, 0xf4, 0xc4, 0xe8, 0x52, 0x9a, 0xea, 0xcd, 0xc4, 0xec, 0x21, 0xd4, + 0x63, 0x69, 0x84, 0x45, 0x66, 0xe9, 0x89, 0x8d, 0x57, 0x5f, 0x3e, 0x81, 0x82, 0x6b, 0xd2, 0xc7, + 0x80, 0x92, 0x49, 0x85, 0xd1, 0xb7, 0x22, 0x3d, 0x4e, 0x4f, 0x39, 0x3c, 0x55, 0xd4, 0x0f, 0xd8, + 0x52, 0xd5, 0xbc, 0x03, 0x94, 0xbc, 0x01, 0xf2, 0x2b, 0x9f, 0x4b, 0xc1, 0x70, 0x91, 0xc2, 0xd5, + 0x4a, 0x58, 0x24, 0x57, 0xab, 0xc0, 0xe5, 0xb4, 0xd5, 0x4a, 0x18, 0xc4, 0x57, 0xab, 0x50, 0x7d, + 0x35, 0x0d, 0x15, 0xa8, 0x41, 0x2b, 0xb8, 0x20, 0x63, 0xc9, 0x6c, 0xd1, 0x85, 0x84, 0xcc, 0x91, + 0x2c, 0xb7, 0xd3, 0xa4, 0xb9, 0x92, 0x41, 0x0d, 0x28, 0xfa, 0xb9, 0x62, 0x45, 0x79, 0x62, 0x69, + 0x6a, 0x45, 0x79, 0x12, 0xa9, 0x65, 0x3b, 0x50, 0x11, 0x93, 0xa9, 0xa2, 0xa4, 0x16, 0x47, 0x58, + 0x5d, 0x98, 0x86, 0x0e, 0xba, 0xf7, 0x6d, 0x28, 0xb0, 0x0c, 0xab, 0x28, 0x7a, 0xed, 0x16, 0x26, + 0x46, 0x9d, 0x3a, 0xbc, 0x1f, 0x42, 0x29, 0x48, 0xb5, 0x2a, 0x9a, 0x9f, 0x78, 0xfe, 0xd5, 0xa9, + 0x0c, 0x3e, 0x82, 0x79, 0x9e, 0x5d, 0x55, 0x54, 0x91, 0x68, 0x5a, 0xd6, 0xd5, 0x73, 0x29, 0x98, + 0x40, 0xfa, 0x0f, 0xa1, 0x14, 0xa4, 0x00, 0x14, 0x45, 0x88, 0x27, 0x60, 0x3d, 0xc9, 0x02, 0x8a, + 0x99, 0xfe, 0xc4, 0xf1, 0x4c, 0xc9, 0xa4, 0x3a, 0x95, 0x4d, 0x0b, 0x20, 0xcc, 0xaa, 0x27, 0x2a, + 0x6b, 0x22, 0x15, 0xaa, 0x68, 0xd2, 0x93, 0xe9, 0x4f, 0xe9, 0xee, 0x50, 0x8d, 0x24, 0xd1, 0x13, + 0xf5, 0x2d, 0x2d, 0xdd, 0xe9, 0x49, 0x5d, 0x13, 0xf3, 0x8d, 0x8a, 0x5d, 0x4b, 0xc9, 0x43, 0x3a, + 0x95, 0xcd, 0x36, 0xd5, 0x7f, 0xe1, 0xe2, 0x33, 0xaa, 0xff, 0x89, 0x6c, 0x99, 0x53, 0x19, 0xed, + 0xfa, 0x39, 0xb6, 0x04, 0x5e, 0x2f, 0xc7, 0x87, 0x7b, 0x76, 0x76, 0x0f, 0x58, 0x02, 0x5f, 0x81, + 0xd9, 0xc5, 0xe8, 0xc8, 0x26, 0x59, 0x5d, 0x9a, 0x4e, 0x10, 0x0c, 0x7f, 0x07, 0x16, 0x12, 0x79, + 0x40, 0x91, 0x9c, 0x98, 0x82, 0xd9, 0xe5, 0x64, 0xdb, 0x48, 0x78, 0xd0, 0x1d, 0xdd, 0x46, 0xe2, + 0x79, 0x30, 0x4f, 0xdf, 0x46, 0x42, 0x4e, 0x89, 0x6d, 0x64, 0x66, 0x66, 0x0a, 0x54, 0x23, 0x39, + 0x3d, 0xc5, 0x39, 0x4d, 0x4b, 0x0c, 0xba, 0x7a, 0x71, 0x2a, 0x3e, 0x18, 0xb8, 0x5d, 0x90, 0xe2, + 0xb9, 0x3d, 0xc5, 0xe9, 0x9d, 0x92, 0xf7, 0x73, 0xaa, 0x88, 0x7b, 0xec, 0x1f, 0x04, 0xc4, 0xcf, + 0xd1, 0x5f, 0x49, 0x59, 0xe3, 0x89, 0x34, 0x93, 0x53, 0x99, 0x7e, 0x1a, 0xfc, 0xab, 0x80, 0x38, + 0xdf, 0xcb, 0xe9, 0xeb, 0x7e, 0x76, 0xd6, 0x43, 0x96, 0xba, 0x30, 0xc1, 0xf8, 0xd5, 0xb4, 0xe5, + 0x9e, 0x64, 0xfb, 0xda, 0x69, 0x64, 0xc1, 0x38, 0xff, 0xbf, 0x20, 0x87, 0x6a, 0xa2, 0xad, 0x2b, + 0x53, 0x2c, 0xc5, 0xec, 0xbd, 0x60, 0xfe, 0x35, 0x3d, 0x67, 0x88, 0x6e, 0xda, 0x42, 0x9e, 0xc7, + 0xd3, 0xfd, 0x6b, 0x5a, 0x3f, 0xb1, 0x63, 0xcf, 0xc2, 0x82, 0xef, 0xd8, 0x94, 0x41, 0xcc, 0xf0, + 0x8b, 0xd5, 0x57, 0xd3, 0x50, 0xc1, 0x08, 0x05, 0xee, 0x68, 0x5c, 0x8e, 0x44, 0xe2, 0xcc, 0x19, + 0xdc, 0x51, 0xca, 0x23, 0xe9, 0x8e, 0xce, 0xc2, 0xc4, 0x77, 0xcf, 0x29, 0x8b, 0xb8, 0x7b, 0x3e, + 0x0b, 0x03, 0xbe, 0x4c, 0x83, 0xf4, 0x96, 0xf1, 0x65, 0x1a, 0xcf, 0x93, 0x19, 0x5f, 0xa6, 0x89, + 0xbc, 0x98, 0xd7, 0x33, 0xa4, 0x67, 0x42, 0xde, 0x4b, 0xb1, 0x67, 0xc9, 0x74, 0x98, 0x27, 0xf5, + 0x2c, 0xc8, 0x37, 0x29, 0xf6, 0x2c, 0x9e, 0x84, 0xf2, 0x44, 0x55, 0x09, 0xf2, 0x48, 0x46, 0x54, + 0x25, 0x9e, 0x5d, 0x72, 0x2a, 0x0b, 0xe6, 0xb8, 0xdc, 0x19, 0xdb, 0x31, 0xc7, 0x25, 0xcc, 0xe0, + 0x78, 0xba, 0xe3, 0x42, 0x6a, 0x27, 0x1c, 0x97, 0xd3, 0x19, 0xec, 0x17, 0x68, 0xf9, 0xad, 0xff, + 0x0d, 0x00, 0x00, 0xff, 0xff, 0x8a, 0xb0, 0xc1, 0xa3, 0xb4, 0x69, 0x00, 0x00, } diff --git a/api/gobgp.proto b/api/gobgp.proto index 5f25e59f..ae82e6df 100644 --- a/api/gobgp.proto +++ b/api/gobgp.proto @@ -22,72 +22,81 @@ syntax = "proto3"; import "google/protobuf/any.proto"; +import "google/protobuf/empty.proto"; package gobgpapi; // Interface exported by the server. service GobgpApi { - rpc StartServer(StartServerRequest) returns (StartServerResponse) {} - rpc StopServer(StopServerRequest) returns (StopServerResponse) {} - rpc GetServer(GetServerRequest) returns (GetServerResponse) {} - rpc AddNeighbor(AddNeighborRequest) returns (AddNeighborResponse) {} - rpc DeleteNeighbor(DeleteNeighborRequest) returns (DeleteNeighborResponse) {} - rpc UpdateNeighbor(UpdateNeighborRequest) returns (UpdateNeighborResponse) {} - rpc GetNeighbor(GetNeighborRequest) returns (GetNeighborResponse) {} - rpc ResetNeighbor(ResetNeighborRequest) returns (ResetNeighborResponse) {} - rpc SoftResetNeighbor(SoftResetNeighborRequest) returns (SoftResetNeighborResponse) {} - rpc ShutdownNeighbor(ShutdownNeighborRequest) returns (ShutdownNeighborResponse) {} - rpc EnableNeighbor(EnableNeighborRequest) returns (EnableNeighborResponse) {} - rpc DisableNeighbor(DisableNeighborRequest) returns (DisableNeighborResponse) {} - rpc GetRib(GetRibRequest) returns (GetRibResponse) {} - rpc GetPath(GetPathRequest) returns (stream Path) {} - rpc ValidateRib(ValidateRibRequest) returns (ValidateRibResponse) {} - rpc AddPath(AddPathRequest) returns (AddPathResponse) {} - rpc DeletePath(DeletePathRequest) returns (DeletePathResponse) {} - rpc MonitorRib(MonitorRibRequest) returns (stream Destination) {} - rpc MonitorPeerState(Arguments) returns (stream Peer) {} - rpc EnableMrt(EnableMrtRequest) returns (EnableMrtResponse) {} - rpc DisableMrt(DisableMrtRequest) returns (DisableMrtResponse) {} - rpc InjectMrt(stream InjectMrtRequest) returns (InjectMrtResponse) {} - rpc AddBmp(AddBmpRequest) returns (AddBmpResponse) {} - rpc DeleteBmp(DeleteBmpRequest) returns (DeleteBmpResponse) {} - rpc GetRpki(GetRpkiRequest) returns (GetRpkiResponse) {} - rpc AddRpki(AddRpkiRequest) returns (AddRpkiResponse) {} - rpc DeleteRpki(DeleteRpkiRequest) returns (DeleteRpkiResponse) {} - rpc EnableRpki(EnableRpkiRequest) returns (EnableRpkiResponse) {} - rpc DisableRpki(DisableRpkiRequest) returns (DisableRpkiResponse) {} - rpc ResetRpki(ResetRpkiRequest) returns (ResetRpkiResponse) {} - rpc SoftResetRpki(SoftResetRpkiRequest) returns (SoftResetRpkiResponse) {} - rpc GetRoa(GetRoaRequest) returns (GetRoaResponse) {} - rpc EnableZebra(EnableZebraRequest) returns (EnableZebraResponse) {} - rpc AddVrf(AddVrfRequest) returns (AddVrfResponse) {} - rpc DeleteVrf(DeleteVrfRequest) returns (DeleteVrfResponse) {} - rpc GetVrf(GetVrfRequest) returns (GetVrfResponse) {} - rpc GetDefinedSet(GetDefinedSetRequest) returns (GetDefinedSetResponse) {} - rpc AddDefinedSet(AddDefinedSetRequest) returns (AddDefinedSetResponse) {} - rpc DeleteDefinedSet(DeleteDefinedSetRequest) returns (DeleteDefinedSetResponse) {} - rpc ReplaceDefinedSet(ReplaceDefinedSetRequest) returns (ReplaceDefinedSetResponse) {} - rpc GetStatement(GetStatementRequest) returns (GetStatementResponse) {} - rpc AddStatement(AddStatementRequest) returns (AddStatementResponse) {} - rpc DeleteStatement(DeleteStatementRequest) returns (DeleteStatementResponse) {} - rpc ReplaceStatement(ReplaceStatementRequest) returns (ReplaceStatementResponse) {} - rpc GetPolicy(GetPolicyRequest) returns (GetPolicyResponse) {} - rpc AddPolicy(AddPolicyRequest) returns (AddPolicyResponse) {} - rpc DeletePolicy(DeletePolicyRequest) returns (DeletePolicyResponse) {} - rpc ReplacePolicy(ReplacePolicyRequest) returns (ReplacePolicyResponse) {} - rpc UpdatePolicy(UpdatePolicyRequest) returns (UpdatePolicyResponse) {} - rpc GetPolicyAssignment(GetPolicyAssignmentRequest) returns (GetPolicyAssignmentResponse) {} - rpc AddPolicyAssignment(AddPolicyAssignmentRequest) returns (AddPolicyAssignmentResponse) {} - rpc DeletePolicyAssignment(DeletePolicyAssignmentRequest) returns (DeletePolicyAssignmentResponse) {} - rpc ReplacePolicyAssignment(ReplacePolicyAssignmentRequest) returns (ReplacePolicyAssignmentResponse) {} - rpc GetRibInfo(GetRibInfoRequest) returns (GetRibInfoResponse) {} - rpc AddPeerGroup(AddPeerGroupRequest) returns (AddPeerGroupResponse) {} - rpc DeletePeerGroup(DeletePeerGroupRequest) returns (DeletePeerGroupResponse) {} - rpc UpdatePeerGroup(UpdatePeerGroupRequest) returns (UpdatePeerGroupResponse) {} - rpc AddDynamicNeighbor(AddDynamicNeighborRequest) returns (AddDynamicNeighborResponse) {} - rpc AddCollector(AddCollectorRequest) returns (AddCollectorResponse) {} - rpc Shutdown(ShutdownRequest) returns (ShutdownResponse) {} + rpc StartBgp(StartBgpRequest) returns (google.protobuf.Empty); + rpc StopBgp(StopBgpRequest) returns (google.protobuf.Empty); + rpc GetBgp(GetBgpRequest) returns (GetBgpResponse); + + rpc AddPeer(AddPeerRequest) returns (google.protobuf.Empty); + rpc DeletePeer(DeletePeerRequest) returns (google.protobuf.Empty); + rpc ListPeer(ListPeerRequest) returns (stream ListPeerResponse); + rpc UpdatePeer(UpdatePeerRequest) returns (UpdatePeerResponse); + rpc ResetPeer(ResetPeerRequest) returns (google.protobuf.Empty); + rpc ShutdownPeer(ShutdownPeerRequest) returns (google.protobuf.Empty); + rpc EnablePeer(EnablePeerRequest) returns (google.protobuf.Empty); + rpc DisablePeer(DisablePeerRequest) returns (google.protobuf.Empty); + rpc MonitorPeer(MonitorPeerRequest) returns (stream MonitorPeerResponse); + + rpc AddPeerGroup(AddPeerGroupRequest) returns (google.protobuf.Empty); + rpc DeletePeerGroup(DeletePeerGroupRequest) returns (google.protobuf.Empty); + rpc UpdatePeerGroup(UpdatePeerGroupRequest) returns (UpdatePeerGroupResponse); + + rpc AddDynamicNeighbor(AddDynamicNeighborRequest) returns (google.protobuf.Empty); + + rpc AddPath(AddPathRequest) returns (AddPathResponse); + rpc DeletePath(DeletePathRequest) returns (google.protobuf.Empty); + rpc ListPath(ListPathRequest) returns (stream ListPathResponse); + rpc AddPathStream(stream AddPathStreamRequest) returns (google.protobuf.Empty); + + rpc GetTable(GetTableRequest) returns (GetTableResponse); + rpc MonitorTable(MonitorTableRequest) returns (stream MonitorTableResponse); + + rpc AddVrf(AddVrfRequest) returns (google.protobuf.Empty); + rpc DeleteVrf(DeleteVrfRequest) returns (google.protobuf.Empty); + rpc ListVrf(ListVrfRequest) returns (stream ListVrfResponse); + + rpc AddPolicy(AddPolicyRequest) returns (google.protobuf.Empty); + rpc DeletePolicy(DeletePolicyRequest) returns (google.protobuf.Empty); + rpc ListPolicy(ListPolicyRequest) returns (stream ListPolicyResponse); + rpc ReplacePolicy(ReplacePolicyRequest) returns (google.protobuf.Empty); + rpc UpdatePolicy(UpdatePolicyRequest) returns (google.protobuf.Empty); + + rpc AddDefinedSet(AddDefinedSetRequest) returns (google.protobuf.Empty); + rpc DeleteDefinedSet(DeleteDefinedSetRequest) returns (google.protobuf.Empty); + rpc ListDefinedSet(ListDefinedSetRequest) returns (stream ListDefinedSetResponse); + rpc ReplaceDefinedSet(ReplaceDefinedSetRequest) returns (google.protobuf.Empty); + + rpc AddStatement(AddStatementRequest) returns (google.protobuf.Empty); + rpc DeleteStatement(DeleteStatementRequest) returns (google.protobuf.Empty); + rpc ListStatement(ListStatementRequest) returns (stream ListStatementResponse); + rpc ReplaceStatement(ReplaceStatementRequest) returns (google.protobuf.Empty); + + rpc AddPolicyAssignment(AddPolicyAssignmentRequest) returns (google.protobuf.Empty); + rpc DeletePolicyAssignment(DeletePolicyAssignmentRequest) returns (google.protobuf.Empty); + rpc ListPolicyAssignment(ListPolicyAssignmentRequest) returns (stream ListPolicyAssignmentResponse); + rpc ReplacePolicyAssignment(ReplacePolicyAssignmentRequest) returns (google.protobuf.Empty); + + rpc AddRpki(AddRpkiRequest) returns (google.protobuf.Empty); + rpc DeleteRpki(DeleteRpkiRequest) returns (google.protobuf.Empty); + rpc ListRpki(ListRpkiRequest) returns (stream ListRpkiResponse); + rpc EnableRpki(EnableRpkiRequest) returns (google.protobuf.Empty); + rpc DisableRpki(DisableRpkiRequest) returns (google.protobuf.Empty); + rpc ResetRpki(ResetRpkiRequest) returns (google.protobuf.Empty); + rpc ListRpkiTable(ListRpkiTableRequest) returns (stream ListRpkiTableResponse); + + rpc EnableZebra(EnableZebraRequest) returns (google.protobuf.Empty); + + rpc EnableMrt(EnableMrtRequest) returns (google.protobuf.Empty); + rpc DisableMrt(DisableMrtRequest) returns (google.protobuf.Empty); + + rpc AddBmp(AddBmpRequest) returns (google.protobuf.Empty); + rpc DeleteBmp(DeleteBmpRequest) returns (google.protobuf.Empty); } // Constants for address families @@ -116,64 +125,45 @@ enum Family { OPAQUE = 1074594033; } -message GetNeighborRequest { - bool enableAdvertised = 1; - string address = 2; -} - -message GetNeighborResponse { - repeated Peer peers = 1; -} - -message Arguments { - Resource resource = 1; - uint32 family = 2; - string name = 3; - bool current = 4; -} - -message AddPathRequest { - Resource resource = 1; - string vrf_id = 2; - Path path = 3; +message StartBgpRequest { + Global global = 1; } -message AddPathResponse { - bytes uuid = 1; +message StopBgpRequest { } -message DeletePathRequest { - Resource resource = 1; - string vrf_id = 2; - uint32 family = 3; - Path path = 4; - bytes uuid = 5; +message GetBgpRequest { } -message DeletePathResponse { +message GetBgpResponse { + Global global = 1; } -message AddNeighborRequest { +message AddPeerRequest { Peer peer = 1; } -message AddNeighborResponse { +message DeletePeerRequest { + string address = 1; + string interface = 2; } -message DeleteNeighborRequest { - Peer peer = 1; +message ListPeerRequest { + string address = 1; + bool enableAdvertised = 2; } -message DeleteNeighborResponse { +message ListPeerResponse { + Peer peer = 1; } -message UpdateNeighborRequest { +message UpdatePeerRequest { Peer peer = 1; - // Calls SoftResetIn after updating the neighbor configuration if needed. + // Calls SoftResetIn after updating the peer configuration if needed. bool do_soft_reset_in = 2; } -message UpdateNeighborResponse { +message UpdatePeerResponse { // Indicates whether calling SoftResetIn is required due to this update. If // "true" is set, the client should call SoftResetIn manually. If // "do_soft_reset_in = true" is set in the request, always returned with @@ -181,405 +171,316 @@ message UpdateNeighborResponse { bool needs_soft_reset_in = 1; } -message AddPeerGroupRequest { - PeerGroup peer_group = 1; -} - -message AddPeerGroupResponse { -} - -message DeletePeerGroupRequest { - PeerGroup peer_group = 1; -} - -message DeletePeerGroupResponse { -} - -message UpdatePeerGroupRequest { - PeerGroup peer_group = 1; - bool do_soft_reset_in = 2; -} - -message UpdatePeerGroupResponse { - bool needs_soft_reset_in = 1; -} - -message AddDynamicNeighborRequest { - DynamicNeighbor dynamic_neighbor = 1; -} - -message AddDynamicNeighborResponse { -} - -message ResetNeighborRequest { +message ResetPeerRequest { string address = 1; string communication = 2; -} - -message ResetNeighborResponse { -} - -message SoftResetNeighborRequest { - string address = 1; + bool soft = 3; enum SoftResetDirection { IN = 0; OUT = 1; BOTH = 2; } - SoftResetDirection direction = 2; -} - -message SoftResetNeighborResponse { + SoftResetDirection direction = 4; } -message ShutdownNeighborRequest { +message ShutdownPeerRequest { string address = 1; string communication = 2; } -message ShutdownNeighborResponse { -} - -message EnableNeighborRequest { +message EnablePeerRequest { string address = 1; } -message EnableNeighborResponse { -} - -message DisableNeighborRequest { +message DisablePeerRequest { string address = 1; string communication = 2; } -message DisableNeighborResponse { +message MonitorPeerRequest { + string address = 1; + bool current = 2; } -message UpdatePolicyRequest { - repeated DefinedSet sets = 1; - repeated Policy policies = 2; +message MonitorPeerResponse { + Peer peer = 1; } -message UpdatePolicyResponse { +message AddPeerGroupRequest { + PeerGroup peer_group = 1; } -message EnableMrtRequest { - int32 dump_type = 1; - string filename = 2; - uint64 interval = 3; +message DeletePeerGroupRequest { + string name = 1; } -message EnableMrtResponse { +message UpdatePeerGroupRequest { + PeerGroup peer_group = 1; + bool do_soft_reset_in = 2; } -message DisableMrtRequest { +message UpdatePeerGroupResponse { + bool needs_soft_reset_in = 1; } -message DisableMrtResponse { +message AddDynamicNeighborRequest { + DynamicNeighbor dynamic_neighbor = 1; } -message InjectMrtRequest { +message AddPathRequest { Resource resource = 1; string vrf_id = 2; - repeated Path paths = 3; -} - -message InjectMrtResponse { -} - -message AddBmpRequest { - string address = 1; - uint32 port = 2; - enum MonitoringPolicy { - PRE = 0; - POST = 1; - BOTH = 2; - LOCAL = 3; - ALL = 4; - } - MonitoringPolicy type = 3; -} - -message AddBmpResponse { -} - -message DeleteBmpRequest { - string address = 1; - uint32 port = 2; -} - -message DeleteBmpResponse { -} - -message MonitorRibRequest { - Table table = 1; - bool current = 2; -} - -message RPKIConf { - string address = 1; - string remote_port = 2; -} - -message RPKIState { - int64 uptime = 1; - int64 downtime = 2; - bool up = 3; - uint32 record_ipv4 = 4; - uint32 record_ipv6 = 5; - uint32 prefix_ipv4 = 6; - uint32 prefix_ipv6 = 7; - uint32 serial = 8; - int64 received_ipv4 = 9; - int64 received_ipv6 = 10; - int64 serial_notify = 11; - int64 cache_reset = 12; - int64 cache_response = 13; - int64 end_of_data = 14; - int64 error = 15; - int64 serial_query = 16; - int64 reset_query = 17; -} - -message Rpki { - RPKIConf conf = 1; - RPKIState state = 2; -} - -message GetRpkiRequest { - uint32 family = 1; -} - -message GetRpkiResponse { - repeated Rpki servers = 1; -} - -message AddRpkiRequest { - string address = 1; - uint32 port = 2; - int64 lifetime = 3; -} - -message AddRpkiResponse { -} - -message DeleteRpkiRequest { - string address = 1; - uint32 port = 2; + Path path = 3; } -message DeleteRpkiResponse { +message AddPathResponse { + bytes uuid = 1; } -message EnableRpkiRequest { - string address = 1; +message DeletePathRequest { + Resource resource = 1; + string vrf_id = 2; + uint32 family = 3; + Path path = 4; + bytes uuid = 5; } -message EnableRpkiResponse { +message ListPathRequest { + Resource type = 1; + string name = 2; + uint32 family = 3; + repeated TableLookupPrefix prefixes = 4; } -message DisableRpkiRequest { - string address = 1; +message ListPathResponse { + Destination destination = 1; } -message DisableRpkiResponse { +message AddPathStreamRequest { + Resource resource = 1; + string vrf_id = 2; + repeated Path paths = 3; } -message ResetRpkiRequest { - string address = 1; +message GetTableRequest { + Resource type = 1; + uint32 family = 2; + string name = 3; } -message ResetRpkiResponse { +message GetTableResponse { + uint64 num_destination = 4; + uint64 num_path = 5; + uint64 num_accepted = 6; // only meaningful when type == ADJ_IN } -message SoftResetRpkiRequest { - string address = 1; +message MonitorTableRequest { + Resource type = 1; + string name = 2; + uint32 family = 3; + bool current = 4; + bool post_policy = 5; } -message SoftResetRpkiResponse { +message MonitorTableResponse { + Path path = 1; } -message EnableZebraRequest { - string url = 1; - repeated string route_types = 2; - uint32 version = 3; - bool nexthop_trigger_enable = 4; - uint32 nexthop_trigger_delay = 5; +message AddVrfRequest { + Vrf vrf = 1; } -message EnableZebraResponse { +message DeleteVrfRequest { + string name = 1; } -message GetVrfRequest { +message ListVrfRequest { + string name = 1; } -message GetVrfResponse { - repeated Vrf vrfs = 1; +message ListVrfResponse { + Vrf vrf = 1; } -message AddVrfRequest { - Vrf vrf = 1; +message AddPolicyRequest { + Policy policy = 1; + // if this flag is set, gobgpd won't define new statements + // but refer existing statements using statement's names in this arguments. + bool refer_existing_statements = 2; } -message AddVrfResponse { +message DeletePolicyRequest { + Policy policy = 1; + // if this flag is set, gobgpd won't delete any statements + // even if some statements get not used by any policy by this operation. + bool preserve_statements = 2; + bool all = 3; } -message DeleteVrfRequest { - Vrf vrf = 1; +message ListPolicyRequest { + string name = 1; } -message DeleteVrfResponse { +message ListPolicyResponse { + Policy policy = 1; } -message GetDefinedSetRequest { - DefinedType type = 1; - string name = 2; +message ReplacePolicyRequest { + Policy policy = 1; + // if this flag is set, gobgpd won't define new statements + // but refer existing statements using statement's names in this arguments. + bool refer_existing_statements = 2; + // if this flag is set, gobgpd won't delete any statements + // even if some statements get not used by any policy by this operation. + bool preserve_statements = 3; } -message GetDefinedSetResponse { +message UpdatePolicyRequest { repeated DefinedSet sets = 1; + repeated Policy policies = 2; } message AddDefinedSetRequest { DefinedSet set = 1; } -message AddDefinedSetResponse { -} - message DeleteDefinedSetRequest { DefinedSet set = 1; bool all = 2; } -message DeleteDefinedSetResponse { +message ListDefinedSetRequest { + DefinedType type = 1; + string name = 2; } -message ReplaceDefinedSetRequest { +message ListDefinedSetResponse { DefinedSet set = 1; } -message ReplaceDefinedSetResponse { -} - -message GetStatementRequest { -} - -message GetStatementResponse { - repeated Statement statements = 1; +message ReplaceDefinedSetRequest { + DefinedSet set = 1; } message AddStatementRequest { Statement statement = 1; } -message AddStatementResponse { -} - message DeleteStatementRequest { Statement statement = 1; bool all = 2; } -message DeleteStatementResponse { +message ListStatementRequest { + string name = 1; } -message ReplaceStatementRequest { +message ListStatementResponse { Statement statement = 1; } -message ReplaceStatementResponse { -} - -message GetPolicyRequest { -} - -message GetPolicyResponse { - repeated Policy policies = 1; -} - -message AddPolicyRequest { - Policy policy = 1; - // if this flag is set, gobgpd won't define new statements - // but refer existing statements using statement's names in this arguments. - bool refer_existing_statements = 2; +message ReplaceStatementRequest { + Statement statement = 1; } -message AddPolicyResponse { +message AddPolicyAssignmentRequest { + PolicyAssignment assignment = 1; } -message DeletePolicyRequest { - Policy policy = 1; - // if this flag is set, gobgpd won't delete any statements - // even if some statements get not used by any policy by this operation. - bool preserve_statements = 2; - bool all = 3; +message DeletePolicyAssignmentRequest { + PolicyAssignment assignment = 1; + bool all = 2; } -message DeletePolicyResponse { +message ListPolicyAssignmentRequest { + string name = 1; + PolicyDirection direction = 2; } -message ReplacePolicyRequest { - Policy policy = 1; - // if this flag is set, gobgpd won't define new statements - // but refer existing statements using statement's names in this arguments. - bool refer_existing_statements = 2; - // if this flag is set, gobgpd won't delete any statements - // even if some statements get not used by any policy by this operation. - bool preserve_statements = 3; +message ListPolicyAssignmentResponse { + PolicyAssignment assignment = 1; } -message ReplacePolicyResponse { +message ReplacePolicyAssignmentRequest { + PolicyAssignment assignment = 1; } -message GetPolicyAssignmentRequest { - PolicyAssignment assignment = 1; +message AddRpkiRequest { + string address = 1; + uint32 port = 2; + int64 lifetime = 3; } -message GetPolicyAssignmentResponse { - PolicyAssignment assignment = 1; +message DeleteRpkiRequest { + string address = 1; + uint32 port = 2; } -message AddPolicyAssignmentRequest { - PolicyAssignment assignment = 1; +message ListRpkiRequest { + uint32 family = 1; } -message AddPolicyAssignmentResponse { +message ListRpkiResponse { + Rpki server = 1; } -message DeletePolicyAssignmentRequest { - PolicyAssignment assignment = 1; - bool all = 2; +message EnableRpkiRequest { + string address = 1; + uint32 port = 2; } -message DeletePolicyAssignmentResponse { +message DisableRpkiRequest { + string address = 1; + uint32 port = 2; } -message ReplacePolicyAssignmentRequest { - PolicyAssignment assignment = 1; +message ResetRpkiRequest { + string address = 1; + uint32 port = 2; + bool soft = 3; } -message ReplacePolicyAssignmentResponse { +message ListRpkiTableRequest { + uint32 family = 1; } -message GetServerRequest { +message ListRpkiTableResponse { + Roa roa = 1; } -message GetServerResponse { - Global global = 1; +message EnableZebraRequest { + string url = 1; + repeated string route_types = 2; + uint32 version = 3; + bool nexthop_trigger_enable = 4; + uint32 nexthop_trigger_delay = 5; } -message StartServerRequest { - Global global = 1; +message EnableMrtRequest { + int32 dump_type = 1; + string filename = 2; + uint64 interval = 3; } -message StartServerResponse { +message DisableMrtRequest { } -message StopServerRequest { +message AddBmpRequest { + string address = 1; + uint32 port = 2; + enum MonitoringPolicy { + PRE = 0; + POST = 1; + BOTH = 2; + LOCAL = 3; + ALL = 4; + } + MonitoringPolicy type = 3; } -message StopServerResponse { +message DeleteBmpRequest { + string address = 1; + uint32 port = 2; } enum Resource { @@ -654,24 +555,6 @@ message Path { message Destination { string prefix = 1; repeated Path paths = 2; - bool longer_prefixes = 3; - bool shorter_prefixes = 4; -} - -message Table { - Resource type = 1; - string name = 2; - uint32 family = 3; - repeated Destination destinations = 4; - bool post_policy = 5; -} - -message GetRibRequest { - Table table = 1; -} - -message GetRibResponse { - Table table = 1; } // API representation of table.LookupOption @@ -687,22 +570,6 @@ message TableLookupPrefix { TableLookupOption lookup_option = 2; } -message GetPathRequest { - Resource type = 1; - string name = 2; - uint32 family = 3; - repeated TableLookupPrefix prefixes = 4; -} - -message ValidateRibRequest { - Resource type = 1; - uint32 family = 2; - string prefix = 3; -} - -message ValidateRibResponse { -} - message Peer { // Note: Regarding to the consistency with OpenConfig model, a list of // address family should be removed from here, and should be configured with @@ -712,7 +579,7 @@ message Peer { PeerConf conf = 3; EbgpMultihop ebgp_multihop = 4; RouteReflector route_reflector = 5; - PeerState info = 6; + PeerState state= 6; Timers timers = 7; Transport transport = 8; RouteServer route_server = 9; @@ -847,20 +714,28 @@ message PeerState { uint32 remove_private_as = 10; bool route_flap_damping = 11; uint32 send_community = 12; - uint32 session_state = 13; + enum SessionState { + UNKNOWN = 0; + IDLE = 1; + CONNECT = 2; + ACTIVE = 3; + OPENSENT = 4; + OPENCONFIRM = 5; + ESTABLISHED = 6; + } + SessionState session_state = 13; repeated string supported_capabilities = 14; - string bgp_state = 15; enum AdminState { UP = 0; DOWN = 1; PFX_CT = 2; // prefix counter over limit } - AdminState admin_state = 16; - uint32 received = 17; - uint32 accepted = 18; - uint32 advertised = 19; - uint32 out_q = 20; - uint32 flops = 21; + AdminState admin_state = 15; + uint32 received = 16; + uint32 accepted = 17; + uint32 advertised = 18; + uint32 out_q = 19; + uint32 flops = 20; } message Messages { @@ -869,13 +744,13 @@ message Messages { } message Message { - uint64 NOTIFICATION = 1; - uint64 UPDATE = 2; - uint64 OPEN = 3; - uint64 KEEPALIVE = 4; - uint64 REFRESH = 5; - uint64 DISCARDED = 6; - uint64 TOTAL = 7; + uint64 notification = 1; + uint64 update = 2; + uint64 open = 3; + uint64 keepalive = 4; + uint64 refresh = 5; + uint64 discarded = 6; + uint64 total = 7; } message Queues { @@ -1229,14 +1104,14 @@ message Policy { repeated Statement statements = 2; } -enum PolicyType { - IN = 0; +enum PolicyDirection { + UNKNOWN = 0; IMPORT = 1; EXPORT = 2; } message PolicyAssignment { - PolicyType type = 1; + PolicyDirection type = 1; Resource resource = 2; string name = 3; repeated Policy policies = 4; @@ -1256,14 +1131,6 @@ message Roa { RPKIConf conf = 5; } -message GetRoaRequest { - uint32 family = 1; -} - -message GetRoaResponse { - repeated Roa roas = 1; -} - message Vrf { string name = 1; // Route Distinguisher must be one of @@ -1309,34 +1176,32 @@ message Confederation { repeated uint32 member_as_list = 3; } -message TableInfo { - Resource type = 1; - string name = 2; - uint32 family = 3; - uint64 num_destination = 4; - uint64 num_path = 5; - uint64 num_accepted = 6; // only meaningful when type == ADJ_IN -} - -message GetRibInfoRequest { - TableInfo info = 1; -} - -message GetRibInfoResponse { - TableInfo info = 1; -} - -message AddCollectorRequest { - string url = 1; - string db_name = 2; - uint64 table_dump_interval = 3; +message RPKIConf { + string address = 1; + uint32 remote_port = 2; } -message AddCollectorResponse { +message RPKIState { + int64 uptime = 1; + int64 downtime = 2; + bool up = 3; + uint32 record_ipv4 = 4; + uint32 record_ipv6 = 5; + uint32 prefix_ipv4 = 6; + uint32 prefix_ipv6 = 7; + uint32 serial = 8; + int64 received_ipv4 = 9; + int64 received_ipv6 = 10; + int64 serial_notify = 11; + int64 cache_reset = 12; + int64 cache_response = 13; + int64 end_of_data = 14; + int64 error = 15; + int64 serial_query = 16; + int64 reset_query = 17; } -message ShutdownRequest{ +message Rpki { + RPKIConf conf = 1; + RPKIState state = 2; } - -message ShutdownResponse{ -}
\ No newline at end of file |