| line | !l | l&&!r | l&&r | condition | 
 
| 2729 | 4 | 150 | 0 | $enc and $enc ne "UTF8" | 
 
| 2748 | 0 | 0 | 25 | $ch >= 194 and $ch < 248 | 
 
| 2753 | 0 | 0 | 0 | $ch == 224 and (ord $1 & 224) == 128 | 
 
|  | 0 | 0 | 0 | $ch == 237 and (ord $1 & 224) == 160 | 
 
|  | 0 | 0 | 0 | $ch == 239 and ord $1 == 191 | 
 
|  | 0 | 0 | 0 | $ch == 239 and ord $1 == 191 and (ord substr($1, 1) & 254) == 190 | 
 
| 2758 | 0 | 0 | 0 | $ch == 240 and (ord $1 & 240) == 128 | 
 
|  | 0 | 0 | 0 | $ch == 244 and ord $1 > 143 | 
 
| 2826 | 35575 | 2321 | 878 | $structProps and @$structProps | 
 
|  | 37896 | 439 | 439 | $structProps and @$structProps and $prop =~ /^rdf:li (\d+)$/ | 
 
| 2839 | 237 | 0 | 55 | ref $info eq "HASH" and $info->{'SubDirectory'} | 
 
| 2842 | 237 | 40 | 15 | $table and $table->{$nm} | 
 
| 2887 | 22 | 6 | 0 | $Image::ExifTool::XMP::nsURI{$ns} and $Image::ExifTool::XMP::nsURI{$ns} ne $nsRef->{$ns} | 
 
| 2916 | 0 | 0 | 0 | ref $tagInfo eq "HASH" and $tagInfo->{'Struct'} | 
 
| 2950 | 4661 | 216 | 44 | $fieldInfo->{'Struct'} and $noSubStruct | 
 
| 2992 | 4696 | 0 | 177 | $fieldInfo->{'Groups'} and $fieldInfo->{'Groups'}{'2'} | 
 
|  | 4612 | 84 | 0 | $strTable->{'GROUPS'} and $strTable->{'GROUPS'}{'2'} | 
 
| 3023 | 8 | 0 | 99 | $tagInfo->{'Writable'} and $tagInfo->{'Writable'} eq "lang-alt" | 
 
| 3106 | 0 | 0 | 0 | $alt{$mk} and $make =~ /$alt{$mk}/i | 
 
| 3129 | 0 | 0 | 0 | $mk eq "Sony" and $focalLength && ($sf && $focalLength < $sf - 0.5 || $lf && $focalLength > $lf + 0.5) || $maxAv && ($sa && $maxAv < $sa - 0.15 || $la && $maxAv > $la + 0.15) | 
 
| 3145 | 0 | 0 | 0 | $mk eq "Pentax" and $id =~ /^\d+$/ | 
 
| 3180 | 231 | 0 | 73 | not $unsure and $val =~ /^(\d{4})(-\d{2}){0,2}/ | 
 
| 3245 | 4 | 0 | 0 | $tag eq "id" and $props->[1] eq "svg:metadata" | 
 
| 3256 | 3429 | 4 | 203 | not $ns and $grp0 ne "XMP" | 
 
|  | 3429 | 0 | 4 | $grp0 eq "XML" and not $table | 
 
| 3306 | 0 | 0 | 45 | ref $ti eq "HASH" and $ti->{'Struct'} | 
 
| 3346 | 0 | 0 | 22 | ref $tg eq "HASH" and $tg->{'SubDirectory'} | 
 
| 3358 | 0 | 0 | 0 | ref $ti3 eq "HASH" and $ti3->{'Struct'} | 
 
