Condition Coverage

blib/lib/Image/Bitmap2Paths.pm
Criterion Covered Total %
condition 74 1200 6.1


and 2 conditions

line l !l condition
131 50 2 $P->[$_] and $Lb = $_ - 1, last
132 42 6 $P->[$_] and $Rb = $_ + 1, last
191 0 0 push @res, ["Dense"] and next
194 0 4 push @res, ["tail", 0, 1, undef, undef, undef, ["t"]] and next
198 0 0 push @res, ["1Spur", 0, 1] and next
203 0 0 push @res, ["Dense"] and next
226 0 0 push @res, ["notch", $n0, 1, undef, [$x + $dx, $y + $dy], [$x + $dx, $y + $dy, ($dir + 4) % 8], ["I", $x + $dx, $y + $dy, ($dir + 2 * $n0) % 8, ($dir + 3 * $n0) % 8], ["n", $x + $dx, $y + $dy, ($dir + 4) % 8]] and next
230 0 0 push @res, ["serif", $n0, 1, undef, [$x + $dx, $y + $dy], undef, ["I", $x + $dx, $y + $dy, ($dir + 3 * $n0) % 8], ["E", $x + $dx, $y + $dy, ($dir + 4) % 8]] and next
233 0 0 push @res, ["m-joint", $n0, 1, ["`", [$x + $dx, $y + $dy, ($dir + 4) % 8]], undef, undef, ["L", $x, $y, ($dir + 2 * $n0) % 8, -$n0, 1, 1, 2]] and next
244 0 0 push @res, ["elses-ray", undef, 0, ["\x{2033}", [$x + $dx + $dy, $y + $dy - $dx, ($dir + 2) % 8], [$x + $dx - $dy, $y + $dy + $dx, ($dir - 2) % 8]]] and next
264 0 0 push @res, ["Corner-curve", $DD, 1] and next
265 0 0 push @res, ["arrow", $DD, 0, ["\x{2026}", [$x + $dx, $y + $dy, ($dir + 4) % 8, ($dir + 4 - $DD) % 8, ($dir + 4 - 2 * $DD) % 8]], undef, undef, ["a", $DD]] and next
278 0 0 push @res, ["bend-sharp", $DDD, 1] and next
281 0 0 push @res, ["?"] and next
286 0 0 push @res, ["notch", $n0, 1, undef, [$x + $dx, $y + $dy]] and next
288 0 0 push @res, ["Arrow"] and next
334 0 0 push @res, ["?"] and next
341 0 0 push @res, ["Sharp", $d, 0, undef, undef, undef, ["L", $x + $dx, $y + $dy, ($dir + $d) % 8, $d, 2, 2, 3, 2 + $last], ["S", $x + $dx, $y + $dy, ($dir + 4) % 8], ["S", $x + $dx1, $y + $dy1, ($dir + 4 + $d) % 8], $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] ? (["I1", $x + 2 * $dx + $dx1, $y + 2 * $dy + $dy1, ($dir + 4) % 8], ["II", $x + $dx + $dx1, $y + $dy + $dy1, $dir]) : (), ["T", ($dir + $d + 4) % 8, $d]] and next
364 0 0 push @res, ["Sharp", $d, 0, undef, undef, undef, ["L", $x + $dx, $y + $dy, ($dir + $d) % 8, $d, 1, 2, 2 + $last], ["S", $x + $dx, $y + $dy, ($dir + 4) % 8], ["S", $x + $dx1, $y + $dy1, ($dir + 4 + $d) % 8], ["T", ($dir + $d + 4) % 8, $d]] and next
380 0 0 push @res, ["curve", $d, undef, undef, undef, undef, ["C", $d]] and next
383 0 0 push @res, ["arrow", -$d, 0, ["\x{2026}", [$x + $dx, $y + $dy, ($dir + 4) % 8, ($dir + 4 + $d) % 8, ($dir + 4 + 2 * $d) % 8]], undef, undef, ["a", -$d, 1]] and next
508 0 76 push @r, [] and next
937 4 0 @maybe == 1 and push @res, [$maybe[0], 1]
1093 0 0 $clear++ and last
1097 0 0 push @clearEdge, [$x, $y, $dir, $x + $dx, $y + $dy] and last
1105 0 0 ++$done and push @clearEdge, [$x, $y, $dir, $x + $dx, $y + $dy] and last
1467 0 0 push @cont, [$x, $y, $D, $x2, $y2] and return $rot[0]
2218 0 0 ($i || $closed) && $corners[$i - 1][3] && [@{$corners[$i - 1][1];}[4, 5]]
2219 2 0 $corners[$i + 1][2] && [@{$corners[$i + 1][1];}[0, 1]]

and 3 conditions

