1// Code generated by protoc-gen-go. DO NOT EDIT. 2// source: google/genomics/v1/readalignment.proto 3 4package genomics 5 6import ( 7 fmt "fmt" 8 math "math" 9 10 proto "github.com/golang/protobuf/proto" 11 _struct "github.com/golang/protobuf/ptypes/struct" 12 _ "google.golang.org/genproto/googleapis/api/annotations" 13) 14 15// Reference imports to suppress errors if they are not otherwise used. 16var _ = proto.Marshal 17var _ = fmt.Errorf 18var _ = math.Inf 19 20// This is a compile-time assertion to ensure that this generated file 21// is compatible with the proto package it is being compiled against. 22// A compilation error at this line likely means your copy of the 23// proto package needs to be updated. 24const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package 25 26// A linear alignment can be represented by one CIGAR string. Describes the 27// mapped position and local alignment of the read to the reference. 28type LinearAlignment struct { 29 // The position of this alignment. 30 Position *Position `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` 31 // The mapping quality of this alignment. Represents how likely 32 // the read maps to this position as opposed to other locations. 33 // 34 // Specifically, this is -10 log10 Pr(mapping position is wrong), rounded to 35 // the nearest integer. 36 MappingQuality int32 `protobuf:"varint,2,opt,name=mapping_quality,json=mappingQuality,proto3" json:"mapping_quality,omitempty"` 37 // Represents the local alignment of this sequence (alignment matches, indels, 38 // etc) against the reference. 39 Cigar []*CigarUnit `protobuf:"bytes,3,rep,name=cigar,proto3" json:"cigar,omitempty"` 40 XXX_NoUnkeyedLiteral struct{} `json:"-"` 41 XXX_unrecognized []byte `json:"-"` 42 XXX_sizecache int32 `json:"-"` 43} 44 45func (m *LinearAlignment) Reset() { *m = LinearAlignment{} } 46func (m *LinearAlignment) String() string { return proto.CompactTextString(m) } 47func (*LinearAlignment) ProtoMessage() {} 48func (*LinearAlignment) Descriptor() ([]byte, []int) { 49 return fileDescriptor_5882c5c7543d07e3, []int{0} 50} 51 52func (m *LinearAlignment) XXX_Unmarshal(b []byte) error { 53 return xxx_messageInfo_LinearAlignment.Unmarshal(m, b) 54} 55func (m *LinearAlignment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 56 return xxx_messageInfo_LinearAlignment.Marshal(b, m, deterministic) 57} 58func (m *LinearAlignment) XXX_Merge(src proto.Message) { 59 xxx_messageInfo_LinearAlignment.Merge(m, src) 60} 61func (m *LinearAlignment) XXX_Size() int { 62 return xxx_messageInfo_LinearAlignment.Size(m) 63} 64func (m *LinearAlignment) XXX_DiscardUnknown() { 65 xxx_messageInfo_LinearAlignment.DiscardUnknown(m) 66} 67 68var xxx_messageInfo_LinearAlignment proto.InternalMessageInfo 69 70func (m *LinearAlignment) GetPosition() *Position { 71 if m != nil { 72 return m.Position 73 } 74 return nil 75} 76 77func (m *LinearAlignment) GetMappingQuality() int32 { 78 if m != nil { 79 return m.MappingQuality 80 } 81 return 0 82} 83 84func (m *LinearAlignment) GetCigar() []*CigarUnit { 85 if m != nil { 86 return m.Cigar 87 } 88 return nil 89} 90 91// A read alignment describes a linear alignment of a string of DNA to a 92// [reference sequence][google.genomics.v1.Reference], in addition to metadata 93// about the fragment (the molecule of DNA sequenced) and the read (the bases 94// which were read by the sequencer). A read is equivalent to a line in a SAM 95// file. A read belongs to exactly one read group and exactly one 96// [read group set][google.genomics.v1.ReadGroupSet]. 97// 98// For more genomics resource definitions, see [Fundamentals of Google 99// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) 100// 101// ### Reverse-stranded reads 102// 103// Mapped reads (reads having a non-null `alignment`) can be aligned to either 104// the forward or the reverse strand of their associated reference. Strandedness 105// of a mapped read is encoded by `alignment.position.reverseStrand`. 106// 107// If we consider the reference to be a forward-stranded coordinate space of 108// `[0, reference.length)` with `0` as the left-most position and 109// `reference.length` as the right-most position, reads are always aligned left 110// to right. That is, `alignment.position.position` always refers to the 111// left-most reference coordinate and `alignment.cigar` describes the alignment 112// of this read to the reference from left to right. All per-base fields such as 113// `alignedSequence` and `alignedQuality` share this same left-to-right 114// orientation; this is true of reads which are aligned to either strand. For 115// reverse-stranded reads, this means that `alignedSequence` is the reverse 116// complement of the bases that were originally reported by the sequencing 117// machine. 118// 119// ### Generating a reference-aligned sequence string 120// 121// When interacting with mapped reads, it's often useful to produce a string 122// representing the local alignment of the read to reference. The following 123// pseudocode demonstrates one way of doing this: 124// 125// out = "" 126// offset = 0 127// for c in read.alignment.cigar { 128// switch c.operation { 129// case "ALIGNMENT_MATCH", "SEQUENCE_MATCH", "SEQUENCE_MISMATCH": 130// out += read.alignedSequence[offset:offset+c.operationLength] 131// offset += c.operationLength 132// break 133// case "CLIP_SOFT", "INSERT": 134// offset += c.operationLength 135// break 136// case "PAD": 137// out += repeat("*", c.operationLength) 138// break 139// case "DELETE": 140// out += repeat("-", c.operationLength) 141// break 142// case "SKIP": 143// out += repeat(" ", c.operationLength) 144// break 145// case "CLIP_HARD": 146// break 147// } 148// } 149// return out 150// 151// ### Converting to SAM's CIGAR string 152// 153// The following pseudocode generates a SAM CIGAR string from the 154// `cigar` field. Note that this is a lossy conversion 155// (`cigar.referenceSequence` is lost). 156// 157// cigarMap = { 158// "ALIGNMENT_MATCH": "M", 159// "INSERT": "I", 160// "DELETE": "D", 161// "SKIP": "N", 162// "CLIP_SOFT": "S", 163// "CLIP_HARD": "H", 164// "PAD": "P", 165// "SEQUENCE_MATCH": "=", 166// "SEQUENCE_MISMATCH": "X", 167// } 168// cigarStr = "" 169// for c in read.alignment.cigar { 170// cigarStr += c.operationLength + cigarMap[c.operation] 171// } 172// return cigarStr 173type Read struct { 174 // The server-generated read ID, unique across all reads. This is different 175 // from the `fragmentName`. 176 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` 177 // The ID of the read group this read belongs to. A read belongs to exactly 178 // one read group. This is a server-generated ID which is distinct from SAM's 179 // RG tag (for that value, see 180 // [ReadGroup.name][google.genomics.v1.ReadGroup.name]). 181 ReadGroupId string `protobuf:"bytes,2,opt,name=read_group_id,json=readGroupId,proto3" json:"read_group_id,omitempty"` 182 // The ID of the read group set this read belongs to. A read belongs to 183 // exactly one read group set. 184 ReadGroupSetId string `protobuf:"bytes,3,opt,name=read_group_set_id,json=readGroupSetId,proto3" json:"read_group_set_id,omitempty"` 185 // The fragment name. Equivalent to QNAME (query template name) in SAM. 186 FragmentName string `protobuf:"bytes,4,opt,name=fragment_name,json=fragmentName,proto3" json:"fragment_name,omitempty"` 187 // The orientation and the distance between reads from the fragment are 188 // consistent with the sequencing protocol (SAM flag 0x2). 189 ProperPlacement bool `protobuf:"varint,5,opt,name=proper_placement,json=properPlacement,proto3" json:"proper_placement,omitempty"` 190 // The fragment is a PCR or optical duplicate (SAM flag 0x400). 191 DuplicateFragment bool `protobuf:"varint,6,opt,name=duplicate_fragment,json=duplicateFragment,proto3" json:"duplicate_fragment,omitempty"` 192 // The observed length of the fragment, equivalent to TLEN in SAM. 193 FragmentLength int32 `protobuf:"varint,7,opt,name=fragment_length,json=fragmentLength,proto3" json:"fragment_length,omitempty"` 194 // The read number in sequencing. 0-based and less than numberReads. This 195 // field replaces SAM flag 0x40 and 0x80. 196 ReadNumber int32 `protobuf:"varint,8,opt,name=read_number,json=readNumber,proto3" json:"read_number,omitempty"` 197 // The number of reads in the fragment (extension to SAM flag 0x1). 198 NumberReads int32 `protobuf:"varint,9,opt,name=number_reads,json=numberReads,proto3" json:"number_reads,omitempty"` 199 // Whether this read did not pass filters, such as platform or vendor quality 200 // controls (SAM flag 0x200). 201 FailedVendorQualityChecks bool `protobuf:"varint,10,opt,name=failed_vendor_quality_checks,json=failedVendorQualityChecks,proto3" json:"failed_vendor_quality_checks,omitempty"` 202 // The linear alignment for this alignment record. This field is null for 203 // unmapped reads. 204 Alignment *LinearAlignment `protobuf:"bytes,11,opt,name=alignment,proto3" json:"alignment,omitempty"` 205 // Whether this alignment is secondary. Equivalent to SAM flag 0x100. 206 // A secondary alignment represents an alternative to the primary alignment 207 // for this read. Aligners may return secondary alignments if a read can map 208 // ambiguously to multiple coordinates in the genome. By convention, each read 209 // has one and only one alignment where both `secondaryAlignment` 210 // and `supplementaryAlignment` are false. 211 SecondaryAlignment bool `protobuf:"varint,12,opt,name=secondary_alignment,json=secondaryAlignment,proto3" json:"secondary_alignment,omitempty"` 212 // Whether this alignment is supplementary. Equivalent to SAM flag 0x800. 213 // Supplementary alignments are used in the representation of a chimeric 214 // alignment. In a chimeric alignment, a read is split into multiple 215 // linear alignments that map to different reference contigs. The first 216 // linear alignment in the read will be designated as the representative 217 // alignment; the remaining linear alignments will be designated as 218 // supplementary alignments. These alignments may have different mapping 219 // quality scores. In each linear alignment in a chimeric alignment, the read 220 // will be hard clipped. The `alignedSequence` and 221 // `alignedQuality` fields in the alignment record will only 222 // represent the bases for its respective linear alignment. 223 SupplementaryAlignment bool `protobuf:"varint,13,opt,name=supplementary_alignment,json=supplementaryAlignment,proto3" json:"supplementary_alignment,omitempty"` 224 // The bases of the read sequence contained in this alignment record, 225 // **without CIGAR operations applied** (equivalent to SEQ in SAM). 226 // `alignedSequence` and `alignedQuality` may be 227 // shorter than the full read sequence and quality. This will occur if the 228 // alignment is part of a chimeric alignment, or if the read was trimmed. When 229 // this occurs, the CIGAR for this read will begin/end with a hard clip 230 // operator that will indicate the length of the excised sequence. 231 AlignedSequence string `protobuf:"bytes,14,opt,name=aligned_sequence,json=alignedSequence,proto3" json:"aligned_sequence,omitempty"` 232 // The quality of the read sequence contained in this alignment record 233 // (equivalent to QUAL in SAM). 234 // `alignedSequence` and `alignedQuality` may be shorter than the full read 235 // sequence and quality. This will occur if the alignment is part of a 236 // chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR 237 // for this read will begin/end with a hard clip operator that will indicate 238 // the length of the excised sequence. 239 AlignedQuality []int32 `protobuf:"varint,15,rep,packed,name=aligned_quality,json=alignedQuality,proto3" json:"aligned_quality,omitempty"` 240 // The mapping of the primary alignment of the 241 // `(readNumber+1)%numberReads` read in the fragment. It replaces 242 // mate position and mate strand in SAM. 243 NextMatePosition *Position `protobuf:"bytes,16,opt,name=next_mate_position,json=nextMatePosition,proto3" json:"next_mate_position,omitempty"` 244 // A map of additional read alignment information. This must be of the form 245 // map<string, string[]> (string key mapping to a list of string values). 246 Info map[string]*_struct.ListValue `protobuf:"bytes,17,rep,name=info,proto3" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 247 XXX_NoUnkeyedLiteral struct{} `json:"-"` 248 XXX_unrecognized []byte `json:"-"` 249 XXX_sizecache int32 `json:"-"` 250} 251 252func (m *Read) Reset() { *m = Read{} } 253func (m *Read) String() string { return proto.CompactTextString(m) } 254func (*Read) ProtoMessage() {} 255func (*Read) Descriptor() ([]byte, []int) { 256 return fileDescriptor_5882c5c7543d07e3, []int{1} 257} 258 259func (m *Read) XXX_Unmarshal(b []byte) error { 260 return xxx_messageInfo_Read.Unmarshal(m, b) 261} 262func (m *Read) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 263 return xxx_messageInfo_Read.Marshal(b, m, deterministic) 264} 265func (m *Read) XXX_Merge(src proto.Message) { 266 xxx_messageInfo_Read.Merge(m, src) 267} 268func (m *Read) XXX_Size() int { 269 return xxx_messageInfo_Read.Size(m) 270} 271func (m *Read) XXX_DiscardUnknown() { 272 xxx_messageInfo_Read.DiscardUnknown(m) 273} 274 275var xxx_messageInfo_Read proto.InternalMessageInfo 276 277func (m *Read) GetId() string { 278 if m != nil { 279 return m.Id 280 } 281 return "" 282} 283 284func (m *Read) GetReadGroupId() string { 285 if m != nil { 286 return m.ReadGroupId 287 } 288 return "" 289} 290 291func (m *Read) GetReadGroupSetId() string { 292 if m != nil { 293 return m.ReadGroupSetId 294 } 295 return "" 296} 297 298func (m *Read) GetFragmentName() string { 299 if m != nil { 300 return m.FragmentName 301 } 302 return "" 303} 304 305func (m *Read) GetProperPlacement() bool { 306 if m != nil { 307 return m.ProperPlacement 308 } 309 return false 310} 311 312func (m *Read) GetDuplicateFragment() bool { 313 if m != nil { 314 return m.DuplicateFragment 315 } 316 return false 317} 318 319func (m *Read) GetFragmentLength() int32 { 320 if m != nil { 321 return m.FragmentLength 322 } 323 return 0 324} 325 326func (m *Read) GetReadNumber() int32 { 327 if m != nil { 328 return m.ReadNumber 329 } 330 return 0 331} 332 333func (m *Read) GetNumberReads() int32 { 334 if m != nil { 335 return m.NumberReads 336 } 337 return 0 338} 339 340func (m *Read) GetFailedVendorQualityChecks() bool { 341 if m != nil { 342 return m.FailedVendorQualityChecks 343 } 344 return false 345} 346 347func (m *Read) GetAlignment() *LinearAlignment { 348 if m != nil { 349 return m.Alignment 350 } 351 return nil 352} 353 354func (m *Read) GetSecondaryAlignment() bool { 355 if m != nil { 356 return m.SecondaryAlignment 357 } 358 return false 359} 360 361func (m *Read) GetSupplementaryAlignment() bool { 362 if m != nil { 363 return m.SupplementaryAlignment 364 } 365 return false 366} 367 368func (m *Read) GetAlignedSequence() string { 369 if m != nil { 370 return m.AlignedSequence 371 } 372 return "" 373} 374 375func (m *Read) GetAlignedQuality() []int32 { 376 if m != nil { 377 return m.AlignedQuality 378 } 379 return nil 380} 381 382func (m *Read) GetNextMatePosition() *Position { 383 if m != nil { 384 return m.NextMatePosition 385 } 386 return nil 387} 388 389func (m *Read) GetInfo() map[string]*_struct.ListValue { 390 if m != nil { 391 return m.Info 392 } 393 return nil 394} 395 396func init() { 397 proto.RegisterType((*LinearAlignment)(nil), "google.genomics.v1.LinearAlignment") 398 proto.RegisterType((*Read)(nil), "google.genomics.v1.Read") 399 proto.RegisterMapType((map[string]*_struct.ListValue)(nil), "google.genomics.v1.Read.InfoEntry") 400} 401 402func init() { 403 proto.RegisterFile("google/genomics/v1/readalignment.proto", fileDescriptor_5882c5c7543d07e3) 404} 405 406var fileDescriptor_5882c5c7543d07e3 = []byte{ 407 // 683 bytes of a gzipped FileDescriptorProto 408 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0xcd, 0x4e, 0xdb, 0x4a, 409 0x14, 0xc7, 0xe5, 0x84, 0x70, 0xc9, 0x09, 0x24, 0x61, 0xae, 0xc4, 0xf5, 0x8d, 0xb8, 0xb7, 0x21, 410 0x48, 0x6d, 0x58, 0xd4, 0x2e, 0x20, 0xb5, 0x88, 0x2e, 0x2a, 0x40, 0x6d, 0x45, 0x45, 0x51, 0x6a, 411 0x54, 0x16, 0xdd, 0x58, 0x83, 0x7d, 0x62, 0x46, 0xd8, 0x33, 0xc6, 0x1e, 0x47, 0xcd, 0x23, 0xf5, 412 0xdd, 0xfa, 0x00, 0x5d, 0x56, 0x33, 0xf6, 0x38, 0xd0, 0x66, 0xd1, 0x5d, 0xf2, 0x3f, 0xbf, 0xf3, 413 0xe1, 0xf3, 0x31, 0xf0, 0x34, 0x12, 0x22, 0x8a, 0xd1, 0x8d, 0x90, 0x8b, 0x84, 0x05, 0xb9, 0x3b, 414 0xdb, 0x77, 0x33, 0xa4, 0x21, 0x8d, 0x59, 0xc4, 0x13, 0xe4, 0xd2, 0x49, 0x33, 0x21, 0x05, 0x21, 415 0x25, 0xe7, 0x18, 0xce, 0x99, 0xed, 0x0f, 0xb6, 0x2b, 0x5f, 0x9a, 0x32, 0x97, 0x72, 0x2e, 0x24, 416 0x95, 0x4c, 0xf0, 0xbc, 0xf4, 0x18, 0xfc, 0xbf, 0x24, 0x72, 0xc0, 0x22, 0x9a, 0x55, 0xf6, 0x9d, 417 0x25, 0xf6, 0x54, 0xe4, 0x4c, 0xc5, 0xa8, 0x10, 0x93, 0x40, 0xff, 0xbb, 0x29, 0xa6, 0x6e, 0x2e, 418 0xb3, 0x22, 0xa8, 0x4a, 0x1a, 0x7d, 0xb3, 0xa0, 0x77, 0xc1, 0x38, 0xd2, 0xec, 0xc4, 0x14, 0x4b, 419 0x8e, 0x60, 0xcd, 0xc4, 0xb0, 0xad, 0xa1, 0x35, 0xee, 0x1c, 0x6c, 0x3b, 0xbf, 0x57, 0xee, 0x4c, 420 0x2a, 0xc6, 0xab, 0x69, 0xf2, 0x0c, 0x7a, 0x09, 0x4d, 0x53, 0xc6, 0x23, 0xff, 0xbe, 0xa0, 0x31, 421 0x93, 0x73, 0xbb, 0x31, 0xb4, 0xc6, 0x2d, 0xaf, 0x5b, 0xc9, 0x9f, 0x4a, 0x95, 0x1c, 0x42, 0x4b, 422 0x7f, 0x86, 0xdd, 0x1c, 0x36, 0xc7, 0x9d, 0x83, 0xff, 0x96, 0xc5, 0x3f, 0x53, 0xc0, 0x67, 0xce, 423 0xa4, 0x57, 0xb2, 0xa3, 0xef, 0xab, 0xb0, 0xe2, 0x21, 0x0d, 0x49, 0x17, 0x1a, 0x2c, 0xd4, 0xa5, 424 0xb5, 0xbd, 0x06, 0x0b, 0xc9, 0x08, 0x36, 0x54, 0xbb, 0xfd, 0x28, 0x13, 0x45, 0xea, 0xb3, 0x50, 425 0x27, 0x6d, 0x7b, 0x1d, 0x25, 0xbe, 0x57, 0xda, 0x79, 0x48, 0xf6, 0x60, 0xf3, 0x01, 0x93, 0xa3, 426 0x54, 0x5c, 0x53, 0x73, 0xdd, 0x9a, 0xbb, 0x42, 0x79, 0x1e, 0x92, 0x5d, 0xd8, 0x98, 0x66, 0x34, 427 0x52, 0xbd, 0xf0, 0x39, 0x4d, 0xd0, 0x5e, 0xd1, 0xd8, 0xba, 0x11, 0x2f, 0x69, 0x82, 0x64, 0x0f, 428 0xfa, 0x69, 0x26, 0x52, 0xcc, 0xfc, 0x34, 0xa6, 0x01, 0x2a, 0xdd, 0x6e, 0x0d, 0xad, 0xf1, 0x9a, 429 0xd7, 0x2b, 0xf5, 0x89, 0x91, 0xc9, 0x73, 0x20, 0x61, 0x91, 0xc6, 0x2c, 0xa0, 0x12, 0x7d, 0x13, 430 0xc4, 0x5e, 0xd5, 0xf0, 0x66, 0x6d, 0x79, 0x57, 0x19, 0x54, 0x13, 0xeb, 0xf4, 0x31, 0xf2, 0x48, 431 0xde, 0xda, 0x7f, 0x95, 0x4d, 0x34, 0xf2, 0x85, 0x56, 0xc9, 0x13, 0xd0, 0x5f, 0xe8, 0xf3, 0x22, 432 0xb9, 0xc1, 0xcc, 0x5e, 0xd3, 0x10, 0x28, 0xe9, 0x52, 0x2b, 0x64, 0x07, 0xd6, 0x4b, 0x9b, 0xaf, 433 0xc4, 0xdc, 0x6e, 0x6b, 0xa2, 0x53, 0x6a, 0xaa, 0x93, 0x39, 0x79, 0x03, 0xdb, 0x53, 0xca, 0x62, 434 0x0c, 0xfd, 0x19, 0xf2, 0x50, 0x64, 0x66, 0x6e, 0x7e, 0x70, 0x8b, 0xc1, 0x5d, 0x6e, 0x83, 0xae, 435 0xf2, 0xdf, 0x92, 0xb9, 0xd6, 0x48, 0x35, 0xc3, 0x33, 0x0d, 0x90, 0x13, 0x68, 0xd7, 0x6b, 0x6e, 436 0x77, 0xf4, 0xb6, 0xec, 0x2e, 0x9b, 0xe6, 0x2f, 0x4b, 0xe6, 0x2d, 0xbc, 0x88, 0x0b, 0x7f, 0xe7, 437 0x18, 0x08, 0x1e, 0xd2, 0x6c, 0xee, 0x2f, 0x82, 0xad, 0xeb, 0xd4, 0xa4, 0x36, 0x2d, 0x16, 0xf4, 438 0x15, 0xfc, 0x93, 0x17, 0x69, 0x1a, 0xeb, 0xf6, 0x3e, 0x76, 0xda, 0xd0, 0x4e, 0x5b, 0x8f, 0xcc, 439 0x0b, 0xc7, 0x3d, 0xe8, 0x6b, 0x14, 0x43, 0x3f, 0xc7, 0xfb, 0x02, 0x79, 0x80, 0x76, 0x57, 0x0f, 440 0xb7, 0x57, 0xe9, 0x57, 0x95, 0xac, 0xa6, 0x60, 0x50, 0xb3, 0xca, 0xbd, 0x61, 0x53, 0x4d, 0xa1, 441 0x92, 0xcd, 0x2a, 0x7f, 0x00, 0xc2, 0xf1, 0xab, 0xf4, 0x13, 0x35, 0xdd, 0xfa, 0x6e, 0xfa, 0x7f, 442 0x70, 0x37, 0x7d, 0xe5, 0xf7, 0x91, 0x4a, 0x34, 0x0a, 0x79, 0x09, 0x2b, 0x8c, 0x4f, 0x85, 0xbd, 443 0xa9, 0xaf, 0x62, 0xb4, 0xcc, 0x5b, 0x8d, 0xcd, 0x39, 0xe7, 0x53, 0xf1, 0x96, 0xcb, 0x6c, 0xee, 444 0x69, 0x7e, 0x70, 0x05, 0xed, 0x5a, 0x22, 0x7d, 0x68, 0xde, 0xe1, 0xbc, 0x3a, 0x0f, 0xf5, 0x93, 445 0xbc, 0x80, 0xd6, 0x8c, 0xc6, 0x05, 0xea, 0xbb, 0xe8, 0x1c, 0x0c, 0x4c, 0x5c, 0xf3, 0x24, 0x38, 446 0x17, 0x2c, 0x97, 0xd7, 0x8a, 0xf0, 0x4a, 0xf0, 0xb8, 0x71, 0x64, 0x9d, 0x26, 0xb0, 0x15, 0x88, 447 0x64, 0x49, 0x0d, 0xa7, 0x44, 0x15, 0x51, 0x77, 0x75, 0xa2, 0xa2, 0x4c, 0xac, 0x2f, 0xc7, 0x86, 448 0x14, 0x31, 0xe5, 0x91, 0x23, 0xb2, 0x48, 0x3d, 0x4b, 0x3a, 0x87, 0x5b, 0x9a, 0x68, 0xca, 0xf2, 449 0x87, 0x4f, 0xd5, 0x6b, 0xf3, 0xfb, 0x87, 0x65, 0xdd, 0xac, 0x6a, 0xf2, 0xf0, 0x67, 0x00, 0x00, 450 0x00, 0xff, 0xff, 0xd0, 0xe1, 0xf6, 0x57, 0x4d, 0x05, 0x00, 0x00, 451} 452