github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/ts/tspb/timeseries.pb.go (about) 1 // Code generated by protoc-gen-gogo. DO NOT EDIT. 2 // source: ts/tspb/timeseries.proto 3 4 package tspb 5 6 import proto "github.com/gogo/protobuf/proto" 7 import fmt "fmt" 8 import math "math" 9 10 import ( 11 context "context" 12 grpc "google.golang.org/grpc" 13 ) 14 15 import encoding_binary "encoding/binary" 16 17 import io "io" 18 19 // Reference imports to suppress errors if they are not otherwise used. 20 var _ = proto.Marshal 21 var _ = fmt.Errorf 22 var _ = math.Inf 23 24 // This is a compile-time assertion to ensure that this generated file 25 // is compatible with the proto package it is being compiled against. 26 // A compilation error at this line likely means your copy of the 27 // proto package needs to be updated. 28 const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package 29 30 // TimeSeriesQueryAggregator describes a set of aggregation functions which can 31 // be used to combine multiple datapoints into a single datapoint. 32 // 33 // Aggregators are used to "downsample" series by combining datapoints from the 34 // same series at different times. They are also used to "aggregate" values from 35 // different series, combining data points from different series at the same 36 // time. 37 type TimeSeriesQueryAggregator int32 38 39 const ( 40 // AVG returns the average value of datapoints. 41 TimeSeriesQueryAggregator_AVG TimeSeriesQueryAggregator = 1 42 // SUM returns the sum value of datapoints. 43 TimeSeriesQueryAggregator_SUM TimeSeriesQueryAggregator = 2 44 // MAX returns the maximum value of datapoints. 45 TimeSeriesQueryAggregator_MAX TimeSeriesQueryAggregator = 3 46 // MIN returns the minimum value of datapoints. 47 TimeSeriesQueryAggregator_MIN TimeSeriesQueryAggregator = 4 48 // FIRST returns the value of the first datapoint in the set being aggregated. 49 // This aggregator is not valid for a source aggregator, and should only be 50 // used for downsampling. 51 TimeSeriesQueryAggregator_FIRST TimeSeriesQueryAggregator = 5 52 // LAST returns the value of the last datapoint in the set being aggregated. 53 // This aggregator is not valid for a source aggregator, and should only be 54 // used for downsampling. 55 TimeSeriesQueryAggregator_LAST TimeSeriesQueryAggregator = 6 56 // VARIANCE returns the variance (σ^2) of the datapoints. 57 TimeSeriesQueryAggregator_VARIANCE TimeSeriesQueryAggregator = 7 58 ) 59 60 var TimeSeriesQueryAggregator_name = map[int32]string{ 61 1: "AVG", 62 2: "SUM", 63 3: "MAX", 64 4: "MIN", 65 5: "FIRST", 66 6: "LAST", 67 7: "VARIANCE", 68 } 69 var TimeSeriesQueryAggregator_value = map[string]int32{ 70 "AVG": 1, 71 "SUM": 2, 72 "MAX": 3, 73 "MIN": 4, 74 "FIRST": 5, 75 "LAST": 6, 76 "VARIANCE": 7, 77 } 78 79 func (x TimeSeriesQueryAggregator) Enum() *TimeSeriesQueryAggregator { 80 p := new(TimeSeriesQueryAggregator) 81 *p = x 82 return p 83 } 84 func (x TimeSeriesQueryAggregator) String() string { 85 return proto.EnumName(TimeSeriesQueryAggregator_name, int32(x)) 86 } 87 func (x *TimeSeriesQueryAggregator) UnmarshalJSON(data []byte) error { 88 value, err := proto.UnmarshalJSONEnum(TimeSeriesQueryAggregator_value, data, "TimeSeriesQueryAggregator") 89 if err != nil { 90 return err 91 } 92 *x = TimeSeriesQueryAggregator(value) 93 return nil 94 } 95 func (TimeSeriesQueryAggregator) EnumDescriptor() ([]byte, []int) { 96 return fileDescriptor_timeseries_01081b15400c236e, []int{0} 97 } 98 99 // TimeSeriesQueryDerivative describes a derivative function used to convert 100 // returned datapoints into a rate-of-change. 101 type TimeSeriesQueryDerivative int32 102 103 const ( 104 // NONE is the default value, and does not apply a derivative function. 105 TimeSeriesQueryDerivative_NONE TimeSeriesQueryDerivative = 0 106 // DERIVATIVE returns the first-order derivative of values in the time series. 107 TimeSeriesQueryDerivative_DERIVATIVE TimeSeriesQueryDerivative = 1 108 // NON_NEGATIVE_DERIVATIVE returns only non-negative values of the first-order 109 // derivative; negative values are returned as zero. This should be used for 110 // counters that monotonically increase, but might wrap or reset. 111 TimeSeriesQueryDerivative_NON_NEGATIVE_DERIVATIVE TimeSeriesQueryDerivative = 2 112 ) 113 114 var TimeSeriesQueryDerivative_name = map[int32]string{ 115 0: "NONE", 116 1: "DERIVATIVE", 117 2: "NON_NEGATIVE_DERIVATIVE", 118 } 119 var TimeSeriesQueryDerivative_value = map[string]int32{ 120 "NONE": 0, 121 "DERIVATIVE": 1, 122 "NON_NEGATIVE_DERIVATIVE": 2, 123 } 124 125 func (x TimeSeriesQueryDerivative) Enum() *TimeSeriesQueryDerivative { 126 p := new(TimeSeriesQueryDerivative) 127 *p = x 128 return p 129 } 130 func (x TimeSeriesQueryDerivative) String() string { 131 return proto.EnumName(TimeSeriesQueryDerivative_name, int32(x)) 132 } 133 func (x *TimeSeriesQueryDerivative) UnmarshalJSON(data []byte) error { 134 value, err := proto.UnmarshalJSONEnum(TimeSeriesQueryDerivative_value, data, "TimeSeriesQueryDerivative") 135 if err != nil { 136 return err 137 } 138 *x = TimeSeriesQueryDerivative(value) 139 return nil 140 } 141 func (TimeSeriesQueryDerivative) EnumDescriptor() ([]byte, []int) { 142 return fileDescriptor_timeseries_01081b15400c236e, []int{1} 143 } 144 145 // TimeSeriesDatapoint is a single point of time series data; a value associated 146 // with a timestamp. 147 type TimeSeriesDatapoint struct { 148 // The timestamp when this datapoint is located, expressed in nanoseconds 149 // since the unix epoch. 150 TimestampNanos int64 `protobuf:"varint,1,opt,name=timestamp_nanos,json=timestampNanos" json:"timestamp_nanos"` 151 // A floating point representation of the value of this datapoint. 152 Value float64 `protobuf:"fixed64,2,opt,name=value" json:"value"` 153 } 154 155 func (m *TimeSeriesDatapoint) Reset() { *m = TimeSeriesDatapoint{} } 156 func (m *TimeSeriesDatapoint) String() string { return proto.CompactTextString(m) } 157 func (*TimeSeriesDatapoint) ProtoMessage() {} 158 func (*TimeSeriesDatapoint) Descriptor() ([]byte, []int) { 159 return fileDescriptor_timeseries_01081b15400c236e, []int{0} 160 } 161 func (m *TimeSeriesDatapoint) XXX_Unmarshal(b []byte) error { 162 return m.Unmarshal(b) 163 } 164 func (m *TimeSeriesDatapoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 165 b = b[:cap(b)] 166 n, err := m.MarshalTo(b) 167 if err != nil { 168 return nil, err 169 } 170 return b[:n], nil 171 } 172 func (dst *TimeSeriesDatapoint) XXX_Merge(src proto.Message) { 173 xxx_messageInfo_TimeSeriesDatapoint.Merge(dst, src) 174 } 175 func (m *TimeSeriesDatapoint) XXX_Size() int { 176 return m.Size() 177 } 178 func (m *TimeSeriesDatapoint) XXX_DiscardUnknown() { 179 xxx_messageInfo_TimeSeriesDatapoint.DiscardUnknown(m) 180 } 181 182 var xxx_messageInfo_TimeSeriesDatapoint proto.InternalMessageInfo 183 184 // TimeSeriesData is a set of measurements of a single named variable at 185 // multiple points in time. This message contains a name and a source which, in 186 // combination, uniquely identify the time series being measured. Measurement 187 // data is represented as a repeated set of TimeSeriesDatapoint messages. 188 type TimeSeriesData struct { 189 // A string which uniquely identifies the variable from which this data was 190 // measured. 191 Name string `protobuf:"bytes,1,opt,name=name" json:"name"` 192 // A string which identifies the unique source from which the variable was measured. 193 Source string `protobuf:"bytes,2,opt,name=source" json:"source"` 194 // Datapoints representing one or more measurements taken from the variable. 195 Datapoints []TimeSeriesDatapoint `protobuf:"bytes,3,rep,name=datapoints" json:"datapoints"` 196 } 197 198 func (m *TimeSeriesData) Reset() { *m = TimeSeriesData{} } 199 func (m *TimeSeriesData) String() string { return proto.CompactTextString(m) } 200 func (*TimeSeriesData) ProtoMessage() {} 201 func (*TimeSeriesData) Descriptor() ([]byte, []int) { 202 return fileDescriptor_timeseries_01081b15400c236e, []int{1} 203 } 204 func (m *TimeSeriesData) XXX_Unmarshal(b []byte) error { 205 return m.Unmarshal(b) 206 } 207 func (m *TimeSeriesData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 208 b = b[:cap(b)] 209 n, err := m.MarshalTo(b) 210 if err != nil { 211 return nil, err 212 } 213 return b[:n], nil 214 } 215 func (dst *TimeSeriesData) XXX_Merge(src proto.Message) { 216 xxx_messageInfo_TimeSeriesData.Merge(dst, src) 217 } 218 func (m *TimeSeriesData) XXX_Size() int { 219 return m.Size() 220 } 221 func (m *TimeSeriesData) XXX_DiscardUnknown() { 222 xxx_messageInfo_TimeSeriesData.DiscardUnknown(m) 223 } 224 225 var xxx_messageInfo_TimeSeriesData proto.InternalMessageInfo 226 227 // Each Query defines a specific metric to query over the time span of 228 // this request. 229 type Query struct { 230 // The name of the time series to query. 231 Name string `protobuf:"bytes,1,opt,name=name" json:"name"` 232 // A downsampling aggregation function to apply to datapoints within the 233 // same sample period. 234 Downsampler *TimeSeriesQueryAggregator `protobuf:"varint,2,opt,name=downsampler,enum=cockroach.ts.tspb.TimeSeriesQueryAggregator,def=1" json:"downsampler,omitempty"` 235 // An aggregation function used to combine timelike datapoints from the 236 // different sources being queried. 237 SourceAggregator *TimeSeriesQueryAggregator `protobuf:"varint,3,opt,name=source_aggregator,json=sourceAggregator,enum=cockroach.ts.tspb.TimeSeriesQueryAggregator,def=2" json:"source_aggregator,omitempty"` 238 // If set to a value other than 'NONE', query will return a derivative 239 // (rate of change) of the aggregated datapoints. 240 Derivative *TimeSeriesQueryDerivative `protobuf:"varint,4,opt,name=derivative,enum=cockroach.ts.tspb.TimeSeriesQueryDerivative,def=0" json:"derivative,omitempty"` 241 // An optional list of sources to restrict the time series query. If no 242 // sources are provided, all available sources will be queried. 243 Sources []string `protobuf:"bytes,5,rep,name=sources" json:"sources,omitempty"` 244 } 245 246 func (m *Query) Reset() { *m = Query{} } 247 func (m *Query) String() string { return proto.CompactTextString(m) } 248 func (*Query) ProtoMessage() {} 249 func (*Query) Descriptor() ([]byte, []int) { 250 return fileDescriptor_timeseries_01081b15400c236e, []int{2} 251 } 252 func (m *Query) XXX_Unmarshal(b []byte) error { 253 return m.Unmarshal(b) 254 } 255 func (m *Query) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 256 b = b[:cap(b)] 257 n, err := m.MarshalTo(b) 258 if err != nil { 259 return nil, err 260 } 261 return b[:n], nil 262 } 263 func (dst *Query) XXX_Merge(src proto.Message) { 264 xxx_messageInfo_Query.Merge(dst, src) 265 } 266 func (m *Query) XXX_Size() int { 267 return m.Size() 268 } 269 func (m *Query) XXX_DiscardUnknown() { 270 xxx_messageInfo_Query.DiscardUnknown(m) 271 } 272 273 var xxx_messageInfo_Query proto.InternalMessageInfo 274 275 const Default_Query_Downsampler TimeSeriesQueryAggregator = TimeSeriesQueryAggregator_AVG 276 const Default_Query_SourceAggregator TimeSeriesQueryAggregator = TimeSeriesQueryAggregator_SUM 277 const Default_Query_Derivative TimeSeriesQueryDerivative = TimeSeriesQueryDerivative_NONE 278 279 func (m *Query) GetName() string { 280 if m != nil { 281 return m.Name 282 } 283 return "" 284 } 285 286 func (m *Query) GetDownsampler() TimeSeriesQueryAggregator { 287 if m != nil && m.Downsampler != nil { 288 return *m.Downsampler 289 } 290 return Default_Query_Downsampler 291 } 292 293 func (m *Query) GetSourceAggregator() TimeSeriesQueryAggregator { 294 if m != nil && m.SourceAggregator != nil { 295 return *m.SourceAggregator 296 } 297 return Default_Query_SourceAggregator 298 } 299 300 func (m *Query) GetDerivative() TimeSeriesQueryDerivative { 301 if m != nil && m.Derivative != nil { 302 return *m.Derivative 303 } 304 return Default_Query_Derivative 305 } 306 307 func (m *Query) GetSources() []string { 308 if m != nil { 309 return m.Sources 310 } 311 return nil 312 } 313 314 // TimeSeriesQueryRequest is the standard incoming time series query request 315 // accepted from cockroach clients. 316 type TimeSeriesQueryRequest struct { 317 // A timestamp in nanoseconds which defines the early bound of the time span 318 // for this query. 319 StartNanos int64 `protobuf:"varint,1,opt,name=start_nanos,json=startNanos" json:"start_nanos"` 320 // A timestamp in nanoseconds which defines the late bound of the time span 321 // for this query. Must be greater than start_nanos. 322 EndNanos int64 `protobuf:"varint,2,opt,name=end_nanos,json=endNanos" json:"end_nanos"` 323 // A set of Queries for this request. A request must have at least one 324 // Query. 325 Queries []Query `protobuf:"bytes,3,rep,name=queries" json:"queries"` 326 // Duration of requested sample period in nanoseconds. Returned data for each 327 // query will be downsampled into periods of the supplied length. The 328 // supplied duration must be a multiple of ten seconds. 329 SampleNanos int64 `protobuf:"varint,4,opt,name=sample_nanos,json=sampleNanos" json:"sample_nanos"` 330 } 331 332 func (m *TimeSeriesQueryRequest) Reset() { *m = TimeSeriesQueryRequest{} } 333 func (m *TimeSeriesQueryRequest) String() string { return proto.CompactTextString(m) } 334 func (*TimeSeriesQueryRequest) ProtoMessage() {} 335 func (*TimeSeriesQueryRequest) Descriptor() ([]byte, []int) { 336 return fileDescriptor_timeseries_01081b15400c236e, []int{3} 337 } 338 func (m *TimeSeriesQueryRequest) XXX_Unmarshal(b []byte) error { 339 return m.Unmarshal(b) 340 } 341 func (m *TimeSeriesQueryRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 342 b = b[:cap(b)] 343 n, err := m.MarshalTo(b) 344 if err != nil { 345 return nil, err 346 } 347 return b[:n], nil 348 } 349 func (dst *TimeSeriesQueryRequest) XXX_Merge(src proto.Message) { 350 xxx_messageInfo_TimeSeriesQueryRequest.Merge(dst, src) 351 } 352 func (m *TimeSeriesQueryRequest) XXX_Size() int { 353 return m.Size() 354 } 355 func (m *TimeSeriesQueryRequest) XXX_DiscardUnknown() { 356 xxx_messageInfo_TimeSeriesQueryRequest.DiscardUnknown(m) 357 } 358 359 var xxx_messageInfo_TimeSeriesQueryRequest proto.InternalMessageInfo 360 361 // TimeSeriesQueryResponse is the standard response for time series queries 362 // returned to cockroach clients. 363 type TimeSeriesQueryResponse struct { 364 // A set of Results; there will be one result for each Query in the matching 365 // TimeSeriesQueryRequest, in the same order. A Result will be present for 366 // each Query even if there are zero datapoints to return. 367 Results []TimeSeriesQueryResponse_Result `protobuf:"bytes,1,rep,name=results" json:"results"` 368 } 369 370 func (m *TimeSeriesQueryResponse) Reset() { *m = TimeSeriesQueryResponse{} } 371 func (m *TimeSeriesQueryResponse) String() string { return proto.CompactTextString(m) } 372 func (*TimeSeriesQueryResponse) ProtoMessage() {} 373 func (*TimeSeriesQueryResponse) Descriptor() ([]byte, []int) { 374 return fileDescriptor_timeseries_01081b15400c236e, []int{4} 375 } 376 func (m *TimeSeriesQueryResponse) XXX_Unmarshal(b []byte) error { 377 return m.Unmarshal(b) 378 } 379 func (m *TimeSeriesQueryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 380 b = b[:cap(b)] 381 n, err := m.MarshalTo(b) 382 if err != nil { 383 return nil, err 384 } 385 return b[:n], nil 386 } 387 func (dst *TimeSeriesQueryResponse) XXX_Merge(src proto.Message) { 388 xxx_messageInfo_TimeSeriesQueryResponse.Merge(dst, src) 389 } 390 func (m *TimeSeriesQueryResponse) XXX_Size() int { 391 return m.Size() 392 } 393 func (m *TimeSeriesQueryResponse) XXX_DiscardUnknown() { 394 xxx_messageInfo_TimeSeriesQueryResponse.DiscardUnknown(m) 395 } 396 397 var xxx_messageInfo_TimeSeriesQueryResponse proto.InternalMessageInfo 398 399 // Result is the data returned from a single metric query over a time span. 400 type TimeSeriesQueryResponse_Result struct { 401 Query `protobuf:"bytes,1,opt,name=query,embedded=query" json:"query"` 402 Datapoints []TimeSeriesDatapoint `protobuf:"bytes,2,rep,name=datapoints" json:"datapoints"` 403 } 404 405 func (m *TimeSeriesQueryResponse_Result) Reset() { *m = TimeSeriesQueryResponse_Result{} } 406 func (m *TimeSeriesQueryResponse_Result) String() string { return proto.CompactTextString(m) } 407 func (*TimeSeriesQueryResponse_Result) ProtoMessage() {} 408 func (*TimeSeriesQueryResponse_Result) Descriptor() ([]byte, []int) { 409 return fileDescriptor_timeseries_01081b15400c236e, []int{4, 0} 410 } 411 func (m *TimeSeriesQueryResponse_Result) XXX_Unmarshal(b []byte) error { 412 return m.Unmarshal(b) 413 } 414 func (m *TimeSeriesQueryResponse_Result) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 415 b = b[:cap(b)] 416 n, err := m.MarshalTo(b) 417 if err != nil { 418 return nil, err 419 } 420 return b[:n], nil 421 } 422 func (dst *TimeSeriesQueryResponse_Result) XXX_Merge(src proto.Message) { 423 xxx_messageInfo_TimeSeriesQueryResponse_Result.Merge(dst, src) 424 } 425 func (m *TimeSeriesQueryResponse_Result) XXX_Size() int { 426 return m.Size() 427 } 428 func (m *TimeSeriesQueryResponse_Result) XXX_DiscardUnknown() { 429 xxx_messageInfo_TimeSeriesQueryResponse_Result.DiscardUnknown(m) 430 } 431 432 var xxx_messageInfo_TimeSeriesQueryResponse_Result proto.InternalMessageInfo 433 434 type DumpRequest struct { 435 } 436 437 func (m *DumpRequest) Reset() { *m = DumpRequest{} } 438 func (m *DumpRequest) String() string { return proto.CompactTextString(m) } 439 func (*DumpRequest) ProtoMessage() {} 440 func (*DumpRequest) Descriptor() ([]byte, []int) { 441 return fileDescriptor_timeseries_01081b15400c236e, []int{5} 442 } 443 func (m *DumpRequest) XXX_Unmarshal(b []byte) error { 444 return m.Unmarshal(b) 445 } 446 func (m *DumpRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 447 b = b[:cap(b)] 448 n, err := m.MarshalTo(b) 449 if err != nil { 450 return nil, err 451 } 452 return b[:n], nil 453 } 454 func (dst *DumpRequest) XXX_Merge(src proto.Message) { 455 xxx_messageInfo_DumpRequest.Merge(dst, src) 456 } 457 func (m *DumpRequest) XXX_Size() int { 458 return m.Size() 459 } 460 func (m *DumpRequest) XXX_DiscardUnknown() { 461 xxx_messageInfo_DumpRequest.DiscardUnknown(m) 462 } 463 464 var xxx_messageInfo_DumpRequest proto.InternalMessageInfo 465 466 func init() { 467 proto.RegisterType((*TimeSeriesDatapoint)(nil), "cockroach.ts.tspb.TimeSeriesDatapoint") 468 proto.RegisterType((*TimeSeriesData)(nil), "cockroach.ts.tspb.TimeSeriesData") 469 proto.RegisterType((*Query)(nil), "cockroach.ts.tspb.Query") 470 proto.RegisterType((*TimeSeriesQueryRequest)(nil), "cockroach.ts.tspb.TimeSeriesQueryRequest") 471 proto.RegisterType((*TimeSeriesQueryResponse)(nil), "cockroach.ts.tspb.TimeSeriesQueryResponse") 472 proto.RegisterType((*TimeSeriesQueryResponse_Result)(nil), "cockroach.ts.tspb.TimeSeriesQueryResponse.Result") 473 proto.RegisterType((*DumpRequest)(nil), "cockroach.ts.tspb.DumpRequest") 474 proto.RegisterEnum("cockroach.ts.tspb.TimeSeriesQueryAggregator", TimeSeriesQueryAggregator_name, TimeSeriesQueryAggregator_value) 475 proto.RegisterEnum("cockroach.ts.tspb.TimeSeriesQueryDerivative", TimeSeriesQueryDerivative_name, TimeSeriesQueryDerivative_value) 476 } 477 478 // Reference imports to suppress errors if they are not otherwise used. 479 var _ context.Context 480 var _ grpc.ClientConn 481 482 // This is a compile-time assertion to ensure that this generated file 483 // is compatible with the grpc package it is being compiled against. 484 const _ = grpc.SupportPackageIsVersion4 485 486 // TimeSeriesClient is the client API for TimeSeries service. 487 // 488 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 489 type TimeSeriesClient interface { 490 // URL: /ts/query 491 Query(ctx context.Context, in *TimeSeriesQueryRequest, opts ...grpc.CallOption) (*TimeSeriesQueryResponse, error) 492 // Dump returns a stream of raw timeseries data that has been stored on the 493 // server. Only data from the 10-second resolution is returned - rollup data is 494 // not returned. Data is returned in the order it is read from disk, meaning 495 // that data from different series may be interleaved. 496 Dump(ctx context.Context, in *DumpRequest, opts ...grpc.CallOption) (TimeSeries_DumpClient, error) 497 } 498 499 type timeSeriesClient struct { 500 cc *grpc.ClientConn 501 } 502 503 func NewTimeSeriesClient(cc *grpc.ClientConn) TimeSeriesClient { 504 return &timeSeriesClient{cc} 505 } 506 507 func (c *timeSeriesClient) Query(ctx context.Context, in *TimeSeriesQueryRequest, opts ...grpc.CallOption) (*TimeSeriesQueryResponse, error) { 508 out := new(TimeSeriesQueryResponse) 509 err := c.cc.Invoke(ctx, "/cockroach.ts.tspb.TimeSeries/Query", in, out, opts...) 510 if err != nil { 511 return nil, err 512 } 513 return out, nil 514 } 515 516 func (c *timeSeriesClient) Dump(ctx context.Context, in *DumpRequest, opts ...grpc.CallOption) (TimeSeries_DumpClient, error) { 517 stream, err := c.cc.NewStream(ctx, &_TimeSeries_serviceDesc.Streams[0], "/cockroach.ts.tspb.TimeSeries/Dump", opts...) 518 if err != nil { 519 return nil, err 520 } 521 x := &timeSeriesDumpClient{stream} 522 if err := x.ClientStream.SendMsg(in); err != nil { 523 return nil, err 524 } 525 if err := x.ClientStream.CloseSend(); err != nil { 526 return nil, err 527 } 528 return x, nil 529 } 530 531 type TimeSeries_DumpClient interface { 532 Recv() (*TimeSeriesData, error) 533 grpc.ClientStream 534 } 535 536 type timeSeriesDumpClient struct { 537 grpc.ClientStream 538 } 539 540 func (x *timeSeriesDumpClient) Recv() (*TimeSeriesData, error) { 541 m := new(TimeSeriesData) 542 if err := x.ClientStream.RecvMsg(m); err != nil { 543 return nil, err 544 } 545 return m, nil 546 } 547 548 // TimeSeriesServer is the server API for TimeSeries service. 549 type TimeSeriesServer interface { 550 // URL: /ts/query 551 Query(context.Context, *TimeSeriesQueryRequest) (*TimeSeriesQueryResponse, error) 552 // Dump returns a stream of raw timeseries data that has been stored on the 553 // server. Only data from the 10-second resolution is returned - rollup data is 554 // not returned. Data is returned in the order it is read from disk, meaning 555 // that data from different series may be interleaved. 556 Dump(*DumpRequest, TimeSeries_DumpServer) error 557 } 558 559 func RegisterTimeSeriesServer(s *grpc.Server, srv TimeSeriesServer) { 560 s.RegisterService(&_TimeSeries_serviceDesc, srv) 561 } 562 563 func _TimeSeries_Query_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 564 in := new(TimeSeriesQueryRequest) 565 if err := dec(in); err != nil { 566 return nil, err 567 } 568 if interceptor == nil { 569 return srv.(TimeSeriesServer).Query(ctx, in) 570 } 571 info := &grpc.UnaryServerInfo{ 572 Server: srv, 573 FullMethod: "/cockroach.ts.tspb.TimeSeries/Query", 574 } 575 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 576 return srv.(TimeSeriesServer).Query(ctx, req.(*TimeSeriesQueryRequest)) 577 } 578 return interceptor(ctx, in, info, handler) 579 } 580 581 func _TimeSeries_Dump_Handler(srv interface{}, stream grpc.ServerStream) error { 582 m := new(DumpRequest) 583 if err := stream.RecvMsg(m); err != nil { 584 return err 585 } 586 return srv.(TimeSeriesServer).Dump(m, &timeSeriesDumpServer{stream}) 587 } 588 589 type TimeSeries_DumpServer interface { 590 Send(*TimeSeriesData) error 591 grpc.ServerStream 592 } 593 594 type timeSeriesDumpServer struct { 595 grpc.ServerStream 596 } 597 598 func (x *timeSeriesDumpServer) Send(m *TimeSeriesData) error { 599 return x.ServerStream.SendMsg(m) 600 } 601 602 var _TimeSeries_serviceDesc = grpc.ServiceDesc{ 603 ServiceName: "cockroach.ts.tspb.TimeSeries", 604 HandlerType: (*TimeSeriesServer)(nil), 605 Methods: []grpc.MethodDesc{ 606 { 607 MethodName: "Query", 608 Handler: _TimeSeries_Query_Handler, 609 }, 610 }, 611 Streams: []grpc.StreamDesc{ 612 { 613 StreamName: "Dump", 614 Handler: _TimeSeries_Dump_Handler, 615 ServerStreams: true, 616 }, 617 }, 618 Metadata: "ts/tspb/timeseries.proto", 619 } 620 621 func (m *TimeSeriesDatapoint) Marshal() (dAtA []byte, err error) { 622 size := m.Size() 623 dAtA = make([]byte, size) 624 n, err := m.MarshalTo(dAtA) 625 if err != nil { 626 return nil, err 627 } 628 return dAtA[:n], nil 629 } 630 631 func (m *TimeSeriesDatapoint) MarshalTo(dAtA []byte) (int, error) { 632 var i int 633 _ = i 634 var l int 635 _ = l 636 dAtA[i] = 0x8 637 i++ 638 i = encodeVarintTimeseries(dAtA, i, uint64(m.TimestampNanos)) 639 dAtA[i] = 0x11 640 i++ 641 encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Value)))) 642 i += 8 643 return i, nil 644 } 645 646 func (m *TimeSeriesData) Marshal() (dAtA []byte, err error) { 647 size := m.Size() 648 dAtA = make([]byte, size) 649 n, err := m.MarshalTo(dAtA) 650 if err != nil { 651 return nil, err 652 } 653 return dAtA[:n], nil 654 } 655 656 func (m *TimeSeriesData) MarshalTo(dAtA []byte) (int, error) { 657 var i int 658 _ = i 659 var l int 660 _ = l 661 dAtA[i] = 0xa 662 i++ 663 i = encodeVarintTimeseries(dAtA, i, uint64(len(m.Name))) 664 i += copy(dAtA[i:], m.Name) 665 dAtA[i] = 0x12 666 i++ 667 i = encodeVarintTimeseries(dAtA, i, uint64(len(m.Source))) 668 i += copy(dAtA[i:], m.Source) 669 if len(m.Datapoints) > 0 { 670 for _, msg := range m.Datapoints { 671 dAtA[i] = 0x1a 672 i++ 673 i = encodeVarintTimeseries(dAtA, i, uint64(msg.Size())) 674 n, err := msg.MarshalTo(dAtA[i:]) 675 if err != nil { 676 return 0, err 677 } 678 i += n 679 } 680 } 681 return i, nil 682 } 683 684 func (m *Query) Marshal() (dAtA []byte, err error) { 685 size := m.Size() 686 dAtA = make([]byte, size) 687 n, err := m.MarshalTo(dAtA) 688 if err != nil { 689 return nil, err 690 } 691 return dAtA[:n], nil 692 } 693 694 func (m *Query) MarshalTo(dAtA []byte) (int, error) { 695 var i int 696 _ = i 697 var l int 698 _ = l 699 dAtA[i] = 0xa 700 i++ 701 i = encodeVarintTimeseries(dAtA, i, uint64(len(m.Name))) 702 i += copy(dAtA[i:], m.Name) 703 if m.Downsampler != nil { 704 dAtA[i] = 0x10 705 i++ 706 i = encodeVarintTimeseries(dAtA, i, uint64(*m.Downsampler)) 707 } 708 if m.SourceAggregator != nil { 709 dAtA[i] = 0x18 710 i++ 711 i = encodeVarintTimeseries(dAtA, i, uint64(*m.SourceAggregator)) 712 } 713 if m.Derivative != nil { 714 dAtA[i] = 0x20 715 i++ 716 i = encodeVarintTimeseries(dAtA, i, uint64(*m.Derivative)) 717 } 718 if len(m.Sources) > 0 { 719 for _, s := range m.Sources { 720 dAtA[i] = 0x2a 721 i++ 722 l = len(s) 723 for l >= 1<<7 { 724 dAtA[i] = uint8(uint64(l)&0x7f | 0x80) 725 l >>= 7 726 i++ 727 } 728 dAtA[i] = uint8(l) 729 i++ 730 i += copy(dAtA[i:], s) 731 } 732 } 733 return i, nil 734 } 735 736 func (m *TimeSeriesQueryRequest) Marshal() (dAtA []byte, err error) { 737 size := m.Size() 738 dAtA = make([]byte, size) 739 n, err := m.MarshalTo(dAtA) 740 if err != nil { 741 return nil, err 742 } 743 return dAtA[:n], nil 744 } 745 746 func (m *TimeSeriesQueryRequest) MarshalTo(dAtA []byte) (int, error) { 747 var i int 748 _ = i 749 var l int 750 _ = l 751 dAtA[i] = 0x8 752 i++ 753 i = encodeVarintTimeseries(dAtA, i, uint64(m.StartNanos)) 754 dAtA[i] = 0x10 755 i++ 756 i = encodeVarintTimeseries(dAtA, i, uint64(m.EndNanos)) 757 if len(m.Queries) > 0 { 758 for _, msg := range m.Queries { 759 dAtA[i] = 0x1a 760 i++ 761 i = encodeVarintTimeseries(dAtA, i, uint64(msg.Size())) 762 n, err := msg.MarshalTo(dAtA[i:]) 763 if err != nil { 764 return 0, err 765 } 766 i += n 767 } 768 } 769 dAtA[i] = 0x20 770 i++ 771 i = encodeVarintTimeseries(dAtA, i, uint64(m.SampleNanos)) 772 return i, nil 773 } 774 775 func (m *TimeSeriesQueryResponse) Marshal() (dAtA []byte, err error) { 776 size := m.Size() 777 dAtA = make([]byte, size) 778 n, err := m.MarshalTo(dAtA) 779 if err != nil { 780 return nil, err 781 } 782 return dAtA[:n], nil 783 } 784 785 func (m *TimeSeriesQueryResponse) MarshalTo(dAtA []byte) (int, error) { 786 var i int 787 _ = i 788 var l int 789 _ = l 790 if len(m.Results) > 0 { 791 for _, msg := range m.Results { 792 dAtA[i] = 0xa 793 i++ 794 i = encodeVarintTimeseries(dAtA, i, uint64(msg.Size())) 795 n, err := msg.MarshalTo(dAtA[i:]) 796 if err != nil { 797 return 0, err 798 } 799 i += n 800 } 801 } 802 return i, nil 803 } 804 805 func (m *TimeSeriesQueryResponse_Result) Marshal() (dAtA []byte, err error) { 806 size := m.Size() 807 dAtA = make([]byte, size) 808 n, err := m.MarshalTo(dAtA) 809 if err != nil { 810 return nil, err 811 } 812 return dAtA[:n], nil 813 } 814 815 func (m *TimeSeriesQueryResponse_Result) MarshalTo(dAtA []byte) (int, error) { 816 var i int 817 _ = i 818 var l int 819 _ = l 820 dAtA[i] = 0xa 821 i++ 822 i = encodeVarintTimeseries(dAtA, i, uint64(m.Query.Size())) 823 n1, err := m.Query.MarshalTo(dAtA[i:]) 824 if err != nil { 825 return 0, err 826 } 827 i += n1 828 if len(m.Datapoints) > 0 { 829 for _, msg := range m.Datapoints { 830 dAtA[i] = 0x12 831 i++ 832 i = encodeVarintTimeseries(dAtA, i, uint64(msg.Size())) 833 n, err := msg.MarshalTo(dAtA[i:]) 834 if err != nil { 835 return 0, err 836 } 837 i += n 838 } 839 } 840 return i, nil 841 } 842 843 func (m *DumpRequest) Marshal() (dAtA []byte, err error) { 844 size := m.Size() 845 dAtA = make([]byte, size) 846 n, err := m.MarshalTo(dAtA) 847 if err != nil { 848 return nil, err 849 } 850 return dAtA[:n], nil 851 } 852 853 func (m *DumpRequest) MarshalTo(dAtA []byte) (int, error) { 854 var i int 855 _ = i 856 var l int 857 _ = l 858 return i, nil 859 } 860 861 func encodeVarintTimeseries(dAtA []byte, offset int, v uint64) int { 862 for v >= 1<<7 { 863 dAtA[offset] = uint8(v&0x7f | 0x80) 864 v >>= 7 865 offset++ 866 } 867 dAtA[offset] = uint8(v) 868 return offset + 1 869 } 870 func (m *TimeSeriesDatapoint) Size() (n int) { 871 if m == nil { 872 return 0 873 } 874 var l int 875 _ = l 876 n += 1 + sovTimeseries(uint64(m.TimestampNanos)) 877 n += 9 878 return n 879 } 880 881 func (m *TimeSeriesData) Size() (n int) { 882 if m == nil { 883 return 0 884 } 885 var l int 886 _ = l 887 l = len(m.Name) 888 n += 1 + l + sovTimeseries(uint64(l)) 889 l = len(m.Source) 890 n += 1 + l + sovTimeseries(uint64(l)) 891 if len(m.Datapoints) > 0 { 892 for _, e := range m.Datapoints { 893 l = e.Size() 894 n += 1 + l + sovTimeseries(uint64(l)) 895 } 896 } 897 return n 898 } 899 900 func (m *Query) Size() (n int) { 901 if m == nil { 902 return 0 903 } 904 var l int 905 _ = l 906 l = len(m.Name) 907 n += 1 + l + sovTimeseries(uint64(l)) 908 if m.Downsampler != nil { 909 n += 1 + sovTimeseries(uint64(*m.Downsampler)) 910 } 911 if m.SourceAggregator != nil { 912 n += 1 + sovTimeseries(uint64(*m.SourceAggregator)) 913 } 914 if m.Derivative != nil { 915 n += 1 + sovTimeseries(uint64(*m.Derivative)) 916 } 917 if len(m.Sources) > 0 { 918 for _, s := range m.Sources { 919 l = len(s) 920 n += 1 + l + sovTimeseries(uint64(l)) 921 } 922 } 923 return n 924 } 925 926 func (m *TimeSeriesQueryRequest) Size() (n int) { 927 if m == nil { 928 return 0 929 } 930 var l int 931 _ = l 932 n += 1 + sovTimeseries(uint64(m.StartNanos)) 933 n += 1 + sovTimeseries(uint64(m.EndNanos)) 934 if len(m.Queries) > 0 { 935 for _, e := range m.Queries { 936 l = e.Size() 937 n += 1 + l + sovTimeseries(uint64(l)) 938 } 939 } 940 n += 1 + sovTimeseries(uint64(m.SampleNanos)) 941 return n 942 } 943 944 func (m *TimeSeriesQueryResponse) Size() (n int) { 945 if m == nil { 946 return 0 947 } 948 var l int 949 _ = l 950 if len(m.Results) > 0 { 951 for _, e := range m.Results { 952 l = e.Size() 953 n += 1 + l + sovTimeseries(uint64(l)) 954 } 955 } 956 return n 957 } 958 959 func (m *TimeSeriesQueryResponse_Result) Size() (n int) { 960 if m == nil { 961 return 0 962 } 963 var l int 964 _ = l 965 l = m.Query.Size() 966 n += 1 + l + sovTimeseries(uint64(l)) 967 if len(m.Datapoints) > 0 { 968 for _, e := range m.Datapoints { 969 l = e.Size() 970 n += 1 + l + sovTimeseries(uint64(l)) 971 } 972 } 973 return n 974 } 975 976 func (m *DumpRequest) Size() (n int) { 977 if m == nil { 978 return 0 979 } 980 var l int 981 _ = l 982 return n 983 } 984 985 func sovTimeseries(x uint64) (n int) { 986 for { 987 n++ 988 x >>= 7 989 if x == 0 { 990 break 991 } 992 } 993 return n 994 } 995 func sozTimeseries(x uint64) (n int) { 996 return sovTimeseries(uint64((x << 1) ^ uint64((int64(x) >> 63)))) 997 } 998 func (m *TimeSeriesDatapoint) Unmarshal(dAtA []byte) error { 999 l := len(dAtA) 1000 iNdEx := 0 1001 for iNdEx < l { 1002 preIndex := iNdEx 1003 var wire uint64 1004 for shift := uint(0); ; shift += 7 { 1005 if shift >= 64 { 1006 return ErrIntOverflowTimeseries 1007 } 1008 if iNdEx >= l { 1009 return io.ErrUnexpectedEOF 1010 } 1011 b := dAtA[iNdEx] 1012 iNdEx++ 1013 wire |= (uint64(b) & 0x7F) << shift 1014 if b < 0x80 { 1015 break 1016 } 1017 } 1018 fieldNum := int32(wire >> 3) 1019 wireType := int(wire & 0x7) 1020 if wireType == 4 { 1021 return fmt.Errorf("proto: TimeSeriesDatapoint: wiretype end group for non-group") 1022 } 1023 if fieldNum <= 0 { 1024 return fmt.Errorf("proto: TimeSeriesDatapoint: illegal tag %d (wire type %d)", fieldNum, wire) 1025 } 1026 switch fieldNum { 1027 case 1: 1028 if wireType != 0 { 1029 return fmt.Errorf("proto: wrong wireType = %d for field TimestampNanos", wireType) 1030 } 1031 m.TimestampNanos = 0 1032 for shift := uint(0); ; shift += 7 { 1033 if shift >= 64 { 1034 return ErrIntOverflowTimeseries 1035 } 1036 if iNdEx >= l { 1037 return io.ErrUnexpectedEOF 1038 } 1039 b := dAtA[iNdEx] 1040 iNdEx++ 1041 m.TimestampNanos |= (int64(b) & 0x7F) << shift 1042 if b < 0x80 { 1043 break 1044 } 1045 } 1046 case 2: 1047 if wireType != 1 { 1048 return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) 1049 } 1050 var v uint64 1051 if (iNdEx + 8) > l { 1052 return io.ErrUnexpectedEOF 1053 } 1054 v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:])) 1055 iNdEx += 8 1056 m.Value = float64(math.Float64frombits(v)) 1057 default: 1058 iNdEx = preIndex 1059 skippy, err := skipTimeseries(dAtA[iNdEx:]) 1060 if err != nil { 1061 return err 1062 } 1063 if skippy < 0 { 1064 return ErrInvalidLengthTimeseries 1065 } 1066 if (iNdEx + skippy) > l { 1067 return io.ErrUnexpectedEOF 1068 } 1069 iNdEx += skippy 1070 } 1071 } 1072 1073 if iNdEx > l { 1074 return io.ErrUnexpectedEOF 1075 } 1076 return nil 1077 } 1078 func (m *TimeSeriesData) Unmarshal(dAtA []byte) error { 1079 l := len(dAtA) 1080 iNdEx := 0 1081 for iNdEx < l { 1082 preIndex := iNdEx 1083 var wire uint64 1084 for shift := uint(0); ; shift += 7 { 1085 if shift >= 64 { 1086 return ErrIntOverflowTimeseries 1087 } 1088 if iNdEx >= l { 1089 return io.ErrUnexpectedEOF 1090 } 1091 b := dAtA[iNdEx] 1092 iNdEx++ 1093 wire |= (uint64(b) & 0x7F) << shift 1094 if b < 0x80 { 1095 break 1096 } 1097 } 1098 fieldNum := int32(wire >> 3) 1099 wireType := int(wire & 0x7) 1100 if wireType == 4 { 1101 return fmt.Errorf("proto: TimeSeriesData: wiretype end group for non-group") 1102 } 1103 if fieldNum <= 0 { 1104 return fmt.Errorf("proto: TimeSeriesData: illegal tag %d (wire type %d)", fieldNum, wire) 1105 } 1106 switch fieldNum { 1107 case 1: 1108 if wireType != 2 { 1109 return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) 1110 } 1111 var stringLen uint64 1112 for shift := uint(0); ; shift += 7 { 1113 if shift >= 64 { 1114 return ErrIntOverflowTimeseries 1115 } 1116 if iNdEx >= l { 1117 return io.ErrUnexpectedEOF 1118 } 1119 b := dAtA[iNdEx] 1120 iNdEx++ 1121 stringLen |= (uint64(b) & 0x7F) << shift 1122 if b < 0x80 { 1123 break 1124 } 1125 } 1126 intStringLen := int(stringLen) 1127 if intStringLen < 0 { 1128 return ErrInvalidLengthTimeseries 1129 } 1130 postIndex := iNdEx + intStringLen 1131 if postIndex > l { 1132 return io.ErrUnexpectedEOF 1133 } 1134 m.Name = string(dAtA[iNdEx:postIndex]) 1135 iNdEx = postIndex 1136 case 2: 1137 if wireType != 2 { 1138 return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType) 1139 } 1140 var stringLen uint64 1141 for shift := uint(0); ; shift += 7 { 1142 if shift >= 64 { 1143 return ErrIntOverflowTimeseries 1144 } 1145 if iNdEx >= l { 1146 return io.ErrUnexpectedEOF 1147 } 1148 b := dAtA[iNdEx] 1149 iNdEx++ 1150 stringLen |= (uint64(b) & 0x7F) << shift 1151 if b < 0x80 { 1152 break 1153 } 1154 } 1155 intStringLen := int(stringLen) 1156 if intStringLen < 0 { 1157 return ErrInvalidLengthTimeseries 1158 } 1159 postIndex := iNdEx + intStringLen 1160 if postIndex > l { 1161 return io.ErrUnexpectedEOF 1162 } 1163 m.Source = string(dAtA[iNdEx:postIndex]) 1164 iNdEx = postIndex 1165 case 3: 1166 if wireType != 2 { 1167 return fmt.Errorf("proto: wrong wireType = %d for field Datapoints", wireType) 1168 } 1169 var msglen int 1170 for shift := uint(0); ; shift += 7 { 1171 if shift >= 64 { 1172 return ErrIntOverflowTimeseries 1173 } 1174 if iNdEx >= l { 1175 return io.ErrUnexpectedEOF 1176 } 1177 b := dAtA[iNdEx] 1178 iNdEx++ 1179 msglen |= (int(b) & 0x7F) << shift 1180 if b < 0x80 { 1181 break 1182 } 1183 } 1184 if msglen < 0 { 1185 return ErrInvalidLengthTimeseries 1186 } 1187 postIndex := iNdEx + msglen 1188 if postIndex > l { 1189 return io.ErrUnexpectedEOF 1190 } 1191 m.Datapoints = append(m.Datapoints, TimeSeriesDatapoint{}) 1192 if err := m.Datapoints[len(m.Datapoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { 1193 return err 1194 } 1195 iNdEx = postIndex 1196 default: 1197 iNdEx = preIndex 1198 skippy, err := skipTimeseries(dAtA[iNdEx:]) 1199 if err != nil { 1200 return err 1201 } 1202 if skippy < 0 { 1203 return ErrInvalidLengthTimeseries 1204 } 1205 if (iNdEx + skippy) > l { 1206 return io.ErrUnexpectedEOF 1207 } 1208 iNdEx += skippy 1209 } 1210 } 1211 1212 if iNdEx > l { 1213 return io.ErrUnexpectedEOF 1214 } 1215 return nil 1216 } 1217 func (m *Query) Unmarshal(dAtA []byte) error { 1218 l := len(dAtA) 1219 iNdEx := 0 1220 for iNdEx < l { 1221 preIndex := iNdEx 1222 var wire uint64 1223 for shift := uint(0); ; shift += 7 { 1224 if shift >= 64 { 1225 return ErrIntOverflowTimeseries 1226 } 1227 if iNdEx >= l { 1228 return io.ErrUnexpectedEOF 1229 } 1230 b := dAtA[iNdEx] 1231 iNdEx++ 1232 wire |= (uint64(b) & 0x7F) << shift 1233 if b < 0x80 { 1234 break 1235 } 1236 } 1237 fieldNum := int32(wire >> 3) 1238 wireType := int(wire & 0x7) 1239 if wireType == 4 { 1240 return fmt.Errorf("proto: Query: wiretype end group for non-group") 1241 } 1242 if fieldNum <= 0 { 1243 return fmt.Errorf("proto: Query: illegal tag %d (wire type %d)", fieldNum, wire) 1244 } 1245 switch fieldNum { 1246 case 1: 1247 if wireType != 2 { 1248 return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) 1249 } 1250 var stringLen uint64 1251 for shift := uint(0); ; shift += 7 { 1252 if shift >= 64 { 1253 return ErrIntOverflowTimeseries 1254 } 1255 if iNdEx >= l { 1256 return io.ErrUnexpectedEOF 1257 } 1258 b := dAtA[iNdEx] 1259 iNdEx++ 1260 stringLen |= (uint64(b) & 0x7F) << shift 1261 if b < 0x80 { 1262 break 1263 } 1264 } 1265 intStringLen := int(stringLen) 1266 if intStringLen < 0 { 1267 return ErrInvalidLengthTimeseries 1268 } 1269 postIndex := iNdEx + intStringLen 1270 if postIndex > l { 1271 return io.ErrUnexpectedEOF 1272 } 1273 m.Name = string(dAtA[iNdEx:postIndex]) 1274 iNdEx = postIndex 1275 case 2: 1276 if wireType != 0 { 1277 return fmt.Errorf("proto: wrong wireType = %d for field Downsampler", wireType) 1278 } 1279 var v TimeSeriesQueryAggregator 1280 for shift := uint(0); ; shift += 7 { 1281 if shift >= 64 { 1282 return ErrIntOverflowTimeseries 1283 } 1284 if iNdEx >= l { 1285 return io.ErrUnexpectedEOF 1286 } 1287 b := dAtA[iNdEx] 1288 iNdEx++ 1289 v |= (TimeSeriesQueryAggregator(b) & 0x7F) << shift 1290 if b < 0x80 { 1291 break 1292 } 1293 } 1294 m.Downsampler = &v 1295 case 3: 1296 if wireType != 0 { 1297 return fmt.Errorf("proto: wrong wireType = %d for field SourceAggregator", wireType) 1298 } 1299 var v TimeSeriesQueryAggregator 1300 for shift := uint(0); ; shift += 7 { 1301 if shift >= 64 { 1302 return ErrIntOverflowTimeseries 1303 } 1304 if iNdEx >= l { 1305 return io.ErrUnexpectedEOF 1306 } 1307 b := dAtA[iNdEx] 1308 iNdEx++ 1309 v |= (TimeSeriesQueryAggregator(b) & 0x7F) << shift 1310 if b < 0x80 { 1311 break 1312 } 1313 } 1314 m.SourceAggregator = &v 1315 case 4: 1316 if wireType != 0 { 1317 return fmt.Errorf("proto: wrong wireType = %d for field Derivative", wireType) 1318 } 1319 var v TimeSeriesQueryDerivative 1320 for shift := uint(0); ; shift += 7 { 1321 if shift >= 64 { 1322 return ErrIntOverflowTimeseries 1323 } 1324 if iNdEx >= l { 1325 return io.ErrUnexpectedEOF 1326 } 1327 b := dAtA[iNdEx] 1328 iNdEx++ 1329 v |= (TimeSeriesQueryDerivative(b) & 0x7F) << shift 1330 if b < 0x80 { 1331 break 1332 } 1333 } 1334 m.Derivative = &v 1335 case 5: 1336 if wireType != 2 { 1337 return fmt.Errorf("proto: wrong wireType = %d for field Sources", wireType) 1338 } 1339 var stringLen uint64 1340 for shift := uint(0); ; shift += 7 { 1341 if shift >= 64 { 1342 return ErrIntOverflowTimeseries 1343 } 1344 if iNdEx >= l { 1345 return io.ErrUnexpectedEOF 1346 } 1347 b := dAtA[iNdEx] 1348 iNdEx++ 1349 stringLen |= (uint64(b) & 0x7F) << shift 1350 if b < 0x80 { 1351 break 1352 } 1353 } 1354 intStringLen := int(stringLen) 1355 if intStringLen < 0 { 1356 return ErrInvalidLengthTimeseries 1357 } 1358 postIndex := iNdEx + intStringLen 1359 if postIndex > l { 1360 return io.ErrUnexpectedEOF 1361 } 1362 m.Sources = append(m.Sources, string(dAtA[iNdEx:postIndex])) 1363 iNdEx = postIndex 1364 default: 1365 iNdEx = preIndex 1366 skippy, err := skipTimeseries(dAtA[iNdEx:]) 1367 if err != nil { 1368 return err 1369 } 1370 if skippy < 0 { 1371 return ErrInvalidLengthTimeseries 1372 } 1373 if (iNdEx + skippy) > l { 1374 return io.ErrUnexpectedEOF 1375 } 1376 iNdEx += skippy 1377 } 1378 } 1379 1380 if iNdEx > l { 1381 return io.ErrUnexpectedEOF 1382 } 1383 return nil 1384 } 1385 func (m *TimeSeriesQueryRequest) Unmarshal(dAtA []byte) error { 1386 l := len(dAtA) 1387 iNdEx := 0 1388 for iNdEx < l { 1389 preIndex := iNdEx 1390 var wire uint64 1391 for shift := uint(0); ; shift += 7 { 1392 if shift >= 64 { 1393 return ErrIntOverflowTimeseries 1394 } 1395 if iNdEx >= l { 1396 return io.ErrUnexpectedEOF 1397 } 1398 b := dAtA[iNdEx] 1399 iNdEx++ 1400 wire |= (uint64(b) & 0x7F) << shift 1401 if b < 0x80 { 1402 break 1403 } 1404 } 1405 fieldNum := int32(wire >> 3) 1406 wireType := int(wire & 0x7) 1407 if wireType == 4 { 1408 return fmt.Errorf("proto: TimeSeriesQueryRequest: wiretype end group for non-group") 1409 } 1410 if fieldNum <= 0 { 1411 return fmt.Errorf("proto: TimeSeriesQueryRequest: illegal tag %d (wire type %d)", fieldNum, wire) 1412 } 1413 switch fieldNum { 1414 case 1: 1415 if wireType != 0 { 1416 return fmt.Errorf("proto: wrong wireType = %d for field StartNanos", wireType) 1417 } 1418 m.StartNanos = 0 1419 for shift := uint(0); ; shift += 7 { 1420 if shift >= 64 { 1421 return ErrIntOverflowTimeseries 1422 } 1423 if iNdEx >= l { 1424 return io.ErrUnexpectedEOF 1425 } 1426 b := dAtA[iNdEx] 1427 iNdEx++ 1428 m.StartNanos |= (int64(b) & 0x7F) << shift 1429 if b < 0x80 { 1430 break 1431 } 1432 } 1433 case 2: 1434 if wireType != 0 { 1435 return fmt.Errorf("proto: wrong wireType = %d for field EndNanos", wireType) 1436 } 1437 m.EndNanos = 0 1438 for shift := uint(0); ; shift += 7 { 1439 if shift >= 64 { 1440 return ErrIntOverflowTimeseries 1441 } 1442 if iNdEx >= l { 1443 return io.ErrUnexpectedEOF 1444 } 1445 b := dAtA[iNdEx] 1446 iNdEx++ 1447 m.EndNanos |= (int64(b) & 0x7F) << shift 1448 if b < 0x80 { 1449 break 1450 } 1451 } 1452 case 3: 1453 if wireType != 2 { 1454 return fmt.Errorf("proto: wrong wireType = %d for field Queries", wireType) 1455 } 1456 var msglen int 1457 for shift := uint(0); ; shift += 7 { 1458 if shift >= 64 { 1459 return ErrIntOverflowTimeseries 1460 } 1461 if iNdEx >= l { 1462 return io.ErrUnexpectedEOF 1463 } 1464 b := dAtA[iNdEx] 1465 iNdEx++ 1466 msglen |= (int(b) & 0x7F) << shift 1467 if b < 0x80 { 1468 break 1469 } 1470 } 1471 if msglen < 0 { 1472 return ErrInvalidLengthTimeseries 1473 } 1474 postIndex := iNdEx + msglen 1475 if postIndex > l { 1476 return io.ErrUnexpectedEOF 1477 } 1478 m.Queries = append(m.Queries, Query{}) 1479 if err := m.Queries[len(m.Queries)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { 1480 return err 1481 } 1482 iNdEx = postIndex 1483 case 4: 1484 if wireType != 0 { 1485 return fmt.Errorf("proto: wrong wireType = %d for field SampleNanos", wireType) 1486 } 1487 m.SampleNanos = 0 1488 for shift := uint(0); ; shift += 7 { 1489 if shift >= 64 { 1490 return ErrIntOverflowTimeseries 1491 } 1492 if iNdEx >= l { 1493 return io.ErrUnexpectedEOF 1494 } 1495 b := dAtA[iNdEx] 1496 iNdEx++ 1497 m.SampleNanos |= (int64(b) & 0x7F) << shift 1498 if b < 0x80 { 1499 break 1500 } 1501 } 1502 default: 1503 iNdEx = preIndex 1504 skippy, err := skipTimeseries(dAtA[iNdEx:]) 1505 if err != nil { 1506 return err 1507 } 1508 if skippy < 0 { 1509 return ErrInvalidLengthTimeseries 1510 } 1511 if (iNdEx + skippy) > l { 1512 return io.ErrUnexpectedEOF 1513 } 1514 iNdEx += skippy 1515 } 1516 } 1517 1518 if iNdEx > l { 1519 return io.ErrUnexpectedEOF 1520 } 1521 return nil 1522 } 1523 func (m *TimeSeriesQueryResponse) Unmarshal(dAtA []byte) error { 1524 l := len(dAtA) 1525 iNdEx := 0 1526 for iNdEx < l { 1527 preIndex := iNdEx 1528 var wire uint64 1529 for shift := uint(0); ; shift += 7 { 1530 if shift >= 64 { 1531 return ErrIntOverflowTimeseries 1532 } 1533 if iNdEx >= l { 1534 return io.ErrUnexpectedEOF 1535 } 1536 b := dAtA[iNdEx] 1537 iNdEx++ 1538 wire |= (uint64(b) & 0x7F) << shift 1539 if b < 0x80 { 1540 break 1541 } 1542 } 1543 fieldNum := int32(wire >> 3) 1544 wireType := int(wire & 0x7) 1545 if wireType == 4 { 1546 return fmt.Errorf("proto: TimeSeriesQueryResponse: wiretype end group for non-group") 1547 } 1548 if fieldNum <= 0 { 1549 return fmt.Errorf("proto: TimeSeriesQueryResponse: illegal tag %d (wire type %d)", fieldNum, wire) 1550 } 1551 switch fieldNum { 1552 case 1: 1553 if wireType != 2 { 1554 return fmt.Errorf("proto: wrong wireType = %d for field Results", wireType) 1555 } 1556 var msglen int 1557 for shift := uint(0); ; shift += 7 { 1558 if shift >= 64 { 1559 return ErrIntOverflowTimeseries 1560 } 1561 if iNdEx >= l { 1562 return io.ErrUnexpectedEOF 1563 } 1564 b := dAtA[iNdEx] 1565 iNdEx++ 1566 msglen |= (int(b) & 0x7F) << shift 1567 if b < 0x80 { 1568 break 1569 } 1570 } 1571 if msglen < 0 { 1572 return ErrInvalidLengthTimeseries 1573 } 1574 postIndex := iNdEx + msglen 1575 if postIndex > l { 1576 return io.ErrUnexpectedEOF 1577 } 1578 m.Results = append(m.Results, TimeSeriesQueryResponse_Result{}) 1579 if err := m.Results[len(m.Results)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { 1580 return err 1581 } 1582 iNdEx = postIndex 1583 default: 1584 iNdEx = preIndex 1585 skippy, err := skipTimeseries(dAtA[iNdEx:]) 1586 if err != nil { 1587 return err 1588 } 1589 if skippy < 0 { 1590 return ErrInvalidLengthTimeseries 1591 } 1592 if (iNdEx + skippy) > l { 1593 return io.ErrUnexpectedEOF 1594 } 1595 iNdEx += skippy 1596 } 1597 } 1598 1599 if iNdEx > l { 1600 return io.ErrUnexpectedEOF 1601 } 1602 return nil 1603 } 1604 func (m *TimeSeriesQueryResponse_Result) Unmarshal(dAtA []byte) error { 1605 l := len(dAtA) 1606 iNdEx := 0 1607 for iNdEx < l { 1608 preIndex := iNdEx 1609 var wire uint64 1610 for shift := uint(0); ; shift += 7 { 1611 if shift >= 64 { 1612 return ErrIntOverflowTimeseries 1613 } 1614 if iNdEx >= l { 1615 return io.ErrUnexpectedEOF 1616 } 1617 b := dAtA[iNdEx] 1618 iNdEx++ 1619 wire |= (uint64(b) & 0x7F) << shift 1620 if b < 0x80 { 1621 break 1622 } 1623 } 1624 fieldNum := int32(wire >> 3) 1625 wireType := int(wire & 0x7) 1626 if wireType == 4 { 1627 return fmt.Errorf("proto: Result: wiretype end group for non-group") 1628 } 1629 if fieldNum <= 0 { 1630 return fmt.Errorf("proto: Result: illegal tag %d (wire type %d)", fieldNum, wire) 1631 } 1632 switch fieldNum { 1633 case 1: 1634 if wireType != 2 { 1635 return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) 1636 } 1637 var msglen int 1638 for shift := uint(0); ; shift += 7 { 1639 if shift >= 64 { 1640 return ErrIntOverflowTimeseries 1641 } 1642 if iNdEx >= l { 1643 return io.ErrUnexpectedEOF 1644 } 1645 b := dAtA[iNdEx] 1646 iNdEx++ 1647 msglen |= (int(b) & 0x7F) << shift 1648 if b < 0x80 { 1649 break 1650 } 1651 } 1652 if msglen < 0 { 1653 return ErrInvalidLengthTimeseries 1654 } 1655 postIndex := iNdEx + msglen 1656 if postIndex > l { 1657 return io.ErrUnexpectedEOF 1658 } 1659 if err := m.Query.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { 1660 return err 1661 } 1662 iNdEx = postIndex 1663 case 2: 1664 if wireType != 2 { 1665 return fmt.Errorf("proto: wrong wireType = %d for field Datapoints", wireType) 1666 } 1667 var msglen int 1668 for shift := uint(0); ; shift += 7 { 1669 if shift >= 64 { 1670 return ErrIntOverflowTimeseries 1671 } 1672 if iNdEx >= l { 1673 return io.ErrUnexpectedEOF 1674 } 1675 b := dAtA[iNdEx] 1676 iNdEx++ 1677 msglen |= (int(b) & 0x7F) << shift 1678 if b < 0x80 { 1679 break 1680 } 1681 } 1682 if msglen < 0 { 1683 return ErrInvalidLengthTimeseries 1684 } 1685 postIndex := iNdEx + msglen 1686 if postIndex > l { 1687 return io.ErrUnexpectedEOF 1688 } 1689 m.Datapoints = append(m.Datapoints, TimeSeriesDatapoint{}) 1690 if err := m.Datapoints[len(m.Datapoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { 1691 return err 1692 } 1693 iNdEx = postIndex 1694 default: 1695 iNdEx = preIndex 1696 skippy, err := skipTimeseries(dAtA[iNdEx:]) 1697 if err != nil { 1698 return err 1699 } 1700 if skippy < 0 { 1701 return ErrInvalidLengthTimeseries 1702 } 1703 if (iNdEx + skippy) > l { 1704 return io.ErrUnexpectedEOF 1705 } 1706 iNdEx += skippy 1707 } 1708 } 1709 1710 if iNdEx > l { 1711 return io.ErrUnexpectedEOF 1712 } 1713 return nil 1714 } 1715 func (m *DumpRequest) Unmarshal(dAtA []byte) error { 1716 l := len(dAtA) 1717 iNdEx := 0 1718 for iNdEx < l { 1719 preIndex := iNdEx 1720 var wire uint64 1721 for shift := uint(0); ; shift += 7 { 1722 if shift >= 64 { 1723 return ErrIntOverflowTimeseries 1724 } 1725 if iNdEx >= l { 1726 return io.ErrUnexpectedEOF 1727 } 1728 b := dAtA[iNdEx] 1729 iNdEx++ 1730 wire |= (uint64(b) & 0x7F) << shift 1731 if b < 0x80 { 1732 break 1733 } 1734 } 1735 fieldNum := int32(wire >> 3) 1736 wireType := int(wire & 0x7) 1737 if wireType == 4 { 1738 return fmt.Errorf("proto: DumpRequest: wiretype end group for non-group") 1739 } 1740 if fieldNum <= 0 { 1741 return fmt.Errorf("proto: DumpRequest: illegal tag %d (wire type %d)", fieldNum, wire) 1742 } 1743 switch fieldNum { 1744 default: 1745 iNdEx = preIndex 1746 skippy, err := skipTimeseries(dAtA[iNdEx:]) 1747 if err != nil { 1748 return err 1749 } 1750 if skippy < 0 { 1751 return ErrInvalidLengthTimeseries 1752 } 1753 if (iNdEx + skippy) > l { 1754 return io.ErrUnexpectedEOF 1755 } 1756 iNdEx += skippy 1757 } 1758 } 1759 1760 if iNdEx > l { 1761 return io.ErrUnexpectedEOF 1762 } 1763 return nil 1764 } 1765 func skipTimeseries(dAtA []byte) (n int, err error) { 1766 l := len(dAtA) 1767 iNdEx := 0 1768 for iNdEx < l { 1769 var wire uint64 1770 for shift := uint(0); ; shift += 7 { 1771 if shift >= 64 { 1772 return 0, ErrIntOverflowTimeseries 1773 } 1774 if iNdEx >= l { 1775 return 0, io.ErrUnexpectedEOF 1776 } 1777 b := dAtA[iNdEx] 1778 iNdEx++ 1779 wire |= (uint64(b) & 0x7F) << shift 1780 if b < 0x80 { 1781 break 1782 } 1783 } 1784 wireType := int(wire & 0x7) 1785 switch wireType { 1786 case 0: 1787 for shift := uint(0); ; shift += 7 { 1788 if shift >= 64 { 1789 return 0, ErrIntOverflowTimeseries 1790 } 1791 if iNdEx >= l { 1792 return 0, io.ErrUnexpectedEOF 1793 } 1794 iNdEx++ 1795 if dAtA[iNdEx-1] < 0x80 { 1796 break 1797 } 1798 } 1799 return iNdEx, nil 1800 case 1: 1801 iNdEx += 8 1802 return iNdEx, nil 1803 case 2: 1804 var length int 1805 for shift := uint(0); ; shift += 7 { 1806 if shift >= 64 { 1807 return 0, ErrIntOverflowTimeseries 1808 } 1809 if iNdEx >= l { 1810 return 0, io.ErrUnexpectedEOF 1811 } 1812 b := dAtA[iNdEx] 1813 iNdEx++ 1814 length |= (int(b) & 0x7F) << shift 1815 if b < 0x80 { 1816 break 1817 } 1818 } 1819 iNdEx += length 1820 if length < 0 { 1821 return 0, ErrInvalidLengthTimeseries 1822 } 1823 return iNdEx, nil 1824 case 3: 1825 for { 1826 var innerWire uint64 1827 var start int = iNdEx 1828 for shift := uint(0); ; shift += 7 { 1829 if shift >= 64 { 1830 return 0, ErrIntOverflowTimeseries 1831 } 1832 if iNdEx >= l { 1833 return 0, io.ErrUnexpectedEOF 1834 } 1835 b := dAtA[iNdEx] 1836 iNdEx++ 1837 innerWire |= (uint64(b) & 0x7F) << shift 1838 if b < 0x80 { 1839 break 1840 } 1841 } 1842 innerWireType := int(innerWire & 0x7) 1843 if innerWireType == 4 { 1844 break 1845 } 1846 next, err := skipTimeseries(dAtA[start:]) 1847 if err != nil { 1848 return 0, err 1849 } 1850 iNdEx = start + next 1851 } 1852 return iNdEx, nil 1853 case 4: 1854 return iNdEx, nil 1855 case 5: 1856 iNdEx += 4 1857 return iNdEx, nil 1858 default: 1859 return 0, fmt.Errorf("proto: illegal wireType %d", wireType) 1860 } 1861 } 1862 panic("unreachable") 1863 } 1864 1865 var ( 1866 ErrInvalidLengthTimeseries = fmt.Errorf("proto: negative length found during unmarshaling") 1867 ErrIntOverflowTimeseries = fmt.Errorf("proto: integer overflow") 1868 ) 1869 1870 func init() { 1871 proto.RegisterFile("ts/tspb/timeseries.proto", fileDescriptor_timeseries_01081b15400c236e) 1872 } 1873 1874 var fileDescriptor_timeseries_01081b15400c236e = []byte{ 1875 // 715 bytes of a gzipped FileDescriptorProto 1876 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x93, 0x4d, 0x6f, 0x12, 0x41, 1877 0x18, 0xc7, 0x19, 0x58, 0x0a, 0x3c, 0x54, 0xdc, 0x8e, 0x8d, 0x5d, 0xb1, 0xd9, 0xd2, 0x4d, 0xac, 1878 0x48, 0x14, 0xb4, 0xa7, 0x86, 0x1b, 0x15, 0x6c, 0x48, 0xca, 0x36, 0x5d, 0x28, 0x31, 0x1e, 0xc4, 1879 0x2d, 0x4c, 0x70, 0x23, 0xec, 0x6c, 0x77, 0x86, 0x9a, 0x5e, 0x3d, 0x79, 0x6c, 0x62, 0xe2, 0xd9, 1880 0x2f, 0x63, 0xd2, 0x78, 0xaa, 0xf1, 0xd2, 0x53, 0xa3, 0xd4, 0xef, 0xa1, 0xd9, 0xd9, 0xa5, 0xc5, 1881 0x16, 0xdb, 0x46, 0x6f, 0xb3, 0xcf, 0xcb, 0xef, 0xff, 0xbc, 0x2d, 0x28, 0x9c, 0x15, 0x38, 0x73, 1882 0xb6, 0x0b, 0xdc, 0xea, 0x13, 0x46, 0x5c, 0x8b, 0xb0, 0xbc, 0xe3, 0x52, 0x4e, 0xf1, 0x4c, 0x9b, 1883 0xb6, 0xdf, 0xb8, 0xd4, 0x6c, 0xbf, 0xce, 0x73, 0x96, 0xf7, 0x62, 0xd2, 0xb3, 0x5d, 0xda, 0xa5, 1884 0xc2, 0x5b, 0xf0, 0x5e, 0x7e, 0x60, 0x7a, 0xbe, 0x4b, 0x69, 0xb7, 0x47, 0x0a, 0xa6, 0x63, 0x15, 1885 0x4c, 0xdb, 0xa6, 0xdc, 0xe4, 0x16, 0xb5, 0x03, 0x8c, 0xf6, 0x0a, 0x6e, 0x35, 0xac, 0x3e, 0xa9, 1886 0x0b, 0x74, 0xd9, 0xe4, 0xa6, 0x43, 0x2d, 0x9b, 0xe3, 0x47, 0x70, 0x53, 0x28, 0x72, 0xb3, 0xef, 1887 0xb4, 0x6c, 0xd3, 0xa6, 0x4c, 0x41, 0x19, 0x94, 0x8d, 0xac, 0x4a, 0x07, 0xc7, 0x0b, 0x21, 0x23, 1888 0x75, 0xea, 0xd4, 0x3d, 0x1f, 0x4e, 0x43, 0x74, 0xd7, 0xec, 0x0d, 0x88, 0x12, 0xce, 0xa0, 0x2c, 1889 0x0a, 0x82, 0x7c, 0x93, 0xf6, 0x11, 0x41, 0xea, 0x4f, 0x09, 0xac, 0x80, 0x64, 0x9b, 0x7d, 0x22, 1890 0x90, 0x89, 0x20, 0x5a, 0x58, 0xf0, 0x3c, 0x4c, 0x31, 0x3a, 0x70, 0xdb, 0x3e, 0x69, 0xe4, 0x0b, 1891 0x6c, 0x78, 0x1d, 0xa0, 0x33, 0x2a, 0x91, 0x29, 0x91, 0x4c, 0x24, 0x9b, 0x5c, 0x5e, 0xca, 0x5f, 1892 0x18, 0x44, 0x7e, 0x42, 0x47, 0x01, 0x69, 0x2c, 0x5f, 0xfb, 0x12, 0x86, 0xe8, 0xe6, 0x80, 0xb8, 1893 0x7b, 0x97, 0xd4, 0x53, 0x87, 0x64, 0x87, 0xbe, 0xb5, 0x99, 0xd9, 0x77, 0x7a, 0xc4, 0x15, 0x45, 1894 0xa5, 0x96, 0x1f, 0x5e, 0x2a, 0x29, 0x90, 0xa5, 0x6e, 0xd7, 0x25, 0x5d, 0x93, 0x53, 0xb7, 0x18, 1895 0x29, 0x35, 0xd7, 0x8c, 0x71, 0x0a, 0x7e, 0x09, 0x33, 0x7e, 0x43, 0x2d, 0xf3, 0x34, 0x4c, 0x89, 1896 0xfc, 0x0b, 0xba, 0xbe, 0x55, 0x33, 0x64, 0x9f, 0x75, 0x66, 0xc6, 0x06, 0x40, 0x87, 0xb8, 0xd6, 1897 0xae, 0xc9, 0xad, 0x5d, 0xa2, 0x48, 0xd7, 0x05, 0x97, 0x4f, 0x73, 0x8a, 0x92, 0xbe, 0xa1, 0x57, 1898 0x8c, 0x31, 0x0a, 0x56, 0x20, 0xe6, 0xeb, 0x30, 0x25, 0x9a, 0x89, 0x64, 0x13, 0xc6, 0xe8, 0xb3, 1899 0x28, 0xbd, 0xff, 0xb4, 0x80, 0xb4, 0xcf, 0x08, 0x6e, 0x9f, 0xe3, 0x19, 0x64, 0x67, 0x40, 0x18, 1900 0xc7, 0xf7, 0x20, 0xc9, 0xb8, 0xe9, 0xf2, 0x09, 0x77, 0x04, 0xc2, 0xe1, 0xdf, 0xd0, 0x22, 0x24, 1901 0x88, 0xdd, 0x09, 0x82, 0xc2, 0x63, 0x41, 0x71, 0x62, 0x77, 0xfc, 0x90, 0x15, 0x88, 0xed, 0x0c, 1902 0x84, 0x40, 0xb0, 0x7c, 0x65, 0x42, 0x57, 0x42, 0x3b, 0x48, 0x1d, 0x85, 0xe3, 0xfb, 0x30, 0xed, 1903 0x4f, 0x3f, 0xe0, 0x4b, 0x63, 0xfc, 0xa4, 0xef, 0x11, 0x12, 0xda, 0x2f, 0x04, 0x73, 0x17, 0xfa, 1904 0x60, 0x0e, 0xb5, 0x19, 0xc1, 0x9b, 0x10, 0x73, 0x09, 0x1b, 0xf4, 0xb8, 0xd7, 0x84, 0x27, 0xff, 1905 0xe4, 0xea, 0xa1, 0x8e, 0x92, 0xf3, 0x86, 0xc8, 0x1c, 0xd5, 0x15, 0x70, 0xd2, 0xfb, 0x08, 0xa6, 1906 0x7c, 0x0f, 0x5e, 0x81, 0xa8, 0x57, 0xed, 0x9e, 0x18, 0xd0, 0x65, 0xad, 0xc5, 0x3d, 0xc4, 0xe1, 1907 0xf1, 0x02, 0x32, 0xfc, 0x84, 0x73, 0xbf, 0x45, 0xf8, 0x3f, 0x7f, 0x8b, 0x1b, 0x90, 0x2c, 0x0f, 1908 0xfa, 0x4e, 0xb0, 0xbd, 0xdc, 0x36, 0xdc, 0xf9, 0xeb, 0x01, 0xe2, 0x18, 0x78, 0xd7, 0x2d, 0x23, 1909 0xef, 0x51, 0xdf, 0xaa, 0xc9, 0x61, 0xef, 0x51, 0x2b, 0x3d, 0x97, 0x23, 0xe2, 0x51, 0xd5, 0x65, 1910 0x09, 0x27, 0x20, 0xfa, 0xac, 0x6a, 0xd4, 0x1b, 0x72, 0x14, 0xc7, 0x41, 0x5a, 0x2f, 0xd5, 0x1b, 1911 0xf2, 0x14, 0x9e, 0x86, 0x78, 0xb3, 0x64, 0x54, 0x4b, 0xfa, 0xd3, 0x8a, 0x1c, 0xcb, 0x19, 0x17, 1912 0x34, 0xce, 0x6e, 0xd1, 0x4b, 0xf2, 0xae, 0x51, 0x0e, 0xe1, 0x14, 0x40, 0xb9, 0x62, 0x54, 0x9b, 1913 0xa5, 0x46, 0xb5, 0x59, 0x91, 0x11, 0xbe, 0x0b, 0x73, 0xfa, 0x86, 0xde, 0xd2, 0x2b, 0x6b, 0xc2, 1914 0xd2, 0x1a, 0x73, 0x86, 0x97, 0xbf, 0x22, 0x80, 0x33, 0x28, 0xe6, 0xa3, 0x7f, 0xfd, 0xc1, 0x75, 1915 0x76, 0x26, 0x5a, 0x4f, 0xe7, 0xae, 0xbf, 0x5e, 0x6d, 0xf6, 0xdd, 0xb7, 0x9f, 0x1f, 0xc2, 0x29, 1916 0x2d, 0x51, 0xe0, 0xac, 0x20, 0xd6, 0x52, 0x44, 0x39, 0x5c, 0x03, 0xc9, 0x9b, 0x25, 0x56, 0x27, 1917 0x90, 0xc6, 0x86, 0x9c, 0x5e, 0xbc, 0x72, 0x5b, 0x5a, 0xe8, 0x31, 0x5a, 0x5d, 0x3a, 0xf8, 0xa1, 1918 0x86, 0x0e, 0x86, 0x2a, 0x3a, 0x1c, 0xaa, 0xe8, 0x68, 0xa8, 0xa2, 0xef, 0x43, 0x15, 0xed, 0x9f, 1919 0xa8, 0xa1, 0xc3, 0x13, 0x35, 0x74, 0x74, 0xa2, 0x86, 0x5e, 0x48, 0x5e, 0xea, 0xef, 0x00, 0x00, 1920 0x00, 0xff, 0xff, 0x23, 0xbe, 0x15, 0xff, 0x36, 0x06, 0x00, 0x00, 1921 }