line !l l&&!r l&&r condition
203 4 0 0 6 < $cNN and $Nmin->[$dir]
207 0 0 0 $$Nmin[($dir + $_) % 8] and ++$seen_next2, $d = $_, ++$is_next{$_}
210 0 0 0 do { 2 == $seen_next2 } && do { my($c, $DDD) = 0; $$N0min[($dir + $step * $_) % 8] and ++$c, $DDD = $_ foreach (-1, 1); if ($c == 1 and not $dir & 1) { my $x1 = $x + $dx[($dir + $DDD * $step) % 8]; my $y1 = $y + $dy[($dir + $DDD * $step) % 8]; my($NNN, $dir1) = ($near->[$y1][$x1], ($dir - $DDD) % 8); if ($NNN->[$dir] and $NNN->[$dir1]) { push @res, ['elses-ray', -$DDD, 0, ['"', [$x1, $y1, $dir, $dir1]]]; next; } ; } elsif ($c == 1) { next if push @res, ['Probable-curve', $DDD]; } elsif ($c == 2 and $dir & 1 and $$N0min[($dir + 4) % 8] and not $$N0min[($dir + 3) % 8] and not $$N0min[($dir + 5) % 8]) { my @R; foreach my $d (-1, 1) { my $x1 = $x + $dx[($dir + $d) % 8]; my $y1 = $y + $dy[($dir + $d) % 8]; my($NNN, $dir1) = ($near->[$y1][$x1], ($dir + 2 * $d) % 8); push @R, ['Zh-fake-curve', $d] if $NNN->[$dir] and not $$NNN[($dir1 + 1) % 8] and not $$NNN[($dir1 - 1) % 8]; } ; push(@res, @R), next if @R == 1; } ; push @res, ['?'] and next if $c; my $opp = ($dir + 4) % 8; my(@dep) = grep({$Nmin->[$_] if $_ ne $opp;} 0..7); next if push @res, ['Fork', undef, 1, ["\260", [$x + $dx, $y + $dy, @dep]]] }
217 0 0 0 $cNmin <= 3 && $cN >= 3 && !($dir & 1) && !!$N->[$DD]
226 0 0 0 $NEAR[0][2] and $cNmin <= 3
0 0 0 $NEAR[0][2] and $cNmin <= 3 and $cN >= 3
0 0 0 $NEAR[0][2] and $cNmin <= 3 and $cN >= 3 and $dir & 1
0 0 0 $NEAR[0][2] and $cNmin <= 3 and $cN >= 3 and $dir & 1 and not $$N0min[($dir + 2 * $n0) % 8]
0 0 0 $NEAR[0][2] and $cNmin <= 3 and $cN >= 3 and $dir & 1 and not $$N0min[($dir + 2 * $n0) % 8] and not grep($$N0min[($dir + $_ * $n0 + 4) % 8], 1, 2)
230 0 0 0 $NEAR[0][2] and $cNmin <= 2
0 0 0 $NEAR[0][2] and $cNmin <= 2 and not $dir & 1
233 0 0 0 not $dir & 1 and $NEAR[0][1]
0 0 0 not $dir & 1 and $NEAR[0][1] and $NEAR[0][2] ^^ $NEAR[0][3]
0 0 0 not $dir & 1 and $NEAR[0][1] and $NEAR[0][2] ^^ $NEAR[0][3] and !$NEAR[0][3] || $NEAR[0][4]
0 0 0 not $dir & 1 and $NEAR[0][1] and $NEAR[0][2] ^^ $NEAR[0][3] and !$NEAR[0][3] || $NEAR[0][4] and $cN0min <= 3
243 0 0 0 not @NEAR and $cNmin == 2
0 0 0 not @NEAR and $cNmin == 2 and $$N0min[($dir + 4) % 8]
0 0 0 not @NEAR and $cNmin == 2 and $$N0min[($dir + 4) % 8] and $cN0min <= 3 + ($dir & 1)
0 0 0 not @NEAR and $cNmin == 2 and $$N0min[($dir + 4) % 8] and $cN0min <= 3 + ($dir & 1) and $cnt->[$y][$x] >= 3 + ($dir & 1)
246 0 0 0 $$N0[($dir + 4) % 8] || !($dir & 1) && $cN0min == 3 and not $$N0min[($dir + 2 * $DD) % 8]
0 0 0 $$N0[($dir + 4) % 8] || !($dir & 1) && $cN0min == 3 and not $$N0min[($dir + 2 * $DD) % 8] and $$px[$y + $dy + 2 * $DD * $dx][$x + $dx - 2 * $DD * $dy] || !($dir & 1) && $$cntmin[$y + $dy + $DD * $dx][$x + $dx - $DD * $dy] <= 3
251 0 0 0 $cN0min == 3 and $cNmin == 2
0 0 0 $cN0min == 3 and $cNmin == 2 and not $dir % 2
0 0 0 $cN0min == 3 and $cNmin == 2 and not $dir % 2 and $$cntmin[$y + $dy + $DD * $dx][$x + $dx - $DD * $dy] == 2
0 0 0 $cN0min == 3 and $cNmin == 2 and not $dir % 2 and $$cntmin[$y + $dy + $DD * $dx][$x + $dx - $DD * $dy] == 2 and my(@back) = grep($$N0min[($dir + 4 + $_) % 8], 1, -1)
264 0 0 0 $dir & 1 and not $$N0min[($dir + $DD) % 8]
0 0 0 $dir & 1 and not $$N0min[($dir + $DD) % 8] and $cNmin <= 2
265 0 0 0 $cNmin == 3 and $dir & 1
0 0 0 $cNmin == 3 and $dir & 1 and $nnn == 1
0 0 0 $cNmin == 3 and $dir & 1 and $nnn == 1 and $$N0min[($dir + 4) % 8]
0 0 0 $cNmin == 3 and $dir & 1 and $nnn == 1 and $$N0min[($dir + 4) % 8] and $$Nmin[($dir + 4 - $DD) % 8]
0 0 0 $cNmin == 3 and $dir & 1 and $nnn == 1 and $$N0min[($dir + 4) % 8] and $$Nmin[($dir + 4 - $DD) % 8] and $$Nmin[($dir + 4 - 2 * $DD) % 8]
278 0 0 0 $$cntmin[$y + $dy1][$x + $dx1] <= 4 - ($dir & 1) and $$nearmin[$y + $dy1][$x + $dx1][($dir + 4 - $DDD) % 8]
286 0 0 0 $cNmin <= 2 and not $dir & 1
0 0 0 $cNmin <= 2 and not $dir & 1 and $nnn1
0 0 0 $cNmin <= 2 and not $dir & 1 and $nnn1 and not $$N0min[($dir + $DD + 4) % 8]
288 0 0 0 $cNmin == 3 and not $dir & 1 || $nnn1 || $across2 || $$N[($dir + 2) % 8] || $$N[($dir - 2) % 8]
325 0 0 0 $bad and $dir & 1
0 0 0 $bad and $dir & 1 and $$N0min[($dir + 4) % 8]
0 0 0 $bad and $dir & 1 and $$N0min[($dir + 4) % 8] and not $$N0min[($dir + 3) % 8]
0 0 0 $bad and $dir & 1 and $$N0min[($dir + 4) % 8] and not $$N0min[($dir + 3) % 8] and not $$N0min[($dir + 5) % 8]
329 0 0 0 $NNN->[$dir] and not $$NNN[($dir1 + 1) % 8]
0 0 0 $NNN->[$dir] and not $$NNN[($dir1 + 1) % 8] and not $$NNN[($dir1 - 1) % 8]
334 0 0 0 not $dir & 1 and $$N0min[($dir + 2 * $d) % 8]
335 0 0 0 $dir & 1 and $$Nmin[($dir + 2 * $d) % 8]
0 0 0 $dir & 1 and $$Nmin[($dir + 2 * $d) % 8] and not $$Nmin[($dir - 2 * $d) % 8]
341 0 0 0 $$px[$y + 3 * $dy1][$x + 3 * $dx1] and $$px[$y + 2 * $dy + 2 * $dy1][$x + 2 * $dx + 2 * $dx1] ^^ $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1]
0 0 0 $$px[$y + 3 * $dy1][$x + 3 * $dx1] and $$px[$y + 2 * $dy + 2 * $dy1][$x + 2 * $dx + 2 * $dx1] ^^ $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] and !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || $cnt->[$y][$x] < 5 && $$cnt[$y + $dy1][$x + $dx1] < 6
0 0 0 $$px[$y + 3 * $dy1][$x + 3 * $dx1] and $$px[$y + 2 * $dy + 2 * $dy1][$x + 2 * $dx + 2 * $dx1] ^^ $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] and !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || $cnt->[$y][$x] < 5 && $$cnt[$y + $dy1][$x + $dx1] < 6 and not $$px[$y + $dy + 3 * $dy1][$x + $dx + 3 * $dx1]
0 0 0 $$px[$y + 3 * $dy1][$x + 3 * $dx1] and $$px[$y + 2 * $dy + 2 * $dy1][$x + 2 * $dx + 2 * $dx1] ^^ $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] and !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || $cnt->[$y][$x] < 5 && $$cnt[$y + $dy1][$x + $dx1] < 6 and not $$px[$y + $dy + 3 * $dy1][$x + $dx + 3 * $dx1] and $cntmin->[$y][$x] < 6
0 0 0 $$px[$y + 3 * $dy1][$x + 3 * $dx1] and $$px[$y + 2 * $dy + 2 * $dy1][$x + 2 * $dx + 2 * $dx1] ^^ $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] and !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || $cnt->[$y][$x] < 5 && $$cnt[$y + $dy1][$x + $dx1] < 6 and not $$px[$y + $dy + 3 * $dy1][$x + $dx + 3 * $dx1] and $cntmin->[$y][$x] < 6 and !$$px[$y - $dy1][$x - $dx1] || $cntmin->[$y][$x] + $$cntmin[$y - $dy1][$x - $dx1] < 10
0 0 0 $$px[$y + 3 * $dy1][$x + 3 * $dx1] and $$px[$y + 2 * $dy + 2 * $dy1][$x + 2 * $dx + 2 * $dx1] ^^ $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] and !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || $cnt->[$y][$x] < 5 && $$cnt[$y + $dy1][$x + $dx1] < 6 and not $$px[$y + $dy + 3 * $dy1][$x + $dx + 3 * $dx1] and $cntmin->[$y][$x] < 6 and !$$px[$y - $dy1][$x - $dx1] || $cntmin->[$y][$x] + $$cntmin[$y - $dy1][$x - $dx1] < 10 and !$$px[$y - $dy + $dy1][$x - $dx + $dx1] || $cnt->[$y][$x] + $$cnt[$y - $dy + $dy1][$x - $dx + $dx1] < 9
0 0 0 $$px[$y + 3 * $dy1][$x + 3 * $dx1] and $$px[$y + 2 * $dy + 2 * $dy1][$x + 2 * $dx + 2 * $dx1] ^^ $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] and !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || $cnt->[$y][$x] < 5 && $$cnt[$y + $dy1][$x + $dx1] < 6 and not $$px[$y + $dy + 3 * $dy1][$x + $dx + 3 * $dx1] and $cntmin->[$y][$x] < 6 and !$$px[$y - $dy1][$x - $dx1] || $cntmin->[$y][$x] + $$cntmin[$y - $dy1][$x - $dx1] < 10 and !$$px[$y - $dy + $dy1][$x - $dx + $dx1] || $cnt->[$y][$x] + $$cnt[$y - $dy + $dy1][$x - $dx + $dx1] < 9 and !($$px[$y + 4 * $dy1][$x + 4 * $dx1] && $$px[$y + 5 * $dy1][$x + 5 * $dx1]) || $cntmin->[$y][$x] + $$cntmin[$y + 4 * $dy1][$x + 4 * $dx1] + $$cntmin[$y + 5 * $dy1][$x + 5 * $dx1] < 15
0 0 0 $$px[$y + 3 * $dy1][$x + 3 * $dx1] and $$px[$y + 2 * $dy + 2 * $dy1][$x + 2 * $dx + 2 * $dx1] ^^ $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] and !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || $cnt->[$y][$x] < 5 && $$cnt[$y + $dy1][$x + $dx1] < 6 and not $$px[$y + $dy + 3 * $dy1][$x + $dx + 3 * $dx1] and $cntmin->[$y][$x] < 6 and !$$px[$y - $dy1][$x - $dx1] || $cntmin->[$y][$x] + $$cntmin[$y - $dy1][$x - $dx1] < 10 and !$$px[$y - $dy + $dy1][$x - $dx + $dx1] || $cnt->[$y][$x] + $$cnt[$y - $dy + $dy1][$x - $dx + $dx1] < 9 and !($$px[$y + 4 * $dy1][$x + 4 * $dx1] && $$px[$y + 5 * $dy1][$x + 5 * $dx1]) || $cntmin->[$y][$x] + $$cntmin[$y + 4 * $dy1][$x + 4 * $dx1] + $$cntmin[$y + 5 * $dy1][$x + 5 * $dx1] < 15 and grep((!$$px[$y + $_ * $dy1 - $dy][$x + $_ * $dx1 - $dx]), 2, 3, 4)
0 0 0 $$px[$y + 3 * $dy1][$x + 3 * $dx1] and $$px[$y + 2 * $dy + 2 * $dy1][$x + 2 * $dx + 2 * $dx1] ^^ $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] and !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || $cnt->[$y][$x] < 5 && $$cnt[$y + $dy1][$x + $dx1] < 6 and not $$px[$y + $dy + 3 * $dy1][$x + $dx + 3 * $dx1] and $cntmin->[$y][$x] < 6 and !$$px[$y - $dy1][$x - $dx1] || $cntmin->[$y][$x] + $$cntmin[$y - $dy1][$x - $dx1] < 10 and !$$px[$y - $dy + $dy1][$x - $dx + $dx1] || $cnt->[$y][$x] + $$cnt[$y - $dy + $dy1][$x - $dx + $dx1] < 9 and !($$px[$y + 4 * $dy1][$x + 4 * $dx1] && $$px[$y + 5 * $dy1][$x + 5 * $dx1]) || $cntmin->[$y][$x] + $$cntmin[$y + 4 * $dy1][$x + 4 * $dx1] + $$cntmin[$y + 5 * $dy1][$x + 5 * $dx1] < 15 and grep((!$$px[$y + $_ * $dy1 - $dy][$x + $_ * $dx1 - $dx]), 2, 3, 4) and !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || (grep($$px[$y + 4 * $dy1 + $_ * ($dy - $dy1)][$x + 4 * $dx1 + $_ * ($dx - $dx1)], 0, 1) || $$px[$y - $dy1][$x - $dx1]) && $$cntmin[$y + 3 * $dy1][$x + 3 * $dx1] < 6 && $$cnt[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] > 2
0 0 0 $$px[$y + 3 * $dy1][$x + 3 * $dx1] and $$px[$y + 2 * $dy + 2 * $dy1][$x + 2 * $dx + 2 * $dx1] ^^ $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] and !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || $cnt->[$y][$x] < 5 && $$cnt[$y + $dy1][$x + $dx1] < 6 and not $$px[$y + $dy + 3 * $dy1][$x + $dx + 3 * $dx1] and $cntmin->[$y][$x] < 6 and !$$px[$y - $dy1][$x - $dx1] || $cntmin->[$y][$x] + $$cntmin[$y - $dy1][$x - $dx1] < 10 and !$$px[$y - $dy + $dy1][$x - $dx + $dx1] || $cnt->[$y][$x] + $$cnt[$y - $dy + $dy1][$x - $dx + $dx1] < 9 and !($$px[$y + 4 * $dy1][$x + 4 * $dx1] && $$px[$y + 5 * $dy1][$x + 5 * $dx1]) || $cntmin->[$y][$x] + $$cntmin[$y + 4 * $dy1][$x + 4 * $dx1] + $$cntmin[$y + 5 * $dy1][$x + 5 * $dx1] < 15 and grep((!$$px[$y + $_ * $dy1 - $dy][$x + $_ * $dx1 - $dx]), 2, 3, 4) and !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || (grep($$px[$y + 4 * $dy1 + $_ * ($dy - $dy1)][$x + 4 * $dx1 + $_ * ($dx - $dx1)], 0, 1) || $$px[$y - $dy1][$x - $dx1]) && $$cntmin[$y + 3 * $dy1][$x + 3 * $dx1] < 6 && $$cnt[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] > 2 and ($last = !!$$px[$y + 4 * $dy1][$x + 4 * $dx1]) || $$px[$y + 5 * $dy1 - $dy][$x + 5 * $dx1 - $dx]
364 0 0 0 ($last = !!$$px[$y + 3 * $dy1][$x + 3 * $dx1]) || $$px[$y + 4 * $dy1 - $dy][$x + 4 * $dx1 - $dx] and $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1]
0 0 0 ($last = !!$$px[$y + 3 * $dy1][$x + 3 * $dx1]) || $$px[$y + 4 * $dy1 - $dy][$x + 4 * $dx1 - $dx] and $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] and $last || !$$px[$y + 3 * $dy1 - $dy][$x + 3 * $dx1 - $dx]
0 0 0 ($last = !!$$px[$y + 3 * $dy1][$x + 3 * $dx1]) || $$px[$y + 4 * $dy1 - $dy][$x + 4 * $dx1 - $dx] and $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] and $last || !$$px[$y + 3 * $dy1 - $dy][$x + 3 * $dx1 - $dx] and $last || $$cntmin[$y + $dy1][$x + $dx1] < 6 && ($cntmin->[$y][$x] < 6 && ($cntmin->[$y][$x] < 5 || $$px[$y - $dy1][$x - $dx1] && $$cntmin[$y - $dy1][$x - $dx1] < 4))
381 0 0 0 $$N0min[($dir + 4) % 8] and $cN0min <= 4
0 0 0 $$N0min[($dir + 4) % 8] and $cN0min <= 4 and $dir & 1
383 0 0 0 $px->[$mirY][$mirX] and $cntmin->[$mirY][$mirX] <= 4
0 0 0 $px->[$mirY][$mirX] and $cntmin->[$mirY][$mirX] <= 4 and $cnt->[$mirY][$mirX] >= 4
0 0 0 $px->[$mirY][$mirX] and $cntmin->[$mirY][$mirX] <= 4 and $cnt->[$mirY][$mirX] >= 4 and $nearmin->[$mirY][$mirX][($dir - 2 * $d) % 8]
402 0 0 0 $$edge[$l->[1]][$l->[0]][$_] and $D = $_, last
442 0 0 0 $ray->[0] =~ /^m/ and $basetype =~ /^m/
446 0 0 0 $$rays[($dir + $next) % 8] and $$rays[($dir + $next) % 8][0] =~ /^[Dr3\WP]/
525 4 0 0 $DEP && !ref($DEP->[0])
539 4 0 0 $remove and $keep
540 4 0 0 $unignore and $keep
541 0 0 4 @rest and $keep
543 0 4 0 $keep and $type =~ /^[3r]/
549 4 0 0 not $keep and $TO eq "\x{b4}"
558 0 0 0 $t eq "s" and $cnt[$y + $dy1][$x + $dx1] <= 4
563 0 0 0 not $dir % 2 and $cnt[$y][$x] == 3
0 0 0 not $dir % 2 and $cnt[$y][$x] == 3 and +($rays[$y][$x][($dir + 4) % 8] || $ER)->[0] eq "tail"
0 0 0 not $dir % 2 and $cnt[$y][$x] == 3 and +($rays[$y][$x][($dir + 4) % 8] || $ER)->[0] eq "tail" and $cnt[$y + $dy1][$x + $dx1] == 4
0 0 0 not $dir % 2 and $cnt[$y][$x] == 3 and +($rays[$y][$x][($dir + 4) % 8] || $ER)->[0] eq "tail" and $cnt[$y + $dy1][$x + $dx1] == 4 and +($rays[$y + $dy1][$x + $dx1][$dir] || $ER)->[0] eq "doubleray"
0 0 0 not $dir % 2 and $cnt[$y][$x] == 3 and +($rays[$y][$x][($dir + 4) % 8] || $ER)->[0] eq "tail" and $cnt[$y + $dy1][$x + $dx1] == 4 and +($rays[$y + $dy1][$x + $dx1][$dir] || $ER)->[0] eq "doubleray" and +($rays[$y + $dy + $dy1][$x + $dx + $dx1][$dir] || $ER)->[0] =~ /^[dc]/
569 0 0 0 !($_ % 2) && +($rays[$y + $dy + $dy1][$x + $dx + $dx1][$_] || $ER)->[0] eq 'tail'
0 0 0 $cnt[$y + $dy + $dy1][$x + $dx + $dx1] == 3 and grep((!($_ % 2) && +($rays[$y + $dy + $dy1][$x + $dx + $dx1][$_] || $ER)->[0] eq 'tail'), @opp)
576 0 0 0 $cnt[$y + $good->[2]][$x + $good->[1]] == 4 and $rays[$y + $good->[2]][$x + $good->[1]][($good->[0] + 4) % 8][0] eq "doubleray"
0 0 0 $cnt[$y + $good->[2]][$x + $good->[1]] == 4 and $rays[$y + $good->[2]][$x + $good->[1]][($good->[0] + 4) % 8][0] eq "doubleray" and $rays[$y][$x][($good->[0] + 4) % 8][0] =~ /^[dc]/
604 0 0 0 $2 and $rays[$y][$x][$dir][0] ne "?"
626 0 0 0 $cnt[$y][$x] == $C and $rays[$y][$x][$dir][0] eq "?"
632 0 0 0 $cnt[$y][$x] == 4 and $rays[$y][$x][$dir][0] =~ /^[?fP\264r]/
639 0 0 0 $cnt[$Y][$X] == 3 and $rays[$Y][$X][$DIR]
0 0 0 $cnt[$Y][$X] == 3 and $rays[$Y][$X][$DIR] and ($rays[$Y][$X][$DIR][0] || '') =~ /^t/
643 0 0 0 $cnt[$y][$x] == 1 and $rays[$y][$x][$dir]
0 0 0 $cnt[$y][$x] == 1 and $rays[$y][$x][$dir] and ($rays[$y][$x][$dir][0] || '') =~ /^d/
697 0 0 0 $rays[$YY + $dy1][$XX + $dx1][($DD + 4) % 8][0] =~ /^([F\260])/ and $1 eq 'F' || $rays[$YY][$XX][($DD - 3 * $R) % 8][0] =~ /^C/ && ($deg_corner = 1)
0 0 0 $rays[$YY + $dy1][$XX + $dx1][($DD + 4) % 8][0] =~ /^([F\260])/ and $1 eq 'F' || $rays[$YY][$XX][($DD - 3 * $R) % 8][0] =~ /^C/ && ($deg_corner = 1) and $rays[$YY][$XX][$DD][0] =~ /^([cF1d])/
0 0 0 (my $m1 = $1) eq 'd' && $rays[$YY + $dy1][$XX + $dx1][$DD][0] =~ /^d/
0 0 0 $rays[$YY + $dy1][$XX + $dx1][($DD + 4) % 8][0] =~ /^([F\260])/ and $1 eq 'F' || $rays[$YY][$XX][($DD - 3 * $R) % 8][0] =~ /^C/ && ($deg_corner = 1) and $rays[$YY][$XX][$DD][0] =~ /^([cF1d])/ and not +(my $m1 = $1) eq 'd' && $rays[$YY + $dy1][$XX + $dx1][$DD][0] =~ /^d/
702 0 0 0 $rays[$YY][$XX][$DD][0] =~ /^d/ and $rays[$YY + $dy1][$XX + $dx1][$DD][0] =~ /^a/
0 0 0 $rays[$YY][$XX][$DD][0] =~ /^d/ and $rays[$YY + $dy1][$XX + $dx1][$DD][0] =~ /^a/ and $rays[$YY + $dy1][$XX + $dx1][$DD][1] == -$R
706 0 0 0 not $good and $seen =~ /F1|1F|(11)/
0 0 0 not $good and $seen =~ /F1|1F|(11)/ and $1 || !$deg_corner
714 0 0 0 $rays[$YY + $dy1][$XX + $dx1][($DD + 4) % 8][0] =~ /^C/ and $rays[$YY][$XX][$DD][0] =~ /^c/
0 0 0 $rays[$YY + $dy1][$XX + $dx1][($DD + 4) % 8][0] =~ /^C/ and $rays[$YY][$XX][$DD][0] =~ /^c/ and $rays[$YY][$XX][$DD][1] == $R
717 0 0 0 $rays[$YY + $dy1][$XX + $dx1][($DD + 4) % 8][0] =~ /^\260/ and +($rays[$YY][$XX][($DD - 3 * $R) % 8] || $ER)->[0] =~ /^([1])/
0 0 0 $rays[$YY + $dy1][$XX + $dx1][($DD + 4) % 8][0] =~ /^\260/ and +($rays[$YY][$XX][($DD - 3 * $R) % 8] || $ER)->[0] =~ /^([1])/ and $1 ne 'C' || $rays[$YY][$XX][($DD - 3 * $R) % 8][1] == $R
0 0 0 $rays[$YY + $dy1][$XX + $dx1][($DD + 4) % 8][0] =~ /^\260/ and +($rays[$YY][$XX][($DD - 3 * $R) % 8] || $ER)->[0] =~ /^([1])/ and $1 ne 'C' || $rays[$YY][$XX][($DD - 3 * $R) % 8][1] == $R and $rays[$YY][$XX][$DD][0] =~ /^([cd])/
742 0 0 0 $T->[0] eq "\x{b4}" and $B == -$rays[$Y][$X][$DIR][1]
743 0 0 0 !@rem_postpone || $ray_round == 1 and $rays[$Y - $dy0][$X - $dx0][($DIR + $B) % 8][0] eq "\x{b4}"
0 0 0 $nearmin[$Y + $dy][$X + $dx][($DIR + 2 * $B) % 8] && $nearmin[$Y - $dy0][$X - $dx0][($DIR + 4) % 8]
0 0 0 !@rem_postpone || $ray_round == 1 and $rays[$Y - $dy0][$X - $dx0][($DIR + $B) % 8][0] eq "\x{b4}" and not $nearmin[$Y + $dy][$X + $dx][($DIR + 2 * $B) % 8] && $nearmin[$Y - $dy0][$X - $dx0][($DIR + 4) % 8]
763 0 0 0 $cntmin[$Y + $dy1][$X + $dx1] <= 4 + !!$extra and $cntmin[$Y + $dy + $dy1][$X + $dx + $dx1] <= 3
0 0 0 $cntmin[$Y + $dy1][$X + $dx1] <= 4 + !!$extra and $cntmin[$Y + $dy + $dy1][$X + $dx + $dx1] <= 3 and $cntmin[$Y - $B * $dx1][$X + $B * $dy1] <= 3
765 0 0 0 $cntmin[$Y][$X] <= 3 + !!$Ex[0] and $cntmin[$Y + $dy][$X + $dx] <= 3 + !!$Ex[1]
800 0 0 0 $rays[$y][$x][$dir][0] =~ /^a/ and !$p[1] || $rays[$y][$x][($dir + 4) % 8][0] eq $p[2]
820 0 0 0 (my $code = $1) eq "F" and $cnt[$y][$x] != 1
824 0 0 0 $rays[$y1][$x1][$dir1][0] =~ s/^[?1P].*/Tail/ and @{$$RAYS[$dir];}[0, 1] = ("MFork", 0), next
830 0 0 2 @$ER == 1 and $ER->[0] eq ""
873 0 0 0 +($$RAYS[($dir + $rot) % 8] || $ER)->[0] =~ /^[D\WP]/ and not $RAYS->[$dir][0] =~ /^[BE]/
889 0 0 0 2 >= $cnt->[$y][$x] and $RAYS->[$dir][0] eq "\x{b0}"
0 0 0 2 >= $cnt->[$y][$x] and $RAYS->[$dir][0] eq "\x{b0}" and ++$semi_bad
893 0 0 0 2 >= $cnt->[$y1][$x1] and $rays[$y1][$x1][$dir1][0] eq "\x{b0}"
0 0 0 2 >= $cnt->[$y1][$x1] and $rays[$y1][$x1][$dir1][0] eq "\x{b0}" and ++$semi_bad < 2
907 76 2 4 $Simple[$y][$x] and ($cntedge[$y][$x] || 0) <= 1
924 0 0 4 defined $L && abs 4 - abs($L - $dir) >= 2
925 0 4 0 $RAYS->[$dir][0] =~ /^[dR]/ and not $sharp_angle
927 4 0 0 $RAYS->[$dir][0] =~ /^[FM]/ and defined $L
4 0 0 $RAYS->[$dir][0] =~ /^[FM]/ and defined $L and not $sharp_angle
934 4 0 0 $RAYS->[$dir][0] =~ /^e/ and $R->[0] =~ /^d/
935 4 0 0 $RAYS->[$dir][0] =~ /^[fK]/ and $R->[0] =~ /^d/
937 4 0 0 @Zh == 1 and @good == 1
4 0 0 @Zh == 1 and @good == 1 and push @res, [$Zh[0]]
4 0 0 @good == 1 and push @res, [$good[0]]
1000 0 0 0 not ref $e and $e eq "erased"
1007 0 0 0 @atBEG and @atEND
1010 0 0 0 $have[0] == $dir && $rot
1021 0 2 0 $ER and @$ER != 1 || $ER->[0] ne ''
1048 0 0 0 $dir != $D and $$blob[$y + $dy[$dir]][$x + $dx[$dir]]
1050 0 0 0 $C and not $$skip{join $;, $y, $x}
1072 2 0 0 $blobs and $do_more
1093 0 0 0 $c == 3 and $C >= 2
1097 0 0 0 $CC >= 3 and $CC[1]
0 0 0 $CC >= 3 and $CC[1] and $CC[0] || $CC[2]
1104 0 0 0 $neigh{$rot}[$_] and ++$tot
0 0 0 $neigh{$rot}[$_] and ++$tot and ($lastN, $lastR, $lastDx, $lastDy) = ($_, $rot, $dx1, $dy1)
1105 0 0 0 ++$done and push @clearEdge, [$x, $y, $dir, $x + $dx, $y + $dy]
0 0 0 $neigh{$rot}[0] and $neigh{$rot}[1]
1107 0 0 0 not $done and $cntedge->[$y][$x] == 1
0 0 0 not $done and $cntedge->[$y][$x] == 1 and $cntedge->[$y1][$x1] == 1
1108 0 0 0 ++$done and push @clearEdge, [$x, $y, $dir, $x + $dx, $y + $dy]
1109 0 0 0 not $done and $tot == 1
1116 0 0 0 ($blob[$y + $dy][$x + $dx] || 0) >= 3 and ($blob[$y + 2 * $lastDy][$x + 2 * $lastDx] || 0) >= 3
0 0 0 ($blob[$y + $dy][$x + $dx] || 0) >= 3 and ($blob[$y + 2 * $lastDy][$x + 2 * $lastDx] || 0) >= 3 and ($blob[$y + $dy + $lastDy][$x + $dx + $lastDx] || 0) >= 3
0 0 0 ($blob[$y + $dy][$x + $dx] || 0) >= 3 and ($blob[$y + 2 * $lastDy][$x + 2 * $lastDx] || 0) >= 3 and ($blob[$y + $dy + $lastDy][$x + $dx + $lastDx] || 0) >= 3 and not $blob[$y + $dy - $lastDy][$x + $dx - $lastDx]
1158 78 0 4 1 == ($cntedge->[$y][$x] || 0) and not $$inLong{join $;, $x, $y}
1164 2 0 0 1 == ($cntedge->[$y1][$x1] || 0) and $lastedge->[$y1][$x1] == ($dir + 4) % 8
1168 4 0 0 not $dir & 1 and 1 == ($cntedge->[$y1][$x1] || 0)
4 0 0 not $dir & 1 and 1 == ($cntedge->[$y1][$x1] || 0) and 2 == abs(($lastedge->[$y1][$x1] - $dir) % 8 - 4)
0 0 0 not $dir & 1 and 1 == ($cntedge->[$y1][$x1] || 0) and 2 == abs(($lastedge->[$y1][$x1] - $dir) % 8 - 4) and $rays->[$y][$x][$dir][0] =~ /^([tBdcN])/
0 0 0 not $dir & 1 and 1 == ($cntedge->[$y1][$x1] || 0) and 2 == abs(($lastedge->[$y1][$x1] - $dir) % 8 - 4) and $rays->[$y][$x][$dir][0] =~ /^([tBdcN])/ and $1 ne 'c' || ($r = $rays->[$y][$x][$dir][1]) && !$rays->[$y][$x][($dir + 4 + $r) % 8]
1233 0 0 0 $Opp =~ /^[Fr]/ and $edge->[$y1][$x1][($d + 4) % 8]
1234 0 0 0 $Opp =~ /^[Fr]/ and $$rays[$y + $dy[$dir]][$x + $dx[$dir]][($dir + (2 + $dir % 2) * $rot) % 8]
0 0 0 $Opp =~ /^[Fr]/ and $$rays[$y + $dy[$dir]][$x + $dx[$dir]][($dir + (2 + $dir % 2) * $rot) % 8] and $$rays[$y + $dy[$dir]][$x + $dx[$dir]][($dir + (2 + $dir % 2) * $rot) % 8][0] =~ /^\242/
1239 0 0 0 ($cntedge->[$y1][$x1] || 0) == 1 and ($cntedge->[$y][$x] || 0) == 1
0 0 0 ($cntedge->[$y1][$x1] || 0) == 1 and ($cntedge->[$y][$x] || 0) == 1 and $edge->[$y1][$x1][$dir]
0 0 0 ($cntedge->[$y1][$x1] || 0) == 1 and ($cntedge->[$y][$x] || 0) == 1 and $edge->[$y1][$x1][$dir] and $edge->[$y][$x][($dir - $RAYS->[$dir][1] + 4) % 8]
1249 0 0 0 $rays->[$y1][$x1][($dir + 4) % 8][0] =~ /^F/ and $$rays[$y + $dy[$d]][$x + $dx[$d]][$dir][0] =~ /^d/
1260 0 0 0 $$rays2[($D + 4) % 8] and $$rays2[($D + 4) % 8][0] =~ /^d/
0 0 0 $$rays2[($D + 4) % 8] and $$rays2[($D + 4) % 8][0] =~ /^d/ and $RAYS->[$D]
0 0 0 $$rays2[($D + 4) % 8] and $$rays2[($D + 4) % 8][0] =~ /^d/ and $RAYS->[$D] and $RAYS->[$D][0] =~ /^(?:(d)|\?)/
1264 0 0 0 $rays2->[$D] and $rays2->[$D][0] =~ /$Side->[1]/
1267 0 0 0 ($cntedge->[$y2][$x2] || 0) == 3 and ($cntedge->[$y][$x] || 0) == 2
0 0 0 ($cntedge->[$y2][$x2] || 0) == 3 and ($cntedge->[$y][$x] || 0) == 2 and $edge->[$y2][$x2][($d - 2 * $RAYS->[$dir][1]) % 8]
0 0 0 ($cntedge->[$y2][$x2] || 0) == 3 and ($cntedge->[$y][$x] || 0) == 2 and $edge->[$y2][$x2][($d - 2 * $RAYS->[$dir][1]) % 8] and grep $edge->[$y][$x][($_ + 4) % 8], $d, $D
1275 0 0 0 $Side->[2] && $$rays[$y + 2 * $dy[$D]][$x + 2 * $dx[$D]][($D + 4) % 8]
1314 0 0 0 !$$cntedge[$_->[1]][$_->[0]] && ($cntBlobby[$_->[1]][$_->[0]] || 0) > 1 + ($cX == 2)
1315 0 0 0 !$$cntedge[$_->[1]][$_->[0]] && ($cntBlobby[$_->[1]][$_->[0]] || 0) > ($cX == 2)
1320 0 0 0 $in && !$$cntedge[$y + $dy[$d]][$x + $dx[$d]] && $$cnt[$y + $dy[$d]][$x + $dx[$d]] < 6
0 0 0 2 == $cXX and not $in && !$$cntedge[$y + $dy[$d]][$x + $dx[$d]] && $$cnt[$y + $dy[$d]][$x + $dx[$d]] < 6
1327 0 0 0 $rays->[$y][$x][$D] and not $edge->[$y][$x][$D]
1344 0 0 0 $rays->[$y1][$x1][$dir1][0] =~ /^([dc\260])/ and not $edge->[$y][$x][$dir]
1365 0 0 0 !$$cntedge[$P->[1]][$P->[0]] || $$cnt[$P->[1]][$P->[0]] + !$back > 5 and !$cntedge->[$y2][$x2] && (($cntBlobby[$y2][$x2] || 0) > 2 || $cntBlobby[$y2][$x2] && $cnt->[$y2][$x2] > 5) || ($cntBlobby[$y2][$x2] || 0) > 2 && $cnt->[$y2][$x2] > 5
1369 0 0 0 not $$cntedge[$P->[1]][$P->[0]] || $cntedge->[$y2][$x2] and $cnt->[$y2][$x2] < 5
1373 0 0 0 $bad00 and $badD > 1
0 0 0 $smallBlobby and $badD >= 2
1377 0 0 0 $inBlob and $qRound
1379 0 0 0 $rays->[$y][$x][($dir + $_) % 8] && $rays->[$y][$x][($dir + $_) % 8][0] =~ /^A/
1401 0 0 0 $edge->[$y1][$x1][($dir + $D) % 8] and not $outCont[$y][$x][($dir + 2 * $D) % 8][1 + $D]
1444 0 0 0 $r and $r->[0] =~ /^[4x2]/
1446 0 0 0 1 == ($cntedge->[$y1][$x1] || 0) and grep $edge->[$y1][$x1][($dir - $rot * $_) % 8], 0, 1, 2
1454 0 0 0 @rot && $rot[0]
0 0 0 not $dir % 2 and 2 == grep($edge->[$y][$x][($dir + $_) % 8], -2, 2) || !$cntedge->[$y][$x] && 2 == grep($$edge[2 * $y - $y1][2 * $x - $x1][($dir + $_) % 8], -2, 2) && !grep($$edge[2 * $y - $y1][2 * $x - $x1][($dir + $_) % 8], 1, 0, -1) && push(@cont, [$x, $y, $dir1, 2 * $x - $x1, 2 * $y - $y1])
1460 0 0 0 not $cntedge->[$y][$x] and 1 == ($cntBlobby->[$y][$x] || 0)
1467 0 0 0 1 == ($cntBlobby->[$y2][$x2] || 0) and !$$midLong{join $;, $x + $x2, $y + $y2} || $cnt->[$y2][$x2] == 3
1475 0 0 0 1 == (($rot, my $junk) = grep(defined($_), @out)) and $rot
1483 0 0 0 push @cont, [$x1, $y1, $D, $x2, $y2] and $out[$try] = $rot
0 0 0 $edge->[$y2][$x2] and $edge->[$y2][$x2][$dir]
0 0 0 $edge->[$y2][$x2] and $edge->[$y2][$x2][$dir] and not grep($edge->[$y2][$x2][($dir + $_) % 8], 4)
1488 0 0 0 not $edge->[$y][$x][$dir] and $rays->[$y1][$x1][$dir1][0] =~ /^([cdfF])/
0 0 0 not $edge->[$y][$x][$dir] and $rays->[$y1][$x1][$dir1][0] =~ /^([cdfF])/ and $Opp = $1
0 0 0 not $edge->[$y][$x][$dir] and $rays->[$y1][$x1][$dir1][0] =~ /^([cdfF])/ and $Opp = $1 and not grep($edge->[$y][$x][($dir + $_) % 8], -1, 1)
0 0 0 not $edge->[$y][$x][$dir] and $rays->[$y1][$x1][$dir1][0] =~ /^([cdfF])/ and $Opp = $1 and not grep($edge->[$y][$x][($dir + $_) % 8], -1, 1) and not grep($edge->[$y1][$x1][($dir1 + $_) % 8], -1, 1)
0 0 0 not $edge->[$y][$x][$dir] and $rays->[$y1][$x1][$dir1][0] =~ /^([cdfF])/ and $Opp = $1 and not grep($edge->[$y][$x][($dir + $_) % 8], -1, 1) and not grep($edge->[$y1][$x1][($dir1 + $_) % 8], -1, 1) and 2 + !$cntedge->[$y1][$x1] > ($cntBlobby->[$y][$x] || 0)
0 0 0 not $edge->[$y][$x][$dir] and $rays->[$y1][$x1][$dir1][0] =~ /^([cdfF])/ and $Opp = $1 and not grep($edge->[$y][$x][($dir + $_) % 8], -1, 1) and not grep($edge->[$y1][$x1][($dir1 + $_) % 8], -1, 1) and 2 + !$cntedge->[$y1][$x1] > ($cntBlobby->[$y][$x] || 0) and 2 + !$cntedge->[$y][$x] > ($cntBlobby->[$y1][$x1] || 0)
0 0 0 $rays->[$y][$x][($dir + $_) % 8] && ($rays->[$y][$x][($dir + $_) % 8][0] || '') =~ /^[4x2]/ && !&$goodNearLong($x, $y, $dir, $_, $x1, $y1)
0 0 0 not $edge->[$y][$x][$dir] and $rays->[$y1][$x1][$dir1][0] =~ /^([cdfF])/ and $Opp = $1 and not grep($edge->[$y][$x][($dir + $_) % 8], -1, 1) and not grep($edge->[$y1][$x1][($dir1 + $_) % 8], -1, 1) and 2 + !$cntedge->[$y1][$x1] > ($cntBlobby->[$y][$x] || 0) and 2 + !$cntedge->[$y][$x] > ($cntBlobby->[$y1][$x1] || 0) and not grep(($rays->[$y][$x][($dir + $_) % 8] && ($rays->[$y][$x][($dir + $_) % 8][0] || '') =~ /^[4x2]/ && !&$goodNearLong($x, $y, $dir, $_, $x1, $y1)), -1, 1)
0 0 0 $rays->[$y1][$x1][($dir1 + $_) % 8] && ($rays->[$y1][$x1][($dir1 + $_) % 8][0] || '') =~ /^[4x2]/ && !&$goodNearLong($x1, $y1, $dir1, $_, $x, $y)
0 0 0 not $edge->[$y][$x][$dir] and $rays->[$y1][$x1][$dir1][0] =~ /^([cdfF])/ and $Opp = $1 and not grep($edge->[$y][$x][($dir + $_) % 8], -1, 1) and not grep($edge->[$y1][$x1][($dir1 + $_) % 8], -1, 1) and 2 + !$cntedge->[$y1][$x1] > ($cntBlobby->[$y][$x] || 0) and 2 + !$cntedge->[$y][$x] > ($cntBlobby->[$y1][$x1] || 0) and not grep(($rays->[$y][$x][($dir + $_) % 8] && ($rays->[$y][$x][($dir + $_) % 8][0] || '') =~ /^[4x2]/ && !&$goodNearLong($x, $y, $dir, $_, $x1, $y1)), -1, 1) and not grep(($rays->[$y1][$x1][($dir1 + $_) % 8] && ($rays->[$y1][$x1][($dir1 + $_) % 8][0] || '') =~ /^[4x2]/ && !&$goodNearLong($x1, $y1, $dir1, $_, $x, $y)), -1, 1)
1515 0 0 0 not defined $out and $c = grep(("f" ne ($candDegree{join $;, $x, $y, ($dir1 + $_) % 8} || 'f')), -1, 0, 1)
0 0 0 not defined $out and $c = grep(("f" ne ($candDegree{join $;, $x, $y, ($dir1 + $_) % 8} || 'f')), -1, 0, 1) and $c != 2
1516 0 0 0 not defined $out1 and $c = grep(("f" ne ($candDegree{join $;, $x1, $y1, ($dir + $_) % 8} || 'f')), -1, 0, 1)
0 0 0 not defined $out1 and $c = grep(("f" ne ($candDegree{join $;, $x1, $y1, ($dir + $_) % 8} || 'f')), -1, 0, 1) and $c != 2
1517 0 0 0 defined $out and defined $out1
1530 0 0 0 not ref $e and $e eq "erased"
1560 32 8 0 $edge->[$y][$x][$dir] and $rays->[$y][$x][$dir][0] eq "Tail"
1570 0 0 0 $cnt->[$y][$x] == 3 and $cntedge->[$y][$x] < 3
1576 0 0 0 ($_ - $d + 4) % 8 && $$edge[$y + $dy[$d]][$x + $dx[$d]][$_]
1582 0 0 0 $b and grep $$edge[$y + $dy[$d] + $dy[$l]][$x + $dx[$d] + $dx[$l]][($l + $_ * $d0) % 8], 1, 2
1586 0 0 0 @bends == 2 and 2 == grep($_->[3], @bends)
0 0 0 @bends == 2 and 2 == grep($_->[3], @bends) and 1 == (my(@O) = grep(($_->[2] == 1), @bends))
0 0 0 @bends == 2 and 2 == grep($_->[3], @bends) and 1 == (my(@O) = grep(($_->[2] == 1), @bends)) and not grep(($_->[2] == -1), @bends)
1615 76 2 4 $cnt->[$y][$x] and ($cntedge->[$y][$x] || 0) <= 1
78 0 4 $cnt->[$y][$x] and ($cntedge->[$y][$x] || 0) <= 1 and not $$inLong{join $;, $x, $y}
1626 0 0 0 $e < $#Neighbors and $Neighbors[$e + 1] == ($Neighbors[$e] + 1) % 8
1632 0 0 0 $e == $#Neighbors and $e == 2
0 0 0 $e == $#Neighbors and $e == 2 and not grep((!$$cntedge[$y + $dy[$_]][$x + $dx[$_]]), @Neighbors)
1636 0 0 0 $e < $#Neighbors and $Neighbors[$e + 1] == ($Neighbors[$e] + 1) % 8
1643 0 0 0 grep((!$$cntedge[$y + $dy[$_]][$x + $dx[$_]]), @Neighbors) and @Neighbors > 1 || grep($$near[$y + $dy[$Neighbors[0]]][$x + $dx[$Neighbors[0]]][($Neighbors[0] + $_) % 8], 2, 3, -2, -3)
1654 0 0 0 $L < 8 and grep((1 < abs(($L - $_) % 8 - 4)), @cont)
1661 0 0 0 $mid == $cont[0] and $L > 7 || 2 > abs(($L - $cont[0]) % 8 - 4)
1664 0 0 0 $ang and $ang > 1 || $near->[$y][$x][($L + 4) % 8]
1668 0 0 0 $L < 8 and 1 < abs(($L - $cont[0]) % 8 - 4)
1691 0 0 0 @ed && ($L > 7 || abs(($L - $mid) % 8 - 4) < 2) && $cnt->[$y][$x] < 3
0 0 0 grep((abs(($_ + 4 - $mid) % 8 - 4) > 1), @NN) and not @ed && ($L > 7 || abs(($L - $mid) % 8 - 4) < 2) && $cnt->[$y][$x] < 3
1698 0 0 0 grep($$edge[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8], 2, -2) && !grep(($$near[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8] && !$$edge[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8]), 2, -2)
0 0 0 grep((!$$edge[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8]), 2, -2) and not grep($$edge[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8], 2, -2) && !grep(($$near[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8] && !$$edge[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8]), 2, -2)
1705 0 0 0 $L < 8 and 2 > abs(($L - $Neighbors[0]) % 8 - 4)
1873 0 0 0 1 >= @$CC and not $green_at_left || $green_at_right
1886 0 0 0 $extended->{'0'} and $CC->[0] < $CC->[1] - 1
0 0 0 $extended->{'0'} and $CC->[0] == $CC->[1] - 1
1937 0 0 0 $#cur and $cur[1] > $H + $add
1944 0 0 0 $extended->[$_] and $jD[$_ + !!$green_at_left]++
0 0 0 $extended->[$_] and $jD[$_ + !!$green_at_left]++ and ++$jU[$_ + !!$green_at_left - 1]
1957 0 0 0 @JUMPS > 1 and $max - $min > 1 + !!$U + !!$D
1966 0 0 0 not $green_at_left and (my $l_O = $CC->[0] - $min - 1) > 0
0 0 0 not $green_at_right and (my $r_O = $CC->[-1] - $min - 1) > 0
1995 0 0 0 $d[$_ - 1] == $d[$_] and ++$dup{$d[$_]}
2001 0 0 0 $dir == 7 and not $D[0] * $D[1]
2003 0 0 0 $sep % 2 and $seen{$sep}
0 0 0 $sep % 2 and $seen{$sep} and $seen{$sep} <= 2
0 0 0 $sep % 2 and $seen{$sep} and $seen{$sep} <= 2 and @d > 2
0 0 0 $sep % 2 and $seen{$sep} and $seen{$sep} <= 2 and @d > 2 and $seen{$sep} == (my(@eSEP) = grep(($d[$_] == $sep), 0, -1))
2053 0 0 0 $parts[-1] and $parts[-1][1]
2122 0 0 0 $b == $b1 and $e == $e1
2202 0 0 0 $line->[0] == 0 && $line->[1] == 0
0 0 0 $line->[4] == 0 && $line->[5] == 0
2223 0 0 0 $i || $closed and $corners[$i - 1][1]
2251 0 0 0 @do == 2 and not $do[1]
2254 0 0 0 $move_start && !$seg
2255 0 0 0 $move_end && $seg == $len - 1
2352 0 0 0 $x1 == $X && $y1 == $Y
4 0 0 $$traversedEdges{join $;, $x, $y, $dir}++ and not $x1 == $X && $y1 == $Y
2385 0 39 0 $edge->[$y][$x] and my $t = $$tailEdge{join $;, $x, $y}
2428 2 0 0 $stroke->[0][1] == $stroke->[-1][3] && $stroke->[0][2] == $stroke->[-1][4]
2490 0 0 0 @$stroke == 1 and not defined $stroke->[0][0]
2511 0 0 0 not ref $e and $e eq "erased"

