aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gyp/pathops_unittest.gypi1
-rw-r--r--src/pathops/SkOpAngle.cpp8
-rwxr-xr-xsrc/pathops/SkOpCoincidence.cpp2
-rw-r--r--src/pathops/SkOpCoincidence.h2
-rw-r--r--src/pathops/SkPathOpsDebug.cpp45
-rw-r--r--src/pathops/SkPathOpsDebug.h2
-rw-r--r--src/pathops/SkPathOpsTSect.h91
-rw-r--r--tests/PathOpsConicQuadIntersectionTest.cpp69
-rw-r--r--tests/PathOpsCubicIntersectionTest.cpp4
-rw-r--r--tests/PathOpsSimplifyTest.cpp4
-rw-r--r--tests/PathOpsTSectDebug.h6
-rw-r--r--tools/pathops_sorter.htm33
-rw-r--r--tools/pathops_visualizer.htm1523
13 files changed, 1567 insertions, 223 deletions
diff --git a/gyp/pathops_unittest.gypi b/gyp/pathops_unittest.gypi
index 750a65a38a..15cdb9c4ae 100644
--- a/gyp/pathops_unittest.gypi
+++ b/gyp/pathops_unittest.gypi
@@ -29,6 +29,7 @@
'../tests/PathOpsBuildUseTest.cpp',
'../tests/PathOpsConicIntersectionTest.cpp',
'../tests/PathOpsConicLineIntersectionTest.cpp',
+ '../tests/PathOpsConicQuadIntersectionTest.cpp',
'../tests/PathOpsCubicConicIntersectionTest.cpp',
'../tests/PathOpsCubicIntersectionTest.cpp',
'../tests/PathOpsCubicIntersectionTestData.cpp',
diff --git a/src/pathops/SkOpAngle.cpp b/src/pathops/SkOpAngle.cpp
index db86077769..09f015c287 100644
--- a/src/pathops/SkOpAngle.cpp
+++ b/src/pathops/SkOpAngle.cpp
@@ -841,11 +841,11 @@ void SkOpAngle::setSpans() {
}
const SkOpSegment* segment = fStart->segment();
const SkPoint* pts = segment->pts();
- SkDEBUGCODE(fPart.fCurve.fVerb = SkPath::kCubic_Verb);
+ SkDEBUGCODE(fPart.fCurve.fVerb = SkPath::kCubic_Verb); // required for SkDCurve debug check
SkDEBUGCODE(fPart.fCurve[2].fX = fPart.fCurve[2].fY = fPart.fCurve[3].fX = fPart.fCurve[3].fY
- = SK_ScalarNaN);
- SkDEBUGCODE(fPart.fCurve.fVerb = segment->verb());
- segment->subDivide(fStart, fEnd, &fPart.fCurve);
+ = SK_ScalarNaN); // make the non-line part uninitialized
+ SkDEBUGCODE(fPart.fCurve.fVerb = segment->verb()); // set the curve type for real
+ segment->subDivide(fStart, fEnd, &fPart.fCurve); // set at least the line part if not more
fOriginalCurvePart = fPart.fCurve;
const SkPath::Verb verb = segment->verb();
fPart.setCurveHullSweep(verb);
diff --git a/src/pathops/SkOpCoincidence.cpp b/src/pathops/SkOpCoincidence.cpp
index d2874c3c5e..964fdc502a 100755
--- a/src/pathops/SkOpCoincidence.cpp
+++ b/src/pathops/SkOpCoincidence.cpp
@@ -1216,7 +1216,7 @@ bool SkOpCoincidence::apply() {
}
windValue = oppValue = 0;
}
-#if DEBUG_COINCIDENCE
+#if 0 && DEBUG_COINCIDENCE
SkDebugf("seg=%d span=%d windValue=%d oppValue=%d\n", segment->debugID(),
start->debugID(), windValue, oppValue);
SkDebugf("seg=%d span=%d windValue=%d oppValue=%d\n", oSegment->debugID(),
diff --git a/src/pathops/SkOpCoincidence.h b/src/pathops/SkOpCoincidence.h
index 320d9aedc4..5815196b2c 100644
--- a/src/pathops/SkOpCoincidence.h
+++ b/src/pathops/SkOpCoincidence.h
@@ -168,6 +168,8 @@ public:
return SkDEBUGRELEASE(fGlobalState->debugAngle(id), nullptr);
}
+ void debugCheckBetween() const;
+
#if DEBUG_COINCIDENCE_VERBOSE
void debugCheckValid(const char* id, SkPathOpsDebug::GlitchLog* log) const;
#endif
diff --git a/src/pathops/SkPathOpsDebug.cpp b/src/pathops/SkPathOpsDebug.cpp
index 5326addf8d..18db448f59 100644
--- a/src/pathops/SkPathOpsDebug.cpp
+++ b/src/pathops/SkPathOpsDebug.cpp
@@ -371,7 +371,7 @@ void SkPathOpsDebug::CheckHealth(SkOpContourHead* contourList, const char* id) {
SkDebugf("\n");
}
contourList->globalState()->debugSetCheckHealth(false);
-#if 0 && DEBUG_ACTIVE_SPANS
+#if 01 && DEBUG_ACTIVE_SPANS
SkDebugf("active after %s:\n", id);
ShowActiveSpans(contourList);
#endif
@@ -1846,11 +1846,9 @@ void SkOpCoincidence::debugMarkCollapsed(const char* id, SkPathOpsDebug::GlitchL
#endif
void SkCoincidentSpans::debugShow() const {
- SkDebugf("%s - id=%d t=%1.9g tEnd=%1.9g\n", __FUNCTION__,
- coinPtTStart()->segment()->debugID(),
+ SkDebugf("coinSpan - id=%d t=%1.9g tEnd=%1.9g\n", coinPtTStart()->segment()->debugID(),
coinPtTStart()->fT, coinPtTEnd()->fT);
- SkDebugf("%s + id=%d t=%1.9g tEnd=%1.9g\n", __FUNCTION__,
- oppPtTStart()->segment()->debugID(),
+ SkDebugf("coinSpan + id=%d t=%1.9g tEnd=%1.9g\n", oppPtTStart()->segment()->debugID(),
oppPtTStart()->fT, oppPtTEnd()->fT);
}
@@ -1865,7 +1863,7 @@ void SkOpCoincidence::debugShowCoincidence() const {
}
#if DEBUG_COINCIDENCE
-static void DebugValidate(const SkOpSpanBase* next, const SkOpSpanBase* end,
+static void DebugCheckBetween(const SkOpSpanBase* next, const SkOpSpanBase* end,
double oStart, double oEnd, const SkOpSegment* oSegment,
const char* id, SkPathOpsDebug::GlitchLog* log) {
SkASSERT(next != end);
@@ -1986,10 +1984,29 @@ static void DebugValidate(const SkCoincidentSpans* head, const SkCoincidentSpans
SkASSERT(coin->coinPtTEnd()->span()->ptT() == coin->coinPtTEnd());
SkASSERT(coin->oppPtTStart()->span()->ptT() == coin->oppPtTStart());
SkASSERT(coin->oppPtTEnd()->span()->ptT() == coin->oppPtTEnd());
- DebugValidate(coin->coinPtTStart()->span(), coin->coinPtTEnd()->span(),
+ coin = coin->next();
+ }
+ DebugCheckOverlapTop(head, opt, id, log);
+}
+#endif
+
+void SkOpCoincidence::debugValidate() const {
+#if DEBUG_COINCIDENCE
+ DebugValidate(fHead, fTop, nullptr, nullptr);
+ DebugValidate(fTop, nullptr, nullptr, nullptr);
+#endif
+}
+
+#if DEBUG_COINCIDENCE
+static void DebugCheckBetween(const SkCoincidentSpans* head, const SkCoincidentSpans* opt,
+ const char* id, SkPathOpsDebug::GlitchLog* log) {
+ // look for pts inside coincident spans that are not inside the opposite spans
+ const SkCoincidentSpans* coin = head;
+ while (coin) {
+ DebugCheckBetween(coin->coinPtTStart()->span(), coin->coinPtTEnd()->span(),
coin->oppPtTStart()->fT, coin->oppPtTEnd()->fT, coin->oppPtTStart()->segment(),
id, log);
- DebugValidate(coin->oppPtTStart()->span(), coin->oppPtTEnd()->span(),
+ DebugCheckBetween(coin->oppPtTStart()->span(), coin->oppPtTEnd()->span(),
coin->coinPtTStart()->fT, coin->coinPtTEnd()->fT, coin->coinPtTStart()->segment(),
id, log);
coin = coin->next();
@@ -1998,13 +2015,13 @@ static void DebugValidate(const SkCoincidentSpans* head, const SkCoincidentSpans
}
#endif
-void SkOpCoincidence::debugValidate() const {
+void SkOpCoincidence::debugCheckBetween() const {
#if DEBUG_COINCIDENCE
- // if (fGlobalState->debugCheckHealth()) {
-// return;
-// }
- DebugValidate(fHead, fTop, nullptr, nullptr);
- DebugValidate(fTop, nullptr, nullptr, nullptr);
+ if (fGlobalState->debugCheckHealth()) {
+ return;
+ }
+ DebugCheckBetween(fHead, fTop, nullptr, nullptr);
+ DebugCheckBetween(fTop, nullptr, nullptr, nullptr);
#endif
}
diff --git a/src/pathops/SkPathOpsDebug.h b/src/pathops/SkPathOpsDebug.h
index f0e384a7e3..0525c41a59 100644
--- a/src/pathops/SkPathOpsDebug.h
+++ b/src/pathops/SkPathOpsDebug.h
@@ -77,7 +77,7 @@
#define DEBUG_ALIGNMENT 0
#define DEBUG_ANGLE 1
#define DEBUG_ASSEMBLE 1
-#define DEBUG_COINCIDENCE 1
+#define DEBUG_COINCIDENCE 01
#define DEBUG_COINCIDENCE_ORDER 0 // tight arc quads may generate out-of-order coincdence spans
#define DEBUG_COINCIDENCE_VERBOSE 0
#define DEBUG_CUBIC_BINARY_SEARCH 0
diff --git a/src/pathops/SkPathOpsTSect.h b/src/pathops/SkPathOpsTSect.h
index f84aaaa6b7..a04a4e442f 100644
--- a/src/pathops/SkPathOpsTSect.h
+++ b/src/pathops/SkPathOpsTSect.h
@@ -31,29 +31,29 @@ public:
#ifdef SK_DEBUG
this->fPerpPt.fX = this->fPerpPt.fY = SK_ScalarNaN;
this->fPerpT = SK_ScalarNaN;
- this->fCoincident = 0xFF;
+ this->fMatch = 0xFF;
#endif
}
char dumpIsCoincidentStr() const;
void dump() const;
- bool isCoincident() const {
- SkASSERT(!!fCoincident == fCoincident);
- return SkToBool(fCoincident);
+ bool isMatch() const {
+ SkASSERT(!!fMatch == fMatch);
+ return SkToBool(fMatch);
}
void init() {
fPerpT = -1;
- fCoincident = false;
+ fMatch = false;
fPerpPt.fX = fPerpPt.fY = SK_ScalarNaN;
}
void markCoincident() {
- if (!fCoincident) {
+ if (!fMatch) {
fPerpT = -1;
}
- fCoincident = true;
+ fMatch = true;
}
const SkDPoint& perpPt() const {
@@ -69,7 +69,7 @@ public:
private:
SkDPoint fPerpPt;
double fPerpT; // perpendicular intersection on opposite curve
- SkOpDebugBool fCoincident;
+ SkOpDebugBool fMatch;
};
template<typename TCurve, typename OppCurve> class SkTSect;
@@ -330,6 +330,8 @@ private:
SkTSpan<TCurve, OppCurve>* fCoincident;
SkTSpan<TCurve, OppCurve>* fDeleted;
int fActiveCount;
+ bool fRemovedStartT;
+ bool fRemovedEndT;
SkDEBUGCODE(SkOpGlobalState* fDebugGlobalState);
SkDEBUGCODE(SkTSect<OppCurve, TCurve>* fOppSect);
PATH_OPS_DEBUG_T_SECT_CODE(int fID);
@@ -372,9 +374,9 @@ void SkTCoincident<TCurve, OppCurve>::setPerp(const TCurve& c1, double t,
t, cPt.fX, cPt.fY,
cPt.approximatelyEqual(fPerpPt) ? "==" : "!=", fPerpT, fPerpPt.fX, fPerpPt.fY);
#endif
- fCoincident = cPt.approximatelyEqual(fPerpPt);
+ fMatch = cPt.approximatelyEqual(fPerpPt);
#if DEBUG_T_SECT
- if (fCoincident) {
+ if (fMatch) {
SkDebugf(""); // allow setting breakpoint
}
#endif
@@ -801,11 +803,11 @@ void SkTSpan<TCurve, OppCurve>::validate() const {
SkASSERT(fStartT <= fEndT);
SkASSERT(fBounded || fCollapsed == 0xFF);
if (fHasPerp) {
- if (fCoinStart.isCoincident()) {
+ if (fCoinStart.isMatch()) {
validatePerpT(fCoinStart.perpT());
validatePerpPt(fCoinStart.perpT(), fCoinStart.perpPt());
}
- if (fCoinEnd.isCoincident()) {
+ if (fCoinEnd.isMatch()) {
validatePerpT(fCoinEnd.perpT());
validatePerpPt(fCoinEnd.perpT(), fCoinEnd.perpPt());
}
@@ -926,7 +928,7 @@ bool SkTSect<TCurve, OppCurve>::binarySearchCoin(SkTSect<OppCurve, TCurve>* sect
}
last = work.fPart[0];
work.fCoinStart.setPerp(fCurve, work.fStartT, last, opp);
- if (work.fCoinStart.isCoincident()) {
+ if (work.fCoinStart.isMatch()) {
#if DEBUG_T_SECT
work.validatePerpPt(work.fCoinStart.perpT(), work.fCoinStart.perpPt());
#endif
@@ -1083,7 +1085,7 @@ void SkTSect<TCurve, OppCurve>::computePerpendiculars(SkTSect<OppCurve, TCurve>*
} else {
work->fCoinStart.setPerp(fCurve, work->fStartT, work->fPart[0], opp);
}
- if (work->fCoinStart.isCoincident()) {
+ if (work->fCoinStart.isMatch()) {
double perpT = work->fCoinStart.perpT();
if (sect2->coincidentHasT(perpT)) {
work->fCoinStart.init();
@@ -1092,7 +1094,7 @@ void SkTSect<TCurve, OppCurve>::computePerpendiculars(SkTSect<OppCurve, TCurve>*
}
}
work->fCoinEnd.setPerp(fCurve, work->fEndT, work->fPart[TCurve::kPointLast], opp);
- if (work->fCoinEnd.isCoincident()) {
+ if (work->fCoinEnd.isMatch()) {
double perpT = work->fCoinEnd.perpT();
if (sect2->coincidentHasT(perpT)) {
work->fCoinEnd.init();
@@ -1175,9 +1177,9 @@ bool SkTSect<TCurve, OppCurve>::extractCoincident(
double oppStartT SK_INIT_TO_AVOID_WARNING;
double oppEndT SK_INIT_TO_AVOID_WARNING;
SkTSpan<TCurve, OppCurve>* prev = first->fPrev;
- SkASSERT(first->fCoinStart.isCoincident());
+ SkASSERT(first->fCoinStart.isMatch());
SkTSpan<OppCurve, TCurve>* oppFirst = first->findOppT(first->fCoinStart.perpT());
- SkOPASSERT(last->fCoinEnd.isCoincident());
+ SkOPASSERT(last->fCoinEnd.isMatch());
bool oppMatched = first->fCoinStart.perpT() < first->fCoinEnd.perpT();
double coinStart;
SkDEBUGCODE(double coinEnd);
@@ -1208,7 +1210,7 @@ bool SkTSect<TCurve, OppCurve>::extractCoincident(
}
// FIXME: incomplete : if we're not at the end, find end of coin
SkTSpan<OppCurve, TCurve>* oppLast;
- SkOPASSERT(last->fCoinEnd.isCoincident());
+ SkOPASSERT(last->fCoinEnd.isMatch());
oppLast = last->findOppT(last->fCoinEnd.perpT());
SkDEBUGCODE(coinEnd = last->fEndT);
#ifdef SK_DEBUG
@@ -1279,13 +1281,13 @@ SkTSpan<TCurve, OppCurve>* SkTSect<TCurve, OppCurve>::findCoincidentRun(
first = nullptr;
// find the first fully coincident span
do {
- if (work->fCoinStart.isCoincident()) {
+ if (work->fCoinStart.isMatch()) {
#if DEBUG_T_SECT
work->validatePerpT(work->fCoinStart.perpT());
work->validatePerpPt(work->fCoinStart.perpT(), work->fCoinStart.perpPt());
#endif
SkASSERT(work->hasOppT(work->fCoinStart.perpT()));
- if (!work->fCoinEnd.isCoincident()) {
+ if (!work->fCoinEnd.isMatch()) {
break;
}
lastCandidate = work;
@@ -1532,7 +1534,7 @@ int SkTSect<TCurve, OppCurve>::linesIntersect(SkTSpan<TCurve, OppCurve>* span,
workPt = fCurve.ptAtT(workT);
coinW.setPerp(fCurve, workT, workPt, opp->fCurve);
double perpT = coinW.perpT();
- if (coinW.isCoincident() ? !between(oppSpan->fStartT, perpT, oppSpan->fEndT) : perpT < 0) {
+ if (coinW.isMatch() ? !between(oppSpan->fStartT, perpT, oppSpan->fEndT) : perpT < 0) {
continue;
}
SkDVector perpW = workPt - coinW.perpPt();
@@ -1628,7 +1630,7 @@ void SkTSect<TCurve, OppCurve>::mergeCoincidence(SkTSect<OppCurve, TCurve>* sect
SkDPoint midPt = fCurve.ptAtT(midT);
SkTCoincident<TCurve, OppCurve> coin;
coin.setPerp(fCurve, midT, midPt, sect2->fCurve);
- if (coin.isCoincident()) {
+ if (coin.isMatch()) {
smaller->fEndT = larger->fEndT;
smaller->fCoinEnd = larger->fCoinEnd;
if (largerPrior) {
@@ -1728,6 +1730,12 @@ void SkTSect<TCurve, OppCurve>::removeCoincident(SkTSpan<TCurve, OppCurve>* span
template<typename TCurve, typename OppCurve>
bool SkTSect<TCurve, OppCurve>::removeSpan(SkTSpan<TCurve, OppCurve>* span) {
+ if (!span->fStartT) {
+ fRemovedStartT = true;
+ }
+ if (1 == span->fEndT) {
+ fRemovedEndT = true;
+ }
this->unlinkSpan(span);
return this->markSpanGone(span);
}
@@ -2126,6 +2134,8 @@ void SkTSect<TCurve, OppCurve>::BinarySearch(SkTSect<TCurve, OppCurve>* sect1,
break;
}
SkTSpan<OppCurve, TCurve>* largest2 = sect2->boundsMax();
+ sect1->fRemovedStartT = sect1->fRemovedEndT = false;
+ sect2->fRemovedStartT = sect2->fRemovedEndT = false;
// split it
if (!largest2 || (largest1 && (largest1->fBoundsMax > largest2->fBoundsMax
|| (!largest1->fCollapsed && largest2->fCollapsed)))) {
@@ -2214,10 +2224,10 @@ void SkTSect<TCurve, OppCurve>::BinarySearch(SkTSect<TCurve, OppCurve>* sect1,
}
SkASSERT(sect2->fCoincident); // courtesy check : coincidence only looks at sect 1
do {
- if (!coincident->fCoinStart.isCoincident()) {
+ if (!coincident->fCoinStart.isMatch()) {
continue;
}
- if (!coincident->fCoinEnd.isCoincident()) {
+ if (!coincident->fCoinEnd.isMatch()) {
continue;
}
int index = intersections->insertCoincident(coincident->fStartT,
@@ -2231,6 +2241,35 @@ void SkTSect<TCurve, OppCurve>::BinarySearch(SkTSect<TCurve, OppCurve>* sect1,
}
int zeroOneSet = EndsEqual(sect1, sect2, intersections);
if (!sect1->fHead || !sect2->fHead) {
+ // if the final iteration contains an end (0 or 1),
+ if (sect1->fRemovedStartT && !(zeroOneSet & kZeroS1Set)) {
+ SkTCoincident<TCurve, OppCurve> perp; // intersect perpendicular with opposite curve
+ perp.setPerp(sect1->fCurve, 0, sect1->fCurve.fPts[0], sect2->fCurve);
+ if (perp.isMatch()) {
+ intersections->insert(0, perp.perpT(), perp.perpPt());
+ }
+ }
+ if (sect1->fRemovedEndT && !(zeroOneSet & kOneS1Set)) {
+ SkTCoincident<TCurve, OppCurve> perp;
+ perp.setPerp(sect1->fCurve, 1, sect1->fCurve.fPts[TCurve::kPointLast], sect2->fCurve);
+ if (perp.isMatch()) {
+ intersections->insert(1, perp.perpT(), perp.perpPt());
+ }
+ }
+ if (sect2->fRemovedStartT && !(zeroOneSet & kZeroS2Set)) {
+ SkTCoincident<OppCurve, TCurve> perp;
+ perp.setPerp(sect2->fCurve, 0, sect2->fCurve.fPts[0], sect1->fCurve);
+ if (perp.isMatch()) {
+ intersections->insert(perp.perpT(), 0, perp.perpPt());
+ }
+ }
+ if (sect2->fRemovedEndT && !(zeroOneSet & kOneS2Set)) {
+ SkTCoincident<OppCurve, TCurve> perp;
+ perp.setPerp(sect2->fCurve, 1, sect2->fCurve.fPts[OppCurve::kPointLast], sect1->fCurve);
+ if (perp.isMatch()) {
+ intersections->insert(perp.perpT(), 1, perp.perpPt());
+ }
+ }
return;
}
sect1->recoverCollapsed();
@@ -2279,7 +2318,7 @@ void SkTSect<TCurve, OppCurve>::BinarySearch(SkTSect<TCurve, OppCurve>* sect1,
}
SkClosestSect<TCurve, OppCurve> closest;
do {
- while (result1 && result1->fCoinStart.isCoincident() && result1->fCoinEnd.isCoincident()) {
+ while (result1 && result1->fCoinStart.isMatch() && result1->fCoinEnd.isMatch()) {
result1 = result1->fNext;
}
if (!result1) {
@@ -2305,7 +2344,7 @@ void SkTSect<TCurve, OppCurve>::BinarySearch(SkTSect<TCurve, OppCurve>* sect1,
// intersect perpendicular with opposite curve
SkTCoincident<TCurve, OppCurve> perp;
perp.setPerp(sect1->fCurve, midT, midPt, sect2->fCurve);
- if (!perp.isCoincident()) {
+ if (!perp.isMatch()) {
++index;
continue;
}
diff --git a/tests/PathOpsConicQuadIntersectionTest.cpp b/tests/PathOpsConicQuadIntersectionTest.cpp
new file mode 100644
index 0000000000..5996cf804c
--- /dev/null
+++ b/tests/PathOpsConicQuadIntersectionTest.cpp
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+#include "PathOpsTestCommon.h"
+#include "SkIntersections.h"
+#include "SkPathOpsConic.h"
+#include "SkPathOpsQuad.h"
+#include "SkReduceOrder.h"
+#include "Test.h"
+
+static struct conicQuad {
+ SkDConic conic;
+ SkDQuad quad;
+} conicQuadTests[] = {
+ {{{{{494.348663,224.583771}, {494.365143,224.633194}, {494.376404,224.684067}}}, 0.998645842f},
+ {{{494.30481,224.474213}, {494.334961,224.538284}, {494.355774,224.605927}}}},
+
+ {{{{{494.348663,224.583771}, {494.365143,224.633194}, {494.376404,224.684067}}}, 0.998645842f},
+ {{{494.355774f, 224.605927f}, {494.363708f, 224.631714f}, {494.370148f, 224.657471f}}}},
+};
+
+static const int conicQuadTests_count = (int) SK_ARRAY_COUNT(conicQuadTests);
+
+static void conicQuadIntersection(skiatest::Reporter* reporter, int index) {
+ const SkDConic& conic = conicQuadTests[index].conic;
+ SkASSERT(ValidConic(conic));
+ const SkDQuad& quad = conicQuadTests[index].quad;
+ SkASSERT(ValidQuad(quad));
+ SkReduceOrder reduce1;
+ SkReduceOrder reduce2;
+ int order1 = reduce2.reduce(conic.fPts);
+ int order2 = reduce1.reduce(quad);
+ if (order2 != 3) {
+ SkDebugf("[%d] conic order=%d\n", index, order1);
+ REPORTER_ASSERT(reporter, 0);
+ }
+ if (order1 != 3) {
+ SkDebugf("[%d] quad order=%d\n", index, order2);
+ REPORTER_ASSERT(reporter, 0);
+ }
+ SkIntersections i;
+ int roots = i.intersect(conic, quad);
+ for (int pt = 0; pt < roots; ++pt) {
+ double tt1 = i[0][pt];
+ SkDPoint xy1 = conic.ptAtT(tt1);
+ double tt2 = i[1][pt];
+ SkDPoint xy2 = quad.ptAtT(tt2);
+ if (!xy1.approximatelyEqual(xy2)) {
+ SkDebugf("%s [%d,%d] x!= t1=%g (%g,%g) t2=%g (%g,%g)\n",
+ __FUNCTION__, index, pt, tt1, xy1.fX, xy1.fY, tt2, xy2.fX, xy2.fY);
+ }
+ REPORTER_ASSERT(reporter, xy1.approximatelyEqual(xy2));
+ }
+ reporter->bumpTestCount();
+}
+
+DEF_TEST(PathOpsConicQuadIntersection, reporter) {
+ for (int index = 0; index < conicQuadTests_count; ++index) {
+ conicQuadIntersection(reporter, index);
+ reporter->bumpTestCount();
+ }
+}
+
+DEF_TEST(PathOpsConicQuadIntersectionOneOff, reporter) {
+ conicQuadIntersection(reporter, 1);
+}
diff --git a/tests/PathOpsCubicIntersectionTest.cpp b/tests/PathOpsCubicIntersectionTest.cpp
index 9bf60b7e39..07852bca9a 100644
--- a/tests/PathOpsCubicIntersectionTest.cpp
+++ b/tests/PathOpsCubicIntersectionTest.cpp
@@ -404,10 +404,10 @@ static void oneOff(skiatest::Reporter* reporter, const SkDCubic& cubic1, const S
SkDebugf("sect%d,\n", index);
}
#endif
- if (coin && intersections.used() != 2) {
+ if (coin && intersections.used() < 2) {
SkDebugf("");
}
- REPORTER_ASSERT(reporter, !coin || intersections.used() == 2);
+ REPORTER_ASSERT(reporter, !coin || intersections.used() >= 2);
double tt1, tt2;
SkDPoint xy1, xy2;
for (int pt3 = 0; pt3 < intersections.used(); ++pt3) {
diff --git a/tests/PathOpsSimplifyTest.cpp b/tests/PathOpsSimplifyTest.cpp
index 55f0447bae..2e469854fa 100644
--- a/tests/PathOpsSimplifyTest.cpp
+++ b/tests/PathOpsSimplifyTest.cpp
@@ -5331,7 +5331,7 @@ static void tiger8b_h_1(skiatest::Reporter* reporter, const char* filename) {
#if DEBUG_UNDER_DEVELOPMENT // tiger
return;
#endif
- uint64_t testlines = 0x000000201304b4a3; // best so far: 0x000000201304b4a3
+ uint64_t testlines = 0x000000000f27b9e3; // best so far: 0x000000201304b4a3
tiger8b_x(reporter, filename, testlines);
}
@@ -5870,7 +5870,7 @@ static void testQuads73(skiatest::Reporter* reporter, const char* filename) {
}
static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0;
-static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0;
+static void (*firstTest)(skiatest::Reporter* , const char* filename) = tiger8b_h_1;
static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
static TestDesc tests[] = {
diff --git a/tests/PathOpsTSectDebug.h b/tests/PathOpsTSectDebug.h
index 4e04db794b..e18e0f89e6 100644
--- a/tests/PathOpsTSectDebug.h
+++ b/tests/PathOpsTSectDebug.h
@@ -9,16 +9,16 @@
template<typename TCurve, typename OppCurve>
char SkTCoincident<TCurve, OppCurve>::dumpIsCoincidentStr() const {
- if (!!fCoincident != fCoincident) {
+ if (!!fMatch != fMatch) {
return '?';
}
- return fCoincident ? '*' : 0;
+ return fMatch ? '*' : 0;
}
template<typename TCurve, typename OppCurve>
void SkTCoincident<TCurve, OppCurve>::dump() const {
SkDebugf("t=%1.9g pt=(%1.9g,%1.9g)%s\n", fPerpT, fPerpPt.fX, fPerpPt.fY,
- fCoincident ? " coincident" : "");
+ fMatch ? " match" : "");
}
template<typename TCurve, typename OppCurve>
diff --git a/tools/pathops_sorter.htm b/tools/pathops_sorter.htm
index 0983b704dc..d2d90da8bc 100644
--- a/tools/pathops_sorter.htm
+++ b/tools/pathops_sorter.htm
@@ -6,42 +6,17 @@
<title></title>
<div style="height:0">
-<div id="perp">
-{{{130.0427549999999997, 11417.41309999999976}, {130.2331240000000037, 11418.3192999999992}, {131.0370790000000056, 11419}, {132, 11419}}},
-{{{132, 11419}, {130.8954319999999996, 11419}, {130, 11418.10449999999946}, {130, 11417}}},
+<div id="cubics">
+{{{317, 711}, {322.522857666015625, 711}, {327, 715.4771728515625}, {327, 721}}},
+{{{324.071075439453125, 713.928955078125}, {324.4051513671875, 714.26300048828125}, {324.715667724609375, 714.62060546875}, {325, 714.9990234375}}},
</div>
-<div id="quads">
-{{{-0.001019871095195412636, -0.008523519150912761688}, {-0.005396408028900623322, -0.005396373569965362549}, {-0.02855382487177848816, -0.02855364233255386353}}},
-{{{-0.004567248281091451645, -0.01482933573424816132}, {-0.01142475008964538574, -0.01140109263360500336}, {-0.02852955088019371033, -0.02847047336399555206}}},
- </div>
-
-<div id="both">
-{{fX=0.000000000 fY=0.000000000 }, {fX=494.350159 fY=228.773712 }, {fX=493.191650 fY=226.887451 }}
-{{fX=0.000000000 fY=0.000000000 } {fX=492.680206 fY=228.000900 } {fX=493.193817 fY=226.897568 }
-{{fX=493.193817 fY=226.897568 } {fX=493.195557 fY=226.893829 } {fX=493.191650 fY=226.887451 }
- </div>
-
-<div id="startguy">
-{{fX=0.000000000 fY=0.000000000 }, {fX=494.350159 fY=228.773712 }, {fX=493.191650 fY=226.887451 }}
-{{fX=0.000000000 fY=0.000000000 }, {fX=494.350159 fY=228.773712 }, {fX=493.191650 fY=226.887451 }}
- </div>
-
-<div id="splitted">
-{{fX=0.000000000 fY=0.000000000 } {fX=492.680206 fY=228.000900 } {fX=493.193817 fY=226.897568 }
-{{fX=493.193817 fY=226.897568 } {fX=493.195557 fY=226.893829 } {fX=493.191650 fY=226.887451 }
- </div>
-
</div>
<script type="text/javascript">
var testDivs = [
- perp,
- quads,
- both,
- startguy,
- splitted
+ cubics
];
var decimal_places = 3;
diff --git a/tools/pathops_visualizer.htm b/tools/pathops_visualizer.htm
index 5cec64f5bf..b666079431 100644
--- a/tools/pathops_visualizer.htm
+++ b/tools/pathops_visualizer.htm
@@ -2,149 +2,1363 @@
<head>
<div height="0" hidden="true">
-<div id="loop17">
-seg=1 {{{1, 2}, {0, 3}, {-0.333333343f, 3.33333325f}, {0.833333373f, 3.5f}}}
-seg=2 {{{0.833333373f, 3.5f}, {1, 2}}}
-op sect
-seg=3 {{{0, 3}, {-0.333333343f, 3.33333325f}, {0.833333373f, 3.5f}, {1, 2}}}
-seg=4 {{{1, 2}, {0, 3}}}
-debugShowCubicLineIntersection wtTs[0]=0 {{{0,3}, {-0.333333343,3.33333325}, {0.833333373,3.5}, {1,2}}} {{0,3}} wtTs[1]=1 {{1,2}} wnTs[0]=1 {{{1,2}, {0,3}}} wnTs[1]=0
-id=1 1=(0,1) [4,2] id=2 2=(0,0.5) [1] 4=(0.5,1) [1]
-id=1 1=(0,0.5) [4] 3=(0.5,1) [2,4] id=2 2=(0,0) [3] 4=(0.5,1) [3,1]
-id=1 1=(0,0.5) [4] 3=(0.5,0.75) [4] 5=(1,1) [2] id=2 2=(0,0) [5] 4=(0.5,1) [3,1]
-id=1 1=(0,0.5) [4] 5=(1,1) [2] id=2 2=(0,0) [5] 4=(0.5,0.75) [1]
-id=1 7=(0.25,0.5) [4] 5=(1,1) [2] id=2 2=(0,0) [5] 4=(0.5,0.75) [7]
-id=1 7=(0.25,0.375) [4] 9=(0.375,0.5) [4] 5=(1,1) [2] id=2 2=(0,0) [5] 4=(0.5,0.75) [9,7]
-id=1 7=(0.25,0.375) [8,4] 5=(1,1) [2] id=2 2=(0,0) [5] 4=(0.5,0.625) [7] 8=(0.625,0.75) [7]
-id=1 7=(0.25,0.375) [10,8] 5=(1,1) [2] id=2 2=(0,0) [5] 10=(0.5625,0.625) [7] 8=(0.625,0.75) [7]
-id=1 11=(0.3125,0.375) [8] 5=(1,1) [2] id=2 2=(0,0) [5] 8=(0.625,0.75) [11]
-id=1 11=(0.3125,0.375) [8] 5=(1,1) [2] id=2 2=(0,0) [5] 8=(0.625,0.6875) [11]
-id=1 13=(0.34375,0.375) [8] 5=(1,1) [2] id=2 2=(0,0) [5] 8=(0.625,0.6875) [13]
-id=1 13=(0.34375,0.375) [8] 5=(1,1) [2] id=2 2=(0,0) [5] 8=(0.625,0.65625) [13]
-id=1 15=(0.359375,0.375) [8] 5=(1,1) [2] id=2 2=(0,0) [5] 8=(0.625,0.65625) [15]
-id=1 15=(0.359375,0.375) [8] 5=(1,1) [2] id=2 2=(0,0) [5] 8=(0.625,0.640625) [15]
-id=1 15=(0.359375,0.367188) [8] 17=(0.367188,0.375) [8] 5=(1,1) [2] id=2 2=(0,0) [5] 8=(0.625,0.640625) [17,15]
-id=1 15=(0.359375,0.367188) [18] 5=(1,1) [2] id=2 2=(0,0) [5] 18=(0.632813,0.640625) [15]
-id=1 19=(0.363281,0.367188) [18] 5=(1,1) [2] id=2 2=(0,0) [5] 18=(0.632813,0.640625) [19]
-setPerp t=0.36328125 cPt=(0.110739922,3.22537946) != oppT=0.627603681 fPerpPt=(0.110965509,3.21864052)
-setPerp t=0.3671875 cPt=(0.115765816,3.22551414) != oppT=0.636601379 fPerpPt=(0.115710094,3.22827643)
-setPerp t=0.6328125 cPt=(0.113641506,3.22423955) != oppT=0.363729545 fPerpPt=(0.111313976,3.22539824)
-setPerp t=0.63470694 cPt=(0.114662928,3.22626175) != oppT=0.367452497 fPerpPt=(0.116108709,3.2255209)
-setPerp t=0.635654159 cPt=(0.115183291,3.22727003) != oppT=0.369275918 fPerpPt=(0.118474752,3.22555923)
-setPerp t=0.636127769 cPt=(0.115445887,3.22777346) != oppT=0.370178237 fPerpPt=(0.119649848,3.22557288)
-setPerp t=0.636364574 cPt=(0.115577789,3.228025) != oppT=0.370627065 fPerpPt=(0.120235406,3.22557836)
-setPerp t=0.636482977 cPt=(0.115643891,3.22815073) != oppT=0.370850898 fPerpPt=(0.120527686,3.22558077)
-setPerp t=0.636542178 cPt=(0.11567698,3.22821358) != oppT=0.370962669 fPerpPt=(0.120673701,3.22558189)
-setPerp t=0.636571779 cPt=(0.115693534,3.22824501) != oppT=0.371018519 fPerpPt=(0.120746678,3.22558243)
-setPerp t=0.636586579 cPt=(0.115701813,3.22826072) != oppT=0.371046435 fPerpPt=(0.120783158,3.22558269)
-setPerp t=0.636593979 cPt=(0.115705954,3.22826857) != oppT=0.37106039 fPerpPt=(0.120801396,3.22558282)
-setPerp t=0.636597679 cPt=(0.115708024,3.2282725) != oppT=0.371067368 fPerpPt=(0.120810515,3.22558289)
-setPerp t=0.636599529 cPt=(0.115709059,3.22827446) != oppT=0.371070856 fPerpPt=(0.120815074,3.22558292)
-setPerp t=0.636600454 cPt=(0.115709577,3.22827545) != oppT=0.3710726 fPerpPt=(0.120817354,3.22558294)
-setPerp t=0.636600917 cPt=(0.115709835,3.22827594) != oppT=0.371073472 fPerpPt=(0.120818494,3.22558294)
-setPerp t=0.636601148 cPt=(0.115709965,3.22827618) != oppT=0.371073908 fPerpPt=(0.120819063,3.22558295)
-setPerp t=0.636601264 cPt=(0.11571003,3.2282763) != oppT=0.371074126 fPerpPt=(0.120819348,3.22558295)
-setPerp t=0.636601322 cPt=(0.115710062,3.22827637) != oppT=0.371074235 fPerpPt=(0.120819491,3.22558295)
-setPerp t=0.63660135 cPt=(0.115710078,3.2282764) != oppT=0.37107429 fPerpPt=(0.120819562,3.22558295)
-setPerp t=0.636601365 cPt=(0.115710086,3.22827641) != oppT=0.371074317 fPerpPt=(0.120819598,3.22558295)
-setPerp t=0.636601372 cPt=(0.11571009,3.22827642) != oppT=0.371074331 fPerpPt=(0.120819616,3.22558295)
-setPerp t=0.636601376 cPt=(0.115710092,3.22827642) != oppT=0.371074338 fPerpPt=(0.120819624,3.22558295)
-setPerp t=0.636601378 cPt=(0.115710093,3.22827643) != oppT=0.371074341 fPerpPt=(0.120819629,3.22558295)
-setPerp t=0.636601378 cPt=(0.115710094,3.22827643) != oppT=0.371074343 fPerpPt=(0.120819631,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819632,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-setPerp t=0.636601379 cPt=(0.115710094,3.22827643) != oppT=0.371074344 fPerpPt=(0.120819633,3.22558295)
-id=1 5=(1,1) [2] id=2 2=(0,0) [5]
-debugShowCubicIntersection wtTs[0]=1 {{{0,3}, {-0.333333343,3.33333325}, {0.833333373,3.5}, {1,2}}} {{1,2}} wnTs[0]=0 {{{1,2}, {0,3}, {-0.333333343,3.33333325}, {0.833333373,3.5}}}
-debugShowCubicLineIntersection wtTs[0]=1 {{{0,3}, {-0.333333343,3.33333325}, {0.833333373,3.5}, {1,2}}} {{1,2}} wnTs[0]=1 {{{0.833333373,3.5}, {1,2}}}
-debugShowCubicLineIntersection wtTs[0]=0 {{{1,2}, {0,3}, {-0.333333343,3.33333325}, {0.833333373,3.5}}} {{1,2}} wnTs[0]=0 {{{1,2}, {0,3}}}
-debugShowLineIntersection wtTs[0]=0 {{{1,2}, {0,3}}} {{1,2}} wnTs[0]=1 {{{0.833333373,3.5}, {1,2}}}
-debugShowCubicLineIntersection wtTs[0]=0 {{{1,2}, {0,3}, {-0.333333343,3.33333325}, {0.833333373,3.5}}} {{1,2}} wtTs[1]=1 {{0.833333373,3.5}} wnTs[0]=1 {{{0.833333373,3.5}, {1,2}}} wnTs[1]=0
------------------------------------ start
------------------------------------ addExpanded
------------------------------------ moveMultiples
------------------------------------ moveNearby
------------------------------------ addEndMovedSpans
------------------------------------ addMissing2
------------------------------------ moveNearby2
------------------------------------ expand2
------------------------------------ addExpanded3
------------------------------------ mark1
------------------------------------ missingCoincidence2
+Skia UnitTests: --match PathOpsSimplify$ --resourcePath resources/ SK_DEBUG
+
+<div id="tiger8b_h_1">
+seg=1 {{{{494.348663f, 224.583771f}, {494.365143f, 224.633194f}, {494.376404f, 224.684067f}}}, 0.998645842f}
+seg=2 {{{494.376404f, 224.684067f}, {494.005188f, 224.055679f}, {494.019165f, 224.046982f}}}
+seg=3 {{{494.019165f, 224.046982f}, {494.029083f, 224.040833f}, {494.232056f, 224.345306f}}}
+seg=4 {{{494.232056f, 224.345306f}, {494.273193f, 224.406982f}, {494.30481f, 224.474213f}}}
+seg=5 {{{494.30481f, 224.474213f}, {494.334961f, 224.538284f}, {494.355774f, 224.605927f}}}
+seg=6 {{{494.355774f, 224.605927f}, {494.363708f, 224.631714f}, {494.370148f, 224.657471f}}}
+seg=7 {{{494.370148f, 224.657471f}, {494.375275f, 224.679031f}}}
+seg=8 {{{494.375275f, 224.679031f}, {494.376038f, 224.682449f}}}
+seg=9 {{{494.376038f, 224.682449f}, {494.376221f, 224.683273f}}}
+seg=10 {{{494.376221f, 224.683273f}, {494.376007f, 224.682281f}}}
+seg=11 {{{494.376007f, 224.682281f}, {494.375671f, 224.680908f}}}
+seg=12 {{{494.375671f, 224.680908f}, {494.375397f, 224.67955f}, {494.376495f, 224.683868f}}}
+seg=13 {{{494.376495f, 224.683868f}, {494.634338f, 225.414886f}, {494.895874f, 225.840698f}}}
+seg=14 {{{494.895874f, 225.840698f}, {495.737305f, 227.210602f}, {497.243317f, 227.90419f}}}
+seg=15 {{{497.243317f, 227.90419f}, {502.478027f, 230.314941f}, {513.407471f, 224.129684f}}}
+seg=16 {{{513.407471f, 224.129684f}, {513.900024f, 224.999985f}}}
+seg=17 {{{513.900024f, 224.999985f}, {494.348663f, 224.583771f}}}
+debugShowConicQuadIntersection wtTs[0]=1 {{{{494.348663,224.583771}, {494.365143,224.633194}, {494.376404,224.684067}}}, 0.998645842} {{494.376404,224.684067}} wnTs[0]=0 {{{494.376404,224.684067}, {494.005188,224.055679}, {494.019165,224.046982}}}
+debugShowConicQuadIntersection no intersect {{{{494.348663,224.583771}, {494.365143,224.633194}, {494.376404,224.684067}}}, 0.998645842} {{{494.30481,224.474213}, {494.334961,224.538284}, {494.355774,224.605927}}}
+debugShowConicQuadIntersection no intersect {{{{494.348663,224.583771}, {494.365143,224.633194}, {494.376404,224.684067}}}, 0.998645842} {{{494.355774,224.605927}, {494.363708,224.631714}, {494.370148,224.657471}}}
+debugShowConicLineIntersection wtTs[0]=0.737524311 {{{{494.348663,224.583771}, {494.365143,224.633194}, {494.376404,224.684067}}}, 0.998645842} {{494.370148,224.657471}} wtTs[1]=0.95041534 {{494.375275,224.679031}} wnTs[0]=0 {{{494.370148,224.657471}, {494.375275,224.679031}}} wnTs[1]=1
+addT insert t=0.737524311 segID=1 spanID=35
+addT insert t=0.95041534 segID=1 spanID=36
+debugShowConicLineIntersection wtTs[0]=0.950415458 {{{{494.348663,224.583771}, {494.365143,224.633194}, {494.376404,224.684067}}}, 0.998645842} {{494.375275,224.679031}} wtTs[1]=0.984064836 {{494.376038,224.682449}} wnTs[0]=0 {{{494.375275,224.679031}, {494.376038,224.682449}}} wnTs[1]=1
+addT insert t=0.984064836 segID=1 spanID=37
+debugShowConicLineIntersection wtTs[0]=0.984064896 {{{{494.348663,224.583771}, {494.365143,224.633194}, {494.376404,224.684067}}}, 0.998645842} {{494.376038,224.682449}} wtTs[1]=0.992175496 {{494.376221,224.683273}} wnTs[0]=0 {{{494.376038,224.682449}, {494.376221,224.683273}}} wnTs[1]=1
+addT insert t=0.992175496 segID=1 spanID=38
+debugShowConicLineIntersection wtTs[0]=0.982426882 {{{{494.348663,224.583771}, {494.365143,224.633194}, {494.376404,224.684067}}}, 0.998645842} {{494.376007,224.682281}} wtTs[1]=0.992175933 {{494.376221,224.683273}} wnTs[0]=1 {{{494.376221,224.683273}, {494.376007,224.682281}}} wnTs[1]=0
+debugShowConicLineIntersection wtTs[0]=0.968840505 {{{{494.348663,224.583771}, {494.365143,224.633194}, {494.376404,224.684067}}}, 0.998645842} {{494.375671,224.680908}} wtTs[1]=0.982426925 {{494.376007,224.682281}} wnTs[0]=1 {{{494.376007,224.682281}, {494.375671,224.680908}}} wnTs[1]=0
+addT insert t=0.968840505 segID=1 spanID=39
+debugShowConicQuadIntersection wtTs[0]=0.966796875 {{{{494.348663,224.583771}, {494.365143,224.633194}, {494.376404,224.684067}}}, 0.998645842} {{494.375641,224.680695}} wtTs[1]=1 {{494.376404,224.684067}} wnTs[0]=0.375 {{{494.375671,224.680908}, {494.375397,224.67955}, {494.376495,224.683868}}} wnTs[1]=1
+debugShowConicQuadIntersection no intersect {{{{494.348663,224.583771}, {494.365143,224.633194}, {494.376404,224.684067}}}, 0.998645842} {{{494.376495,224.683868}, {494.634338,225.414886}, {494.895874,225.840698}}}
+debugShowConicLineIntersection wtTs[0]=0 {{{{494.348663,224.583771}, {494.365143,224.633194}, {494.376404,224.684067}}}, 0.998645842} {{494.348663,224.583771}} wnTs[0]=1 {{{513.900024,224.999985}, {494.348663,224.583771}}}
+debugShowQuadIntersection wtTs[0]=1 {{{494.376404,224.684067}, {494.005188,224.055679}, {494.019165,224.046982}}} {{494.019165,224.046982}} wnTs[0]=0 {{{494.019165,224.046982}, {494.029083,224.040833}, {494.232056,224.345306}}}
+debugShowQuadIntersection no intersect {{{494.376404,224.684067}, {494.005188,224.055679}, {494.019165,224.046982}}} {{{494.232056,224.345306}, {494.273193,224.406982}, {494.30481,224.474213}}}
+debugShowQuadIntersection no intersect {{{494.376404,224.684067}, {494.005188,224.055679}, {494.019165,224.046982}}} {{{494.30481,224.474213}, {494.334961,224.538284}, {494.355774,224.605927}}}
+debugShowQuadIntersection no intersect {{{494.376404,224.684067}, {494.005188,224.055679}, {494.019165,224.046982}}} {{{494.355774,224.605927}, {494.363708,224.631714}, {494.370148,224.657471}}}
+debugShowQuadLineIntersection no intersect {{{494.376404,224.684067}, {494.005188,224.055679}, {494.019165,224.046982}}} {{{494.370148,224.657471}, {494.375275,224.679031}}}
+debugShowQuadLineIntersection no intersect {{{494.376404,224.684067}, {494.005188,224.055679}, {494.019165,224.046982}}} {{{494.375275,224.679031}, {494.376038,224.682449}}}
+debugShowQuadLineIntersection wtTs[0]=0.000586871356 {{{494.376404,224.684067}, {494.005188,224.055679}, {494.019165,224.046982}}} {{494.376221,224.683273}} wnTs[0]=1 {{{494.376038,224.682449}, {494.376221,224.683273}}}
+addT insert t=0.000586871356 segID=2 spanID=40
+debugShowQuadLineIntersection wtTs[0]=0.000588090628 {{{494.376404,224.684067}, {494.005188,224.055679}, {494.019165,224.046982}}} {{494.376221,224.683273}} wnTs[0]=0 {{{494.376221,224.683273}, {494.376007,224.682281}}}
+debugShowQuadLineIntersection no intersect {{{494.376404,224.684067}, {494.005188,224.055679}, {494.019165,224.046982}}} {{{494.376007,224.682281}, {494.375671,224.680908}}}
+debugShowQuadIntersection no intersect {{{494.376404,224.684067}, {494.005188,224.055679}, {494.019165,224.046982}}} {{{494.375671,224.680908}, {494.375397,224.67955}, {494.376495,224.683868}}}
+debugShowQuadIntersection no intersect {{{494.376404,224.684067}, {494.005188,224.055679}, {494.019165,224.046982}}} {{{494.376495,224.683868}, {494.634338,225.414886}, {494.895874,225.840698}}}
+debugShowQuadLineIntersection no intersect {{{494.376404,224.684067}, {494.005188,224.055679}, {494.019165,224.046982}}} {{{513.900024,224.999985}, {494.348663,224.583771}}}
+debugShowQuadIntersection wtTs[0]=1 {{{494.019165,224.046982}, {494.029083,224.040833}, {494.232056,224.345306}}} {{494.232056,224.345306}} wnTs[0]=0 {{{494.232056,224.345306}, {494.273193,224.406982}, {494.30481,224.474213}}}
+debugShowQuadIntersection wtTs[0]=1 {{{494.232056,224.345306}, {494.273193,224.406982}, {494.30481,224.474213}}} {{494.30481,224.474213}} wnTs[0]=0 {{{494.30481,224.474213}, {494.334961,224.538284}, {494.355774,224.605927}}}
+debugShowQuadIntersection wtTs[0]=1 {{{494.30481,224.474213}, {494.334961,224.538284}, {494.355774,224.605927}}} {{494.355774,224.605927}} wnTs[0]=0 {{{494.355774,224.605927}, {494.363708,224.631714}, {494.370148,224.657471}}}
+debugShowQuadLineIntersection wtTs[0]=0.835281662 {{{494.30481,224.474213}, {494.334961,224.538284}, {494.355774,224.605927}}} {{494.348663,224.583771}} wnTs[0]=1 {{{513.900024,224.999985}, {494.348663,224.583771}}}
+addT insert t=0.835281662 segID=5 spanID=41
+debugShowQuadLineIntersection wtTs[0]=1 {{{494.355774,224.605927}, {494.363708,224.631714}, {494.370148,224.657471}}} {{494.370148,224.657471}} wnTs[0]=0 {{{494.370148,224.657471}, {494.375275,224.679031}}}
+debugShowQuadLineIntersection no intersect {{{494.355774,224.605927}, {494.363708,224.631714}, {494.370148,224.657471}}} {{{513.900024,224.999985}, {494.348663,224.583771}}}
+debugShowLineIntersection wtTs[0]=1 {{{494.370148,224.657471}, {494.375275,224.679031}}} {{494.375275,224.679031}} wnTs[0]=0 {{{494.375275,224.679031}, {494.376038,224.682449}}}
+debugShowLineIntersection no intersect {{{494.370148,224.657471}, {494.375275,224.679031}}} {{{513.900024,224.999985}, {494.348663,224.583771}}}
+debugShowLineIntersection wtTs[0]=1 {{{494.375275,224.679031}, {494.376038,224.682449}}} {{494.376038,224.682449}} wnTs[0]=0 {{{494.376038,224.682449}, {494.376221,224.683273}}}
+debugShowLineIntersection wtTs[0]=0.951325082 {{{494.375275,224.679031}, {494.376038,224.682449}}} {{494.376007,224.682281}} wtTs[1]=1 {{494.376038,224.682449}} wnTs[0]=1 {{{494.376221,224.683273}, {494.376007,224.682281}}} wnTs[1]=0.831938475
+debugShowLineIntersection wtTs[0]=0.547725719 {{{494.375275,224.679031}, {494.376038,224.682449}}} {{494.375671,224.680908}} wtTs[1]=0.951325082 {{494.376007,224.682281}} wnTs[0]=1 {{{494.376007,224.682281}, {494.375671,224.680908}}} wnTs[1]=0
+addT insert t=0.547725719 segID=8 spanID=42
+debugShowQuadLineIntersection wtTs[0]=0 {{{494.375671,224.680908}, {494.375397,224.67955}, {494.376495,224.683868}}} {{494.375671,224.680908}} wtTs[1]=0.809546276 {{494.376038,224.682449}} wnTs[0]=0.547726 {{{494.375275,224.679031}, {494.376038,224.682449}}} wnTs[1]=1
+addT insert t=0.809546276 segID=12 spanID=43
+debugShowLineIntersection no intersect {{{494.375275,224.679031}, {494.376038,224.682449}}} {{{513.900024,224.999985}, {494.348663,224.583771}}}
+debugShowLineIntersection wtTs[0]=0 {{{494.376038,224.682449}, {494.376221,224.683273}}} {{494.376038,224.682449}} wtTs[1]=1 {{494.376221,224.683273}} wnTs[0]=0.831938 {{{494.376221,224.683273}, {494.376007,224.682281}}} wnTs[1]=0
+debugShowLineIntersection no intersect {{{494.376038,224.682449}, {494.376221,224.683273}}} {{{494.376007,224.682281}, {494.375671,224.680908}}}
+debugShowQuadLineIntersection wtTs[0]=0.809559187 {{{494.375671,224.680908}, {494.375397,224.67955}, {494.376495,224.683868}}} {{494.376038,224.682449}} wtTs[1]=0.924341302 {{494.376221,224.683273}} wnTs[0]=0 {{{494.376038,224.682449}, {494.376221,224.683273}}} wnTs[1]=1
+addT insert t=0.924341302 segID=12 spanID=44
+debugShowLineIntersection no intersect {{{494.376038,224.682449}, {494.376221,224.683273}}} {{{513.900024,224.999985}, {494.348663,224.583771}}}
+debugShowLineIntersection wtTs[0]=1 {{{494.376221,224.683273}, {494.376007,224.682281}}} {{494.376007,224.682281}} wnTs[0]=0 {{{494.376007,224.682281}, {494.375671,224.680908}}}
+debugShowQuadLineIntersection wtTs[0]=0.783538464 {{{494.375671,224.680908}, {494.375397,224.67955}, {494.376495,224.683868}}} {{494.376007,224.682281}} wtTs[1]=0.924438181 {{494.376221,224.683273}} wnTs[0]=1 {{{494.376221,224.683273}, {494.376007,224.682281}}} wnTs[1]=0
+debugShowLineIntersection no intersect {{{494.376221,224.683273}, {494.376007,224.682281}}} {{{513.900024,224.999985}, {494.348663,224.583771}}}
+debugShowQuadLineIntersection wtTs[0]=0 {{{494.375671,224.680908}, {494.375397,224.67955}, {494.376495,224.683868}}} {{494.375671,224.680908}} wtTs[1]=0.783197805 {{494.376007,224.682281}} wnTs[0]=1 {{{494.376007,224.682281}, {494.375671,224.680908}}} wnTs[1]=0
+debugShowLineIntersection no intersect {{{494.376007,224.682281}, {494.375671,224.680908}}} {{{513.900024,224.999985}, {494.348663,224.583771}}}
+debugShowQuadIntersection wtTs[0]=1 {{{494.375671,224.680908}, {494.375397,224.67955}, {494.376495,224.683868}}} {{494.376495,224.683868}} wnTs[0]=0 {{{494.376495,224.683868}, {494.634338,225.414886}, {494.895874,225.840698}}}
+debugShowQuadLineIntersection no intersect {{{494.375671,224.680908}, {494.375397,224.67955}, {494.376495,224.683868}}} {{{513.900024,224.999985}, {494.348663,224.583771}}}
+debugShowQuadIntersection wtTs[0]=1 {{{494.376495,224.683868}, {494.634338,225.414886}, {494.895874,225.840698}}} {{494.895874,225.840698}} wnTs[0]=0 {{{494.895874,225.840698}, {495.737305,227.210602}, {497.243317,227.90419}}}
+debugShowQuadLineIntersection no intersect {{{494.376495,224.683868}, {494.634338,225.414886}, {494.895874,225.840698}}} {{{513.900024,224.999985}, {494.348663,224.583771}}}
+debugShowQuadIntersection wtTs[0]=1 {{{494.895874,225.840698}, {495.737305,227.210602}, {497.243317,227.90419}}} {{497.243317,227.90419}} wnTs[0]=0 {{{497.243317,227.90419}, {502.478027,230.314941}, {513.407471,224.129684}}}
+debugShowQuadLineIntersection wtTs[0]=1 {{{497.243317,227.90419}, {502.478027,230.314941}, {513.407471,224.129684}}} {{513.407471,224.129684}} wnTs[0]=0 {{{513.407471,224.129684}, {513.900024,224.999985}}}
+debugShowQuadLineIntersection wtTs[0]=0.929653854 {{{497.243317,227.90419}, {502.478027,230.314941}, {513.407471,224.129684}}} {{511.897949,224.957367}} wnTs[0]=0.1024 {{{513.900024,224.999985}, {494.348663,224.583771}}}
+addT insert t=0.929653854 segID=15 spanID=45
+addT insert t=0.102400099 segID=17 spanID=46
+debugShowLineIntersection wtTs[0]=1 {{{513.407471,224.129684}, {513.900024,224.999985}}} {{513.900024,224.999985}} wnTs[0]=0 {{{513.900024,224.999985}, {494.348663,224.583771}}}
+--x--x---------xx-x--x------------x start
+00: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+01: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+02: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+03: coinSeg/Span/PtT=12/23/23 endSpan=43 oppSeg/Span/PtT=11/22/22 oppEndSpan=21 MissingCoin
+04: coinSeg/Span/PtT=11/21/21 endSpan=22 oppSeg/Span/PtT=12/43/43 oppEndSpan=23 MissingCoin
+05: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+06: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+07: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+08: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+09: coinSeg/Span/PtT=12/23/23 endSpan=43 oppSeg/Span/PtT=11/22/22 oppEndSpan=21 MissingCoin
+10: coinSeg/Span/PtT=11/21/21 endSpan=22 oppSeg/Span/PtT=12/43/43 oppEndSpan=23 MissingCoin
+11: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+12: segment=12 AddExpandedFail
+13: segment=12 startT=0 endT=0.809546 segment=11 oppStartT=1 oppEndT=0 AddMissingCoin
+14: segment=12 AddExpandedFail
+15: segment=12 startT=0 endT=0.809546 segment=11 oppStartT=1 oppEndT=0 AddMissingCoin
+16: seg/base=10/19 seg/base=12/43 MarkCoinStart
+17: seg/base=10/20 seg/base=12/44 MarkCoinEnd
+18: seg/base=9/17 seg/base=12/43 MarkCoinStart
+19: seg/base=9/18 seg/base=12/44 MarkCoinEnd
+20: seg/base=9/17 seg/base=10/19 MarkCoinStart
+21: seg/base=9/18 seg/base=10/20 MarkCoinEnd
+22: seg/base=8/42 seg/base=12/23 MarkCoinStart
+23: seg/base=8/16 seg/base=12/43 MarkCoinEnd
+24: seg/base=8/42 seg/base=11/21 MarkCoinStart
+25: seg/base=8/16 seg/base=11/22 MarkCoinEnd
+26: seg/base=12/23 seg/base=1/39 MarkCoinStart
+27: seg/base=12/24 seg/base=1/2 MarkCoinEnd
+28: seg/base=1/37 MarkCoinInsert
+29: seg/base=1/38 MarkCoinInsert
+30: seg/base=12/43 MarkCoinInsert
+31: seg/base=12/44 MarkCoinInsert
+32: seg/base=11/21 seg/base=1/39 MarkCoinStart
+33: seg/base=11/22 seg/base=1/37 MarkCoinEnd
+34: seg/base=10/19 seg/base=1/37 MarkCoinStart
+35: seg/base=10/20 seg/base=1/38 MarkCoinEnd
+36: seg/base=9/17 seg/base=1/37 MarkCoinStart
+37: seg/base=9/18 seg/base=1/38 MarkCoinEnd
+38: seg/base=8/15 seg/base=1/36 MarkCoinStart
+39: seg/base=8/16 seg/base=1/37 MarkCoinEnd
+40: seg/base=1/39 MarkCoinInsert
+41: seg/base=8/42 MarkCoinInsert
+42: seg/base=7/13 seg/base=1/35 MarkCoinStart
+43: seg/base=7/14 seg/base=1/36 MarkCoinEnd
+active after start:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+--x--x---------xx-x--x------------x addExpanded
+00: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+01: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+02: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+03: coinSeg/Span/PtT=12/23/23 endSpan=43 oppSeg/Span/PtT=11/22/22 oppEndSpan=21 MissingCoin
+04: coinSeg/Span/PtT=11/21/21 endSpan=22 oppSeg/Span/PtT=12/43/43 oppEndSpan=23 MissingCoin
+05: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+06: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+07: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+08: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+09: coinSeg/Span/PtT=12/23/23 endSpan=43 oppSeg/Span/PtT=11/22/22 oppEndSpan=21 MissingCoin
+10: coinSeg/Span/PtT=11/21/21 endSpan=22 oppSeg/Span/PtT=12/43/43 oppEndSpan=23 MissingCoin
+11: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+12: segment=12 AddExpandedFail
+13: segment=12 startT=0 endT=0.809546 segment=11 oppStartT=1 oppEndT=0 AddMissingCoin
+14: segment=12 AddExpandedFail
+15: segment=12 startT=0 endT=0.809546 segment=11 oppStartT=1 oppEndT=0 AddMissingCoin
+16: seg/base=10/19 seg/base=12/43 MarkCoinStart
+17: seg/base=10/20 seg/base=12/44 MarkCoinEnd
+18: seg/base=9/17 seg/base=12/43 MarkCoinStart
+19: seg/base=9/18 seg/base=12/44 MarkCoinEnd
+20: seg/base=9/17 seg/base=10/19 MarkCoinStart
+21: seg/base=9/18 seg/base=10/20 MarkCoinEnd
+22: seg/base=8/42 seg/base=12/23 MarkCoinStart
+23: seg/base=8/16 seg/base=12/43 MarkCoinEnd
+24: seg/base=8/42 seg/base=11/21 MarkCoinStart
+25: seg/base=8/16 seg/base=11/22 MarkCoinEnd
+26: seg/base=12/23 seg/base=1/39 MarkCoinStart
+27: seg/base=12/24 seg/base=1/2 MarkCoinEnd
+28: seg/base=1/37 MarkCoinInsert
+29: seg/base=1/38 MarkCoinInsert
+30: seg/base=12/43 MarkCoinInsert
+31: seg/base=12/44 MarkCoinInsert
+32: seg/base=11/21 seg/base=1/39 MarkCoinStart
+33: seg/base=11/22 seg/base=1/37 MarkCoinEnd
+34: seg/base=10/19 seg/base=1/37 MarkCoinStart
+35: seg/base=10/20 seg/base=1/38 MarkCoinEnd
+36: seg/base=9/17 seg/base=1/37 MarkCoinStart
+37: seg/base=9/18 seg/base=1/38 MarkCoinEnd
+38: seg/base=8/15 seg/base=1/36 MarkCoinStart
+39: seg/base=8/16 seg/base=1/37 MarkCoinEnd
+40: seg/base=1/39 MarkCoinInsert
+41: seg/base=8/42 MarkCoinInsert
+42: seg/base=7/13 seg/base=1/35 MarkCoinStart
+43: seg/base=7/14 seg/base=1/36 MarkCoinEnd
+active after addExpanded:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+--x--x---------xx-x--x------------x moveMultiples
+00: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+01: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+02: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+03: coinSeg/Span/PtT=12/23/23 endSpan=43 oppSeg/Span/PtT=11/22/22 oppEndSpan=21 MissingCoin
+04: coinSeg/Span/PtT=11/21/21 endSpan=22 oppSeg/Span/PtT=12/43/43 oppEndSpan=23 MissingCoin
+05: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+06: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+07: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+08: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+09: coinSeg/Span/PtT=12/23/23 endSpan=43 oppSeg/Span/PtT=11/22/22 oppEndSpan=21 MissingCoin
+10: coinSeg/Span/PtT=11/21/21 endSpan=22 oppSeg/Span/PtT=12/43/43 oppEndSpan=23 MissingCoin
+11: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+12: segment=12 AddExpandedFail
+13: segment=12 startT=0 endT=0.809546 segment=11 oppStartT=1 oppEndT=0 AddMissingCoin
+14: segment=12 AddExpandedFail
+15: segment=12 startT=0 endT=0.809546 segment=11 oppStartT=1 oppEndT=0 AddMissingCoin
+16: seg/base=10/19 seg/base=12/43 MarkCoinStart
+17: seg/base=10/20 seg/base=12/44 MarkCoinEnd
+18: seg/base=9/17 seg/base=12/43 MarkCoinStart
+19: seg/base=9/18 seg/base=12/44 MarkCoinEnd
+20: seg/base=9/17 seg/base=10/19 MarkCoinStart
+21: seg/base=9/18 seg/base=10/20 MarkCoinEnd
+22: seg/base=8/42 seg/base=12/23 MarkCoinStart
+23: seg/base=8/16 seg/base=12/43 MarkCoinEnd
+24: seg/base=8/42 seg/base=11/21 MarkCoinStart
+25: seg/base=8/16 seg/base=11/22 MarkCoinEnd
+26: seg/base=12/23 seg/base=1/39 MarkCoinStart
+27: seg/base=12/24 seg/base=1/2 MarkCoinEnd
+28: seg/base=1/37 MarkCoinInsert
+29: seg/base=1/38 MarkCoinInsert
+30: seg/base=12/43 MarkCoinInsert
+31: seg/base=12/44 MarkCoinInsert
+32: seg/base=11/21 seg/base=1/39 MarkCoinStart
+33: seg/base=11/22 seg/base=1/37 MarkCoinEnd
+34: seg/base=10/19 seg/base=1/37 MarkCoinStart
+35: seg/base=10/20 seg/base=1/38 MarkCoinEnd
+36: seg/base=9/17 seg/base=1/37 MarkCoinStart
+37: seg/base=9/18 seg/base=1/38 MarkCoinEnd
+38: seg/base=8/15 seg/base=1/36 MarkCoinStart
+39: seg/base=8/16 seg/base=1/37 MarkCoinEnd
+40: seg/base=1/39 MarkCoinInsert
+41: seg/base=8/42 MarkCoinInsert
+42: seg/base=7/13 seg/base=1/35 MarkCoinStart
+43: seg/base=7/14 seg/base=1/36 MarkCoinEnd
+active after moveMultiples:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+--x--x---------xx-x--x------------x moveNearby
+00: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+01: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+02: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+03: coinSeg/Span/PtT=12/23/23 endSpan=43 oppSeg/Span/PtT=11/22/22 oppEndSpan=21 MissingCoin
+04: coinSeg/Span/PtT=11/21/21 endSpan=22 oppSeg/Span/PtT=12/43/43 oppEndSpan=23 MissingCoin
+05: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+06: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+07: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+08: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+09: coinSeg/Span/PtT=12/23/23 endSpan=43 oppSeg/Span/PtT=11/22/22 oppEndSpan=21 MissingCoin
+10: coinSeg/Span/PtT=11/21/21 endSpan=22 oppSeg/Span/PtT=12/43/43 oppEndSpan=23 MissingCoin
+11: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+12: segment=12 AddExpandedFail
+13: segment=12 startT=0 endT=0.809546 segment=11 oppStartT=1 oppEndT=0 AddMissingCoin
+14: segment=12 AddExpandedFail
+15: segment=12 startT=0 endT=0.809546 segment=11 oppStartT=1 oppEndT=0 AddMissingCoin
+16: seg/base=10/19 seg/base=12/43 MarkCoinStart
+17: seg/base=10/20 seg/base=12/44 MarkCoinEnd
+18: seg/base=9/17 seg/base=12/43 MarkCoinStart
+19: seg/base=9/18 seg/base=12/44 MarkCoinEnd
+20: seg/base=9/17 seg/base=10/19 MarkCoinStart
+21: seg/base=9/18 seg/base=10/20 MarkCoinEnd
+22: seg/base=8/42 seg/base=12/23 MarkCoinStart
+23: seg/base=8/16 seg/base=12/43 MarkCoinEnd
+24: seg/base=8/42 seg/base=11/21 MarkCoinStart
+25: seg/base=8/16 seg/base=11/22 MarkCoinEnd
+26: seg/base=12/23 seg/base=1/39 MarkCoinStart
+27: seg/base=12/24 seg/base=1/2 MarkCoinEnd
+28: seg/base=1/37 MarkCoinInsert
+29: seg/base=1/38 MarkCoinInsert
+30: seg/base=12/43 MarkCoinInsert
+31: seg/base=12/44 MarkCoinInsert
+32: seg/base=11/21 seg/base=1/39 MarkCoinStart
+33: seg/base=11/22 seg/base=1/37 MarkCoinEnd
+34: seg/base=10/19 seg/base=1/37 MarkCoinStart
+35: seg/base=10/20 seg/base=1/38 MarkCoinEnd
+36: seg/base=9/17 seg/base=1/37 MarkCoinStart
+37: seg/base=9/18 seg/base=1/38 MarkCoinEnd
+38: seg/base=8/15 seg/base=1/36 MarkCoinStart
+39: seg/base=8/16 seg/base=1/37 MarkCoinEnd
+40: seg/base=1/39 MarkCoinInsert
+41: seg/base=8/42 MarkCoinInsert
+42: seg/base=7/13 seg/base=1/35 MarkCoinStart
+43: seg/base=7/14 seg/base=1/36 MarkCoinEnd
+active after moveNearby:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+--x--x---------xx-x--x------------x addEndMovedSpans
+00: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+01: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+02: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+03: coinSeg/Span/PtT=12/23/23 endSpan=43 oppSeg/Span/PtT=11/22/22 oppEndSpan=21 MissingCoin
+04: coinSeg/Span/PtT=11/21/21 endSpan=22 oppSeg/Span/PtT=12/43/43 oppEndSpan=23 MissingCoin
+05: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+06: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+07: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+08: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+09: coinSeg/Span/PtT=12/23/23 endSpan=43 oppSeg/Span/PtT=11/22/22 oppEndSpan=21 MissingCoin
+10: coinSeg/Span/PtT=11/21/21 endSpan=22 oppSeg/Span/PtT=12/43/43 oppEndSpan=23 MissingCoin
+11: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+12: segment=12 AddExpandedFail
+13: segment=12 startT=0 endT=0.809546 segment=11 oppStartT=1 oppEndT=0 AddMissingCoin
+14: segment=12 AddExpandedFail
+15: segment=12 startT=0 endT=0.809546 segment=11 oppStartT=1 oppEndT=0 AddMissingCoin
+16: seg/base=10/19 seg/base=12/43 MarkCoinStart
+17: seg/base=10/20 seg/base=12/44 MarkCoinEnd
+18: seg/base=9/17 seg/base=12/43 MarkCoinStart
+19: seg/base=9/18 seg/base=12/44 MarkCoinEnd
+20: seg/base=9/17 seg/base=10/19 MarkCoinStart
+21: seg/base=9/18 seg/base=10/20 MarkCoinEnd
+22: seg/base=8/42 seg/base=12/23 MarkCoinStart
+23: seg/base=8/16 seg/base=12/43 MarkCoinEnd
+24: seg/base=8/42 seg/base=11/21 MarkCoinStart
+25: seg/base=8/16 seg/base=11/22 MarkCoinEnd
+26: seg/base=12/23 seg/base=1/39 MarkCoinStart
+27: seg/base=12/24 seg/base=1/2 MarkCoinEnd
+28: seg/base=1/37 MarkCoinInsert
+29: seg/base=1/38 MarkCoinInsert
+30: seg/base=12/43 MarkCoinInsert
+31: seg/base=12/44 MarkCoinInsert
+32: seg/base=11/21 seg/base=1/39 MarkCoinStart
+33: seg/base=11/22 seg/base=1/37 MarkCoinEnd
+34: seg/base=10/19 seg/base=1/37 MarkCoinStart
+35: seg/base=10/20 seg/base=1/38 MarkCoinEnd
+36: seg/base=9/17 seg/base=1/37 MarkCoinStart
+37: seg/base=9/18 seg/base=1/38 MarkCoinEnd
+38: seg/base=8/15 seg/base=1/36 MarkCoinStart
+39: seg/base=8/16 seg/base=1/37 MarkCoinEnd
+40: seg/base=1/39 MarkCoinInsert
+41: seg/base=8/42 MarkCoinInsert
+42: seg/base=7/13 seg/base=1/35 MarkCoinStart
+43: seg/base=7/14 seg/base=1/36 MarkCoinEnd
+active after addEndMovedSpans:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+coinSpan - id=11 t=0 tEnd=1
+coinSpan + id=12 t=0.809546276 tEnd=0
+---------------xx-x--x------------- addMissing
+00: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+01: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+02: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+03: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+04: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+05: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+06: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+07: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+08: seg/base=11/21 seg/base=12/23 MarkCoinStart
+09: seg/base=11/22 seg/base=12/43 MarkCoinEnd
+10: seg/base=10/19 seg/base=12/43 MarkCoinStart
+11: seg/base=10/20 seg/base=12/44 MarkCoinEnd
+12: seg/base=9/17 seg/base=12/43 MarkCoinStart
+13: seg/base=9/18 seg/base=12/44 MarkCoinEnd
+14: seg/base=9/17 seg/base=10/19 MarkCoinStart
+15: seg/base=9/18 seg/base=10/20 MarkCoinEnd
+16: seg/base=8/42 seg/base=12/23 MarkCoinStart
+17: seg/base=8/16 seg/base=12/43 MarkCoinEnd
+18: seg/base=8/42 seg/base=11/21 MarkCoinStart
+19: seg/base=8/16 seg/base=11/22 MarkCoinEnd
+20: seg/base=12/23 seg/base=1/39 MarkCoinStart
+21: seg/base=12/24 seg/base=1/2 MarkCoinEnd
+22: seg/base=1/37 MarkCoinInsert
+23: seg/base=1/38 MarkCoinInsert
+24: seg/base=12/43 MarkCoinInsert
+25: seg/base=12/44 MarkCoinInsert
+26: seg/base=11/21 seg/base=1/39 MarkCoinStart
+27: seg/base=11/22 seg/base=1/37 MarkCoinEnd
+28: seg/base=10/19 seg/base=1/37 MarkCoinStart
+29: seg/base=10/20 seg/base=1/38 MarkCoinEnd
+30: seg/base=9/17 seg/base=1/37 MarkCoinStart
+31: seg/base=9/18 seg/base=1/38 MarkCoinEnd
+32: seg/base=8/15 seg/base=1/36 MarkCoinStart
+33: seg/base=8/16 seg/base=1/37 MarkCoinEnd
+34: seg/base=1/39 MarkCoinInsert
+35: seg/base=8/42 MarkCoinInsert
+36: seg/base=7/13 seg/base=1/35 MarkCoinStart
+37: seg/base=7/14 seg/base=1/36 MarkCoinEnd
+active after addMissing:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+---------------xx-x--x------------- moveNearby
+00: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+01: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+02: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+03: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+04: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+05: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+06: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+07: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+08: seg/base=11/21 seg/base=12/23 MarkCoinStart
+09: seg/base=11/22 seg/base=12/43 MarkCoinEnd
+10: seg/base=10/19 seg/base=12/43 MarkCoinStart
+11: seg/base=10/20 seg/base=12/44 MarkCoinEnd
+12: seg/base=9/17 seg/base=12/43 MarkCoinStart
+13: seg/base=9/18 seg/base=12/44 MarkCoinEnd
+14: seg/base=9/17 seg/base=10/19 MarkCoinStart
+15: seg/base=9/18 seg/base=10/20 MarkCoinEnd
+16: seg/base=8/42 seg/base=12/23 MarkCoinStart
+17: seg/base=8/16 seg/base=12/43 MarkCoinEnd
+18: seg/base=8/42 seg/base=11/21 MarkCoinStart
+19: seg/base=8/16 seg/base=11/22 MarkCoinEnd
+20: seg/base=12/23 seg/base=1/39 MarkCoinStart
+21: seg/base=12/24 seg/base=1/2 MarkCoinEnd
+22: seg/base=1/37 MarkCoinInsert
+23: seg/base=1/38 MarkCoinInsert
+24: seg/base=12/43 MarkCoinInsert
+25: seg/base=12/44 MarkCoinInsert
+26: seg/base=11/21 seg/base=1/39 MarkCoinStart
+27: seg/base=11/22 seg/base=1/37 MarkCoinEnd
+28: seg/base=10/19 seg/base=1/37 MarkCoinStart
+29: seg/base=10/20 seg/base=1/38 MarkCoinEnd
+30: seg/base=9/17 seg/base=1/37 MarkCoinStart
+31: seg/base=9/18 seg/base=1/38 MarkCoinEnd
+32: seg/base=8/15 seg/base=1/36 MarkCoinStart
+33: seg/base=8/16 seg/base=1/37 MarkCoinEnd
+34: seg/base=1/39 MarkCoinInsert
+35: seg/base=8/42 MarkCoinInsert
+36: seg/base=7/13 seg/base=1/35 MarkCoinStart
+37: seg/base=7/14 seg/base=1/36 MarkCoinEnd
+active after moveNearby:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+---------------xx-x--x------------- addMissing2
+00: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+01: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+02: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+03: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+04: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+05: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+06: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+07: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+08: seg/base=11/21 seg/base=12/23 MarkCoinStart
+09: seg/base=11/22 seg/base=12/43 MarkCoinEnd
+10: seg/base=10/19 seg/base=12/43 MarkCoinStart
+11: seg/base=10/20 seg/base=12/44 MarkCoinEnd
+12: seg/base=9/17 seg/base=12/43 MarkCoinStart
+13: seg/base=9/18 seg/base=12/44 MarkCoinEnd
+14: seg/base=9/17 seg/base=10/19 MarkCoinStart
+15: seg/base=9/18 seg/base=10/20 MarkCoinEnd
+16: seg/base=8/42 seg/base=12/23 MarkCoinStart
+17: seg/base=8/16 seg/base=12/43 MarkCoinEnd
+18: seg/base=8/42 seg/base=11/21 MarkCoinStart
+19: seg/base=8/16 seg/base=11/22 MarkCoinEnd
+20: seg/base=12/23 seg/base=1/39 MarkCoinStart
+21: seg/base=12/24 seg/base=1/2 MarkCoinEnd
+22: seg/base=1/37 MarkCoinInsert
+23: seg/base=1/38 MarkCoinInsert
+24: seg/base=12/43 MarkCoinInsert
+25: seg/base=12/44 MarkCoinInsert
+26: seg/base=11/21 seg/base=1/39 MarkCoinStart
+27: seg/base=11/22 seg/base=1/37 MarkCoinEnd
+28: seg/base=10/19 seg/base=1/37 MarkCoinStart
+29: seg/base=10/20 seg/base=1/38 MarkCoinEnd
+30: seg/base=9/17 seg/base=1/37 MarkCoinStart
+31: seg/base=9/18 seg/base=1/38 MarkCoinEnd
+32: seg/base=8/15 seg/base=1/36 MarkCoinStart
+33: seg/base=8/16 seg/base=1/37 MarkCoinEnd
+34: seg/base=1/39 MarkCoinInsert
+35: seg/base=8/42 MarkCoinInsert
+36: seg/base=7/13 seg/base=1/35 MarkCoinStart
+37: seg/base=7/14 seg/base=1/36 MarkCoinEnd
+active after addMissing2:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+---------------xx-x--x------------- moveNearby2
+00: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+01: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+02: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+03: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+04: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+05: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+06: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+07: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+08: seg/base=11/21 seg/base=12/23 MarkCoinStart
+09: seg/base=11/22 seg/base=12/43 MarkCoinEnd
+10: seg/base=10/19 seg/base=12/43 MarkCoinStart
+11: seg/base=10/20 seg/base=12/44 MarkCoinEnd
+12: seg/base=9/17 seg/base=12/43 MarkCoinStart
+13: seg/base=9/18 seg/base=12/44 MarkCoinEnd
+14: seg/base=9/17 seg/base=10/19 MarkCoinStart
+15: seg/base=9/18 seg/base=10/20 MarkCoinEnd
+16: seg/base=8/42 seg/base=12/23 MarkCoinStart
+17: seg/base=8/16 seg/base=12/43 MarkCoinEnd
+18: seg/base=8/42 seg/base=11/21 MarkCoinStart
+19: seg/base=8/16 seg/base=11/22 MarkCoinEnd
+20: seg/base=12/23 seg/base=1/39 MarkCoinStart
+21: seg/base=12/24 seg/base=1/2 MarkCoinEnd
+22: seg/base=1/37 MarkCoinInsert
+23: seg/base=1/38 MarkCoinInsert
+24: seg/base=12/43 MarkCoinInsert
+25: seg/base=12/44 MarkCoinInsert
+26: seg/base=11/21 seg/base=1/39 MarkCoinStart
+27: seg/base=11/22 seg/base=1/37 MarkCoinEnd
+28: seg/base=10/19 seg/base=1/37 MarkCoinStart
+29: seg/base=10/20 seg/base=1/38 MarkCoinEnd
+30: seg/base=9/17 seg/base=1/37 MarkCoinStart
+31: seg/base=9/18 seg/base=1/38 MarkCoinEnd
+32: seg/base=8/15 seg/base=1/36 MarkCoinStart
+33: seg/base=8/16 seg/base=1/37 MarkCoinEnd
+34: seg/base=1/39 MarkCoinInsert
+35: seg/base=8/42 MarkCoinInsert
+36: seg/base=7/13 seg/base=1/35 MarkCoinStart
+37: seg/base=7/14 seg/base=1/36 MarkCoinEnd
+active after moveNearby2:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+---------------xx-x--x------------- expand2
+00: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+01: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+02: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+03: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+04: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+05: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+06: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+07: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+08: seg/base=11/21 seg/base=12/23 MarkCoinStart
+09: seg/base=11/22 seg/base=12/43 MarkCoinEnd
+10: seg/base=10/19 seg/base=12/43 MarkCoinStart
+11: seg/base=10/20 seg/base=12/44 MarkCoinEnd
+12: seg/base=9/17 seg/base=12/43 MarkCoinStart
+13: seg/base=9/18 seg/base=12/44 MarkCoinEnd
+14: seg/base=9/17 seg/base=10/19 MarkCoinStart
+15: seg/base=9/18 seg/base=10/20 MarkCoinEnd
+16: seg/base=8/42 seg/base=12/23 MarkCoinStart
+17: seg/base=8/16 seg/base=12/43 MarkCoinEnd
+18: seg/base=8/42 seg/base=11/21 MarkCoinStart
+19: seg/base=8/16 seg/base=11/22 MarkCoinEnd
+20: seg/base=12/23 seg/base=1/39 MarkCoinStart
+21: seg/base=12/24 seg/base=1/2 MarkCoinEnd
+22: seg/base=1/37 MarkCoinInsert
+23: seg/base=1/38 MarkCoinInsert
+24: seg/base=12/43 MarkCoinInsert
+25: seg/base=12/44 MarkCoinInsert
+26: seg/base=11/21 seg/base=1/39 MarkCoinStart
+27: seg/base=11/22 seg/base=1/37 MarkCoinEnd
+28: seg/base=10/19 seg/base=1/37 MarkCoinStart
+29: seg/base=10/20 seg/base=1/38 MarkCoinEnd
+30: seg/base=9/17 seg/base=1/37 MarkCoinStart
+31: seg/base=9/18 seg/base=1/38 MarkCoinEnd
+32: seg/base=8/15 seg/base=1/36 MarkCoinStart
+33: seg/base=8/16 seg/base=1/37 MarkCoinEnd
+34: seg/base=1/39 MarkCoinInsert
+35: seg/base=8/42 MarkCoinInsert
+36: seg/base=7/13 seg/base=1/35 MarkCoinStart
+37: seg/base=7/14 seg/base=1/36 MarkCoinEnd
+active after expand2:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+---------------xx-x--x------------- addExpanded3
+00: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+01: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+02: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+03: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+04: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+05: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+06: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+07: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+08: seg/base=11/21 seg/base=12/23 MarkCoinStart
+09: seg/base=11/22 seg/base=12/43 MarkCoinEnd
+10: seg/base=10/19 seg/base=12/43 MarkCoinStart
+11: seg/base=10/20 seg/base=12/44 MarkCoinEnd
+12: seg/base=9/17 seg/base=12/43 MarkCoinStart
+13: seg/base=9/18 seg/base=12/44 MarkCoinEnd
+14: seg/base=9/17 seg/base=10/19 MarkCoinStart
+15: seg/base=9/18 seg/base=10/20 MarkCoinEnd
+16: seg/base=8/42 seg/base=12/23 MarkCoinStart
+17: seg/base=8/16 seg/base=12/43 MarkCoinEnd
+18: seg/base=8/42 seg/base=11/21 MarkCoinStart
+19: seg/base=8/16 seg/base=11/22 MarkCoinEnd
+20: seg/base=12/23 seg/base=1/39 MarkCoinStart
+21: seg/base=12/24 seg/base=1/2 MarkCoinEnd
+22: seg/base=1/37 MarkCoinInsert
+23: seg/base=1/38 MarkCoinInsert
+24: seg/base=12/43 MarkCoinInsert
+25: seg/base=12/44 MarkCoinInsert
+26: seg/base=11/21 seg/base=1/39 MarkCoinStart
+27: seg/base=11/22 seg/base=1/37 MarkCoinEnd
+28: seg/base=10/19 seg/base=1/37 MarkCoinStart
+29: seg/base=10/20 seg/base=1/38 MarkCoinEnd
+30: seg/base=9/17 seg/base=1/37 MarkCoinStart
+31: seg/base=9/18 seg/base=1/38 MarkCoinEnd
+32: seg/base=8/15 seg/base=1/36 MarkCoinStart
+33: seg/base=8/16 seg/base=1/37 MarkCoinEnd
+34: seg/base=1/39 MarkCoinInsert
+35: seg/base=8/42 MarkCoinInsert
+36: seg/base=7/13 seg/base=1/35 MarkCoinStart
+37: seg/base=7/14 seg/base=1/36 MarkCoinEnd
+active after addExpanded3:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+---------------------x------------- mark1
+00: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+01: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+02: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+03: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+04: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=1/2/2 oppEndSpan=38 MissingCoin
+05: coinSeg/Span/PtT=12/44/44 endSpan=24 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+06: coinSeg/Span/PtT=1/38/38 endSpan=2 oppSeg/Span/PtT=2/40/40 oppEndSpan=3 MissingCoin
+07: coinSeg/Span/PtT=2/3/3 endSpan=40 oppSeg/Span/PtT=12/24/24 oppEndSpan=44 MissingCoin
+active after mark1:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+missingCoincidence coinSpan=3 endSpan=40 oppSpan=2 oppEndSpan=38
+missingCoincidence coinSpan=44 endSpan=24 oppSpan=40 oppEndSpan=3
+---------------x--x---------------- missingCoincidence1
+00: seg/base=12/44 seg/base=2/3 MarkCoinStart
+01: seg/base=12/24 seg/base=2/40 MarkCoinEnd
+02: seg/base=2/3 seg/base=1/38 MarkCoinStart
+03: seg/base=2/40 seg/base=1/2 MarkCoinEnd
+active after missingCoincidence1:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+---------------x--x---------------- expand3
+00: seg/base=12/44 seg/base=2/3 MarkCoinStart
+01: seg/base=12/24 seg/base=2/40 MarkCoinEnd
+02: seg/base=2/3 seg/base=1/38 MarkCoinStart
+03: seg/base=2/40 seg/base=1/2 MarkCoinEnd
+active after expand3:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+---------------x--x---------------- addExpanded3
+00: seg/base=12/44 seg/base=2/3 MarkCoinStart
+01: seg/base=12/24 seg/base=2/40 MarkCoinEnd
+02: seg/base=2/3 seg/base=1/38 MarkCoinStart
+03: seg/base=2/40 seg/base=1/2 MarkCoinEnd
+active after addExpanded3:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
----------------------------------- missingCoincidence3
+active after missingCoincidence3:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
----------------------------------- coincidence.reorder
+active after coincidence.reorder:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.370148,224.657471 494.372825,224.668224 494.375275,224.679031 0.999938607f) t=0.737524311 tEnd=0.95041534 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375275,224.679031 494.375488,224.679966 494.375702,224.680908 0.999999523f) t=0.95041534 tEnd=0.968840505 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.375702,224.680908 494.375872,224.681675 494.376038,224.682449 0.999999702f) t=0.968840505 tEnd=0.984064836 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376038,224.682449 494.376136,224.68286 494.376221,224.683273 0.99999994f) t=0.984064836 tEnd=0.992175496 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.376404,224.684067 494.37619,224.6837 494.375977,224.683334) t=0 tEnd=0.000586871356 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=1
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=10 (494.376221,224.683273 494.376007,224.682281) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=11 (494.376007,224.682281 494.375671,224.680908) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.375671,224.680908 494.375445,224.679787 494.376129,224.682434) t=0 tEnd=0.809546276 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376129,224.682434 494.376227,224.682801 494.376343,224.683243) t=0.809546276 tEnd=0.924341302 windSum=? windValue=1
+debugShowActiveSpans id=12 (494.376343,224.683243 494.376415,224.683539 494.376495,224.683868) t=0.924341302 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+markDone id=12 (494.375671,224.680908 494.375397,224.67955 494.376495,224.683868) t=0.924341302 [44] (494.376343,224.683243) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
+markDone id=2 (494.376404,224.684067 494.005188,224.055679 494.019165,224.046982) t=0 [3] (494.376404,224.684067) tEnd=0.000586871356 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
+markDone id=11 (494.376007,224.682281 494.375671,224.680908) t=0 [21] (494.376007,224.682281) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
+markDone id=12 (494.375671,224.680908 494.375397,224.67955 494.376495,224.683868) t=0 [23] (494.375671,224.680908) tEnd=0.809546276 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
+markDone id=10 (494.376221,224.683273 494.376007,224.682281) t=0 [19] (494.376221,224.683273) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
+markDone id=12 (494.375671,224.680908 494.375397,224.67955 494.376495,224.683868) t=0.809546276 [43] (494.376129,224.682434) tEnd=0.924341302 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
+markDone id=1 (494.348663,224.583771 494.365143,224.633194 494.376404,224.684067) t=0.984064836 [37] (494.376038,224.682449) tEnd=0.992175496 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
+markDone id=1 (494.348663,224.583771 494.365143,224.633194 494.376404,224.684067) t=0.95041534 [36] (494.375275,224.679031) tEnd=0.968840505 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
+markDone id=1 (494.348663,224.583771 494.365143,224.633194 494.376404,224.684067) t=0.968840505 [39] (494.375702,224.680908) tEnd=0.984064836 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
+markDone id=1 (494.348663,224.583771 494.365143,224.633194 494.376404,224.684067) t=0.737524311 [35] (494.370148,224.657471) tEnd=0.95041534 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
----------------------------------- pairs->apply
+active after pairs->apply:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=2
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=2
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=2
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=2
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
----------------------------------- pairs->findOverlaps
-SkOpSegment::sortAngles [3] tStart=1 [6]
-SkOpAngle::after [3/1] 21/20 tStart=1 tEnd=0 < [1/3] 20/21 tStart=0 tEnd=1 < [2/4] 21/21 tStart=1 tEnd=0 F 7
-SkOpAngle::afterPart {{{1,2}, {0.833333373,3.5}, {-0.333333343,3.33333325}, {0,3}}} id=3
-SkOpAngle::afterPart {{{1,2}, {0,3}, {-0.333333343,3.33333325}, {0.833333373,3.5}}} id=1
-SkOpAngle::afterPart {{{1,2}, {0.833333373,3.5}}} id=2
-SkOpAngle::after [3/1] 21/20 tStart=1 tEnd=0 < [4/2] 19/19 tStart=0 tEnd=1 < [2/4] 21/21 tStart=1 tEnd=0 F 5
-SkOpAngle::afterPart {{{1,2}, {0.833333373,3.5}, {-0.333333343,3.33333325}, {0,3}}} id=3
-SkOpAngle::afterPart {{{1,2}, {0,3}}} id=4
-SkOpAngle::afterPart {{{1,2}, {0.833333373,3.5}}} id=2
-SkOpAngle::after [2/4] 21/21 tStart=1 tEnd=0 < [4/2] 19/19 tStart=0 tEnd=1 < [1/3] 20/21 tStart=0 tEnd=1 T 5
-SkOpAngle::afterPart {{{1,2}, {0.833333373,3.5}}} id=2
-SkOpAngle::afterPart {{{1,2}, {0,3}}} id=4
-SkOpAngle::afterPart {{{1,2}, {0,3}, {-0.333333343,3.33333325}, {0.833333373,3.5}}} id=1
-SkOpSegment::sortAngles [4] tStart=0 [7]
-SkOpSegment::sortAngles [1] tStart=0 [1]
-SkOpSegment::sortAngles [2] tStart=1 [4]
-SkOpSegment::debugShowActiveSpans id=3 (0,3 -0.333333343,3.33333325 0.833333373,3.5 1,2) t=0 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=4 (1,2 0,3) t=0 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=1 (1,2 0,3 -0.333333343,3.33333325 0.833333373,3.5) t=0 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=2 (0.833333373,3.5 1,2) t=0 tEnd=1 windSum=? windValue=1
-SkOpSpan::sortableTop dir=kTop seg=3 t=0.5 pt=(0.3125,3.1875)
-SkOpSpan::sortableTop [0] valid=1 operand=1 span=7 ccw=0 seg=4 {{{1, 2}, {0, 3}}} t=0.6875 pt=(0.3125,2.6875) slope=(-1,1)
-SkOpSpan::sortableTop [1] valid=1 operand=0 span=1 ccw=0 seg=1 {{{1, 2}, {0, 3}, {-0.333333343f, 3.33333325f}, {0.833333373f, 3.5f}}} t=0.293719533 pt=(0.3125,2.72128606) slope=(-1.60944396,1.95452854)
-SkOpSpan::sortableTop [2] valid=1 operand=1 span=5 ccw=1 seg=3 {{{0, 3}, {-0.333333343f, 3.33333325f}, {0.833333373f, 3.5f}, {1, 2}}} t=0.5 pt=(0.3125,3.1875) slope=(1.62500004,-0.62499994)
-SkOpSegment::markWinding id=4 (1,2 0,3) t=0 [7] (1,2) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
-SkOpSegment::markWinding id=3 (0,3 -0.333333343,3.33333325 0.833333373,3.5 1,2) t=0 [5] (0,3) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
-SkOpSegment::markWinding id=4 (1,2 0,3) t=0 [7] (1,2) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
-SkOpSegment::markWinding id=1 (1,2 0,3 -0.333333343,3.33333325 0.833333373,3.5) t=0 [1] (1,2) tEnd=1 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 oppValue=0
-SkOpSegment::markWinding id=2 (0.833333373,3.5 1,2) t=0 [3] (0.833333373,3.5) tEnd=1 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0
-SkOpSegment::markWinding id=1 (1,2 0,3 -0.333333343,3.33333325 0.833333373,3.5) t=0 [1] (1,2) tEnd=1 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 oppValue=0
-SkOpSegment::activeOp id=3 t=1 tEnd=0 op=sect miFrom=0 miTo=0 suFrom=1 suTo=0 result=0
-SkOpSegment::markDone id=3 (0,3 -0.333333343,3.33333325 0.833333373,3.5 1,2) t=0 [5] (0,3) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
-SkOpSegment::markDone id=4 (1,2 0,3) t=0 [7] (1,2) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
-bridgeOp chase.append id=4 windSum=1
-SkOpSegment::debugShowActiveSpans id=1 (1,2 0,3 -0.333333343,3.33333325 0.833333373,3.5) t=0 tEnd=1 windSum=1 oppSum=1 windValue=1 oppValue=0
-SkOpSegment::debugShowActiveSpans id=2 (0.833333373,3.5 1,2) t=0 tEnd=1 windSum=1 oppSum=1 windValue=1 oppValue=0
-SkOpSegment::activeOp id=1 t=0 tEnd=1 op=sect miFrom=0 miTo=1 suFrom=1 suTo=1 result=1
-SkOpSegment::findNextOp simple
-SkOpSegment::markDone id=1 (1,2 0,3 -0.333333343,3.33333325 0.833333373,3.5) t=0 [1] (1,2) tEnd=1 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 oppValue=0
-bridgeOp current id=1 from=(1,2) to=(0.833333373,3.5)
-path.moveTo(1,2);
-path.cubicTo(0,3, -0.333333343,3.33333325, 0.833333373,3.5);
-SkOpSegment::findNextOp
-SkOpAngle::dumpOne [2/4] next=4/2 sect=21/21 s=1 [4] e=0 [3] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=1
-SkOpAngle::dumpOne [4/2] next=1/3 sect=19/19 s=0 [7] e=1 [8] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0 done operand
-SkOpAngle::dumpOne [1/3] next=3/1 sect=20/21 s=0 [1] e=1 [2] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=1 done
-SkOpAngle::dumpOne [3/1] next=2/4 sect=21/20 s=1 [6] e=0 [5] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 done operand
-SkOpSegment::activeOp id=4 t=0 tEnd=1 op=sect miFrom=0 miTo=0 suFrom=1 suTo=1 result=0
-SkOpSegment::activeOp id=1 t=0 tEnd=1 op=sect miFrom=0 miTo=1 suFrom=1 suTo=1 result=1
-SkOpSegment::activeOp id=3 t=1 tEnd=0 op=sect miFrom=1 miTo=1 suFrom=1 suTo=1 result=0
-SkOpSegment::markDone id=2 (0.833333373,3.5 1,2) t=0 [3] (0.833333373,3.5) tEnd=1 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 oppValue=0
-SkOpSegment::findNextOp from:[2] to:[1] start=20180984 end=20181096
-bridgeOp current id=2 from=(0.833333373,3.5) to=(1,2)
-path.lineTo(1,2);
+active after pairs->findOverlaps:
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=2
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=2
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=2
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=2
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+sortAngles [1] tStart=0 [1]
+after [1/1] 25/25 tStart=0 tEnd=0.737524311 < [5/7] 25/25 tStart=0.835281662 tEnd=1 < [5/6] 9/9 tStart=0.835281662 tEnd=0 T 12
+afterPart {{{{494.348663,224.58374}, {494.360813,224.620178}, {494.370148,224.65744}}}, 0.999263287} id=1
+afterPart {{{494.348663,224.58374}, {494.352356,224.594819}, {494.355774,224.605927}}} id=5
+afterPart {{{494.348663,224.58374}, {494.329991,224.527724}, {494.30481,224.474213}}} id=5
+after [1/1] 25/25 tStart=0 tEnd=0.737524311 < [17/22] 29/29 tStart=1 tEnd=0.102400099 < [5/7] 25/25 tStart=0.835281662 tEnd=1 T 5
+afterPart {{{{494.348663,224.583771}, {494.360813,224.620209}, {494.370148,224.657471}}}, 0.999263287} id=1
+afterPart {{{494.348663,224.583771}, {511.897949,224.957367}}} id=17
+afterPart {{{494.348663,224.583771}, {494.352356,224.59485}, {494.355774,224.605957}}} id=5
+sortAngles [1] tStart=0.737524311 [35]
+after [1/2] 9/9 tStart=0.737524311 tEnd=0 < [7/9] 25/25 tStart=0 tEnd=1 < [6/8] 9/9 tStart=1 tEnd=0 T 5
+afterPart {{{{494.370148,224.657471}, {494.360813,224.620209}, {494.348663,224.583771}}}, 0.999263287} id=1
+afterPart {{{494.370148,224.657471}, {494.375275,224.679031}}} id=7
+afterPart {{{494.370148,224.657471}, {494.363708,224.631714}, {494.355774,224.605927}}} id=6
+sortAngles [1] tStart=0.992175496 [38]
+after [1/3] 25/25 tStart=0.992175496 tEnd=1 < [9/16] 9/9 tStart=1 tEnd=0 < [2/5] 9/9 tStart=0.000586871356 tEnd=1 T 11
+afterPart {{{{494.376221,224.683273}, {494.376404,224.684067}, {494.376404,224.684067}}}, 0.99999994} id=1
+afterPart {{{494.376221,224.683273}, {494.376038,224.682449}}} id=9
+afterPart {{{494.376221,224.683273}, {494.005444,224.055611}, {494.019409,224.046921}}} id=2
+sortAngles [1] tStart=1 [2]
+sortAngles [2] tStart=0.000586871356 [40]
+sortAngles [5] tStart=0.835281662 [41]
+sortAngles [6] tStart=1 [12]
+sortAngles [7] tStart=0 [13]
+sortAngles [7] tStart=1 [14]
+sortAngles [8] tStart=0 [15]
+sortAngles [8] tStart=0.547725719 [42]
+sortAngles [8] tStart=1 [16]
+sortAngles [9] tStart=0 [17]
+sortAngles [9] tStart=1 [18]
+sortAngles [13] tStart=0 [25]
+sortAngles [15] tStart=0.929653854 [45]
+after [15/18] 17/17 tStart=0.929653854 tEnd=0 < [17/20] 29/29 tStart=0.102400099 tEnd=0 < [15/19] 1/1 tStart=0.929653854 tEnd=1 T 4
+afterPart {{{511.897949,224.957367}, {502.109781,230.145352}, {497.243317,227.90419}}} id=15
+afterPart {{{511.897949,224.957367}, {513.900024,224.999985}}} id=17
+afterPart {{{511.897949,224.957367}, {512.63876,224.564718}, {513.407471,224.129684}}} id=15
+after [15/18] 17/17 tStart=0.929653854 tEnd=0 < [17/21] 13/13 tStart=0.102400099 tEnd=1 < [17/20] 29/29 tStart=0.102400099 tEnd=0 F 4
+afterPart {{{511.897949,224.957367}, {502.109781,230.145352}, {497.243317,227.90419}}} id=15
+afterPart {{{511.897949,224.957367}, {494.348663,224.583771}}} id=17
+afterPart {{{511.897949,224.957367}, {513.900024,224.999985}}} id=17
+after [17/20] 29/29 tStart=0.102400099 tEnd=0 < [17/21] 13/13 tStart=0.102400099 tEnd=1 < [15/19] 1/1 tStart=0.929653854 tEnd=1 F 4
+afterPart {{{511.897949,224.957367}, {513.900024,224.999985}}} id=17
+afterPart {{{511.897949,224.957367}, {494.348663,224.583771}}} id=17
+afterPart {{{511.897949,224.957367}, {512.63876,224.564718}, {513.407471,224.129684}}} id=15
+after [15/19] 1/1 tStart=0.929653854 tEnd=1 < [17/21] 13/13 tStart=0.102400099 tEnd=1 < [15/18] 17/17 tStart=0.929653854 tEnd=0 T 4
+afterPart {{{511.897949,224.957367}, {512.63876,224.564718}, {513.407471,224.129684}}} id=15
+afterPart {{{511.897949,224.957367}, {494.348663,224.583771}}} id=17
+afterPart {{{511.897949,224.957367}, {502.109781,230.145352}, {497.243317,227.90419}}} id=15
+sortAngles [17] tStart=0.102400099 [46]
+sortAngles [17] tStart=1 [34]
+coinSpan - id=12 t=0.924341302 tEnd=1
+coinSpan + id=2 t=0.000586871356 tEnd=0
+coinSpan - id=2 t=0 tEnd=0.000586871356
+coinSpan + id=1 t=1 tEnd=0.992175496
+coinSpan - id=11 t=0 tEnd=1
+coinSpan + id=12 t=0.809546276 tEnd=0
+coinSpan - id=10 t=0 tEnd=1
+coinSpan + id=12 t=0.924341302 tEnd=0.809546276
+coinSpan - id=9 t=0 tEnd=1
+coinSpan + id=12 t=0.809546276 tEnd=0.924341302
+coinSpan - id=9 t=0 tEnd=1
+coinSpan + id=10 t=1 tEnd=0
+coinSpan - id=8 t=0.547725719 tEnd=1
+coinSpan + id=12 t=0 tEnd=0.809546276
+coinSpan - id=8 t=0.547725719 tEnd=1
+coinSpan + id=11 t=1 tEnd=0
+coinSpan - id=12 t=0 tEnd=1
+coinSpan + id=1 t=0.968840505 tEnd=1
+coinSpan - id=11 t=0 tEnd=1
+coinSpan + id=1 t=0.984064836 tEnd=0.968840505
+coinSpan - id=10 t=0 tEnd=1
+coinSpan + id=1 t=0.992175496 tEnd=0.984064836
+coinSpan - id=9 t=0 tEnd=1
+coinSpan + id=1 t=0.984064836 tEnd=0.992175496
+coinSpan - id=8 t=0 tEnd=1
+coinSpan + id=1 t=0.95041534 tEnd=0.984064836
+coinSpan - id=7 t=0 tEnd=1
+coinSpan + id=1 t=0.737524311 tEnd=0.95041534
+debugShowActiveSpans id=1 (494.348663,224.583771 494.360813,224.620209 494.370148,224.657471 0.999263287f) t=0 tEnd=0.737524311 windSum=? windValue=1
+debugShowActiveSpans id=1 (494.376221,224.683273 494.376316,224.683669 494.376404,224.684067 0.99999994f) t=0.992175496 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=2 (494.375977,224.683334 494.0052,224.055672 494.019165,224.046982) t=0.000586871356 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.30481,224.474213 494.329991,224.527724 494.348663,224.58374) t=0 tEnd=0.835281662 windSum=? windValue=1
+debugShowActiveSpans id=5 (494.348663,224.58374 494.352356,224.594819 494.355774,224.605927) t=0.835281662 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=7 (494.370148,224.657471 494.375275,224.679031) t=0 tEnd=1 windSum=? windValue=2
+debugShowActiveSpans id=8 (494.375275,224.679031 494.375702,224.680908) t=0 tEnd=0.547725719 windSum=? windValue=2
+debugShowActiveSpans id=8 (494.375702,224.680908 494.376038,224.682449) t=0.547725719 tEnd=1 windSum=? windValue=2
+debugShowActiveSpans id=9 (494.376038,224.682449 494.376221,224.683273) t=0 tEnd=1 windSum=? windValue=2
+debugShowActiveSpans id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=15 (497.243317,227.90419 502.109781,230.145352 511.897949,224.957367) t=0 tEnd=0.929653854 windSum=? windValue=1
+debugShowActiveSpans id=15 (511.897949,224.957367 512.63876,224.564718 513.407471,224.129684) t=0.929653854 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=16 (513.407471,224.129684 513.900024,224.999985) t=0 tEnd=1 windSum=? windValue=1
+debugShowActiveSpans id=17 (513.900024,224.999985 511.897949,224.957367) t=0 tEnd=0.102400099 windSum=? windValue=1
+debugShowActiveSpans id=17 (511.897949,224.957367 494.348663,224.583771) t=0.102400099 tEnd=1 windSum=? windValue=1
+sortableTop dir=kLeft seg=1 t=0.368762156 pt=(494.360107,224.620407)
+sortableTop [0] valid=1 operand=0 span=40 ccw=1 seg=2 {{{494.376404f, 224.684067f}, {494.005188f, 224.055679f}, {494.019165f, 224.046982f}}} t=0.0519857546 pt=(494.338837,224.620407) slope=(-0.351191278,-0.596172402)
+sortableTop [1] valid=0 operand=0 span=11 ccw=1 seg=6 {{{494.355774f, 224.605927f}, {494.363708f, 224.631714f}, {494.370148f, 224.657471f}}} t=0.280815892 pt=(494.360107,224.620407) slope=(0,0)
+sortableTop [2] valid=1 operand=0 span=1 ccw=0 seg=1 {{{{494.348663f, 224.583771f}, {494.365143f, 224.633194f}, {494.376404f, 224.684067f}}}, 0.998645842f} t=0.368762156 pt=(494.360107,224.620407) slope=(0.0145441391,0.0499217341)
+markWinding id=2 (494.376404,224.684067 494.005188,224.055679 494.019165,224.046982) t=0.000586871356 [40] (494.375977,224.683334) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
+markWinding id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 [5] (494.019165,224.046982) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
+markWinding id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 [7] (494.232056,224.345306) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
+markWinding id=5 (494.30481,224.474213 494.334961,224.538284 494.355774,224.605927) t=0 [9] (494.30481,224.474213) tEnd=0.835281662 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
+markWinding id=2 (494.376404,224.684067 494.005188,224.055679 494.019165,224.046982) t=0.000586871356 [40] (494.375977,224.683334) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
+sortableTop dir=kLeft seg=1 t=0.996087748 pt=(494.376312,224.68367)
+sortableTop [0] valid=1 operand=0 span=38 ccw=0 seg=1 {{{{494.348663f, 224.583771f}, {494.365143f, 224.633194f}, {494.376404f, 224.684067f}}}, 0.998645842f} t=0.996087748 pt=(494.376312,224.68367) slope=(0.011266272,0.0507987787)
+markWinding id=1 (494.348663,224.583771 494.365143,224.633194 494.376404,224.684067) t=0.992175496 [38] (494.376221,224.683273) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
+nextChase mismatched signs
+markWinding id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 [25] (494.376495,224.683868) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
+markWinding id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 [27] (494.895874,225.840698) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
+markWinding id=15 (497.243317,227.90419 502.478027,230.314941 513.407471,224.129684) t=0 [29] (497.243317,227.90419) tEnd=0.929653854 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
+markWinding id=1 (494.348663,224.583771 494.365143,224.633194 494.376404,224.684067) t=0.992175496 [38] (494.376221,224.683273) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
+markWinding id=9 (494.376038,224.682449 494.376221,224.683273) t=0 [17] (494.376038,224.682449) tEnd=1 newWindSum=1 windSum=? windValue=2
+nextChase mismatched signs
+markWinding id=8 (494.375275,224.679031 494.376038,224.682449) t=0.547725719 [42] (494.375702,224.680908) tEnd=1 newWindSum=1 windSum=? windValue=2
+nextChase mismatched signs
+markWinding id=8 (494.375275,224.679031 494.376038,224.682449) t=0 [15] (494.375275,224.679031) tEnd=0.547725719 newWindSum=1 windSum=? windValue=2
+nextChase mismatched signs
+markWinding id=7 (494.370148,224.657471 494.375275,224.679031) t=0 [13] (494.370148,224.657471) tEnd=1 newWindSum=1 windSum=? windValue=2
+markAngle last seg=7 span=13 windSum=1
+findNextWinding
+dumpOne [1/3] next=9/16 sect=25/25 s=0.992175496 [38] e=1 [2] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0
+dumpOne [9/16] next=2/5 sect=9/9 s=1 [18] e=0 [17] sgn=1 windVal=2 windSum=1
+dumpOne [2/5] next=1/3 sect=9/9 s=0.000586871356 [40] e=1 [4] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=0
+markDone id=9 (494.376038,224.682449 494.376221,224.683273) t=0 [17] (494.376038,224.682449) tEnd=1 newWindSum=1 newOppSum=? oppSum=? windSum=1 windValue=2 oppValue=0
+nextChase mismatched signs
+markDone id=8 (494.375275,224.679031 494.376038,224.682449) t=0.547725719 [42] (494.375702,224.680908) tEnd=1 newWindSum=1 newOppSum=? oppSum=? windSum=1 windValue=2 oppValue=0
+nextChase mismatched signs
+markDone id=8 (494.375275,224.679031 494.376038,224.682449) t=0 [15] (494.375275,224.679031) tEnd=0.547725719 newWindSum=1 newOppSum=? oppSum=? windSum=1 windValue=2 oppValue=0
+nextChase mismatched signs
+markDone id=7 (494.370148,224.657471 494.375275,224.679031) t=0 [13] (494.370148,224.657471) tEnd=1 newWindSum=1 newOppSum=? oppSum=? windSum=1 windValue=2 oppValue=0
+findNextWinding chase.append segment=7 span=13 windSum=1
+markDone id=1 (494.348663,224.583771 494.365143,224.633194 494.376404,224.684067) t=0.992175496 [38] (494.376221,224.683273) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
+findNextWinding from:[1] to:[2] start=83893016 end=83886272
+bridgeWinding current id=1 from=(494.376404,224.684067) to=(494.376221,224.683273)
+findNextWinding simple
+markDone id=2 (494.376404,224.684067 494.005188,224.055679 494.019165,224.046982) t=0.000586871356 [40] (494.375977,224.683334) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
+bridgeWinding current id=2 from=(494.375977,224.683334) to=(494.019165,224.046982)
+path.moveTo(494.376404,224.684067);
+path.lineTo(494.376221,224.683273);
+path.quadTo(494.005188,224.055679, 494.019165,224.046982);
+findNextWinding simple
+markDone id=3 (494.019165,224.046982 494.029083,224.040833 494.232056,224.345306) t=0 [5] (494.019165,224.046982) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
+bridgeWinding current id=3 from=(494.019165,224.046982) to=(494.232056,224.345306)
+path.quadTo(494.029083,224.040833, 494.232056,224.345306);
+findNextWinding simple
+markDone id=4 (494.232056,224.345306 494.273193,224.406982 494.30481,224.474213) t=0 [7] (494.232056,224.345306) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
+bridgeWinding current id=4 from=(494.232056,224.345306) to=(494.30481,224.474213)
+path.quadTo(494.273193,224.406982, 494.30481,224.474213);
+markWinding id=1 (494.348663,224.583771 494.365143,224.633194 494.376404,224.684067) t=0 [1] (494.348663,224.583771) tEnd=0.737524311 newWindSum=-1 windSum=? windValue=1
+markAngle last seg=1 span=35 windSum=?
+markWinding id=17 (513.900024,224.999985 494.348663,224.583771) t=0.102400099 [46] (511.897949,224.957367) tEnd=1 newWindSum=-1 windSum=? windValue=1
+markAngle last seg=17 span=46 windSum=-1
+markWinding id=5 (494.30481,224.474213 494.334961,224.538284 494.355774,224.605927) t=0.835281662 [41] (494.348663,224.58374) tEnd=1 newWindSum=-1 windSum=? windValue=1
+markWinding id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 [11] (494.355774,224.605927) tEnd=1 newWindSum=-1 windSum=? windValue=1
+markAngle last seg=6 span=12
+findNextWinding
+dumpOne [5/6] next=1/1 sect=9/9 s=0.835281662 [41] e=0 [9] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=0
+dumpOne [1/1] next=17/22 sect=25/25 s=0 [1] e=0.737524311 [35] sgn=-1 windVal=1 windSum=-1
+dumpOne [17/22] next=5/7 sect=29/29 s=1 [34] e=0.102400099 [46] sgn=1 windVal=1 windSum=-1
+dumpOne [5/7] next=5/6 sect=25/25 s=0.835281662 [41] e=1 [10] sgn=-1 windVal=1 windSum=-1
+findNextWinding chase.append segment=1 span=35 windSum=-2147483647
+findNextWinding chase.append segment=17 span=46 windSum=-1
+findNextWinding chase.append segment=6 span=12
+markDone id=5 (494.30481,224.474213 494.334961,224.538284 494.355774,224.605927) t=0 [9] (494.30481,224.474213) tEnd=0.835281662 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
+findNextWinding from:[5] to:[1] start=4281728 end=83891960
+bridgeWinding current id=5 from=(494.30481,224.474213) to=(494.348663,224.58374)
+path.quadTo(494.329987,224.527725, 494.348663,224.58374);
+findNextWinding
+dumpOne [1/2] next=7/9 sect=9/9 s=0.737524311 [35] e=0 [1] sgn=1 windVal=1 windSum=-1
+dumpOne [7/9] next=6/8 sect=25/25 s=0 [13] e=1 [14] sgn=-1 windVal=2 windSum=1 done
+dumpOne [6/8] next=1/2 sect=9/9 s=1 [12] e=0 [11] sgn=1 windVal=1 windSum=-1
+markDone id=1 (494.348663,224.583771 494.365143,224.633194 494.376404,224.684067) t=0 [1] (494.348663,224.583771) tEnd=0.737524311 newWindSum=-1 newOppSum=? oppSum=? windSum=-1 windValue=1 oppValue=0
+findNextWinding from:[1] to:[6] start=83887544 end=83887400
+bridgeWinding current id=1 from=(494.348663,224.583771) to=(494.370148,224.657471)
+path.conicTo(494.360809,224.620209, 494.370148,224.657471, 0.999263287);
+findNextWinding simple
+markDone id=6 (494.355774,224.605927 494.363708,224.631714 494.370148,224.657471) t=0 [11] (494.355774,224.605927) tEnd=1 newWindSum=-1 newOppSum=? oppSum=? windSum=-1 windValue=1 oppValue=0
+bridgeWinding current id=6 from=(494.370148,224.657471) to=(494.355774,224.605927)
+path.quadTo(494.363708,224.631714, 494.355774,224.605927);
+findNextWinding
+dumpOne [5/7] next=5/6 sect=25/25 s=0.835281662 [41] e=1 [10] sgn=-1 windVal=1 windSum=-1
+dumpOne [5/6] next=1/1 sect=9/9 s=0.835281662 [41] e=0 [9] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done
+dumpOne [1/1] next=17/22 sect=25/25 s=0 [1] e=0.737524311 [35] sgn=-1 windVal=1 windSum=-1 done
+dumpOne [17/22] next=5/7 sect=29/29 s=1 [34] e=0.102400099 [46] sgn=1 windVal=1 windSum=-1
+markDone id=5 (494.30481,224.474213 494.334961,224.538284 494.355774,224.605927) t=0.835281662 [41] (494.348663,224.58374) tEnd=1 newWindSum=-1 newOppSum=? oppSum=? windSum=-1 windValue=1 oppValue=0
+findNextWinding from:[5] to:[17] start=83891792 end=83894160
+bridgeWinding current id=5 from=(494.355774,224.605927) to=(494.348663,224.58374)
+path.quadTo(494.352356,224.594818, 494.348663,224.58374);
+markWinding id=17 (513.900024,224.999985 494.348663,224.583771) t=0 [33] (513.900024,224.999985) tEnd=0.102400099 newWindSum=-1 windSum=? windValue=1
+markWinding id=16 (513.407471,224.129684 513.900024,224.999985) t=0 [31] (513.407471,224.129684) tEnd=1 newWindSum=-1 windSum=? windValue=1
+markWinding id=15 (497.243317,227.90419 502.478027,230.314941 513.407471,224.129684) t=0.929653854 [45] (511.897949,224.957367) tEnd=1 newWindSum=-1 windSum=? windValue=1
+markAngle last seg=15 span=45 windSum=-1
+findNextWinding
+dumpOne [17/21] next=15/18 sect=13/13 s=0.102400099 [46] e=1 [34] sgn=-1 windVal=1 windSum=-1
+dumpOne [15/18] next=17/20 sect=17/17 s=0.929653854 [45] e=0 [29] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0
+dumpOne [17/20] next=15/19 sect=29/29 s=0.102400099 [46] e=0 [33] sgn=1 windVal=1 windSum=-1
+dumpOne [15/19] next=17/21 sect=1/1 s=0.929653854 [45] e=1 [30] sgn=-1 windVal=1 windSum=-1
+markDone id=17 (513.900024,224.999985 494.348663,224.583771) t=0 [33] (513.900024,224.999985) tEnd=0.102400099 newWindSum=-1 newOppSum=? oppSum=? windSum=-1 windValue=1 oppValue=0
+markDone id=16 (513.407471,224.129684 513.900024,224.999985) t=0 [31] (513.407471,224.129684) tEnd=1 newWindSum=-1 newOppSum=? oppSum=? windSum=-1 windValue=1 oppValue=0
+markDone id=15 (497.243317,227.90419 502.478027,230.314941 513.407471,224.129684) t=0.929653854 [45] (511.897949,224.957367) tEnd=1 newWindSum=-1 newOppSum=? oppSum=? windSum=-1 windValue=1 oppValue=0
+findNextWinding chase.append segment=15 span=45 windSum=-1
+markDone id=17 (513.900024,224.999985 494.348663,224.583771) t=0.102400099 [46] (511.897949,224.957367) tEnd=1 newWindSum=-1 newOppSum=? oppSum=? windSum=-1 windValue=1 oppValue=0
+findNextWinding from:[17] to:[15] start=83894016 end=83891024
+bridgeWinding current id=17 from=(494.348663,224.583771) to=(511.897949,224.957367)
+findNextWinding simple
+markDone id=15 (497.243317,227.90419 502.478027,230.314941 513.407471,224.129684) t=0 [29] (497.243317,227.90419) tEnd=0.929653854 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
+bridgeWinding current id=15 from=(511.897949,224.957367) to=(497.243317,227.90419)
+path.lineTo(511.897949,224.957367);
+path.quadTo(502.109772,230.145355, 497.243317,227.90419);
+findNextWinding simple
+markDone id=14 (494.895874,225.840698 495.737305,227.210602 497.243317,227.90419) t=0 [27] (494.895874,225.840698) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
+bridgeWinding current id=14 from=(497.243317,227.90419) to=(494.895874,225.840698)
+path.quadTo(495.737305,227.210602, 494.895874,225.840698);
+nextChase mismatched signs
+findNextWinding simple
+markDone id=13 (494.376495,224.683868 494.634338,225.414886 494.895874,225.840698) t=0 [25] (494.376495,224.683868) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
+bridgeWinding current id=13 from=(494.895874,225.840698) to=(494.376495,224.683868)
+path.quadTo(494.634338,225.414886, 494.376495,224.683868);
path.close();
</div>
@@ -153,7 +1367,7 @@ path.close();
<script type="text/javascript">
var testDivs = [
- loop17,
+ tiger8b_h_1,
];
var decimal_places = 3; // make this 3 to show more precision
@@ -314,7 +1528,9 @@ var INTERSECT_CONIC_LINE_2 = INTERSECT_CONIC_LINE + 1;
var INTERSECT_CONIC_LINE_NO = INTERSECT_CONIC_LINE_2 + 1;
var INTERSECT_CONIC_QUAD = INTERSECT_CONIC_LINE_NO + 1;
var INTERSECT_CONIC_QUAD_2 = INTERSECT_CONIC_QUAD + 1;
-var INTERSECT_CONIC_QUAD_NO = INTERSECT_CONIC_QUAD_2 + 1;
+var INTERSECT_CONIC_QUAD_3 = INTERSECT_CONIC_QUAD_2 + 1;
+var INTERSECT_CONIC_QUAD_4 = INTERSECT_CONIC_QUAD_3 + 1;
+var INTERSECT_CONIC_QUAD_NO = INTERSECT_CONIC_QUAD_4 + 1;
var INTERSECT_CONIC = INTERSECT_CONIC_QUAD_NO + 1;
var INTERSECT_CONIC_2 = INTERSECT_CONIC + 1;
var INTERSECT_CONIC_NO = INTERSECT_CONIC_2 + 1;
@@ -680,6 +1896,10 @@ function parse_all(test) {
" wtTs[0]=T_VAL CONIC_VAL PT_VAL wnTs[0]=T_VAL QUAD_VAL"
) || match_regexp(line, lineNo, record, INTERSECT_CONIC_QUAD_2, "debugShowConicQuadIntersection" +
" wtTs[0]=T_VAL CONIC_VAL PT_VAL wtTs[1]=T_VAL PT_VAL wnTs[0]=T_VAL QUAD_VAL wnTs[1]=T_VAL"
+ ) || match_regexp(line, lineNo, record, INTERSECT_CONIC_QUAD_3, "debugShowConicQuadIntersection" +
+" wtTs[0]=T_VAL CONIC_VAL PT_VAL wtTs[1]=T_VAL PT_VAL wtTs[2]=T_VAL PT_VAL wnTs[0]=T_VAL QUAD_VAL wnTs[1]=T_VAL wnTs[2]=T_VAL"
+ ) || match_regexp(line, lineNo, record, INTERSECT_CONIC_QUAD_4, "debugShowConicQuadIntersection" +
+" wtTs[0]=T_VAL CONIC_VAL PT_VAL wtTs[1]=T_VAL PT_VAL wtTs[2]=T_VAL PT_VAL wtTs[3]=T_VAL PT_VAL wnTs[0]=T_VAL QUAD_VAL wnTs[1]=T_VAL wnTs[2]=T_VAL wnTs[3]=T_VAL"
) || match_regexp(line, lineNo, record, INTERSECT_CONIC_QUAD_NO, "debugShowConicQuadIntersection" +
" no intersect CONIC_VAL QUAD_VAL"
@@ -1050,6 +2270,12 @@ function init(test) {
case INTERSECT_CONIC_QUAD_2:
first = 1; last = 7; first2 = 14; last2 = 20;
break;
+ case INTERSECT_CONIC_QUAD_3:
+ first = 1; last = 7; first2 = 17; last2 = 23;
+ break;
+ case INTERSECT_CONIC_QUAD_4:
+ first = 1; last = 7; first2 = 20; last2 = 26;
+ break;
case INTERSECT_CONIC_QUAD_NO:
first = 0; last = 6; first2 = 7; last2 = 13;
break;
@@ -2610,11 +3836,13 @@ function draw(test, lines, title) {
case INTERSECT_CUBIC_NO:
sectBump = 0;
break;
+ case INTERSECT_CONIC_QUAD_3:
case INTERSECT_CUBIC_LINE_3:
case INTERSECT_CUBIC_QUAD_3:
case INTERSECT_CUBIC_3:
sectBump = 3;
break;
+ case INTERSECT_CONIC_QUAD_4:
case INTERSECT_CUBIC_QUAD_4:
case INTERSECT_CUBIC_4:
sectBump = 4;
@@ -3076,6 +4304,19 @@ function draw(test, lines, title) {
f.push(11, 12, 10, 18);
c1s = 1; c1l = 7; c2s = 14; c2l = 6;
break;
+ case INTERSECT_CONIC_QUAD_3:
+ f.push(8, 9, 0, 15);
+ f.push(11, 12, 10, 21);
+ f.push(14, 15, 13, 22);
+ c1s = 1; c1l = 7; c2s = 17; c2l = 6;
+ break;
+ case INTERSECT_CONIC_QUAD_4:
+ f.push(8, 9, 0, 18);
+ f.push(11, 12, 10, 24);
+ f.push(14, 15, 13, 25);
+ f.push(17, 18, 16, 26);
+ c1s = 1; c1l = 7; c2s = 20; c2l = 6;
+ break;
case INTERSECT_CONIC_QUAD_NO:
c1s = 0; c1l = 7; c2s = 7; c2l = 6;
break;