| 3387 | 72 | 46 | 78 | $et->{'curURI'}{$ns} and $et->{'curURI'}{$ns} =~ m[^http://ns.exiftool.(?:ca|org)/(.*?)/(.*?)/] | 
 
| 3403 | 8 | 171 | 17 | @$props > 2 and $props->[-1] =~ /^rdf:li \d+$/ | 
 
|  | 179 | 0 | 17 | @$props > 2 and $props->[-1] =~ /^rdf:li \d+$/ and $props->[-2] =~ /^rdf:(Bag|Seq|Alt)$/ | 
 
| 3406 | 5 | 0 | 12 | $lang and $1 eq "Alt" | 
 
| 3418 | 189 | 7 | 0 | not length $val and $attrs->{'rdf:parseType'} | 
 
|  | 7 | 0 | 0 | not length $val and $attrs->{'rdf:parseType'} and $attrs->{'rdf:parseType'} eq "Resource" | 
 
| 3427 | 3432 | 0 | 1 | $enc and $enc =~ /base64/ | 
 
| 3432 | 3329 | 254 | 53 | defined $lang and lc $lang ne "x-default" | 
 
| 3457 | 3400 | 0 | 236 | $tagInfo->{'IsDefault'} && $et->{'OPTIONS'}{'XMPAutoConv'} | 
 
| 3460 | 1197 | 234 | 199 | $new || $fmt eq 'rational' and &ConvertRational($val) | 
 
| 3465 | 1630 | 0 | 0 | $et->{'XmpValidate'} and $fmt | 
 
|  | 1630 | 0 | 0 | $et->{'XmpValidate'} and $fmt and $fmt eq "boolean" | 
 
|  | 0 | 0 | 0 | $et->{'XmpValidate'} and $fmt and $fmt eq "boolean" and not $val =~ /^True|False$/ | 
 
| 3473 | 1394 | 236 | 0 | $new and length $val > 65536 | 
 
| 3480 | 2968 | 339 | 329 | @structProps and @structProps > 1 || defined $structProps[0][1] | 
 
|  | 339 | 0 | 329 | @structProps and @structProps > 1 || defined $structProps[0][1] and not $et->{'NO_STRUCT'} | 
 
| 3486 | 207 | 109 | 3320 | $ns and not $tagInfo->{'StaticGroup1'} | 
 
| 3510 | 3636 | 0 | 0 | $tagInfo->{'SubDirectory'} and not $et->{'IsWriting'} | 
 
| 3514 | 0 | 0 | 0 | $tagInfo->{'Encoding'} and $tagInfo->{'Encoding'} eq "Base64" | 
 
| 3625 | 7541 | 0 | 0 | $et->{'EXCL_XMP_LOOKUP'} and not $isWriting | 
 
|  | 7541 | 0 | 0 | $et->{'EXCL_XMP_LOOKUP'} and not $isWriting and $prop =~ /^(.+):(.*)/ | 
 
| 3703 | 145 | 187 | 0 | /(.*?):/ and $1 eq $ns | 
 
|  | 332 | 0 | 0 | /(.*?):/ and $1 eq $ns and $1 ne $newNS | 
 
| 3791 | 1 | 15 | 0 | @$propList > 1 and not $propList->[1] =~ /\b(metadata|desc|title)$/ | 
 
| 3847 | 12 | 322 | 10 | $stdNS and $stdNS eq 'x' || $stdNS eq 'iX' | 
 
| 3861 | 2026 | 326 | 469 | ref $recognizedAttrs{$propName} and $shortVal | 
 
| 3864 | 238 | 0 | 231 | defined $et->{'VALUE'}{$name} and $et->{'VALUE'}{$name} eq $tval | 
 
| 3913 | 3558 | 0 | 16 | $prop eq "rdf:Description" and $val | 
 
| 3918 | 3509 | 63 | 2 | $val eq "" and $attrs =~ /\brdf:(?:value|resource)=(['"])(.*?)\1/ || $attrs =~ /\brdf:about=(['"])(.*?)\1/ | 
 
| 3930 | 3593 | 0 | 8 | $lastProp eq "rdf:type" and $wasEmpty | 
 
|  | 3593 | 0 | 0 | $lastProp =~ /^et:(desc|prt|val)$/ and $count || $1 eq 'desc' | 
 
| 3971 | 7439 | 276 | 4 | $processBlankInfo and %{$blankInfo->{'Prop'};} | 
 
| 4016 | 292 | 2 | 9 | $Image::ExifTool::MWG::strict || $et->{'OPTIONS'}{'Validate'} and not $et->{'XMP_CAPTURE'} || $et->{'DOC_NUM'} | 
 
|  | 294 | 7 | 2 | $Image::ExifTool::MWG::strict || $et->{'OPTIONS'}{'Validate'} and not $et->{'XMP_CAPTURE'} || $et->{'DOC_NUM'} and ($dirInfo->{'DirName'} || '') eq 'XMP' || $et->{'FILE_TYPE'} eq 'XMP' | 
 
| 4021 | 1 | 6 | 0 | $stdPath{$et->{'FILE_TYPE'}} && $path ne $stdPath{$et->{'FILE_TYPE'}} | 
 
| 4022 | 7 | 0 | 0 | $nonStd and $Image::ExifTool::MWG::strict | 
 
| 4080 | 0 | 0 | 7 | defined $fmt and not $fmt | 
 
|  | 0 | 6 | 1 | defined $fmt and not $fmt and $buf2 =~ /^[^\n\r]*[\n\r]+<\?aid /s | 
 
| 4117 | 6 | 1 | 0 | $isSVG and $et->{'XMP_CAPTURE'} | 
 
| 4137 | 0 | 2 | 0 | $ext and $ext eq "MODD" | 
 
| 4142 | 53 | 0 | 3 | $isXML and not $hasXMP | 
 
|  | 53 | 3 | 0 | $isXML and not $hasXMP and not $isRDF | 
 
| 4147 | 0 | 0 | 0 | $ext and $ext eq "COS" | 
 
| 4153 | 60 | 0 | 0 | $fast and $fast == 3 | 
 
| 4155 | 56 | 3 | 1 | $type and $type eq "INX" | 
 
| 4222 | 235 | 7 | 38 | $et->{'REQ_TAG_LOOKUP'}{lc $blockName} || $et->{'TAGS_FROM_FILE'} && !$et->{'EXCL_TAG_LOOKUP'}{lc $blockName} || $blockExtract and $et->{'FileType'} eq 'XMP' && $blockName eq 'XMP' || $dirInfo->{'DirName'} && $dirInfo->{'DirName'} eq $blockName | 
 
| 4228 | 40 | 0 | 0 | $blockExtract and $blockExtract > 1 | 
 
| 4232 | 279 | 0 | 1 | $et->Options("Verbose") and not $et->{'XMP_CAPTURE'} | 
 
| 4244 | 66 | 0 | 1 | $$dataPt =~ / $dirStart | 
 
|  | 66 | 0 | 1 | $$dataPt =~ / $dirStart and pos $$dataPt < $dirEnd | 
 
| 4284 | 272 | 8 | 0 | $et->{'XMP_NO_XPACKET'} and $et->{'OPTIONS'}{'Validate'} | 
 
|  | 8 | 0 | 0 | $et->{'XMP_NO_XPACKET'} and $et->{'OPTIONS'}{'Validate'} and $stdPath{$et->{'FILE_TYPE'}} | 
 
|  | 8 | 0 | 0 | $et->{'XMP_NO_XPACKET'} and $et->{'OPTIONS'}{'Validate'} and $stdPath{$et->{'FILE_TYPE'}} and $path eq $stdPath{$et->{'FILE_TYPE'}} | 
 
|  | 0 | 0 | 0 | $et->{'XMP_NO_XPACKET'} and $et->{'OPTIONS'}{'Validate'} and $stdPath{$et->{'FILE_TYPE'}} and $path eq $stdPath{$et->{'FILE_TYPE'}} and not $dirInfo->{'IsExtended'} | 
 
|  | 0 | 0 | 0 | $et->{'XMP_NO_XPACKET'} and $et->{'OPTIONS'}{'Validate'} and $stdPath{$et->{'FILE_TYPE'}} and $path eq $stdPath{$et->{'FILE_TYPE'}} and not $dirInfo->{'IsExtended'} and not $et->{'DOC_NUM'} | 
 
| 4338 | 0 | 0 | 0 | $dirInfo->{'DirName'} and $dirInfo->{'DirName'} eq "XMP" | 
 
| 4354 | 0 | 214 | 66 | $rtnVal and $dirInfo->{'RAF'} | 
| line | l | !l&&r | !l&&!r | condition | 
 
| 2688 | 0 | 0 | 0 | $str =~ /[\0-\x1f]/ or &Image::ExifTool::IsUTF8(\$str) < 0 | 
 
| 2753 | 0 | 0 | 0 | $ch == 224 and (ord $1 & 224) == 128 or $ch == 237 and (ord $1 & 224) == 160 | 
 
|  | 0 | 0 | 0 | $ch == 224 and (ord $1 & 224) == 128 or $ch == 237 and (ord $1 & 224) == 160 or $ch == 239 and ord $1 == 191 and (ord substr($1, 1) & 254) == 190 | 
 
| 2758 | 0 | 0 | 0 | $ch == 240 and (ord $1 & 240) == 128 or $ch == 244 and ord $1 > 143 | 
 
|  | 0 | 0 | 0 | $ch == 240 and (ord $1 & 240) == 128 or $ch == 244 and ord $1 > 143 or $ch > 244 | 
 
| 2821 | 38774 | 0 | 27644 | $ignoreNamespace{$ns} or $ignoreProp{$prop} | 
 
| 2836 | 0 | 70 | 222 | $Image::ExifTool::XMP::stdXlatNS{$ns} || $ns | 
 
| 2953 | 636 | 4241 | 0 | $fieldInfo->{'FlatName'} || $fieldName | 
 
| 2968 | 1 | 32 | 226 | $_ eq "PropertyPath" or defined $flatInfo->{$_} | 
 
| 2988 | 59 | 1615 | 1007 | $fieldInfo->{'List'} or $tagInfo->{'List'} | 
 
| 3000 | 2722 | 2151 | 0 | $tagInfo->{'RootTagInfo'} || $tagInfo | 
 
| 3054 | 0 | 0 | 0 | defined $buff or $raf->Read($buff, 65536) | 
 
| 3106 | 0 | 0 | 0 | $make =~ /$mk/i or $alt{$mk} and $make =~ /$alt{$mk}/i | 
 
| 3108 | 0 | 0 | 0 | {'Sigma', 'SigmaRaw', 'Leica', 'Panasonic'}->{$mk} || $mk | 
 
| 3113 | 0 | 0 | 0 | {'Nikon', 'nikonLensIDs'}->{$mk} || lc($mk) . 'LensTypes' | 
 
| 3129 | 0 | 0 | 0 | $focalLength && ($sf && $focalLength < $sf - 0.5 || $lf && $focalLength > $lf + 0.5) || $maxAv && ($sa && $maxAv < $sa - 0.15 || $la && $maxAv > $la + 0.15) | 
 
| 3166 | 0 | 0 | 0 | $printConv->{$id} || "Unknown ($id)" | 
 
| 3273 | 157 | 0 | 0 | $ns =~ /^[A-Z_a-z\x80-\xff][-.0-9A-Z_a-z\x80-\xff]*$/ or $ns eq "" | 
 
| 3295 | 207 | 11 | 3418 | not $tagInfo or $tagInfo->{'Flat'} | 
 
| 3327 | 1 | 0 | 22 | $strTable->{'NAMESPACE'} or not exists $strTable->{'NAMESPACE'} | 
 
| 3334 | 4 | 18 | 0 | $xmpNS{$n} || $n | 
 
| 3349 | 0 | 0 | 22 | not $sti or $sti->{'Flat'} | 
 
| 3426 | 1 | 0 | 3432 | $attrs->{'rdf:datatype'} || $attrs->{'et:encoding'} | 
 
| 3429 | 1 | 0 | 0 | length $$val > 100 or $$val =~ /[\0-\x08\x0b\0x0c\x0e-\x1f]/ | 
 
| 3458 | 1394 | 236 | 2006 | $fmt or $new | 
 
| 3460 | 236 | 197 | 1197 | $new || $fmt eq 'rational' | 
 
| 3463 | 234 | 166 | 1031 | $new or $fmt eq "date" | 
 
| 3480 | 151 | 178 | 339 | @structProps > 1 || defined $structProps[0][1] | 
 
| 3507 | 1 | 0 | 0 | $rawVal || $val | 
 
| 3521 | 0 | 0 | 0 | $subdir->{'DirName'} || $tagInfo->{'Name'} | 
 
| 3527 | 0 | 0 | 0 | &GetTagTable($subdir->{'TagTable'}) || $tagTablePtr | 
 
| 3581 | 1 | 2982 | 8263 | not $$dataPt =~ m[<([?/]?)([-\w:.\x80-\xff]+|!--)([^>]*)>]gs or pos $$dataPt > $end | 
 
| 3588 | 158 | 0 | 0 | $attrs =~ /--$/ or $$dataPt =~ /-->/gs | 
 
| 3604 | 0 | 0 | 7742 | not $$dataPt =~ m[<(/?)$prop([-\w:.\x80-\xff]*)(.*?(/?))>]gs or pos $$dataPt > $end | 
 
| 3626 | 0 | 0 | 0 | $Image::ExifTool::XMP::stdXlatNS{$1} || $1 | 
 
| 3627 | 0 | 0 | 0 | $et->{'EXCL_XMP_LOOKUP'}{"xmp-${ns}:all"} or $et->{'EXCL_XMP_LOOKUP'}{"xmp-${ns}:$nm"} | 
 
|  | 0 | 0 | 0 | $et->{'EXCL_XMP_LOOKUP'}{"xmp-${ns}:all"} or $et->{'EXCL_XMP_LOOKUP'}{"xmp-${ns}:$nm"} or $et->{'EXCL_XMP_LOOKUP'}{"xmp-all:$nm"} | 
 
| 3683 | 2 | 0 | 44 | $curURI->{$ns} or $Image::ExifTool::XMP::nsURI{$ns} | 
 
| 3749 | 560 | 71 | 785 | $nItems or grep /^rdf:li /, @$propList | 
 
| 3790 | 0 | 0 | 16 | $et->{'OPTIONS'}{'Unknown'} > 1 or $et->{'OPTIONS'}{'Verbose'} | 
 
| 3796 | 1 | 1 | 14 | $prop eq "svg" or $prop eq "metadata" | 
 
| 3847 | 56 | 10 | 266 | $stdNS eq 'x' || $stdNS eq 'iX' | 
 
| 3858 | 2821 | 0 | 802 | $ignoreNamespace{$ns} or $ignoreProp{$prop} | 
 
| 3885 | 626 | 0 | 18 | not $shorthand or $valEnd != $valStart | 
 
| 3905 | 102 | 6189 | 22 | $valStart == $valEnd or not &ParseXMPElement($et, $tagTablePtr, $dataPt, $valStart, $valEnd, $propList, $blankInfo) | 
 
| 3918 | 15 | 2 | 48 | $attrs =~ /\brdf:(?:value|resource)=(['"])(.*?)\1/ || $attrs =~ /\brdf:about=(['"])(.*?)\1/ | 
 
| 3927 | 3575 | 39 | 13 | length $val or not $shorthand | 
 
| 3930 | 0 | 0 | 0 | $count || $1 eq 'desc' | 
 
| 3950 | 0 | 0 | 0 | $et->{'definedNS'}{$_} or $_ eq "xml" | 
 
| 4016 | 11 | 0 | 292 | $Image::ExifTool::MWG::strict || $et->{'OPTIONS'}{'Validate'} | 
 
|  | 2 | 0 | 9 | $et->{'XMP_CAPTURE'} || $et->{'DOC_NUM'} | 
 
|  | 6 | 1 | 2 | ($dirInfo->{'DirName'} || '') eq 'XMP' || $et->{'FILE_TYPE'} eq 'XMP' | 
 
| 4035 | 192 | 28 | 0 | $dirInfo->{'DirLen'} || length($$dataPt) - $dirStart | 
 
| 4036 | 193 | 27 | 0 | $dirInfo->{'DataLen'} || length $$dataPt | 
 
| 4222 | 27 | 0 | 235 | $et->{'REQ_TAG_LOOKUP'}{lc $blockName} || $et->{'TAGS_FROM_FILE'} && !$et->{'EXCL_TAG_LOOKUP'}{lc $blockName} || $blockExtract | 
 
|  | 6 | 34 | 5 | $et->{'FileType'} eq 'XMP' && $blockName eq 'XMP' || $dirInfo->{'DirName'} && $dirInfo->{'DirName'} eq $blockName | 
 
| 4244 | 7 | 0 | 273 | $isXML or $isRDF | 
 
| 4292 | 33 | 0 | 1 | $dirStart or $dirEnd != length $$dataPt | 
 
| 4335 | 5 | 0 | 275 | $dirInfo->{'BlockInfo'} or $dirInfo->{'NoStruct'} |