or 2 conditions

line l !l condition
33 0 1 $ENV{'DEBUG_BITMAP2PATHS'} || 0
202 4 0 $$cntmin[$y + 2 * $dy][$x + 2 * $dx] || 0
439 0 0 shift() || ''
522 8 0 $rays[$y][$x][$dir] || (next)
537 0 0 $ddep->[0] || '.'
639 0 0 $rays[$Y][$X][$DIR][0] || ''
643 0 0 $rays[$y][$x][$dir][0] || ''
736 0 0 $T->[1] || 0
907 6 0 $cntedge[$y][$x] || 0
918 0 4 $bad || (@Zh == 1 && @good == 1 && push(@res, [$Zh[0]]) || @good == 1 && push(@res, [$good[0]]) || @maybe == 1 && push(@res, [$maybe[0], 1]))
1040 6 76 $cntedge->[$y][$x] || 0
1090 0 0 $blob[$D->[0]][$D->[1]] || 0
1103 0 0 $blob[$y + $dy1][$x + $dx1] || 0
0 0 $blob[$y1 + $dy1][$x1 + $dx1] || 0
1116 0 0 $blob[$y + $dy][$x + $dx] || 0
0 0 $blob[$y + 2 * $lastDy][$x + 2 * $lastDx] || 0
0 0 $blob[$y + $dy + $lastDy][$x + $dx + $lastDx] || 0
1140 0 0 $cntedge->[$y1][$x1] || 0
1158 6 76 $cntedge->[$y][$x] || 0
1164 0 2 $cntedge->[$y1][$x1] || 0
1168 0 4 $blob->[$y1][$x1] || 0
0 0 $cntedge->[$y1][$x1] || 0
1220 0 0 $cntBlobby[$y1][$x1] || 0
1239 0 0 $cntedge->[$y1][$x1] || 0
0 0 $cntedge->[$y][$x] || 0
1267 0 0 $cntedge->[$y2][$x2] || 0
0 0 $cntedge->[$y][$x] || 0
1312 0 0 $cntBlobby[$_->[1]][$_->[0]] || 0
1446 0 0 $cntedge->[$y1][$x1] || 0
1460 0 0 $cntBlobby->[$y][$x] || 0
1467 0 0 $cntBlobby->[$y2][$x2] || 0
1488 0 0 $cntBlobby->[$y][$x] || 0
0 0 $cntBlobby->[$y1][$x1] || 0
1515 0 0 $candDegree{join $;, $x, $y, ($dir1 + $_) % 8} || 'f'
1516 0 0 $candDegree{join $;, $x1, $y1, ($dir + $_) % 8} || 'f'
1575 0 0 $$cntedge[$y + $dy[$d]][$x + $dx[$d]] || 0
1576 0 0 $$lastedge[$y + $dy[$d]][$x + $dx[$d]] || 0
1615 6 0 $cntedge->[$y][$x] || 0
1618 0 4 $cntBlobby->[$y][$x] || 0
1869 0 0 shift() || {}
1926 0 0 grep($_, @ok) || 0
1958 0 0 $seenU{$min} || 0
0 0 $seenD{$max} || 0
2150 0 0 shift() || 0
2225 0 0 $move_start ||= [0, 0]

