1// Code generated by protoc-gen-go. DO NOT EDIT. 2// source: quic-trace.proto 3 4package pb 5 6import ( 7 fmt "fmt" 8 proto "github.com/ooni/psiphon/oopsi/github.com/golang/protobuf/proto" 9 math "math" 10) 11 12// Reference imports to suppress errors if they are not otherwise used. 13var _ = proto.Marshal 14var _ = fmt.Errorf 15var _ = math.Inf 16 17// This is a compile-time assertion to ensure that this generated file 18// is compatible with the proto package it is being compiled against. 19// A compilation error at this line likely means your copy of the 20// proto package needs to be updated. 21const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package 22 23type FrameType int32 24 25const ( 26 FrameType_UNKNOWN_FRAME FrameType = 0 27 FrameType_STREAM FrameType = 1 28 FrameType_ACK FrameType = 2 29 FrameType_RESET_STREAM FrameType = 3 30 FrameType_CONNECTION_CLOSE FrameType = 4 31 FrameType_MAX_DATA FrameType = 5 32 FrameType_MAX_STREAM_DATA FrameType = 6 33 FrameType_PING FrameType = 7 34 FrameType_BLOCKED FrameType = 8 35 FrameType_STREAM_BLOCKED FrameType = 9 36 FrameType_PADDING FrameType = 10 37 FrameType_CRYPTO FrameType = 11 38) 39 40var FrameType_name = map[int32]string{ 41 0: "UNKNOWN_FRAME", 42 1: "STREAM", 43 2: "ACK", 44 3: "RESET_STREAM", 45 4: "CONNECTION_CLOSE", 46 5: "MAX_DATA", 47 6: "MAX_STREAM_DATA", 48 7: "PING", 49 8: "BLOCKED", 50 9: "STREAM_BLOCKED", 51 10: "PADDING", 52 11: "CRYPTO", 53} 54 55var FrameType_value = map[string]int32{ 56 "UNKNOWN_FRAME": 0, 57 "STREAM": 1, 58 "ACK": 2, 59 "RESET_STREAM": 3, 60 "CONNECTION_CLOSE": 4, 61 "MAX_DATA": 5, 62 "MAX_STREAM_DATA": 6, 63 "PING": 7, 64 "BLOCKED": 8, 65 "STREAM_BLOCKED": 9, 66 "PADDING": 10, 67 "CRYPTO": 11, 68} 69 70func (x FrameType) Enum() *FrameType { 71 p := new(FrameType) 72 *p = x 73 return p 74} 75 76func (x FrameType) String() string { 77 return proto.EnumName(FrameType_name, int32(x)) 78} 79 80func (x *FrameType) UnmarshalJSON(data []byte) error { 81 value, err := proto.UnmarshalJSONEnum(FrameType_value, data, "FrameType") 82 if err != nil { 83 return err 84 } 85 *x = FrameType(value) 86 return nil 87} 88 89func (FrameType) EnumDescriptor() ([]byte, []int) { 90 return fileDescriptor_79ecf15e0416742d, []int{0} 91} 92 93// Metadata for CONNECTION_CLOSE frames. 94// Close_type will indicate whether the close is a Google QUIC close, 95// IETF QUIC Transport CONNECTION CLOSE, or IETF QUIC Application 96// Connection Close, frame. 97type CloseType int32 98 99const ( 100 CloseType_GOOGLE_QUIC_CONNECTION_CLOSE CloseType = 0 101 CloseType_IETF_QUIC_TRANSPORT_CONNECTION_CLOSE CloseType = 1 102 CloseType_IETF_QUIC_APPLICATION_CONNECTION_CLOSE CloseType = 2 103) 104 105var CloseType_name = map[int32]string{ 106 0: "GOOGLE_QUIC_CONNECTION_CLOSE", 107 1: "IETF_QUIC_TRANSPORT_CONNECTION_CLOSE", 108 2: "IETF_QUIC_APPLICATION_CONNECTION_CLOSE", 109} 110 111var CloseType_value = map[string]int32{ 112 "GOOGLE_QUIC_CONNECTION_CLOSE": 0, 113 "IETF_QUIC_TRANSPORT_CONNECTION_CLOSE": 1, 114 "IETF_QUIC_APPLICATION_CONNECTION_CLOSE": 2, 115} 116 117func (x CloseType) Enum() *CloseType { 118 p := new(CloseType) 119 *p = x 120 return p 121} 122 123func (x CloseType) String() string { 124 return proto.EnumName(CloseType_name, int32(x)) 125} 126 127func (x *CloseType) UnmarshalJSON(data []byte) error { 128 value, err := proto.UnmarshalJSONEnum(CloseType_value, data, "CloseType") 129 if err != nil { 130 return err 131 } 132 *x = CloseType(value) 133 return nil 134} 135 136func (CloseType) EnumDescriptor() ([]byte, []int) { 137 return fileDescriptor_79ecf15e0416742d, []int{1} 138} 139 140type EncryptionLevel int32 141 142const ( 143 EncryptionLevel_ENCRYPTION_UNKNOWN EncryptionLevel = 0 144 EncryptionLevel_ENCRYPTION_INITIAL EncryptionLevel = 1 145 EncryptionLevel_ENCRYPTION_0RTT EncryptionLevel = 2 146 EncryptionLevel_ENCRYPTION_1RTT EncryptionLevel = 3 147 EncryptionLevel_ENCRYPTION_HANDSHAKE EncryptionLevel = 4 148) 149 150var EncryptionLevel_name = map[int32]string{ 151 0: "ENCRYPTION_UNKNOWN", 152 1: "ENCRYPTION_INITIAL", 153 2: "ENCRYPTION_0RTT", 154 3: "ENCRYPTION_1RTT", 155 4: "ENCRYPTION_HANDSHAKE", 156} 157 158var EncryptionLevel_value = map[string]int32{ 159 "ENCRYPTION_UNKNOWN": 0, 160 "ENCRYPTION_INITIAL": 1, 161 "ENCRYPTION_0RTT": 2, 162 "ENCRYPTION_1RTT": 3, 163 "ENCRYPTION_HANDSHAKE": 4, 164} 165 166func (x EncryptionLevel) Enum() *EncryptionLevel { 167 p := new(EncryptionLevel) 168 *p = x 169 return p 170} 171 172func (x EncryptionLevel) String() string { 173 return proto.EnumName(EncryptionLevel_name, int32(x)) 174} 175 176func (x *EncryptionLevel) UnmarshalJSON(data []byte) error { 177 value, err := proto.UnmarshalJSONEnum(EncryptionLevel_value, data, "EncryptionLevel") 178 if err != nil { 179 return err 180 } 181 *x = EncryptionLevel(value) 182 return nil 183} 184 185func (EncryptionLevel) EnumDescriptor() ([]byte, []int) { 186 return fileDescriptor_79ecf15e0416742d, []int{2} 187} 188 189type EventType int32 190 191const ( 192 EventType_UNKNOWN_EVENT EventType = 0 193 EventType_PACKET_SENT EventType = 1 194 EventType_PACKET_RECEIVED EventType = 2 195 EventType_PACKET_LOST EventType = 3 196 // An APPLICATION_LIMITED event occurs when the sender is capable of sending 197 // more data and tries to send it, but discovers that it does not have any 198 // outstanding data to send. Such events are important to some congestion 199 // control algorithms (for example, BBR) since they are trying to measure the 200 // largest achievable throughput, but it is impossible to measure it when the 201 // application does not send anything. 202 EventType_APPLICATION_LIMITED EventType = 4 203 // Record when external information about expected network conditions 204 // (available bandwidth, RTT, congestion window, etc) is supplied to the 205 // sender. 206 EventType_EXTERNAL_PARAMETERS EventType = 5 207) 208 209var EventType_name = map[int32]string{ 210 0: "UNKNOWN_EVENT", 211 1: "PACKET_SENT", 212 2: "PACKET_RECEIVED", 213 3: "PACKET_LOST", 214 4: "APPLICATION_LIMITED", 215 5: "EXTERNAL_PARAMETERS", 216} 217 218var EventType_value = map[string]int32{ 219 "UNKNOWN_EVENT": 0, 220 "PACKET_SENT": 1, 221 "PACKET_RECEIVED": 2, 222 "PACKET_LOST": 3, 223 "APPLICATION_LIMITED": 4, 224 "EXTERNAL_PARAMETERS": 5, 225} 226 227func (x EventType) Enum() *EventType { 228 p := new(EventType) 229 *p = x 230 return p 231} 232 233func (x EventType) String() string { 234 return proto.EnumName(EventType_name, int32(x)) 235} 236 237func (x *EventType) UnmarshalJSON(data []byte) error { 238 value, err := proto.UnmarshalJSONEnum(EventType_value, data, "EventType") 239 if err != nil { 240 return err 241 } 242 *x = EventType(value) 243 return nil 244} 245 246func (EventType) EnumDescriptor() ([]byte, []int) { 247 return fileDescriptor_79ecf15e0416742d, []int{3} 248} 249 250type TransmissionReason int32 251 252const ( 253 // Indicates that there was not any particular special reason the packet was 254 // sent. 255 TransmissionReason_NORMAL_TRANSMISSION TransmissionReason = 0 256 // Indicates that the packet sent is a tail loss probe, cf. 257 // https://tools.ietf.org/html/draft-ietf-quic-recovery-14#section-4.3.2 258 TransmissionReason_TAIL_LOSS_PROBE TransmissionReason = 1 259 // Indicates that the packet is sent due to retransmission timeout, cf 260 // https://tools.ietf.org/html/draft-ietf-quic-recovery-14#section-4.3.3 261 TransmissionReason_RTO_TRANSMISSION TransmissionReason = 2 262 // Indicates that the packet is sent in order to probe whether there is extra 263 // bandwidth available in cases where the sender needs an estimate of 264 // available bandwidth, but the application does not provide enough data for 265 // such estimate to become naturally available. This is usually only used in 266 // real-time protocols. 267 TransmissionReason_PROBING_TRANSMISSION TransmissionReason = 3 268) 269 270var TransmissionReason_name = map[int32]string{ 271 0: "NORMAL_TRANSMISSION", 272 1: "TAIL_LOSS_PROBE", 273 2: "RTO_TRANSMISSION", 274 3: "PROBING_TRANSMISSION", 275} 276 277var TransmissionReason_value = map[string]int32{ 278 "NORMAL_TRANSMISSION": 0, 279 "TAIL_LOSS_PROBE": 1, 280 "RTO_TRANSMISSION": 2, 281 "PROBING_TRANSMISSION": 3, 282} 283 284func (x TransmissionReason) Enum() *TransmissionReason { 285 p := new(TransmissionReason) 286 *p = x 287 return p 288} 289 290func (x TransmissionReason) String() string { 291 return proto.EnumName(TransmissionReason_name, int32(x)) 292} 293 294func (x *TransmissionReason) UnmarshalJSON(data []byte) error { 295 value, err := proto.UnmarshalJSONEnum(TransmissionReason_value, data, "TransmissionReason") 296 if err != nil { 297 return err 298 } 299 *x = TransmissionReason(value) 300 return nil 301} 302 303func (TransmissionReason) EnumDescriptor() ([]byte, []int) { 304 return fileDescriptor_79ecf15e0416742d, []int{4} 305} 306 307// Metadata for STREAM frames. 308type StreamFrameInfo struct { 309 StreamId *uint64 `protobuf:"varint,1,opt,name=stream_id,json=streamId" json:"stream_id,omitempty"` 310 Fin *bool `protobuf:"varint,2,opt,name=fin" json:"fin,omitempty"` 311 Length *uint64 `protobuf:"varint,3,opt,name=length" json:"length,omitempty"` 312 Offset *uint64 `protobuf:"varint,4,opt,name=offset" json:"offset,omitempty"` 313 XXX_NoUnkeyedLiteral struct{} `json:"-"` 314 XXX_unrecognized []byte `json:"-"` 315 XXX_sizecache int32 `json:"-"` 316} 317 318func (m *StreamFrameInfo) Reset() { *m = StreamFrameInfo{} } 319func (m *StreamFrameInfo) String() string { return proto.CompactTextString(m) } 320func (*StreamFrameInfo) ProtoMessage() {} 321func (*StreamFrameInfo) Descriptor() ([]byte, []int) { 322 return fileDescriptor_79ecf15e0416742d, []int{0} 323} 324 325func (m *StreamFrameInfo) XXX_Unmarshal(b []byte) error { 326 return xxx_messageInfo_StreamFrameInfo.Unmarshal(m, b) 327} 328func (m *StreamFrameInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 329 return xxx_messageInfo_StreamFrameInfo.Marshal(b, m, deterministic) 330} 331func (m *StreamFrameInfo) XXX_Merge(src proto.Message) { 332 xxx_messageInfo_StreamFrameInfo.Merge(m, src) 333} 334func (m *StreamFrameInfo) XXX_Size() int { 335 return xxx_messageInfo_StreamFrameInfo.Size(m) 336} 337func (m *StreamFrameInfo) XXX_DiscardUnknown() { 338 xxx_messageInfo_StreamFrameInfo.DiscardUnknown(m) 339} 340 341var xxx_messageInfo_StreamFrameInfo proto.InternalMessageInfo 342 343func (m *StreamFrameInfo) GetStreamId() uint64 { 344 if m != nil && m.StreamId != nil { 345 return *m.StreamId 346 } 347 return 0 348} 349 350func (m *StreamFrameInfo) GetFin() bool { 351 if m != nil && m.Fin != nil { 352 return *m.Fin 353 } 354 return false 355} 356 357func (m *StreamFrameInfo) GetLength() uint64 { 358 if m != nil && m.Length != nil { 359 return *m.Length 360 } 361 return 0 362} 363 364func (m *StreamFrameInfo) GetOffset() uint64 { 365 if m != nil && m.Offset != nil { 366 return *m.Offset 367 } 368 return 0 369} 370 371// Metadata for CRYPTO frames. 372type CryptoFrameInfo struct { 373 Length *uint64 `protobuf:"varint,1,opt,name=length" json:"length,omitempty"` 374 Offset *uint64 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"` 375 XXX_NoUnkeyedLiteral struct{} `json:"-"` 376 XXX_unrecognized []byte `json:"-"` 377 XXX_sizecache int32 `json:"-"` 378} 379 380func (m *CryptoFrameInfo) Reset() { *m = CryptoFrameInfo{} } 381func (m *CryptoFrameInfo) String() string { return proto.CompactTextString(m) } 382func (*CryptoFrameInfo) ProtoMessage() {} 383func (*CryptoFrameInfo) Descriptor() ([]byte, []int) { 384 return fileDescriptor_79ecf15e0416742d, []int{1} 385} 386 387func (m *CryptoFrameInfo) XXX_Unmarshal(b []byte) error { 388 return xxx_messageInfo_CryptoFrameInfo.Unmarshal(m, b) 389} 390func (m *CryptoFrameInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 391 return xxx_messageInfo_CryptoFrameInfo.Marshal(b, m, deterministic) 392} 393func (m *CryptoFrameInfo) XXX_Merge(src proto.Message) { 394 xxx_messageInfo_CryptoFrameInfo.Merge(m, src) 395} 396func (m *CryptoFrameInfo) XXX_Size() int { 397 return xxx_messageInfo_CryptoFrameInfo.Size(m) 398} 399func (m *CryptoFrameInfo) XXX_DiscardUnknown() { 400 xxx_messageInfo_CryptoFrameInfo.DiscardUnknown(m) 401} 402 403var xxx_messageInfo_CryptoFrameInfo proto.InternalMessageInfo 404 405func (m *CryptoFrameInfo) GetLength() uint64 { 406 if m != nil && m.Length != nil { 407 return *m.Length 408 } 409 return 0 410} 411 412func (m *CryptoFrameInfo) GetOffset() uint64 { 413 if m != nil && m.Offset != nil { 414 return *m.Offset 415 } 416 return 0 417} 418 419// The intervals are closed, i.e. the interval represented here is 420// [first_packet, last_packet]. 421type AckBlock struct { 422 FirstPacket *uint64 `protobuf:"varint,1,opt,name=first_packet,json=firstPacket" json:"first_packet,omitempty"` 423 LastPacket *uint64 `protobuf:"varint,2,opt,name=last_packet,json=lastPacket" json:"last_packet,omitempty"` 424 XXX_NoUnkeyedLiteral struct{} `json:"-"` 425 XXX_unrecognized []byte `json:"-"` 426 XXX_sizecache int32 `json:"-"` 427} 428 429func (m *AckBlock) Reset() { *m = AckBlock{} } 430func (m *AckBlock) String() string { return proto.CompactTextString(m) } 431func (*AckBlock) ProtoMessage() {} 432func (*AckBlock) Descriptor() ([]byte, []int) { 433 return fileDescriptor_79ecf15e0416742d, []int{2} 434} 435 436func (m *AckBlock) XXX_Unmarshal(b []byte) error { 437 return xxx_messageInfo_AckBlock.Unmarshal(m, b) 438} 439func (m *AckBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 440 return xxx_messageInfo_AckBlock.Marshal(b, m, deterministic) 441} 442func (m *AckBlock) XXX_Merge(src proto.Message) { 443 xxx_messageInfo_AckBlock.Merge(m, src) 444} 445func (m *AckBlock) XXX_Size() int { 446 return xxx_messageInfo_AckBlock.Size(m) 447} 448func (m *AckBlock) XXX_DiscardUnknown() { 449 xxx_messageInfo_AckBlock.DiscardUnknown(m) 450} 451 452var xxx_messageInfo_AckBlock proto.InternalMessageInfo 453 454func (m *AckBlock) GetFirstPacket() uint64 { 455 if m != nil && m.FirstPacket != nil { 456 return *m.FirstPacket 457 } 458 return 0 459} 460 461func (m *AckBlock) GetLastPacket() uint64 { 462 if m != nil && m.LastPacket != nil { 463 return *m.LastPacket 464 } 465 return 0 466} 467 468// Metadata for ACK frames. 469type AckInfo struct { 470 AckedPackets []*AckBlock `protobuf:"bytes,1,rep,name=acked_packets,json=ackedPackets" json:"acked_packets,omitempty"` 471 AckDelayUs *uint64 `protobuf:"varint,2,opt,name=ack_delay_us,json=ackDelayUs" json:"ack_delay_us,omitempty"` 472 XXX_NoUnkeyedLiteral struct{} `json:"-"` 473 XXX_unrecognized []byte `json:"-"` 474 XXX_sizecache int32 `json:"-"` 475} 476 477func (m *AckInfo) Reset() { *m = AckInfo{} } 478func (m *AckInfo) String() string { return proto.CompactTextString(m) } 479func (*AckInfo) ProtoMessage() {} 480func (*AckInfo) Descriptor() ([]byte, []int) { 481 return fileDescriptor_79ecf15e0416742d, []int{3} 482} 483 484func (m *AckInfo) XXX_Unmarshal(b []byte) error { 485 return xxx_messageInfo_AckInfo.Unmarshal(m, b) 486} 487func (m *AckInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 488 return xxx_messageInfo_AckInfo.Marshal(b, m, deterministic) 489} 490func (m *AckInfo) XXX_Merge(src proto.Message) { 491 xxx_messageInfo_AckInfo.Merge(m, src) 492} 493func (m *AckInfo) XXX_Size() int { 494 return xxx_messageInfo_AckInfo.Size(m) 495} 496func (m *AckInfo) XXX_DiscardUnknown() { 497 xxx_messageInfo_AckInfo.DiscardUnknown(m) 498} 499 500var xxx_messageInfo_AckInfo proto.InternalMessageInfo 501 502func (m *AckInfo) GetAckedPackets() []*AckBlock { 503 if m != nil { 504 return m.AckedPackets 505 } 506 return nil 507} 508 509func (m *AckInfo) GetAckDelayUs() uint64 { 510 if m != nil && m.AckDelayUs != nil { 511 return *m.AckDelayUs 512 } 513 return 0 514} 515 516// Metadata for RST_STREAM frames. 517type ResetStreamInfo struct { 518 StreamId *uint64 `protobuf:"varint,1,opt,name=stream_id,json=streamId" json:"stream_id,omitempty"` 519 ApplicationErrorCode *uint32 `protobuf:"varint,2,opt,name=application_error_code,json=applicationErrorCode" json:"application_error_code,omitempty"` 520 FinalOffset *uint64 `protobuf:"varint,3,opt,name=final_offset,json=finalOffset" json:"final_offset,omitempty"` 521 XXX_NoUnkeyedLiteral struct{} `json:"-"` 522 XXX_unrecognized []byte `json:"-"` 523 XXX_sizecache int32 `json:"-"` 524} 525 526func (m *ResetStreamInfo) Reset() { *m = ResetStreamInfo{} } 527func (m *ResetStreamInfo) String() string { return proto.CompactTextString(m) } 528func (*ResetStreamInfo) ProtoMessage() {} 529func (*ResetStreamInfo) Descriptor() ([]byte, []int) { 530 return fileDescriptor_79ecf15e0416742d, []int{4} 531} 532 533func (m *ResetStreamInfo) XXX_Unmarshal(b []byte) error { 534 return xxx_messageInfo_ResetStreamInfo.Unmarshal(m, b) 535} 536func (m *ResetStreamInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 537 return xxx_messageInfo_ResetStreamInfo.Marshal(b, m, deterministic) 538} 539func (m *ResetStreamInfo) XXX_Merge(src proto.Message) { 540 xxx_messageInfo_ResetStreamInfo.Merge(m, src) 541} 542func (m *ResetStreamInfo) XXX_Size() int { 543 return xxx_messageInfo_ResetStreamInfo.Size(m) 544} 545func (m *ResetStreamInfo) XXX_DiscardUnknown() { 546 xxx_messageInfo_ResetStreamInfo.DiscardUnknown(m) 547} 548 549var xxx_messageInfo_ResetStreamInfo proto.InternalMessageInfo 550 551func (m *ResetStreamInfo) GetStreamId() uint64 { 552 if m != nil && m.StreamId != nil { 553 return *m.StreamId 554 } 555 return 0 556} 557 558func (m *ResetStreamInfo) GetApplicationErrorCode() uint32 { 559 if m != nil && m.ApplicationErrorCode != nil { 560 return *m.ApplicationErrorCode 561 } 562 return 0 563} 564 565func (m *ResetStreamInfo) GetFinalOffset() uint64 { 566 if m != nil && m.FinalOffset != nil { 567 return *m.FinalOffset 568 } 569 return 0 570} 571 572// Metadata for CONNECTION_CLOSE/APPLICATION_CLOSE frames. 573type CloseInfo struct { 574 ErrorCode *uint32 `protobuf:"varint,1,opt,name=error_code,json=errorCode" json:"error_code,omitempty"` 575 ReasonPhrase *string `protobuf:"bytes,2,opt,name=reason_phrase,json=reasonPhrase" json:"reason_phrase,omitempty"` 576 CloseType *CloseType `protobuf:"varint,3,opt,name=close_type,json=closeType,enum=pb.CloseType" json:"close_type,omitempty"` 577 TransportCloseFrameType *uint64 `protobuf:"varint,4,opt,name=transport_close_frame_type,json=transportCloseFrameType" json:"transport_close_frame_type,omitempty"` 578 XXX_NoUnkeyedLiteral struct{} `json:"-"` 579 XXX_unrecognized []byte `json:"-"` 580 XXX_sizecache int32 `json:"-"` 581} 582 583func (m *CloseInfo) Reset() { *m = CloseInfo{} } 584func (m *CloseInfo) String() string { return proto.CompactTextString(m) } 585func (*CloseInfo) ProtoMessage() {} 586func (*CloseInfo) Descriptor() ([]byte, []int) { 587 return fileDescriptor_79ecf15e0416742d, []int{5} 588} 589 590func (m *CloseInfo) XXX_Unmarshal(b []byte) error { 591 return xxx_messageInfo_CloseInfo.Unmarshal(m, b) 592} 593func (m *CloseInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 594 return xxx_messageInfo_CloseInfo.Marshal(b, m, deterministic) 595} 596func (m *CloseInfo) XXX_Merge(src proto.Message) { 597 xxx_messageInfo_CloseInfo.Merge(m, src) 598} 599func (m *CloseInfo) XXX_Size() int { 600 return xxx_messageInfo_CloseInfo.Size(m) 601} 602func (m *CloseInfo) XXX_DiscardUnknown() { 603 xxx_messageInfo_CloseInfo.DiscardUnknown(m) 604} 605 606var xxx_messageInfo_CloseInfo proto.InternalMessageInfo 607 608func (m *CloseInfo) GetErrorCode() uint32 { 609 if m != nil && m.ErrorCode != nil { 610 return *m.ErrorCode 611 } 612 return 0 613} 614 615func (m *CloseInfo) GetReasonPhrase() string { 616 if m != nil && m.ReasonPhrase != nil { 617 return *m.ReasonPhrase 618 } 619 return "" 620} 621 622func (m *CloseInfo) GetCloseType() CloseType { 623 if m != nil && m.CloseType != nil { 624 return *m.CloseType 625 } 626 return CloseType_GOOGLE_QUIC_CONNECTION_CLOSE 627} 628 629func (m *CloseInfo) GetTransportCloseFrameType() uint64 { 630 if m != nil && m.TransportCloseFrameType != nil { 631 return *m.TransportCloseFrameType 632 } 633 return 0 634} 635 636// Metadata for MAX_DATA/MAX_STREAM_DATA frames. 637type FlowControlInfo struct { 638 MaxData *uint64 `protobuf:"varint,1,opt,name=max_data,json=maxData" json:"max_data,omitempty"` 639 StreamId *uint64 `protobuf:"varint,2,opt,name=stream_id,json=streamId" json:"stream_id,omitempty"` 640 XXX_NoUnkeyedLiteral struct{} `json:"-"` 641 XXX_unrecognized []byte `json:"-"` 642 XXX_sizecache int32 `json:"-"` 643} 644 645func (m *FlowControlInfo) Reset() { *m = FlowControlInfo{} } 646func (m *FlowControlInfo) String() string { return proto.CompactTextString(m) } 647func (*FlowControlInfo) ProtoMessage() {} 648func (*FlowControlInfo) Descriptor() ([]byte, []int) { 649 return fileDescriptor_79ecf15e0416742d, []int{6} 650} 651 652func (m *FlowControlInfo) XXX_Unmarshal(b []byte) error { 653 return xxx_messageInfo_FlowControlInfo.Unmarshal(m, b) 654} 655func (m *FlowControlInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 656 return xxx_messageInfo_FlowControlInfo.Marshal(b, m, deterministic) 657} 658func (m *FlowControlInfo) XXX_Merge(src proto.Message) { 659 xxx_messageInfo_FlowControlInfo.Merge(m, src) 660} 661func (m *FlowControlInfo) XXX_Size() int { 662 return xxx_messageInfo_FlowControlInfo.Size(m) 663} 664func (m *FlowControlInfo) XXX_DiscardUnknown() { 665 xxx_messageInfo_FlowControlInfo.DiscardUnknown(m) 666} 667 668var xxx_messageInfo_FlowControlInfo proto.InternalMessageInfo 669 670func (m *FlowControlInfo) GetMaxData() uint64 { 671 if m != nil && m.MaxData != nil { 672 return *m.MaxData 673 } 674 return 0 675} 676 677func (m *FlowControlInfo) GetStreamId() uint64 { 678 if m != nil && m.StreamId != nil { 679 return *m.StreamId 680 } 681 return 0 682} 683 684// A message representing a frame, either sent or received. 685type Frame struct { 686 FrameType *FrameType `protobuf:"varint,1,opt,name=frame_type,json=frameType,enum=pb.FrameType" json:"frame_type,omitempty"` 687 StreamFrameInfo *StreamFrameInfo `protobuf:"bytes,2,opt,name=stream_frame_info,json=streamFrameInfo" json:"stream_frame_info,omitempty"` 688 AckInfo *AckInfo `protobuf:"bytes,3,opt,name=ack_info,json=ackInfo" json:"ack_info,omitempty"` 689 ResetStreamInfo *ResetStreamInfo `protobuf:"bytes,4,opt,name=reset_stream_info,json=resetStreamInfo" json:"reset_stream_info,omitempty"` 690 CloseInfo *CloseInfo `protobuf:"bytes,5,opt,name=close_info,json=closeInfo" json:"close_info,omitempty"` 691 FlowControlInfo *FlowControlInfo `protobuf:"bytes,6,opt,name=flow_control_info,json=flowControlInfo" json:"flow_control_info,omitempty"` 692 CryptoFrameInfo *CryptoFrameInfo `protobuf:"bytes,7,opt,name=crypto_frame_info,json=cryptoFrameInfo" json:"crypto_frame_info,omitempty"` 693 XXX_NoUnkeyedLiteral struct{} `json:"-"` 694 XXX_unrecognized []byte `json:"-"` 695 XXX_sizecache int32 `json:"-"` 696} 697 698func (m *Frame) Reset() { *m = Frame{} } 699func (m *Frame) String() string { return proto.CompactTextString(m) } 700func (*Frame) ProtoMessage() {} 701func (*Frame) Descriptor() ([]byte, []int) { 702 return fileDescriptor_79ecf15e0416742d, []int{7} 703} 704 705func (m *Frame) XXX_Unmarshal(b []byte) error { 706 return xxx_messageInfo_Frame.Unmarshal(m, b) 707} 708func (m *Frame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 709 return xxx_messageInfo_Frame.Marshal(b, m, deterministic) 710} 711func (m *Frame) XXX_Merge(src proto.Message) { 712 xxx_messageInfo_Frame.Merge(m, src) 713} 714func (m *Frame) XXX_Size() int { 715 return xxx_messageInfo_Frame.Size(m) 716} 717func (m *Frame) XXX_DiscardUnknown() { 718 xxx_messageInfo_Frame.DiscardUnknown(m) 719} 720 721var xxx_messageInfo_Frame proto.InternalMessageInfo 722 723func (m *Frame) GetFrameType() FrameType { 724 if m != nil && m.FrameType != nil { 725 return *m.FrameType 726 } 727 return FrameType_UNKNOWN_FRAME 728} 729 730func (m *Frame) GetStreamFrameInfo() *StreamFrameInfo { 731 if m != nil { 732 return m.StreamFrameInfo 733 } 734 return nil 735} 736 737func (m *Frame) GetAckInfo() *AckInfo { 738 if m != nil { 739 return m.AckInfo 740 } 741 return nil 742} 743 744func (m *Frame) GetResetStreamInfo() *ResetStreamInfo { 745 if m != nil { 746 return m.ResetStreamInfo 747 } 748 return nil 749} 750 751func (m *Frame) GetCloseInfo() *CloseInfo { 752 if m != nil { 753 return m.CloseInfo 754 } 755 return nil 756} 757 758func (m *Frame) GetFlowControlInfo() *FlowControlInfo { 759 if m != nil { 760 return m.FlowControlInfo 761 } 762 return nil 763} 764 765func (m *Frame) GetCryptoFrameInfo() *CryptoFrameInfo { 766 if m != nil { 767 return m.CryptoFrameInfo 768 } 769 return nil 770} 771 772// Metadata that represents transport stack's understanding of the current state 773// of the transport channel. 774type TransportState struct { 775 MinRttUs *uint64 `protobuf:"varint,1,opt,name=min_rtt_us,json=minRttUs" json:"min_rtt_us,omitempty"` 776 // Smoothed RTT, usually computed using EWMA. 777 SmoothedRttUs *uint64 `protobuf:"varint,2,opt,name=smoothed_rtt_us,json=smoothedRttUs" json:"smoothed_rtt_us,omitempty"` 778 // The latest RTT measureent available. 779 LastRttUs *uint64 `protobuf:"varint,3,opt,name=last_rtt_us,json=lastRttUs" json:"last_rtt_us,omitempty"` 780 InFlightBytes *uint64 `protobuf:"varint,4,opt,name=in_flight_bytes,json=inFlightBytes" json:"in_flight_bytes,omitempty"` 781 CwndBytes *uint64 `protobuf:"varint,5,opt,name=cwnd_bytes,json=cwndBytes" json:"cwnd_bytes,omitempty"` 782 // Pacing rate, in bits per second. 783 PacingRateBps *uint64 `protobuf:"varint,6,opt,name=pacing_rate_bps,json=pacingRateBps" json:"pacing_rate_bps,omitempty"` 784 // Any arbitrary information about congestion control state that is not 785 // representable via parameters above. 786 CongestionControlState *string `protobuf:"bytes,7,opt,name=congestion_control_state,json=congestionControlState" json:"congestion_control_state,omitempty"` 787 XXX_NoUnkeyedLiteral struct{} `json:"-"` 788 XXX_unrecognized []byte `json:"-"` 789 XXX_sizecache int32 `json:"-"` 790} 791 792func (m *TransportState) Reset() { *m = TransportState{} } 793func (m *TransportState) String() string { return proto.CompactTextString(m) } 794func (*TransportState) ProtoMessage() {} 795func (*TransportState) Descriptor() ([]byte, []int) { 796 return fileDescriptor_79ecf15e0416742d, []int{8} 797} 798 799func (m *TransportState) XXX_Unmarshal(b []byte) error { 800 return xxx_messageInfo_TransportState.Unmarshal(m, b) 801} 802func (m *TransportState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 803 return xxx_messageInfo_TransportState.Marshal(b, m, deterministic) 804} 805func (m *TransportState) XXX_Merge(src proto.Message) { 806 xxx_messageInfo_TransportState.Merge(m, src) 807} 808func (m *TransportState) XXX_Size() int { 809 return xxx_messageInfo_TransportState.Size(m) 810} 811func (m *TransportState) XXX_DiscardUnknown() { 812 xxx_messageInfo_TransportState.DiscardUnknown(m) 813} 814 815var xxx_messageInfo_TransportState proto.InternalMessageInfo 816 817func (m *TransportState) GetMinRttUs() uint64 { 818 if m != nil && m.MinRttUs != nil { 819 return *m.MinRttUs 820 } 821 return 0 822} 823 824func (m *TransportState) GetSmoothedRttUs() uint64 { 825 if m != nil && m.SmoothedRttUs != nil { 826 return *m.SmoothedRttUs 827 } 828 return 0 829} 830 831func (m *TransportState) GetLastRttUs() uint64 { 832 if m != nil && m.LastRttUs != nil { 833 return *m.LastRttUs 834 } 835 return 0 836} 837 838func (m *TransportState) GetInFlightBytes() uint64 { 839 if m != nil && m.InFlightBytes != nil { 840 return *m.InFlightBytes 841 } 842 return 0 843} 844 845func (m *TransportState) GetCwndBytes() uint64 { 846 if m != nil && m.CwndBytes != nil { 847 return *m.CwndBytes 848 } 849 return 0 850} 851 852func (m *TransportState) GetPacingRateBps() uint64 { 853 if m != nil && m.PacingRateBps != nil { 854 return *m.PacingRateBps 855 } 856 return 0 857} 858 859func (m *TransportState) GetCongestionControlState() string { 860 if m != nil && m.CongestionControlState != nil { 861 return *m.CongestionControlState 862 } 863 return "" 864} 865 866// Documents external network parameters supplied to the sender. Typically not 867// all of those would be supplied (e.g. if bandwidth and RTT are supplied, you 868// can infer the suggested CWND), but there are no restrictions on which fields 869// may or may not be set. 870type ExternalNetworkParameters struct { 871 BandwidthBps *uint64 `protobuf:"varint,1,opt,name=bandwidth_bps,json=bandwidthBps" json:"bandwidth_bps,omitempty"` 872 RttUs *uint64 `protobuf:"varint,2,opt,name=rtt_us,json=rttUs" json:"rtt_us,omitempty"` 873 CwndBytes *uint64 `protobuf:"varint,3,opt,name=cwnd_bytes,json=cwndBytes" json:"cwnd_bytes,omitempty"` 874 XXX_NoUnkeyedLiteral struct{} `json:"-"` 875 XXX_unrecognized []byte `json:"-"` 876 XXX_sizecache int32 `json:"-"` 877} 878 879func (m *ExternalNetworkParameters) Reset() { *m = ExternalNetworkParameters{} } 880func (m *ExternalNetworkParameters) String() string { return proto.CompactTextString(m) } 881func (*ExternalNetworkParameters) ProtoMessage() {} 882func (*ExternalNetworkParameters) Descriptor() ([]byte, []int) { 883 return fileDescriptor_79ecf15e0416742d, []int{9} 884} 885 886func (m *ExternalNetworkParameters) XXX_Unmarshal(b []byte) error { 887 return xxx_messageInfo_ExternalNetworkParameters.Unmarshal(m, b) 888} 889func (m *ExternalNetworkParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 890 return xxx_messageInfo_ExternalNetworkParameters.Marshal(b, m, deterministic) 891} 892func (m *ExternalNetworkParameters) XXX_Merge(src proto.Message) { 893 xxx_messageInfo_ExternalNetworkParameters.Merge(m, src) 894} 895func (m *ExternalNetworkParameters) XXX_Size() int { 896 return xxx_messageInfo_ExternalNetworkParameters.Size(m) 897} 898func (m *ExternalNetworkParameters) XXX_DiscardUnknown() { 899 xxx_messageInfo_ExternalNetworkParameters.DiscardUnknown(m) 900} 901 902var xxx_messageInfo_ExternalNetworkParameters proto.InternalMessageInfo 903 904func (m *ExternalNetworkParameters) GetBandwidthBps() uint64 { 905 if m != nil && m.BandwidthBps != nil { 906 return *m.BandwidthBps 907 } 908 return 0 909} 910 911func (m *ExternalNetworkParameters) GetRttUs() uint64 { 912 if m != nil && m.RttUs != nil { 913 return *m.RttUs 914 } 915 return 0 916} 917 918func (m *ExternalNetworkParameters) GetCwndBytes() uint64 { 919 if m != nil && m.CwndBytes != nil { 920 return *m.CwndBytes 921 } 922 return 0 923} 924 925// An event that has occurred over duration of the connection. 926type Event struct { 927 TimeUs *uint64 `protobuf:"varint,1,opt,name=time_us,json=timeUs" json:"time_us,omitempty"` 928 EventType *EventType `protobuf:"varint,2,opt,name=event_type,json=eventType,enum=pb.EventType" json:"event_type,omitempty"` 929 PacketNumber *uint64 `protobuf:"varint,3,opt,name=packet_number,json=packetNumber" json:"packet_number,omitempty"` 930 Frames []*Frame `protobuf:"bytes,4,rep,name=frames" json:"frames,omitempty"` 931 PacketSize *uint64 `protobuf:"varint,5,opt,name=packet_size,json=packetSize" json:"packet_size,omitempty"` 932 EncryptionLevel *EncryptionLevel `protobuf:"varint,6,opt,name=encryption_level,json=encryptionLevel,enum=pb.EncryptionLevel" json:"encryption_level,omitempty"` 933 // State of the transport stack after the event has happened. 934 TransportState *TransportState `protobuf:"bytes,7,opt,name=transport_state,json=transportState" json:"transport_state,omitempty"` 935 // For event_type = EXTERNAL_PARAMETERS, record parameters specified. 936 ExternalNetworkParameters *ExternalNetworkParameters `protobuf:"bytes,8,opt,name=external_network_parameters,json=externalNetworkParameters" json:"external_network_parameters,omitempty"` 937 // For sent packets, indicate if there is a special reason for why the packet 938 // in question was transmitted. 939 TransmissionReason *TransmissionReason `protobuf:"varint,9,opt,name=transmission_reason,json=transmissionReason,enum=pb.TransmissionReason,def=0" json:"transmission_reason,omitempty"` 940 XXX_NoUnkeyedLiteral struct{} `json:"-"` 941 XXX_unrecognized []byte `json:"-"` 942 XXX_sizecache int32 `json:"-"` 943} 944 945func (m *Event) Reset() { *m = Event{} } 946func (m *Event) String() string { return proto.CompactTextString(m) } 947func (*Event) ProtoMessage() {} 948func (*Event) Descriptor() ([]byte, []int) { 949 return fileDescriptor_79ecf15e0416742d, []int{10} 950} 951 952func (m *Event) XXX_Unmarshal(b []byte) error { 953 return xxx_messageInfo_Event.Unmarshal(m, b) 954} 955func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 956 return xxx_messageInfo_Event.Marshal(b, m, deterministic) 957} 958func (m *Event) XXX_Merge(src proto.Message) { 959 xxx_messageInfo_Event.Merge(m, src) 960} 961func (m *Event) XXX_Size() int { 962 return xxx_messageInfo_Event.Size(m) 963} 964func (m *Event) XXX_DiscardUnknown() { 965 xxx_messageInfo_Event.DiscardUnknown(m) 966} 967 968var xxx_messageInfo_Event proto.InternalMessageInfo 969 970const Default_Event_TransmissionReason TransmissionReason = TransmissionReason_NORMAL_TRANSMISSION 971 972func (m *Event) GetTimeUs() uint64 { 973 if m != nil && m.TimeUs != nil { 974 return *m.TimeUs 975 } 976 return 0 977} 978 979func (m *Event) GetEventType() EventType { 980 if m != nil && m.EventType != nil { 981 return *m.EventType 982 } 983 return EventType_UNKNOWN_EVENT 984} 985 986func (m *Event) GetPacketNumber() uint64 { 987 if m != nil && m.PacketNumber != nil { 988 return *m.PacketNumber 989 } 990 return 0 991} 992 993func (m *Event) GetFrames() []*Frame { 994 if m != nil { 995 return m.Frames 996 } 997 return nil 998} 999 1000func (m *Event) GetPacketSize() uint64 { 1001 if m != nil && m.PacketSize != nil { 1002 return *m.PacketSize 1003 } 1004 return 0 1005} 1006 1007func (m *Event) GetEncryptionLevel() EncryptionLevel { 1008 if m != nil && m.EncryptionLevel != nil { 1009 return *m.EncryptionLevel 1010 } 1011 return EncryptionLevel_ENCRYPTION_UNKNOWN 1012} 1013 1014func (m *Event) GetTransportState() *TransportState { 1015 if m != nil { 1016 return m.TransportState 1017 } 1018 return nil 1019} 1020 1021func (m *Event) GetExternalNetworkParameters() *ExternalNetworkParameters { 1022 if m != nil { 1023 return m.ExternalNetworkParameters 1024 } 1025 return nil 1026} 1027 1028func (m *Event) GetTransmissionReason() TransmissionReason { 1029 if m != nil && m.TransmissionReason != nil { 1030 return *m.TransmissionReason 1031 } 1032 return Default_Event_TransmissionReason 1033} 1034 1035type Trace struct { 1036 // QUIC version tag, as represented on wire. Should be always 4 bytes long. 1037 ProtocolVersion []byte `protobuf:"bytes,1,opt,name=protocol_version,json=protocolVersion" json:"protocol_version,omitempty"` 1038 // Source and destination connection ID. If multiple connection IDs are used, 1039 // record the first one used with short-form header. 1040 SourceConnectionId []byte `protobuf:"bytes,2,opt,name=source_connection_id,json=sourceConnectionId" json:"source_connection_id,omitempty"` 1041 DestinationConnectionId []byte `protobuf:"bytes,3,opt,name=destination_connection_id,json=destinationConnectionId" json:"destination_connection_id,omitempty"` 1042 Events []*Event `protobuf:"bytes,4,rep,name=events" json:"events,omitempty"` 1043 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1044 XXX_unrecognized []byte `json:"-"` 1045 XXX_sizecache int32 `json:"-"` 1046} 1047 1048func (m *Trace) Reset() { *m = Trace{} } 1049func (m *Trace) String() string { return proto.CompactTextString(m) } 1050func (*Trace) ProtoMessage() {} 1051func (*Trace) Descriptor() ([]byte, []int) { 1052 return fileDescriptor_79ecf15e0416742d, []int{11} 1053} 1054 1055func (m *Trace) XXX_Unmarshal(b []byte) error { 1056 return xxx_messageInfo_Trace.Unmarshal(m, b) 1057} 1058func (m *Trace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1059 return xxx_messageInfo_Trace.Marshal(b, m, deterministic) 1060} 1061func (m *Trace) XXX_Merge(src proto.Message) { 1062 xxx_messageInfo_Trace.Merge(m, src) 1063} 1064func (m *Trace) XXX_Size() int { 1065 return xxx_messageInfo_Trace.Size(m) 1066} 1067func (m *Trace) XXX_DiscardUnknown() { 1068 xxx_messageInfo_Trace.DiscardUnknown(m) 1069} 1070 1071var xxx_messageInfo_Trace proto.InternalMessageInfo 1072 1073func (m *Trace) GetProtocolVersion() []byte { 1074 if m != nil { 1075 return m.ProtocolVersion 1076 } 1077 return nil 1078} 1079 1080func (m *Trace) GetSourceConnectionId() []byte { 1081 if m != nil { 1082 return m.SourceConnectionId 1083 } 1084 return nil 1085} 1086 1087func (m *Trace) GetDestinationConnectionId() []byte { 1088 if m != nil { 1089 return m.DestinationConnectionId 1090 } 1091 return nil 1092} 1093 1094func (m *Trace) GetEvents() []*Event { 1095 if m != nil { 1096 return m.Events 1097 } 1098 return nil 1099} 1100 1101func init() { 1102 proto.RegisterEnum("pb.FrameType", FrameType_name, FrameType_value) 1103 proto.RegisterEnum("pb.CloseType", CloseType_name, CloseType_value) 1104 proto.RegisterEnum("pb.EncryptionLevel", EncryptionLevel_name, EncryptionLevel_value) 1105 proto.RegisterEnum("pb.EventType", EventType_name, EventType_value) 1106 proto.RegisterEnum("pb.TransmissionReason", TransmissionReason_name, TransmissionReason_value) 1107 proto.RegisterType((*StreamFrameInfo)(nil), "pb.StreamFrameInfo") 1108 proto.RegisterType((*CryptoFrameInfo)(nil), "pb.CryptoFrameInfo") 1109 proto.RegisterType((*AckBlock)(nil), "pb.AckBlock") 1110 proto.RegisterType((*AckInfo)(nil), "pb.AckInfo") 1111 proto.RegisterType((*ResetStreamInfo)(nil), "pb.ResetStreamInfo") 1112 proto.RegisterType((*CloseInfo)(nil), "pb.CloseInfo") 1113 proto.RegisterType((*FlowControlInfo)(nil), "pb.FlowControlInfo") 1114 proto.RegisterType((*Frame)(nil), "pb.Frame") 1115 proto.RegisterType((*TransportState)(nil), "pb.TransportState") 1116 proto.RegisterType((*ExternalNetworkParameters)(nil), "pb.ExternalNetworkParameters") 1117 proto.RegisterType((*Event)(nil), "pb.Event") 1118 proto.RegisterType((*Trace)(nil), "pb.Trace") 1119} 1120 1121func init() { proto.RegisterFile("quic-trace.proto", fileDescriptor_79ecf15e0416742d) } 1122 1123var fileDescriptor_79ecf15e0416742d = []byte{ 1124 // 1432 bytes of a gzipped FileDescriptorProto 1125 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x56, 0xdd, 0x6e, 0xe3, 0x44, 1126 0x14, 0xae, 0xf3, 0x9f, 0x93, 0xa4, 0x76, 0xa7, 0xa5, 0x4d, 0xd9, 0x5d, 0xe8, 0x06, 0x54, 0x95, 1127 0x0a, 0x56, 0xbb, 0x15, 0x17, 0x68, 0x57, 0x62, 0xe5, 0x26, 0x6e, 0xd7, 0x6a, 0x6a, 0x87, 0x89, 1128 0xbb, 0x2c, 0x12, 0x30, 0x72, 0x9d, 0x49, 0x6b, 0xd5, 0xb1, 0x8d, 0x3d, 0x6d, 0xb7, 0x7b, 0x8b, 1129 0xd0, 0x5e, 0xf2, 0x08, 0xbc, 0x07, 0x97, 0xf0, 0x44, 0xbc, 0x01, 0x9a, 0x19, 0x3b, 0x7f, 0x65, 1130 0xc5, 0x9d, 0xe7, 0x3b, 0xdf, 0xf9, 0x99, 0xef, 0x9c, 0x33, 0x09, 0x68, 0xbf, 0x5c, 0xfb, 0xde, 1131 0x57, 0x2c, 0x71, 0x3d, 0xfa, 0x24, 0x4e, 0x22, 0x16, 0xa1, 0x42, 0x7c, 0xde, 0x89, 0x41, 0x1d, 1132 0xb2, 0x84, 0xba, 0x93, 0xa3, 0xc4, 0x9d, 0x50, 0x33, 0x1c, 0x47, 0xe8, 0x01, 0xd4, 0x53, 0x01, 1133 0x11, 0x7f, 0xd4, 0x56, 0x76, 0x94, 0xbd, 0x12, 0xae, 0x49, 0xc0, 0x1c, 0x21, 0x0d, 0x8a, 0x63, 1134 0x3f, 0x6c, 0x17, 0x76, 0x94, 0xbd, 0x1a, 0xe6, 0x9f, 0x68, 0x13, 0x2a, 0x01, 0x0d, 0x2f, 0xd8, 1135 0x65, 0xbb, 0x28, 0xb8, 0xd9, 0x89, 0xe3, 0xd1, 0x78, 0x9c, 0x52, 0xd6, 0x2e, 0x49, 0x5c, 0x9e, 1136 0x3a, 0x3a, 0xa8, 0xdd, 0xe4, 0x2e, 0x66, 0xd1, 0x2c, 0xe3, 0x2c, 0x84, 0xf2, 0x81, 0x10, 0x85, 1137 0x85, 0x10, 0x16, 0xd4, 0x74, 0xef, 0xea, 0x30, 0x88, 0xbc, 0x2b, 0xf4, 0x18, 0x9a, 0x63, 0x3f, 1138 0x49, 0x19, 0x89, 0x5d, 0xef, 0x8a, 0xb2, 0x2c, 0x42, 0x43, 0x60, 0x03, 0x01, 0xa1, 0x4f, 0xa1, 1139 0x11, 0xb8, 0x33, 0x86, 0x8c, 0x05, 0x1c, 0x92, 0x84, 0xce, 0xcf, 0x50, 0xd5, 0xbd, 0x2b, 0x51, 1140 0xca, 0x33, 0x68, 0x71, 0x6c, 0x94, 0x91, 0xd3, 0xb6, 0xb2, 0x53, 0xdc, 0x6b, 0x1c, 0x34, 0x9f, 1141 0xc4, 0xe7, 0x4f, 0xf2, 0x9c, 0xb8, 0x29, 0x28, 0xd2, 0x39, 0x45, 0x3b, 0xc0, 0xcf, 0x64, 0x44, 1142 0x03, 0xf7, 0x8e, 0x5c, 0xa7, 0x79, 0x7c, 0xd7, 0xbb, 0xea, 0x71, 0xe8, 0x2c, 0xed, 0xbc, 0x57, 1143 0x40, 0xc5, 0x34, 0xa5, 0x4c, 0x4a, 0xfd, 0xff, 0x2a, 0x7f, 0x0d, 0x9b, 0x6e, 0x1c, 0x07, 0xbe, 1144 0xe7, 0x32, 0x3f, 0x0a, 0x09, 0x4d, 0x92, 0x28, 0x21, 0x5e, 0x34, 0xa2, 0x22, 0x78, 0x0b, 0x6f, 1145 0xcc, 0x59, 0x0d, 0x6e, 0xec, 0x46, 0x23, 0x2a, 0xa5, 0x08, 0xdd, 0x80, 0x64, 0xa2, 0x15, 0x73, 1146 0x29, 0x42, 0x37, 0xb0, 0xa5, 0x72, 0x7f, 0x2a, 0x50, 0xef, 0x06, 0x51, 0x2a, 0x75, 0x7f, 0x04, 1147 0x30, 0x17, 0x5a, 0x11, 0xa1, 0xeb, 0x74, 0x1a, 0xef, 0x33, 0x68, 0x25, 0xd4, 0x4d, 0xa3, 0x90, 1148 0xc4, 0x97, 0x89, 0x9b, 0xca, 0xe4, 0x75, 0xdc, 0x94, 0xe0, 0x40, 0x60, 0xe8, 0x4b, 0x00, 0x8f, 1149 0x07, 0x24, 0xec, 0x2e, 0xa6, 0x22, 0xe5, 0xea, 0x41, 0x8b, 0xab, 0x25, 0xd2, 0x38, 0x77, 0x31, 1150 0xc5, 0x75, 0x2f, 0xff, 0x44, 0x2f, 0xe0, 0x63, 0x96, 0xb8, 0x61, 0x1a, 0x47, 0x09, 0x23, 0xd2, 1151 0x6f, 0xcc, 0xc7, 0x40, 0x7a, 0xcb, 0x41, 0xd9, 0x9a, 0x32, 0x44, 0x08, 0x31, 0x26, 0xdc, 0xb9, 1152 0x63, 0x82, 0x7a, 0x14, 0x44, 0xb7, 0xdd, 0x28, 0x64, 0x49, 0x14, 0x88, 0x1b, 0x6c, 0x43, 0x6d, 1153 0xe2, 0xbe, 0x25, 0x23, 0x97, 0xb9, 0x99, 0x88, 0xd5, 0x89, 0xfb, 0xb6, 0xe7, 0x32, 0x77, 0x51, 1154 0xe0, 0xc2, 0xa2, 0xc0, 0x9d, 0xdf, 0x8b, 0x50, 0x16, 0x81, 0x79, 0xfd, 0x73, 0x15, 0x28, 0xb3, 1155 0xfa, 0xa7, 0x79, 0x71, 0x7d, 0x9c, 0x7f, 0xa2, 0x97, 0xb0, 0x96, 0x05, 0x95, 0x4e, 0x7e, 0x38, 1156 0x8e, 0x44, 0xf0, 0xc6, 0xc1, 0x3a, 0x77, 0x5a, 0xda, 0x25, 0xac, 0xa6, 0x4b, 0xcb, 0xb5, 0x0b, 1157 0x35, 0x3e, 0x2c, 0xc2, 0xaf, 0x28, 0xfc, 0x1a, 0xd9, 0x68, 0x09, 0x7e, 0xd5, 0xcd, 0xe6, 0xf0, 1158 0x25, 0xac, 0x25, 0x7c, 0x62, 0x48, 0x7e, 0x07, 0xee, 0x50, 0x9a, 0x25, 0x5a, 0x1a, 0x27, 0xac, 1159 0x26, 0x4b, 0xf3, 0x35, 0xed, 0x8b, 0xf0, 0x2c, 0x0b, 0xcf, 0x59, 0x5f, 0x84, 0x8f, 0xec, 0x4b, 1160 0x9e, 0x6e, 0x1c, 0x44, 0xb7, 0xc4, 0x93, 0xda, 0x4a, 0xa7, 0xca, 0x2c, 0xdd, 0x92, 0xee, 0x58, 1161 0x1d, 0x2f, 0x35, 0xe2, 0x25, 0xac, 0x79, 0x62, 0xab, 0xe7, 0x85, 0xa9, 0xce, 0x02, 0x2c, 0xad, 1162 0x3c, 0x56, 0xbd, 0x45, 0xa0, 0xf3, 0x47, 0x01, 0x56, 0x9d, 0xbc, 0xf1, 0x43, 0xe6, 0x32, 0x8a, 1163 0x1e, 0x02, 0x4c, 0xfc, 0x90, 0x24, 0x8c, 0xf1, 0xb5, 0xca, 0x76, 0x64, 0xe2, 0x87, 0x98, 0xb1, 1164 0xb3, 0x14, 0xed, 0x82, 0x9a, 0x4e, 0xa2, 0x88, 0x5d, 0xd2, 0x51, 0x4e, 0x91, 0x5d, 0x6e, 0xe5, 1165 0xb0, 0xe4, 0x7d, 0x92, 0x6d, 0x7f, 0xc6, 0x91, 0x4b, 0x51, 0xe7, 0xd0, 0x34, 0x8e, 0x1f, 0x92, 1166 0x71, 0xe0, 0x5f, 0x5c, 0x32, 0x72, 0x7e, 0xc7, 0x68, 0x9a, 0xcd, 0x61, 0xcb, 0x0f, 0x8f, 0x04, 1167 0x7a, 0xc8, 0x41, 0xbe, 0x2c, 0xde, 0x6d, 0x38, 0xca, 0x28, 0x65, 0x19, 0x86, 0x23, 0xd2, 0xbc, 1168 0x0b, 0x6a, 0xec, 0x7a, 0x7e, 0x78, 0x41, 0x12, 0x97, 0x51, 0x72, 0x1e, 0xa7, 0x42, 0xbf, 0x12, 1169 0x6e, 0x49, 0x18, 0xbb, 0x8c, 0x1e, 0xc6, 0x29, 0xfa, 0x06, 0xda, 0x5e, 0x14, 0x5e, 0xd0, 0x54, 1170 0x6c, 0x76, 0xae, 0x77, 0xca, 0x2f, 0x2c, 0xf4, 0xaa, 0xe3, 0xcd, 0x99, 0x3d, 0x53, 0x58, 0xc8, 1171 0xd1, 0xb9, 0x81, 0x6d, 0xe3, 0x2d, 0xa3, 0x49, 0xe8, 0x06, 0x16, 0x65, 0xb7, 0x51, 0x72, 0x35, 1172 0x70, 0xb9, 0x7c, 0x8c, 0x26, 0x29, 0xdf, 0xd5, 0x73, 0x37, 0x1c, 0xdd, 0xfa, 0x23, 0x76, 0x29, 1173 0x92, 0x4b, 0xb9, 0x9a, 0x53, 0x90, 0xe7, 0xfe, 0x08, 0x2a, 0x0b, 0x4a, 0x95, 0x13, 0xa1, 0xc0, 1174 0xe2, 0xcd, 0x8a, 0x4b, 0x37, 0xeb, 0xfc, 0x53, 0x84, 0xb2, 0x71, 0x43, 0x43, 0x86, 0xb6, 0xa0, 1175 0xca, 0xfc, 0x09, 0x9d, 0x75, 0xa3, 0xc2, 0x8f, 0x67, 0x29, 0x1f, 0x36, 0xca, 0x19, 0x72, 0x89, 1176 0x0a, 0xb3, 0x25, 0x12, 0x7e, 0x72, 0x89, 0x68, 0xfe, 0xc9, 0x6b, 0x95, 0xaf, 0x2b, 0x09, 0xaf, 1177 0x27, 0xe7, 0x34, 0xc9, 0x52, 0x36, 0x25, 0x68, 0x09, 0x0c, 0x3d, 0x86, 0x8a, 0x98, 0x24, 0xde, 1178 0x0d, 0xfe, 0x02, 0xd7, 0xa7, 0x3b, 0x89, 0x33, 0x03, 0x7f, 0xd7, 0xb3, 0x38, 0xa9, 0xff, 0x8e, 1179 0x66, 0x2d, 0x01, 0x09, 0x0d, 0xfd, 0x77, 0x14, 0x7d, 0x0b, 0x1a, 0x0d, 0xc5, 0xa0, 0x71, 0xad, 1180 0x03, 0x7a, 0x43, 0x03, 0xd1, 0x94, 0x55, 0x39, 0x93, 0xc6, 0xd4, 0xd6, 0xe7, 0x26, 0xac, 0xd2, 1181 0x45, 0x00, 0xbd, 0x00, 0x75, 0xf6, 0x5a, 0xcd, 0x5a, 0xd4, 0x38, 0x40, 0xdc, 0x7d, 0x71, 0x5a, 1182 0xf1, 0x2a, 0x5b, 0x9c, 0xde, 0x9f, 0xe0, 0x01, 0xcd, 0xda, 0x45, 0x42, 0xd9, 0x2f, 0x12, 0x4f, 1183 0x1b, 0xd6, 0xae, 0x89, 0x40, 0x8f, 0x44, 0x1d, 0x1f, 0xea, 0x2a, 0xde, 0xa6, 0x1f, 0x6c, 0xf8, 1184 0x8f, 0xb0, 0x2e, 0x12, 0x4e, 0xfc, 0x34, 0xe5, 0xb7, 0x93, 0x8f, 0x72, 0xbb, 0x2e, 0xae, 0xb7, 1185 0x39, 0xad, 0x2f, 0x33, 0x63, 0x61, 0x7d, 0xbe, 0x6e, 0xd9, 0xf8, 0x54, 0xef, 0x13, 0x07, 0xeb, 1186 0xd6, 0xf0, 0xd4, 0x1c, 0x0e, 0x4d, 0xdb, 0xc2, 0x88, 0xdd, 0x23, 0x76, 0xfe, 0x56, 0xa0, 0xec, 1187 0xf0, 0xbf, 0x0a, 0xe8, 0x0b, 0xd0, 0xc4, 0xbf, 0x05, 0x2f, 0x0a, 0xc8, 0x0d, 0x4d, 0x38, 0x47, 1188 0x34, 0xbf, 0x89, 0xd5, 0x1c, 0x7f, 0x2d, 0x61, 0xf4, 0x14, 0x36, 0xd2, 0xe8, 0x3a, 0xf1, 0x28, 1189 0x1f, 0xeb, 0x90, 0x7a, 0x42, 0xf5, 0xec, 0xf1, 0x6d, 0x62, 0x24, 0x6d, 0xdd, 0xa9, 0xc9, 0x1c, 1190 0xa1, 0xe7, 0xb0, 0x3d, 0xe2, 0x93, 0x1e, 0xba, 0xf9, 0x36, 0xcc, 0xb9, 0x15, 0x85, 0xdb, 0xd6, 1191 0x1c, 0x61, 0xc1, 0xf7, 0x31, 0x54, 0xc4, 0x48, 0x2d, 0x0c, 0x88, 0x98, 0x37, 0x9c, 0x19, 0xf6, 1192 0xff, 0x52, 0xa0, 0x3e, 0x7d, 0xc6, 0xd1, 0x1a, 0xb4, 0xce, 0xac, 0x13, 0xcb, 0xfe, 0xde, 0x22, 1193 0x47, 0x58, 0x3f, 0x35, 0xb4, 0x15, 0x04, 0x50, 0x19, 0x3a, 0xd8, 0xd0, 0x4f, 0x35, 0x05, 0x55, 1194 0xa1, 0xa8, 0x77, 0x4f, 0xb4, 0x02, 0xd2, 0xa0, 0x89, 0x8d, 0xa1, 0xe1, 0x90, 0xcc, 0x54, 0x44, 1195 0x1b, 0xa0, 0x75, 0x6d, 0xcb, 0x32, 0xba, 0x8e, 0x69, 0x5b, 0xa4, 0xdb, 0xb7, 0x87, 0x86, 0x56, 1196 0x42, 0x4d, 0xa8, 0x9d, 0xea, 0x6f, 0x48, 0x4f, 0x77, 0x74, 0xad, 0x8c, 0xd6, 0x41, 0xe5, 0x27, 1197 0xe9, 0x23, 0xc1, 0x0a, 0xaa, 0x41, 0x69, 0x60, 0x5a, 0xc7, 0x5a, 0x15, 0x35, 0xa0, 0x7a, 0xd8, 1198 0xb7, 0xbb, 0x27, 0x46, 0x4f, 0xab, 0x21, 0x04, 0xab, 0x19, 0x2f, 0xc7, 0xea, 0x9c, 0x30, 0xd0, 1199 0x7b, 0x3d, 0xce, 0x06, 0x5e, 0x57, 0x17, 0xff, 0x30, 0x70, 0x6c, 0xad, 0xb1, 0xff, 0x6b, 0xfe, 1200 0x93, 0x2d, 0x2e, 0xb1, 0x03, 0x0f, 0x8f, 0x6d, 0xfb, 0xb8, 0x6f, 0x90, 0xef, 0xce, 0xcc, 0x2e, 1201 0xb9, 0x57, 0xd6, 0x0a, 0xda, 0x83, 0xcf, 0x4d, 0xc3, 0x39, 0x92, 0x76, 0xd1, 0xe8, 0x81, 0x8d, 1202 0x9d, 0xfb, 0x4c, 0x05, 0xed, 0xc3, 0xee, 0x8c, 0xa9, 0x0f, 0x06, 0x7d, 0xb3, 0xab, 0x4b, 0xc2, 1203 0x32, 0xb7, 0xb0, 0xff, 0x9b, 0x02, 0xea, 0xd2, 0xbe, 0xa0, 0x4d, 0x40, 0x86, 0x25, 0xea, 0xe4, 1204 0xcc, 0x4c, 0x5b, 0x6d, 0x65, 0x09, 0x37, 0x2d, 0xd3, 0x31, 0xf5, 0xbe, 0xa6, 0x70, 0x89, 0xe6, 1205 0xf0, 0xa7, 0xd8, 0x71, 0xb4, 0xc2, 0x12, 0xf8, 0x8c, 0x83, 0x45, 0xd4, 0x86, 0x8d, 0x39, 0xf0, 1206 0x95, 0x6e, 0xf5, 0x86, 0xaf, 0xf4, 0x13, 0x43, 0x2b, 0xed, 0xbf, 0x57, 0xa0, 0x3e, 0x7d, 0x54, 1207 0xe6, 0x5b, 0x6a, 0xbc, 0x36, 0x2c, 0x47, 0x5b, 0x41, 0x2a, 0x34, 0x06, 0x7a, 0xf7, 0x84, 0xb7, 1208 0x8f, 0x03, 0x22, 0x6b, 0x06, 0x60, 0xa3, 0x6b, 0x98, 0xaf, 0x8d, 0x9e, 0x56, 0x98, 0x63, 0xf5, 1209 0xed, 0x21, 0xcf, 0xb8, 0x05, 0xeb, 0xf3, 0x0a, 0xf4, 0xcd, 0x53, 0xd3, 0x31, 0x7a, 0x5a, 0x89, 1210 0x1b, 0x8c, 0x37, 0x8e, 0x81, 0x2d, 0xbd, 0x4f, 0x06, 0x3a, 0x9f, 0x1b, 0xc7, 0xc0, 0x43, 0xad, 1211 0xbc, 0x9f, 0x00, 0xba, 0xbf, 0x61, 0x9c, 0xfe, 0x1f, 0x3b, 0xa6, 0xad, 0xf0, 0x32, 0x1c, 0xdd, 1212 0xec, 0xf3, 0x7c, 0x43, 0x32, 0xc0, 0xf6, 0x21, 0xef, 0xc0, 0x06, 0x68, 0xd8, 0xb1, 0x17, 0xa9, 1213 0x05, 0x7e, 0x7b, 0x4e, 0x30, 0xad, 0xe3, 0x45, 0x4b, 0xf1, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 1214 0x4a, 0x0f, 0xb7, 0x51, 0xc4, 0x0b, 0x00, 0x00, 1215} 1216