or 3 conditions

line l !l&&r !l&&!r condition
194 4 0 0 $$N0[($dir + 4) % 8] or $cN0min <= 2
216 0 0 0 not $N0min->[$DD] or $$N0min[($DD + 4) % 8]
233 0 0 0 !$NEAR[0][3] || $NEAR[0][4]
246 0 0 0 $$N0[($dir + 4) % 8] || !($dir & 1) && $cN0min == 3
0 0 0 $$px[$y + $dy + 2 * $DD * $dx][$x + $dx - 2 * $DD * $dy] || !($dir & 1) && $$cntmin[$y + $dy + $DD * $dx][$x + $dx - $DD * $dy] <= 3
288 0 0 0 $dir & 1 || $nnn1 || $across2 || $$N[($dir + 2) % 8] || $$N[($dir - 2) % 8]
334 0 0 0 $bad or not $dir & 1 and $$N0min[($dir + 2 * $d) % 8]
341 0 0 0 !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || $cnt->[$y][$x] < 5 && $$cnt[$y + $dy1][$x + $dx1] < 6
0 0 0 !$$px[$y - $dy1][$x - $dx1] || $cntmin->[$y][$x] + $$cntmin[$y - $dy1][$x - $dx1] < 10
0 0 0 !$$px[$y - $dy + $dy1][$x - $dx + $dx1] || $cnt->[$y][$x] + $$cnt[$y - $dy + $dy1][$x - $dx + $dx1] < 9
0 0 0 !($$px[$y + 4 * $dy1][$x + 4 * $dx1] && $$px[$y + 5 * $dy1][$x + 5 * $dx1]) || $cntmin->[$y][$x] + $$cntmin[$y + 4 * $dy1][$x + 4 * $dx1] + $$cntmin[$y + 5 * $dy1][$x + 5 * $dx1] < 15
0 0 0 !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || (grep($$px[$y + 4 * $dy1 + $_ * ($dy - $dy1)][$x + 4 * $dx1 + $_ * ($dx - $dx1)], 0, 1) || $$px[$y - $dy1][$x - $dx1]) && $$cntmin[$y + 3 * $dy1][$x + 3 * $dx1] < 6 && $$cnt[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] > 2
0 0 0 ($last = !!$$px[$y + 4 * $dy1][$x + 4 * $dx1]) || $$px[$y + 5 * $dy1 - $dy][$x + 5 * $dx1 - $dx]
364 0 0 0 ($last = !!$$px[$y + 3 * $dy1][$x + 3 * $dx1]) || $$px[$y + 4 * $dy1 - $dy][$x + 4 * $dx1 - $dx]
0 0 0 $last || !$$px[$y + 3 * $dy1 - $dy][$x + 3 * $dx1 - $dx]
0 0 0 $last || $$cntmin[$y + $dy1][$x + $dx1] < 6 && ($cntmin->[$y][$x] < 6 && ($cntmin->[$y][$x] < 5 || $$px[$y - $dy1][$x - $dx1] && $$cntmin[$y - $dy1][$x - $dx1] < 4))
524 0 4 4 $DEP or @rest
4 0 4 $DEP or @rest or $remove
563 0 0 0 $rays[$y][$x][($dir + 4) % 8] || $ER
0 0 0 $rays[$y + $dy1][$x + $dx1][$dir] || $ER
0 0 0 $rays[$y + $dy + $dy1][$x + $dx + $dx1][$dir] || $ER
604 0 0 0 $protect[$y][$x][$dir] or $2 and $rays[$y][$x][$dir][0] ne "?"
669 0 0 0 $rays[$Y + $dy1][$X + $dx1][($DIR + 2 * $rot + 4) % 8] || $ER
670 0 0 0 $rays[$Y + $dy1][$X + $dx1][($DIR + 3 * $rot + 4) % 8] || $ER
674 0 0 0 $rays[$Y + $dy1 + $dy2][$X + $dx1 + $dx2][($DIR + 2 * $rot) % 8] || $ER
684 0 0 0 not $T->[0] =~ /^(c)/i or $midLong{join $;, 2 * $X + $dx, 2 * $Y + $dy}
697 0 0 0 $1 eq 'F' || $rays[$YY][$XX][($DD - 3 * $R) % 8][0] =~ /^C/ && ($deg_corner = 1)
706 0 0 0 $1 || !$deg_corner
717 0 0 0 $rays[$YY][$XX][($DD - 3 * $R) % 8] || $ER
0 0 0 $1 ne 'C' || $rays[$YY][$XX][($DD - 3 * $R) % 8][1] == $R
743 0 0 0 !@rem_postpone || $ray_round == 1
800 0 0 0 !$p[1] || $rays[$y][$x][($dir + 4) % 8][0] eq $p[2]
873 0 0 0 $$RAYS[($dir + $rot) % 8] || $ER
889 4 0 0 $ok or $smpl->[$dir]
0 0 0 $ok or $smpl->[$dir] or 2 >= $cnt->[$y][$x] and $RAYS->[$dir][0] eq "\x{b0}" and ++$semi_bad
893 4 0 0 $Simple[$y1][$x1] or $simpleray[$y1][$x1][$dir1]
0 0 0 $Simple[$y1][$x1] or $simpleray[$y1][$x1][$dir1] or 2 >= $cnt->[$y1][$x1] and $rays[$y1][$x1][$dir1][0] eq "\x{b0}" and ++$semi_bad < 2
937 0 0 4 @Zh == 1 and @good == 1 and push @res, [$Zh[0]] or @good == 1 and push @res, [$good[0]]
0 4 0 @Zh == 1 and @good == 1 and push @res, [$Zh[0]] or @good == 1 and push @res, [$good[0]] or @maybe == 1 and push @res, [$maybe[0], 1]
970 0 0 0 $edge[$y1][$x1][$dir] || $rays[$y1][$x1][$dir][0] =~ /^[dcR]/ || $candidates_way_out{join $;, $y1, $x1}{$dir}
994 0 0 0 $updated{join $;, $x, $y, $dir}++ or $updated{join $;, $x1, $y1, $dir1}++
1005 0 0 0 @atBEG or @atEND
1021 0 0 2 @$ER != 1 || $ER->[0] ne ''
1040 0 78 4 $blob->[$y][$x] or ($cntedge->[$y][$x] || 0) != 1
1050 0 0 0 $CC || ++$marked
1097 0 0 0 $CC[0] || $CC[2]
0 0 0 $clear or $CC >= 3 and $CC[1] and $CC[0] || $CC[2]
1140 0 0 0 ($cntedge->[$y1][$x1] || 0) != 1 or $lastedge->[$y1][$x1] != $dir
1168 0 0 0 $1 ne 'c' || ($r = $rays->[$y][$x][$dir][1]) && !$rays->[$y][$x][($dir + 4 + $r) % 8]
0 0 4 1 == ($blob->[$y1][$x1] || 0) or not $dir & 1 and 1 == ($cntedge->[$y1][$x1] || 0) and 2 == abs(($lastedge->[$y1][$x1] - $dir) % 8 - 4) and $rays->[$y][$x][$dir][0] =~ /^([tBdcN])/ and $1 ne 'c' || ($r = $rays->[$y][$x][$dir][1]) && !$rays->[$y][$x][($dir + 4 + $r) % 8]
1224 0 0 0 grep((!$$cnt[$y + $_ * (2 * $dy[$dir] - $dy[$d])][$x + $_ * (2 * $dx[$dir] - $dx[$d])]), -1, 1, 2) or grep((!$$cnt[$y1 + $_ * (2 * $dy[$dir] - $dy[$d])][$x1 + $_ * (2 * $dx[$dir] - $dx[$d])]), -1, 1)
0 0 0 grep((!$$cnt[$y + $_ * (2 * $dy[$dir] - $dy[$d])][$x + $_ * (2 * $dx[$dir] - $dx[$d])]), -1, 1, 2) or grep((!$$cnt[$y1 + $_ * (2 * $dy[$dir] - $dy[$d])][$x1 + $_ * (2 * $dx[$dir] - $dx[$d])]), -1, 1) or grep(($cntE += !!$$rays[$y + $_ * (2 * $dy[$dir] - $dy[$d])][$x + $_ * (2 * $dx[$dir] - $dx[$d])][$D]), -1, 0, 1), grep(($cntE += !!$$rays[$y1 + $_ * (2 * $dy[$dir] - $dy[$d])][$x1 + $_ * (2 * $dx[$dir] - $dx[$d])][$D]), -1, 0), $cntE < 2
1365 0 0 0 !$$cntedge[$P->[1]][$P->[0]] || $$cnt[$P->[1]][$P->[0]] + !$back > 5
0 0 0 !$cntedge->[$y2][$x2] && (($cntBlobby[$y2][$x2] || 0) > 2 || $cntBlobby[$y2][$x2] && $cnt->[$y2][$x2] > 5) || ($cntBlobby[$y2][$x2] || 0) > 2 && $cnt->[$y2][$x2] > 5
1369 0 0 0 $$cntedge[$P->[1]][$P->[0]] || $cntedge->[$y2][$x2]
1373 0 0 0 $bad00 and $badD > 1 or $blobby
0 0 0 $bad00 and $badD > 1 or $blobby or $smallBlobby and $badD >= 2
1383 0 0 0 $questEdges[$y1][$x1][($dir1 + $_) % 8] || $questEdges[$y][$x][($dir + $_) % 8]
0 0 0 grep(($questEdges[$y1][$x1][($dir1 + $_) % 8] || $questEdges[$y][$x][($dir + $_) % 8]), 1, -1) or $dblCoordEdges[$y + $y1][$x + $x1] > 1
0 0 0 grep(($questEdges[$y1][$x1][($dir1 + $_) % 8] || $questEdges[$y][$x][($dir + $_) % 8]), 1, -1) or $dblCoordEdges[$y + $y1][$x + $x1] > 1 or $$midLong{join $;, $x + $x1, $y + $y1}
1454 0 0 0 @rot = grep($edge->[$y][$x][($dir1 + $_) % 8], 0, -1, 1) or @rot = grep($$midLong{join $;, 2 * $x + $dx[$dir1] + $dx[($dir1 + $_) % 8], 2 * $y + $dy[$dir1] + $dy[($dir1 + $_) % 8]}, -1, 1)
0 0 0 2 == grep($edge->[$y][$x][($dir + $_) % 8], -2, 2) || !$cntedge->[$y][$x] && 2 == grep($$edge[2 * $y - $y1][2 * $x - $x1][($dir + $_) % 8], -2, 2) && !grep($$edge[2 * $y - $y1][2 * $x - $x1][($dir + $_) % 8], 1, 0, -1) && push(@cont, [$x, $y, $dir1, 2 * $x - $x1, 2 * $y - $y1])
0 0 0 @rot = grep($edge->[$y][$x][($dir1 + $_) % 8], 0, -1, 1) or @rot = grep($$midLong{join $;, 2 * $x + $dx[$dir1] + $dx[($dir1 + $_) % 8], 2 * $y + $dy[$dir1] + $dy[($dir1 + $_) % 8]}, -1, 1) or not $dir % 2 and 2 == grep($edge->[$y][$x][($dir + $_) % 8], -2, 2) || !$cntedge->[$y][$x] && 2 == grep($$edge[2 * $y - $y1][2 * $x - $x1][($dir + $_) % 8], -2, 2) && !grep($$edge[2 * $y - $y1][2 * $x - $x1][($dir + $_) % 8], 1, 0, -1) && push(@cont, [$x, $y, $dir1, 2 * $x - $x1, 2 * $y - $y1])
1467 0 0 0 !$$midLong{join $;, $x + $x2, $y + $y2} || $cnt->[$y2][$x2] == 3
1519 0 0 0 $$edge[$_->[1]][$_->[0]][$_->[2]] or &add_edge($_, $edge, $cntedge, $lastedge)
1537 0 0 0 @atBEG or @atEND
1643 0 0 0 @Neighbors > 1 || grep($$near[$y + $dy[$Neighbors[0]]][$x + $dx[$Neighbors[0]]][($Neighbors[0] + $_) % 8], 2, 3, -2, -3)
0 0 0 @Neighbors > 3 or grep((!$$cntedge[$y + $dy[$_]][$x + $dx[$_]]), @Neighbors) and @Neighbors > 1 || grep($$near[$y + $dy[$Neighbors[0]]][$x + $dx[$Neighbors[0]]][($Neighbors[0] + $_) % 8], 2, 3, -2, -3)
1654 0 0 0 @cont > 2 or @Neighbors > 2
0 0 0 @cont > 2 or @Neighbors > 2 or grep(($$cnt[$y + $dy[$_]][$x + $dx[$_]] > 4), @Neighbors)
0 0 0 @cont > 2 or @Neighbors > 2 or grep(($$cnt[$y + $dy[$_]][$x + $dx[$_]] > 4), @Neighbors) or $L < 8 and grep((1 < abs(($L - $_) % 8 - 4)), @cont)
1660 0 0 0 $mid % 2 or grep((!$$edge[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8]), 2, -2)
1661 0 0 0 $L > 7 || 2 > abs(($L - $cont[0]) % 8 - 4)
0 0 0 $mid == $cont[0] and $L > 7 || 2 > abs(($L - $cont[0]) % 8 - 4) or ($cont[0] + 4) % 8 == $L
1664 0 0 0 $ang > 1 || $near->[$y][$x][($L + 4) % 8]
1674 0 0 0 $mid % 2 or grep((!$$edge[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8]), 2, -2)
1873 0 0 0 $green_at_left || $green_at_right
1881 0 0 0 $green_at_left or $green_at_right
1966 0 0 0 not $green_at_left and (my $l_O = $CC->[0] - $min - 1) > 0 or not $green_at_right and (my $r_O = $CC->[-1] - $min - 1) > 0
1974 0 0 0 $green_at_left || $l_O
0 0 0 $green_at_right || $r_O
2042 0 0 0 $last_r ||= $r
2181 2 0 2 $i == $#d or abs(($d[$i + 1] - $d[$i]) % 8 - 4) <= 2
2223 0 0 0 $i || $closed
2247 0 0 2 $move_start or $move_end
2279 0 0 0 $corners[$i][3] or $corners[$i + 1][2]

xor 4 conditions

line l&&r l&&!r !l&&r !l&&!r condition
233 0 0 0 0 $NEAR[0][2] ^^ $NEAR[0][3]
341 0 0 0 0 $$px[$y + 2 * $dy + 2 * $dy1][$x + 2 * $dx + 2 * $dx1] ^^ $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1]